diff --git a/.gitignore b/.gitignore index d05b1773c..1993baef8 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ config.json /*.asar /bin.mjs /*.d.ts +/i18n/*.map diff --git a/cspell.json b/cspell.json index a8e37bdf1..bfdff9467 100644 --- a/cspell.json +++ b/cspell.json @@ -31,6 +31,7 @@ "gpgsign", "HighlightJS", "installdir", + "jsona", "Jsonifiable", "konami", "leaderboard", diff --git a/i18n/ar.json b/i18n/ar.json deleted file mode 100644 index 330699eb9..000000000 --- a/i18n/ar.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "REPLUGGED_ACCOUNT": "حساب Replugged", - "REPLUGGED_BADGES_CONTRIBUTOR": "الداعم Replugged", - "REPLUGGED_BADGES_EARLY": "مستخدم مبكر ل Replugged", - "REPLUGGED_BADGES_HUNTER": "معالج الاخطاء ل Replugged", - "REPLUGGED_BADGES_STAFF": "إداري ل Replugged", - "REPLUGGED_BADGES_SUPPORT": "الدعم الفني ل Replugged", - "REPLUGGED_BADGES_BOOSTER": "داعم البوست في Replugged", - "REPLUGGED_BUTTON_GOT_IT": "حسناً", - "REPLUGGED_BUTTON_INSTALLER_INSTALLED": "تم تنزيل {type}", - "REPLUGGED_BUTTON_INSTALLER_DOWNLOAD": "لتحميل {type}", - "REPLUGGED_CANCEL": "إلغاء", - "REPLUGGED_CONFIRM": "تأكيد", - "REPLUGGED_OK": "حسناً", - "REPLUGGED_COMMAND_DISABLE_DESC": "إلغاء تفعيل إضافة/ثمة", - "REPLUGGED_COMMAND_ENABLE_DESC": "تفعيل إضافة/ثمة", - "REPLUGGED_COMMAND_RELOAD_DESC": "إعادة تشغيل plugin/theme", - "REPLUGGED_BADGES_DEVELOPER": "مطور Replugged", - "REPLUGGED_BADGES_TRANSLATOR": "مترجم في Replugged", - "REPLUGGED_UPDATES_OPTS_DEBUG": "معلومات Debug", - "REPLUGGED_UPDATES_OPTS_DEBUG_DESC": "الأشياء التي قد تجدها مفيدة لإكتشاف الأخطاء وإصلاحها أو استعراض بعض الاحصائيات.", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD": "نظام / Discord", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT": "64-bit", - "REPLUGGED_UPDATES_OPTS_DEBUG_ARCH": "بنيان:", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO": "توزيعة:", - "REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL": "Release Channel:", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS": "نظام التشغيل:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION": "إصدار البرنامج:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER": "Build Number:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID": "Build ID:", - "REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS": "Experiments:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS": "الأوامر:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPIED": "نسخت!", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPY": "نسخ", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS": "بلوقنات:", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS": "عرض أقل", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE": "عرض أكثر", - "REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS": "البلوقنات الغير مصرح بها:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS": "بلوقنات BetterDiscord:", - "REPLUGGED_UPDATES_OPTS_DEBUG_THEMES": "سمات:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LABS": "Labs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC": "مزامنة الإعدادات:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES": "الملفات المخزنة مؤقتًا:", - "REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT": "حساب:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APIS": "APIs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS": "Connections:", - "REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM": "Upstream:", - "REPLUGGED_UPDATES_OPTS_DEBUG_REVISION": "مراجعة:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH": "Branch:", - "REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH": "مسار Replugged", - "REPLUGGED_UPDATES_OPTS_DEBUG_LATEST": "Latest:", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY": "تحديث حد التزامن", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC": "كم عد المهام المتزامنة التي سيتم Replugged بتشغيلها في الخلفية للتحقق من وجود تحديثات. الحد الأدنى 1. إذا لم تكن متأكدًا ، إتركه 2.", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS": "إصدارات العملية", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS": "إعدادات:", - "REPLUGGED_ERROR_ALREADY_INSTALLED": "تم تثبيت {name} بالفعل.", - "REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND": "حدث خطأ أثناء تنفيذ الأمر:", - "REPLUGGED_ERROR_CHECK_CONSOLE": "تحقق من وحدة التحكم للمزيد من التفاصيل.", - "REPLUGGED_GENERAL_SETTINGS": "الاعدادات الرئيسية", - "REPLUGGED_I18N_CONTRIBUTE": "بست! هل تريد المساعدة في ترجمة Replugged؟ إذهب إلى [Weblate]({weblateUrl})!", - "REPLUGGED_I18N_TRANSLATED_PERCENTAGE": "Replugged: {translated,number}% مترجم", - "REPLUGGED_INSTALL_MODAL_HEADER": "تثبيت {type}", - "REPLUGGED_LINK_NOW": "إربطه الآن", - "REPLUGGED_NOTICES_JOIN_SERVER_BUTTON": "دخول السيرفر", - "REPLUGGED_NOTICES_WELCOME_NEW_USER": "أهلآ! لقد تم ربط Replugged بخادم Discord الخاص بك بنجاح. يمكنك دخول سيرفر Discord الخاص بنا لأخر الاخبار والمساعدة!", - "REPLUGGED_PLUGIN": "ملحق", - "REPLUGGED_PLUGINS": "بلوقنات", - "REPLUGGED_QUICKCSS": "CSS أسرع", - "REPLUGGED_SETTINGS_ADVANCED_DESC": "لا تلمس أي شيء هنا إذا كنت لا تدري ماذا تفعل. أشياء غير متوقعة قد تحصل لقطتك.", - "REPLUGGED_SETTINGS_BACKEND": "عنوان Backend", - "REPLUGGED_SETTINGS_BACKEND_DESC": "عنوان إليكتروني يستخدم لجلب بعض الملفات والإستعلام عن Replugged's REST API.", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS": "تفعيل تجارب Discord", - "REPLUGGED_SETTINGS_OVERLAY": "Overlay DevTools", - "REPLUGGED_SETTINGS_OVERLAY_DESC": "يفتح نافذة DevTools ألتي تتيح لك فحص ما بداخل Discord's in-game overlay.", - "REPLUGGED_SETTINGS_RESTART": "يتطلب هذا الإعداد إعادة تشغيل Discord يعمل. هل تريد إعادة تشغيل Discord الآن؟", - "REPLUGGED_SNIPPET_APPLIED": "تم تطبيق Snippet", - "REPLUGGED_SNIPPET_APPLY": "تطبيق Snippet", - "REPLUGGED_SNIPPET_LINE1": "Snippets من #css-snippes طبقت الـ {date, date, medium} في {date, time, medium}", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC": "****تحذير:**** تفعيل هذا يعطيك خصائص إلى ميزات قد تكون مكتشفة عن طريق Discord وممكن أن تقوم ****بحظر حسابك****. Replugged **ليس مسؤول** عن أي شيء قد تفعله بهذة الميزة. إتركها معطلة إذا كنت غير متأكد. فريق Replugged **لن يقوم** بتقديم إي مساعدة بشأن هذة الميزات. **إعادة الشتغيل مطلوبة**.", - "REPLUGGED_SETTINGS_ERROR_HEADER": "حدث خطأ ما في عرض هذا العنصر!", - "REPLUGGED_SETTINGS_ERROR_RENDER_PANEL": "حدث خطأ أثناء عرض لوحة الإعدادات.", - "REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK": "Component stack:", - "REPLUGGED_SETTINGS_KEEP_TOKEN": "الإحتفاظ بالرمز (Token) مخزن", - "REPLUGGED_SETTINGS_KEEP_TOKEN_DESC": "يمنع Discord من أن يقوم بحذف الرمز الخاص بك (Token) من localStorage, يقلل من عدد تسجيلات الخروج الغير مرغوب فيها.", - "REPLUGGED_SETTINGS_NO_CLYDE": "القضاء على Clyde", - "REPLUGGED_SETTINGS_NO_CLYDE_DESC": "يستبدل [Clyde]({clydeUrl}) في أوامر Replugged مع مجموعة مختلطة من الصور الرمزية وأسماء مستخدمين محددة بواسطة مطوري البلوقنات - يتم إستبدالة إلى \"Replugged\" افتراضيًا.", - "REPLUGGED_SNIPPET_LINE2": "انشأ من قبل {authorTag} ({authorId})", - "REPLUGGED_THEME": "سمة", - "REPLUGGED_THEMES": "سمات", - "REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE": "إعادة التحميل مطلوبة", - "REPLUGGED_UPDATES_CHECK": "تحقق من التحديثات", - "REPLUGGED_UPDATES_ENABLE": "تفعيل التحديثات", - "REPLUGGED_UPDATES_FAILED": "بعض التحديثات فشلت!", - "REPLUGGED_UPDATES_FORCE": "فرض التحديث", - "REPLUGGED_UPDATES_LAST_CHECKED": "أخر فحص: {date}", - "REPLUGGED_UPDATES_OPEN_UPDATER": "فتح المحدث", - "REPLUGGED_UPDATES_OPTS_AUTO": "التحديث تلقائيًا في الخلفية", - "REPLUGGED_UPDATES_OPTS_AUTO_DESC": "Replugged يمكنه تنزيل التحديثات وتثبيتها في الخلفية دون إزعاجك. ملاحظة أن التحديثات ستتطلب إجراء من المستخدم إذا كانت إعادة التشغيل مطلوبة, أو إذا كان هناك تعارض.", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS": "فتح سجل التغيير", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC": "فاتك سجل التغيير, أو تريد رؤيته مجددآ؟", - "REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE": "الموقع:", - "REPLUGGED_UPDATES_UPDATING": "تحديث Replugged…", - "REPLUGGED_UPDATES_UPDATING_ITEM": "تحديث…", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH": "مسار Discord", - "REPLUGGED_UPDATES_OPTS_INTERVAL": "تحديث التحقق الفاصل", - "REPLUGGED_UPDATES_OPTS_INTERVAL_DESC": "كم مرة Replugged سيتحقق من وجود تحديث (بالدقائق). لا تقل عن 10 دقائق.", - "REPLUGGED_UPDATES_OPTS_RELEASE": "تغيير Release Channel", - "REPLUGGED_UPDATES_OPTS_RELEASE_DESC": "يمكنك التغيير بين Stable Branch, أو Development Branch. Stable Branch يحصل فقط على التحديثات الرئيسية وألامان والتحديثات الهامة. إذا لم تكن متأكدًا ، فابق ثابتًا.", - "REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN": "التبديل إلى development branch", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL": "هل أنت متأكد أنك تريد تغيير release channel الخاص بك؟ Replugged سيقوم بإعادة تشغيل Discord.", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER": "تغيير release channel", - "REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN": "التبديل إلى stable", - "REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH": "Switch", - "REPLUGGED_UPDATES_UPDATER": "محدث", - "REPLUGGED_UPDATES_UPDATE": "تحديث", - "REPLUGGED_PLUGIN_EMBED_COPY": "نسخ الرابط", - "REPLUGGED_PLUGIN_EMBED_COPIED": "نسخت!", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS": "ما هذا؟", - "REPLUGGED_ADDON_DELETE": "حذف {type}", - "REPLUGGED_ADDON_PAGE_OPEN": "فتح صفحة {type}", - "REPLUGGED_ADDON_PROFILE_OPEN": "فتح ملف {type}", - "REPLUGGED_ADDON_RELOAD": "إعادة تحميل {type}", - "REPLUGGED_ADDON_SETTINGS": "فتح إعدادات {type}", - "REPLUGGED_ADDON_UNINSTALL": "إزالة {name}", - "REPLUGGED_ADDONS_FOLDER_OPEN": "فتح ملف {type}", - "REPLUGGED_ADDONS_LOAD_MISSING": "تحميل مفقود {type}", - "REPLUGGED_ADDONS_TITLE_COUNT": "{type} ({count, number})", - "REPLUGGED_LIST_RESULTS": "{count, plural, =1 {# يطابق} other {# يطابقون}}", - "REPLUGGED_NO_ADDONS_INSTALLED": "لا يوجد {type} مثبت.", - "REPLUGGED_QUICKCSS_CHANGES_APPLY": "تطبيق التغييرات", - "REPLUGGED_SEARCH_FOR_ADDON": "البحث عن {type}", - "REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS": "تعطل {name}", - "REPLUGGED_TOAST_ADDON_RELOAD_FAILED": "فشل إعادة تحميل {name}", - "REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS": "إعادة تحميل {name}", - "REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED": "فشل إزالة {name}", - "REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS": "تم إزالة {name}", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED": "فشل تحميل {type}", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS": "تم تحميل المفقود {type}", - "REPLUGGED_UPDATES_UPDATE_NOUN": "تحديث", - "REPLUGGED_ADDON_AUTHORS_ONE": "by {author1}", - "REPLUGGED_ADDON_AUTHORS_TWO": "by {author1} and {author2}", - "REPLUGGED_ADDON_AUTHORS_MANY": "by {author1}, {author2}, {author3}, and {count, plural, =1 {# other} other {# others}}", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED": "إظهار تحديث checker toast", - "REPLUGGED_UPDATES_UP_TO_DATE": "كل شيء محدث إلى الأن.", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC": "Show an overlay over the client which says updates are being checked for, and if updates are found, prompt you to update. Only applies if update in background is disabled.", - "REPLUGGED_PLUGIN_EMBED_VIEW_REPO": "عرض الـRepo", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT": "هذة ميزة Replugged. تسمح لك بتنزيل إضافات او سمات مباشرة من الدردشة . ما عليك سوى الضغط على زر التثبيت في الامبيد.", - "REPLUGGED_ADDON_AUTHORS_THREE": "by {author1}, {author2}, and {author3}", - "REPLUGGED_CONFIRM_INSTALL": "تنزيل", - "REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY": "هل انت متأكد من ازالة {type}؟ لا يمكن التراجع عن هذه الخطوه.", - "REPLUGGED_NO_ADDON_RESULTS": "{type} لا يطابق بحثك.", - "REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS": "تمكين {name}", - "REPLUGGED_TOAST_ADDON_TOGGLE_FAILED": "فشل في تمكين {name}", - "REPLUGGED_TOAST_PROFILE_FETCH_FAILED": "فشل في فحص الملف الشخصي للمستخدم", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED": "فشل في تنسيق الكود", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS": "تم تنسيق الكود", - "REPLUGGED_TOAST_QUICKCSS_RELOAD": "اعادة تحميل Quick CSS", - "REPLUGGED_SETTINGS_ERROR_SUB_HEADER": "تفقد الكونسل لمعلومات اكثر.", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED": "فشل في تنزيل {name}.", - "REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED": "تم تنزيل {name} ولكن فشل في تفعيله.", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS": "تم تنزيل {name} بنجاح.", - "REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED": "فشل في جلب معلومات للإضافه.", - "REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL": "تم الغاء التنزيل.", - "REPLUGGED_QUICKCSS_FOLDER_OPEN": "فتح مجلد Quick CSS", - "REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY": "هل تريد تنزيل {name} {authors}؟", - "REPLUGGED_UPDATES_UPDATE_ALL": "تحديث الكل", - "REPLUGGED_UPDATES_UPDATE_TO": "التحديث إلى {version}", - "REPLUGGED_UPDATES_TOAST_NO_NEW": "لا يوجد تحديثات متاحة.", - "REPLUGGED_UPDATES_TOAST_NEW": "{count, plural, =1 {# تحديث جديد} other {# تحديثات جديدة}} متاح!", - "REPLUGGED_UPDATES_TOAST_FAILED_ONE": "فشل التحديث!", - "REPLUGGED_UPDATES_TOAST_FAILED_ALL": "فشلت بعض التحديثات!", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ALL": "كل التحديثات تمت بنجاح.", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ONE": "اكتمل التحديث بنجاح.", - "REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY": "{name} يتطلب اعادة التحميل للعمل. اعادة التحميل الان؟", - "REPLUGGED_RELOAD": "اعادة تحميل" -} diff --git a/i18n/en-US.json b/i18n/en-US.json deleted file mode 100644 index 7b1df86be..000000000 --- a/i18n/en-US.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "REPLUGGED_ACCOUNT": "Replugged Account", - "REPLUGGED_BADGES_CONTRIBUTOR": "Replugged Contributor", - "REPLUGGED_BADGES_DEVELOPER": "Replugged Developer", - "REPLUGGED_BADGES_EARLY": "Replugged Early User", - "REPLUGGED_BADGES_HUNTER": "Replugged Bug Hunter", - "REPLUGGED_BADGES_STAFF": "Replugged Staff", - "REPLUGGED_BADGES_SUPPORT": "Replugged Support", - "REPLUGGED_BADGES_TRANSLATOR": "Replugged Translator", - "REPLUGGED_BADGES_BOOSTER": "Replugged Server Booster", - "REPLUGGED_BUTTON_GOT_IT": "Got It", - "REPLUGGED_BUTTON_INSTALLER_INSTALLED": "{type} Installed", - "REPLUGGED_BUTTON_INSTALLER_DOWNLOAD": "Download {type}", - "REPLUGGED_CANCEL": "Cancel", - "REPLUGGED_CONFIRM": "Confirm", - "REPLUGGED_OK": "OK", - "REPLUGGED_COMMAND_ERROR_GENERIC": "Something went wrong, please try again later. If this issue persists, please contact the Replugged team.", - "REPLUGGED_COMMAND_SUCCESS_GENERIC": "Success", - "REPLUGGED_COMMAND_ENABLE_NAME": "enable", - "REPLUGGED_COMMAND_ENABLE_DESC": "Enable a plugin or theme", - "REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME": "addon", - "REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC": "Choose which addon to enable", - "REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED": "{type} {name} has been enabled!", - "REPLUGGED_COMMAND_DISABLE_NAME": "disable", - "REPLUGGED_COMMAND_DISABLE_DESC": "Disable a plugin or theme", - "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME": "addon", - "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC": "Choose which addon to disable", - "REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED": "{type} {name} has been disabled!", - "REPLUGGED_COMMAND_RELOAD_NAME": "reload", - "REPLUGGED_COMMAND_RELOAD_DESC": "Reload a plugin or theme", - "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME": "addon", - "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC": "Choose which addon to reload", - "REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED": "{type} {name} has been reloaded!", - "REPLUGGED_COMMAND_LIST_NAME": "list", - "REPLUGGED_COMMAND_LIST_DESC": "List all plugins or themes", - "REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME": "send", - "REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC": "Share the list publicly in chat", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME": "type", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC": "What type of addons to show", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN": "List Plugins", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME": "List Themes", - "REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME": "version", - "REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC": "Include version numbers in the list", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME": "status", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC": "Whether to show addons that are enabled, disabled or both", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED": "Enabled", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED": "Disabled", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH": "Both", - "REPLUGGED_COMMAND_LIST_HEADER_ENABLED": "Enabled {type}", - "REPLUGGED_COMMAND_LIST_HEADER_DISABLED": "Disabled {type}", - "REPLUGGED_COMMAND_LIST_ERROR_SPECIFY": "You need to specify whether to send a plugin or theme list", - "REPLUGGED_COMMAND_INSTALL_NAME": "install", - "REPLUGGED_COMMAND_INSTALL_DESC": "Install a plugin or theme", - "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME": "addon", - "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC": "Identifier of the addon to install from the source", - "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME": "source", - "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC": "Source to install the addon from", - "REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME": "id", - "REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC": "If the source has multiple addons, specify which one to install", - "REPLUGGED_ERROR_ALREADY_INSTALLED": "{name} is already installed.", - "REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND": "An error occurred while executing the command:", - "REPLUGGED_ERROR_CHECK_CONSOLE": "Check the console for more details.", - "REPLUGGED_GENERAL_SETTINGS": "General Settings", - "REPLUGGED_I18N_CONTRIBUTE": "Want to help translate Replugged? Go to our [Weblate]({weblateUrl})!", - "REPLUGGED_I18N_TRANSLATED_PERCENTAGE": "Replugged: {translated,number}% translated", - "REPLUGGED_INSTALL_MODAL_HEADER": "Install {type}", - "REPLUGGED_LINK_NOW": "Link it now", - "REPLUGGED_NOTICES_WELCOME_NEW_USER": "Welcome! Replugged has been successfully injected into your Discord client. Feel free to join our Discord server for announcements, support and more!", - "REPLUGGED_NOTICES_JOIN_SERVER_BUTTON": "Join Server", - "REPLUGGED_PLUGIN": "Plugin", - "REPLUGGED_PLUGINS": "Plugins", - "REPLUGGED_QUICKCSS": "Quick CSS", - "REPLUGGED_SETTINGS_ADVANCED_DESC": "Don't touch stuff in here if you don't know what you're doing. Unexpected things can happen to your cat.", - "REPLUGGED_SETTINGS_BACKEND": "Backend URL", - "REPLUGGED_SETTINGS_BACKEND_DESC": "URL used to fetch some assets and to query Replugged's REST API.", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS": "Enable Discord Experiments", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC": "****WARNING:**** Enabling this gives you access to features that can be detected by Discord and may result in an ****account termination****. Replugged is **not responsible** for what you do with this feature. Leave it disabled if you are unsure. The Replugged Team will **not** provide any support regarding any experiment. **Requires restart**.", - "REPLUGGED_SETTINGS_ERROR_HEADER": "Something went wrong rendering this element!", - "REPLUGGED_SETTINGS_ERROR_RENDER_PANEL": "An error occurred while rendering settings panel.", - "REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK": "Component stack:", - "REPLUGGED_SETTINGS_KEEP_TOKEN": "Keep token stored", - "REPLUGGED_SETTINGS_KEEP_TOKEN_DESC": "Prevents Discord from removing your token from localStorage, reducing the numbers of unwanted logouts.", - "REPLUGGED_SETTINGS_NO_CLYDE": "Eradicate Clyde", - "REPLUGGED_SETTINGS_NO_CLYDE_DESC": "Replaces [Clyde]({clydeUrl}) in Replugged commands with a mixed range of avatars and usernames selected by plug-in developers - fallbacks to \"Replugged\" by default.", - "REPLUGGED_SETTINGS_OVERLAY": "Overlay DevTools", - "REPLUGGED_SETTINGS_OVERLAY_DESC": "Opens a DevTools window that lets you inspect what's happening within Discord's in-game overlay.", - "REPLUGGED_SETTINGS_RESTART": "This setting requires you to restart Discord to take effect. Do you want to restart Discord now?", - "REPLUGGED_SNIPPET_APPLIED": "Snippet Applied", - "REPLUGGED_SNIPPET_APPLY": "Apply Snippet", - "REPLUGGED_SNIPPET_LINE1": "Snippet from #css-snippets applied the {date, date, medium} at {date, time, medium}", - "REPLUGGED_SNIPPET_LINE2": "Created by {authorTag} ({authorId})", - "REPLUGGED_THEME": "Theme", - "REPLUGGED_THEMES": "Themes", - "REPLUGGED_UPDATES_AVAILABLE": "{count, plural, =1 {# update is} other {# updates are}} available.", - "REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE": "Reload Required", - "REPLUGGED_UPDATES_CHECK": "Check for Updates", - "REPLUGGED_UPDATES_ENABLE": "Enable Updates", - "REPLUGGED_UPDATES_FAILED": "Some updates failed!", - "REPLUGGED_UPDATES_FORCE": "Force Update", - "REPLUGGED_UPDATES_LAST_CHECKED": "Last checked: {date}", - "REPLUGGED_UPDATES_OPEN_UPDATER": "Open Updater", - "REPLUGGED_UPDATES_OPTS_AUTO": "Check for updates automatically", - "REPLUGGED_UPDATES_OPTS_AUTO_DESC": "Replugged will automatically check for updates and show you an alert when one is available. Updates will not be installed until you choose to update it. Only official addons will be checked automatically.", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS": "Open Change Log", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC": "Missed the change log, or want to see it again?", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY": "Update Concurrency Limit", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC": "How many concurrent tasks Replugged will run in background to check for updates. Minimum 1. If unsure, leave 2.", - "REPLUGGED_UPDATES_OPTS_DEBUG": "Debugging Information", - "REPLUGGED_UPDATES_OPTS_DEBUG_DESC": "Things that you may find useful for troubleshooting or flexing on some stats.", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD": "System / Discord", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS": "Process Versions", - "REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE": "Locale:", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS": "OS:", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT": "64-bit", - "REPLUGGED_UPDATES_OPTS_DEBUG_ARCH": "Architecture:", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO": "Distro:", - "REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL": "Release Channel:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION": "App Version:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER": "Build Number:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID": "Build ID:", - "REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS": "Experiments:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS": "Commands:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPIED": "Copied!", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPY": "Copy", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS": "Settings:", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS": "Plugins:", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS": "Show less", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE": "Show more", - "REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS": "Unauthorized plugins:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS": "BetterDiscord Plugins:", - "REPLUGGED_UPDATES_OPTS_DEBUG_THEMES": "Themes:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LABS": "Labs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC": "Settings Sync:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES": "Cached Files:", - "REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT": "Account:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APIS": "APIs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS": "Connections:", - "REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM": "Upstream:", - "REPLUGGED_UPDATES_OPTS_DEBUG_REVISION": "Revision:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH": "Branch:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LATEST": "Latest:", - "REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH": "Replugged Path", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH": "Discord Path", - "REPLUGGED_UPDATES_OPTS_INTERVAL": "Update Check Interval", - "REPLUGGED_UPDATES_OPTS_INTERVAL_DESC": "How frequently Replugged will check for updates. Minimum 10 minutes.", - "REPLUGGED_UPDATES_OPTS_RELEASE": "Change Release Channel", - "REPLUGGED_UPDATES_OPTS_RELEASE_DESC": "You can choose between the stable branch, or the development branch. Stable branch will only get major updates, security and critical updates. If unsure, stay on stable.", - "REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN": "Switch to development branch", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL": "Are you sure you want to change your release channel? Replugged will reload your Discord client.", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER": "Change release channel", - "REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN": "Switch to stable", - "REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH": "Switch", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED": "Show update checker toast", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC": "Show an overlay over the client which says updates are being checked for, and if updates are found, prompt you to update. Only applies if update in background is disabled.", - "REPLUGGED_UPDATES_UPDATER": "Updater", - "REPLUGGED_UPDATES_UPDATE": "Update", - "REPLUGGED_UPDATES_UPDATING": "Updating Replugged…", - "REPLUGGED_UPDATES_UPDATING_ITEM": "Updating…", - "REPLUGGED_UPDATES_UP_TO_DATE": "Everything is up to date.", - "REPLUGGED_PLUGIN_EMBED_COPY": "Copy Link", - "REPLUGGED_PLUGIN_EMBED_VIEW_REPO": "View Repo", - "REPLUGGED_PLUGIN_EMBED_COPIED": "Copied!", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS": "What is this?", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT": "This is a Replugged feature. It allows you to install plugins or themes straight from chat.\nSimply hit the install button on the embed.", - "REPLUGGED_ADDON_DELETE": "Delete {type}", - "REPLUGGED_ADDON_PAGE_OPEN": "Open {type} Page", - "REPLUGGED_ADDON_PROFILE_OPEN": "Open {type} Profile", - "REPLUGGED_ADDON_RELOAD": "Reload {type}", - "REPLUGGED_ADDON_SETTINGS": "Open {type} Settings", - "REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY": "Are you sure you want to uninstall this {type}? This cannot be undone.", - "REPLUGGED_ADDON_UNINSTALL": "Uninstall {name}", - "REPLUGGED_ADDONS_FOLDER_OPEN": "Open {type} Folder", - "REPLUGGED_ADDONS_LOAD_MISSING": "Load Missing {type}", - "REPLUGGED_ADDONS_TITLE_COUNT": "{type} ({count, number})", - "REPLUGGED_LIST_RESULTS": "{count, plural, =1 {# match} other {# matches}}", - "REPLUGGED_NO_ADDON_RESULTS": "No {type} matched your search.", - "REPLUGGED_NO_ADDONS_INSTALLED": "No {type} installed.", - "REPLUGGED_QUICKCSS_CHANGES_APPLY": "Apply Changes", - "REPLUGGED_SEARCH_FOR_ADDON": "Search for a {type}", - "REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS": "Disabled {name}", - "REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS": "Enabled {name}", - "REPLUGGED_TOAST_ADDON_RELOAD_FAILED": "Failed to reload {name}", - "REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS": "Reloaded {name}", - "REPLUGGED_TOAST_ADDON_TOGGLE_FAILED": "Failed to toggle {name}", - "REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED": "Failed to uninstall {name}", - "REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS": "Uninstalled {name}", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED": "Failed to load missing {type}", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS": "Loaded missing {type}", - "REPLUGGED_TOAST_PROFILE_FETCH_FAILED": "Failed to fetch user profile", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED": "Failed to format code", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS": "Code formatted", - "REPLUGGED_TOAST_QUICKCSS_RELOAD": "Quick CSS reloaded", - "REPLUGGED_SETTINGS_ERROR_SUB_HEADER": "Check console for details.", - "REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY": "Do you want to install {name} {authors}?", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED": "Failed to install {name}.", - "REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED": "{name} was installed but could not be loaded.", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS": "{name} installed successfully.", - "REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED": "Failed to get info for addon.", - "REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL": "Install canceled.", - "REPLUGGED_QUICKCSS_FOLDER_OPEN": "Open Quick CSS Folder", - "REPLUGGED_ADDON_AUTHORS_ONE": "by {author1}", - "REPLUGGED_ADDON_AUTHORS_TWO": "by {author1} and {author2}", - "REPLUGGED_ADDON_AUTHORS_THREE": "by {author1}, {author2}, and {author3}", - "REPLUGGED_ADDON_AUTHORS_MANY": "by {author1}, {author2}, {author3}, and {count, plural, =1 {# other} other {# others}}", - "REPLUGGED_CONFIRM_INSTALL": "Install", - "REPLUGGED_UPDATES_UPDATE_ALL": "Update All", - "REPLUGGED_UPDATES_UPDATE_TO": "Update to {version}", - "REPLUGGED_UPDATES_TOAST_NO_NEW": "No new updates available.", - "REPLUGGED_UPDATES_TOAST_NEW": "{count, plural, =1 {# new update} other {# new updates}} available!", - "REPLUGGED_UPDATES_TOAST_FAILED_ONE": "Update failed!", - "REPLUGGED_UPDATES_TOAST_FAILED_ALL": "Some updates failed!", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ONE": "Update completed successfully.", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ALL": "All updates completed successfully.", - "REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY": "{name} requires a reload to work properly. Reload now?", - "REPLUGGED_RELOAD": "Reload", - "REPLUGGED_UPDATES_UPDATE_NOUN": "Update", - "REPLUGGED_VERSION": "Replugged {version, select, dev {[DEV MODE]} other {v{version}}}", - "REPLUGGED_SETTINGS_BADGES": "Enable Replugged Badges", - "REPLUGGED_SETTINGS_BADGES_DESC": "Show custom Replugged badges on user profiles.", - "REPLUGGED_I18N": "Replugged Translations", - "REPLUGGED_VIEW_UPDATES": "View {count, plural, =1 {# Update} other {# Updates}}", - "REPLUGGED_DEVELOPER_MODE_WARNING": "You are currently running Replugged in developer mode and Replugged will not be able to update itself. [Switch to production mode]({url}).", - "REPLUGGED_ADDON_BROWSE": "Browse {type}", - "REPLUGGED_ADDON_NOT_REVIEWED": "Unreviewed {type}", - "REPLUGGED_ADDON_NOT_REVIEWED_DESC": "This {type} has not been reviewed by the Replugged team and could harm your computer. Use at your own risk.", - "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY": "Automatically Apply Quick CSS", - "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC": "Automatically apply changes to Quick CSS as you type.", - "REPLUGGED_SETTINGS_DEV_COMPANION": "Reconnect Dev Companion", - "REPLUGGED_SETTINGS_DEV_COMPANION_DESC": "Reconnects the Dev Companion coremod to the VSCode extension.", - "REPLUGGED_SETTINGS_DEV_COMPANION_RECONNECT": "Reconnect", - "REPLUGGED_SETTINGS_ADVANCED": "Advanced Settings", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS": "Enable React DevTools", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC": "Loads the React DevTools extension, allowing you to inspect the React tree and debug more easily. **Requires restart**.", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED": "Failed to download React DevTools.", - "REPLUGGED_INSTALLER_OPEN_STORE": "View in Store", - "REPLUGGED_SETTINGS_ADDON_EMBEDS": "Show Addon Embeds", - "REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC": "Show a card with information on an addon when a store/install link is shared in chat.", - "REPLUGGED_RESTART": "Restart", - "REPLUGGED_SETTINGS_RESTART_TITLE": "Restart Required", - "REPLUGGED_SETTINGS_TRANSPARENT": "Transparent Window", - "REPLUGGED_SETTINGS_TRANSPARENT_DESC": "Makes the Discord window transparent, primarily useful for theming. **Requires restart**.", - "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_WINDOWS": "****WARNING:**** This will break **window snapping**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked.", - "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_LINUX": "****WARNING:**** **Hardware acceleration** may need to be turned **off**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked.", - "REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME": "Plugin: {name}", - "REPLUGGED_STORE": "Store" -} diff --git a/i18n/en-US.messages.d.ts b/i18n/en-US.messages.d.ts new file mode 100644 index 000000000..77901fb2d --- /dev/null +++ b/i18n/en-US.messages.d.ts @@ -0,0 +1,3183 @@ +/* THIS FILE IS AUTOGENERATED. DO NOT EDIT MANUALLY. */ +/* eslint-disable */ +/* prettier-ignore */ + +import {MessageLoader, TypedIntlMessageGetter, HandlerFunction, HookFunction, LinkFunction} from '@discord/intl'; + +export declare const messagesLoader: MessageLoader; + +declare const messages: { + /** + * Key: `Xyo9Z2` + * + * ### Definition + * ```text + * Replugged Account + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_ACCOUNT': TypedIntlMessageGetter<{}>, + /** + * Key: `oDaOkJ` + * + * ### Definition + * ```text + * Open {type} Folder + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDONS_FOLDER_OPEN': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `bQBP1t` + * + * ### Definition + * ```text + * Load Missing {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDONS_LOAD_MISSING': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `vX/Z3N` + * + * ### Definition + * ```text + * {type} ({count, number}) + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDONS_TITLE_COUNT': TypedIntlMessageGetter<{count: number | string, type: any}>, + /** + * Key: `XuYvz8` + * + * ### Definition + * ```text + * by {author1}, {author2}, {author3}, and {count, plural, =1 {# other} other {# others}} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_AUTHORS_MANY': TypedIntlMessageGetter<{author1: any, author2: any, author3: any, count: any | number | string}>, + /** + * Key: `H/KS9/` + * + * ### Definition + * ```text + * by {author1} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_AUTHORS_ONE': TypedIntlMessageGetter<{author1: any}>, + /** + * Key: `2rQVGR` + * + * ### Definition + * ```text + * by {author1}, {author2}, and {author3} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_AUTHORS_THREE': TypedIntlMessageGetter<{author1: any, author2: any, author3: any}>, + /** + * Key: `t0iUjY` + * + * ### Definition + * ```text + * by {author1} and {author2} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_AUTHORS_TWO': TypedIntlMessageGetter<{author1: any, author2: any}>, + /** + * Key: `r7ScHB` + * + * ### Definition + * ```text + * Browse {type} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_ADDON_BROWSE': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `oYIqAQ` + * + * ### Definition + * ```text + * Delete {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_DELETE': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `Vu4iKC` + * + * ### Definition + * ```text + * Unreviewed {type} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_ADDON_NOT_REVIEWED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `QkGpp6` + * + * ### Definition + * ```text + * This {type} has not been reviewed by the Replugged team and could harm your computer. Use at your own risk. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_ADDON_NOT_REVIEWED_DESC': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `SxMPW1` + * + * ### Definition + * ```text + * Open {type} Page + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_PAGE_OPEN': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `kxDIJy` + * + * ### Definition + * ```text + * Open {type} Profile + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_PROFILE_OPEN': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `BfSK7e` + * + * ### Definition + * ```text + * Reload {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_RELOAD': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `rDXyPT` + * + * ### Definition + * ```text + * Open {type} Settings + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_SETTINGS': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `WqqBfH` + * + * ### Definition + * ```text + * Uninstall {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_UNINSTALL': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `n8oLCQ` + * + * ### Definition + * ```text + * Are you sure you want to uninstall this {type}? This cannot be undone. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY': TypedIntlMessageGetter<{type: 'plugin' | any | string}>, + /** + * Key: `x8YaWl` + * + * ### Definition + * ```text + * Replugged Server Booster + * ``` + * + * ### Problems + * + * Missing translations: `da` + */ + 'REPLUGGED_BADGES_BOOSTER': TypedIntlMessageGetter<{}>, + /** + * Key: `vtpx0t` + * + * ### Definition + * ```text + * Replugged Contributor + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_CONTRIBUTOR': TypedIntlMessageGetter<{}>, + /** + * Key: `ueaJho` + * + * ### Definition + * ```text + * Replugged Developer + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_DEVELOPER': TypedIntlMessageGetter<{}>, + /** + * Key: `GeyL7+` + * + * ### Definition + * ```text + * Replugged Early User + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_EARLY': TypedIntlMessageGetter<{}>, + /** + * Key: `gQ9ld3` + * + * ### Definition + * ```text + * Replugged Bug Hunter + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_HUNTER': TypedIntlMessageGetter<{}>, + /** + * Key: `K87yaW` + * + * ### Definition + * ```text + * Replugged Staff + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_STAFF': TypedIntlMessageGetter<{}>, + /** + * Key: `XSdK+f` + * + * ### Definition + * ```text + * Replugged Support + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_SUPPORT': TypedIntlMessageGetter<{}>, + /** + * Key: `AMqRmJ` + * + * ### Definition + * ```text + * Replugged Translator + * ``` + * + * **Translated in all locales** + */ + 'REPLUGGED_BADGES_TRANSLATOR': TypedIntlMessageGetter<{}>, + /** + * Key: `7g6vZG` + * + * ### Definition + * ```text + * Got It + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr` + */ + 'REPLUGGED_BUTTON_GOT_IT': TypedIntlMessageGetter<{}>, + /** + * Key: `nnLVsb` + * + * ### Definition + * ```text + * Download {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr` + */ + 'REPLUGGED_BUTTON_INSTALLER_DOWNLOAD': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `E6bNoK` + * + * ### Definition + * ```text + * {type} Installed + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr` + */ + 'REPLUGGED_BUTTON_INSTALLER_INSTALLED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `Jbffz8` + * + * ### Definition + * ```text + * Cancel + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr` + */ + 'REPLUGGED_CANCEL': TypedIntlMessageGetter<{}>, + /** + * Key: `j9kNoq` + * + * ### Definition + * ```text + * Choose which addon to enable + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `AYihy8` + * + * ### Definition + * ```text + * Disable a plugin or theme + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr` + */ + 'REPLUGGED_COMMAND_DISABLE_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `kxd08P` + * + * ### Definition + * ```text + * {type} {name} has been disabled! + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED': TypedIntlMessageGetter<{name: any, type: any}>, + /** + * Key: `2VoRpa` + * + * ### Definition + * ```text + * disable + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_DISABLE_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `8yBta2` + * + * ### Definition + * ```text + * Choose which addon to disable + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `14Ixlp` + * + * ### Definition + * ```text + * addon + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `OcnVf3` + * + * ### Definition + * ```text + * Enable a plugin or theme + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr` + */ + 'REPLUGGED_COMMAND_ENABLE_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `SB+cDQ` + * + * ### Definition + * ```text + * {type} {name} has been enabled! + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED': TypedIntlMessageGetter<{name: any, type: any}>, + /** + * Key: `I46ICw` + * + * ### Definition + * ```text + * enable + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_ENABLE_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `mgPYDQ` + * + * ### Definition + * ```text + * addon + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `0su4/v` + * + * ### Definition + * ```text + * Something went wrong, please try again later. If this issue persists, please contact the Replugged team. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_ERROR_GENERIC': TypedIntlMessageGetter<{}>, + /** + * Key: `uEKO6O` + * + * ### Definition + * ```text + * Install a plugin or theme + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `ccp7Mj` + * + * ### Definition + * ```text + * install + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `fw8KhI` + * + * ### Definition + * ```text + * Identifier of the addon to install from the source + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `qrawCQ` + * + * ### Definition + * ```text + * addon + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `7eLI9P` + * + * ### Definition + * ```text + * If the source has multiple addons, specify which one to install + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `4LCo9P` + * + * ### Definition + * ```text + * id + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `cfzF9P` + * + * ### Definition + * ```text + * Source to install the addon from + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `fuLlFh` + * + * ### Definition + * ```text + * source + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `99AWnp` + * + * ### Definition + * ```text + * List all plugins or themes + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `CCQadn` + * + * ### Definition + * ```text + * You need to specify whether to send a plugin or theme list + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_ERROR_SPECIFY': TypedIntlMessageGetter<{}>, + /** + * Key: `4U9kk5` + * + * ### Definition + * ```text + * Disabled {type} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_HEADER_DISABLED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `yPSO4O` + * + * ### Definition + * ```text + * Enabled {type} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_HEADER_ENABLED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `edMBSE` + * + * ### Definition + * ```text + * list + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `0wF2go` + * + * ### Definition + * ```text + * Share the list publicly in chat + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `lgmT39` + * + * ### Definition + * ```text + * send + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `IRl+z8` + * + * ### Definition + * ```text + * Both + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH': TypedIntlMessageGetter<{}>, + /** + * Key: `EZPH09` + * + * ### Definition + * ```text + * Disabled + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED': TypedIntlMessageGetter<{}>, + /** + * Key: `Vx9HW1` + * + * ### Definition + * ```text + * Enabled + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED': TypedIntlMessageGetter<{}>, + /** + * Key: `asrAw8` + * + * ### Definition + * ```text + * Whether to show addons that are enabled, disabled or both + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `kwqOfH` + * + * ### Definition + * ```text + * status + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `+4SVXl` + * + * ### Definition + * ```text + * List Plugins + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN': TypedIntlMessageGetter<{}>, + /** + * Key: `uZAN3N` + * + * ### Definition + * ```text + * List Themes + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME': TypedIntlMessageGetter<{}>, + /** + * Key: `JvNekZ` + * + * ### Definition + * ```text + * What type of addons to show + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `MJhj3d` + * + * ### Definition + * ```text + * type + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `lsDaLy` + * + * ### Definition + * ```text + * Include version numbers in the list + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `9k1eEx` + * + * ### Definition + * ```text + * version + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `ZDurVV` + * + * ### Definition + * ```text + * Reload a plugin or theme + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi`, `hr`, `lt` + */ + 'REPLUGGED_COMMAND_RELOAD_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `zr04NT` + * + * ### Definition + * ```text + * {type} {name} has been reloaded! + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED': TypedIntlMessageGetter<{name: any, type: any}>, + /** + * Key: `hoytSk` + * + * ### Definition + * ```text + * reload + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_RELOAD_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `trfssL` + * + * ### Definition + * ```text + * Choose which addon to reload + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `OBctb2` + * + * ### Definition + * ```text + * addon + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME': TypedIntlMessageGetter<{}>, + /** + * Key: `73G4zM` + * + * ### Definition + * ```text + * Success + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `vi`, `zh-CN` + */ + 'REPLUGGED_COMMAND_SUCCESS_GENERIC': TypedIntlMessageGetter<{}>, + /** + * Key: `/QavUl` + * + * ### Definition + * ```text + * Confirm + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `hr` + */ + 'REPLUGGED_CONFIRM': TypedIntlMessageGetter<{}>, + /** + * Key: `zENqYW` + * + * ### Definition + * ```text + * Install + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_CONFIRM_INSTALL': TypedIntlMessageGetter<{}>, + /** + * Key: `5A4ZGh` + * + * ### Definition + * ```text + * You are currently running Replugged in developer mode and Replugged will not be able to update itself. [Switch to production mode]({url}). + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_DEVELOPER_MODE_WARNING': TypedIntlMessageGetter<{$link?: LinkFunction, url: any}>, + /** + * Key: `noTXKC` + * + * ### Definition + * ```text + * {name} is already installed. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt` + */ + 'REPLUGGED_ERROR_ALREADY_INSTALLED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `0D5GGx` + * + * ### Definition + * ```text + * An error occurred while executing the command: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi`, `hr`, `lt` + */ + 'REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND': TypedIntlMessageGetter<{}>, + /** + * Key: `LacFoK` + * + * ### Definition + * ```text + * Check the console for more details. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi`, `hr`, `lt` + */ + 'REPLUGGED_ERROR_CHECK_CONSOLE': TypedIntlMessageGetter<{}>, + /** + * Key: `5m4FiY` + * + * ### Definition + * ```text + * General Settings + * ``` + * + * ### Problems + * + * Missing translations: `hi` + */ + 'REPLUGGED_GENERAL_SETTINGS': TypedIntlMessageGetter<{}>, + /** + * Key: `BS/AJC` + * + * ### Definition + * ```text + * Replugged Translations + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_I18N': TypedIntlMessageGetter<{}>, + /** + * Key: `5wPKhY` + * + * ### Definition + * ```text + * Want to help translate Replugged? Go to our [Weblate]({weblateUrl})! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_I18N_CONTRIBUTE': TypedIntlMessageGetter<{$link?: LinkFunction, weblateUrl: any}>, + /** + * Key: `hrc76+` + * + * ### Definition + * ```text + * Replugged: {translated,number}% translated + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `hi` + */ + 'REPLUGGED_I18N_TRANSLATED_PERCENTAGE': TypedIntlMessageGetter<{translated: number | string}>, + /** + * Key: `0impV1` + * + * ### Definition + * ```text + * Do you want to install {name} {authors}? + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY': TypedIntlMessageGetter<{authors: any, name: any}>, + /** + * Key: `/omzDw` + * + * ### Definition + * ```text + * View in Store + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_INSTALLER_OPEN_STORE': TypedIntlMessageGetter<{}>, + /** + * Key: `Cng03d` + * + * ### Definition + * ```text + * Install {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi`, `hr`, `lt` + */ + 'REPLUGGED_INSTALL_MODAL_HEADER': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `BfrDAw` + * + * ### Definition + * ```text + * Link it now + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_LINK_NOW': TypedIntlMessageGetter<{}>, + /** + * Key: `wUhy5u` + * + * ### Definition + * ```text + * {count, plural, =1 {# match} other {# matches}} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_LIST_RESULTS': TypedIntlMessageGetter<{count: any | number | string}>, + /** + * Key: `neLAkZ` + * + * ### Definition + * ```text + * Join Server + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `ro` + */ + 'REPLUGGED_NOTICES_JOIN_SERVER_BUTTON': TypedIntlMessageGetter<{}>, + /** + * Key: `zKRtMD` + * + * ### Definition + * ```text + * Welcome! Replugged has been successfully injected into your Discord client. Feel free to join our Discord server for announcements, support and more! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `ro` + */ + 'REPLUGGED_NOTICES_WELCOME_NEW_USER': TypedIntlMessageGetter<{}>, + /** + * Key: `+cl+ra` + * + * ### Definition + * ```text + * No {type} installed. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_NO_ADDONS_INSTALLED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `nT98BQ` + * + * ### Definition + * ```text + * No {type} matched your search. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_NO_ADDON_RESULTS': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `9+yBFh` + * + * ### Definition + * ```text + * OK + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hr`, `no` + */ + 'REPLUGGED_OK': TypedIntlMessageGetter<{}>, + /** + * Key: `nrTCTU` + * + * ### Definition + * ```text + * Plugin + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `ro` + */ + 'REPLUGGED_PLUGIN': TypedIntlMessageGetter<{}>, + /** + * Key: `Jyz+XV` + * + * ### Definition + * ```text + * Plugins + * ``` + * + * ### Problems + * + * Missing translations: `hi` + */ + 'REPLUGGED_PLUGINS': TypedIntlMessageGetter<{}>, + /** + * Key: `ibSpio` + * + * ### Definition + * ```text + * Copied! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr`, `no` + */ + 'REPLUGGED_PLUGIN_EMBED_COPIED': TypedIntlMessageGetter<{}>, + /** + * Key: `IlKRVF` + * + * ### Definition + * ```text + * Copy Link + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr`, `no` + */ + 'REPLUGGED_PLUGIN_EMBED_COPY': TypedIntlMessageGetter<{}>, + /** + * Key: `sl1Dvb` + * + * ### Definition + * ```text + * View Repo + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr`, `no` + */ + 'REPLUGGED_PLUGIN_EMBED_VIEW_REPO': TypedIntlMessageGetter<{}>, + /** + * Key: `siCr0d` + * + * ### Definition + * ```text + * What is this? + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr`, `no` + */ + 'REPLUGGED_PLUGIN_EMBED_WHATISTHIS': TypedIntlMessageGetter<{}>, + /** + * Key: `OxZy5+` + * + * ### Definition + * ```text + * This is a Replugged feature. It allows you to install plugins or themes straight from chat. + * Simply hit the install button on the embed. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `hr`, `no` + */ + 'REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT': TypedIntlMessageGetter<{}>, + /** + * Key: `OjncuL` + * + * ### Definition + * ```text + * {name} requires a reload to work properly. Reload now? + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `NhWNBQ` + * + * ### Definition + * ```text + * Quick CSS + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `hi` + */ + 'REPLUGGED_QUICKCSS': TypedIntlMessageGetter<{}>, + /** + * Key: `pUuDNj` + * + * ### Definition + * ```text + * Apply Changes + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_QUICKCSS_CHANGES_APPLY': TypedIntlMessageGetter<{}>, + /** + * Key: `Nk3LNj` + * + * ### Definition + * ```text + * Open Quick CSS Folder + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_QUICKCSS_FOLDER_OPEN': TypedIntlMessageGetter<{}>, + /** + * Key: `gJM35e` + * + * ### Definition + * ```text + * Reload + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_RELOAD': TypedIntlMessageGetter<{}>, + /** + * Key: `kkhJpa` + * + * ### Definition + * ```text + * Restart + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_RESTART': TypedIntlMessageGetter<{}>, + /** + * Key: `e5G3RE` + * + * ### Definition + * ```text + * Search for a {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_SEARCH_FOR_ADDON': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `wxHqIi` + * + * ### Definition + * ```text + * Show Addon Embeds + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_ADDON_EMBEDS': TypedIntlMessageGetter<{}>, + /** + * Key: `T1XIIy` + * + * ### Definition + * ```text + * Show a card with information on an addon when a store/install link is shared in chat. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `PdrtPz` + * + * ### Definition + * ```text + * Advanced Settings + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_ADVANCED': TypedIntlMessageGetter<{}>, + /** + * Key: `vdzF9v` + * + * ### Definition + * ```text + * Don't touch stuff in here if you don't know what you're doing. Unexpected things can happen to your cat. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_ADVANCED_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `oiDUNz` + * + * ### Definition + * ```text + * Backend URL + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_BACKEND': TypedIntlMessageGetter<{}>, + /** + * Key: `zE/g8v` + * + * ### Definition + * ```text + * URL used to fetch some assets and to query Replugged's REST API. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_BACKEND_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `Apex2t` + * + * ### Definition + * ```text + * Enable Replugged Badges + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_BADGES': TypedIntlMessageGetter<{}>, + /** + * Key: `Vtw/EB` + * + * ### Definition + * ```text + * Show custom Replugged badges on user profiles. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_BADGES_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `RIDq4u` + * + * ### Definition + * ```text + * Reconnect Dev Companion + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_DEV_COMPANION': TypedIntlMessageGetter<{}>, + /** + * Key: `oGh+VF` + * + * ### Definition + * ```text + * Reconnects the Dev Companion coremod to the VSCode extension. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_DEV_COMPANION_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `SPo+8/` + * + * ### Definition + * ```text + * Reconnect + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_DEV_COMPANION_RECONNECT': TypedIntlMessageGetter<{}>, + /** + * Key: `ObxHdn` + * + * ### Definition + * ```text + * Enable Discord Experiments + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS': TypedIntlMessageGetter<{}>, + /** + * Key: `efBu/P` + * + * ### Definition + * ```text + * ****WARNING:**** Enabling this gives you access to features that can be detected by Discord and may result in an ****account termination****. Replugged is **not responsible** for what you do with this feature. Leave it disabled if you are unsure. The Replugged Team will **not** provide any support regarding any experiment. **Requires restart**. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + * + * Spurious variables from translations:`$i` - `nl`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC': TypedIntlMessageGetter<{$b?: HookFunction, $i?: HookFunction}>, + /** + * Key: `V58dvb` + * + * ### Definition + * ```text + * Component stack: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK': TypedIntlMessageGetter<{}>, + /** + * Key: `qlA8Ii` + * + * ### Definition + * ```text + * Something went wrong rendering this element! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_SETTINGS_ERROR_HEADER': TypedIntlMessageGetter<{}>, + /** + * Key: `em6Xqa` + * + * ### Definition + * ```text + * Plugin: {name} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `sC+4pa` + * + * ### Definition + * ```text + * An error occurred while rendering settings panel. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_SETTINGS_ERROR_RENDER_PANEL': TypedIntlMessageGetter<{}>, + /** + * Key: `aXsXW1` + * + * ### Definition + * ```text + * Check console for details. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_SETTINGS_ERROR_SUB_HEADER': TypedIntlMessageGetter<{}>, + /** + * Key: `RbreAA` + * + * ### Definition + * ```text + * Keep token stored + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_SETTINGS_KEEP_TOKEN': TypedIntlMessageGetter<{}>, + /** + * Key: `Z/7+YG` + * + * ### Definition + * ```text + * Prevents Discord from removing your token from localStorage, reducing the numbers of unwanted logouts. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_KEEP_TOKEN_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `k5xIBA` + * + * ### Definition + * ```text + * Eradicate Clyde + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_NO_CLYDE': TypedIntlMessageGetter<{}>, + /** + * Key: `h7GhqK` + * + * ### Definition + * ```text + * Replaces [Clyde]({clydeUrl}) in Replugged commands with a mixed range of avatars and usernames selected by plug-in developers - fallbacks to "Replugged" by default. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_NO_CLYDE_DESC': TypedIntlMessageGetter<{$link?: LinkFunction, clydeUrl: any}>, + /** + * Key: `1VHQaG` + * + * ### Definition + * ```text + * Overlay DevTools + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_OVERLAY': TypedIntlMessageGetter<{}>, + /** + * Key: `PS+ccX` + * + * ### Definition + * ```text + * Opens a DevTools window that lets you inspect what's happening within Discord's in-game overlay. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_OVERLAY_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `eXvP6O` + * + * ### Definition + * ```text + * Automatically Apply Quick CSS + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY': TypedIntlMessageGetter<{}>, + /** + * Key: `YPxTlZ` + * + * ### Definition + * ```text + * Automatically apply changes to Quick CSS as you type. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `ojp79/` + * + * ### Definition + * ```text + * Enable React DevTools + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_REACT_DEVTOOLS': TypedIntlMessageGetter<{}>, + /** + * Key: `CXRYCg` + * + * ### Definition + * ```text + * Loads the React DevTools extension, allowing you to inspect the React tree and debug more easily. **Requires restart**. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC': TypedIntlMessageGetter<{$b?: HookFunction}>, + /** + * Key: `7VpRfX` + * + * ### Definition + * ```text + * Failed to download React DevTools. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED': TypedIntlMessageGetter<{}>, + /** + * Key: `LBwcjY` + * + * ### Definition + * ```text + * This setting requires you to restart Discord to take effect. Do you want to restart Discord now? + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SETTINGS_RESTART': TypedIntlMessageGetter<{}>, + /** + * Key: `l8U+/v` + * + * ### Definition + * ```text + * Restart Required + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_RESTART_TITLE': TypedIntlMessageGetter<{}>, + /** + * Key: `F1Fb1N` + * + * ### Definition + * ```text + * Transparent Window + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_TRANSPARENT': TypedIntlMessageGetter<{}>, + /** + * Key: `N8g5S0` + * + * ### Definition + * ```text + * Makes the Discord window transparent, primarily useful for theming. **Requires restart**. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_TRANSPARENT_DESC': TypedIntlMessageGetter<{$b?: HookFunction}>, + /** + * Key: `x4OZi4` + * + * ### Definition + * ```text + * ****WARNING:**** **Hardware acceleration** may need to be turned **off**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `uk`, `vi`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_LINUX': TypedIntlMessageGetter<{$b?: HookFunction}>, + /** + * Key: `KZ4tws` + * + * ### Definition + * ```text + * ****WARNING:**** This will break **window snapping**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `sk`, `sv-SE`, `uk`, `vi`, `zh-CN` + */ + 'REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_WINDOWS': TypedIntlMessageGetter<{$b?: HookFunction}>, + /** + * Key: `b2oqX1` + * + * ### Definition + * ```text + * Snippet Applied + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi` + */ + 'REPLUGGED_SNIPPET_APPLIED': TypedIntlMessageGetter<{}>, + /** + * Key: `Fhn1Mz` + * + * ### Definition + * ```text + * Apply Snippet + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SNIPPET_APPLY': TypedIntlMessageGetter<{}>, + /** + * Key: `TTn6PD` + * + * ### Definition + * ```text + * Snippet from #css-snippets applied the {date, date, medium} at {date, time, medium} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi`, `ko` + */ + 'REPLUGGED_SNIPPET_LINE1': TypedIntlMessageGetter<{date: Date | number}>, + /** + * Key: `vL1+go` + * + * ### Definition + * ```text + * Created by {authorTag} ({authorId}) + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_SNIPPET_LINE2': TypedIntlMessageGetter<{authorId: any, authorTag: any}>, + /** + * Key: `haZx5+` + * + * ### Definition + * ```text + * Store + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `es-ES`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `ko`, `lt`, `nl`, `no`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `vi`, `zh-CN` + */ + 'REPLUGGED_STORE': TypedIntlMessageGetter<{}>, + /** + * Key: `kZXj5O` + * + * ### Definition + * ```text + * Theme + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_THEME': TypedIntlMessageGetter<{}>, + /** + * Key: `nivuVl` + * + * ### Definition + * ```text + * Themes + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_THEMES': TypedIntlMessageGetter<{}>, + /** + * Key: `wrIbiY` + * + * ### Definition + * ```text + * Failed to load missing {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `pNMhv7` + * + * ### Definition + * ```text + * Loaded missing {type} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS': TypedIntlMessageGetter<{type: any}>, + /** + * Key: `LV9nQ0` + * + * ### Definition + * ```text + * Failed to disable {name} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `cs`, `da`, `de`, `el`, `en-GB`, `es-ES`, `fi`, `fr`, `he`, `hi`, `hr`, `hu`, `id`, `it`, `ja`, `ko`, `lt`, `nl`, `no`, `pl`, `pt-BR`, `pt-PT`, `ro`, `ru`, `sk`, `sv-SE`, `tr`, `uk`, `vi`, `zh-CN`, `zh-TW` + */ + 'REPLUGGED_TOAST_ADDON_DISABLE_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `bikK6u` + * + * ### Definition + * ```text + * Disabled {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `k0hIQ0` + * + * ### Definition + * ```text + * Enabled {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `iG2TFR` + * + * ### Definition + * ```text + * Failed to reload {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_RELOAD_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `3ZmGZG` + * + * ### Definition + * ```text + * Reloaded {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `3L5Ego` + * + * ### Definition + * ```text + * Failed to toggle {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_TOGGLE_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `IO1HHh` + * + * ### Definition + * ```text + * Failed to uninstall {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `Dthsfn` + * + * ### Definition + * ```text + * Uninstalled {name} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `CDqdr6` + * + * ### Definition + * ```text + * Install canceled. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL': TypedIntlMessageGetter<{}>, + /** + * Key: `1P0W0t` + * + * ### Definition + * ```text + * Failed to get info for addon. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED': TypedIntlMessageGetter<{}>, + /** + * Key: `1RiUEx` + * + * ### Definition + * ```text + * Failed to install {name}. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `/YMwrq` + * + * ### Definition + * ```text + * {name} installed successfully. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `NqlJ39` + * + * ### Definition + * ```text + * {name} was installed but could not be loaded. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED': TypedIntlMessageGetter<{name: any}>, + /** + * Key: `HZhNXl` + * + * ### Definition + * ```text + * Failed to fetch user profile + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_PROFILE_FETCH_FAILED': TypedIntlMessageGetter<{}>, + /** + * Key: `avF+9f` + * + * ### Definition + * ```text + * Failed to format code + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED': TypedIntlMessageGetter<{}>, + /** + * Key: `ZWqCNj` + * + * ### Definition + * ```text + * Code formatted + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS': TypedIntlMessageGetter<{}>, + /** + * Key: `rLb2kJ` + * + * ### Definition + * ```text + * Quick CSS reloaded + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_TOAST_QUICKCSS_RELOAD': TypedIntlMessageGetter<{}>, + /** + * Key: `VowTIi` + * + * ### Definition + * ```text + * {count, plural, =1 {# update is} other {# updates are}} available. + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_AVAILABLE': TypedIntlMessageGetter<{count: any | number | string}>, + /** + * Key: `+bwUnJ` + * + * ### Definition + * ```text + * Reload Required + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE': TypedIntlMessageGetter<{}>, + /** + * Key: `4PckvL` + * + * ### Definition + * ```text + * Check for Updates + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_CHECK': TypedIntlMessageGetter<{}>, + /** + * Key: `DCXylp` + * + * ### Definition + * ```text + * Enable Updates + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_ENABLE': TypedIntlMessageGetter<{}>, + /** + * Key: `0WdWvL` + * + * ### Definition + * ```text + * Some updates failed! + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_FAILED': TypedIntlMessageGetter<{}>, + /** + * Key: `Jlkmxc` + * + * ### Definition + * ```text + * Force Update + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_FORCE': TypedIntlMessageGetter<{}>, + /** + * Key: `c2FNBw` + * + * ### Definition + * ```text + * Last checked: {date} + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_LAST_CHECKED': TypedIntlMessageGetter<{date: any}>, + /** + * Key: `27q8zc` + * + * ### Definition + * ```text + * Open Updater + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPEN_UPDATER': TypedIntlMessageGetter<{}>, + /** + * Key: `X0pjLy` + * + * ### Definition + * ```text + * Check for updates automatically + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_AUTO': TypedIntlMessageGetter<{}>, + /** + * Key: `8Ko1gI` + * + * ### Definition + * ```text + * Replugged will automatically check for updates and show you an alert when one is available. Updates will not be installed until you choose to update it. Only official addons will be checked automatically. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_AUTO_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `aB8UjI` + * + * ### Definition + * ```text + * Open Change Log + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_CHANGE_LOGS': TypedIntlMessageGetter<{}>, + /** + * Key: `DM7iqq` + * + * ### Definition + * ```text + * Missed the change log, or want to see it again? + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `ftHbLi` + * + * ### Definition + * ```text + * Update Concurrency Limit + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_CONCURRENCY': TypedIntlMessageGetter<{}>, + /** + * Key: `fmENlJ` + * + * ### Definition + * ```text + * How many concurrent tasks Replugged will run in background to check for updates. Minimum 1. If unsure, leave 2. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `CIFw1N` + * + * ### Definition + * ```text + * Debugging Information + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG': TypedIntlMessageGetter<{}>, + /** + * Key: `e7Hqdn` + * + * ### Definition + * ```text + * Account: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT': TypedIntlMessageGetter<{}>, + /** + * Key: `IbMEX1` + * + * ### Definition + * ```text + * APIs: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_APIS': TypedIntlMessageGetter<{}>, + /** + * Key: `IDwV7e` + * + * ### Definition + * ```text + * App Version: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION': TypedIntlMessageGetter<{}>, + /** + * Key: `izOrlp` + * + * ### Definition + * ```text + * Architecture: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_ARCH': TypedIntlMessageGetter<{}>, + /** + * Key: `41Hijo` + * + * ### Definition + * ```text + * BetterDiscord Plugins: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS': TypedIntlMessageGetter<{}>, + /** + * Key: `ZunGND` + * + * ### Definition + * ```text + * Branch: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH': TypedIntlMessageGetter<{}>, + /** + * Key: `hglZeX` + * + * ### Definition + * ```text + * Build ID: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID': TypedIntlMessageGetter<{}>, + /** + * Key: `UaHLbW` + * + * ### Definition + * ```text + * Build Number: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER': TypedIntlMessageGetter<{}>, + /** + * Key: `t6FmmZ` + * + * ### Definition + * ```text + * Cached Files: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES': TypedIntlMessageGetter<{}>, + /** + * Key: `eLglnp` + * + * ### Definition + * ```text + * Process Versions + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS': TypedIntlMessageGetter<{}>, + /** + * Key: `aK5NIC` + * + * ### Definition + * ```text + * System / Discord + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD': TypedIntlMessageGetter<{}>, + /** + * Key: `6QTPq6` + * + * ### Definition + * ```text + * Commands: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS': TypedIntlMessageGetter<{}>, + /** + * Key: `YP8MeX` + * + * ### Definition + * ```text + * Connections: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS': TypedIntlMessageGetter<{}>, + /** + * Key: `IlS5Nj` + * + * ### Definition + * ```text + * Copied! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_COPIED': TypedIntlMessageGetter<{}>, + /** + * Key: `ORcmoK` + * + * ### Definition + * ```text + * Copy + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_COPY': TypedIntlMessageGetter<{}>, + /** + * Key: `sNWpYW` + * + * ### Definition + * ```text + * Things that you may find useful for troubleshooting or flexing on some stats. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `POJMPz` + * + * ### Definition + * ```text + * Discord Path + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH': TypedIntlMessageGetter<{}>, + /** + * Key: `eH844u` + * + * ### Definition + * ```text + * Distro: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO': TypedIntlMessageGetter<{}>, + /** + * Key: `v2rFBA` + * + * ### Definition + * ```text + * Experiments: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS': TypedIntlMessageGetter<{}>, + /** + * Key: `x3ohYG` + * + * ### Definition + * ```text + * Labs: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_LABS': TypedIntlMessageGetter<{}>, + /** + * Key: `XBypcX` + * + * ### Definition + * ```text + * Latest: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_LATEST': TypedIntlMessageGetter<{}>, + /** + * Key: `SgC4V1` + * + * ### Definition + * ```text + * Locale: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE': TypedIntlMessageGetter<{}>, + /** + * Key: `q7A+T0` + * + * ### Definition + * ```text + * OS: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_OS': TypedIntlMessageGetter<{}>, + /** + * Key: `RBKQkZ` + * + * ### Definition + * ```text + * 64-bit + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT': TypedIntlMessageGetter<{}>, + /** + * Key: `+IgWAQ` + * + * ### Definition + * ```text + * Plugins: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS': TypedIntlMessageGetter<{}>, + /** + * Key: `VR3/xM` + * + * ### Definition + * ```text + * Show less + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS': TypedIntlMessageGetter<{}>, + /** + * Key: `5s44+/` + * + * ### Definition + * ```text + * Show more + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE': TypedIntlMessageGetter<{}>, + /** + * Key: `BfWykp` + * + * ### Definition + * ```text + * Release Channel: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL': TypedIntlMessageGetter<{}>, + /** + * Key: `4InTYm` + * + * ### Definition + * ```text + * Replugged Path + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH': TypedIntlMessageGetter<{}>, + /** + * Key: `MYx3Cg` + * + * ### Definition + * ```text + * Revision: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_REVISION': TypedIntlMessageGetter<{}>, + /** + * Key: `sVLm2t` + * + * ### Definition + * ```text + * Settings: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS': TypedIntlMessageGetter<{}>, + /** + * Key: `ER1nxc` + * + * ### Definition + * ```text + * Settings Sync: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC': TypedIntlMessageGetter<{}>, + /** + * Key: `vxWV3t` + * + * ### Definition + * ```text + * Themes: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_THEMES': TypedIntlMessageGetter<{}>, + /** + * Key: `PqsQyM` + * + * ### Definition + * ```text + * Unauthorized plugins: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS': TypedIntlMessageGetter<{}>, + /** + * Key: `jyRtkp` + * + * ### Definition + * ```text + * Upstream: + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM': TypedIntlMessageGetter<{}>, + /** + * Key: `D0hYHB` + * + * ### Definition + * ```text + * Update Check Interval + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_INTERVAL': TypedIntlMessageGetter<{}>, + /** + * Key: `QUYCx8` + * + * ### Definition + * ```text + * How frequently Replugged will check for updates. Minimum 10 minutes. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_INTERVAL_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `Efudw8` + * + * ### Definition + * ```text + * Change Release Channel + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE': TypedIntlMessageGetter<{}>, + /** + * Key: `MrEYwc` + * + * ### Definition + * ```text + * You can choose between the stable branch, or the development branch. Stable branch will only get major updates, security and critical updates. If unsure, stay on stable. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `U0yy09` + * + * ### Definition + * ```text + * Switch to development branch + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN': TypedIntlMessageGetter<{}>, + /** + * Key: `CQoun5` + * + * ### Definition + * ```text + * Are you sure you want to change your release channel? Replugged will reload your Discord client. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_MODAL': TypedIntlMessageGetter<{}>, + /** + * Key: `QMvHwc` + * + * ### Definition + * ```text + * Change release channel + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER': TypedIntlMessageGetter<{}>, + /** + * Key: `FlBncX` + * + * ### Definition + * ```text + * Switch to stable + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN': TypedIntlMessageGetter<{}>, + /** + * Key: `QWWrMD` + * + * ### Definition + * ```text + * Switch + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH': TypedIntlMessageGetter<{}>, + /** + * Key: `4ZUrOT` + * + * ### Definition + * ```text + * Show update checker toast + * ``` + * + * ### Problems + * + * Missing translations: `da`, `he`, `hi`, `no` + */ + 'REPLUGGED_UPDATES_OPTS_TOAST_ENABLED': TypedIntlMessageGetter<{}>, + /** + * Key: `JgzaWF` + * + * ### Definition + * ```text + * Show an overlay over the client which says updates are being checked for, and if updates are found, prompt you to update. Only applies if update in background is disabled. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `he`, `hi`, `no` + */ + 'REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC': TypedIntlMessageGetter<{}>, + /** + * Key: `P+IFIi` + * + * ### Definition + * ```text + * Some updates failed! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_TOAST_FAILED_ALL': TypedIntlMessageGetter<{}>, + /** + * Key: `A0CEr6` + * + * ### Definition + * ```text + * Update failed! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_TOAST_FAILED_ONE': TypedIntlMessageGetter<{}>, + /** + * Key: `fpehXV` + * + * ### Definition + * ```text + * {count, plural, =1 {# new update} other {# new updates}} available! + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro`, `zh-CN` + */ + 'REPLUGGED_UPDATES_TOAST_NEW': TypedIntlMessageGetter<{count: any | number | string}>, + /** + * Key: `qPHJU1` + * + * ### Definition + * ```text + * No new updates available. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_TOAST_NO_NEW': TypedIntlMessageGetter<{}>, + /** + * Key: `6ACGz8` + * + * ### Definition + * ```text + * All updates completed successfully. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_TOAST_SUCCESS_ALL': TypedIntlMessageGetter<{}>, + /** + * Key: `wKwXx8` + * + * ### Definition + * ```text + * Update completed successfully. + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_TOAST_SUCCESS_ONE': TypedIntlMessageGetter<{}>, + /** + * Key: `V+pee3` + * + * ### Definition + * ```text + * Update + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_UPDATE': TypedIntlMessageGetter<{}>, + /** + * Key: `DIZGSk` + * + * ### Definition + * ```text + * Updater + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_UPDATER': TypedIntlMessageGetter<{}>, + /** + * Key: `uMS9c3` + * + * ### Definition + * ```text + * Update All + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_UPDATE_ALL': TypedIntlMessageGetter<{}>, + /** + * Key: `yiTLZG` + * + * ### Definition + * ```text + * Update + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_UPDATE_NOUN': TypedIntlMessageGetter<{}>, + /** + * Key: `JdG85+` + * + * ### Definition + * ```text + * Update to {version} + * ``` + * + * ### Problems + * + * Missing translations: `bg`, `da`, `el`, `he`, `hi`, `hr`, `lt`, `no`, `pt-PT`, `ro` + */ + 'REPLUGGED_UPDATES_UPDATE_TO': TypedIntlMessageGetter<{version: any}>, + /** + * Key: `UbD+4u` + * + * ### Definition + * ```text + * Updating Replugged… + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_UPDATING': TypedIntlMessageGetter<{}>, + /** + * Key: `Gr3VND` + * + * ### Definition + * ```text + * Updating… + * ``` + * + * ### Problems + * + * Missing translations: `da`, `hi` + */ + 'REPLUGGED_UPDATES_UPDATING_ITEM': TypedIntlMessageGetter<{}>, + /** + * Key: `CUNjg4` + * + * ### Definition + * ```text + * Everything is up to date. + * ``` + * + * ### Problems + * + * Missing translations: `da`, `he`, `hi` + */ + 'REPLUGGED_UPDATES_UP_TO_DATE': TypedIntlMessageGetter<{}>, + /** + * Key: `q8qpAw` + * + * ### Definition + * ```text + * Replugged {version, select, dev {[DEV MODE]} other {v{version}}} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE` + */ + 'REPLUGGED_VERSION': TypedIntlMessageGetter<{version: 'dev' | any | string}>, + /** + * Key: `rHZSz8` + * + * ### Definition + * ```text + * View {count, plural, =1 {# Update} other {# Updates}} + * ``` + * + * ### Problems + * + * Missing translations: `ar`, `bg`, `da`, `el`, `he`, `hi`, `hr`, `hu`, `ko`, `lt`, `no`, `pt-PT`, `ro`, `sv-SE`, `zh-CN` + */ + 'REPLUGGED_VIEW_UPDATES': TypedIntlMessageGetter<{count: any | number | string}>, +}; +export default messages; \ No newline at end of file diff --git a/i18n/en-US.messages.js b/i18n/en-US.messages.js new file mode 100644 index 000000000..6505cb20b --- /dev/null +++ b/i18n/en-US.messages.js @@ -0,0 +1,290 @@ +import { defineMessages } from "@discord/intl"; + +export const meta = { + translationsPath: "./translations", + secret: false, + translate: true, +}; + +// @ts-ignore +export default defineMessages({ + REPLUGGED_ACCOUNT: "Replugged Account", + REPLUGGED_BADGES_CONTRIBUTOR: "Replugged Contributor", + REPLUGGED_BADGES_DEVELOPER: "Replugged Developer", + REPLUGGED_BADGES_EARLY: "Replugged Early User", + REPLUGGED_BADGES_HUNTER: "Replugged Bug Hunter", + REPLUGGED_BADGES_STAFF: "Replugged Staff", + REPLUGGED_BADGES_SUPPORT: "Replugged Support", + REPLUGGED_BADGES_TRANSLATOR: "Replugged Translator", + REPLUGGED_BADGES_BOOSTER: "Replugged Server Booster", + REPLUGGED_BUTTON_GOT_IT: "Got It", + REPLUGGED_BUTTON_INSTALLER_INSTALLED: "{type} Installed", + REPLUGGED_BUTTON_INSTALLER_DOWNLOAD: "Download {type}", + REPLUGGED_CANCEL: "Cancel", + REPLUGGED_CONFIRM: "Confirm", + REPLUGGED_OK: "OK", + REPLUGGED_COMMAND_ERROR_GENERIC: + "Something went wrong, please try again later. If this issue persists, please contact the Replugged team.", + REPLUGGED_COMMAND_SUCCESS_GENERIC: "Success", + REPLUGGED_COMMAND_ENABLE_NAME: "enable", + REPLUGGED_COMMAND_ENABLE_DESC: "Enable a plugin or theme", + REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME: "addon", + REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC: "Choose which addon to enable", + REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED: "{type} {name} has been enabled!", + REPLUGGED_COMMAND_DISABLE_NAME: "disable", + REPLUGGED_COMMAND_DISABLE_DESC: "Disable a plugin or theme", + REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME: "addon", + REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC: "Choose which addon to disable", + REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED: "{type} {name} has been disabled!", + REPLUGGED_COMMAND_RELOAD_NAME: "reload", + REPLUGGED_COMMAND_RELOAD_DESC: "Reload a plugin or theme", + REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME: "addon", + REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC: "Choose which addon to reload", + REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED: "{type} {name} has been reloaded!", + REPLUGGED_COMMAND_LIST_NAME: "list", + REPLUGGED_COMMAND_LIST_DESC: "List all plugins or themes", + REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME: "send", + REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC: "Share the list publicly in chat", + REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME: "type", + REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC: "What type of addons to show", + REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN: "List Plugins", + REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME: "List Themes", + REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME: "version", + REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC: "Include version numbers in the list", + REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME: "status", + REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC: + "Whether to show addons that are enabled, disabled or both", + REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED: "Enabled", + REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED: "Disabled", + REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH: "Both", + REPLUGGED_COMMAND_LIST_HEADER_ENABLED: "Enabled {type}", + REPLUGGED_COMMAND_LIST_HEADER_DISABLED: "Disabled {type}", + REPLUGGED_COMMAND_LIST_ERROR_SPECIFY: + "You need to specify whether to send a plugin or theme list", + REPLUGGED_COMMAND_INSTALL_NAME: "install", + REPLUGGED_COMMAND_INSTALL_DESC: "Install a plugin or theme", + REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME: "addon", + REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC: "Identifier of the addon to install from the source", + REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME: "source", + REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC: "Source to install the addon from", + REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME: "id", + REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC: + "If the source has multiple addons, specify which one to install", + REPLUGGED_ERROR_ALREADY_INSTALLED: "{name} is already installed.", + REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND: "An error occurred while executing the command:", + REPLUGGED_ERROR_CHECK_CONSOLE: "Check the console for more details.", + REPLUGGED_GENERAL_SETTINGS: "General Settings", + REPLUGGED_I18N_CONTRIBUTE: "Want to help translate Replugged? Go to our [Weblate]({weblateUrl})!", + REPLUGGED_I18N_TRANSLATED_PERCENTAGE: "Replugged: {translated,number}% translated", + REPLUGGED_INSTALL_MODAL_HEADER: "Install {type}", + REPLUGGED_LINK_NOW: "Link it now", + REPLUGGED_NOTICES_WELCOME_NEW_USER: + "Welcome! Replugged has been successfully injected into your Discord client. Feel free to join our Discord server for announcements, support and more!", + REPLUGGED_NOTICES_JOIN_SERVER_BUTTON: "Join Server", + REPLUGGED_PLUGIN: "Plugin", + REPLUGGED_PLUGINS: "Plugins", + REPLUGGED_QUICKCSS: "Quick CSS", + REPLUGGED_SETTINGS_ADVANCED_DESC: + "Don't touch stuff in here if you don't know what you're doing. Unexpected things can happen to your cat.", + REPLUGGED_SETTINGS_BACKEND: "Backend URL", + REPLUGGED_SETTINGS_BACKEND_DESC: + "URL used to fetch some assets and to query Replugged's REST API.", + REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS: "Enable Discord Experiments", + REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC: + "****WARNING:**** Enabling this gives you access to features that can be detected by Discord and may result in an ****account termination****. Replugged is **not responsible** for what you do with this feature. Leave it disabled if you are unsure. The Replugged Team will **not** provide any support regarding any experiment. **Requires restart**.", + REPLUGGED_SETTINGS_ERROR_HEADER: "Something went wrong rendering this element!", + REPLUGGED_SETTINGS_ERROR_RENDER_PANEL: "An error occurred while rendering settings panel.", + REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK: "Component stack:", + REPLUGGED_SETTINGS_KEEP_TOKEN: "Keep token stored", + REPLUGGED_SETTINGS_KEEP_TOKEN_DESC: + "Prevents Discord from removing your token from localStorage, reducing the numbers of unwanted logouts.", + REPLUGGED_SETTINGS_NO_CLYDE: "Eradicate Clyde", + REPLUGGED_SETTINGS_NO_CLYDE_DESC: + 'Replaces [Clyde]({clydeUrl}) in Replugged commands with a mixed range of avatars and usernames selected by plug-in developers - fallbacks to "Replugged" by default.', + REPLUGGED_SETTINGS_OVERLAY: "Overlay DevTools", + REPLUGGED_SETTINGS_OVERLAY_DESC: + "Opens a DevTools window that lets you inspect what's happening within Discord's in-game overlay.", + REPLUGGED_SETTINGS_RESTART: + "This setting requires you to restart Discord to take effect. Do you want to restart Discord now?", + REPLUGGED_SNIPPET_APPLIED: "Snippet Applied", + REPLUGGED_SNIPPET_APPLY: "Apply Snippet", + REPLUGGED_SNIPPET_LINE1: + "Snippet from #css-snippets applied the {date, date, medium} at {date, time, medium}", + REPLUGGED_SNIPPET_LINE2: "Created by {authorTag} ({authorId})", + REPLUGGED_THEME: "Theme", + REPLUGGED_THEMES: "Themes", + REPLUGGED_UPDATES_AVAILABLE: "{count, plural, =1 {# update is} other {# updates are}} available.", + REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE: "Reload Required", + REPLUGGED_UPDATES_CHECK: "Check for Updates", + REPLUGGED_UPDATES_ENABLE: "Enable Updates", + REPLUGGED_UPDATES_FAILED: "Some updates failed!", + REPLUGGED_UPDATES_FORCE: "Force Update", + REPLUGGED_UPDATES_LAST_CHECKED: "Last checked: {date}", + REPLUGGED_UPDATES_OPEN_UPDATER: "Open Updater", + REPLUGGED_UPDATES_OPTS_AUTO: "Check for updates automatically", + REPLUGGED_UPDATES_OPTS_AUTO_DESC: + "Replugged will automatically check for updates and show you an alert when one is available. Updates will not be installed until you choose to update it. Only official addons will be checked automatically.", + REPLUGGED_UPDATES_OPTS_CHANGE_LOGS: "Open Change Log", + REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC: "Missed the change log, or want to see it again?", + REPLUGGED_UPDATES_OPTS_CONCURRENCY: "Update Concurrency Limit", + REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC: + "How many concurrent tasks Replugged will run in background to check for updates. Minimum 1. If unsure, leave 2.", + REPLUGGED_UPDATES_OPTS_DEBUG: "Debugging Information", + REPLUGGED_UPDATES_OPTS_DEBUG_DESC: + "Things that you may find useful for troubleshooting or flexing on some stats.", + REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD: "System / Discord", + REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS: "Process Versions", + REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE: "Locale:", + REPLUGGED_UPDATES_OPTS_DEBUG_OS: "OS:", + REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT: "64-bit", + REPLUGGED_UPDATES_OPTS_DEBUG_ARCH: "Architecture:", + REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO: "Distro:", + REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL: "Release Channel:", + REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION: "App Version:", + REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER: "Build Number:", + REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID: "Build ID:", + REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS: "Experiments:", + REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS: "Commands:", + REPLUGGED_UPDATES_OPTS_DEBUG_COPIED: "Copied!", + REPLUGGED_UPDATES_OPTS_DEBUG_COPY: "Copy", + REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS: "Settings:", + REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS: "Plugins:", + REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS: "Show less", + REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE: "Show more", + REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS: "Unauthorized plugins:", + REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS: "BetterDiscord Plugins:", + REPLUGGED_UPDATES_OPTS_DEBUG_THEMES: "Themes:", + REPLUGGED_UPDATES_OPTS_DEBUG_LABS: "Labs:", + REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC: "Settings Sync:", + REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES: "Cached Files:", + REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT: "Account:", + REPLUGGED_UPDATES_OPTS_DEBUG_APIS: "APIs:", + REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS: "Connections:", + REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM: "Upstream:", + REPLUGGED_UPDATES_OPTS_DEBUG_REVISION: "Revision:", + REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH: "Branch:", + REPLUGGED_UPDATES_OPTS_DEBUG_LATEST: "Latest:", + REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH: "Replugged Path", + REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH: "Discord Path", + REPLUGGED_UPDATES_OPTS_INTERVAL: "Update Check Interval", + REPLUGGED_UPDATES_OPTS_INTERVAL_DESC: + "How frequently Replugged will check for updates. Minimum 10 minutes.", + REPLUGGED_UPDATES_OPTS_RELEASE: "Change Release Channel", + REPLUGGED_UPDATES_OPTS_RELEASE_DESC: + "You can choose between the stable branch, or the development branch. Stable branch will only get major updates, security and critical updates. If unsure, stay on stable.", + REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN: "Switch to development branch", + REPLUGGED_UPDATES_OPTS_RELEASE_MODAL: + "Are you sure you want to change your release channel? Replugged will reload your Discord client.", + REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER: "Change release channel", + REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN: "Switch to stable", + REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH: "Switch", + REPLUGGED_UPDATES_OPTS_TOAST_ENABLED: "Show update checker toast", + REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC: + "Show an overlay over the client which says updates are being checked for, and if updates are found, prompt you to update. Only applies if update in background is disabled.", + REPLUGGED_UPDATES_UPDATER: "Updater", + REPLUGGED_UPDATES_UPDATE: "Update", + REPLUGGED_UPDATES_UPDATING: "Updating Replugged…", + REPLUGGED_UPDATES_UPDATING_ITEM: "Updating…", + REPLUGGED_UPDATES_UP_TO_DATE: "Everything is up to date.", + REPLUGGED_PLUGIN_EMBED_COPY: "Copy Link", + REPLUGGED_PLUGIN_EMBED_VIEW_REPO: "View Repo", + REPLUGGED_PLUGIN_EMBED_COPIED: "Copied!", + REPLUGGED_PLUGIN_EMBED_WHATISTHIS: "What is this?", + REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT: + "This is a Replugged feature. It allows you to install plugins or themes straight from chat.\nSimply hit the install button on the embed.", + REPLUGGED_ADDON_DELETE: "Delete {type}", + REPLUGGED_ADDON_PAGE_OPEN: "Open {type} Page", + REPLUGGED_ADDON_PROFILE_OPEN: "Open {type} Profile", + REPLUGGED_ADDON_RELOAD: "Reload {type}", + REPLUGGED_ADDON_SETTINGS: "Open {type} Settings", + REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY: + "Are you sure you want to uninstall this {type}? This cannot be undone.", + REPLUGGED_ADDON_UNINSTALL: "Uninstall {name}", + REPLUGGED_ADDONS_FOLDER_OPEN: "Open {type} Folder", + REPLUGGED_ADDONS_LOAD_MISSING: "Load Missing {type}", + REPLUGGED_ADDONS_TITLE_COUNT: "{type} ({count, number})", + REPLUGGED_LIST_RESULTS: "{count, plural, =1 {# match} other {# matches}}", + REPLUGGED_NO_ADDON_RESULTS: "No {type} matched your search.", + REPLUGGED_NO_ADDONS_INSTALLED: "No {type} installed.", + REPLUGGED_QUICKCSS_CHANGES_APPLY: "Apply Changes", + REPLUGGED_SEARCH_FOR_ADDON: "Search for a {type}", + REPLUGGED_TOAST_ADDON_DISABLE_FAILED: "Failed to disable {name}", + REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS: "Disabled {name}", + REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS: "Enabled {name}", + REPLUGGED_TOAST_ADDON_RELOAD_FAILED: "Failed to reload {name}", + REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS: "Reloaded {name}", + REPLUGGED_TOAST_ADDON_TOGGLE_FAILED: "Failed to toggle {name}", + REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED: "Failed to uninstall {name}", + REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS: "Uninstalled {name}", + REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED: "Failed to load missing {type}", + REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS: "Loaded missing {type}", + REPLUGGED_TOAST_PROFILE_FETCH_FAILED: "Failed to fetch user profile", + REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED: "Failed to format code", + REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS: "Code formatted", + REPLUGGED_TOAST_QUICKCSS_RELOAD: "Quick CSS reloaded", + REPLUGGED_SETTINGS_ERROR_SUB_HEADER: "Check console for details.", + REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY: "Do you want to install {name} {authors}?", + REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED: "Failed to install {name}.", + REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED: "{name} was installed but could not be loaded.", + REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS: "{name} installed successfully.", + REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED: "Failed to get info for addon.", + REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL: "Install canceled.", + REPLUGGED_QUICKCSS_FOLDER_OPEN: "Open Quick CSS Folder", + REPLUGGED_ADDON_AUTHORS_ONE: "by {author1}", + REPLUGGED_ADDON_AUTHORS_TWO: "by {author1} and {author2}", + REPLUGGED_ADDON_AUTHORS_THREE: "by {author1}, {author2}, and {author3}", + REPLUGGED_ADDON_AUTHORS_MANY: + "by {author1}, {author2}, {author3}, and {count, plural, =1 {# other} other {# others}}", + REPLUGGED_CONFIRM_INSTALL: "Install", + REPLUGGED_UPDATES_UPDATE_ALL: "Update All", + REPLUGGED_UPDATES_UPDATE_TO: "Update to {version}", + REPLUGGED_UPDATES_TOAST_NO_NEW: "No new updates available.", + REPLUGGED_UPDATES_TOAST_NEW: + "{count, plural, =1 {# new update} other {# new updates}} available!", + REPLUGGED_UPDATES_TOAST_FAILED_ONE: "Update failed!", + REPLUGGED_UPDATES_TOAST_FAILED_ALL: "Some updates failed!", + REPLUGGED_UPDATES_TOAST_SUCCESS_ONE: "Update completed successfully.", + REPLUGGED_UPDATES_TOAST_SUCCESS_ALL: "All updates completed successfully.", + REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY: + "{name} requires a reload to work properly. Reload now?", + REPLUGGED_RELOAD: "Reload", + REPLUGGED_UPDATES_UPDATE_NOUN: "Update", + REPLUGGED_VERSION: "Replugged {version, select, dev {[DEV MODE]} other {v{version}}}", + REPLUGGED_SETTINGS_BADGES: "Enable Replugged Badges", + REPLUGGED_SETTINGS_BADGES_DESC: "Show custom Replugged badges on user profiles.", + REPLUGGED_I18N: "Replugged Translations", + REPLUGGED_VIEW_UPDATES: "View {count, plural, =1 {# Update} other {# Updates}}", + REPLUGGED_DEVELOPER_MODE_WARNING: + "You are currently running Replugged in developer mode and Replugged will not be able to update itself. [Switch to production mode]({url}).", + REPLUGGED_ADDON_BROWSE: "Browse {type}", + REPLUGGED_ADDON_NOT_REVIEWED: "Unreviewed {type}", + REPLUGGED_ADDON_NOT_REVIEWED_DESC: + "This {type} has not been reviewed by the Replugged team and could harm your computer. Use at your own risk.", + REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY: "Automatically Apply Quick CSS", + REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC: + "Automatically apply changes to Quick CSS as you type.", + REPLUGGED_SETTINGS_DEV_COMPANION: "Reconnect Dev Companion", + REPLUGGED_SETTINGS_DEV_COMPANION_DESC: + "Reconnects the Dev Companion coremod to the VSCode extension.", + REPLUGGED_SETTINGS_DEV_COMPANION_RECONNECT: "Reconnect", + REPLUGGED_SETTINGS_ADVANCED: "Advanced Settings", + REPLUGGED_SETTINGS_REACT_DEVTOOLS: "Enable React DevTools", + REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC: + "Loads the React DevTools extension, allowing you to inspect the React tree and debug more easily. **Requires restart**.", + REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED: "Failed to download React DevTools.", + REPLUGGED_INSTALLER_OPEN_STORE: "View in Store", + REPLUGGED_SETTINGS_ADDON_EMBEDS: "Show Addon Embeds", + REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC: + "Show a card with information on an addon when a store/install link is shared in chat.", + REPLUGGED_RESTART: "Restart", + REPLUGGED_SETTINGS_RESTART_TITLE: "Restart Required", + REPLUGGED_SETTINGS_TRANSPARENT: "Transparent Window", + REPLUGGED_SETTINGS_TRANSPARENT_DESC: + "Makes the Discord window transparent, primarily useful for theming. **Requires restart**.", + REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_WINDOWS: + "****WARNING:**** This will break **window snapping**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked.", + REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_LINUX: + "****WARNING:**** **Hardware acceleration** may need to be turned **off**. In some cases, you may experience a black background, such as when the window is cut off at the top or bottom due to the monitor resolution, or when the development tools are open and docked.", + REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME: "Plugin: {name}", + REPLUGGED_STORE: "Store", +}); diff --git a/i18n/index.js b/i18n/index.js deleted file mode 100644 index 8bafa17f6..000000000 --- a/i18n/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import { existsSync, readdirSync } from "fs"; -import { join } from "path"; - -const i18nDirProd = join(__dirname, "./i18n"); -const i18nDirDev = join(__dirname, "../i18n"); - -const i18nDir = existsSync(i18nDirProd) ? i18nDirProd : i18nDirDev; - -readdirSync(i18nDir) - .filter((file) => file.endsWith(".json")) - .forEach((filename) => { - const moduleName = filename.split(".")[0]; - exports[moduleName] = require(`${i18nDir}/${filename}`); - }); - -export default exports; diff --git a/i18n/translations/ar.messages.json b/i18n/translations/ar.messages.json new file mode 100644 index 000000000..9f86ca187 --- /dev/null +++ b/i18n/translations/ar.messages.json @@ -0,0 +1,176 @@ +{ + "REPLUGGED_ACCOUNT": "حساب Replugged", + "REPLUGGED_BADGES_CONTRIBUTOR": "الداعم Replugged", + "REPLUGGED_BADGES_EARLY": "مستخدم مبكر ل Replugged", + "REPLUGGED_BADGES_HUNTER": "معالج الاخطاء ل Replugged", + "REPLUGGED_BADGES_STAFF": "إداري ل Replugged", + "REPLUGGED_BADGES_SUPPORT": "الدعم الفني ل Replugged", + "REPLUGGED_BADGES_BOOSTER": "داعم البوست في Replugged", + "REPLUGGED_BUTTON_GOT_IT": "حسناً", + "REPLUGGED_BUTTON_INSTALLER_INSTALLED": "تم تنزيل {type}", + "REPLUGGED_BUTTON_INSTALLER_DOWNLOAD": "لتحميل {type}", + "REPLUGGED_CANCEL": "إلغاء", + "REPLUGGED_CONFIRM": "تأكيد", + "REPLUGGED_OK": "حسناً", + "REPLUGGED_COMMAND_DISABLE_DESC": "إلغاء تفعيل إضافة/ثمة", + "REPLUGGED_COMMAND_ENABLE_DESC": "تفعيل إضافة/ثمة", + "REPLUGGED_COMMAND_RELOAD_DESC": "إعادة تشغيل plugin/theme", + "REPLUGGED_BADGES_DEVELOPER": "مطور Replugged", + "REPLUGGED_BADGES_TRANSLATOR": "مترجم في Replugged", + "REPLUGGED_UPDATES_OPTS_DEBUG": "معلومات Debug", + "REPLUGGED_UPDATES_OPTS_DEBUG_DESC": "الأشياء التي قد تجدها مفيدة لإكتشاف الأخطاء وإصلاحها أو استعراض بعض الاحصائيات.", + "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD": "نظام / Discord", + "REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT": "64-bit", + "REPLUGGED_UPDATES_OPTS_DEBUG_ARCH": "بنيان:", + "REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO": "توزيعة:", + "REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL": "Release Channel:", + "REPLUGGED_UPDATES_OPTS_DEBUG_OS": "نظام التشغيل:", + "REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION": "إصدار البرنامج:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER": "Build Number:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID": "Build ID:", + "REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS": "Experiments:", + "REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS": "الأوامر:", + "REPLUGGED_UPDATES_OPTS_DEBUG_COPIED": "نسخت!", + "REPLUGGED_UPDATES_OPTS_DEBUG_COPY": "نسخ", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS": "بلوقنات:", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS": "عرض أقل", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE": "عرض أكثر", + "REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS": "البلوقنات الغير مصرح بها:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS": "بلوقنات BetterDiscord:", + "REPLUGGED_UPDATES_OPTS_DEBUG_THEMES": "سمات:", + "REPLUGGED_UPDATES_OPTS_DEBUG_LABS": "Labs:", + "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC": "مزامنة الإعدادات:", + "REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES": "الملفات المخزنة مؤقتًا:", + "REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT": "حساب:", + "REPLUGGED_UPDATES_OPTS_DEBUG_APIS": "APIs:", + "REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS": "Connections:", + "REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM": "Upstream:", + "REPLUGGED_UPDATES_OPTS_DEBUG_REVISION": "مراجعة:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH": "Branch:", + "REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH": "مسار Replugged", + "REPLUGGED_UPDATES_OPTS_DEBUG_LATEST": "Latest:", + "REPLUGGED_UPDATES_OPTS_CONCURRENCY": "تحديث حد التزامن", + "REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC": "كم عد المهام المتزامنة التي سيتم Replugged بتشغيلها في الخلفية للتحقق من وجود تحديثات. الحد الأدنى 1. إذا لم تكن متأكدًا ، إتركه 2.", + "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS": "إصدارات العملية", + "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS": "إعدادات:", + "REPLUGGED_ERROR_ALREADY_INSTALLED": "تم تثبيت {name} بالفعل.", + "REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND": "حدث خطأ أثناء تنفيذ الأمر:", + "REPLUGGED_ERROR_CHECK_CONSOLE": "تحقق من وحدة التحكم للمزيد من التفاصيل.", + "REPLUGGED_GENERAL_SETTINGS": "الاعدادات الرئيسية", + "REPLUGGED_I18N_CONTRIBUTE": "بست! هل تريد المساعدة في ترجمة Replugged؟ إذهب إلى [Weblate]({weblateUrl})!", + "REPLUGGED_I18N_TRANSLATED_PERCENTAGE": "Replugged: {translated,number}% مترجم", + "REPLUGGED_INSTALL_MODAL_HEADER": "تثبيت {type}", + "REPLUGGED_LINK_NOW": "إربطه الآن", + "REPLUGGED_NOTICES_JOIN_SERVER_BUTTON": "دخول السيرفر", + "REPLUGGED_NOTICES_WELCOME_NEW_USER": "أهلآ! لقد تم ربط Replugged بخادم Discord الخاص بك بنجاح. يمكنك دخول سيرفر Discord الخاص بنا لأخر الاخبار والمساعدة!", + "REPLUGGED_PLUGIN": "ملحق", + "REPLUGGED_PLUGINS": "بلوقنات", + "REPLUGGED_QUICKCSS": "CSS أسرع", + "REPLUGGED_SETTINGS_ADVANCED_DESC": "لا تلمس أي شيء هنا إذا كنت لا تدري ماذا تفعل. أشياء غير متوقعة قد تحصل لقطتك.", + "REPLUGGED_SETTINGS_BACKEND": "عنوان Backend", + "REPLUGGED_SETTINGS_BACKEND_DESC": "عنوان إليكتروني يستخدم لجلب بعض الملفات والإستعلام عن Replugged's REST API.", + "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS": "تفعيل تجارب Discord", + "REPLUGGED_SETTINGS_OVERLAY": "Overlay DevTools", + "REPLUGGED_SETTINGS_OVERLAY_DESC": "يفتح نافذة DevTools ألتي تتيح لك فحص ما بداخل Discord's in-game overlay.", + "REPLUGGED_SETTINGS_RESTART": "يتطلب هذا الإعداد إعادة تشغيل Discord يعمل. هل تريد إعادة تشغيل Discord الآن؟", + "REPLUGGED_SNIPPET_APPLIED": "تم تطبيق Snippet", + "REPLUGGED_SNIPPET_APPLY": "تطبيق Snippet", + "REPLUGGED_SNIPPET_LINE1": "Snippets من #css-snippes طبقت الـ {date, date, medium} في {date, time, medium}", + "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC": "****تحذير:**** تفعيل هذا يعطيك خصائص إلى ميزات قد تكون مكتشفة عن طريق Discord وممكن أن تقوم ****بحظر حسابك****. Replugged **ليس مسؤول** عن أي شيء قد تفعله بهذة الميزة. إتركها معطلة إذا كنت غير متأكد. فريق Replugged **لن يقوم** بتقديم إي مساعدة بشأن هذة الميزات. **إعادة الشتغيل مطلوبة**.", + "REPLUGGED_SETTINGS_ERROR_HEADER": "حدث خطأ ما في عرض هذا العنصر!", + "REPLUGGED_SETTINGS_ERROR_RENDER_PANEL": "حدث خطأ أثناء عرض لوحة الإعدادات.", + "REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK": "Component stack:", + "REPLUGGED_SETTINGS_KEEP_TOKEN": "الإحتفاظ بالرمز (Token) مخزن", + "REPLUGGED_SETTINGS_KEEP_TOKEN_DESC": "يمنع Discord من أن يقوم بحذف الرمز الخاص بك (Token) من localStorage, يقلل من عدد تسجيلات الخروج الغير مرغوب فيها.", + "REPLUGGED_SETTINGS_NO_CLYDE": "القضاء على Clyde", + "REPLUGGED_SETTINGS_NO_CLYDE_DESC": "يستبدل [Clyde]({clydeUrl}) في أوامر Replugged مع مجموعة مختلطة من الصور الرمزية وأسماء مستخدمين محددة بواسطة مطوري البلوقنات - يتم إستبدالة إلى \"Replugged\" افتراضيًا.", + "REPLUGGED_SNIPPET_LINE2": "انشأ من قبل {authorTag} ({authorId})", + "REPLUGGED_THEME": "سمة", + "REPLUGGED_THEMES": "سمات", + "REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE": "إعادة التحميل مطلوبة", + "REPLUGGED_UPDATES_CHECK": "تحقق من التحديثات", + "REPLUGGED_UPDATES_ENABLE": "تفعيل التحديثات", + "REPLUGGED_UPDATES_FAILED": "بعض التحديثات فشلت!", + "REPLUGGED_UPDATES_FORCE": "فرض التحديث", + "REPLUGGED_UPDATES_LAST_CHECKED": "أخر فحص: {date}", + "REPLUGGED_UPDATES_OPEN_UPDATER": "فتح المحدث", + "REPLUGGED_UPDATES_OPTS_AUTO": "التحديث تلقائيًا في الخلفية", + "REPLUGGED_UPDATES_OPTS_AUTO_DESC": "Replugged يمكنه تنزيل التحديثات وتثبيتها في الخلفية دون إزعاجك. ملاحظة أن التحديثات ستتطلب إجراء من المستخدم إذا كانت إعادة التشغيل مطلوبة, أو إذا كان هناك تعارض.", + "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS": "فتح سجل التغيير", + "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC": "فاتك سجل التغيير, أو تريد رؤيته مجددآ؟", + "REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE": "الموقع:", + "REPLUGGED_UPDATES_UPDATING": "تحديث Replugged…", + "REPLUGGED_UPDATES_UPDATING_ITEM": "تحديث…", + "REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH": "مسار Discord", + "REPLUGGED_UPDATES_OPTS_INTERVAL": "تحديث التحقق الفاصل", + "REPLUGGED_UPDATES_OPTS_INTERVAL_DESC": "كم مرة Replugged سيتحقق من وجود تحديث (بالدقائق). لا تقل عن 10 دقائق.", + "REPLUGGED_UPDATES_OPTS_RELEASE": "تغيير Release Channel", + "REPLUGGED_UPDATES_OPTS_RELEASE_DESC": "يمكنك التغيير بين Stable Branch, أو Development Branch. Stable Branch يحصل فقط على التحديثات الرئيسية وألامان والتحديثات الهامة. إذا لم تكن متأكدًا ، فابق ثابتًا.", + "REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN": "التبديل إلى development branch", + "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL": "هل أنت متأكد أنك تريد تغيير release channel الخاص بك؟ Replugged سيقوم بإعادة تشغيل Discord.", + "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER": "تغيير release channel", + "REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN": "التبديل إلى stable", + "REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH": "Switch", + "REPLUGGED_UPDATES_UPDATER": "محدث", + "REPLUGGED_UPDATES_UPDATE": "تحديث", + "REPLUGGED_PLUGIN_EMBED_COPY": "نسخ الرابط", + "REPLUGGED_PLUGIN_EMBED_COPIED": "نسخت!", + "REPLUGGED_PLUGIN_EMBED_WHATISTHIS": "ما هذا؟", + "REPLUGGED_ADDON_DELETE": "حذف {type}", + "REPLUGGED_ADDON_PAGE_OPEN": "فتح صفحة {type}", + "REPLUGGED_ADDON_PROFILE_OPEN": "فتح ملف {type}", + "REPLUGGED_ADDON_RELOAD": "إعادة تحميل {type}", + "REPLUGGED_ADDON_SETTINGS": "فتح إعدادات {type}", + "REPLUGGED_ADDON_UNINSTALL": "إزالة {name}", + "REPLUGGED_ADDONS_FOLDER_OPEN": "فتح ملف {type}", + "REPLUGGED_ADDONS_LOAD_MISSING": "تحميل مفقود {type}", + "REPLUGGED_ADDONS_TITLE_COUNT": "{type} ({count, number})", + "REPLUGGED_LIST_RESULTS": "{count, plural, =1 {# يطابق} other {# يطابقون}}", + "REPLUGGED_NO_ADDONS_INSTALLED": "لا يوجد {type} مثبت.", + "REPLUGGED_QUICKCSS_CHANGES_APPLY": "تطبيق التغييرات", + "REPLUGGED_SEARCH_FOR_ADDON": "البحث عن {type}", + "REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS": "تعطل {name}", + "REPLUGGED_TOAST_ADDON_RELOAD_FAILED": "فشل إعادة تحميل {name}", + "REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS": "إعادة تحميل {name}", + "REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED": "فشل إزالة {name}", + "REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS": "تم إزالة {name}", + "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED": "فشل تحميل {type}", + "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS": "تم تحميل المفقود {type}", + "REPLUGGED_UPDATES_UPDATE_NOUN": "تحديث", + "REPLUGGED_ADDON_AUTHORS_ONE": "by {author1}", + "REPLUGGED_ADDON_AUTHORS_TWO": "by {author1} and {author2}", + "REPLUGGED_ADDON_AUTHORS_MANY": "by {author1}, {author2}, {author3}, and {count, plural, =1 {# other} other {# others}}", + "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED": "إظهار تحديث checker toast", + "REPLUGGED_UPDATES_UP_TO_DATE": "كل شيء محدث إلى الأن.", + "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC": "Show an overlay over the client which says updates are being checked for, and if updates are found, prompt you to update. Only applies if update in background is disabled.", + "REPLUGGED_PLUGIN_EMBED_VIEW_REPO": "عرض الـRepo", + "REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT": "هذة ميزة Replugged. تسمح لك بتنزيل إضافات او سمات مباشرة من الدردشة . ما عليك سوى الضغط على زر التثبيت في الامبيد.", + "REPLUGGED_ADDON_AUTHORS_THREE": "by {author1}, {author2}, and {author3}", + "REPLUGGED_CONFIRM_INSTALL": "تنزيل", + "REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY": "هل انت متأكد من ازالة {type}؟ لا يمكن التراجع عن هذه الخطوه.", + "REPLUGGED_NO_ADDON_RESULTS": "{type} لا يطابق بحثك.", + "REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS": "تمكين {name}", + "REPLUGGED_TOAST_ADDON_TOGGLE_FAILED": "فشل في تمكين {name}", + "REPLUGGED_TOAST_PROFILE_FETCH_FAILED": "فشل في فحص الملف الشخصي للمستخدم", + "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED": "فشل في تنسيق الكود", + "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS": "تم تنسيق الكود", + "REPLUGGED_TOAST_QUICKCSS_RELOAD": "اعادة تحميل Quick CSS", + "REPLUGGED_SETTINGS_ERROR_SUB_HEADER": "تفقد الكونسل لمعلومات اكثر.", + "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED": "فشل في تنزيل {name}.", + "REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED": "تم تنزيل {name} ولكن فشل في تفعيله.", + "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS": "تم تنزيل {name} بنجاح.", + "REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED": "فشل في جلب معلومات للإضافه.", + "REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL": "تم الغاء التنزيل.", + "REPLUGGED_QUICKCSS_FOLDER_OPEN": "فتح مجلد Quick CSS", + "REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY": "هل تريد تنزيل {name} {authors}؟", + "REPLUGGED_UPDATES_UPDATE_ALL": "تحديث الكل", + "REPLUGGED_UPDATES_UPDATE_TO": "التحديث إلى {version}", + "REPLUGGED_UPDATES_TOAST_NO_NEW": "لا يوجد تحديثات متاحة.", + "REPLUGGED_UPDATES_TOAST_NEW": "{count, plural, =1 {# تحديث جديد} other {# تحديثات جديدة}} متاح!", + "REPLUGGED_UPDATES_TOAST_FAILED_ONE": "فشل التحديث!", + "REPLUGGED_UPDATES_TOAST_FAILED_ALL": "فشلت بعض التحديثات!", + "REPLUGGED_UPDATES_TOAST_SUCCESS_ALL": "كل التحديثات تمت بنجاح.", + "REPLUGGED_UPDATES_TOAST_SUCCESS_ONE": "اكتمل التحديث بنجاح.", + "REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY": "{name} يتطلب اعادة التحميل للعمل. اعادة التحميل الان؟", + "REPLUGGED_RELOAD": "اعادة تحميل" +} diff --git a/i18n/bg.json b/i18n/translations/bg.messages.json similarity index 100% rename from i18n/bg.json rename to i18n/translations/bg.messages.json diff --git a/i18n/cs.json b/i18n/translations/cs.messages.json similarity index 100% rename from i18n/cs.json rename to i18n/translations/cs.messages.json diff --git a/i18n/da.json b/i18n/translations/da.messages.json similarity index 100% rename from i18n/da.json rename to i18n/translations/da.messages.json diff --git a/i18n/de.json b/i18n/translations/de.messages.json similarity index 100% rename from i18n/de.json rename to i18n/translations/de.messages.json diff --git a/i18n/el.json b/i18n/translations/el.messages.json similarity index 100% rename from i18n/el.json rename to i18n/translations/el.messages.json diff --git a/i18n/en-GB.json b/i18n/translations/en-GB.messages.json similarity index 100% rename from i18n/en-GB.json rename to i18n/translations/en-GB.messages.json diff --git a/i18n/es-419.json b/i18n/translations/es-419.messages.json similarity index 100% rename from i18n/es-419.json rename to i18n/translations/es-419.messages.json diff --git a/i18n/es-ES.json b/i18n/translations/es-ES.messages.json similarity index 100% rename from i18n/es-ES.json rename to i18n/translations/es-ES.messages.json diff --git a/i18n/fi.json b/i18n/translations/fi.messages.json similarity index 100% rename from i18n/fi.json rename to i18n/translations/fi.messages.json diff --git a/i18n/fr.json b/i18n/translations/fr.messages.json similarity index 100% rename from i18n/fr.json rename to i18n/translations/fr.messages.json diff --git a/i18n/he.json b/i18n/translations/he.messages.json similarity index 100% rename from i18n/he.json rename to i18n/translations/he.messages.json diff --git a/i18n/hi.json b/i18n/translations/hi.messages.json similarity index 100% rename from i18n/hi.json rename to i18n/translations/hi.messages.json diff --git a/i18n/hr.json b/i18n/translations/hr.messages.json similarity index 100% rename from i18n/hr.json rename to i18n/translations/hr.messages.json diff --git a/i18n/hu.json b/i18n/translations/hu.messages.json similarity index 100% rename from i18n/hu.json rename to i18n/translations/hu.messages.json diff --git a/i18n/id.json b/i18n/translations/id.messages.json similarity index 100% rename from i18n/id.json rename to i18n/translations/id.messages.json diff --git a/i18n/it.json b/i18n/translations/it.messages.json similarity index 100% rename from i18n/it.json rename to i18n/translations/it.messages.json diff --git a/i18n/ja.json b/i18n/translations/ja.messages.json similarity index 100% rename from i18n/ja.json rename to i18n/translations/ja.messages.json diff --git a/i18n/ko.json b/i18n/translations/ko.messages.json similarity index 100% rename from i18n/ko.json rename to i18n/translations/ko.messages.json diff --git a/i18n/lt.json b/i18n/translations/lt.messages.json similarity index 100% rename from i18n/lt.json rename to i18n/translations/lt.messages.json diff --git a/i18n/nl.json b/i18n/translations/nl.messages.json similarity index 100% rename from i18n/nl.json rename to i18n/translations/nl.messages.json diff --git a/i18n/no.json b/i18n/translations/no.messages.json similarity index 100% rename from i18n/no.json rename to i18n/translations/no.messages.json diff --git a/i18n/pl.json b/i18n/translations/pl.messages.json similarity index 100% rename from i18n/pl.json rename to i18n/translations/pl.messages.json diff --git a/i18n/pt-BR.json b/i18n/translations/pt-BR.messages.json similarity index 100% rename from i18n/pt-BR.json rename to i18n/translations/pt-BR.messages.json diff --git a/i18n/pt-PT.json b/i18n/translations/pt-PT.messages.json similarity index 100% rename from i18n/pt-PT.json rename to i18n/translations/pt-PT.messages.json diff --git a/i18n/ro.json b/i18n/translations/ro.messages.json similarity index 100% rename from i18n/ro.json rename to i18n/translations/ro.messages.json diff --git a/i18n/ru.json b/i18n/translations/ru.messages.json similarity index 100% rename from i18n/ru.json rename to i18n/translations/ru.messages.json diff --git a/i18n/sk.json b/i18n/translations/sk.messages.json similarity index 100% rename from i18n/sk.json rename to i18n/translations/sk.messages.json diff --git a/i18n/sv-SE.json b/i18n/translations/sv-SE.messages.json similarity index 100% rename from i18n/sv-SE.json rename to i18n/translations/sv-SE.messages.json diff --git a/i18n/th.json b/i18n/translations/th.messages.json similarity index 100% rename from i18n/th.json rename to i18n/translations/th.messages.json diff --git a/i18n/tr.json b/i18n/translations/tr.messages.json similarity index 100% rename from i18n/tr.json rename to i18n/translations/tr.messages.json diff --git a/i18n/uk.json b/i18n/translations/uk.messages.json similarity index 100% rename from i18n/uk.json rename to i18n/translations/uk.messages.json diff --git a/i18n/vi.json b/i18n/translations/vi.messages.json similarity index 100% rename from i18n/vi.json rename to i18n/translations/vi.messages.json diff --git a/i18n/zh-CN.json b/i18n/translations/zh-CN.messages.json similarity index 100% rename from i18n/zh-CN.json rename to i18n/translations/zh-CN.messages.json diff --git a/i18n/translations/zh-TW.messages.json b/i18n/translations/zh-TW.messages.json new file mode 100644 index 000000000..ee193eec3 --- /dev/null +++ b/i18n/translations/zh-TW.messages.json @@ -0,0 +1,246 @@ +{ + "REPLUGGED_ACCOUNT": "Replugged 帳戶", + "REPLUGGED_BADGES_CONTRIBUTOR": "Replugged 貢獻者", + "REPLUGGED_BADGES_DEVELOPER": "Replugged 開發人員", + "REPLUGGED_BADGES_EARLY": "Replugged 早期使用者", + "REPLUGGED_BADGES_HUNTER": "Replugged 漏洞獵人", + "REPLUGGED_BADGES_STAFF": "Replugged 員工", + "REPLUGGED_BADGES_SUPPORT": "Replugged 支援", + "REPLUGGED_BADGES_TRANSLATOR": "Replugged 翻譯者", + "REPLUGGED_BADGES_BOOSTER": "Replugged 伺服器加成者", + "REPLUGGED_GENERAL_SETTINGS": "一般設定", + "REPLUGGED_I18N_CONTRIBUTE": "想幫忙翻譯Replugged嗎?到我們的[Weblate]({weblateUrl})!", + "REPLUGGED_I18N_TRANSLATED_PERCENTAGE": "Replugged:{translated,number}% 已翻譯", + "REPLUGGED_LINK_NOW": "立即連接", + "REPLUGGED_PLUGINS": "插件", + "REPLUGGED_QUICKCSS": "Quick CSS", + "REPLUGGED_SETTINGS_ADVANCED_DESC": "如果你不知道你在做什麽不要碰這裏的東西。出乎意料的事情會發生在你的貓上。", + "REPLUGGED_SETTINGS_BACKEND": "後端網址", + "REPLUGGED_SETTINGS_BACKEND_DESC": "用於獲取一些資料和查詢Replugged的REST API的網址。", + "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS": "啟用 Discord 試驗", + "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC": "****警告:****啟用此可讓你訪問 Discord 可檢測到的功能,並可能導致****帳戶終止****。Replugged 對你使用此功能所做的事情**不負責**。如果你不確定,請將其停用。Replugged 團隊將**不**為任何試驗提供任何幫助。**需要重新啟動**。", + "REPLUGGED_SETTINGS_KEEP_TOKEN": "保持臨時令牌存儲", + "REPLUGGED_SETTINGS_KEEP_TOKEN_DESC": "防止Discord在本地存儲移除你的臨時令牌,減少不必要的登出次數。", + "REPLUGGED_SETTINGS_NO_CLYDE": "拔除Clyde", + "REPLUGGED_SETTINGS_NO_CLYDE_DESC": "將 Replugged 指令中的 [Clyde]({clydeUrl}) 替換為插件開發人員選擇的混合範圍的頭像和使用者名稱,默認情況下回退到「Replugged」。", + "REPLUGGED_SETTINGS_OVERLAY": "遊戲內覆蓋的開發工具", + "REPLUGGED_SETTINGS_OVERLAY_DESC": "打開開發工具視窗並讓你查看Discord的遊戲內覆蓋中發生的事情。", + "REPLUGGED_SETTINGS_RESTART": "此設置需要你重新啟動Discord才能生效。你想現在重啟Discord嗎?", + "REPLUGGED_SNIPPET_APPLIED": "Snippet 已應用", + "REPLUGGED_SNIPPET_APPLY": "應用 Snippet", + "REPLUGGED_SNIPPET_LINE1": "{date, date, medium}{date, time, medium}已應用來自 #css-snippets 的 Snippet", + "REPLUGGED_SNIPPET_LINE2": "由 {authorTag} ({authorId}) 製作", + "REPLUGGED_THEMES": "主題", + "REPLUGGED_UPDATES_AVAILABLE": "有 {count, number} 個可用的更新。", + "REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE": "需要重新啟動", + "REPLUGGED_UPDATES_CHECK": "檢查更新", + "REPLUGGED_UPDATES_ENABLE": "啟用更新", + "REPLUGGED_UPDATES_FAILED": "部分更新失敗!", + "REPLUGGED_UPDATES_FORCE": "强制更新", + "REPLUGGED_UPDATES_LAST_CHECKED": "最後檢查:{date}", + "REPLUGGED_UPDATES_OPEN_UPDATER": "打開更新器", + "REPLUGGED_UPDATES_OPTS_AUTO": "自動檢查更新", + "REPLUGGED_UPDATES_OPTS_AUTO_DESC": "Replugged 將自動檢查更新並在有更新時提示。在你選擇更新之前,更新都不會自動安裝。只有官方插件會自動檢查更新。", + "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS": "打開更新日誌", + "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC": "錯過了更新日誌,還是想再次查看?", + "REPLUGGED_UPDATES_OPTS_CONCURRENCY": "更新並行限制", + "REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC": "Replugged將在後台運行多少並行任務以檢查更新。最少1。如果不確定,請留下2。", + "REPLUGGED_UPDATES_OPTS_DEBUG": "Debug 訊息", + "REPLUGGED_UPDATES_OPTS_DEBUG_DESC": "你可能會發現對故障排除或炫耀某些統計數據有用的東西。", + "REPLUGGED_UPDATES_OPTS_INTERVAL": "更新檢查間隔", + "REPLUGGED_UPDATES_OPTS_INTERVAL_DESC": "Replugged 將會多久檢查一次更新。最短時間為 10 分鐘。", + "REPLUGGED_UPDATES_OPTS_RELEASE": "變更版本", + "REPLUGGED_UPDATES_OPTS_RELEASE_DESC": "你可以在穩定分支或開發分支之間進行選擇。穩定分支只會獲得重大更新、安全和關鍵更新。如果不確定,請選擇穩定。", + "REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN": "切換到開發分支", + "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL": "確定要更改版本嗎?Replugged 將重新載入你的 Discord 客戶端。", + "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER": "變更版本", + "REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN": "切換到穩定", + "REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH": "切換", + "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED": "顯示檢查更新的嵌入界面", + "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC": "在客戶端上顯示一個正在檢查更新的覆蓋,如果找到更新,將會提示你進行更新。僅在停用後台更新時適用。", + "REPLUGGED_UPDATES_UPDATE": "更新", + "REPLUGGED_UPDATES_UPDATING": "正在更新 Replugged…", + "REPLUGGED_UPDATES_UPDATING_ITEM": "正在更新…", + "REPLUGGED_UPDATES_UP_TO_DATE": "所有插件或主題已更新到最新版本。", + "REPLUGGED_PLUGIN_EMBED_COPY": "複製網址", + "REPLUGGED_PLUGIN_EMBED_VIEW_REPO": "查看儲存庫", + "REPLUGGED_PLUGIN_EMBED_COPIED": "已複製!", + "REPLUGGED_PLUGIN_EMBED_WHATISTHIS": "這是什麽?", + "REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT": "這是一個Replugged的功能。它可以讓你直接從聊天中安裝插件或主題。\n你只需點擊界面上的安裝按鈕。", + "REPLUGGED_COMMAND_ENABLE_DESC": "啟用一個插件或主題", + "REPLUGGED_ERROR_CHECK_CONSOLE": "檢查控制臺以獲得更多詳細資訊。", + "REPLUGGED_SETTINGS_ERROR_RENDER_PANEL": "渲染設定面板時發生錯誤。", + "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD": "系統 / Discord", + "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS": "進程版本", + "REPLUGGED_BUTTON_INSTALLER_INSTALLED": "{type} 已安裝", + "REPLUGGED_BUTTON_INSTALLER_DOWNLOAD": "下載 {type}", + "REPLUGGED_CANCEL": "取消", + "REPLUGGED_CONFIRM": "確認", + "REPLUGGED_OK": "OK", + "REPLUGGED_COMMAND_DISABLE_DESC": "停用一個插件或主題", + "REPLUGGED_BUTTON_GOT_IT": "知道了", + "REPLUGGED_COMMAND_RELOAD_DESC": "重新載入一個插件或主題", + "REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND": "執行指令時發生錯誤:", + "REPLUGGED_NOTICES_JOIN_SERVER_BUTTON": "加入伺服器", + "REPLUGGED_PLUGIN": "插件", + "REPLUGGED_THEME": "主題", + "REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK": "部件堆:", + "REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE": "地區設定:", + "REPLUGGED_UPDATES_OPTS_DEBUG_OS": "操作系統:", + "REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT": "64位元", + "REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO": "發行版:", + "REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL": "版本:", + "REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION": "App 版本:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER": "Build 號碼:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID": "Build ID:", + "REPLUGGED_UPDATES_OPTS_DEBUG_ARCH": "系統結構:", + "REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS": "試驗:", + "REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS": "指令:", + "REPLUGGED_UPDATES_OPTS_DEBUG_COPIED": "已複製!", + "REPLUGGED_UPDATES_OPTS_DEBUG_COPY": "複製", + "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS": "設定:", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS": "插件:", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS": "顯示部分", + "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE": "顯示更多", + "REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS": "未經授權的插件:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS": "BetterDiscord 插件:", + "REPLUGGED_UPDATES_OPTS_DEBUG_THEMES": "主題:", + "REPLUGGED_UPDATES_OPTS_DEBUG_LABS": "Labs:", + "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC": "設定同步:", + "REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES": "緩存文件:", + "REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT": "帳戶:", + "REPLUGGED_UPDATES_OPTS_DEBUG_APIS": "APIs:", + "REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS": "連接:", + "REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM": "遠端追蹤分支:", + "REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH": "分支:", + "REPLUGGED_UPDATES_OPTS_DEBUG_LATEST": "最新:", + "REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH": "Replugged 路徑", + "REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH": "Discord 路徑", + "REPLUGGED_UPDATES_OPTS_DEBUG_REVISION": "修訂:", + "REPLUGGED_ERROR_ALREADY_INSTALLED": "{name} 已經安裝了。", + "REPLUGGED_INSTALL_MODAL_HEADER": "安裝 {type}", + "REPLUGGED_NOTICES_WELCOME_NEW_USER": "歡迎!Replugged 已成功注入到你的 Discord 客戶端。隨時加入我們的 Discord 伺服器以獲得公告、幫助和更多的訊息!", + "REPLUGGED_SETTINGS_ERROR_HEADER": "渲染這個東西時發生錯誤!", + "REPLUGGED_UPDATES_UPDATER": "更新器", + "REPLUGGED_ADDON_DELETE": "刪除{type}", + "REPLUGGED_ADDON_PAGE_OPEN": "打開{type}頁面", + "REPLUGGED_ADDON_SETTINGS": "打開{type}設定", + "REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY": "你確定要解除安裝此{type}嗎?此操作不能被撤銷。", + "REPLUGGED_ADDON_UNINSTALL": "解除安裝{name}", + "REPLUGGED_ADDONS_FOLDER_OPEN": "打開{type}文件夾", + "REPLUGGED_ADDONS_LOAD_MISSING": "載入缺失的{type}", + "REPLUGGED_ADDONS_TITLE_COUNT": "{type} ({count, number})", + "REPLUGGED_ADDON_PROFILE_OPEN": "打開{type}檔案", + "REPLUGGED_ADDON_RELOAD": "重新載入{type}", + "REPLUGGED_CONFIRM_INSTALL": "安裝", + "REPLUGGED_NO_ADDON_RESULTS": "沒有{type}符合搜尋結果。", + "REPLUGGED_NO_ADDONS_INSTALLED": "沒有{type}已安裝。", + "REPLUGGED_QUICKCSS_CHANGES_APPLY": "應用更改", + "REPLUGGED_SEARCH_FOR_ADDON": "搜尋{type}", + "REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS": "已停用{name}", + "REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS": "已啟用{name}", + "REPLUGGED_TOAST_ADDON_RELOAD_FAILED": "載入{name}失敗", + "REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS": "已重新載入{name}", + "REPLUGGED_TOAST_ADDON_TOGGLE_FAILED": "開關{name}失敗", + "REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED": "解除安裝{name}失敗", + "REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS": "{name}已解除安裝", + "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED": "載入缺失的{type}失敗", + "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS": "已載入缺失的{type}", + "REPLUGGED_TOAST_PROFILE_FETCH_FAILED": "無法獲取用戶個人檔案", + "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED": "格式化程式碼失敗", + "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS": "已格式化程式碼", + "REPLUGGED_TOAST_QUICKCSS_RELOAD": "Quick CSS已重新載入", + "REPLUGGED_SETTINGS_ERROR_SUB_HEADER": "檢查控制台以了解詳情。", + "REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY": "你確定要安裝{authors}的{name}嗎?", + "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED": "安裝{name}失敗。", + "REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED": "{name}已安裝但載入失敗。", + "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS": "{name}已成功安裝。", + "REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED": "無法獲取插件信息。", + "REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL": "安裝已取消。", + "REPLUGGED_QUICKCSS_FOLDER_OPEN": "打開Quick CSS文件夾", + "REPLUGGED_UPDATES_UPDATE_ALL": "全部更新", + "REPLUGGED_UPDATES_UPDATE_TO": "更新至{version}", + "REPLUGGED_UPDATES_TOAST_NO_NEW": "沒有新的可用更新。", + "REPLUGGED_UPDATES_TOAST_FAILED_ONE": "更新失敗!", + "REPLUGGED_UPDATES_TOAST_FAILED_ALL": "有些更新失敗!", + "REPLUGGED_UPDATES_TOAST_SUCCESS_ALL": "所有更新已成功完成。", + "REPLUGGED_UPDATES_TOAST_SUCCESS_ONE": "更新已成功完成。", + "REPLUGGED_LIST_RESULTS": "{count, number} 項結果", + "REPLUGGED_UPDATES_TOAST_NEW": "有 {count, number} 個新更新!", + "REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY": "{name} 需要重新載入才能使用。要現在重新載入嗎?", + "REPLUGGED_RELOAD": "重新載入", + "REPLUGGED_ADDON_AUTHORS_TWO": "作者:{author1} 和 {author2}", + "REPLUGGED_ADDON_AUTHORS_THREE": "作者:{author1}、{author2} 和 {author3}", + "REPLUGGED_ADDON_AUTHORS_ONE": "作者:{author1}", + "REPLUGGED_UPDATES_UPDATE_NOUN": "更新", + "REPLUGGED_ADDON_AUTHORS_MANY": "作者:{author1}、{author2}、{author3} 和另外 {count, number} 個人", + "REPLUGGED_VERSION": "Replugged {version, select, dev {[開發模式]} other {v{version}}}", + "REPLUGGED_SETTINGS_BADGES": "啟用 Replugged 徽章", + "REPLUGGED_SETTINGS_BADGES_DESC": "在用戶個人資料上顯示 Replugged 的徽章。", + "REPLUGGED_I18N": "Replugged 翻譯", + "REPLUGGED_VIEW_UPDATES": "查看 {count, plural, =1 {# 個更新} other {# 個更新}}", + "REPLUGGED_ADDON_BROWSE": "瀏覽{type}", + "REPLUGGED_ADDON_NOT_REVIEWED": "未經過審核的{type}", + "REPLUGGED_ADDON_NOT_REVIEWED_DESC": "這個{type}未經 Replugged 團隊審核,可能會損壞你的電腦。請自行承擔風險。", + "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY": "自動應用 Quick CSS", + "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC": "在輸入時自動應用 Quick CSS 的變更。", + "REPLUGGED_DEVELOPER_MODE_WARNING": "你目前正在開發者模式下運行 Replugged, Replugged 將無法自行更新。 [切換至生產模式]({url}).", + "REPLUGGED_SETTINGS_DEV_COMPANION": "重新連接開發者夥伴", + "REPLUGGED_SETTINGS_DEV_COMPANION_DESC": "重新連接開發者夥伴核心模塊至 VSCode 插件。", + "REPLUGGED_SETTINGS_DEV_COMPANION_RECONNECT": "重新連接", + "REPLUGGED_SETTINGS_ADVANCED": "進階設置", + "REPLUGGED_SETTINGS_REACT_DEVTOOLS": "開啟 React 開發工具", + "REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC": "加載 React 開發工具插件,它允許你檢查 React 代碼樹并且更加容易地 debug 代碼。**需要重啟**。", + "REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED": "下載 React 開發工具失敗。", + "REPLUGGED_INSTALLER_OPEN_STORE": "在商店中查看", + "REPLUGGED_SETTINGS_ADDON_EMBEDS": "查看附加元件卡片", + "REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC": "在聊天中分享商店/安裝連結時,顯示一張包含插件信息的卡片。", + "REPLUGGED_RESTART": "重新啟動", + "REPLUGGED_SETTINGS_RESTART_TITLE": "需要重新啟動", + "REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME": "插件:{name}", + "REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED": "{type} {name} 已停用!", + "REPLUGGED_COMMAND_RELOAD_NAME": "重新載入", + "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME": "附加元件", + "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC": "選擇要重新載入的附加元件", + "REPLUGGED_COMMAND_ERROR_GENERIC": "發生未知錯誤,請稍後再試。若問題持續,請聯繫 Replugged 團隊。", + "REPLUGGED_COMMAND_ENABLE_NAME": "啟用", + "REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME": "附加元件", + "REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC": "選擇要啟用的附加元件", + "REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED": "{type} {name} 已啟用!", + "REPLUGGED_COMMAND_DISABLE_NAME": "停用", + "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME": "附加元件", + "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC": "選擇要停用的附加元件", + "REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME": "類型", + "REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC": "顯示哪種類型的附件元件", + "REPLUGGED_COMMAND_INSTALL_NAME": "安裝", + "REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED": "{type} {name} 已重新載入!", + "REPLUGGED_COMMAND_LIST_NAME": "列表", + "REPLUGGED_COMMAND_LIST_DESC": "列出所有插件或主題", + "REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME": "發送", + "REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC": "在聊天中公開列表", + "REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME": "版本", + "REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC": "在列表中包含版本號碼", + "REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME": "狀態", + "REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC": "是否顯示已啟用、已停用或所有的插件", + "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED": "已啟用", + "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED": "已停用", + "REPLUGGED_COMMAND_INSTALL_DESC": "安裝插件或主題", + "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH": "所有", + "REPLUGGED_COMMAND_LIST_HEADER_ENABLED": "已啟用{type}", + "REPLUGGED_COMMAND_LIST_HEADER_DISABLED": "已停用{type}", + "REPLUGGED_COMMAND_LIST_ERROR_SPECIFY": "你需要指定發送插件列表或主題列表", + "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_WINDOWS": "****警告****:此操作會破壞**視窗對齊**的功能。在某些情況下,你可能會遇到黑屏的問題,例如當視窗由於螢幕解析度問題而被截斷在頂部或底部時,或者當開啟和停靠在開發工具時。", + "REPLUGGED_SETTINGS_TRANSPARENT": "透明視窗", + "REPLUGGED_SETTINGS_TRANSPARENT_DESC": "讓Discord視窗透明,主要用於主題。**需要重新啟動**。", + "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME": "附件元件", + "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC": "從來源安裝的附加元件標識碼", + "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME": "來源", + "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC": "安裝附加元件的來源", + "REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME": "ID", + "REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC": "如果來源有多個附加元件,請指定要安裝哪一個", + "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_LINUX": "****警告****:**硬體加速**可能需要**關閉**。在某些情況下,你可能會遇到黑屏的問題,例如窗口因螢幕解析度導致頂部或底部被切割掉,或者當開啟並停靠開發工具時。", + "REPLUGGED_STORE": "商店", + "REPLUGGED_COMMAND_SUCCESS_GENERIC": "成功", + "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN": "列出插件", + "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME": "列出主題" +} diff --git a/i18n/zh-TW.json b/i18n/zh-TW.json deleted file mode 100644 index f082d11a3..000000000 --- a/i18n/zh-TW.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "REPLUGGED_ACCOUNT": "Replugged 帳戶", - "REPLUGGED_BADGES_CONTRIBUTOR": "Replugged 貢獻者", - "REPLUGGED_BADGES_DEVELOPER": "Replugged 開發人員", - "REPLUGGED_BADGES_EARLY": "Replugged 早期使用者", - "REPLUGGED_BADGES_HUNTER": "Replugged 漏洞獵人", - "REPLUGGED_BADGES_STAFF": "Replugged 員工", - "REPLUGGED_BADGES_SUPPORT": "Replugged 支援", - "REPLUGGED_BADGES_TRANSLATOR": "Replugged 翻譯者", - "REPLUGGED_BADGES_BOOSTER": "Replugged 伺服器加成者", - "REPLUGGED_GENERAL_SETTINGS": "一般設定", - "REPLUGGED_I18N_CONTRIBUTE": "想幫忙翻譯Replugged嗎?到我們的[Weblate]({weblateUrl})!", - "REPLUGGED_I18N_TRANSLATED_PERCENTAGE": "Replugged:{translated,number}% 已翻譯", - "REPLUGGED_LINK_NOW": "立即連接", - "REPLUGGED_PLUGINS": "插件", - "REPLUGGED_QUICKCSS": "Quick CSS", - "REPLUGGED_SETTINGS_ADVANCED_DESC": "如果你不知道你在做什麽不要碰這裏的東西。出乎意料的事情會發生在你的貓上。", - "REPLUGGED_SETTINGS_BACKEND": "後端網址", - "REPLUGGED_SETTINGS_BACKEND_DESC": "用於獲取一些資料和查詢Replugged的REST API的網址。", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS": "啟用 Discord 試驗", - "REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC": "****警告:****啟用此可讓你訪問 Discord 可檢測到的功能,並可能導致****帳戶終止****。Replugged 對你使用此功能所做的事情**不負責**。如果你不確定,請將其停用。Replugged 團隊將**不**為任何試驗提供任何幫助。**需要重新啟動**。", - "REPLUGGED_SETTINGS_KEEP_TOKEN": "保持臨時令牌存儲", - "REPLUGGED_SETTINGS_KEEP_TOKEN_DESC": "防止Discord在本地存儲移除你的臨時令牌,減少不必要的登出次數。", - "REPLUGGED_SETTINGS_NO_CLYDE": "拔除Clyde", - "REPLUGGED_SETTINGS_NO_CLYDE_DESC": "將 Replugged 指令中的 [Clyde]({clydeUrl}) 替換為插件開發人員選擇的混合範圍的頭像和使用者名稱,默認情況下回退到「Replugged」。", - "REPLUGGED_SETTINGS_OVERLAY": "遊戲內覆蓋的開發工具", - "REPLUGGED_SETTINGS_OVERLAY_DESC": "打開開發工具視窗並讓你查看Discord的遊戲內覆蓋中發生的事情。", - "REPLUGGED_SETTINGS_RESTART": "此設置需要你重新啟動Discord才能生效。你想現在重啟Discord嗎?", - "REPLUGGED_SNIPPET_APPLIED": "Snippet 已應用", - "REPLUGGED_SNIPPET_APPLY": "應用 Snippet", - "REPLUGGED_SNIPPET_LINE1": "{date, date, medium}{date, time, medium}已應用來自 #css-snippets 的 Snippet", - "REPLUGGED_SNIPPET_LINE2": "由 {authorTag} ({authorId}) 製作", - "REPLUGGED_THEMES": "主題", - "REPLUGGED_UPDATES_AVAILABLE": "有 {count, number} 個可用的更新。", - "REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE": "需要重新啟動", - "REPLUGGED_UPDATES_CHECK": "檢查更新", - "REPLUGGED_UPDATES_ENABLE": "啟用更新", - "REPLUGGED_UPDATES_FAILED": "部分更新失敗!", - "REPLUGGED_UPDATES_FORCE": "强制更新", - "REPLUGGED_UPDATES_LAST_CHECKED": "最後檢查:{date}", - "REPLUGGED_UPDATES_OPEN_UPDATER": "打開更新器", - "REPLUGGED_UPDATES_OPTS_AUTO": "自動檢查更新", - "REPLUGGED_UPDATES_OPTS_AUTO_DESC": "Replugged 將自動檢查更新並在有更新時提示。在你選擇更新之前,更新都不會自動安裝。只有官方插件會自動檢查更新。", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS": "打開更新日誌", - "REPLUGGED_UPDATES_OPTS_CHANGE_LOGS_DESC": "錯過了更新日誌,還是想再次查看?", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY": "更新並行限制", - "REPLUGGED_UPDATES_OPTS_CONCURRENCY_DESC": "Replugged將在後台運行多少並行任務以檢查更新。最少1。如果不確定,請留下2。", - "REPLUGGED_UPDATES_OPTS_DEBUG": "Debug 訊息", - "REPLUGGED_UPDATES_OPTS_DEBUG_DESC": "你可能會發現對故障排除或炫耀某些統計數據有用的東西。", - "REPLUGGED_UPDATES_OPTS_INTERVAL": "更新檢查間隔", - "REPLUGGED_UPDATES_OPTS_INTERVAL_DESC": "Replugged 將會多久檢查一次更新。最短時間為 10 分鐘。", - "REPLUGGED_UPDATES_OPTS_RELEASE": "變更版本", - "REPLUGGED_UPDATES_OPTS_RELEASE_DESC": "你可以在穩定分支或開發分支之間進行選擇。穩定分支只會獲得重大更新、安全和關鍵更新。如果不確定,請選擇穩定。", - "REPLUGGED_UPDATES_OPTS_RELEASE_DEVELOP_BTN": "切換到開發分支", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL": "確定要更改版本嗎?Replugged 將重新載入你的 Discord 客戶端。", - "REPLUGGED_UPDATES_OPTS_RELEASE_MODAL_HEADER": "變更版本", - "REPLUGGED_UPDATES_OPTS_RELEASE_STABLE_BTN": "切換到穩定", - "REPLUGGED_UPDATES_OPTS_RELEASE_SWITCH": "切換", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED": "顯示檢查更新的嵌入界面", - "REPLUGGED_UPDATES_OPTS_TOAST_ENABLED_DESC": "在客戶端上顯示一個正在檢查更新的覆蓋,如果找到更新,將會提示你進行更新。僅在停用後台更新時適用。", - "REPLUGGED_UPDATES_UPDATE": "更新", - "REPLUGGED_UPDATES_UPDATING": "正在更新 Replugged…", - "REPLUGGED_UPDATES_UPDATING_ITEM": "正在更新…", - "REPLUGGED_UPDATES_UP_TO_DATE": "所有插件或主題已更新到最新版本。", - "REPLUGGED_PLUGIN_EMBED_COPY": "複製網址", - "REPLUGGED_PLUGIN_EMBED_VIEW_REPO": "查看儲存庫", - "REPLUGGED_PLUGIN_EMBED_COPIED": "已複製!", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS": "這是什麽?", - "REPLUGGED_PLUGIN_EMBED_WHATISTHIS_CONTENT": "這是一個Replugged的功能。它可以讓你直接從聊天中安裝插件或主題。\n你只需點擊界面上的安裝按鈕。", - "REPLUGGED_COMMAND_ENABLE_DESC": "啟用一個插件或主題", - "REPLUGGED_ERROR_CHECK_CONSOLE": "檢查控制臺以獲得更多詳細資訊。", - "REPLUGGED_SETTINGS_ERROR_RENDER_PANEL": "渲染設定面板時發生錯誤。", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_SYSTEM_DISCORD": "系統 / Discord", - "REPLUGGED_UPDATES_OPTS_DEBUG_CATEGORY_PROCESS_VERSIONS": "進程版本", - "REPLUGGED_BUTTON_INSTALLER_INSTALLED": "{type} 已安裝", - "REPLUGGED_BUTTON_INSTALLER_DOWNLOAD": "下載 {type}", - "REPLUGGED_CANCEL": "取消", - "REPLUGGED_CONFIRM": "確認", - "REPLUGGED_OK": "OK", - "REPLUGGED_COMMAND_DISABLE_DESC": "停用一個插件或主題", - "REPLUGGED_BUTTON_GOT_IT": "知道了", - "REPLUGGED_COMMAND_RELOAD_DESC": "重新載入一個插件或主題", - "REPLUGGED_ERROR_AN_ERROR_OCCURRED_COMMAND": "執行指令時發生錯誤:", - "REPLUGGED_NOTICES_JOIN_SERVER_BUTTON": "加入伺服器", - "REPLUGGED_PLUGIN": "插件", - "REPLUGGED_THEME": "主題", - "REPLUGGED_SETTINGS_ERROR_COMPONENT_STACK": "部件堆:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LOCALE": "地區設定:", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS": "操作系統:", - "REPLUGGED_UPDATES_OPTS_DEBUG_OS_64BIT": "64位元", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISTRO": "發行版:", - "REPLUGGED_UPDATES_OPTS_DEBUG_RELEASE_CHANNEL": "版本:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APP_VERSION": "App 版本:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_NUMBER": "Build 號碼:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BUILD_ID": "Build ID:", - "REPLUGGED_UPDATES_OPTS_DEBUG_ARCH": "系統結構:", - "REPLUGGED_UPDATES_OPTS_DEBUG_EXPERIMENTS": "試驗:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COMMANDS": "指令:", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPIED": "已複製!", - "REPLUGGED_UPDATES_OPTS_DEBUG_COPY": "複製", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS": "設定:", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS": "插件:", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_LESS": "顯示部分", - "REPLUGGED_UPDATES_OPTS_DEBUG_PLUGINS_SHOW_MORE": "顯示更多", - "REPLUGGED_UPDATES_OPTS_DEBUG_UNAUTHORIZED_PLUGINS": "未經授權的插件:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BETTERDISCORD_PLUGINS": "BetterDiscord 插件:", - "REPLUGGED_UPDATES_OPTS_DEBUG_THEMES": "主題:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LABS": "Labs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_SETTINGS_SYNC": "設定同步:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CACHED_FILES": "緩存文件:", - "REPLUGGED_UPDATES_OPTS_DEBUG_ACCOUNT": "帳戶:", - "REPLUGGED_UPDATES_OPTS_DEBUG_APIS": "APIs:", - "REPLUGGED_UPDATES_OPTS_DEBUG_CONNECTIONS": "連接:", - "REPLUGGED_UPDATES_OPTS_DEBUG_UPSTREAM": "遠端追蹤分支:", - "REPLUGGED_UPDATES_OPTS_DEBUG_BRANCH": "分支:", - "REPLUGGED_UPDATES_OPTS_DEBUG_LATEST": "最新:", - "REPLUGGED_UPDATES_OPTS_DEBUG_REPLUGGED_PATH": "Replugged 路徑", - "REPLUGGED_UPDATES_OPTS_DEBUG_DISCORD_PATH": "Discord 路徑", - "REPLUGGED_UPDATES_OPTS_DEBUG_REVISION": "修訂:", - "REPLUGGED_ERROR_ALREADY_INSTALLED": "{name} 已經安裝了。", - "REPLUGGED_INSTALL_MODAL_HEADER": "安裝 {type}", - "REPLUGGED_NOTICES_WELCOME_NEW_USER": "歡迎!Replugged 已成功注入到你的 Discord 客戶端。隨時加入我們的 Discord 伺服器以獲得公告、幫助和更多的訊息!", - "REPLUGGED_SETTINGS_ERROR_HEADER": "渲染這個東西時發生錯誤!", - "REPLUGGED_UPDATES_UPDATER": "更新器", - "REPLUGGED_ADDON_DELETE": "刪除{type}", - "REPLUGGED_ADDON_PAGE_OPEN": "打開{type}頁面", - "REPLUGGED_ADDON_SETTINGS": "打開{type}設定", - "REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY": "你確定要解除安裝此{type}嗎?此操作不能被撤銷。", - "REPLUGGED_ADDON_UNINSTALL": "解除安裝{name}", - "REPLUGGED_ADDONS_FOLDER_OPEN": "打開{type}文件夾", - "REPLUGGED_ADDONS_LOAD_MISSING": "載入缺失的{type}", - "REPLUGGED_ADDONS_TITLE_COUNT": "{type} ({count, number})", - "REPLUGGED_ADDON_PROFILE_OPEN": "打開{type}檔案", - "REPLUGGED_ADDON_RELOAD": "重新載入{type}", - "REPLUGGED_CONFIRM_INSTALL": "安裝", - "REPLUGGED_NO_ADDON_RESULTS": "沒有{type}符合搜尋結果。", - "REPLUGGED_NO_ADDONS_INSTALLED": "沒有{type}已安裝。", - "REPLUGGED_QUICKCSS_CHANGES_APPLY": "應用更改", - "REPLUGGED_SEARCH_FOR_ADDON": "搜尋{type}", - "REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS": "已停用{name}", - "REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS": "已啟用{name}", - "REPLUGGED_TOAST_ADDON_RELOAD_FAILED": "載入{name}失敗", - "REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS": "已重新載入{name}", - "REPLUGGED_TOAST_ADDON_TOGGLE_FAILED": "開關{name}失敗", - "REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED": "解除安裝{name}失敗", - "REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS": "{name}已解除安裝", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED": "載入缺失的{type}失敗", - "REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS": "已載入缺失的{type}", - "REPLUGGED_TOAST_PROFILE_FETCH_FAILED": "無法獲取用戶個人檔案", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_FAILED": "格式化程式碼失敗", - "REPLUGGED_TOAST_QUICKCSS_CODE_FORMAT_SUCCESS": "已格式化程式碼", - "REPLUGGED_TOAST_QUICKCSS_RELOAD": "Quick CSS已重新載入", - "REPLUGGED_SETTINGS_ERROR_SUB_HEADER": "檢查控制台以了解詳情。", - "REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY": "你確定要安裝{authors}的{name}嗎?", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED": "安裝{name}失敗。", - "REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED": "{name}已安裝但載入失敗。", - "REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS": "{name}已成功安裝。", - "REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED": "無法獲取插件信息。", - "REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL": "安裝已取消。", - "REPLUGGED_QUICKCSS_FOLDER_OPEN": "打開Quick CSS文件夾", - "REPLUGGED_UPDATES_UPDATE_ALL": "全部更新", - "REPLUGGED_UPDATES_UPDATE_TO": "更新至{version}", - "REPLUGGED_UPDATES_TOAST_NO_NEW": "沒有新的可用更新。", - "REPLUGGED_UPDATES_TOAST_FAILED_ONE": "更新失敗!", - "REPLUGGED_UPDATES_TOAST_FAILED_ALL": "有些更新失敗!", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ALL": "所有更新已成功完成。", - "REPLUGGED_UPDATES_TOAST_SUCCESS_ONE": "更新已成功完成。", - "REPLUGGED_LIST_RESULTS": "{count, number} 項結果", - "REPLUGGED_UPDATES_TOAST_NEW": "有 {count, number} 個新更新!", - "REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY": "{name} 需要重新載入才能使用。要現在重新載入嗎?", - "REPLUGGED_RELOAD": "重新載入", - "REPLUGGED_ADDON_AUTHORS_TWO": "作者:{author1} 和 {author2}", - "REPLUGGED_ADDON_AUTHORS_THREE": "作者:{author1}、{author2} 和 {author3}", - "REPLUGGED_ADDON_AUTHORS_ONE": "作者:{author1}", - "REPLUGGED_UPDATES_UPDATE_NOUN": "更新", - "REPLUGGED_ADDON_AUTHORS_MANY": "作者:{author1}、{author2}、{author3} 和另外 {count, number} 個人", - "REPLUGGED_VERSION": "Replugged {version, select, dev {[開發模式]} other {v{version}}}", - "REPLUGGED_SETTINGS_BADGES": "啟用 Replugged 徽章", - "REPLUGGED_SETTINGS_BADGES_DESC": "在用戶個人資料上顯示 Replugged 的徽章。", - "REPLUGGED_I18N": "Replugged 翻譯", - "REPLUGGED_VIEW_UPDATES": "查看 {count, plural, =1 {# 個更新} other {# 個更新}}", - "REPLUGGED_ADDON_BROWSE": "瀏覽{type}", - "REPLUGGED_ADDON_NOT_REVIEWED": "未經過審核的{type}", - "REPLUGGED_ADDON_NOT_REVIEWED_DESC": "這個{type}未經 Replugged 團隊審核,可能會損壞你的電腦。請自行承擔風險。", - "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY": "自動應用 Quick CSS", - "REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC": "在輸入時自動應用 Quick CSS 的變更。", - "REPLUGGED_DEVELOPER_MODE_WARNING": "你目前正在開發者模式下運行 Replugged, Replugged 將無法自行更新。 [切換至生產模式]({url}).", - "REPLUGGED_SETTINGS_DEV_COMPANION": "重新連接開發者夥伴", - "REPLUGGED_SETTINGS_DEV_COMPANION_DESC": "重新連接開發者夥伴核心模塊至 VSCode 插件。", - "REPLUGGED_SETTINGS_DEV_COMPANION_RECONNECT": "重新連接", - "REPLUGGED_SETTINGS_ADVANCED": "進階設置", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS": "開啟 React 開發工具", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC": "加載 React 開發工具插件,它允許你檢查 React 代碼樹并且更加容易地 debug 代碼。**需要重啟**。", - "REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED": "下載 React 開發工具失敗。", - "REPLUGGED_INSTALLER_OPEN_STORE": "在商店中查看", - "REPLUGGED_SETTINGS_ADDON_EMBEDS": "查看附加元件卡片", - "REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC": "在聊天中分享商店/安裝連結時,顯示一張包含插件信息的卡片。", - "REPLUGGED_RESTART": "重新啟動", - "REPLUGGED_SETTINGS_RESTART_TITLE": "需要重新啟動", - "REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME": "插件:{name}", - "REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED": "{type} {name} 已停用!", - "REPLUGGED_COMMAND_RELOAD_NAME": "重新載入", - "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME": "附加元件", - "REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC": "選擇要重新載入的附加元件", - "REPLUGGED_COMMAND_ERROR_GENERIC": "發生未知錯誤,請稍後再試。若問題持續,請聯繫 Replugged 團隊。", - "REPLUGGED_COMMAND_ENABLE_NAME": "啟用", - "REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME": "附加元件", - "REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC": "選擇要啟用的附加元件", - "REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED": "{type} {name} 已啟用!", - "REPLUGGED_COMMAND_DISABLE_NAME": "停用", - "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME": "附加元件", - "REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC": "選擇要停用的附加元件", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME": "類型", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC": "顯示哪種類型的附件元件", - "REPLUGGED_COMMAND_INSTALL_NAME": "安裝", - "REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED": "{type} {name} 已重新載入!", - "REPLUGGED_COMMAND_LIST_NAME": "列表", - "REPLUGGED_COMMAND_LIST_DESC": "列出所有插件或主題", - "REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME": "發送", - "REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC": "在聊天中公開列表", - "REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME": "版本", - "REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC": "在列表中包含版本號碼", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME": "狀態", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC": "是否顯示已啟用、已停用或所有的插件", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED": "已啟用", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED": "已停用", - "REPLUGGED_COMMAND_INSTALL_DESC": "安裝插件或主題", - "REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH": "所有", - "REPLUGGED_COMMAND_LIST_HEADER_ENABLED": "已啟用{type}", - "REPLUGGED_COMMAND_LIST_HEADER_DISABLED": "已停用{type}", - "REPLUGGED_COMMAND_LIST_ERROR_SPECIFY": "你需要指定發送插件列表或主題列表", - "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_WINDOWS": "****警告****:此操作會破壞**視窗對齊**的功能。在某些情況下,你可能會遇到黑屏的問題,例如當視窗由於螢幕解析度問題而被截斷在頂部或底部時,或者當開啟和停靠在開發工具時。", - "REPLUGGED_SETTINGS_TRANSPARENT": "透明視窗", - "REPLUGGED_SETTINGS_TRANSPARENT_DESC": "讓Discord視窗透明,主要用於主題。**需要重新啟動**。", - "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME": "附件元件", - "REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC": "從來源安裝的附加元件標識碼", - "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME": "來源", - "REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC": "安裝附加元件的來源", - "REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME": "ID", - "REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC": "如果來源有多個附加元件,請指定要安裝哪一個", - "REPLUGGED_SETTINGS_TRANSPARENT_ISSUES_LINUX": "****警告****:**硬體加速**可能需要**關閉**。在某些情況下,你可能會遇到黑屏的問題,例如窗口因螢幕解析度導致頂部或底部被切割掉,或者當開啟並停靠開發工具時。", - "REPLUGGED_STORE": "商店", - "REPLUGGED_COMMAND_SUCCESS_GENERIC": "成功", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN": "列出插件", - "REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME": "列出主題" -} diff --git a/package.json b/package.json index 47ddf0ffa..ff079c178 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "node": ">=20.0.0", "pnpm": ">=9.0.0" }, - "packageManager": "pnpm@9.4.0", + "packageManager": "pnpm@9.12.3", "scripts": { "build": "tsx scripts/build.mts", "bundle": "tsx scripts/build.mts --production", @@ -38,34 +38,35 @@ "url": "https://github.com/replugged-org/replugged/issues" }, "devDependencies": { - "@marshift/argus": "^1.0.3", - "@types/adm-zip": "^0.5.5", - "@types/lodash": "^4.17.5", - "@types/node": "^20.14.8", + "@discord/intl-loader-core": "^0.13.0", + "@marshift/argus": "^1.2.1", + "@types/adm-zip": "^0.5.6", + "@types/lodash": "^4.17.13", + "@types/node": "^20.17.6", "@types/prompts": "^2.4.9", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", "@types/react-reconciler": "^0.28.8", "@types/semver": "^7.5.8", - "@types/superagent": "^8.1.7", + "@types/superagent": "^8.1.9", "@types/update-notifier": "^6.0.8", - "@types/ws": "^8.5.10", - "@types/yargs": "^17.0.32", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", - "cspell": "^8.9.1", + "@types/ws": "^8.5.13", + "@types/yargs": "^17.0.33", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "cspell": "^8.16.0", "discord-types": "^1.3.3", - "eslint": "^8.57.0", + "eslint": "^8.57.1", "eslint-config-dmitmel": "github:dmitmel/eslint-config-dmitmel", "eslint-plugin-node": "^11.1.0", - "highlight.js": "^11.9.0", + "highlight.js": "^11.10.0", "moment": "^2.30.1", - "np": "^10.0.6", - "prettier": "^3.3.2", + "np": "^10.0.7", + "prettier": "^3.3.3", "simple-markdown": "^0.7.3", "style-mod": "^4.1.2", - "type-fest": "^4.20.1", - "typedoc": "^0.26.0", + "type-fest": "^4.26.1", + "typedoc": "^0.26.11", "typescript": "^5.4.5" }, "files": [ @@ -76,24 +77,25 @@ "src/util.mts" ], "dependencies": { - "@codemirror/lang-css": "^6.2.1", - "@codemirror/language": "^6.10.2", + "@codemirror/lang-css": "^6.3.0", + "@codemirror/language": "^6.10.3", "@codemirror/state": "^6.4.1", - "@electron/asar": "^3.2.10", - "@lezer/highlight": "^1.2.0", - "@octokit/rest": "^20.1.1", - "adm-zip": "^0.5.14", + "@discord/intl": "^0.13.0", + "@electron/asar": "^3.2.17", + "@lezer/highlight": "^1.2.1", + "@octokit/rest": "^21.0.2", + "adm-zip": "^0.5.16", "chalk": "^5.3.0", "codemirror": "^6.0.1", - "esbuild": "^0.21.5", + "esbuild": "^0.24.0", "esbuild-sass-plugin": "^3.3.1", "node-fetch": "^3.3.2", "prompts": "^2.4.2", - "semver": "^7.6.2", + "semver": "^7.6.3", "standalone-electron-types": "^1.0.0", - "tsx": "^4.15.7", - "update-notifier": "^7.0.0", - "ws": "^8.17.1", + "tsx": "^4.19.2", + "update-notifier": "^7.3.1", + "ws": "^8.18.0", "yargs": "^17.7.2", "zod": "^3.23.8" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c04a44f6..ccd50fb49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,26 +9,29 @@ importers: .: dependencies: '@codemirror/lang-css': - specifier: ^6.2.1 - version: 6.2.1(@codemirror/view@6.28.2) + specifier: ^6.3.0 + version: 6.3.0(@codemirror/view@6.28.2) '@codemirror/language': - specifier: ^6.10.2 - version: 6.10.2 + specifier: ^6.10.3 + version: 6.10.3 '@codemirror/state': specifier: ^6.4.1 version: 6.4.1 + '@discord/intl': + specifier: ^0.13.0 + version: 0.13.0(react@18.3.1)(typescript@5.4.5) '@electron/asar': - specifier: ^3.2.10 - version: 3.2.10 + specifier: ^3.2.17 + version: 3.2.17 '@lezer/highlight': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 '@octokit/rest': - specifier: ^20.1.1 - version: 20.1.1 + specifier: ^21.0.2 + version: 21.0.2 adm-zip: - specifier: ^0.5.14 - version: 0.5.14 + specifier: ^0.5.16 + version: 0.5.16 chalk: specifier: ^5.3.0 version: 5.3.0 @@ -36,11 +39,11 @@ importers: specifier: ^6.0.1 version: 6.0.1(@lezer/common@1.2.1) esbuild: - specifier: ^0.21.5 - version: 0.21.5 + specifier: ^0.24.0 + version: 0.24.0 esbuild-sass-plugin: specifier: ^3.3.1 - version: 3.3.1(esbuild@0.21.5)(sass-embedded@1.77.5) + version: 3.3.1(esbuild@0.24.0)(sass-embedded@1.77.5) node-fetch: specifier: ^3.3.2 version: 3.3.2 @@ -48,20 +51,20 @@ importers: specifier: ^2.4.2 version: 2.4.2 semver: - specifier: ^7.6.2 - version: 7.6.2 + specifier: ^7.6.3 + version: 7.6.3 standalone-electron-types: specifier: ^1.0.0 version: 1.0.0 tsx: - specifier: ^4.15.7 - version: 4.15.7 + specifier: ^4.19.2 + version: 4.19.2 update-notifier: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.3.1 + version: 7.3.1 ws: - specifier: ^8.17.1 - version: 8.17.1 + specifier: ^8.18.0 + version: 8.18.0 yargs: specifier: ^17.7.2 version: 17.7.2 @@ -69,27 +72,30 @@ importers: specifier: ^3.23.8 version: 3.23.8 devDependencies: + '@discord/intl-loader-core': + specifier: ^0.13.0 + version: 0.13.0 '@marshift/argus': - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.2.1 + version: 1.2.1 '@types/adm-zip': - specifier: ^0.5.5 - version: 0.5.5 + specifier: ^0.5.6 + version: 0.5.6 '@types/lodash': - specifier: ^4.17.5 - version: 4.17.5 + specifier: ^4.17.13 + version: 4.17.13 '@types/node': - specifier: ^20.14.8 - version: 20.14.8 + specifier: ^20.17.6 + version: 20.17.6 '@types/prompts': specifier: ^2.4.9 version: 2.4.9 '@types/react': - specifier: ^18.2.79 - version: 18.2.79 + specifier: ^18.3.12 + version: 18.3.12 '@types/react-dom': - specifier: ^18.2.25 - version: 18.2.25 + specifier: ^18.3.1 + version: 18.3.1 '@types/react-reconciler': specifier: ^0.28.8 version: 0.28.8 @@ -97,50 +103,50 @@ importers: specifier: ^7.5.8 version: 7.5.8 '@types/superagent': - specifier: ^8.1.7 - version: 8.1.7 + specifier: ^8.1.9 + version: 8.1.9 '@types/update-notifier': specifier: ^6.0.8 version: 6.0.8 '@types/ws': - specifier: ^8.5.10 - version: 8.5.10 + specifier: ^8.5.13 + version: 8.5.13 '@types/yargs': - specifier: ^17.0.32 - version: 17.0.32 + specifier: ^17.0.33 + version: 17.0.33 '@typescript-eslint/eslint-plugin': - specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.57.1)(typescript@5.4.5) cspell: - specifier: ^8.9.1 - version: 8.9.1 + specifier: ^8.16.0 + version: 8.16.0 discord-types: specifier: ^1.3.3 version: 1.3.3 eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^8.57.1 + version: 8.57.1 eslint-config-dmitmel: specifier: github:dmitmel/eslint-config-dmitmel - version: https://codeload.github.com/dmitmel/eslint-config-dmitmel/tar.gz/d97129ec35235415c6ae6a42299f55cdbb5d75fd(eslint@8.57.0) + version: https://codeload.github.com/dmitmel/eslint-config-dmitmel/tar.gz/d97129ec35235415c6ae6a42299f55cdbb5d75fd(eslint@8.57.1) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.57.0) + version: 11.1.0(eslint@8.57.1) highlight.js: - specifier: ^11.9.0 - version: 11.9.0 + specifier: ^11.10.0 + version: 11.10.0 moment: specifier: ^2.30.1 version: 2.30.1 np: - specifier: ^10.0.6 - version: 10.0.6(typescript@5.4.5) + specifier: ^10.0.7 + version: 10.0.7(typescript@5.4.5) prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.3.3 + version: 3.3.3 simple-markdown: specifier: ^0.7.3 version: 0.7.3 @@ -148,11 +154,11 @@ importers: specifier: ^4.1.2 version: 4.1.2 type-fest: - specifier: ^4.20.1 - version: 4.20.1 + specifier: ^4.26.1 + version: 4.26.1 typedoc: - specifier: ^0.26.0 - version: 0.26.0(typescript@5.4.5) + specifier: ^0.26.11 + version: 0.26.11(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -185,11 +191,11 @@ packages: '@codemirror/commands@6.6.0': resolution: {integrity: sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==} - '@codemirror/lang-css@6.2.1': - resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} + '@codemirror/lang-css@6.3.0': + resolution: {integrity: sha512-CyR4rUNG9OYcXDZwMPvJdtb6PHbBDKUc/6Na2BIwZ6dKab1JQqKa4di+RNRY9Myn7JB81vayKwJeQ7jEdmNVDA==} - '@codemirror/language@6.10.2': - resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==} + '@codemirror/language@6.10.3': + resolution: {integrity: sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==} '@codemirror/lint@6.8.1': resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==} @@ -203,341 +209,578 @@ packages: '@codemirror/view@6.28.2': resolution: {integrity: sha512-A3DmyVfjgPsGIjiJqM/zvODUAPQdQl3ci0ghehYNnbt5x+o76xq+dL5+mMBuysDXnI3kapgOkoeJ0sbtL/3qPw==} - '@cspell/cspell-bundled-dicts@8.9.1': - resolution: {integrity: sha512-etkor/qXSSqyh6lbudEGdTami0DooIi2AlQbJPUWRfowzYJRSYWPUbyQSUkFdRhCHni2oLOFbWaraRthNlLD/A==} + '@cspell/cspell-bundled-dicts@8.16.0': + resolution: {integrity: sha512-R0Eqq5kTZnmZ0elih5uY3TWjMqqAeMl7ciU7maUs+m1FNjCEdJXtJ9wrQxNgjmXi0tX8cvahZRO3O558tEz/KA==} engines: {node: '>=18'} - '@cspell/cspell-json-reporter@8.9.1': - resolution: {integrity: sha512-sN4PZivGuH/HWScvoCeNuNc5VLSe4F+SeuoyKmsF4uRv447r9sW0/fpjASGqDTjLXpEfWaXDPoIb+0alY3gm+g==} + '@cspell/cspell-json-reporter@8.16.0': + resolution: {integrity: sha512-KLjPK94gA3JNuWy70LeenJ6EL3SFk2ejERKYJ6SVV/cVOKIvVd2qe42yX3/A/DkF2xzuZ2LD4z0sfoqQL1BaqA==} engines: {node: '>=18'} - '@cspell/cspell-pipe@8.9.1': - resolution: {integrity: sha512-wH5Xu8W3aMEWFSpOczMtH/04clLMfDGdbYMYB7w6BeHI/LDW8DZaRhigOOhx9FRgVk/YIVbKKAKVgvFrfD5cEA==} + '@cspell/cspell-pipe@8.16.0': + resolution: {integrity: sha512-WoCgrv/mrtwCY4lhc6vEcqN3AQ7lT6K0NW5ShoSo116U2tRaW0unApIYH4Va8u7T9g3wyspFEceQRR1xD9qb9w==} engines: {node: '>=18'} - '@cspell/cspell-resolver@8.9.1': - resolution: {integrity: sha512-Q2SOnIi2dnQ2zqPd+tcEYfom9qlsapGyLK4Mdx2Vv29MU2RDZ9VHFDncV6yo6O58gmlYl8sXtJsVceiHgwwlkQ==} + '@cspell/cspell-resolver@8.16.0': + resolution: {integrity: sha512-b+99bph43ptkXlQHgPXSkN/jK6LQHy2zL1Fm9up7+x6Yr64bxAzWzoeqJAPtnrPvFuOrFN0jZasZzKBw8CvrrQ==} engines: {node: '>=18'} - '@cspell/cspell-service-bus@8.9.1': - resolution: {integrity: sha512-dPKpqkglGnwvrW9mgbHIdimDQZH3iy8uT8gm3dEO//UahxMBdMpvtdbC3R9kesQCSagvYRVE7hwJvOktSAK+Vg==} + '@cspell/cspell-service-bus@8.16.0': + resolution: {integrity: sha512-+fn763JKA4EYCOv+1VShFq015UMEBAFRDr+rlCnesgLE0fv9TSFVLsjOfh9/g6GuGQLCRLUqKztwwuueeErstQ==} engines: {node: '>=18'} - '@cspell/cspell-types@8.9.1': - resolution: {integrity: sha512-Z/pTX2i+U5KwyCYRSw8BleJtw81jFifv91DDka4nqi2oyHJ3eEUljVovNOuZ3lotn/ArHdu4rY98s1w6Z69mYw==} + '@cspell/cspell-types@8.16.0': + resolution: {integrity: sha512-bGrIK7p4NVsK+QX/CYWmjax+FkzfSIZaIaoiBESGV5gmwgXDVRMJ3IP6tQVAmTtckOYHCmtT5CZgI8zXWr8dHQ==} engines: {node: '>=18'} - '@cspell/dict-ada@4.0.2': - resolution: {integrity: sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==} + '@cspell/dict-ada@4.0.5': + resolution: {integrity: sha512-6/RtZ/a+lhFVmrx/B7bfP7rzC4yjEYe8o74EybXcvu4Oue6J4Ey2WSYj96iuodloj1LWrkNCQyX5h4Pmcj0Iag==} - '@cspell/dict-aws@4.0.2': - resolution: {integrity: sha512-aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw==} + '@cspell/dict-al@1.0.3': + resolution: {integrity: sha512-V1HClwlfU/qwSq2Kt+MkqRAsonNu3mxjSCDyGRecdLGIHmh7yeEeaxqRiO/VZ4KP+eVSiSIlbwrb5YNFfxYZbw==} - '@cspell/dict-bash@4.1.3': - resolution: {integrity: sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==} + '@cspell/dict-aws@4.0.7': + resolution: {integrity: sha512-PoaPpa2NXtSkhGIMIKhsJUXB6UbtTt6Ao3x9JdU9kn7fRZkwD4RjHDGqulucIOz7KeEX/dNRafap6oK9xHe4RA==} - '@cspell/dict-companies@3.1.2': - resolution: {integrity: sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w==} + '@cspell/dict-bash@4.1.8': + resolution: {integrity: sha512-I2CM2pTNthQwW069lKcrVxchJGMVQBzru2ygsHCwgidXRnJL/NTjAPOFTxN58Jc1bf7THWghfEDyKX/oyfc0yg==} - '@cspell/dict-cpp@5.1.10': - resolution: {integrity: sha512-BmIF0sAz2BgGEOwzYIeEm9ALneDjd1tcTbFbo+A1Hcq3zOKP8yViSgxS9CEN30KOZIyph6Tldp531UPEpoEl0Q==} + '@cspell/dict-companies@3.1.7': + resolution: {integrity: sha512-ncVs/efuAkP1/tLDhWbXukBjgZ5xOUfe03neHMWsE8zvXXc5+Lw6TX5jaJXZLOoES/f4j4AhRE20jsPCF5pm+A==} - '@cspell/dict-cryptocurrencies@5.0.0': - resolution: {integrity: sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA==} + '@cspell/dict-cpp@6.0.2': + resolution: {integrity: sha512-yw5eejWvY4bAnc6LUA44m4WsFwlmgPt2uMSnO7QViGMBDuoeopMma4z9XYvs4lSjTi8fIJs/A1YDfM9AVzb8eg==} - '@cspell/dict-csharp@4.0.2': - resolution: {integrity: sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==} + '@cspell/dict-cryptocurrencies@5.0.3': + resolution: {integrity: sha512-bl5q+Mk+T3xOZ12+FG37dB30GDxStza49Rmoax95n37MTLksk9wBo1ICOlPJ6PnDUSyeuv4SIVKgRKMKkJJglA==} - '@cspell/dict-css@4.0.12': - resolution: {integrity: sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==} + '@cspell/dict-csharp@4.0.5': + resolution: {integrity: sha512-c/sFnNgtRwRJxtC3JHKkyOm+U3/sUrltFeNwml9VsxKBHVmvlg4tk4ar58PdpW9/zTlGUkWi2i85//DN1EsUCA==} - '@cspell/dict-dart@2.0.3': - resolution: {integrity: sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==} + '@cspell/dict-css@4.0.16': + resolution: {integrity: sha512-70qu7L9z/JR6QLyJPk38fNTKitlIHnfunx0wjpWQUQ8/jGADIhMCrz6hInBjqPNdtGpYm8d1dNFyF8taEkOgrQ==} - '@cspell/dict-data-science@2.0.1': - resolution: {integrity: sha512-xeutkzK0eBe+LFXOFU2kJeAYO6IuFUc1g7iRLr7HeCmlC4rsdGclwGHh61KmttL3+YHQytYStxaRBdGAXWC8Lw==} + '@cspell/dict-dart@2.2.4': + resolution: {integrity: sha512-of/cVuUIZZK/+iqefGln8G3bVpfyN6ZtH+LyLkHMoR5tEj+2vtilGNk9ngwyR8L4lEqbKuzSkOxgfVjsXf5PsQ==} - '@cspell/dict-django@4.1.0': - resolution: {integrity: sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==} + '@cspell/dict-data-science@2.0.5': + resolution: {integrity: sha512-nNSILXmhSJox9/QoXICPQgm8q5PbiSQP4afpbkBqPi/u/b3K9MbNH5HvOOa6230gxcGdbZ9Argl2hY/U8siBlg==} - '@cspell/dict-docker@1.1.7': - resolution: {integrity: sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==} + '@cspell/dict-django@4.1.3': + resolution: {integrity: sha512-yBspeL3roJlO0a1vKKNaWABURuHdHZ9b1L8d3AukX0AsBy9snSggc8xCavPmSzNfeMDXbH+1lgQiYBd3IW03fg==} - '@cspell/dict-dotnet@5.0.2': - resolution: {integrity: sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==} + '@cspell/dict-docker@1.1.11': + resolution: {integrity: sha512-s0Yhb16/R+UT1y727ekbR/itWQF3Qz275DR1ahOa66wYtPjHUXmhM3B/LT3aPaX+hD6AWmK23v57SuyfYHUjsw==} - '@cspell/dict-elixir@4.0.3': - resolution: {integrity: sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==} + '@cspell/dict-dotnet@5.0.8': + resolution: {integrity: sha512-MD8CmMgMEdJAIPl2Py3iqrx3B708MbCIXAuOeZ0Mzzb8YmLmiisY7QEYSZPg08D7xuwARycP0Ki+bb0GAkFSqg==} - '@cspell/dict-en-common-misspellings@2.0.3': - resolution: {integrity: sha512-8nF1z9nUiSgMyikL66HTbDO7jCGtB24TxKBasXIBwkBKMDZgA2M883iXdeByy6m1JJUcCGFkSftVYp2W0bUgjw==} + '@cspell/dict-elixir@4.0.6': + resolution: {integrity: sha512-TfqSTxMHZ2jhiqnXlVKM0bUADtCvwKQv2XZL/DI0rx3doG8mEMS8SGPOmiyyGkHpR/pGOq18AFH3BEm4lViHIw==} + + '@cspell/dict-en-common-misspellings@2.0.7': + resolution: {integrity: sha512-qNFo3G4wyabcwnM+hDrMYKN9vNVg/k9QkhqSlSst6pULjdvPyPs1mqz1689xO/v9t8e6sR4IKc3CgUXDMTYOpA==} '@cspell/dict-en-gb@1.1.33': resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - '@cspell/dict-en_us@4.3.23': - resolution: {integrity: sha512-l0SoEQBsi3zDSl3OuL4/apBkxjuj4hLIg/oy6+gZ7LWh03rKdF6VNtSZNXWAmMY+pmb1cGA3ouleTiJIglbsIg==} + '@cspell/dict-en_us@4.3.27': + resolution: {integrity: sha512-7JYHahRWpi0VykWFTSM03KL/0fs6YtYfpOaTAg4N/d0wB2GfwVG/FJ/SBCjD4LBc6Rx9dzdo95Hs4BB8GPQbOA==} - '@cspell/dict-filetypes@3.0.4': - resolution: {integrity: sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==} + '@cspell/dict-filetypes@3.0.8': + resolution: {integrity: sha512-D3N8sm/iptzfVwsib/jvpX+K/++rM8SRpLDFUaM4jxm8EyGmSIYRbKZvdIv5BkAWmMlTWoRqlLn7Yb1b11jKJg==} - '@cspell/dict-fonts@4.0.0': - resolution: {integrity: sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==} + '@cspell/dict-flutter@1.0.3': + resolution: {integrity: sha512-52C9aUEU22ptpgYh6gQyIdA4MP6NPwzbEqndfgPh3Sra191/kgs7CVqXiO1qbtZa9gnYHUoVApkoxRE7mrXHfg==} - '@cspell/dict-fsharp@1.0.1': - resolution: {integrity: sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ==} + '@cspell/dict-fonts@4.0.3': + resolution: {integrity: sha512-sPd17kV5qgYXLteuHFPn5mbp/oCHKgitNfsZLFC3W2fWEgZlhg4hK+UGig3KzrYhhvQ8wBnmZrAQm0TFKCKzsA==} - '@cspell/dict-fullstack@3.1.8': - resolution: {integrity: sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ==} + '@cspell/dict-fsharp@1.0.4': + resolution: {integrity: sha512-G5wk0o1qyHUNi9nVgdE1h5wl5ylq7pcBjX8vhjHcO4XBq20D5eMoXjwqMo/+szKAqzJ+WV3BgAL50akLKrT9Rw==} - '@cspell/dict-gaming-terms@1.0.5': - resolution: {integrity: sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw==} + '@cspell/dict-fullstack@3.2.3': + resolution: {integrity: sha512-62PbndIyQPH11mAv0PyiyT0vbwD0AXEocPpHlCHzfb5v9SspzCCbzQ/LIBiFmyRa+q5LMW35CnSVu6OXdT+LKg==} - '@cspell/dict-git@3.0.0': - resolution: {integrity: sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw==} + '@cspell/dict-gaming-terms@1.0.8': + resolution: {integrity: sha512-7OL0zTl93WFWhhtpXFrtm9uZXItC3ncAs8d0iQDMMFVNU1rBr6raBNxJskxE5wx2Ant12fgI66ZGVagXfN+yfA==} - '@cspell/dict-golang@6.0.9': - resolution: {integrity: sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==} + '@cspell/dict-git@3.0.3': + resolution: {integrity: sha512-LSxB+psZ0qoj83GkyjeEH/ZViyVsGEF/A6BAo8Nqc0w0HjD2qX/QR4sfA6JHUgQ3Yi/ccxdK7xNIo67L2ScW5A==} - '@cspell/dict-google@1.0.1': - resolution: {integrity: sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==} + '@cspell/dict-golang@6.0.16': + resolution: {integrity: sha512-hZOBlgcguv2Hdc93n2zjdAQm1j3grsN9T9WhPnQ1wh2vUDoCLEujg+6gWhjcLb8ECOcwZTWgNyQLWeOxEsAj/w==} - '@cspell/dict-haskell@4.0.1': - resolution: {integrity: sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==} + '@cspell/dict-google@1.0.4': + resolution: {integrity: sha512-JThUT9eiguCja1mHHLwYESgxkhk17Gv7P3b1S7ZJzXw86QyVHPrbpVoMpozHk0C9o+Ym764B7gZGKmw9uMGduQ==} - '@cspell/dict-html-symbol-entities@4.0.0': - resolution: {integrity: sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==} + '@cspell/dict-haskell@4.0.4': + resolution: {integrity: sha512-EwQsedEEnND/vY6tqRfg9y7tsnZdxNqOxLXSXTsFA6JRhUlr8Qs88iUUAfsUzWc4nNmmzQH2UbtT25ooG9x4nA==} - '@cspell/dict-html@4.0.5': - resolution: {integrity: sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==} + '@cspell/dict-html-symbol-entities@4.0.3': + resolution: {integrity: sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A==} - '@cspell/dict-java@5.0.7': - resolution: {integrity: sha512-ejQ9iJXYIq7R09BScU2y5OUGrSqwcD+J5mHFOKbduuQ5s/Eh/duz45KOzykeMLI6KHPVxhBKpUPBWIsfewECpQ==} + '@cspell/dict-html@4.0.10': + resolution: {integrity: sha512-I9uRAcdtHbh0wEtYZlgF0TTcgH0xaw1B54G2CW+tx4vHUwlde/+JBOfIzird4+WcMv4smZOfw+qHf7puFUbI5g==} - '@cspell/dict-julia@1.0.1': - resolution: {integrity: sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==} + '@cspell/dict-java@5.0.10': + resolution: {integrity: sha512-pVNcOnmoGiNL8GSVq4WbX/Vs2FGS0Nej+1aEeGuUY9CU14X8yAVCG+oih5ZoLt1jaR8YfR8byUF8wdp4qG4XIw==} - '@cspell/dict-k8s@1.0.5': - resolution: {integrity: sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ==} + '@cspell/dict-julia@1.0.4': + resolution: {integrity: sha512-bFVgNX35MD3kZRbXbJVzdnN7OuEqmQXGpdOi9jzB40TSgBTlJWA4nxeAKV4CPCZxNRUGnLH0p05T/AD7Aom9/w==} - '@cspell/dict-latex@4.0.0': - resolution: {integrity: sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==} + '@cspell/dict-k8s@1.0.9': + resolution: {integrity: sha512-Q7GELSQIzo+BERl2ya/nBEnZeQC+zJP19SN1pI6gqDYraM51uYJacbbcWLYYO2Y+5joDjNt/sd/lJtLaQwoSlA==} - '@cspell/dict-lorem-ipsum@4.0.0': - resolution: {integrity: sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==} + '@cspell/dict-latex@4.0.3': + resolution: {integrity: sha512-2KXBt9fSpymYHxHfvhUpjUFyzrmN4c4P8mwIzweLyvqntBT3k0YGZJSriOdjfUjwSygrfEwiuPI1EMrvgrOMJw==} - '@cspell/dict-lua@4.0.3': - resolution: {integrity: sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==} + '@cspell/dict-lorem-ipsum@4.0.3': + resolution: {integrity: sha512-WFpDi/PDYHXft6p0eCXuYnn7mzMEQLVeqpO+wHSUd+kz5ADusZ4cpslAA4wUZJstF1/1kMCQCZM6HLZic9bT8A==} - '@cspell/dict-makefile@1.0.0': - resolution: {integrity: sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==} + '@cspell/dict-lua@4.0.6': + resolution: {integrity: sha512-Jwvh1jmAd9b+SP9e1GkS2ACbqKKRo9E1f9GdjF/ijmooZuHU0hPyqvnhZzUAxO1egbnNjxS/J2T6iUtjAUK2KQ==} - '@cspell/dict-monkeyc@1.0.6': - resolution: {integrity: sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==} + '@cspell/dict-makefile@1.0.3': + resolution: {integrity: sha512-R3U0DSpvTs6qdqfyBATnePj9Q/pypkje0Nj26mQJ8TOBQutCRAJbr2ZFAeDjgRx5EAJU/+8txiyVF97fbVRViw==} - '@cspell/dict-node@5.0.1': - resolution: {integrity: sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==} + '@cspell/dict-markdown@2.0.7': + resolution: {integrity: sha512-F9SGsSOokFn976DV4u/1eL4FtKQDSgJHSZ3+haPRU5ki6OEqojxKa8hhj4AUrtNFpmBaJx/WJ4YaEzWqG7hgqg==} + peerDependencies: + '@cspell/dict-css': ^4.0.16 + '@cspell/dict-html': ^4.0.10 + '@cspell/dict-html-symbol-entities': ^4.0.3 + '@cspell/dict-typescript': ^3.1.11 - '@cspell/dict-npm@5.0.16': - resolution: {integrity: sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew==} + '@cspell/dict-monkeyc@1.0.9': + resolution: {integrity: sha512-Jvf6g5xlB4+za3ThvenYKREXTEgzx5gMUSzrAxIiPleVG4hmRb/GBSoSjtkGaibN3XxGx5x809gSTYCA/IHCpA==} - '@cspell/dict-php@4.0.8': - resolution: {integrity: sha512-TBw3won4MCBQ2wdu7kvgOCR3dY2Tb+LJHgDUpuquy3WnzGiSDJ4AVelrZdE1xu7mjFJUr4q48aB21YT5uQqPZA==} + '@cspell/dict-node@5.0.5': + resolution: {integrity: sha512-7NbCS2E8ZZRZwlLrh2sA0vAk9n1kcTUiRp/Nia8YvKaItGXLfxYqD2rMQ3HpB1kEutal6hQLVic3N2Yi1X7AaA==} - '@cspell/dict-powershell@5.0.4': - resolution: {integrity: sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ==} + '@cspell/dict-npm@5.1.11': + resolution: {integrity: sha512-5ricJyVMw5TmqR0NfsZS8jEJu1+DLzyUXyjpVFnffPuEtz9jF2XswLK0swZqc9uwWrz0M7IhGVCnmq90srVZCA==} - '@cspell/dict-public-licenses@2.0.7': - resolution: {integrity: sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==} + '@cspell/dict-php@4.0.13': + resolution: {integrity: sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg==} - '@cspell/dict-python@4.2.1': - resolution: {integrity: sha512-9X2jRgyM0cxBoFQRo4Zc8oacyWnXi+0/bMI5FGibZNZV4y/o9UoFEr6agjU260/cXHTjIdkX233nN7eb7dtyRg==} + '@cspell/dict-powershell@5.0.13': + resolution: {integrity: sha512-0qdj0XZIPmb77nRTynKidRJKTU0Fl+10jyLbAhFTuBWKMypVY06EaYFnwhsgsws/7nNX8MTEQuewbl9bWFAbsg==} - '@cspell/dict-r@2.0.1': - resolution: {integrity: sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==} + '@cspell/dict-public-licenses@2.0.11': + resolution: {integrity: sha512-rR5KjRUSnVKdfs5G+gJ4oIvQvm8+NJ6cHWY2N+GE69/FSGWDOPHxulCzeGnQU/c6WWZMSimG9o49i9r//lUQyA==} - '@cspell/dict-ruby@5.0.2': - resolution: {integrity: sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g==} + '@cspell/dict-python@4.2.12': + resolution: {integrity: sha512-U25eOFu+RE0aEcF2AsxZmq3Lic7y9zspJ9SzjrC0mfJz+yr3YmSCw4E0blMD3mZoNcf7H/vMshuKIY5AY36U+Q==} - '@cspell/dict-rust@4.0.4': - resolution: {integrity: sha512-v9/LcZknt/Xq7m1jdTWiQEtmkVVKdE1etAfGL2sgcWpZYewEa459HeWndNA0gfzQrpWX9sYay18mt7pqClJEdA==} + '@cspell/dict-r@2.0.4': + resolution: {integrity: sha512-cBpRsE/U0d9BRhiNRMLMH1PpWgw+N+1A2jumgt1if9nBGmQw4MUpg2u9I0xlFVhstTIdzXiLXMxP45cABuiUeQ==} - '@cspell/dict-scala@5.0.2': - resolution: {integrity: sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==} + '@cspell/dict-ruby@5.0.7': + resolution: {integrity: sha512-4/d0hcoPzi5Alk0FmcyqlzFW9lQnZh9j07MJzPcyVO62nYJJAGKaPZL2o4qHeCS/od/ctJC5AHRdoUm0ktsw6Q==} - '@cspell/dict-software-terms@3.4.7': - resolution: {integrity: sha512-ZZIBx7kJBLQfZ9NmGSULZDEHOWz0lVRU3+qf2SDTUFG1jYLv8ahPVKGRkx22r76ePPeJlujm7rk2j1LETFLcIA==} + '@cspell/dict-rust@4.0.9': + resolution: {integrity: sha512-Dhr6TIZsMV92xcikKIWei6p/qswS4M+gTkivpWwz4/1oaVk2nRrxJmCdRoVkJlZkkAc17rjxrS12mpnJZI0iWw==} - '@cspell/dict-sql@2.1.3': - resolution: {integrity: sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ==} + '@cspell/dict-scala@5.0.6': + resolution: {integrity: sha512-tl0YWAfjUVb4LyyE4JIMVE8DlLzb1ecHRmIWc4eT6nkyDqQgHKzdHsnusxFEFMVLIQomgSg0Zz6hJ5S1E4W4ww==} - '@cspell/dict-svelte@1.0.2': - resolution: {integrity: sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==} + '@cspell/dict-software-terms@4.1.14': + resolution: {integrity: sha512-p3oZQSQTgdu3UjZ5aaEeU5aKRD00j/oZzt51ohbhhJ94UYECi8te8SfcA45UbGkylSSGcAtJWkuwjCLMiKAgyQ==} - '@cspell/dict-swift@2.0.1': - resolution: {integrity: sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==} + '@cspell/dict-sql@2.1.8': + resolution: {integrity: sha512-dJRE4JV1qmXTbbGm6WIcg1knmR6K5RXnQxF4XHs5HA3LAjc/zf77F95i5LC+guOGppVF6Hdl66S2UyxT+SAF3A==} - '@cspell/dict-terraform@1.0.0': - resolution: {integrity: sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==} + '@cspell/dict-svelte@1.0.5': + resolution: {integrity: sha512-sseHlcXOqWE4Ner9sg8KsjxwSJ2yssoJNqFHR9liWVbDV+m7kBiUtn2EB690TihzVsEmDr/0Yxrbb5Bniz70mA==} - '@cspell/dict-typescript@3.1.5': - resolution: {integrity: sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw==} + '@cspell/dict-swift@2.0.4': + resolution: {integrity: sha512-CsFF0IFAbRtYNg0yZcdaYbADF5F3DsM8C4wHnZefQy8YcHP/qjAF/GdGfBFBLx+XSthYuBlo2b2XQVdz3cJZBw==} - '@cspell/dict-vue@3.0.0': - resolution: {integrity: sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==} + '@cspell/dict-terraform@1.0.6': + resolution: {integrity: sha512-Sqm5vGbXuI9hCFcr4w6xWf4Y25J9SdleE/IqfM6RySPnk8lISEmVdax4k6+Kinv9qaxyvnIbUUN4WFLWcBPQAg==} - '@cspell/dynamic-import@8.9.1': - resolution: {integrity: sha512-ao4IDqQ8MyRqiB3NHA8R7ThRsuDLXdSCFm7Pvz8EqDnWaX3NAuClzgT3EoxJlw9pyyPQX3tW5Vg7ft3GSsBFUw==} + '@cspell/dict-typescript@3.1.11': + resolution: {integrity: sha512-FwvK5sKbwrVpdw0e9+1lVTl8FPoHYvfHRuQRQz2Ql5XkC0gwPPkpoyD1zYImjIyZRoYXk3yp9j8ss4iz7A7zoQ==} + + '@cspell/dict-vue@3.0.3': + resolution: {integrity: sha512-akmYbrgAGumqk1xXALtDJcEcOMYBYMnkjpmGzH13Ozhq1mkPF4VgllFQlm1xYde+BUKNnzMgPEzxrL2qZllgYA==} + + '@cspell/dynamic-import@8.16.0': + resolution: {integrity: sha512-FH+B5y71qfunagXiLSJhXP9h/Vwb1Z8Cc/hLmliGekw/Y8BuYknL86tMg9grXBYNmM0kifIv6ZesQl8Km/p/rA==} engines: {node: '>=18.0'} - '@cspell/strong-weak-map@8.9.1': - resolution: {integrity: sha512-onD/UPJW7rBQrRDqYNvPUAoWoBp1G2g+mijAD7EkuseyAKTKlKz624rXpHUOTqI814owmhFMNSf2QyYy8gFM6Q==} + '@cspell/filetypes@8.16.0': + resolution: {integrity: sha512-u2Ub0uSwXFPJFvXhAO/0FZBj3sMr4CeYCiQwTUsdFRkRMFpbTc7Vf+a+aC2vIj6WcaWrYXrJy3NZF/yjqF6SGw==} engines: {node: '>=18'} - '@cspell/url@8.9.1': - resolution: {integrity: sha512-2AncPKGq9fnytwnL7V4KfoSjiEU0m8tVDFerGiDMNmTMWiQ4zj0kTATai118XT1eBVKiyrAotYRLSrsuUo9U3g==} + '@cspell/strong-weak-map@8.16.0': + resolution: {integrity: sha512-R6N12wEIQpBk2uyni/FU1SFSIjP0uql7ynXVcF1ob8/JJeRoikssydi9Xq5J6ghMw+X50u35mFvg9BgWKz0d+g==} + engines: {node: '>=18'} + + '@cspell/url@8.16.0': + resolution: {integrity: sha512-zW+6hAieD/FjysfjY4mVv7iHWWasBP3ldj6L+xy2p4Kuax1nug7uuJqMHlAVude/OywNwENG0rYaP/P9Pg4O+w==} engines: {node: '>=18.0'} - '@electron/asar@3.2.10': - resolution: {integrity: sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==} + '@discord/intl-ast@0.13.0': + resolution: {integrity: sha512-+LywZ1xntuy1YjdkE4ba/EPfqD0lhNz83IM+W+DzE9FSOM8vBKcaQnEE8SjZTC2M1MfYi5fohcuwqv58ezqcvg==} + + '@discord/intl-loader-core@0.13.0': + resolution: {integrity: sha512-wyf32bHYP1HLDLy8dPD/FbgTk6h6sZkaoLxi5VXeGcefznae8lk+AAriuHOF1JlOBqrJkJvSK7Nflj758awWvw==} + + '@discord/intl-message-database-darwin-arm64@0.13.0': + resolution: {integrity: sha512-DRl9z4hCcdU8VtjiKFISr/RO3A9Gxs83jj+ADCkrFRRlOAnUotlv2nFYs3984IFvVkuxFIvX0FJvH0IAVyHClg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@discord/intl-message-database-darwin-x64@0.13.0': + resolution: {integrity: sha512-4BwkFiWO6WIBXLD8IVM5h4hhr1wzLAkGD7ENC2bdNPCfyz+cbiNcZCu4JJIxQbzZkSgBbCrnVhHAyxwCGv1PYA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@discord/intl-message-database-linux-arm64-gnu@0.13.0': + resolution: {integrity: sha512-PugJgAhRw49/ZlxGIhDsYbRqrjAkgYI8eqPX6pS5d4+j0WArLD3N5Mv7nDjelsWGbDxge9esfUNafbpn5poBOQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@discord/intl-message-database-linux-arm64-musl@0.13.0': + resolution: {integrity: sha512-c970I6mfb06IMps5n8/rhjRbTj4tNclAUHx31timsysUQSs5EdutM48sF+RwKIWJvVomrTpyYcNyqC5gvYDMdg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@discord/intl-message-database-linux-x64-gnu@0.13.0': + resolution: {integrity: sha512-4g6Fz9+8R3KY1CDtsd8ecqG4VCKGi+7yULD6j6JLtzPolXrNgoJ21E0hXSU0FY7WeULHilLisuXoWd6C62AcZg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@discord/intl-message-database-linux-x64-musl@0.13.0': + resolution: {integrity: sha512-RJG9jCSRW2EfEQs9r6EBtiOazqxso6sPushatI4VwU0n8zQ44LTZalUaX04oR4j7Lc8g7LfxGen71EMrur9d8w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@discord/intl-message-database-win32-arm64-msvc@0.13.0': + resolution: {integrity: sha512-CM8okHzZD/rxtROvZjTwz/7zKfvkemNel/21sbAkYpXp86d5LloZmIMFXNg4OzQDBkH3OCKKpq+gYwiICm7+tg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@discord/intl-message-database-win32-ia32-msvc@0.13.0': + resolution: {integrity: sha512-K6wPO9m+zHiCFhWL3LXeWrNy+HB5p/oqLn0XU1m10yZfamGLunMUd4Ir7gDm/2J+2C3XExz7qHKzUxvPWnvzKA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@discord/intl-message-database-win32-x64-msvc@0.13.0': + resolution: {integrity: sha512-sQy66293+AL+S53qUdvvQ8xC8CgpKLiQjjoIXImG+4TEdkr8eOEL2NmRd/LXzK5K2FuZJ20LfTXplF6GRVaRSg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@discord/intl-message-database@0.13.0': + resolution: {integrity: sha512-evMiNWc9xzwgbQuxboUKw+Qe2u1H/Mo2Lf9GW6IPqT3VtCFwyT9gaP5k8I9Zluzz0SjR5ijQS1cOnaGcCOjV7w==} + engines: {node: '>= 10'} + + '@discord/intl@0.13.0': + resolution: {integrity: sha512-M769dfSuGj9VT+qqcOOX27kIL9ywTQXCkSXGRtRIIqFlKpHEwHuI6B23740ZsSeF99j+1J0eaRT/EjTwgJWv+A==} + peerDependencies: + react: '> 16' + + '@electron/asar@3.2.17': + resolution: {integrity: sha512-OcWImUI686w8LkghQj9R2ynZ2ME693Ek6L1SiaAgqGKzBaTIZw3fHDqN82Rcl+EU1Gm9EgkJ5KLIY/q5DCRbbA==} engines: {node: '>=10.12.0'} hasBin: true - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -555,12 +798,50 @@ packages: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + '@formatjs/ecma402-abstract@2.0.0': + resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} + + '@formatjs/ecma402-abstract@2.2.3': + resolution: {integrity: sha512-aElGmleuReGnk2wtYOzYFmNWYoiWWmf1pPPCYg0oiIQSJj0mjc4eUfzUXaSOJ4S8WzI/cLqnCTWjqz904FT2OQ==} + + '@formatjs/fast-memoize@2.2.3': + resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==} + + '@formatjs/icu-messageformat-parser@2.9.3': + resolution: {integrity: sha512-9L99QsH14XjOCIp4TmbT8wxuffJxGK8uLNO1zNhLtcZaVXvv626N0s4A2qgRCKG3dfYWx9psvGlFmvyVBa6u/w==} + + '@formatjs/icu-skeleton-parser@1.8.2': + resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} + + '@formatjs/icu-skeleton-parser@1.8.7': + resolution: {integrity: sha512-fI+6SmS2g7h3srfAKSWa5dwreU5zNEfon2uFo99OToiLF6yxGE+WikvFSbsvMAYkscucvVmTYNlWlaDPp0n5HA==} + + '@formatjs/intl-displaynames@6.8.4': + resolution: {integrity: sha512-HDVNBspDAOW0yTWluWTPHX2fk/9iBO4oST4R96f/IUaPGsFtjsHrpakwc+XDRPa3U5RniSEU2z34ZY0W78+E6Q==} + + '@formatjs/intl-listformat@7.7.4': + resolution: {integrity: sha512-lipFspH2MZcoeXxR6WSR/Jy9unzJ/iT0w+gbL8vgv25Ap0S9cUtcDVAce4ECEKI1bDtAvEU3b6+9Dha27gAikA==} + + '@formatjs/intl-localematcher@0.5.4': + resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} + + '@formatjs/intl-localematcher@0.5.7': + resolution: {integrity: sha512-GGFtfHGQVFe/niOZp24Kal5b2i36eE2bNL0xi9Sg/yd0TR8aLjcteApZdHmismP5QQax1cMnZM9yWySUUjJteA==} + + '@formatjs/intl@2.10.14': + resolution: {integrity: sha512-4CA1EO75i/mSMHdjwfpgRj3Rsdsm6WjALeu/nlzYhBmAPxGu/Ha5GIRHAet5SO05TnpmqxmEGOsskWqFm0IeoA==} + peerDependencies: + typescript: ^4.7 || 5 + peerDependenciesMeta: + typescript: + optional: true + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -576,14 +857,17 @@ packages: resolution: {integrity: sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==} engines: {node: '>=18'} + '@intrnl/xxhash64@0.1.2': + resolution: {integrity: sha512-1+lx7j99fdph+uy3EnjQyr39KQZ7LP56+aWOr6finJWpgYpvb7XrhFUqDwnEk/wpPC98nCjAT6RulpW3crWjlg==} + '@lezer/common@1.2.1': resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} '@lezer/css@1.1.8': resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==} - '@lezer/highlight@1.2.0': - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} '@lezer/lr@1.4.1': resolution: {integrity: sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==} @@ -592,8 +876,8 @@ packages: resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} engines: {node: '>= 0.4'} - '@marshift/argus@1.0.3': - resolution: {integrity: sha512-xlf5N6Duoh57Kr+GUcW9Any6s6ncpi6VbGDbA3gpKMEh+60VZe0gVRJ2i3HumMrzM1U5N7hd/I0mIlrosqRQbQ==} + '@marshift/argus@1.2.1': + resolution: {integrity: sha512-FgLb8C8P5KvKwIE6kl4Py4CuBIarSQnba0Xq27iijLTqAzl7jo9Ywq5iCzjUNq2GTO8DX3zOJq8hN5uI4YNXow==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -607,20 +891,20 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@octokit/auth-token@4.0.0': - resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + '@octokit/auth-token@5.1.1': + resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} - '@octokit/core@5.2.0': - resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==} + '@octokit/core@6.1.2': + resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} engines: {node: '>= 18'} - '@octokit/endpoint@9.0.5': - resolution: {integrity: sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==} + '@octokit/endpoint@10.1.1': + resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} engines: {node: '>= 18'} - '@octokit/graphql@7.1.0': - resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==} + '@octokit/graphql@8.1.1': + resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} engines: {node: '>= 18'} '@octokit/openapi-types@22.2.0': @@ -632,11 +916,11 @@ packages: peerDependencies: '@octokit/core': '5' - '@octokit/plugin-request-log@4.0.1': - resolution: {integrity: sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==} + '@octokit/plugin-request-log@5.3.1': + resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '5' + '@octokit/core': '>=6' '@octokit/plugin-rest-endpoint-methods@13.2.2': resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==} @@ -644,16 +928,16 @@ packages: peerDependencies: '@octokit/core': ^5 - '@octokit/request-error@5.1.0': - resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==} + '@octokit/request-error@6.1.5': + resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==} engines: {node: '>= 18'} - '@octokit/request@8.4.0': - resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} engines: {node: '>= 18'} - '@octokit/rest@20.1.1': - resolution: {integrity: sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==} + '@octokit/rest@21.0.2': + resolution: {integrity: sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==} engines: {node: '>= 18'} '@octokit/types@13.5.0': @@ -683,19 +967,23 @@ packages: zen-observable: optional: true - '@shikijs/core@1.9.0': - resolution: {integrity: sha512-cbSoY8P/jgGByG8UOl3jnP/CWg/Qk+1q+eAKWtcrU3pNoILF8wTsLB0jT44qUBV8Ce1SvA9uqcM9Xf+u3fJFBw==} + '@shikijs/core@1.22.2': + resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + '@shikijs/engine-javascript@1.22.2': + resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@shikijs/engine-oniguruma@1.22.2': + resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + + '@shikijs/types@1.22.2': + resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} - '@types/adm-zip@0.5.5': - resolution: {integrity: sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==} + '@types/adm-zip@0.5.6': + resolution: {integrity: sha512-lRlcSLg5Yoo7C2H2AUiAoYlvifWoCx/se7iUNiCBTfEVVYFVn+Tr9ZGed4K73tYgLe9O4PjdJvbxlkdAOx/qiw==} '@types/configstore@6.0.2': resolution: {integrity: sha512-OS//b51j9uyR3zvwD04Kfs5kHpve2qalQ18JhY/ho3voGYUTPLEG90/ocfKPI48hyHH8T04f7KEEbK6Ue60oZQ==} @@ -703,11 +991,14 @@ packages: '@types/cookiejar@2.1.5': resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/lodash@4.17.5': - resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} + '@types/lodash@4.17.13': + resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} '@types/methods@1.1.4': resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} @@ -715,8 +1006,8 @@ packages: '@types/node@18.19.39': resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} - '@types/node@20.14.8': - resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -727,8 +1018,8 @@ packages: '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/react-dom@18.2.25': - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} '@types/react-reconciler@0.28.8': resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} @@ -736,29 +1027,32 @@ packages: '@types/react@17.0.2': resolution: {integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==} - '@types/react@18.2.79': - resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/superagent@8.1.7': - resolution: {integrity: sha512-NmIsd0Yj4DDhftfWvvAku482PZum4DBW7U51OvS8gvOkDDY0WT1jsVyDV3hK+vplrsYw8oDwi9QxOM7U68iwww==} + '@types/superagent@8.1.9': + resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} '@types/update-notifier@6.0.8': resolution: {integrity: sha512-IlDFnfSVfYQD+cKIg63DEXn3RFmd7W1iYtKQsJodcHK9R1yr8aKbKaPKfBxzPpcHCq2DU8zUq4PIPmy19Thjfg==} - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@7.13.1': - resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -768,8 +1062,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.13.1': - resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==} + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -778,12 +1072,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.13.1': - resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.13.1': - resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==} + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -792,12 +1086,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.13.1': - resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.13.1': - resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -805,14 +1099,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.13.1': - resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.13.1': - resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': @@ -823,13 +1117,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - adm-zip@0.5.14: - resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} engines: {node: '>=12.0'} aggregate-error@4.0.1: @@ -916,14 +1210,20 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atomically@2.0.3: + resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + before-after-hook@3.0.2: + resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} @@ -936,6 +1236,10 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -956,14 +1260,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -976,6 +1272,13 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chalk-template@1.1.0: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} engines: {node: '>=14.16'} @@ -996,6 +1299,12 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -1070,6 +1379,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -1078,8 +1394,8 @@ packages: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} - comment-json@4.2.3: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} + comment-json@4.2.5: + resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} engines: {node: '>= 6'} concat-map@0.0.1: @@ -1088,9 +1404,9 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} + configstore@7.0.0: + resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} + engines: {node: '>=18'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1111,46 +1427,42 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - cspell-config-lib@8.9.1: - resolution: {integrity: sha512-gSXAazmeX+CCpFCsNQQqHRO/nn01kMnCoB0v+7AM0Bip2iDXRl+LmUEJGNcnFaiJG3liaZ8+S5/qCDbza010VQ==} + cspell-config-lib@8.16.0: + resolution: {integrity: sha512-PGT6ohLtIYXYLIm+R5hTcTrF0dzj8e7WAUJSJe5WlV/7lrwVdwgWaliLcXtSSPmfxgczr6sndX9TMJ2IEmPrmg==} engines: {node: '>=18'} - cspell-dictionary@8.9.1: - resolution: {integrity: sha512-sJy9gApLxJNE+YqWeulCTj3XC/ME4aacOHEl/SZ5bsaxkGx3KzBlzCMG7LfqUjOM8rwfBPsYO7zWPCiJQgxGPg==} + cspell-dictionary@8.16.0: + resolution: {integrity: sha512-Y3sN6ttLBKbu0dOLcduY641n5QP1srUvZkW4bOTnG455DbIZfilrP1El/2Hl0RS6hC8LN9PM4bsIm/2xgdbApA==} engines: {node: '>=18'} - cspell-gitignore@8.9.1: - resolution: {integrity: sha512-5RL0mnptiSlF0e+nnJBTlfyN3V/ECsig7jJ0Vw0AImaR7UdFmfxbeQmiZmealapcjhBJ7hnn9ILtemID4y4wxg==} + cspell-gitignore@8.16.0: + resolution: {integrity: sha512-ODKe0ooyzYSBJkwgIVZSRIvzoZfT4tEbFt4fFDT88wPyyfX7xp7MAQhXy5KD1ocXH0WvYbdv37qzn2UbckrahA==} engines: {node: '>=18'} hasBin: true - cspell-glob@8.9.1: - resolution: {integrity: sha512-b60WfczgG3NgGp5pyS4NfwSu7FEF7AmkP1btJqj17UAWsm/idUdGdOgaZazZuPgQJbcQvOlpBQP0+SEi8Jo3QA==} + cspell-glob@8.16.0: + resolution: {integrity: sha512-xJSXRHwfENCNFmjpVSEucXY8E3BrpSCA+TukmOYtLyaMKtn6EAwoCpEU7Oj2tZOjdivprPmQ74k4Dqb1RHjIVQ==} engines: {node: '>=18'} - cspell-grammar@8.9.1: - resolution: {integrity: sha512-BqaDp3Z+baLZyb3A5h/zWESsO7e8vUaOlrDt1RRVEnpboIUnj7iNkcFmDp3s9PTpBCURlgHHs8SR/+c49aKDGg==} + cspell-grammar@8.16.0: + resolution: {integrity: sha512-vvbJEkBqXocGH/H975RtkfMzVpNxNGMd0JCDd+NjbpeRyZceuChFw5Tie7kHteFY29SwZovub+Am3F4H1kmf9A==} engines: {node: '>=18'} hasBin: true - cspell-io@8.9.1: - resolution: {integrity: sha512-O2F79Rzj28Mvmj4AQLkDWOXWaLnvkJhxPm/Yb3viKlbhwmL5BWUi0APbWA3dtyF+ImX1W27YrNFyvT/PGNZ5Dw==} + cspell-io@8.16.0: + resolution: {integrity: sha512-WIK5uhPMjGsTAzm2/fGRbIdr7zWsMVG1fn8wNJYUiYELuyvzvLelfI1VG6szaFCGYqd6Uvgb/fS0uNbwGqCLAQ==} engines: {node: '>=18'} - cspell-lib@8.9.1: - resolution: {integrity: sha512-xrtoXvSjkMcwE1yUcyjiqLFPZiK0CNQjOKKS9PQaaK7ZBoERPQ7grz05uFCYdboSXt0FhlP8tC9E5oEt+xtGCA==} + cspell-lib@8.16.0: + resolution: {integrity: sha512-fU8CfECyuhT12COIi4ViQu2bTkdqaa+05YSd2ZV8k8NA7lapPaMFnlooxdfcwwgZJfHeMhRVMzvQF1OhWmwGfA==} engines: {node: '>=18'} - cspell-trie-lib@8.9.1: - resolution: {integrity: sha512-rUED/lNlFcsRfkMal6+zLz7JW3/cV79KGhwxnwu1fjNS0nlLSAUGTTiAQBQSR+pU/UW+BTkmULHVuNh+DUN93w==} + cspell-trie-lib@8.16.0: + resolution: {integrity: sha512-Io1qqI0r4U9ewAWBLClFBBlxLeAoIi15PUGJi4Za1xrlgQJwRE8PMNIJNHKmPEIp78Iute3o/JyC2OfWlxl4Sw==} engines: {node: '>=18'} - cspell@8.9.1: - resolution: {integrity: sha512-tNUITJbyeX/JnhBtMtbZ5hDbkNIHB72iQx3Uw51sWvo8YmIhaP6ma1W8PPNteu8CSlI7r8Z412wpjyR0Mnsr6A==} + cspell@8.16.0: + resolution: {integrity: sha512-U6Up/4nODE+Ca+zqwZXTgBioGuF2JQHLEUIuoRJkJzAZkIBYDqrMXM+zdSL9E39+xb9jAtr9kPAYJf1Eybgi9g==} engines: {node: '>=18'} hasBin: true @@ -1164,8 +1476,8 @@ packages: date-fns@1.30.1: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1173,10 +1485,6 @@ packages: supports-color: optional: true - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -1195,10 +1503,6 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1211,8 +1515,16 @@ packages: resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} engines: {node: '>=14.16'} - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -1225,9 +1537,9 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -1236,6 +1548,9 @@ packages: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1267,9 +1582,14 @@ packages: esbuild: '>=0.20.1' sass-embedded: ^1.71.1 - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} hasBin: true escalade@3.1.2: @@ -1327,9 +1647,10 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -1389,6 +1710,14 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -1409,9 +1738,9 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + file-entry-cache@9.1.0: + resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==} + engines: {node: '>=18'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -1433,16 +1762,16 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} @@ -1467,6 +1796,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -1475,10 +1808,6 @@ packages: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -1505,10 +1834,6 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -1524,10 +1849,6 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -1568,20 +1889,22 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - highlight.js@11.9.0: - resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + highlight.js@11.10.0: + resolution: {integrity: sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==} engines: {node: '>=12.0.0'} hosted-git-info@7.0.2: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -1609,10 +1932,6 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -1647,10 +1966,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1670,6 +1985,9 @@ packages: resolution: {integrity: sha512-kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==} engines: {node: '>=18'} + intl-messageformat@10.7.6: + resolution: {integrity: sha512-IsMU/hqyy3FJwNJ0hxDfY2heJ7MteSuFvcnCebxRp67di4Fhx1gKKE+qS0bBwUF8yXkX9SsPUhLeX/B6h5SKUA==} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -1706,8 +2024,8 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-in-ci@0.1.0: - resolution: {integrity: sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==} + is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} engines: {node: '>=18'} hasBin: true @@ -1716,10 +2034,6 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - is-installed-globally@1.0.0: resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} engines: {node: '>=18'} @@ -1740,10 +2054,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - is-observable@1.1.0: resolution: {integrity: sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==} engines: {node: '>=4'} @@ -1775,9 +2085,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -1831,9 +2138,9 @@ packages: resolution: {integrity: sha512-QUViPXlgP6NKA57IAPff/aZSmRA6qs9wKxlEpayBorwRZG+x2LG7jD4kXh8lnH3q/gkUr64NyZ7kwErUEZJmlw==} engines: {node: '>=18'} - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} + latest-version@9.0.0: + resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} + engines: {node: '>=18'} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -1900,9 +2207,9 @@ packages: resolution: {integrity: sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==} engines: {node: '>=4'} - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} @@ -1915,6 +2222,9 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -1929,10 +2239,37 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + mimic-fn@1.2.0: resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} engines: {node: '>=4'} @@ -1949,14 +2286,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1964,14 +2293,18 @@ packages: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} mute-stream@0.0.7: resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} @@ -2006,12 +2339,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} - engines: {node: '>=14.16'} - - np@10.0.6: - resolution: {integrity: sha512-173uUvFDmHtme1ra3JDMjYzqa94XHJAHoNae6lCA4mJWMIz073x9FE2O8SHMMjKXlHetRdOXufLUjdimRxXR3A==} + np@10.0.7: + resolution: {integrity: sha512-vIPKQwOYKpQU40PU5x/vLfN2haj8ObxMvR1QGt7EZnBPWdm4WEbHdumYAnMV7AeR9kACsMqcqAP37sAo5cW5jA==} engines: {git: '>=2.11.0', node: '>=18', npm: '>=9', pnpm: '>=8', yarn: '>=1.7.0'} hasBin: true @@ -2050,6 +2379,9 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} @@ -2070,10 +2402,6 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -2114,9 +2442,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + package-json@10.0.1: + resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} + engines: {node: '>=18'} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -2168,6 +2496,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -2180,8 +2512,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -2189,6 +2521,9 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -2207,14 +2542,14 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + read-package-up@11.0.0: resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} engines: {node: '>=18'} @@ -2231,6 +2566,9 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + regex@4.4.0: + resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} + regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -2251,9 +2589,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -2273,10 +2608,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -2453,16 +2784,12 @@ packages: resolution: {integrity: sha512-yEsN6TuxZhZ1Tl9iB81frTNS292m0I/IG7+w8lTvfcJQP2x3vnpOoevjBoE3Np5A6KnZM2+RtVenihj9t6NiYg==} engines: {node: '>=12'} - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -2478,8 +2805,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.9.0: - resolution: {integrity: sha512-i6//Lqgn7+7nZA0qVjoYH0085YdNk4MC+tJV4bo+HgjgRMJ0JmkLZzFAuvVioJqLkcGDK5GAMpghZEZkCnwxpQ==} + shiki@1.22.2: + resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -2510,6 +2837,9 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -2541,9 +2871,16 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} @@ -2576,6 +2913,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} @@ -2621,6 +2961,10 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -2629,6 +2973,9 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -2641,8 +2988,8 @@ packages: tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsx@4.15.7: - resolution: {integrity: sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==} + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} engines: {node: '>=18.0.0'} hasBin: true @@ -2670,19 +3017,16 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.20.1: - resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typedoc@0.26.0: - resolution: {integrity: sha512-OcYevjHsMN8DfpaL0dSBGAEBhOxuBB5Au8QVs9oz9iB0kRStPZwXLFWqh9gwbMUxNjW3yQuIM5GrVVauMJ2Akw==} + typedoc@0.26.11: + resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} engines: {node: '>= 18'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} @@ -2695,19 +3039,33 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - universal-user-agent@6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - update-notifier@7.0.0: - resolution: {integrity: sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universal-user-agent@7.0.2: + resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} + + update-notifier@7.3.1: + resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} engines: {node: '>=18'} uri-js@4.4.1: @@ -2726,8 +3084,14 @@ packages: varint@6.0.0: resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} @@ -2742,6 +3106,9 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + when-exit@2.1.3: + resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2751,6 +3118,10 @@ packages: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -2771,14 +3142,15 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2797,8 +3169,8 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true @@ -2817,6 +3189,9 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@babel/code-frame@7.24.7': @@ -2835,36 +3210,36 @@ snapshots: '@bufbuild/protobuf@1.10.0': {} - '@codemirror/autocomplete@6.16.3(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1)': + '@codemirror/autocomplete@6.16.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1)': dependencies: - '@codemirror/language': 6.10.2 + '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.28.2 '@lezer/common': 1.2.1 '@codemirror/commands@6.6.0': dependencies: - '@codemirror/language': 6.10.2 + '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@codemirror/view': 6.28.2 '@lezer/common': 1.2.1 - '@codemirror/lang-css@6.2.1(@codemirror/view@6.28.2)': + '@codemirror/lang-css@6.3.0(@codemirror/view@6.28.2)': dependencies: - '@codemirror/autocomplete': 6.16.3(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 + '@codemirror/autocomplete': 6.16.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.3 '@codemirror/state': 6.4.1 '@lezer/common': 1.2.1 '@lezer/css': 1.1.8 transitivePeerDependencies: - '@codemirror/view' - '@codemirror/language@6.10.2': + '@codemirror/language@6.10.3': dependencies: '@codemirror/state': 6.4.1 '@codemirror/view': 6.28.2 '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 + '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.1 style-mod: 4.1.2 @@ -2880,277 +3255,428 @@ snapshots: '@codemirror/view': 6.28.2 crelt: 1.0.6 - '@codemirror/state@6.4.1': {} + '@codemirror/state@6.4.1': {} + + '@codemirror/view@6.28.2': + dependencies: + '@codemirror/state': 6.4.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + + '@cspell/cspell-bundled-dicts@8.16.0': + dependencies: + '@cspell/dict-ada': 4.0.5 + '@cspell/dict-al': 1.0.3 + '@cspell/dict-aws': 4.0.7 + '@cspell/dict-bash': 4.1.8 + '@cspell/dict-companies': 3.1.7 + '@cspell/dict-cpp': 6.0.2 + '@cspell/dict-cryptocurrencies': 5.0.3 + '@cspell/dict-csharp': 4.0.5 + '@cspell/dict-css': 4.0.16 + '@cspell/dict-dart': 2.2.4 + '@cspell/dict-django': 4.1.3 + '@cspell/dict-docker': 1.1.11 + '@cspell/dict-dotnet': 5.0.8 + '@cspell/dict-elixir': 4.0.6 + '@cspell/dict-en-common-misspellings': 2.0.7 + '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.3.27 + '@cspell/dict-filetypes': 3.0.8 + '@cspell/dict-flutter': 1.0.3 + '@cspell/dict-fonts': 4.0.3 + '@cspell/dict-fsharp': 1.0.4 + '@cspell/dict-fullstack': 3.2.3 + '@cspell/dict-gaming-terms': 1.0.8 + '@cspell/dict-git': 3.0.3 + '@cspell/dict-golang': 6.0.16 + '@cspell/dict-google': 1.0.4 + '@cspell/dict-haskell': 4.0.4 + '@cspell/dict-html': 4.0.10 + '@cspell/dict-html-symbol-entities': 4.0.3 + '@cspell/dict-java': 5.0.10 + '@cspell/dict-julia': 1.0.4 + '@cspell/dict-k8s': 1.0.9 + '@cspell/dict-latex': 4.0.3 + '@cspell/dict-lorem-ipsum': 4.0.3 + '@cspell/dict-lua': 4.0.6 + '@cspell/dict-makefile': 1.0.3 + '@cspell/dict-markdown': 2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11) + '@cspell/dict-monkeyc': 1.0.9 + '@cspell/dict-node': 5.0.5 + '@cspell/dict-npm': 5.1.11 + '@cspell/dict-php': 4.0.13 + '@cspell/dict-powershell': 5.0.13 + '@cspell/dict-public-licenses': 2.0.11 + '@cspell/dict-python': 4.2.12 + '@cspell/dict-r': 2.0.4 + '@cspell/dict-ruby': 5.0.7 + '@cspell/dict-rust': 4.0.9 + '@cspell/dict-scala': 5.0.6 + '@cspell/dict-software-terms': 4.1.14 + '@cspell/dict-sql': 2.1.8 + '@cspell/dict-svelte': 1.0.5 + '@cspell/dict-swift': 2.0.4 + '@cspell/dict-terraform': 1.0.6 + '@cspell/dict-typescript': 3.1.11 + '@cspell/dict-vue': 3.0.3 + + '@cspell/cspell-json-reporter@8.16.0': + dependencies: + '@cspell/cspell-types': 8.16.0 + + '@cspell/cspell-pipe@8.16.0': {} + + '@cspell/cspell-resolver@8.16.0': + dependencies: + global-directory: 4.0.1 + + '@cspell/cspell-service-bus@8.16.0': {} + + '@cspell/cspell-types@8.16.0': {} + + '@cspell/dict-ada@4.0.5': {} + + '@cspell/dict-al@1.0.3': {} + + '@cspell/dict-aws@4.0.7': {} + + '@cspell/dict-bash@4.1.8': {} + + '@cspell/dict-companies@3.1.7': {} + + '@cspell/dict-cpp@6.0.2': {} + + '@cspell/dict-cryptocurrencies@5.0.3': {} + + '@cspell/dict-csharp@4.0.5': {} + + '@cspell/dict-css@4.0.16': {} + + '@cspell/dict-dart@2.2.4': {} + + '@cspell/dict-data-science@2.0.5': {} + + '@cspell/dict-django@4.1.3': {} + + '@cspell/dict-docker@1.1.11': {} + + '@cspell/dict-dotnet@5.0.8': {} + + '@cspell/dict-elixir@4.0.6': {} + + '@cspell/dict-en-common-misspellings@2.0.7': {} + + '@cspell/dict-en-gb@1.1.33': {} + + '@cspell/dict-en_us@4.3.27': {} + + '@cspell/dict-filetypes@3.0.8': {} + + '@cspell/dict-flutter@1.0.3': {} + + '@cspell/dict-fonts@4.0.3': {} + + '@cspell/dict-fsharp@1.0.4': {} + + '@cspell/dict-fullstack@3.2.3': {} + + '@cspell/dict-gaming-terms@1.0.8': {} + + '@cspell/dict-git@3.0.3': {} + + '@cspell/dict-golang@6.0.16': {} + + '@cspell/dict-google@1.0.4': {} + + '@cspell/dict-haskell@4.0.4': {} + + '@cspell/dict-html-symbol-entities@4.0.3': {} + + '@cspell/dict-html@4.0.10': {} + + '@cspell/dict-java@5.0.10': {} + + '@cspell/dict-julia@1.0.4': {} + + '@cspell/dict-k8s@1.0.9': {} - '@codemirror/view@6.28.2': - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.2 - w3c-keyname: 2.2.8 + '@cspell/dict-latex@4.0.3': {} - '@cspell/cspell-bundled-dicts@8.9.1': - dependencies: - '@cspell/dict-ada': 4.0.2 - '@cspell/dict-aws': 4.0.2 - '@cspell/dict-bash': 4.1.3 - '@cspell/dict-companies': 3.1.2 - '@cspell/dict-cpp': 5.1.10 - '@cspell/dict-cryptocurrencies': 5.0.0 - '@cspell/dict-csharp': 4.0.2 - '@cspell/dict-css': 4.0.12 - '@cspell/dict-dart': 2.0.3 - '@cspell/dict-django': 4.1.0 - '@cspell/dict-docker': 1.1.7 - '@cspell/dict-dotnet': 5.0.2 - '@cspell/dict-elixir': 4.0.3 - '@cspell/dict-en-common-misspellings': 2.0.3 - '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.23 - '@cspell/dict-filetypes': 3.0.4 - '@cspell/dict-fonts': 4.0.0 - '@cspell/dict-fsharp': 1.0.1 - '@cspell/dict-fullstack': 3.1.8 - '@cspell/dict-gaming-terms': 1.0.5 - '@cspell/dict-git': 3.0.0 - '@cspell/dict-golang': 6.0.9 - '@cspell/dict-google': 1.0.1 - '@cspell/dict-haskell': 4.0.1 - '@cspell/dict-html': 4.0.5 - '@cspell/dict-html-symbol-entities': 4.0.0 - '@cspell/dict-java': 5.0.7 - '@cspell/dict-julia': 1.0.1 - '@cspell/dict-k8s': 1.0.5 - '@cspell/dict-latex': 4.0.0 - '@cspell/dict-lorem-ipsum': 4.0.0 - '@cspell/dict-lua': 4.0.3 - '@cspell/dict-makefile': 1.0.0 - '@cspell/dict-monkeyc': 1.0.6 - '@cspell/dict-node': 5.0.1 - '@cspell/dict-npm': 5.0.16 - '@cspell/dict-php': 4.0.8 - '@cspell/dict-powershell': 5.0.4 - '@cspell/dict-public-licenses': 2.0.7 - '@cspell/dict-python': 4.2.1 - '@cspell/dict-r': 2.0.1 - '@cspell/dict-ruby': 5.0.2 - '@cspell/dict-rust': 4.0.4 - '@cspell/dict-scala': 5.0.2 - '@cspell/dict-software-terms': 3.4.7 - '@cspell/dict-sql': 2.1.3 - '@cspell/dict-svelte': 1.0.2 - '@cspell/dict-swift': 2.0.1 - '@cspell/dict-terraform': 1.0.0 - '@cspell/dict-typescript': 3.1.5 - '@cspell/dict-vue': 3.0.0 - - '@cspell/cspell-json-reporter@8.9.1': - dependencies: - '@cspell/cspell-types': 8.9.1 - - '@cspell/cspell-pipe@8.9.1': {} - - '@cspell/cspell-resolver@8.9.1': + '@cspell/dict-lorem-ipsum@4.0.3': {} + + '@cspell/dict-lua@4.0.6': {} + + '@cspell/dict-makefile@1.0.3': {} + + '@cspell/dict-markdown@2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11)': dependencies: - global-directory: 4.0.1 + '@cspell/dict-css': 4.0.16 + '@cspell/dict-html': 4.0.10 + '@cspell/dict-html-symbol-entities': 4.0.3 + '@cspell/dict-typescript': 3.1.11 - '@cspell/cspell-service-bus@8.9.1': {} + '@cspell/dict-monkeyc@1.0.9': {} - '@cspell/cspell-types@8.9.1': {} + '@cspell/dict-node@5.0.5': {} - '@cspell/dict-ada@4.0.2': {} + '@cspell/dict-npm@5.1.11': {} - '@cspell/dict-aws@4.0.2': {} + '@cspell/dict-php@4.0.13': {} - '@cspell/dict-bash@4.1.3': {} + '@cspell/dict-powershell@5.0.13': {} - '@cspell/dict-companies@3.1.2': {} + '@cspell/dict-public-licenses@2.0.11': {} - '@cspell/dict-cpp@5.1.10': {} + '@cspell/dict-python@4.2.12': + dependencies: + '@cspell/dict-data-science': 2.0.5 - '@cspell/dict-cryptocurrencies@5.0.0': {} + '@cspell/dict-r@2.0.4': {} - '@cspell/dict-csharp@4.0.2': {} + '@cspell/dict-ruby@5.0.7': {} - '@cspell/dict-css@4.0.12': {} + '@cspell/dict-rust@4.0.9': {} - '@cspell/dict-dart@2.0.3': {} + '@cspell/dict-scala@5.0.6': {} - '@cspell/dict-data-science@2.0.1': {} + '@cspell/dict-software-terms@4.1.14': {} - '@cspell/dict-django@4.1.0': {} + '@cspell/dict-sql@2.1.8': {} - '@cspell/dict-docker@1.1.7': {} + '@cspell/dict-svelte@1.0.5': {} - '@cspell/dict-dotnet@5.0.2': {} + '@cspell/dict-swift@2.0.4': {} - '@cspell/dict-elixir@4.0.3': {} + '@cspell/dict-terraform@1.0.6': {} - '@cspell/dict-en-common-misspellings@2.0.3': {} + '@cspell/dict-typescript@3.1.11': {} - '@cspell/dict-en-gb@1.1.33': {} + '@cspell/dict-vue@3.0.3': {} - '@cspell/dict-en_us@4.3.23': {} + '@cspell/dynamic-import@8.16.0': + dependencies: + import-meta-resolve: 4.1.0 - '@cspell/dict-filetypes@3.0.4': {} + '@cspell/filetypes@8.16.0': {} - '@cspell/dict-fonts@4.0.0': {} + '@cspell/strong-weak-map@8.16.0': {} - '@cspell/dict-fsharp@1.0.1': {} + '@cspell/url@8.16.0': {} - '@cspell/dict-fullstack@3.1.8': {} + '@discord/intl-ast@0.13.0': {} - '@cspell/dict-gaming-terms@1.0.5': {} + '@discord/intl-loader-core@0.13.0': + dependencies: + '@discord/intl-message-database': 0.13.0 + chokidar: 3.6.0 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color - '@cspell/dict-git@3.0.0': {} + '@discord/intl-message-database-darwin-arm64@0.13.0': + optional: true - '@cspell/dict-golang@6.0.9': {} + '@discord/intl-message-database-darwin-x64@0.13.0': + optional: true - '@cspell/dict-google@1.0.1': {} + '@discord/intl-message-database-linux-arm64-gnu@0.13.0': + optional: true - '@cspell/dict-haskell@4.0.1': {} + '@discord/intl-message-database-linux-arm64-musl@0.13.0': + optional: true - '@cspell/dict-html-symbol-entities@4.0.0': {} + '@discord/intl-message-database-linux-x64-gnu@0.13.0': + optional: true - '@cspell/dict-html@4.0.5': {} + '@discord/intl-message-database-linux-x64-musl@0.13.0': + optional: true - '@cspell/dict-java@5.0.7': {} + '@discord/intl-message-database-win32-arm64-msvc@0.13.0': + optional: true - '@cspell/dict-julia@1.0.1': {} + '@discord/intl-message-database-win32-ia32-msvc@0.13.0': + optional: true - '@cspell/dict-k8s@1.0.5': {} + '@discord/intl-message-database-win32-x64-msvc@0.13.0': + optional: true - '@cspell/dict-latex@4.0.0': {} + '@discord/intl-message-database@0.13.0': + optionalDependencies: + '@discord/intl-message-database-darwin-arm64': 0.13.0 + '@discord/intl-message-database-darwin-x64': 0.13.0 + '@discord/intl-message-database-linux-arm64-gnu': 0.13.0 + '@discord/intl-message-database-linux-arm64-musl': 0.13.0 + '@discord/intl-message-database-linux-x64-gnu': 0.13.0 + '@discord/intl-message-database-linux-x64-musl': 0.13.0 + '@discord/intl-message-database-win32-arm64-msvc': 0.13.0 + '@discord/intl-message-database-win32-ia32-msvc': 0.13.0 + '@discord/intl-message-database-win32-x64-msvc': 0.13.0 + + '@discord/intl@0.13.0(react@18.3.1)(typescript@5.4.5)': + dependencies: + '@discord/intl-ast': 0.13.0 + '@formatjs/icu-skeleton-parser': 1.8.2 + '@formatjs/intl': 2.10.14(typescript@5.4.5) + '@intrnl/xxhash64': 0.1.2 + intl-messageformat: 10.7.6 + react: 18.3.1 + transitivePeerDependencies: + - typescript - '@cspell/dict-lorem-ipsum@4.0.0': {} + '@electron/asar@3.2.17': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 - '@cspell/dict-lua@4.0.3': {} + '@esbuild/aix-ppc64@0.23.1': + optional: true - '@cspell/dict-makefile@1.0.0': {} + '@esbuild/aix-ppc64@0.24.0': + optional: true - '@cspell/dict-monkeyc@1.0.6': {} + '@esbuild/android-arm64@0.23.1': + optional: true - '@cspell/dict-node@5.0.1': {} + '@esbuild/android-arm64@0.24.0': + optional: true - '@cspell/dict-npm@5.0.16': {} + '@esbuild/android-arm@0.23.1': + optional: true - '@cspell/dict-php@4.0.8': {} + '@esbuild/android-arm@0.24.0': + optional: true - '@cspell/dict-powershell@5.0.4': {} + '@esbuild/android-x64@0.23.1': + optional: true - '@cspell/dict-public-licenses@2.0.7': {} + '@esbuild/android-x64@0.24.0': + optional: true - '@cspell/dict-python@4.2.1': - dependencies: - '@cspell/dict-data-science': 2.0.1 + '@esbuild/darwin-arm64@0.23.1': + optional: true - '@cspell/dict-r@2.0.1': {} + '@esbuild/darwin-arm64@0.24.0': + optional: true - '@cspell/dict-ruby@5.0.2': {} + '@esbuild/darwin-x64@0.23.1': + optional: true - '@cspell/dict-rust@4.0.4': {} + '@esbuild/darwin-x64@0.24.0': + optional: true - '@cspell/dict-scala@5.0.2': {} + '@esbuild/freebsd-arm64@0.23.1': + optional: true - '@cspell/dict-software-terms@3.4.7': {} + '@esbuild/freebsd-arm64@0.24.0': + optional: true - '@cspell/dict-sql@2.1.3': {} + '@esbuild/freebsd-x64@0.23.1': + optional: true - '@cspell/dict-svelte@1.0.2': {} + '@esbuild/freebsd-x64@0.24.0': + optional: true - '@cspell/dict-swift@2.0.1': {} + '@esbuild/linux-arm64@0.23.1': + optional: true - '@cspell/dict-terraform@1.0.0': {} + '@esbuild/linux-arm64@0.24.0': + optional: true - '@cspell/dict-typescript@3.1.5': {} + '@esbuild/linux-arm@0.23.1': + optional: true - '@cspell/dict-vue@3.0.0': {} + '@esbuild/linux-arm@0.24.0': + optional: true - '@cspell/dynamic-import@8.9.1': - dependencies: - import-meta-resolve: 4.1.0 + '@esbuild/linux-ia32@0.23.1': + optional: true - '@cspell/strong-weak-map@8.9.1': {} + '@esbuild/linux-ia32@0.24.0': + optional: true - '@cspell/url@8.9.1': {} + '@esbuild/linux-loong64@0.23.1': + optional: true - '@electron/asar@3.2.10': - dependencies: - commander: 5.1.0 - glob: 7.2.3 - minimatch: 3.1.2 + '@esbuild/linux-loong64@0.24.0': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/linux-mips64el@0.24.0': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/openbsd-arm64@0.24.0': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.1': {} @@ -3158,7 +3684,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3169,12 +3695,75 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@8.57.1': {} + + '@formatjs/ecma402-abstract@2.0.0': + dependencies: + '@formatjs/intl-localematcher': 0.5.4 + tslib: 2.6.3 + + '@formatjs/ecma402-abstract@2.2.3': + dependencies: + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/intl-localematcher': 0.5.7 + tslib: 2.6.3 + + '@formatjs/fast-memoize@2.2.3': + dependencies: + tslib: 2.6.3 + + '@formatjs/icu-messageformat-parser@2.9.3': + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + '@formatjs/icu-skeleton-parser': 1.8.7 + tslib: 2.6.3 + + '@formatjs/icu-skeleton-parser@1.8.2': + dependencies: + '@formatjs/ecma402-abstract': 2.0.0 + tslib: 2.6.3 + + '@formatjs/icu-skeleton-parser@1.8.7': + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + tslib: 2.6.3 + + '@formatjs/intl-displaynames@6.8.4': + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + '@formatjs/intl-localematcher': 0.5.7 + tslib: 2.6.3 + + '@formatjs/intl-listformat@7.7.4': + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + '@formatjs/intl-localematcher': 0.5.7 + tslib: 2.6.3 + + '@formatjs/intl-localematcher@0.5.4': + dependencies: + tslib: 2.6.3 + + '@formatjs/intl-localematcher@0.5.7': + dependencies: + tslib: 2.6.3 + + '@formatjs/intl@2.10.14(typescript@5.4.5)': + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/icu-messageformat-parser': 2.9.3 + '@formatjs/intl-displaynames': 6.8.4 + '@formatjs/intl-listformat': 7.7.4 + intl-messageformat: 10.7.6 + tslib: 2.6.3 + optionalDependencies: + typescript: 5.4.5 - '@humanwhocodes/config-array@0.11.14': + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3185,15 +3774,17 @@ snapshots: '@inquirer/figures@1.0.3': {} + '@intrnl/xxhash64@0.1.2': {} + '@lezer/common@1.2.1': {} '@lezer/css@1.1.8': dependencies: '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 + '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.1 - '@lezer/highlight@1.2.0': + '@lezer/highlight@1.2.1': dependencies: '@lezer/common': 1.2.1 @@ -3205,7 +3796,7 @@ snapshots: dependencies: call-bind: 1.0.7 - '@marshift/argus@1.0.3': {} + '@marshift/argus@1.2.1': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -3219,64 +3810,62 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@octokit/auth-token@4.0.0': {} + '@octokit/auth-token@5.1.1': {} - '@octokit/core@5.2.0': + '@octokit/core@6.1.2': dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.0 - '@octokit/request': 8.4.0 - '@octokit/request-error': 5.1.0 + '@octokit/auth-token': 5.1.1 + '@octokit/graphql': 8.1.1 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.5 '@octokit/types': 13.5.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 + before-after-hook: 3.0.2 + universal-user-agent: 7.0.2 - '@octokit/endpoint@9.0.5': + '@octokit/endpoint@10.1.1': dependencies: '@octokit/types': 13.5.0 - universal-user-agent: 6.0.1 + universal-user-agent: 7.0.2 - '@octokit/graphql@7.1.0': + '@octokit/graphql@8.1.1': dependencies: - '@octokit/request': 8.4.0 + '@octokit/request': 9.1.3 '@octokit/types': 13.5.0 - universal-user-agent: 6.0.1 + universal-user-agent: 7.0.2 '@octokit/openapi-types@22.2.0': {} - '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0)': + '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 5.2.0 + '@octokit/core': 6.1.2 '@octokit/types': 13.5.0 - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.0)': + '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 5.2.0 + '@octokit/core': 6.1.2 - '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0)': + '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@6.1.2)': dependencies: - '@octokit/core': 5.2.0 + '@octokit/core': 6.1.2 '@octokit/types': 13.5.0 - '@octokit/request-error@5.1.0': + '@octokit/request-error@6.1.5': dependencies: '@octokit/types': 13.5.0 - deprecation: 2.3.1 - once: 1.4.0 - '@octokit/request@8.4.0': + '@octokit/request@9.1.3': dependencies: - '@octokit/endpoint': 9.0.5 - '@octokit/request-error': 5.1.0 + '@octokit/endpoint': 10.1.1 + '@octokit/request-error': 6.1.5 '@octokit/types': 13.5.0 - universal-user-agent: 6.0.1 + universal-user-agent: 7.0.2 - '@octokit/rest@20.1.1': + '@octokit/rest@21.0.2': dependencies: - '@octokit/core': 5.2.0 - '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@5.2.0) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0) - '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@5.2.0) + '@octokit/core': 6.1.2 + '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@6.1.2) + '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.2) + '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@6.1.2) '@octokit/types@13.5.0': dependencies: @@ -3302,25 +3891,50 @@ snapshots: transitivePeerDependencies: - zenObservable - '@shikijs/core@1.9.0': {} + '@shikijs/core@1.22.2': + dependencies: + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + + '@shikijs/engine-javascript@1.22.2': + dependencies: + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 - '@sindresorhus/is@5.6.0': {} + '@shikijs/engine-oniguruma@1.22.2': + dependencies: + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 - '@szmarczak/http-timer@5.0.1': + '@shikijs/types@1.22.2': dependencies: - defer-to-connect: 2.0.1 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@9.3.0': {} - '@types/adm-zip@0.5.5': + '@types/adm-zip@0.5.6': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.17.6 '@types/configstore@6.0.2': {} '@types/cookiejar@2.1.5': {} - '@types/http-cache-semantics@4.0.4': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/lodash@4.17.13': {} - '@types/lodash@4.17.5': {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 '@types/methods@1.1.4': {} @@ -3328,69 +3942,72 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.14.8': + '@types/node@20.17.6': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 '@types/normalize-package-data@2.4.4': {} '@types/prompts@2.4.9': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.17.6 kleur: 3.0.3 '@types/prop-types@15.7.12': {} - '@types/react-dom@18.2.25': + '@types/react-dom@18.3.1': dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.12 '@types/react-reconciler@0.28.8': dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.12 '@types/react@17.0.2': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 - '@types/react@18.2.79': + '@types/react@18.3.12': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 '@types/semver@7.5.8': {} - '@types/superagent@8.1.7': + '@types/superagent@8.1.9': dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 20.14.8 + '@types/node': 20.17.6 + form-data: 4.0.1 + + '@types/unist@3.0.3': {} '@types/update-notifier@6.0.8': dependencies: '@types/configstore': 6.0.2 boxen: 7.1.1 - '@types/ws@8.5.10': + '@types/ws@8.5.13': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.17.6 '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.32': + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.1 - eslint: 8.57.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.4.5) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -3400,78 +4017,78 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.1 - debug: 4.3.5 - eslint: 8.57.0 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.7 + eslint: 8.57.1 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.13.1': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.13.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.5 - eslint: 8.57.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.4.5) + debug: 4.3.7 + eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.13.1': {} + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@7.13.1(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 - debug: 4.3.5 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.2 + minimatch: 9.0.5 + semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.13.1(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.4.5) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.4.5) + eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.13.1': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.0 + acorn: 8.14.0 - acorn@8.12.0: {} + acorn@8.14.0: {} - adm-zip@0.5.14: {} + adm-zip@0.5.16: {} aggregate-error@4.0.1: dependencies: @@ -3536,11 +4153,18 @@ snapshots: array-union@2.1.0: {} + asynckit@0.4.0: {} + + atomically@2.0.3: + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.3 + balanced-match@1.0.2: {} base64-js@1.5.1: {} - before-after-hook@2.2.3: {} + before-after-hook@3.0.2: {} binary-extensions@2.3.0: {} @@ -3561,6 +4185,17 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -3585,18 +4220,6 @@ snapshots: dependencies: run-applescript: 7.0.0 - cacheable-lookup@7.0.0: {} - - cacheable-request@10.2.14: - dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.1 - responselike: 3.0.0 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -3609,6 +4232,10 @@ snapshots: camelcase@7.0.1: {} + camelcase@8.0.0: {} + + ccount@2.0.1: {} + chalk-template@1.1.0: dependencies: chalk: 5.3.0 @@ -3634,6 +4261,10 @@ snapshots: chalk@5.3.0: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + chardet@0.7.0: {} chokidar@3.6.0: @@ -3692,9 +4323,9 @@ snapshots: codemirror@6.0.1(@lezer/common@1.2.1): dependencies: - '@codemirror/autocomplete': 6.16.3(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.16.3(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.28.2)(@lezer/common@1.2.1) '@codemirror/commands': 6.6.0 - '@codemirror/language': 6.10.2 + '@codemirror/language': 6.10.3 '@codemirror/lint': 6.8.1 '@codemirror/search': 6.5.6 '@codemirror/state': 6.4.1 @@ -3714,11 +4345,17 @@ snapshots: color-name@1.1.4: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + commander@12.1.0: {} commander@5.1.0: {} - comment-json@4.2.3: + comment-json@4.2.5: dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 @@ -3733,12 +4370,11 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 - configstore@6.0.0: + configstore@7.0.0: dependencies: - dot-prop: 6.0.1 + atomically: 2.0.3 + dot-prop: 9.0.0 graceful-fs: 4.2.11 - unique-string: 3.0.0 - write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 core-util-is@1.0.3: {} @@ -3760,95 +4396,94 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - - cspell-config-lib@8.9.1: + cspell-config-lib@8.16.0: dependencies: - '@cspell/cspell-types': 8.9.1 - comment-json: 4.2.3 - yaml: 2.4.5 + '@cspell/cspell-types': 8.16.0 + comment-json: 4.2.5 + yaml: 2.6.0 - cspell-dictionary@8.9.1: + cspell-dictionary@8.16.0: dependencies: - '@cspell/cspell-pipe': 8.9.1 - '@cspell/cspell-types': 8.9.1 - cspell-trie-lib: 8.9.1 + '@cspell/cspell-pipe': 8.16.0 + '@cspell/cspell-types': 8.16.0 + cspell-trie-lib: 8.16.0 fast-equals: 5.0.1 - gensequence: 7.0.0 - cspell-gitignore@8.9.1: + cspell-gitignore@8.16.0: dependencies: - cspell-glob: 8.9.1 + '@cspell/url': 8.16.0 + cspell-glob: 8.16.0 + cspell-io: 8.16.0 find-up-simple: 1.0.0 - cspell-glob@8.9.1: + cspell-glob@8.16.0: dependencies: - micromatch: 4.0.7 + '@cspell/url': 8.16.0 + micromatch: 4.0.8 - cspell-grammar@8.9.1: + cspell-grammar@8.16.0: dependencies: - '@cspell/cspell-pipe': 8.9.1 - '@cspell/cspell-types': 8.9.1 + '@cspell/cspell-pipe': 8.16.0 + '@cspell/cspell-types': 8.16.0 - cspell-io@8.9.1: + cspell-io@8.16.0: dependencies: - '@cspell/cspell-service-bus': 8.9.1 - '@cspell/url': 8.9.1 + '@cspell/cspell-service-bus': 8.16.0 + '@cspell/url': 8.16.0 - cspell-lib@8.9.1: + cspell-lib@8.16.0: dependencies: - '@cspell/cspell-bundled-dicts': 8.9.1 - '@cspell/cspell-pipe': 8.9.1 - '@cspell/cspell-resolver': 8.9.1 - '@cspell/cspell-types': 8.9.1 - '@cspell/dynamic-import': 8.9.1 - '@cspell/strong-weak-map': 8.9.1 - '@cspell/url': 8.9.1 + '@cspell/cspell-bundled-dicts': 8.16.0 + '@cspell/cspell-pipe': 8.16.0 + '@cspell/cspell-resolver': 8.16.0 + '@cspell/cspell-types': 8.16.0 + '@cspell/dynamic-import': 8.16.0 + '@cspell/filetypes': 8.16.0 + '@cspell/strong-weak-map': 8.16.0 + '@cspell/url': 8.16.0 clear-module: 4.1.2 - comment-json: 4.2.3 - cspell-config-lib: 8.9.1 - cspell-dictionary: 8.9.1 - cspell-glob: 8.9.1 - cspell-grammar: 8.9.1 - cspell-io: 8.9.1 - cspell-trie-lib: 8.9.1 + comment-json: 4.2.5 + cspell-config-lib: 8.16.0 + cspell-dictionary: 8.16.0 + cspell-glob: 8.16.0 + cspell-grammar: 8.16.0 + cspell-io: 8.16.0 + cspell-trie-lib: 8.16.0 env-paths: 3.0.0 fast-equals: 5.0.1 gensequence: 7.0.0 import-fresh: 3.3.0 resolve-from: 5.0.0 - vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 xdg-basedir: 5.1.0 - cspell-trie-lib@8.9.1: + cspell-trie-lib@8.16.0: dependencies: - '@cspell/cspell-pipe': 8.9.1 - '@cspell/cspell-types': 8.9.1 + '@cspell/cspell-pipe': 8.16.0 + '@cspell/cspell-types': 8.16.0 gensequence: 7.0.0 - cspell@8.9.1: + cspell@8.16.0: dependencies: - '@cspell/cspell-json-reporter': 8.9.1 - '@cspell/cspell-pipe': 8.9.1 - '@cspell/cspell-types': 8.9.1 - '@cspell/dynamic-import': 8.9.1 + '@cspell/cspell-json-reporter': 8.16.0 + '@cspell/cspell-pipe': 8.16.0 + '@cspell/cspell-types': 8.16.0 + '@cspell/dynamic-import': 8.16.0 + '@cspell/url': 8.16.0 chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.1.0 - cspell-gitignore: 8.9.1 - cspell-glob: 8.9.1 - cspell-io: 8.9.1 - cspell-lib: 8.9.1 - fast-glob: 3.3.2 + cspell-dictionary: 8.16.0 + cspell-gitignore: 8.16.0 + cspell-glob: 8.16.0 + cspell-io: 8.16.0 + cspell-lib: 8.16.0 fast-json-stable-stringify: 2.1.0 - file-entry-cache: 8.0.0 + file-entry-cache: 9.1.0 get-stdin: 9.0.0 - semver: 7.6.2 - strip-ansi: 7.1.0 - vscode-uri: 3.0.8 + semver: 7.6.3 + tinyglobby: 0.2.10 csstype@3.1.3: {} @@ -3856,13 +4491,9 @@ snapshots: date-fns@1.30.1: {} - debug@4.3.5: - dependencies: - ms: 2.1.2 - - decompress-response@6.0.0: + debug@4.3.7: dependencies: - mimic-response: 3.1.0 + ms: 2.1.3 deep-extend@0.6.0: {} @@ -3879,8 +4510,6 @@ snapshots: dependencies: clone: 1.0.4 - defer-to-connect@2.0.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -3900,7 +4529,13 @@ snapshots: rimraf: 3.0.2 slash: 4.0.0 - deprecation@2.3.1: {} + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 dir-glob@3.0.1: dependencies: @@ -3915,14 +4550,16 @@ snapshots: dependencies: esutils: 2.0.3 - dot-prop@6.0.1: + dot-prop@9.0.0: dependencies: - is-obj: 2.0.0 + type-fest: 4.26.1 eastasianwidth@0.2.0: {} elegant-spinner@1.0.1: {} + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -3941,39 +4578,67 @@ snapshots: es-errors@1.3.0: {} - esbuild-sass-plugin@3.3.1(esbuild@0.21.5)(sass-embedded@1.77.5): + esbuild-sass-plugin@3.3.1(esbuild@0.24.0)(sass-embedded@1.77.5): dependencies: - esbuild: 0.21.5 + esbuild: 0.24.0 resolve: 1.22.8 safe-identifier: 0.4.2 sass: 1.77.6 sass-embedded: 1.77.5 - esbuild@0.21.5: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 escalade@3.1.2: {} @@ -3985,20 +4650,20 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-dmitmel@https://codeload.github.com/dmitmel/eslint-config-dmitmel/tar.gz/d97129ec35235415c6ae6a42299f55cdbb5d75fd(eslint@8.57.0): + eslint-config-dmitmel@https://codeload.github.com/dmitmel/eslint-config-dmitmel/tar.gz/d97129ec35235415c6ae6a42299f55cdbb5d75fd(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-es@3.0.1(eslint@8.57.0): + eslint-plugin-es@3.0.1(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-node@11.1.0(eslint@8.57.0): + eslint-plugin-node@11.1.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 - eslint-plugin-es: 3.0.1(eslint@8.57.0) + eslint: 8.57.1 + eslint-plugin-es: 3.0.1(eslint@8.57.1) eslint-utils: 2.1.0 ignore: 5.3.1 minimatch: 3.1.2 @@ -4018,20 +4683,20 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) '@eslint-community/regexpp': 4.10.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -4063,8 +4728,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -4121,6 +4786,10 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -4143,9 +4812,9 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-entry-cache@8.0.0: + file-entry-cache@9.1.0: dependencies: - flat-cache: 4.0.1 + flat-cache: 5.0.0 fill-range@7.1.1: dependencies: @@ -4169,14 +4838,18 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 - flat-cache@4.0.1: + flat-cache@5.0.0: dependencies: flatted: 3.3.1 keyv: 4.5.4 flatted@3.3.1: {} - form-data-encoder@2.1.4: {} + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 formdata-polyfill@4.0.10: dependencies: @@ -4193,6 +4866,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.3.0: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -4203,8 +4878,6 @@ snapshots: get-stdin@9.0.0: {} - get-stream@6.0.1: {} - get-stream@8.0.1: {} get-tsconfig@4.7.5: @@ -4234,10 +4907,6 @@ snapshots: dependencies: ini: 4.1.1 - global-dirs@3.0.1: - dependencies: - ini: 2.0.0 - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -4263,20 +4932,6 @@ snapshots: dependencies: get-intrinsic: 1.2.4 - got@12.6.1: - dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -4305,18 +4960,31 @@ snapshots: dependencies: function-bind: 1.1.2 - highlight.js@11.9.0: {} + hast-util-to-html@9.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 - hosted-git-info@7.0.2: + hast-util-whitespace@3.0.0: dependencies: - lru-cache: 10.2.2 + '@types/hast': 3.0.4 - http-cache-semantics@4.1.1: {} + highlight.js@11.10.0: {} - http2-wrapper@2.2.1: + hosted-git-info@7.0.2: dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 + lru-cache: 10.2.2 + + html-void-elements@3.0.0: {} human-signals@5.0.0: {} @@ -4339,8 +5007,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@4.0.0: {} - import-local@3.1.0: dependencies: pkg-dir: 4.2.0 @@ -4365,8 +5031,6 @@ snapshots: ini@1.3.8: {} - ini@2.0.0: {} - ini@4.1.1: {} inquirer-autosubmit-prompt@0.2.0: @@ -4425,6 +5089,13 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + intl-messageformat@10.7.6: + dependencies: + '@formatjs/ecma402-abstract': 2.2.3 + '@formatjs/fast-memoize': 2.2.3 + '@formatjs/icu-messageformat-parser': 2.9.3 + tslib: 2.6.3 + is-arrayish@0.2.1: {} is-binary-path@2.1.0: @@ -4451,17 +5122,12 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-in-ci@0.1.0: {} + is-in-ci@1.0.0: {} is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - is-installed-globally@0.4.0: - dependencies: - global-dirs: 3.0.1 - is-path-inside: 3.0.3 - is-installed-globally@1.0.0: dependencies: global-directory: 4.0.1 @@ -4475,8 +5141,6 @@ snapshots: is-number@7.0.0: {} - is-obj@2.0.0: {} - is-observable@1.1.0: dependencies: symbol-observable: 1.2.0 @@ -4497,8 +5161,6 @@ snapshots: is-stream@3.0.0: {} - is-typedarray@1.0.0: {} - is-unicode-supported@0.1.0: {} is-unicode-supported@1.3.0: {} @@ -4535,9 +5197,9 @@ snapshots: ky@1.3.0: {} - latest-version@7.0.0: + latest-version@9.0.0: dependencies: - package-json: 8.1.1 + package-json: 10.0.1 levn@0.4.1: dependencies: @@ -4627,7 +5289,9 @@ snapshots: cli-cursor: 2.1.0 wrap-ansi: 3.0.1 - lowercase-keys@3.0.0: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 lru-cache@10.2.2: {} @@ -4642,6 +5306,18 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + mdurl@2.0.0: {} meow@13.2.0: {} @@ -4650,11 +5326,39 @@ snapshots: merge2@1.4.1: {} + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + micromatch@4.0.7: dependencies: braces: 3.0.3 picomatch: 2.3.1 + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mimic-fn@1.2.0: {} mimic-fn@2.1.0: {} @@ -4663,10 +5367,6 @@ snapshots: mimic-function@5.0.1: {} - mimic-response@3.1.0: {} - - mimic-response@4.0.0: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4675,11 +5375,15 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} moment@2.30.1: {} - ms@2.1.2: {} + ms@2.1.3: {} mute-stream@0.0.7: {} @@ -4705,14 +5409,12 @@ snapshots: dependencies: hosted-git-info: 7.0.2 is-core-module: 2.14.0 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} - normalize-url@8.0.1: {} - - np@10.0.6(typescript@5.4.5): + np@10.0.7(typescript@5.4.5): dependencies: chalk: 5.3.0 chalk-template: 1.1.0 @@ -4746,10 +5448,10 @@ snapshots: read-package-up: 11.0.0 read-pkg: 9.0.1 rxjs: 7.8.1 - semver: 7.6.2 + semver: 7.6.3 symbol-observable: 4.0.0 terminal-link: 3.0.0 - update-notifier: 7.0.0 + update-notifier: 7.3.1 transitivePeerDependencies: - typescript - zen-observable @@ -4795,6 +5497,10 @@ snapshots: dependencies: mimic-function: 5.0.1 + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.4.0 + open@10.1.0: dependencies: default-browser: 5.2.1 @@ -4827,8 +5533,6 @@ snapshots: os-tmpdir@1.0.2: {} - p-cancelable@3.0.0: {} - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -4862,12 +5566,12 @@ snapshots: p-try@2.2.0: {} - package-json@8.1.1: + package-json@10.0.1: dependencies: - got: 12.6.1 + ky: 1.3.0 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.2 + semver: 7.6.3 parent-module@1.0.1: dependencies: @@ -4888,7 +5592,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.20.1 + type-fest: 4.26.1 path-exists@4.0.0: {} @@ -4908,6 +5612,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -4918,13 +5624,15 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.2: {} + prettier@3.3.3: {} prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + property-information@6.5.0: {} + proto-list@1.2.4: {} punycode.js@2.3.1: {} @@ -4937,8 +5645,6 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@5.1.1: {} - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -4946,18 +5652,22 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.20.1 + type-fest: 4.26.1 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.1 parse-json: 8.1.0 - type-fest: 4.20.1 + type-fest: 4.26.1 unicorn-magic: 0.1.0 readable-stream@3.6.2: @@ -4970,6 +5680,8 @@ snapshots: dependencies: picomatch: 2.3.1 + regex@4.4.0: {} + regexpp@3.2.0: {} registry-auth-token@5.0.2: @@ -4984,8 +5696,6 @@ snapshots: require-directory@2.1.1: {} - resolve-alpn@1.2.1: {} - resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -5002,10 +5712,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - responselike@3.0.0: - dependencies: - lowercase-keys: 3.0.0 - restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -5132,13 +5838,9 @@ snapshots: scoped-regex@3.0.0: {} - semver-diff@4.0.0: - dependencies: - semver: 7.6.2 - semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} set-function-length@1.2.2: dependencies: @@ -5155,9 +5857,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.9.0: + shiki@1.22.2: dependencies: - '@shikijs/core': 1.9.0 + '@shikijs/core': 1.22.2 + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 signal-exit@3.0.7: {} @@ -5165,7 +5872,7 @@ snapshots: simple-markdown@0.7.3: dependencies: - '@types/react': 18.2.79 + '@types/react': 18.3.12 sisteransi@1.0.5: {} @@ -5177,6 +5884,8 @@ snapshots: source-map-js@1.2.0: {} + space-separated-tokens@2.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -5218,10 +5927,21 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@3.0.1: dependencies: ansi-regex: 2.1.1 @@ -5248,6 +5968,8 @@ snapshots: strip-json-comments@3.1.1: {} + stubborn-fs@1.2.5: {} + style-mod@4.1.2: {} supports-color@2.0.0: {} @@ -5284,6 +6006,11 @@ snapshots: through@2.3.8: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -5292,6 +6019,8 @@ snapshots: dependencies: is-number: 7.0.0 + trim-lines@3.0.1: {} + ts-api-utils@1.3.0(typescript@5.4.5): dependencies: typescript: 5.4.5 @@ -5300,9 +6029,9 @@ snapshots: tslib@2.6.3: {} - tsx@4.15.7: + tsx@4.19.2: dependencies: - esbuild: 0.21.5 + esbuild: 0.23.1 get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 @@ -5321,20 +6050,16 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.20.1: {} - - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 + type-fest@4.26.1: {} - typedoc@0.26.0(typescript@5.4.5): + typedoc@0.26.11(typescript@5.4.5): dependencies: lunr: 2.3.9 markdown-it: 14.1.0 - minimatch: 9.0.4 - shiki: 1.9.0 + minimatch: 9.0.5 + shiki: 1.22.2 typescript: 5.4.5 - yaml: 2.4.5 + yaml: 2.6.0 typescript@5.4.5: {} @@ -5342,27 +6067,46 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.8: {} + unicorn-magic@0.1.0: {} - unique-string@3.0.0: + unist-util-is@6.0.0: dependencies: - crypto-random-string: 4.0.0 + '@types/unist': 3.0.3 - universal-user-agent@6.0.1: {} + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 - update-notifier@7.0.0: + unist-util-stringify-position@4.0.0: dependencies: - boxen: 7.1.1 + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universal-user-agent@7.0.2: {} + + update-notifier@7.3.1: + dependencies: + boxen: 8.0.1 chalk: 5.3.0 - configstore: 6.0.0 - import-lazy: 4.0.0 - is-in-ci: 0.1.0 - is-installed-globally: 0.4.0 + configstore: 7.0.0 + is-in-ci: 1.0.0 + is-installed-globally: 1.0.0 is-npm: 6.0.0 - latest-version: 7.0.0 + latest-version: 9.0.0 pupa: 3.1.0 - semver: 7.6.2 - semver-diff: 4.0.0 + semver: 7.6.3 xdg-basedir: 5.1.0 uri-js@4.4.1: @@ -5380,7 +6124,17 @@ snapshots: varint@6.0.0: {} - vscode-languageserver-textdocument@1.0.11: {} + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vscode-languageserver-textdocument@1.0.12: {} vscode-uri@3.0.8: {} @@ -5392,6 +6146,8 @@ snapshots: web-streams-polyfill@3.3.3: {} + when-exit@2.1.3: {} + which@2.0.2: dependencies: isexe: 2.0.0 @@ -5400,6 +6156,10 @@ snapshots: dependencies: string-width: 5.1.2 + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + word-wrap@1.2.5: {} wrap-ansi@3.0.1: @@ -5425,22 +6185,21 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} - - write-file-atomic@3.0.3: + wrap-ansi@9.0.0: dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} - ws@8.17.1: {} + ws@8.18.0: {} xdg-basedir@5.1.0: {} y18n@5.0.8: {} - yaml@2.4.5: {} + yaml@2.6.0: {} yargs-parser@21.1.1: {} @@ -5457,3 +6216,5 @@ snapshots: yocto-queue@0.1.0: {} zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/scripts/build-bin.mts b/scripts/build-bin.mts index 3c31be376..c455d6a2c 100644 --- a/scripts/build-bin.mts +++ b/scripts/build-bin.mts @@ -3,7 +3,7 @@ import { readFileSync } from "fs"; import path from "path"; import { fileURLToPath } from "url"; -const NODE_VERSION = "14"; +const NODE_VERSION = "20"; const dirname = path.dirname(fileURLToPath(import.meta.url)); diff --git a/scripts/build-plugins/intl-loader.mts b/scripts/build-plugins/intl-loader.mts new file mode 100644 index 000000000..a00932a71 --- /dev/null +++ b/scripts/build-plugins/intl-loader.mts @@ -0,0 +1,104 @@ +import { + IntlCompiledMessageFormat, + MessageDefinitionsTransformer, + findAllMessagesFiles, + getLocaleFromTranslationsFileName, + isMessageDefinitionsFile, + isMessageTranslationsFile, + precompileFileForLocale, + processAllMessagesFiles, + processDefinitionsFile, + processTranslationsFile, +} from "@discord/intl-loader-core"; +import esbuild from "esbuild"; +import { readFileSync } from "node:fs"; +import { dirname, posix, relative, resolve } from "node:path"; + +const FILE_PATH_SEPARATOR_MATCH = /[\\\\\\/]/g; +const INTL_MESSAGES_REGEXP = /\.messages\.(js|json|jsona)$/; + +export function makePosixRelativePath(source: string, file: string): string { + return `./${relative(dirname(source), file).replace(FILE_PATH_SEPARATOR_MATCH, posix.sep)}`; +} + +let hasInitializedAllDefinitions = false; +let messageKeys: Record = {}; + +/** + * Rewritten for esbuild. 1:1 copy of the original plugin, adapted for Replugged (doesn't hash keys). + * @link https://github.com/discord/discord-intl + * @copyright 2024 Discord, Inc. + * @license MIT + */ +export default { + name: "intlLoader", + setup(build) { + build.onLoad({ filter: INTL_MESSAGES_REGEXP }, (args) => { + const sourcePath = args.path; + const source = readFileSync(sourcePath, "utf-8"); + const forceTranslation = args.suffix === "?forceTranslation"; + const i18nPath = resolve("./i18n/"); + + if (!hasInitializedAllDefinitions) { + processAllMessagesFiles(findAllMessagesFiles([i18nPath])); + hasInitializedAllDefinitions = true; + } + + if (isMessageDefinitionsFile(sourcePath) && !forceTranslation) { + const result = processDefinitionsFile(sourcePath, source, { locale: "en-US" }); + + result.translationsLocaleMap[result.locale] = `${sourcePath}?forceTranslation`; + for (const locale in result.translationsLocaleMap) { + result.translationsLocaleMap[locale] = makePosixRelativePath( + sourcePath, + result.translationsLocaleMap[locale], + ); + } + + if (Object.keys(messageKeys).length < Object.keys(result.messageKeys ?? {}).length) { + messageKeys = result.messageKeys; + } + + return { + contents: new MessageDefinitionsTransformer({ + messageKeys: Object.fromEntries( + Object.entries(result.messageKeys).map(([_, key]) => [key, key]), + ), + localeMap: result.translationsLocaleMap, + defaultLocale: result.locale, + getTranslationImport: (importPath) => `import("${importPath}")`, + debug: process.env.NODE_ENV === "development", + preGenerateBinds: false, + }).getOutput(), + loader: "js", + }; + } else { + const locale = forceTranslation ? "en-US" : getLocaleFromTranslationsFileName(sourcePath); + if (isMessageTranslationsFile(sourcePath)) { + processTranslationsFile(sourcePath, source, { locale }); + } else if (forceTranslation) { + } else { + throw new Error( + "Expected a translation file or the `forceTranslation` query parameter on this import, but none was found", + ); + } + + const compiledResult = precompileFileForLocale(sourcePath, locale, undefined, { + format: IntlCompiledMessageFormat.KeylessJson, + bundleSecrets: false, + }); + const patchedResult = Object.fromEntries( + Object.entries(JSON.parse(compiledResult?.toString() ?? "{}")).map(([hash, string]) => [ + messageKeys[hash], + string, + ]), + ); + + return { + contents: `export default JSON.parse(\`${JSON.stringify(patchedResult).replace(/\\/g, "\\\\")}\`)`, + loader: "js", + }; + } + }); + }, +} as esbuild.Plugin; diff --git a/scripts/build-plugins/intl-type-generator.mts b/scripts/build-plugins/intl-type-generator.mts new file mode 100644 index 000000000..c51bcbb78 --- /dev/null +++ b/scripts/build-plugins/intl-type-generator.mts @@ -0,0 +1,50 @@ +import { + database, + generateTypeDefinitions, + isMessageDefinitionsFile, +} from "@discord/intl-loader-core"; +import chalk from "chalk"; +import esbuild from "esbuild"; + +let isFirstRun = true; + +/** + * Rewritten for esbuild. 1:1 copy of the original plugin, except doesn't generate types during watch mode. + * @link https://github.com/discord/discord-intl + * @copyright 2024 Discord, Inc. + * @license MIT + */ +export default { + name: "intlTypeGenerator", + setup(build) { + const generateTypeDefinitionsFile = (filePath: string): number => { + const start = performance.now(); + generateTypeDefinitions(filePath, undefined); + const end = performance.now(); + + return end - start; + }; + + const generateAllTypes = (): void => { + const paths = database.getAllSourceFilePaths(); + let totalDuration = 0; + + for (const path of paths) { + if (isMessageDefinitionsFile(path)) { + totalDuration += generateTypeDefinitionsFile(path); + } + } + + console.log( + `🌍 ${chalk.green(`Updated all intl type definitions (${paths.length} files, ${totalDuration.toFixed(3)}ms)`)}`, + ); + }; + + build.onEnd(() => { + if (isFirstRun) { + generateAllTypes(); + isFirstRun = false; + } + }); + }, +} as esbuild.Plugin; diff --git a/scripts/build-plugins/pre-bundle.mts b/scripts/build-plugins/pre-bundle.mts new file mode 100644 index 000000000..1c9409f23 --- /dev/null +++ b/scripts/build-plugins/pre-bundle.mts @@ -0,0 +1,25 @@ +import asar from "@electron/asar"; +import esbuild from "esbuild"; +import { readFileSync, writeFileSync } from "node:fs"; +import { distDir } from "scripts/build.mjs"; + +export default { + name: "preBundle", + setup: (build) => { + build.onEnd((result) => { + if (result.errors.length > 0) return; + + const mainPackage = JSON.parse(readFileSync("package.json", "utf-8")); + + writeFileSync( + `${distDir}/package.json`, + JSON.stringify({ + main: "main.js", + name: "replugged", + version: mainPackage.version, + }), + ); + asar.createPackage(`${distDir}`, "replugged.asar"); + }); + }, +} as esbuild.Plugin; diff --git a/scripts/build.mts b/scripts/build.mts index 4892129b3..dbbe5cd59 100644 --- a/scripts/build.mts +++ b/scripts/build.mts @@ -1,21 +1,15 @@ +import { createContext } from "@marshift/argus"; import esbuild from "esbuild"; +import { rmSync } from "fs"; import path from "path"; -import { fileURLToPath } from "url"; -import asar from "@electron/asar"; -import { createContext } from "@marshift/argus"; -import { - copyFileSync, - existsSync, - mkdirSync, - readFileSync, - readdirSync, - rmSync, - writeFileSync, -} from "fs"; import { logBuildPlugin } from "src/util.mjs"; +import { fileURLToPath } from "url"; +import intlPlugin from "./build-plugins/intl-loader.mjs"; +import intlTypeGeneratorPlugin from "./build-plugins/intl-type-generator.mjs"; +import preBundlePlugin from "./build-plugins/pre-bundle.mjs"; const NODE_VERSION = "20"; -const CHROME_VERSION = "124"; +const CHROME_VERSION = "128"; const ctx = createContext(process.argv); const watch = ctx.hasOptionalArg(/--watch/); @@ -23,49 +17,18 @@ const production = ctx.hasOptionalArg(/--production/); const dirname = path.dirname(fileURLToPath(import.meta.url)); -const distDir = production ? "dist-bundle" : "dist"; +export const distDir = production ? "dist-bundle" : "dist"; // Delete old builds to prevent issues/confusion from leftover files rmSync("dist", { recursive: true, force: true }); rmSync("dist-bundle", { recursive: true, force: true }); rmSync("replugged.asar", { force: true }); -const preBundle: esbuild.Plugin = { - name: "preBundle", - setup: (build) => { - build.onEnd((result) => { - if (result.errors.length > 0) return; - - if (!existsSync(`${distDir}/i18n`)) { - mkdirSync(`${distDir}/i18n`); - } - - readdirSync("i18n").forEach((file) => { - if (file.endsWith(".json")) { - copyFileSync(`i18n/${file}`, `${distDir}/i18n/${file}`); - } - }); - - const mainPackage = JSON.parse(readFileSync("package.json", "utf-8")); - - writeFileSync( - `${distDir}/package.json`, - JSON.stringify({ - main: "main.js", - name: "replugged", - version: mainPackage.version, - }), - ); - asar.createPackage(`${distDir}`, "replugged.asar"); - }); - }, -}; - const plugins: esbuild.Plugin[] = []; if (!watch) plugins.push(logBuildPlugin); if (production) { - plugins.push(preBundle); + plugins.push(preBundlePlugin); } const common: esbuild.BuildOptions = { @@ -73,7 +36,7 @@ const common: esbuild.BuildOptions = { bundle: true, minify: production, sourcemap: !production, - format: "cjs" as esbuild.Format, + format: "cjs", logLevel: "info", plugins, metafile: true, @@ -101,6 +64,7 @@ const contexts = await Promise.all([ // Renderer esbuild.context({ ...common, + plugins: [...plugins, intlTypeGeneratorPlugin, intlPlugin], entryPoints: ["src/renderer/index.ts"], platform: "browser", target: `chrome${CHROME_VERSION}`, diff --git a/src/constants.ts b/src/constants.ts index e27a5339b..89b3c8c66 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -4,3 +4,4 @@ export const WEBSITE_URL = "https://replugged.dev"; export const BETA_WEBSITE_URL = "https://beta.replugged.dev"; export const DISCORD_BLURPLE = "#7289da"; export const REPLUGGED_CLYDE_ID = "826980768571716968"; // "REPLUGGED" in ASCII codes +export const DEFAULT_LOCALE = "en-US"; diff --git a/src/main/ipc/i18n.ts b/src/main/ipc/i18n.ts deleted file mode 100644 index 9d86ed7c3..000000000 --- a/src/main/ipc/i18n.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ipcMain } from "electron"; -import { RepluggedIpcChannels } from "../../types"; - -import strings from "../../../i18n"; - -ipcMain.handle(RepluggedIpcChannels.GET_I18N_STRINGS, () => strings); diff --git a/src/main/ipc/index.ts b/src/main/ipc/index.ts index c664f0cb4..b9814fe9a 100644 --- a/src/main/ipc/index.ts +++ b/src/main/ipc/index.ts @@ -1,12 +1,11 @@ import { ipcMain } from "electron"; +import { RepluggedIpcChannels, type RepluggedWebContents } from "../../types"; +import "./installer"; import "./plugins"; -import "./themes"; import "./quick-css"; -import "./settings"; -import "./installer"; -import "./i18n"; import "./react-devtools"; -import { RepluggedIpcChannels, type RepluggedWebContents } from "../../types"; +import "./settings"; +import "./themes"; ipcMain.on(RepluggedIpcChannels.GET_DISCORD_PRELOAD, (event) => { event.returnValue = (event.sender as RepluggedWebContents).originalPreload; diff --git a/src/preload.ts b/src/preload.ts index 1a611af16..0b8397545 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -15,7 +15,6 @@ import type { InstallerType, RepluggedPlugin, RepluggedTheme, - RepluggedTranslations, } from "./types"; let version = ""; @@ -98,11 +97,6 @@ const RepluggedNative = { openFolder: () => ipcRenderer.send(RepluggedIpcChannels.OPEN_SETTINGS_FOLDER), }, - i18n: { - getStrings: (): Promise => - ipcRenderer.invoke(RepluggedIpcChannels.GET_I18N_STRINGS), - }, - reactDevTools: { downloadExtension: (): Promise => ipcRenderer.invoke(RepluggedIpcChannels.DOWNLOAD_REACT_DEVTOOLS), diff --git a/src/renderer/apis/commands.ts b/src/renderer/apis/commands.ts index a6cc8742b..38e350349 100644 --- a/src/renderer/apis/commands.ts +++ b/src/renderer/apis/commands.ts @@ -18,6 +18,7 @@ import { constants, i18n, messages, users } from "../modules/common"; import type { Store } from "../modules/common/flux"; import { Logger } from "../modules/logger"; import { filters, getByStoreName, waitForModule } from "../modules/webpack"; +import { t } from "../modules/i18n"; const logger = Logger.api("Commands"); @@ -169,7 +170,7 @@ async function executeCommand( const currentChannelId = currentInfo.channel.id; const botMessage = messages.createBotMessage({ channelId: currentChannelId, - content: i18n.Messages.REPLUGGED_COMMAND_ERROR_GENERIC, + content: i18n.intl.string(t.REPLUGGED_COMMAND_ERROR_GENERIC), embeds: [], loggingName: "Replugged", }); diff --git a/src/renderer/coremods/badges/index.tsx b/src/renderer/coremods/badges/index.tsx index 1d7711003..02d8c1cf9 100644 --- a/src/renderer/coremods/badges/index.tsx +++ b/src/renderer/coremods/badges/index.tsx @@ -1,14 +1,16 @@ -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import React from "@common/react"; import { Logger } from "@replugged"; import { filters, getFunctionKeyBySource, waitForModule } from "@webpack"; import { DISCORD_BLURPLE, DISCORD_INVITE, WEBLATE_URL } from "src/constants"; +import { t } from "src/renderer/modules/i18n"; import type { Badge, DisplayProfile } from "src/types"; import { Injector } from "../../modules/injector"; import { generalSettings } from "../settings/pages"; -import "./badge.css"; import Badges from "./badges"; +import "./badge.css"; + const injector = new Injector(); const logger = Logger.coremod("Badges"); @@ -53,39 +55,43 @@ const inviteUrl = `https://discord.gg/${DISCORD_INVITE}`; const badgeElements = [ { id: "booster", - description: Messages.REPLUGGED_BADGES_BOOSTER, + description: intl.string(t.REPLUGGED_BADGES_BOOSTER), component: Badges.Booster, link: inviteUrl, }, { id: "contributor", - description: Messages.REPLUGGED_BADGES_CONTRIBUTOR, + description: intl.string(t.REPLUGGED_BADGES_CONTRIBUTOR), component: Badges.Contributor, link: contributorsUrl, }, { id: "developer", - description: Messages.REPLUGGED_BADGES_DEVELOPER, + description: intl.string(t.REPLUGGED_BADGES_DEVELOPER), component: Badges.Developer, link: contributorsUrl, }, - { id: "early", description: Messages.REPLUGGED_BADGES_EARLY, component: Badges.EarlyUser }, - { id: "hunter", description: Messages.REPLUGGED_BADGES_HUNTER, component: Badges.BugHunter }, + { id: "early", description: intl.string(t.REPLUGGED_BADGES_EARLY), component: Badges.EarlyUser }, + { + id: "hunter", + description: intl.string(t.REPLUGGED_BADGES_HUNTER), + component: Badges.BugHunter, + }, { id: "staff", - description: Messages.REPLUGGED_BADGES_STAFF, + description: intl.string(t.REPLUGGED_BADGES_STAFF), component: Badges.Staff, link: inviteUrl, }, { id: "support", - description: Messages.REPLUGGED_BADGES_SUPPORT, + description: intl.string(t.REPLUGGED_BADGES_SUPPORT), component: Badges.Support, link: inviteUrl, }, { id: "translator", - description: Messages.REPLUGGED_BADGES_TRANSLATOR, + description: intl.string(t.REPLUGGED_BADGES_TRANSLATOR), component: Badges.Translator, link: WEBLATE_URL, }, diff --git a/src/renderer/coremods/commands/commands.ts b/src/renderer/coremods/commands/commands.ts index 7665c1f12..26a5f34c5 100644 --- a/src/renderer/coremods/commands/commands.ts +++ b/src/renderer/coremods/commands/commands.ts @@ -1,18 +1,19 @@ -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import { Injector, plugins, themes } from "@replugged"; +import { t } from "src/renderer/modules/i18n"; import { ApplicationCommandOptionType } from "../../../types"; const injector = new Injector(); export function loadCommands(): void { injector.utils.registerSlashCommand({ - name: Messages.REPLUGGED_COMMAND_ENABLE_NAME, - description: Messages.REPLUGGED_COMMAND_ENABLE_DESC, + name: intl.string(t.REPLUGGED_COMMAND_ENABLE_NAME), + description: intl.string(t.REPLUGGED_COMMAND_ENABLE_DESC), options: [ { name: "addon", - displayName: Messages.REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME, - description: Messages.REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_ENABLE_OPTION_ADDON_NAME), + description: intl.string(t.REPLUGGED_COMMAND_ADDONS_OPTION_ADDON_DESC), type: ApplicationCommandOptionType.String, required: true, get choices() { @@ -30,7 +31,7 @@ export function loadCommands(): void { ...disabledPlugins .map((plugin) => ({ name: plugin.manifest.name, - displayName: `${Messages.REPLUGGED_PLUGIN}: ${plugin.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_PLUGIN)}: ${plugin.manifest.name}`, value: plugin.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -39,7 +40,7 @@ export function loadCommands(): void { ...disabledThemes .map((theme) => ({ name: theme.manifest.name, - displayName: `${Messages.REPLUGGED_THEME}: ${theme.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_THEME)}: ${theme.manifest.name}`, value: theme.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -62,11 +63,11 @@ export function loadCommands(): void { embeds: [ { color: 0x1bbb1b, - title: Messages.REPLUGGED_COMMAND_SUCCESS_GENERIC, - description: Messages.REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED.format({ + title: intl.string(t.REPLUGGED_COMMAND_SUCCESS_GENERIC), + description: intl.formatToPlainString(t.REPLUGGED_COMMAND_ENABLE_MESSAGE_ENABLED, { type: plugins.plugins.get(addonId) - ? Messages.REPLUGGED_PLUGIN - : Messages.REPLUGGED_THEME, + ? intl.string(t.REPLUGGED_PLUGIN) + : intl.string(t.REPLUGGED_THEME), name: plugins.plugins.get(addonId)?.manifest.name ?? themes.themes.get(addonId)?.manifest.name, @@ -80,7 +81,7 @@ export function loadCommands(): void { embeds: [ { color: 0xdd2d2d, - title: Messages.REPLUGGED_COMMAND_ERROR_GENERIC, + title: intl.string(t.REPLUGGED_COMMAND_ERROR_GENERIC), description: err as string, }, ], @@ -89,13 +90,13 @@ export function loadCommands(): void { }, }); injector.utils.registerSlashCommand({ - name: Messages.REPLUGGED_COMMAND_DISABLE_NAME, - description: Messages.REPLUGGED_COMMAND_DISABLE_DESC, + name: intl.string(t.REPLUGGED_COMMAND_DISABLE_NAME), + description: intl.string(t.REPLUGGED_COMMAND_DISABLE_DESC), options: [ { name: "addon", - displayName: Messages.REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME, - description: Messages.REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_NAME), + description: intl.string(t.REPLUGGED_COMMAND_DISABLE_OPTION_ADDON_DESC), type: ApplicationCommandOptionType.String, required: true, get choices() { @@ -113,7 +114,7 @@ export function loadCommands(): void { ...enabledPlugins .map((plugin) => ({ name: plugin.manifest.name, - displayName: `${Messages.REPLUGGED_PLUGIN}: ${plugin.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_PLUGIN)}: ${plugin.manifest.name}`, value: plugin.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -122,7 +123,7 @@ export function loadCommands(): void { ...enabledThemes .map((theme) => ({ name: theme.manifest.name, - displayName: `${Messages.REPLUGGED_THEME}: ${theme.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_THEME)}: ${theme.manifest.name}`, value: theme.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -145,11 +146,11 @@ export function loadCommands(): void { embeds: [ { color: 0x1bbb1b, - title: Messages.REPLUGGED_COMMAND_SUCCESS_GENERIC, - description: Messages.REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED.format({ + title: intl.string(t.REPLUGGED_COMMAND_SUCCESS_GENERIC), + description: intl.formatToPlainString(t.REPLUGGED_COMMAND_DISABLE_MESSAGE_ENABLED, { type: plugins.plugins.get(addonId) - ? Messages.REPLUGGED_PLUGIN - : Messages.REPLUGGED_THEME, + ? intl.string(t.REPLUGGED_PLUGIN) + : intl.string(t.REPLUGGED_THEME), name: plugins.plugins.get(addonId)?.manifest.name ?? themes.themes.get(addonId)?.manifest.name, @@ -163,7 +164,7 @@ export function loadCommands(): void { embeds: [ { color: 0xdd2d2d, - title: Messages.REPLUGGED_COMMAND_ERROR_GENERIC, + title: intl.string(t.REPLUGGED_COMMAND_ERROR_GENERIC), description: err as string, }, ], @@ -172,13 +173,13 @@ export function loadCommands(): void { }, }); injector.utils.registerSlashCommand({ - name: Messages.REPLUGGED_COMMAND_RELOAD_NAME, - description: Messages.REPLUGGED_COMMAND_RELOAD_DESC, + name: intl.string(t.REPLUGGED_COMMAND_RELOAD_NAME), + description: intl.string(t.REPLUGGED_COMMAND_RELOAD_DESC), options: [ { name: "addon", - displayName: Messages.REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME, - description: Messages.REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_NAME), + description: intl.string(t.REPLUGGED_COMMAND_RELOAD_OPTION_ADDON_DESC), type: ApplicationCommandOptionType.String, required: true, get choices() { @@ -191,7 +192,7 @@ export function loadCommands(): void { ...enabledPlugins .map((plugin) => ({ name: plugin.manifest.name, - displayName: `${Messages.REPLUGGED_PLUGIN}: ${plugin.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_PLUGIN)}: ${plugin.manifest.name}`, value: plugin.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -200,7 +201,7 @@ export function loadCommands(): void { ...enabledThemes .map((theme) => ({ name: theme.manifest.name, - displayName: `${Messages.REPLUGGED_THEME}: ${theme.manifest.name}`, + displayName: `${intl.string(t.REPLUGGED_THEME)}: ${theme.manifest.name}`, value: theme.manifest.id, })) .sort((a, b) => a.name.localeCompare(b.name)), @@ -223,11 +224,11 @@ export function loadCommands(): void { embeds: [ { color: 0x1bbb1b, - title: Messages.REPLUGGED_COMMAND_SUCCESS_GENERIC, - description: Messages.REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED.format({ + title: intl.string(t.REPLUGGED_COMMAND_SUCCESS_GENERIC), + description: intl.formatToPlainString(t.REPLUGGED_COMMAND_RELOAD_MESSAGE_ENABLED, { type: plugins.plugins.get(addonId) - ? Messages.REPLUGGED_PLUGIN - : Messages.REPLUGGED_THEME, + ? intl.string(t.REPLUGGED_PLUGIN) + : intl.string(t.REPLUGGED_THEME), name: plugins.plugins.get(addonId)?.manifest.name ?? themes.themes.get(addonId)?.manifest.name, @@ -241,7 +242,7 @@ export function loadCommands(): void { embeds: [ { color: 0xdd2d2d, - title: Messages.REPLUGGED_COMMAND_ERROR_GENERIC, + title: intl.string(t.REPLUGGED_COMMAND_ERROR_GENERIC), description: err as string, }, ], @@ -250,62 +251,62 @@ export function loadCommands(): void { }, }); injector.utils.registerSlashCommand({ - name: Messages.REPLUGGED_COMMAND_LIST_NAME, - description: Messages.REPLUGGED_COMMAND_LIST_DESC, + name: intl.string(t.REPLUGGED_COMMAND_LIST_NAME), + description: intl.string(t.REPLUGGED_COMMAND_LIST_DESC), options: [ { name: "send", - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME, - description: Messages.REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_SEND_NAME), + description: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_SEND_DESC), type: ApplicationCommandOptionType.Boolean, required: false, }, { name: "type", - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME, - description: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_NAME), + description: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_DESC), type: ApplicationCommandOptionType.String, required: true, choices: [ { - name: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME, - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME, + name: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME), + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_THEME), value: "theme", }, { - name: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN, - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN, + name: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN), + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_TYPE_CHOICE_PLUGIN), value: "plugin", }, ], }, { name: "version", - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME, - description: Messages.REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_VERSION_NAME), + description: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_VERSION_DESC), type: ApplicationCommandOptionType.Boolean, required: false, }, { name: "status", - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME, - description: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_NAME), + description: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_DESC), type: ApplicationCommandOptionType.String, required: false, choices: [ { - name: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED, - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED, + name: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED), + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_ENABLED), value: "enabled", }, { - name: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED, - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED, + name: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED), + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_DISABLED), value: "disabled", }, { - name: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH, - displayName: Messages.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH, + name: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH), + displayName: intl.string(t.REPLUGGED_COMMAND_LIST_OPTION_STATUS_CHOICE_BOTH), value: "default", }, ], @@ -336,14 +337,14 @@ export function loadCommands(): void { const enabledString = generateListString( enablePlugins, - Messages.REPLUGGED_COMMAND_LIST_HEADER_ENABLED.format({ - type: Messages.REPLUGGED_PLUGINS, + intl.formatToPlainString(t.REPLUGGED_COMMAND_LIST_HEADER_ENABLED, { + type: intl.string(t.REPLUGGED_PLUGINS), }), ); const disabledString = generateListString( disabledPlugins, - Messages.REPLUGGED_COMMAND_LIST_HEADER_DISABLED.format({ - type: Messages.REPLUGGED_PLUGINS, + intl.formatToPlainString(t.REPLUGGED_COMMAND_LIST_HEADER_DISABLED, { + type: intl.string(t.REPLUGGED_PLUGINS), }), ); @@ -368,14 +369,14 @@ export function loadCommands(): void { const enabledString = generateListString( enableThemes, - Messages.REPLUGGED_COMMAND_LIST_HEADER_ENABLED.format({ - type: Messages.REPLUGGED_THEMES, + intl.formatToPlainString(t.REPLUGGED_COMMAND_LIST_HEADER_ENABLED, { + type: intl.string(t.REPLUGGED_THEMES), }), ); const disabledString = generateListString( disabledThemes, - Messages.REPLUGGED_COMMAND_LIST_HEADER_DISABLED.format({ - type: Messages.REPLUGGED_THEMES, + intl.formatToPlainString(t.REPLUGGED_COMMAND_LIST_HEADER_DISABLED, { + type: intl.string(t.REPLUGGED_THEMES), }), ); @@ -394,7 +395,7 @@ export function loadCommands(): void { default: return { send: false, - result: Messages.REPLUGGED_COMMAND_LIST_ERROR_SPECIFY, + result: intl.string(t.REPLUGGED_COMMAND_LIST_ERROR_SPECIFY), }; } } catch (err) { @@ -403,7 +404,7 @@ export function loadCommands(): void { embeds: [ { color: 0xdd2d2d, - title: Messages.REPLUGGED_COMMAND_ERROR_GENERIC, + title: intl.string(t.REPLUGGED_COMMAND_ERROR_GENERIC), description: err as string, }, ], diff --git a/src/renderer/coremods/installer/AddonEmbed.tsx b/src/renderer/coremods/installer/AddonEmbed.tsx index 0ff620242..7640e6ef3 100644 --- a/src/renderer/coremods/installer/AddonEmbed.tsx +++ b/src/renderer/coremods/installer/AddonEmbed.tsx @@ -1,8 +1,9 @@ -import { Messages } from "@common/i18n"; import { React } from "@common"; +import { intl } from "@common/i18n"; import { Button, Clickable, Text, Tooltip } from "@components"; import { Logger } from "@replugged"; import { getByProps } from "@webpack"; +import { t } from "src/renderer/modules/i18n"; import { openExternal } from "src/renderer/util"; import { CheckResultSuccess } from "src/types"; import { getSourceLink } from "../settings/pages"; @@ -156,7 +157,7 @@ const Embed = React.memo( openExternal(props.url)}> - {Messages.REPLUGGED_INSTALLER_OPEN_STORE} + {intl.string(t.REPLUGGED_INSTALLER_OPEN_STORE)} {props.onCooldown - ? Messages.REPLUGGED_PLUGIN_EMBED_COPIED - : Messages.REPLUGGED_PLUGIN_EMBED_COPY} + ? intl.string(t.REPLUGGED_PLUGIN_EMBED_COPIED) + : intl.string(t.REPLUGGED_PLUGIN_EMBED_COPY)} )} @@ -203,7 +204,9 @@ const Embed = React.memo(
) : ( @@ -219,7 +222,7 @@ const Embed = React.memo( props.isInstalled || props.isInstalling ? Button.Colors.TRANSPARENT : undefined } onClick={props.installClick}> - {Messages.REPLUGGED_CONFIRM_INSTALL} + {intl.string(t.REPLUGGED_CONFIRM_INSTALL)} )} diff --git a/src/renderer/coremods/installer/commands.ts b/src/renderer/coremods/installer/commands.ts index 26b15f9dd..b7899a123 100644 --- a/src/renderer/coremods/installer/commands.ts +++ b/src/renderer/coremods/installer/commands.ts @@ -1,33 +1,34 @@ +import { intl } from "@common/i18n"; import { Injector } from "@replugged"; +import { t } from "src/renderer/modules/i18n"; import { ApplicationCommandOptionType } from "src/types"; import { INSTALLER_SOURCES, InstallerSource, installFlow, parseInstallLink } from "./util"; -import { Messages } from "@common/i18n"; /** * A map of display names for installer sources. */ const sourceDisplayNames: Record = { github: "GitHub", - store: Messages.REPLUGGED_STORE, + store: intl.string(t.REPLUGGED_STORE), }; export function loadCommands(injector: Injector): void { injector.utils.registerSlashCommand({ name: "install", - displayName: Messages.REPLUGGED_COMMAND_INSTALL_NAME, - description: Messages.REPLUGGED_COMMAND_INSTALL_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_INSTALL_NAME), + description: intl.string(t.REPLUGGED_COMMAND_INSTALL_DESC), options: [ { name: "addon", - displayName: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME, - description: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_NAME), + description: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_ADDON_DESC), type: ApplicationCommandOptionType.String, required: true, }, { name: "source", - displayName: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME, - description: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_NAME), + description: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_SOURCE_DESC), type: ApplicationCommandOptionType.String, required: false, choices: INSTALLER_SOURCES.map((v) => ({ @@ -38,8 +39,8 @@ export function loadCommands(injector: Injector): void { }, { name: "id", - displayName: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME, - description: Messages.REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC, + displayName: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_ID_NAME), + description: intl.string(t.REPLUGGED_COMMAND_INSTALL_OPTION_ID_DESC), type: ApplicationCommandOptionType.String, required: false, }, @@ -61,19 +62,21 @@ export function loadCommands(injector: Injector): void { switch (resp.kind) { case "FAILED": return { - result: Messages.REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED, + result: intl.string(t.REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED), }; case "ALREADY_INSTALLED": return { - result: Messages.REPLUGGED_ERROR_ALREADY_INSTALLED.format({ name: resp.manifest.name }), + result: intl.formatToPlainString(t.REPLUGGED_ERROR_ALREADY_INSTALLED, { + name: resp.manifest.name, + }), }; case "CANCELLED": return { - result: Messages.REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL, + result: intl.string(t.REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL), }; case "SUCCESS": return { - result: Messages.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS.format({ + result: intl.formatToPlainString(t.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS, { name: resp.manifest.name, }), }; diff --git a/src/renderer/coremods/installer/util.tsx b/src/renderer/coremods/installer/util.tsx index a0c5c0c42..8893bea81 100644 --- a/src/renderer/coremods/installer/util.tsx +++ b/src/renderer/coremods/installer/util.tsx @@ -1,5 +1,5 @@ import { modal, toast } from "@common"; -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import { Button, Notice } from "@components"; import { Logger } from "@replugged"; import { setUpdaterState } from "src/renderer/managers/updater"; @@ -8,6 +8,7 @@ import type { AnyAddonManifest, CheckResultSuccess } from "src/types"; import * as pluginManager from "../../managers/plugins"; import * as themeManager from "../../managers/themes"; import { generalSettings, getAddonType, getSourceLink, label } from "../settings/pages"; +import { t } from "src/renderer/modules/i18n"; const logger = Logger.coremod("Installer"); @@ -161,7 +162,7 @@ export async function install(data: CheckResultSuccess): Promise { if (!res.success) { logger.error(`Failed to install ${name}: ${res.error}`); toast.toast( - Messages.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED.format({ name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_FAILED, { name }), toast.Kind.FAILURE, ); return false; @@ -179,14 +180,14 @@ export async function install(data: CheckResultSuccess): Promise { if (!loaded) { toast.toast( - Messages.REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED.format({ name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_INSTALLER_ADDON_LOAD_FAILED, { name }), toast.Kind.FAILURE, ); return false; } toast.toast( - Messages.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS.format({ name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_INSTALLER_ADDON_INSTALL_SUCCESS, { name }), toast.Kind.SUCCESS, ); return true; @@ -194,25 +195,25 @@ export async function install(data: CheckResultSuccess): Promise { export function authorList(authors: string[]): string { if (authors.length === 1) { - return Messages.REPLUGGED_ADDON_AUTHORS_ONE.format({ + return intl.formatToPlainString(t.REPLUGGED_ADDON_AUTHORS_ONE, { author1: authors[0], }); } if (authors.length === 2) { - return Messages.REPLUGGED_ADDON_AUTHORS_TWO.format({ + return intl.formatToPlainString(t.REPLUGGED_ADDON_AUTHORS_TWO, { author1: authors[0], author2: authors[1], }); } if (authors.length === 3) { - return Messages.REPLUGGED_ADDON_AUTHORS_THREE.format({ + return intl.formatToPlainString(t.REPLUGGED_ADDON_AUTHORS_THREE, { author1: authors[0], author2: authors[1], author3: authors[2], }); } - return Messages.REPLUGGED_ADDON_AUTHORS_MANY.format({ + return intl.formatToPlainString(t.REPLUGGED_ADDON_AUTHORS_MANY, { author1: authors[0], author2: authors[1], author3: authors[2], @@ -236,8 +237,8 @@ async function showInstallPrompt( } const authors = authorList([manifest.author].flat().map((a) => a.name)); - const title = Messages.REPLUGGED_INSTALL_MODAL_HEADER.format({ type }); - const text = Messages.REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY.format({ + const title = intl.format(t.REPLUGGED_INSTALL_MODAL_HEADER, { type }); + const text = intl.format(t.REPLUGGED_INSTALLER_INSTALL_PROMPT_BODY, { name: manifest.name, authors, }); @@ -252,7 +253,7 @@ async function showInstallPrompt( {(source ?? DEFAULT_INSTALLER_SOURCE) !== "store" ? (
- {Messages.REPLUGGED_ADDON_NOT_REVIEWED_DESC.format({ + {intl.format(t.REPLUGGED_ADDON_NOT_REVIEWED_DESC, { type: label(getAddonType(manifest.type)), })} @@ -260,9 +261,9 @@ async function showInstallPrompt( ) : null} ), - confirmText: Messages.REPLUGGED_CONFIRM, - cancelText: Messages.REPLUGGED_CANCEL, - secondaryConfirmText: storeUrl ? Messages.REPLUGGED_INSTALLER_OPEN_STORE : undefined, + confirmText: intl.string(t.REPLUGGED_CONFIRM), + cancelText: intl.string(t.REPLUGGED_CANCEL), + secondaryConfirmText: storeUrl ? intl.string(t.REPLUGGED_INSTALLER_OPEN_STORE) : undefined, onConfirmSecondary: () => (storeUrl ? openExternal(storeUrl) : null), }); @@ -306,7 +307,10 @@ export async function installFlow( const info = await getInfo(identifier, source, id); if (!info) { if (showToasts) - toast.toast(Messages.REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED, toast.Kind.FAILURE); + toast.toast( + intl.string(t.REPLUGGED_TOAST_INSTALLER_ADDON_FETCH_INFO_FAILED), + toast.Kind.FAILURE, + ); return { kind: "FAILED", }; @@ -319,7 +323,7 @@ export async function installFlow( if (checkIsInstalled(info)) { if (showToasts) toast.toast( - Messages.REPLUGGED_ERROR_ALREADY_INSTALLED.format({ name: info.manifest.name }), + intl.formatToPlainString(t.REPLUGGED_ERROR_ALREADY_INSTALLED, { name: info.manifest.name }), toast.Kind.MESSAGE, ); return { @@ -334,7 +338,10 @@ export async function installFlow( if (!confirm) { if (confirm === false && showToasts) { // Do not show if null ("open in store" clicked) - toast.toast(Messages.REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL, toast.Kind.MESSAGE); + toast.toast( + intl.string(t.REPLUGGED_TOAST_INSTALLER_ADDON_CANCELED_INSTALL), + toast.Kind.MESSAGE, + ); } return { kind: "CANCELLED", @@ -350,11 +357,11 @@ export async function installFlow( ) { void modal .confirm({ - title: Messages.REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE, - body: Messages.REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY.format({ + title: intl.string(t.REPLUGGED_UPDATES_AWAITING_RELOAD_TITLE), + body: intl.format(t.REPLUGGED_PLUGIN_INSTALL_RELOAD_PROMPT_BODY, { name: info.manifest.name, }), - confirmText: Messages.REPLUGGED_RELOAD, + confirmText: intl.string(t.REPLUGGED_RELOAD), confirmColor: Button.Colors.RED, }) .then((answer) => { diff --git a/src/renderer/coremods/language/index.tsx b/src/renderer/coremods/language/index.tsx index 3df56f145..aa8c3a1e5 100644 --- a/src/renderer/coremods/language/index.tsx +++ b/src/renderer/coremods/language/index.tsx @@ -1,19 +1,17 @@ -import { Messages } from "@common/i18n"; +import { getLanguages, intl } from "@common/i18n"; import { Flex, FormNotice, Text } from "@components"; +import { messagesLoader } from "i18n/en-US.messages"; import React from "react"; import { WEBLATE_URL } from "src/constants"; -import i18n from "../../modules/common/i18n"; -import { messages } from "../../modules/i18n"; - -const defaultLocale = "en-US"; +import { t } from "../../modules/i18n"; export const percentages = new Map(); export function Card(): React.ReactElement { return ( @@ -26,7 +24,7 @@ export function Percentage( flag: React.ReactElement, ): React.ReactElement { const name = localeName.props.children as string; - const locale = i18n.getLanguages().find((language) => language.name === name)!.code; + const locale = getLanguages().find((language) => language.name === name)!.code; const percentage = percentages.get(locale); return ( @@ -34,7 +32,7 @@ export function Percentage( {localeName} - {Messages.REPLUGGED_I18N_TRANSLATED_PERCENTAGE.format({ translated: percentage })} + {intl.format(t.REPLUGGED_I18N_TRANSLATED_PERCENTAGE, { translated: Number(percentage) })} {localizedName} @@ -44,10 +42,11 @@ export function Percentage( } export function start(): void { - const totalStrCount = Object.keys(messages.get(defaultLocale)).length; + const totalStrCount = Object.keys(t).length; - messages.forEach((strings, locale) => { - const strCount = Object.values(strings).filter((str) => str !== "").length; + Object.entries(messagesLoader.localeImportMap).forEach(async ([locale, getStrings]) => { + const strings = (await getStrings()).default; + const strCount = Object.values(strings).filter((str) => Boolean(str)).length; const percentage = Math.floor((strCount / totalStrCount) * 100); percentages.set(locale, percentage); }); diff --git a/src/renderer/coremods/settings/index.tsx b/src/renderer/coremods/settings/index.tsx index 296f3ebfc..e87df7fe3 100644 --- a/src/renderer/coremods/settings/index.tsx +++ b/src/renderer/coremods/settings/index.tsx @@ -1,6 +1,7 @@ -import { Messages } from "@common/i18n"; +import { t as discordT, intl, runtimeHashMessageKey } from "@common/i18n"; import { Text } from "@components"; import { Injector } from "@replugged"; +import { t } from "src/renderer/modules/i18n"; import { Divider, Header, Section, insertSections, settingsTools } from "./lib"; import { General, Plugins, QuickCSS, Themes, Updater } from "./pages"; @@ -11,7 +12,7 @@ export { insertSections }; export function VersionInfo(): React.ReactElement { return ( - {Messages.REPLUGGED_VERSION.format({ version: window.RepluggedNative.getVersion() })} + {intl.format(t.REPLUGGED_VERSION, { version: window.RepluggedNative.getVersion() })} ); } @@ -22,27 +23,27 @@ export function start(): void { Header("Replugged"), Section({ name: "rp-general", - label: () => Messages.SETTINGS_GENERAL, + label: () => intl.string(discordT[runtimeHashMessageKey("SETTINGS_GENERAL")]), elem: General, }), Section({ name: "rp-quickcss", - label: () => Messages.REPLUGGED_QUICKCSS, + label: () => intl.string(t.REPLUGGED_QUICKCSS), elem: QuickCSS, }), Section({ name: "rp-plugins", - label: () => Messages.REPLUGGED_PLUGINS, + label: () => intl.string(t.REPLUGGED_PLUGINS), elem: Plugins, }), Section({ name: "rp-themes", - label: () => Messages.REPLUGGED_THEMES, + label: () => intl.string(t.REPLUGGED_THEMES), elem: Themes, }), Section({ name: "rp-updater", - label: () => Messages.REPLUGGED_UPDATES_UPDATER, + label: () => intl.string(t.REPLUGGED_UPDATES_UPDATER), elem: Updater, }), ]); diff --git a/src/renderer/coremods/settings/pages/Addons.tsx b/src/renderer/coremods/settings/pages/Addons.tsx index 16626134e..0ceb7f1f8 100644 --- a/src/renderer/coremods/settings/pages/Addons.tsx +++ b/src/renderer/coremods/settings/pages/Addons.tsx @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ -import { Messages } from "@common/i18n"; import { React, api, fluxDispatcher, modal, toast, users } from "@common"; +import { t as discordT, intl, runtimeHashMessageKey } from "@common/i18n"; import { Button, Divider, @@ -12,13 +12,15 @@ import { TextInput, Tooltip, } from "@components"; +import { Logger, plugins, themes, webpack } from "@replugged"; +import { t } from "src/renderer/modules/i18n"; +import { openExternal } from "src/renderer/util"; import type { RepluggedPlugin, RepluggedTheme } from "src/types"; import type { AnyAddonManifest, Author } from "src/types/addon"; -import "./Addons.css"; import Icons from "../icons"; -import { Logger, plugins, themes, webpack } from "@replugged"; import { generalSettings } from "./General"; -import { openExternal } from "src/renderer/util"; + +import "./Addons.css"; interface Breadcrumb { id: string; @@ -119,7 +121,7 @@ async function openUserProfile(id: string): Promise { fluxDispatcher.dispatch({ type: "USER_UPDATE", user: body }); } catch (e) { logger.error(`Failed to fetch user profile for ${id}`, e); - toast.toast(Messages.REPLUGGED_TOAST_PROFILE_FETCH_FAILED, toast.Kind.FAILURE); + toast.toast(intl.string(t.REPLUGGED_TOAST_PROFILE_FETCH_FAILED), toast.Kind.FAILURE); return; } } @@ -186,10 +188,10 @@ export function label( let base = ""; if (type === AddonType.Plugin) { - base = Messages[`REPLUGGED_PLUGIN${plural ? "S" : ""}`]; + base = intl.string(t[`REPLUGGED_PLUGIN${plural ? "S" : ""}`]); } if (type === AddonType.Theme) { - base = Messages[`REPLUGGED_THEME${plural ? "S" : ""}`]; + base = intl.string(t[`REPLUGGED_THEME${plural ? "S" : ""}`]); } if (caps === "lower") { base = base.toLowerCase(); @@ -230,8 +232,8 @@ function Authors({ addon }: { addon: RepluggedPlugin | RepluggedTheme }): React. {author.name} {author.discordID ? ( openUserProfile(author.discordID!)}> @@ -241,7 +243,7 @@ function Authors({ addon }: { addon: RepluggedPlugin | RepluggedTheme }): React. ) : null} {author.github ? ( @@ -254,35 +256,20 @@ function Authors({ addon }: { addon: RepluggedPlugin | RepluggedTheme }): React. let message = ""; if (els.length === 1) { - // return Messages.REPLUGGED_ADDON_AUTHORS_ONE.format({ - // author1: els[0], - // }); - message = Messages.REPLUGGED_ADDON_AUTHORS_ONE.message; + // @ts-expect-error We replace the variables with replaceVariable later + message = intl.string(t.REPLUGGED_ADDON_AUTHORS_ONE); } if (els.length === 2) { - // return Messages.REPLUGGED_ADDON_AUTHORS_TWO.format({ - // author1: els[0], - // author2: els[1], - // }); - message = Messages.REPLUGGED_ADDON_AUTHORS_TWO.message; + // @ts-expect-error We replace the variables with replaceVariable later + message = intl.string(t.REPLUGGED_ADDON_AUTHORS_TWO); } if (els.length === 3) { - // return Messages.REPLUGGED_ADDON_AUTHORS_THREE.format({ - // author1: els[0], - // author2: els[1], - // author3: els[2], - // }); - - message = Messages.REPLUGGED_ADDON_AUTHORS_THREE.message; + // @ts-expect-error We replace the variables with replaceVariable later + message = intl.string(t.REPLUGGED_ADDON_AUTHORS_THREE); } if (els.length > 3) { - // return Messages.REPLUGGED_ADDON_AUTHORS_MANY.format({ - // author1: els[0], - // author2: els[1], - // author3: els[2], - // count: els.length - 3, - // }); - message = Messages.REPLUGGED_ADDON_AUTHORS_MANY.message; + // @ts-expect-error We replace the variables with replaceVariable later + message = intl.string(t.REPLUGGED_ADDON_AUTHORS_MANY); } return replaceVariable(message, { @@ -332,7 +319,7 @@ function Card({ {sourceLink ? ( @@ -343,7 +330,7 @@ function Card({ ) : null} {hasSettings ? ( @@ -353,7 +340,9 @@ function Card({ ) : null} uninstall()}> @@ -361,7 +350,7 @@ function Card({ {disabled ? null : ( @@ -379,7 +368,7 @@ function Card({ {addon.manifest.updater?.type !== "store" ? (
- {Messages.REPLUGGED_ADDON_NOT_REVIEWED_DESC.format({ + {intl.format(t.REPLUGGED_ADDON_NOT_REVIEWED_DESC, { type: label(type), })} @@ -422,14 +411,16 @@ function Cards({ await manager.enable(addon.manifest.id); clonedDisabled.delete(addon.manifest.id); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS, { name: addon.manifest.name, }), ); } catch (e) { logger.error("Error enabling", addon, e); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS.format({ type: label(type) }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_ENABLE_SUCCESS, { + name: label(type), + }), toast.Kind.FAILURE, ); } @@ -438,14 +429,16 @@ function Cards({ await manager.disable(addon.manifest.id); clonedDisabled.add(addon.manifest.id); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_DISABLE_SUCCESS, { name: addon.manifest.name, }), ); } catch (e) { logger.error("Error disabling", addon, e); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_DISABLE_FAILED.format({ type: label(type) }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_DISABLE_FAILED, { + name: label(type), + }), toast.Kind.FAILURE, ); } @@ -454,10 +447,12 @@ function Cards({ }} uninstall={async () => { const confirmation = await modal.confirm({ - title: Messages.REPLUGGED_ADDON_UNINSTALL.format({ name: addon.manifest.name }), - body: Messages.REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY.format({ type: label(type) }), - confirmText: Messages.APPLICATION_UNINSTALL_PROMPT_CONFIRM, - cancelText: Messages.CANCEL, + title: intl.format(t.REPLUGGED_ADDON_UNINSTALL, { name: addon.manifest.name }), + body: intl.format(t.REPLUGGED_ADDON_UNINSTALL_PROMPT_BODY, { type: label(type) }), + confirmText: intl.string( + discordT[runtimeHashMessageKey("APPLICATION_UNINSTALL_PROMPT_CONFIRM")], + ), + cancelText: intl.string(discordT[runtimeHashMessageKey("CANCEL")]), confirmColor: Button.Colors.RED, }); if (!confirmation) return; @@ -466,14 +461,14 @@ function Cards({ try { await manager.uninstall(addon.manifest.id); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_UNINSTALL_SUCCESS, { name: addon.manifest.name, }), ); } catch (e) { logger.error("Error uninstalling", addon, e); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_UNINSTALL_FAILED, { name: addon.manifest.name, }), toast.Kind.FAILURE, @@ -486,12 +481,16 @@ function Cards({ try { await manager.reload(addon.manifest.id); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS.format({ name: addon.manifest.name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS, { + name: addon.manifest.name, + }), ); } catch (e) { logger.error("Error reloading", addon, e); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_RELOAD_FAILED.format({ name: addon.manifest.name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_RELOAD_FAILED, { + name: addon.manifest.name, + }), toast.Kind.FAILURE, ); } @@ -550,7 +549,7 @@ export const Addons = (type: AddonType): React.ReactElement => { // Do not turn "(num)" into a single symbol fontVariantLigatures: "none", }}> - {Messages.REPLUGGED_ADDONS_TITLE_COUNT.format({ + {intl.format(t.REPLUGGED_ADDONS_TITLE_COUNT, { type: label(type, { caps: "title", plural: true }), count: unfilteredCount, })} @@ -561,7 +560,7 @@ export const Addons = (type: AddonType): React.ReactElement => { breadcrumbs={[ { id: `rp_${type}`, - label: Messages.REPLUGGED_ADDONS_TITLE_COUNT.format({ + label: intl.formatToPlainString(t.REPLUGGED_ADDONS_TITLE_COUNT, { type: label(type, { caps: "title", plural: true }), count: unfilteredCount, }), @@ -596,7 +595,7 @@ export const Addons = (type: AddonType): React.ReactElement => { {section === `rp_${type}` && (
@@ -605,14 +604,14 @@ export const Addons = (type: AddonType): React.ReactElement => { try { await loadMissing(type); toast.toast( - Messages.REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDONS_LOAD_MISSING_SUCCESS, { type: label(type, { plural: true }), }), ); } catch (e) { logger.error("Error loading missing", e); toast.toast( - Messages.REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED.format({ + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDONS_LOAD_MISSING_FAILED, { type: label(type, { plural: true }), }), toast.Kind.FAILURE, @@ -623,7 +622,7 @@ export const Addons = (type: AddonType): React.ReactElement => { }} color={Button.Colors.PRIMARY} look={Button.Looks.LINK}> - {Messages.REPLUGGED_ADDONS_LOAD_MISSING.format({ + {intl.format(t.REPLUGGED_ADDONS_LOAD_MISSING, { type: label(type, { caps: "title", plural: true }), })} @@ -631,7 +630,7 @@ export const Addons = (type: AddonType): React.ReactElement => { onClick={() => openExternal(`${generalSettings.get("apiUrl")}/store/${type}s`)} color={Button.Colors.PRIMARY} look={Button.Looks.LINK}> - {Messages.REPLUGGED_ADDON_BROWSE.format({ + {intl.format(t.REPLUGGED_ADDON_BROWSE, { type: label(type, { caps: "title", plural: true }), })} @@ -642,7 +641,9 @@ export const Addons = (type: AddonType): React.ReactElement => { {section === `rp_${type}` && unfilteredCount ? (
setSearch(e)} autoFocus={true} /> @@ -650,7 +651,7 @@ export const Addons = (type: AddonType): React.ReactElement => { ) : null} {section === `rp_${type}` && search && list?.length ? ( - {Messages.REPLUGGED_LIST_RESULTS.format({ count: list.length })} + {intl.format(t.REPLUGGED_LIST_RESULTS, { count: list.length })} ) : null} {section === `rp_${type}` ? ( @@ -668,8 +669,8 @@ export const Addons = (type: AddonType): React.ReactElement => { ) : list ? ( {unfilteredCount - ? Messages.REPLUGGED_NO_ADDON_RESULTS.format({ type: label(type, { plural: true }) }) - : Messages.REPLUGGED_NO_ADDONS_INSTALLED.format({ + ? intl.format(t.REPLUGGED_NO_ADDON_RESULTS, { type: label(type, { plural: true }) }) + : intl.format(t.REPLUGGED_NO_ADDONS_INSTALLED, { type: label(type, { plural: true }), })} diff --git a/src/renderer/coremods/settings/pages/General.tsx b/src/renderer/coremods/settings/pages/General.tsx index ca98f3579..8ca0bdd00 100644 --- a/src/renderer/coremods/settings/pages/General.tsx +++ b/src/renderer/coremods/settings/pages/General.tsx @@ -1,4 +1,5 @@ import { modal, toast } from "@common"; +import { intl } from "@common/i18n"; import React from "@common/react"; import { Button, @@ -11,12 +12,12 @@ import { Text, TextInput, } from "@components"; +import { WEBSITE_URL } from "src/constants"; +import { t } from "src/renderer/modules/i18n"; +import { type GeneralSettings, defaultSettings } from "src/types"; import * as settings from "../../../apis/settings"; import * as util from "../../../util"; -import { Messages } from "@common/i18n"; -import { type GeneralSettings, defaultSettings } from "src/types"; import { initWs, socket } from "../../devCompanion"; -import { WEBSITE_URL } from "src/constants"; export const generalSettings = await settings.init( "dev.replugged.Settings", @@ -37,9 +38,9 @@ function restartModal(doRelaunch = false, onConfirm?: () => void, onCancel?: () const restart = doRelaunch ? relaunch : reload; void modal .confirm({ - title: Messages.REPLUGGED_SETTINGS_RESTART_TITLE, - body: Messages.REPLUGGED_SETTINGS_RESTART, - confirmText: Messages.REPLUGGED_RESTART, + title: intl.string(t.REPLUGGED_SETTINGS_RESTART_TITLE), + body: intl.string(t.REPLUGGED_SETTINGS_RESTART), + confirmText: intl.string(t.REPLUGGED_RESTART), confirmColor: Button.Colors.RED, onConfirm, onCancel, @@ -86,35 +87,35 @@ export const General = (): React.ReactElement => { return ( <> - {Messages.REPLUGGED_GENERAL_SETTINGS} + {intl.string(t.REPLUGGED_GENERAL_SETTINGS)} - {Messages.REPLUGGED_SETTINGS_BADGES} + note={intl.string(t.REPLUGGED_SETTINGS_BADGES_DESC)}> + {intl.string(t.REPLUGGED_SETTINGS_BADGES)} - {Messages.REPLUGGED_SETTINGS_ADDON_EMBEDS} + note={intl.string(t.REPLUGGED_SETTINGS_ADDON_EMBEDS_DESC)}> + {intl.string(t.REPLUGGED_SETTINGS_ADDON_EMBEDS)} - {Messages.REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY} + note={intl.string(t.REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY_DESC)}> + {intl.string(t.REPLUGGED_SETTINGS_QUICKCSS_AUTO_APPLY)} + title={intl.string(t.REPLUGGED_SETTINGS_ADVANCED)} + note={intl.string(t.REPLUGGED_SETTINGS_ADVANCED_DESC)}> { expOnChange(value); restartModal(false); }} - note={Messages.REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC.format()}> - {Messages.REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS} + note={intl.format(t.REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS_DESC, {})}> + {intl.string(t.REPLUGGED_SETTINGS_DISCORD_EXPERIMENTS)} { .catch(() => { rdtOnChange(false); // Disable if failed toast.toast( - Messages.REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED, + intl.string(t.REPLUGGED_SETTINGS_REACT_DEVTOOLS_FAILED), toast.Kind.FAILURE, ); }); @@ -156,18 +157,18 @@ export const General = (): React.ReactElement => { restartModal(true); } }} - note={Messages.REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC.format()}> - {Messages.REPLUGGED_SETTINGS_REACT_DEVTOOLS} + note={intl.format(t.REPLUGGED_SETTINGS_REACT_DEVTOOLS_DESC, {})}> + {intl.string(t.REPLUGGED_SETTINGS_REACT_DEVTOOLS)} { socket?.close(1000, "Reconnecting"); initWs(true); }}> - {Messages.REPLUGGED_SETTINGS_DEV_COMPANION} + {intl.string(t.REPLUGGED_SETTINGS_DEV_COMPANION)} diff --git a/src/renderer/coremods/settings/pages/QuickCSS.tsx b/src/renderer/coremods/settings/pages/QuickCSS.tsx index daef371e9..dae21f8c8 100644 --- a/src/renderer/coremods/settings/pages/QuickCSS.tsx +++ b/src/renderer/coremods/settings/pages/QuickCSS.tsx @@ -1,14 +1,16 @@ +import { css } from "@codemirror/lang-css"; +import { EditorState } from "@codemirror/state"; import { React, toast } from "@common"; -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; +import { Button, Divider, Flex, Text } from "@components"; +import { webpack } from "@replugged"; import { EditorView, basicSetup } from "codemirror"; -import { EditorState } from "@codemirror/state"; -import { css } from "@codemirror/lang-css"; +import { t } from "src/renderer/modules/i18n"; import { githubDark, githubLight } from "./codemirror-github"; -import { webpack } from "@replugged"; -import { Button, Divider, Flex, Text } from "@components"; -import "./QuickCSS.css"; import { generalSettings } from "./General"; +import "./QuickCSS.css"; + interface UseCodeMirrorOptions { value?: string; onChange?: (code: string) => unknown; @@ -121,7 +123,7 @@ export const QuickCSS = (): React.ReactElement => { const reload = (): void => window.replugged.quickCSS.reload(); const reloadAndToast = (): void => { reload(); - toast.toast(Messages.REPLUGGED_TOAST_QUICKCSS_RELOAD); + toast.toast(intl.string(t.REPLUGGED_TOAST_QUICKCSS_RELOAD)); }; React.useEffect(() => { @@ -172,16 +174,18 @@ export const QuickCSS = (): React.ReactElement => { return ( <> - {Messages.REPLUGGED_QUICKCSS} + {intl.string(t.REPLUGGED_QUICKCSS)}
{autoApply ? null : ( - + )}
diff --git a/src/renderer/coremods/settings/pages/Updater.tsx b/src/renderer/coremods/settings/pages/Updater.tsx index 9473d39c7..a799f8250 100644 --- a/src/renderer/coremods/settings/pages/Updater.tsx +++ b/src/renderer/coremods/settings/pages/Updater.tsx @@ -1,5 +1,5 @@ import { toast } from "@common"; -import i18n, { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import React from "@common/react"; import { Button, Divider, Flex, Notice, SliderItem, SwitchItem, Text, Tooltip } from "@components"; import { Logger } from "@replugged"; @@ -13,9 +13,11 @@ import { installUpdate, updaterSettings, } from "src/renderer/managers/updater"; +import { t } from "src/renderer/modules/i18n"; import { sleep, useSetting, useSettingArray } from "src/renderer/util"; import Icons from "../icons"; import { getAddonType, label } from "./Addons"; + import "./Updater.css"; const logger = Logger.coremod("Settings:Updater"); @@ -72,9 +74,12 @@ export const Updater = (): React.ReactElement => { setUpdatesAvailable(newUpdates); if (newUpdates.length > previousUpdates.length) { const count = newUpdates.length - previousUpdates.length; - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_NEW.format({ count }), toast.Kind.SUCCESS); + toast.toast( + intl.formatToPlainString(t.REPLUGGED_UPDATES_TOAST_NEW, { count }), + toast.Kind.SUCCESS, + ); } else { - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_NO_NEW, toast.Kind.SUCCESS); + toast.toast(intl.string(t.REPLUGGED_UPDATES_TOAST_NO_NEW), toast.Kind.SUCCESS); } }; @@ -85,9 +90,9 @@ export const Updater = (): React.ReactElement => { const statuses = await Promise.allSettled(Object.values(promises)); const didAllSucceed = statuses.every((s) => s.status === "fulfilled" && s.value); if (didAllSucceed) { - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_SUCCESS_ALL, toast.Kind.SUCCESS); + toast.toast(intl.string(t.REPLUGGED_UPDATES_TOAST_SUCCESS_ALL), toast.Kind.SUCCESS); } else { - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_FAILED_ALL, toast.Kind.FAILURE); + toast.toast(intl.string(t.REPLUGGED_UPDATES_TOAST_FAILED_ALL), toast.Kind.FAILURE); } }; @@ -97,9 +102,9 @@ export const Updater = (): React.ReactElement => { setUpdatePromises((prev) => ({ ...prev, [id]: promise })); const status = await promise.catch(() => false); if (status) { - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_SUCCESS_ONE, toast.Kind.SUCCESS); + toast.toast(intl.string(t.REPLUGGED_UPDATES_TOAST_SUCCESS_ONE), toast.Kind.SUCCESS); } else { - toast.toast(Messages.REPLUGGED_UPDATES_TOAST_FAILED_ONE, toast.Kind.FAILURE); + toast.toast(intl.string(t.REPLUGGED_UPDATES_TOAST_FAILED_ONE), toast.Kind.FAILURE); } }; @@ -110,18 +115,18 @@ export const Updater = (): React.ReactElement => { return ( <> - {Messages.REPLUGGED_UPDATES_UPDATER} + {intl.string(t.REPLUGGED_UPDATES_UPDATER)} - {Messages.REPLUGGED_UPDATES_OPTS_AUTO} + note={intl.string(t.REPLUGGED_UPDATES_OPTS_AUTO_DESC)}> + {intl.string(t.REPLUGGED_UPDATES_OPTS_AUTO)} { @@ -136,12 +141,12 @@ export const Updater = (): React.ReactElement => { return label; }} stickToMarkers={true}> - {Messages.REPLUGGED_UPDATES_OPTS_INTERVAL} + {intl.string(t.REPLUGGED_UPDATES_OPTS_INTERVAL)} {isRepluggedDev && (
- {Messages.REPLUGGED_DEVELOPER_MODE_WARNING.format({ + {intl.format(t.REPLUGGED_DEVELOPER_MODE_WARNING, { url: "https://replugged.dev/download", })} @@ -154,13 +159,13 @@ export const Updater = (): React.ReactElement => { {updatesAvailable.length - ? Messages.REPLUGGED_UPDATES_AVAILABLE.format({ count: updatesAvailable.length }) - : Messages.REPLUGGED_UPDATES_UP_TO_DATE} + ? intl.format(t.REPLUGGED_UPDATES_AVAILABLE, { count: updatesAvailable.length }) + : intl.string(t.REPLUGGED_UPDATES_UP_TO_DATE)} {lastChecked ? ( - {Messages.REPLUGGED_UPDATES_LAST_CHECKED.format({ - date: new Date(lastChecked).toLocaleString(i18n.getLocale()), + {intl.format(t.REPLUGGED_UPDATES_LAST_CHECKED, { + date: new Date(lastChecked).toLocaleString(intl.currentLocale), })} ) : null} @@ -172,11 +177,11 @@ export const Updater = (): React.ReactElement => { disabled={isAnyUpdating || isAnyComplete} color={checking ? Button.Colors.PRIMARY : Button.Colors.BRAND} submitting={checking}> - {Messages.REPLUGGED_UPDATES_CHECK} + {intl.string(t.REPLUGGED_UPDATES_CHECK)} ) : isAllComplete && didInstallAll ? ( ) : ( )} @@ -220,8 +225,8 @@ export const Updater = (): React.ReactElement => { {sourceLink ? ( @@ -231,7 +236,7 @@ export const Updater = (): React.ReactElement => { ) : null} - {Messages.REPLUGGED_UPDATES_UPDATE_TO.format({ version: `v${update.version}` })} + {intl.format(t.REPLUGGED_UPDATES_UPDATE_TO, { version: `v${update.version}` })}
{update.available ? ( @@ -239,18 +244,18 @@ export const Updater = (): React.ReactElement => { onClick={() => installOne(update.id)} color={Button.Colors.PRIMARY} submitting={isUpdating}> - {Messages.REPLUGGED_UPDATES_UPDATE} + {intl.string(t.REPLUGGED_UPDATES_UPDATE)} ) : didInstallAll ? null : ( )} {manifest.type !== "replugged" && manifest.updater?.type !== "store" ? (
- {Messages.REPLUGGED_ADDON_NOT_REVIEWED_DESC.format({ + {intl.format(t.REPLUGGED_ADDON_NOT_REVIEWED_DESC, { type: label(getAddonType(manifest.type)), })} diff --git a/src/renderer/coremods/watcher/index.ts b/src/renderer/coremods/watcher/index.ts index 6ce36e572..b03614c54 100644 --- a/src/renderer/coremods/watcher/index.ts +++ b/src/renderer/coremods/watcher/index.ts @@ -1,6 +1,7 @@ -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import toast from "@common/toast"; import { Logger, plugins, themes } from "@replugged"; +import { t } from "src/renderer/modules/i18n"; import { registerRPCCommand } from "../rpc"; const logger = Logger.coremod("Watcher"); @@ -40,7 +41,9 @@ export function start(): void { } toast.toast( - Messages.REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS.format({ name: addon.manifest.name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS, { + name: addon.manifest.name, + }), ); return { @@ -50,12 +53,12 @@ export function start(): void { logger.error(`Failed to reload ${addon.manifest.id}`, err); toast.toast( - Messages.REPLUGGED_TOAST_ADDON_RELOAD_FAILED.format({ name: addon.manifest.name }), + intl.formatToPlainString(t.REPLUGGED_TOAST_ADDON_RELOAD_FAILED, { + name: addon.manifest.name, + }), toast.Kind.FAILURE, ); - toast.toast(Messages.REPLUGGED_TOAST_ADDON_RELOAD_SUCCESS); - return { success: false, error: "RELOAD_FAILED", diff --git a/src/renderer/coremods/welcome/index.ts b/src/renderer/coremods/welcome/index.ts index bbda7df51..fbc3d795c 100644 --- a/src/renderer/coremods/welcome/index.ts +++ b/src/renderer/coremods/welcome/index.ts @@ -1,14 +1,15 @@ -import { generalSettings } from "../settings/pages/General"; +import { intl } from "@common/i18n"; import { notices, util } from "@replugged"; -import { Messages } from "@common/i18n"; import { DISCORD_INVITE } from "src/constants"; +import { t } from "src/renderer/modules/i18n"; +import { generalSettings } from "../settings/pages/General"; export function start(): void { if (!generalSettings.get("showWelcomeNoticeOnOpen")) return; notices.sendAnnouncement({ - message: Messages.REPLUGGED_NOTICES_WELCOME_NEW_USER, + message: intl.string(t.REPLUGGED_NOTICES_WELCOME_NEW_USER), button: { - text: Messages.REPLUGGED_NOTICES_JOIN_SERVER_BUTTON, + text: intl.string(t.REPLUGGED_NOTICES_JOIN_SERVER_BUTTON), onClick: () => { void util.goToOrJoinServer(DISCORD_INVITE); generalSettings.set("showWelcomeNoticeOnOpen", false); diff --git a/src/renderer/managers/updater.ts b/src/renderer/managers/updater.ts index 5123c6b58..4c4335173 100644 --- a/src/renderer/managers/updater.ts +++ b/src/renderer/managers/updater.ts @@ -1,12 +1,13 @@ -import { init } from "../apis/settings"; -import * as pluginManager from "./plugins"; -import * as themeManager from "./themes"; -import { Logger } from "../modules/logger"; +import * as common from "@common"; import type { RepluggedPlugin, RepluggedTheme } from "src/types"; import { AnyAddonManifest, RepluggedEntity } from "src/types/addon"; import notices from "../apis/notices"; -import * as common from "@common"; +import { init } from "../apis/settings"; +import { t } from "../modules/i18n"; +import { Logger } from "../modules/logger"; import { waitForProps } from "../modules/webpack"; +import * as pluginManager from "./plugins"; +import * as themeManager from "./themes"; const logger = Logger.coremod("Updater"); @@ -289,22 +290,22 @@ async function autoUpdateCheck(): Promise { logger.log("Showing update notification"); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - const Messages = common.i18n?.Messages; // Weird hack due to circular dependency + const intl = common.i18n?.intl; // Weird hack due to circular dependency const { open } = await openSettingsModPromise; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!Messages) { - logger.error("Messages missing, cannot show update notification"); + if (!intl) { + logger.error("intl missing, cannot show update notification"); return; } clearActiveNotification?.(); clearActiveNotification = notices.sendAnnouncement({ - message: Messages.REPLUGGED_UPDATES_AVAILABLE.format({ + message: intl.format(t.REPLUGGED_UPDATES_AVAILABLE, { count: newUpdateCount, }), button: { - text: Messages.REPLUGGED_VIEW_UPDATES.format({ + text: intl.formatToPlainString(t.REPLUGGED_VIEW_UPDATES, { count: newUpdateCount, }), onClick: () => open("rp-updater"), diff --git a/src/renderer/modules/common/i18n.ts b/src/renderer/modules/common/i18n.ts index 866040bad..7c14e1ce2 100644 --- a/src/renderer/modules/common/i18n.ts +++ b/src/renderer/modules/common/i18n.ts @@ -1,21 +1,21 @@ -import { filters, waitForModule } from "../webpack"; -import type EventEmitter from "events"; - -import type SimpleMarkdown from "simple-markdown"; -import type { Primitive } from "type-fest"; - -type LocaleCallback = (locale?: string) => void; -type ProxyCallback = (context?: ProviderContext) => ProxyConstructor; - -interface Events { - locale: LocaleCallback[]; - newListener: (eventName?: "locale") => void; -} +import type { + FormatFunction, + IntlManager, + IntlMessageGetter, + TypedIntlMessageGetter, + astFormatter, + makeReactFormatter, + markdownFormatter, + stringFormatter, +} from "@discord/intl"; +import { waitForProps } from "../webpack"; + +type MessagesBinds = Record>; interface Locale { value: string; name: string; - localizedName: string; + localizedName: IntlMessageGetter; } interface Language { @@ -27,206 +27,34 @@ interface Language { enabledAPI?: boolean; } -interface ProviderContext { - messages: Messages; - defaultMessages: Messages; - locale: string; -} - -interface Provider { - _context: ProviderContext; - _createProxy: (context?: ProviderContext) => ProxyConstructor; - _getParsedMessages: ( - context: ProviderContext, - key?: string, - proxyCallback?: ProxyCallback, - ) => Message; - _parsedMessages: Messages; - refresh: (context: ProviderContext) => void; - getMessages: () => Messages; -} - -interface Formats { - number: Record<"currency" | "percent", Intl.NumberFormatOptions>; - date: Record<"short" | "medium" | "long" | "full", Intl.DateTimeFormatOptions>; - time: Record<"short" | "medium" | "long" | "full", Intl.DateTimeFormatOptions>; -} - -interface ASTSimpleFormat { - type: "numberFormat" | "dateFormat" | "timeFormat"; - style: string; -} - -interface ASTPluralFormat extends ASTPluralStyle { - ordinal: false; -} - -interface ASTSelectFormat { - type: "selectFormat"; - options: ASTOptionalFormatPattern[]; -} - -interface ASTSelectOrdinalFormat extends ASTPluralStyle { - ordinal: true; -} - -interface ASTOptionalFormatPattern { - type: "optionalFormatPattern"; - selector: string; - value: ASTMessageFormatPattern; -} - -interface ASTPluralStyle { - type: "pluralFormat"; - offset: number; - options: ASTOptionalFormatPattern[]; -} - -type ASTElementFormat = - | ASTSimpleFormat - | ASTPluralFormat - | ASTSelectOrdinalFormat - | ASTSelectFormat; - -interface ASTArgumentElement { - type: "argumentElement"; - id: string; - format?: ASTElementFormat; -} - -interface ASTMessageTextElement { - type: "messageTextElement"; - value: string; -} - -type ASTElement = ASTMessageTextElement | ASTArgumentElement; - -interface ASTMessageFormatPattern { - type: "messageFormatPattern"; - elements: ASTElement[]; -} - -interface LocaleData { - locale: string; - parentLocale?: string; - pluralRuleFunction: PluralFunction | undefined; -} - -interface ResolvedOptions { - locale?: string; -} - -type FormatXMLElementFn> = (parts: Array) => R; -type IntlMessageValues = Record>; - -interface IntlMessageFormatConstructor { - new ( - message: string | ASTMessageFormatPattern, - locales: string | string[], - formats: Formats | NestedObject, - ): IntlMessageFormat; - prototype: IntlMessageFormat; - - default: ( - message: string | ASTMessageFormatPattern, - locales: string | string[], - formats: Formats | NestedObject, - ) => IntlMessageFormat; - defaultLocale?: string; - formats: Formats; - - /* eslint-disable @typescript-eslint/naming-convention */ - __addLocaleData: (data: LocaleData) => void; - __localeData__: () => Record; - __parse: (message: string) => ASTMessageFormatPattern; - /* eslint-enable @typescript-eslint/naming-convention */ -} - -interface NestedObject { - [key: string]: string | NestedObject; -} - -type PluralFunction = (value?: number, useOrdinal?: boolean) => string; -type Pattern = string | ASTPluralFormat | ASTSelectFormat; - -interface IntlMessageFormat { - constructor: IntlMessageFormatConstructor; - - resolvedOptions: () => ResolvedOptions; - _compilePattern: ( - ast: ASTMessageFormatPattern, - locales: string | string[], - formats: Formats | NestedObject, - pluralFn: PluralFunction, - ) => Pattern[]; - _findPluralRuleFunction: (locale: string) => PluralFunction; - _format: (pattern: Pattern[], values: IntlMessageValues) => ASTMessageFormatPattern; - _mergeFormats: ( - defaults: Formats | NestedObject, - formats: NestedObject, - ) => Formats | NestedObject; - _resolveLocale: (locales: string | string[]) => string; - - format: (values?: IntlMessageValues) => string; - _locale: string; -} - -interface IntlMessageObject { - hasMarkdown: boolean; - intlMessage: IntlMessageFormat; - message: string; - astFormat: (values?: string | IntlMessageValues) => NestedObject; - format: (values?: IntlMessageValues) => string; - getContext: (values?: string | IntlMessageValues) => Record; - plainFormat: (values?: string | IntlMessageValues) => string; -} - -export type Message = string & IntlMessageObject; -type Messages = Record; - -export interface I18n extends EventEmitter { - Messages: Messages; - loadPromise: Promise; - _chosenLocale: string | undefined; - _events: Events; - _eventsCount: number; - _getMessages: (locale?: T) => T extends "en-US" ? Messages : Promise; - _getParsedMessages: ( - context: ProviderContext, - key?: string, - createProxy?: ProxyCallback, - ) => Message; - _handleNewListener: (eventName?: "locale") => void; - _languages: Language[]; - _maxListeners: number | undefined; - _provider: Provider; - _requestedLocale: string | undefined; - +export interface I18n { getAvailableLocales: () => Locale[]; - getDefaultLocale: () => string; getLanguages: () => Language[]; - getLocale: () => string; - getLocaleInfo: () => Language; - setLocale: (locale?: string) => void; - setUpdateRules: (rules: SimpleMarkdown.ParserRules) => void; - updateMessagesForExperiment: ( - locale: string, - callback: (messages?: Messages) => Messages, - ) => void; - _applyMessagesForLocale: ( - messages: Messages, - locale?: string, - defaultMessages?: Messages, - ) => void; - _fetchMessages: ( - locale?: T, - ) => T extends "en-US" ? Messages | Error : Promise; - _findMessages: (locale?: string) => Messages | Error; - _loadMessagesForLocale: (locale?: string) => Promise; -} - -const i18n = await waitForModule(filters.bySource(/getMessages:.{5,10}en-US/)); - -export const { Messages } = i18n; - -export default i18n; + getSystemLocale: (defaultLocale: string) => string; + international: MessagesBinds; + intl: IntlManager & { + format: FormatFunction>; + formatToPlainString: FormatFunction; + formatToMarkdownString: FormatFunction; + formatToParts: FormatFunction; + }; + t: MessagesBinds; +} + +export interface Hash { + runtimeHashMessageKey: (key: string) => string; +} + +const { getAvailableLocales, getLanguages, getSystemLocale, international, intl, t } = + await waitForProps("getAvailableLocales", "intl"); +const { runtimeHashMessageKey } = await waitForProps("runtimeHashMessageKey"); + +export { + getAvailableLocales, + getLanguages, + getSystemLocale, + international, + intl, + runtimeHashMessageKey, + t, +}; diff --git a/src/renderer/modules/common/index.ts b/src/renderer/modules/common/index.ts index 134403daf..b89dbd1e9 100644 --- a/src/renderer/modules/common/index.ts +++ b/src/renderer/modules/common/index.ts @@ -90,7 +90,7 @@ importTimeout("fluxHooks", import("./fluxHooks"), (mod) => (fluxHooks = mod.defa import type { I18n } from "./i18n"; export type { I18n }; export let i18n: I18n; -importTimeout("i18n", import("./i18n"), (mod) => (i18n = mod.default)); +importTimeout("i18n", import("./i18n"), (mod) => (i18n = mod)); import type { Modal } from "./modal"; export type { Modal }; diff --git a/src/renderer/modules/common/modal.ts b/src/renderer/modules/common/modal.ts index 58394d17d..752815573 100644 --- a/src/renderer/modules/common/modal.ts +++ b/src/renderer/modules/common/modal.ts @@ -28,8 +28,8 @@ interface ModalClasses { } interface AlertProps { - title?: string; - body?: string | React.ReactElement; + title?: React.ReactNode; + body?: React.ReactNode; confirmColor?: string; confirmText?: string; cancelText?: string; diff --git a/src/renderer/modules/components/ErrorBoundary.tsx b/src/renderer/modules/components/ErrorBoundary.tsx index 035a902ff..d9b37d6d8 100644 --- a/src/renderer/modules/components/ErrorBoundary.tsx +++ b/src/renderer/modules/components/ErrorBoundary.tsx @@ -1,7 +1,9 @@ -import { Messages } from "@common/i18n"; +import { intl } from "@common/i18n"; import React from "@common/react"; import { plugins } from "@replugged"; +import { t } from "../i18n"; import { Logger } from "../logger"; + import "./ErrorBoundary.css"; const logger = new Logger("Components", "ErrorBoundary"); @@ -90,13 +92,13 @@ export default class ErrorBoundary extends React.Component -

{Messages.REPLUGGED_SETTINGS_ERROR_HEADER}

+

{intl.string(t.REPLUGGED_SETTINGS_ERROR_HEADER)}

{pluginName && (

- {Messages.REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME?.format?.({ name: pluginName })} + {intl.format(t.REPLUGGED_SETTINGS_ERROR_PLUGIN_NAME, { name: pluginName })}

)} -

{Messages.REPLUGGED_SETTINGS_ERROR_SUB_HEADER}

+

{intl.string(t.REPLUGGED_SETTINGS_ERROR_SUB_HEADER)}

{error?.stack && ( }> diff --git a/src/renderer/modules/components/SwitchItem.tsx b/src/renderer/modules/components/SwitchItem.tsx index 0f9539451..0aa368eae 100644 --- a/src/renderer/modules/components/SwitchItem.tsx +++ b/src/renderer/modules/components/SwitchItem.tsx @@ -16,7 +16,7 @@ export type SwitchType = React.FC; interface SwitchItemProps { value?: boolean; onChange?: (value: boolean, event: React.ChangeEvent) => void; - note?: string; + note?: React.ReactNode; tooltipNote?: string; disabled?: boolean; disabledText?: string; diff --git a/src/renderer/modules/i18n.ts b/src/renderer/modules/i18n.ts index 88297050b..f12112b12 100644 --- a/src/renderer/modules/i18n.ts +++ b/src/renderer/modules/i18n.ts @@ -1,47 +1,25 @@ -import { i18n } from "@common"; -import type { RepluggedTranslations } from "../../types"; +import type { I18n } from "@common"; +import { loadAllMessagesInLocale } from "@discord/intl"; +import { waitForProps } from "@webpack"; +import { DEFAULT_LOCALE } from "src/constants"; +import messages from "../../../i18n/en-US.messages"; export let locale: string | undefined; -export const messages = new Map(); +export const t = messages; export async function load(): Promise { - loadAllStrings(await RepluggedNative.i18n.getStrings()); + const { intl } = await waitForProps("getAvailableLocales", "intl"); - locale = i18n._chosenLocale; + locale = intl.currentLocale || intl.defaultLocale || DEFAULT_LOCALE; - i18n.on("locale", (newLocale: string) => { + intl.onLocaleChange((newLocale) => { locale = newLocale; - void i18n.loadPromise.then(addRepluggedStrings); + addRepluggedStrings(); }); - - void i18n.loadPromise.then(addRepluggedStrings); - - addRepluggedStrings(); } export function addRepluggedStrings(): void { - const { messages: DiscordMessages, defaultMessages } = i18n._provider._context; - - i18n._applyMessagesForLocale( - Object.assign(DiscordMessages, messages.get(locale)), - locale, - Object.assign(defaultMessages, messages.get("en-US")), - ); -} - -export function loadAllStrings(strings: RepluggedTranslations): void { - Object.keys(strings).forEach((locale) => loadStrings(locale, strings[locale])); -} - -export function loadStrings(locale: string, strings: RepluggedTranslations): void { - if (!messages.get(locale)) { - messages.set(locale, strings); - } else { - messages.set(locale, { - ...messages.get(locale), - ...strings, - }); + if (locale) { + void loadAllMessagesInLocale(locale); } - - addRepluggedStrings(); } diff --git a/src/types/discord.ts b/src/types/discord.ts index 1ac2a9380..08c3f682d 100644 --- a/src/types/discord.ts +++ b/src/types/discord.ts @@ -1,5 +1,3 @@ -import { Message } from "@common/i18n"; - export enum ApplicationCommandOptionType { //Subcommand = 1, //SubcommandGroup = 2, @@ -25,8 +23,8 @@ interface BaseCommandOptions { } export interface CommandChoices { - name: string | Message; - displayName: string | Message; + name: string; + displayName: string; value: string | number; } diff --git a/src/types/index.ts b/src/types/index.ts index e614b2c92..04f5e4185 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,13 +1,12 @@ import type { WebContents } from "electron"; -import type { ConnectedAccount } from "./discord"; import type { PluginManifest, ThemeManifest } from "./addon"; +import type { ConnectedAccount } from "./discord"; export type RepluggedWebContents = WebContents & { originalPreload?: string; }; export enum RepluggedIpcChannels { - GET_I18N_STRINGS = "REPLUGGED_GET_I18N_STRINGS", GET_DISCORD_PRELOAD = "REPLUGGED_GET_DISCORD_PRELOAD", GET_QUICK_CSS = "REPLUGGED_GET_QUICK_CSS", SAVE_QUICK_CSS = "REPLUGGED_SAVE_QUICK_CSS", @@ -37,7 +36,7 @@ export enum RepluggedIpcChannels { export interface RepluggedAnnouncement { _dismissed?: boolean; - message: string; + message: React.ReactNode; color?: string; onClose?: () => void; button?: { @@ -74,17 +73,13 @@ export interface RepluggedPlugin { hasCSS: boolean; } -export interface RepluggedTranslations { - [key: string]: RepluggedTranslations; -} - +export type { AnyAddonManifest, PluginExports, PluginManifest, ThemeManifest } from "./addon"; +export * from "./coremods/commands"; +export * from "./coremods/contextMenu"; +export * from "./coremods/message"; +export * from "./coremods/settings"; export * from "./discord"; -export type { PluginExports, PluginManifest, ThemeManifest, AnyAddonManifest } from "./addon"; +export * from "./installer"; export * from "./settings"; export * from "./util"; export * from "./webpack"; -export * from "./installer"; -export * from "./coremods/message"; -export * from "./coremods/settings"; -export * from "./coremods/contextMenu"; -export * from "./coremods/commands";