From 2fddd17eab2d8b4b2af3b593cf8f15a9fcb55579 Mon Sep 17 00:00:00 2001 From: mituritsyn Date: Sun, 8 Feb 2026 12:45:23 +0100 Subject: [PATCH 1/5] Update .gitignore and sidebar configuration; add glossary file --- .gitignore | 2 ++ docs/.vitepress/config/ru.ts | 10 +++++----- docs/ru/{community => intro}/glossarium.md | 8 ++++---- 3 files changed, 11 insertions(+), 9 deletions(-) rename docs/ru/{community => intro}/glossarium.md (94%) diff --git a/.gitignore b/.gitignore index 228a643c..770f726e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ docs/.vitepress/cache docs/.vitepress/dist yarn-error.log + +public/sitemap.xml \ No newline at end of file diff --git a/docs/.vitepress/config/ru.ts b/docs/.vitepress/config/ru.ts index 7657182c..b5a75878 100644 --- a/docs/.vitepress/config/ru.ts +++ b/docs/.vitepress/config/ru.ts @@ -38,9 +38,10 @@ function sidebar(): DefaultTheme.SidebarItem[] { return [ { text: "Введение", - collapsed: true, + collapsed: false, items: [ { text: "Вход в хобби", link: "/ru/intro/beginning" }, + { text: "Глоссарий", link: "/ru/intro/glossarium" }, { text: "Стили полета", link: "/ru/intro/flightstyles" }, { text: "Симулятор", link: "/ru/intro/sim" }, { text: "Аппаратура", link: "/ru/intro/tx" }, @@ -50,7 +51,7 @@ function sidebar(): DefaultTheme.SidebarItem[] { }, { text: "Покупки", - collapsed: false, + collapsed: true, items: [ { text: "Must have вещи для хоббистов", link: "/ru/shop/nessesary" }, { text: "Для самолетчиков", link: "/ru/shop/airplanes" }, @@ -60,9 +61,8 @@ function sidebar(): DefaultTheme.SidebarItem[] { }, { text: "Сообщество", - collapsed: false, + collapsed: true, items: [ - { text: "Глоссарий", link: "/ru/community/glossarium" }, { text: "Чаты", link: "/ru/community/chats" }, { text: "Полезные материалы", link: "/ru/community/usefull" }, { text: "Программное обеспечение", link: "/ru/community/software" }, @@ -74,7 +74,7 @@ function sidebar(): DefaultTheme.SidebarItem[] { }, { text: "Настройки", - collapsed: false, + collapsed: true, items: [ { text: "Вопросы новичков", link: "/ru/settings/FAQ" }, { text: "Рейты", link: "/ru/settings/rates" }, diff --git a/docs/ru/community/glossarium.md b/docs/ru/intro/glossarium.md similarity index 94% rename from docs/ru/community/glossarium.md rename to docs/ru/intro/glossarium.md index 27ba7b1a..f124353f 100644 --- a/docs/ru/community/glossarium.md +++ b/docs/ru/intro/glossarium.md @@ -17,13 +17,13 @@ | FPV | first person view | | OSD | on screen display | | KV | количество оборотов на вольт | -| TVL | число телевизионных линий | +| TVL | число телевизионных линий - характеристика аналоговых камер, обозначает разрешение камеры | | сетап, билд, сборка | одним словом коптер | | стек, стак | башня из регулятора 4 в 1 с полетником, иногда с видеопередатчиком | | канопа | canopy - верхняя часть рамы, как правило пластиковая, защищающая электронику | -| маунт | крепеж для камеры | -| tx | передатчик, передает сигнал | -| rx | приемник, принимает сигнал | +| маунт | крепеж чего-либо, обычно камеры, антенны и т.д. | +| tx | передатчик, передает сигнал (может быть как отдельным устройством так и передающим пином на плате) | +| rx | приемник, принимает сигнал (может быть как отдельным устройством так и передающим пином на плате)| | втх, vtx | видеопередатчик | | рег, esc | регулятор | | приемыш | приемник | From d20552e1ad2d16351299db60a5793531e0892cbb Mon Sep 17 00:00:00 2001 From: mituritsyn Date: Sun, 8 Feb 2026 12:48:41 +0100 Subject: [PATCH 2/5] update packages --- package.json | 8 +- yarn.lock | 2685 ++++++++++++++++++++++++-------------------------- 2 files changed, 1284 insertions(+), 1409 deletions(-) diff --git a/package.json b/package.json index 50d94451..b33a93c3 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,11 @@ "husky": "^8.0.0", "lint-staged": "^13.1.0", "prettier": "^2.8.3", - "sass": "^1.58.0" + "sass": "^1.58.0", + "typescript": "^5.9.0" }, "scripts": { + "prebuild": "node scripts/generate-sitemap.cjs", "dev": "vitepress dev docs", "build": "vitepress build docs", "preview": "vitepress preview docs", @@ -30,8 +32,6 @@ "prepare": "husky install" }, "dependencies": { - "@docsearch/js": "^3.3.2", - "typescript": "^4.9.4", - "vitepress": "^1.3.4" + "vitepress": "^1.6.0" } } diff --git a/yarn.lock b/yarn.lock index 59bc34fc..7d57ec6b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,348 +2,206 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.7.4": - version "1.7.4" - resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz" - integrity sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg== - dependencies: - "@algolia/autocomplete-shared" "1.7.4" - -"@algolia/autocomplete-core@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" - integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" - "@algolia/autocomplete-shared" "1.9.3" - -"@algolia/autocomplete-plugin-algolia-insights@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" - integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== - dependencies: - "@algolia/autocomplete-shared" "1.9.3" - -"@algolia/autocomplete-preset-algolia@1.7.4": - version "1.7.4" - resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.4.tgz" - integrity sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ== - dependencies: - "@algolia/autocomplete-shared" "1.7.4" - -"@algolia/autocomplete-preset-algolia@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" - integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== - dependencies: - "@algolia/autocomplete-shared" "1.9.3" - -"@algolia/autocomplete-shared@1.7.4": - version "1.7.4" - resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.4.tgz" - integrity sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg== - -"@algolia/autocomplete-shared@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" - integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== - -"@algolia/cache-browser-local-storage@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.3.tgz" - integrity sha512-hWH1yCxgG3+R/xZIscmUrWAIBnmBFHH5j30fY/+aPkEZWt90wYILfAHIOZ1/Wxhho5SkPfwFmT7ooX2d9JeQBw== - dependencies: - "@algolia/cache-common" "4.14.3" - -"@algolia/cache-browser-local-storage@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz#97bc6d067a9fd932b9c922faa6b7fd6e546e1348" - integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== - dependencies: - "@algolia/cache-common" "4.24.0" - -"@algolia/cache-common@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.3.tgz" - integrity sha512-oZJofOoD9FQOwiGTzyRnmzvh3ZP8WVTNPBLH5xU5JNF7drDbRT0ocVT0h/xB2rPHYzOeXRrLaQQBwRT/CKom0Q== - -"@algolia/cache-common@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.24.0.tgz#81a8d3a82ceb75302abb9b150a52eba9960c9744" - integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== - -"@algolia/cache-in-memory@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.3.tgz" - integrity sha512-ES0hHQnzWjeioLQf5Nq+x1AWdZJ50znNPSH3puB/Y4Xsg4Av1bvLmTJe7SY2uqONaeMTvL0OaVcoVtQgJVw0vg== - dependencies: - "@algolia/cache-common" "4.14.3" - -"@algolia/cache-in-memory@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz#ffcf8872f3a10cb85c4f4641bdffd307933a6e44" - integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== - dependencies: - "@algolia/cache-common" "4.24.0" - -"@algolia/client-account@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.3.tgz" - integrity sha512-PBcPb0+f5Xbh5UfLZNx2Ow589OdP8WYjB4CnvupfYBrl9JyC1sdH4jcq/ri8osO/mCZYjZrQsKAPIqW/gQmizQ== - dependencies: - "@algolia/client-common" "4.14.3" - "@algolia/client-search" "4.14.3" - "@algolia/transporter" "4.14.3" - -"@algolia/client-account@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.24.0.tgz#eba7a921d828e7c8c40a32d4add21206c7fe12f1" - integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-analytics@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.3.tgz" - integrity sha512-eAwQq0Hb/aauv9NhCH5Dp3Nm29oFx28sayFN2fdOWemwSeJHIl7TmcsxVlRsO50fsD8CtPcDhtGeD3AIFLNvqw== - dependencies: - "@algolia/client-common" "4.14.3" - "@algolia/client-search" "4.14.3" - "@algolia/requester-common" "4.14.3" - "@algolia/transporter" "4.14.3" - -"@algolia/client-analytics@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.24.0.tgz#9d2576c46a9093a14e668833c505ea697a1a3e30" - integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-common@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.3.tgz" - integrity sha512-jkPPDZdi63IK64Yg4WccdCsAP4pHxSkr4usplkUZM5C1l1oEpZXsy2c579LQ0rvwCs5JFmwfNG4ahOszidfWPw== - dependencies: - "@algolia/requester-common" "4.14.3" - "@algolia/transporter" "4.14.3" - -"@algolia/client-common@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.24.0.tgz#77c46eee42b9444a1d1c1583a83f7df4398a649d" - integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== - dependencies: - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-personalization@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.3.tgz" - integrity sha512-UCX1MtkVNgaOL9f0e22x6tC9e2H3unZQlSUdnVaSKpZ+hdSChXGaRjp2UIT7pxmPqNCyv51F597KEX5WT60jNg== - dependencies: - "@algolia/client-common" "4.14.3" - "@algolia/requester-common" "4.14.3" - "@algolia/transporter" "4.14.3" - -"@algolia/client-personalization@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.24.0.tgz#8b47789fb1cb0f8efbea0f79295b7c5a3850f6ae" - integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-search@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.3.tgz" - integrity sha512-I2U7xBx5OPFdPLA8AXKUPPxGY3HDxZ4r7+mlZ8ZpLbI8/ri6fnu6B4z3wcL7sgHhDYMwnAE8Xr0AB0h3Hnkp4A== - dependencies: - "@algolia/client-common" "4.14.3" - "@algolia/requester-common" "4.14.3" - "@algolia/transporter" "4.14.3" - -"@algolia/client-search@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.24.0.tgz#75e6c02d33ef3e0f34afd9962c085b856fc4a55f" - integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/logger-common@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.3.tgz" - integrity sha512-kUEAZaBt/J3RjYi8MEBT2QEexJR2kAE2mtLmezsmqMQZTV502TkHCxYzTwY2dE7OKcUTxi4OFlMuS4GId9CWPw== - -"@algolia/logger-common@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.24.0.tgz#28d439976019ec0a46ba7a1a739ef493d4ef8123" - integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== - -"@algolia/logger-console@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.3.tgz" - integrity sha512-ZWqAlUITktiMN2EiFpQIFCJS10N96A++yrexqC2Z+3hgF/JcKrOxOdT4nSCQoEPvU4Ki9QKbpzbebRDemZt/hw== - dependencies: - "@algolia/logger-common" "4.14.3" - -"@algolia/logger-console@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.24.0.tgz#c6ff486036cd90b81d07a95aaba04461da7e1c65" - integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== - dependencies: - "@algolia/logger-common" "4.24.0" - -"@algolia/recommend@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.24.0.tgz#8a3f78aea471ee0a4836b78fd2aad4e9abcaaf34" - integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== - dependencies: - "@algolia/cache-browser-local-storage" "4.24.0" - "@algolia/cache-common" "4.24.0" - "@algolia/cache-in-memory" "4.24.0" - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/logger-console" "4.24.0" - "@algolia/requester-browser-xhr" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/requester-node-http" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/requester-browser-xhr@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.3.tgz" - integrity sha512-AZeg2T08WLUPvDncl2XLX2O67W5wIO8MNaT7z5ii5LgBTuk/rU4CikTjCe2xsUleIZeFl++QrPAi4Bdxws6r/Q== - dependencies: - "@algolia/requester-common" "4.14.3" - -"@algolia/requester-browser-xhr@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz#313c5edab4ed73a052e75803855833b62dd19c16" - integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== - dependencies: - "@algolia/requester-common" "4.24.0" - -"@algolia/requester-common@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.3.tgz" - integrity sha512-RrRzqNyKFDP7IkTuV3XvYGF9cDPn9h6qEDl595lXva3YUk9YSS8+MGZnnkOMHvjkrSCKfoLeLbm/T4tmoIeclw== - -"@algolia/requester-common@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.24.0.tgz#1c60c198031f48fcdb9e34c4057a3ea987b9a436" - integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== - -"@algolia/requester-node-http@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.3.tgz" - integrity sha512-O5wnPxtDRPuW2U0EaOz9rMMWdlhwP0J0eSL1Z7TtXF8xnUeeUyNJrdhV5uy2CAp6RbhM1VuC3sOJcIR6Av+vbA== - dependencies: - "@algolia/requester-common" "4.14.3" - -"@algolia/requester-node-http@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz#4461593714031d02aa7da221c49df675212f482f" - integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== - dependencies: - "@algolia/requester-common" "4.24.0" - -"@algolia/transporter@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.3.tgz" - integrity sha512-2qlKlKsnGJ008exFRb5RTeTOqhLZj0bkMCMVskxoqWejs2Q2QtWmsiH98hDfpw0fmnyhzHEt0Z7lqxBYp8bW2w== - dependencies: - "@algolia/cache-common" "4.14.3" - "@algolia/logger-common" "4.14.3" - "@algolia/requester-common" "4.14.3" - -"@algolia/transporter@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.24.0.tgz#226bb1f8af62430374c1972b2e5c8580ab275102" - integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== - dependencies: - "@algolia/cache-common" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/requester-common" "4.24.0" - -"@babel/helper-string-parser@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" - integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== - -"@babel/helper-validator-identifier@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" - integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== - -"@babel/parser@^7.25.3": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590" - integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw== - dependencies: - "@babel/types" "^7.25.7" - -"@babel/types@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b" - integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ== - dependencies: - "@babel/helper-string-parser" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - to-fast-properties "^2.0.0" - -"@docsearch/css@3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.3.2.tgz" - integrity sha512-dctFYiwbvDZkksMlsmc7pj6W6By/EjnVXJq5TEPd05MwQe+dcdHJgaIn1c8wfsucxHpIsdrUcgSkACHCq6aIhw== - -"@docsearch/css@3.6.2", "@docsearch/css@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.2.tgz#ccd9c83dbfeaf34efe4e3547ee596714ae7e5891" - integrity sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw== - -"@docsearch/js@^3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.3.2.tgz#fd7d5dfdd79abfe2bc8011b119215e0b08e33138" - integrity sha512-k2yiB9attFvKoiYswrRtKhIO+qHuzAj1FHYfFWrKz3wSzB2G6s/7EZL9Rf6iytUo1Ok00LUj2C6mWoOnsUTkxg== - dependencies: - "@docsearch/react" "3.3.2" - preact "^10.0.0" - -"@docsearch/js@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.2.tgz#000d7d255e8387e7c5b82c7b87d3060398e1605d" - integrity sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA== - dependencies: - "@docsearch/react" "3.6.2" +"@algolia/abtesting@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.3.0.tgz#3fade769bf5b03244baaee8034b83e2b49f8e86c" + integrity sha512-KqPVLdVNfoJzX5BKNGM9bsW8saHeyax8kmPFXul5gejrSPN3qss7PgsFH5mMem7oR8tvjvNkia97ljEYPYCN8Q== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/autocomplete-core@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz#2c410baa94a47c5c5f56ed712bb4a00ebe24088b" + integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" + "@algolia/autocomplete-shared" "1.17.7" + +"@algolia/autocomplete-plugin-algolia-insights@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz#7d2b105f84e7dd8f0370aa4c4ab3b704e6760d82" + integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== + dependencies: + "@algolia/autocomplete-shared" "1.17.7" + +"@algolia/autocomplete-preset-algolia@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz#c9badc0d73d62db5bf565d839d94ec0034680ae9" + integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== + dependencies: + "@algolia/autocomplete-shared" "1.17.7" + +"@algolia/autocomplete-shared@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz#105e84ad9d1a31d3fb86ba20dc890eefe1a313a0" + integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== + +"@algolia/client-abtesting@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.37.0.tgz#37df3674ccc37dfb0aa4cbfea42002bb136fb909" + integrity sha512-Dp2Zq+x9qQFnuiQhVe91EeaaPxWBhzwQ6QnznZQnH9C1/ei3dvtmAFfFeaTxM6FzfJXDLvVnaQagTYFTQz3R5g== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/client-analytics@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.37.0.tgz#6fb4d748e1af43d8bc9f955d73d98205ce1c1ee5" + integrity sha512-wyXODDOluKogTuZxRII6mtqhAq4+qUR3zIUJEKTiHLe8HMZFxfUEI4NO2qSu04noXZHbv/sRVdQQqzKh12SZuQ== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/client-common@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.37.0.tgz#f7ca097c4bae44e4ea365ee8f420693d0005c98e" + integrity sha512-GylIFlPvLy9OMgFG8JkonIagv3zF+Dx3H401Uo2KpmfMVBBJiGfAb9oYfXtplpRMZnZPxF5FnkWaI/NpVJMC+g== + +"@algolia/client-insights@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.37.0.tgz#f4f4011fc89bc0b2dfc384acc3c6fb38f633f4ec" + integrity sha512-T63afO2O69XHKw2+F7mfRoIbmXWGzgpZxgOFAdP3fR4laid7pWBt20P4eJ+Zn23wXS5kC9P2K7Bo3+rVjqnYiw== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/client-personalization@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.37.0.tgz#c1688db681623b189f353599815a118033ceebb5" + integrity sha512-1zOIXM98O9zD8bYDCJiUJRC/qNUydGHK/zRK+WbLXrW1SqLFRXECsKZa5KoG166+o5q5upk96qguOtE8FTXDWQ== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/client-query-suggestions@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.37.0.tgz#fa514df8d36fb548258c712f3ba6f97eb84ebb87" + integrity sha512-31Nr2xOLBCYVal+OMZn1rp1H4lPs1914Tfr3a34wU/nsWJ+TB3vWjfkUUuuYhWoWBEArwuRzt3YNLn0F/KRVkg== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/client-search@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.37.0.tgz#38c7110d96fbbbda7b7fb0578a18b8cad3c25af2" + integrity sha512-DAFVUvEg+u7jUs6BZiVz9zdaUebYULPiQ4LM2R4n8Nujzyj7BZzGr2DCd85ip4p/cx7nAZWKM8pLcGtkTRTdsg== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/ingestion@1.37.0": + version "1.37.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.37.0.tgz#bb6016e656c68014050814abf130e103f977794e" + integrity sha512-pkCepBRRdcdd7dTLbFddnu886NyyxmhgqiRcHHaDunvX03Ij4WzvouWrQq7B7iYBjkMQrLS8wQqSP0REfA4W8g== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/monitoring@1.37.0": + version "1.37.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.37.0.tgz#6d20c220d648db8faea45679350f1516917cc13d" + integrity sha512-fNw7pVdyZAAQQCJf1cc/ih4fwrRdQSgKwgor4gchsI/Q/ss9inmC6bl/69jvoRSzgZS9BX4elwHKdo0EfTli3w== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/recommend@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.37.0.tgz#dd5e814f30bbb92395902e120fdb28a120b91341" + integrity sha512-U+FL5gzN2ldx3TYfQO5OAta2TBuIdabEdFwD5UVfWPsZE5nvOKkc/6BBqP54Z/adW/34c5ZrvvZhlhNTZujJXQ== + dependencies: + "@algolia/client-common" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +"@algolia/requester-browser-xhr@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.37.0.tgz#8851ab846d8005055c36a59422161ebe1594ae48" + integrity sha512-Ao8GZo8WgWFABrU7iq+JAftXV0t+UcOtCDL4mzHHZ+rQeTTf1TZssr4d0vIuoqkVNnKt9iyZ7T4lQff4ydcTrw== + dependencies: + "@algolia/client-common" "5.37.0" + +"@algolia/requester-fetch@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.37.0.tgz#93602fdc9a59b41ecd53768c53c11cddb0db846a" + integrity sha512-H7OJOXrFg5dLcGJ22uxx8eiFId0aB9b0UBhoOi4SMSuDBe6vjJJ/LeZyY25zPaSvkXNBN3vAM+ad6M0h6ha3AA== + dependencies: + "@algolia/client-common" "5.37.0" + +"@algolia/requester-node-http@5.37.0": + version "5.37.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.37.0.tgz#83da1b52f3ee86f262a5d4b2a88a74db665211c2" + integrity sha512-npZ9aeag4SGTx677eqPL3rkSPlQrnzx/8wNrl1P7GpWq9w/eTmRbOq+wKrJ2r78idlY0MMgmY/mld2tq6dc44g== + dependencies: + "@algolia/client-common" "5.37.0" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/parser@^7.28.3": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" + integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== + dependencies: + "@babel/types" "^7.28.4" + +"@babel/types@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" + integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@docsearch/css@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.2.tgz#7973ceb6892c30f154ba254cd05c562257a44977" + integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== + +"@docsearch/js@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.8.2.tgz#bdcfc9837700eb38453b88e211ab5cc5a3813cc6" + integrity sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ== + dependencies: + "@docsearch/react" "3.8.2" preact "^10.0.0" -"@docsearch/react@3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.3.2.tgz" - integrity sha512-ugILab2TYKSh6IEHf6Z9xZbOovsYbsdfo60PBj+Bw+oMJ1MHJ7pBt1TTcmPki1hSgg8mysgKy2hDiVdPm7XWSQ== +"@docsearch/react@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.2.tgz#7b11d39b61c976c0aa9fbde66e6b73b30f3acd42" + integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== dependencies: - "@algolia/autocomplete-core" "1.7.4" - "@algolia/autocomplete-preset-algolia" "1.7.4" - "@docsearch/css" "3.3.2" - algoliasearch "^4.0.0" - -"@docsearch/react@3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.2.tgz#32b16dd7d5614f0d39e6bc018549816b68d171b8" - integrity sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA== - dependencies: - "@algolia/autocomplete-core" "1.9.3" - "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.2" - algoliasearch "^4.19.1" + "@algolia/autocomplete-core" "1.17.7" + "@algolia/autocomplete-preset-algolia" "1.17.7" + "@docsearch/css" "3.8.2" + algoliasearch "^5.14.2" "@esbuild/aix-ppc64@0.21.5": version "0.21.5" @@ -460,14 +318,26 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" + integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -475,33 +345,50 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@iconify-json/simple-icons@^1.2.21": + version "1.2.50" + resolved "https://registry.yarnpkg.com/@iconify-json/simple-icons/-/simple-icons-1.2.50.tgz#62475b9a6b82e1b55d78ac5c769f550c7b2bc932" + integrity sha512-Z2ggRwKYEBB9eYAEi4NqEgIzyLhu0Buh4+KGzMPD6+xG7mk52wZJwLT/glDPtfslV503VtJbqzWqBUGkCMKOFA== + dependencies: + "@iconify/types" "*" + +"@iconify/types@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -509,150 +396,279 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@rollup/rollup-android-arm-eabi@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54" - integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA== - -"@rollup/rollup-android-arm64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e" - integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA== - -"@rollup/rollup-darwin-arm64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f" - integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA== - -"@rollup/rollup-darwin-x64@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724" - integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb" - integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA== - -"@rollup/rollup-linux-arm-musleabihf@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3" - integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw== - -"@rollup/rollup-linux-arm64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496" - integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA== - -"@rollup/rollup-linux-arm64-musl@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065" - integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw== - -"@rollup/rollup-linux-powerpc64le-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d" - integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw== - -"@rollup/rollup-linux-riscv64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983" - integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg== - -"@rollup/rollup-linux-s390x-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58" - integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g== - -"@rollup/rollup-linux-x64-gnu@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b" - integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A== - -"@rollup/rollup-linux-x64-musl@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127" - integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ== - -"@rollup/rollup-win32-arm64-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5" - integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ== - -"@rollup/rollup-win32-ia32-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2" - integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ== - -"@rollup/rollup-win32-x64-msvc@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" - integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== - -"@shikijs/core@1.21.0", "@shikijs/core@^1.13.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.21.0.tgz#1557480430163b5d2e7e3fe42514f9656d7f0daf" - integrity sha512-zAPMJdiGuqXpZQ+pWNezQAk5xhzRXBNiECFPcJLtUdsFM3f//G95Z15EHTnHchYycU8kIIysqGgxp8OVSj1SPQ== - dependencies: - "@shikijs/engine-javascript" "1.21.0" - "@shikijs/engine-oniguruma" "1.21.0" - "@shikijs/types" "1.21.0" - "@shikijs/vscode-textmate" "^9.2.2" +"@parcel/watcher-android-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" + integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== + +"@parcel/watcher-darwin-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" + integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== + +"@parcel/watcher-darwin-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" + integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== + +"@parcel/watcher-freebsd-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" + integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== + +"@parcel/watcher-linux-arm-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" + integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== + +"@parcel/watcher-linux-arm-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" + integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== + +"@parcel/watcher-linux-arm64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" + integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== + +"@parcel/watcher-linux-arm64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" + integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== + +"@parcel/watcher-linux-x64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" + integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== + +"@parcel/watcher-linux-x64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" + integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== + +"@parcel/watcher-win32-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" + integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== + +"@parcel/watcher-win32-ia32@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" + integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== + +"@parcel/watcher-win32-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" + integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== + +"@parcel/watcher@^2.4.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" + integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.1" + "@parcel/watcher-darwin-arm64" "2.5.1" + "@parcel/watcher-darwin-x64" "2.5.1" + "@parcel/watcher-freebsd-x64" "2.5.1" + "@parcel/watcher-linux-arm-glibc" "2.5.1" + "@parcel/watcher-linux-arm-musl" "2.5.1" + "@parcel/watcher-linux-arm64-glibc" "2.5.1" + "@parcel/watcher-linux-arm64-musl" "2.5.1" + "@parcel/watcher-linux-x64-glibc" "2.5.1" + "@parcel/watcher-linux-x64-musl" "2.5.1" + "@parcel/watcher-win32-arm64" "2.5.1" + "@parcel/watcher-win32-ia32" "2.5.1" + "@parcel/watcher-win32-x64" "2.5.1" + +"@rollup/rollup-android-arm-eabi@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz#7d41dc45adcfcb272504ebcea9c8a5b2c659e963" + integrity sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag== + +"@rollup/rollup-android-arm64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz#6c708fae2c9755e994c42d56c34a94cb77020650" + integrity sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw== + +"@rollup/rollup-darwin-arm64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz#85ccf92ab114e434c83037a175923a525635cbb4" + integrity sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw== + +"@rollup/rollup-darwin-x64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz#0af089f3d658d05573208dabb3a392b44d7f4630" + integrity sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw== + +"@rollup/rollup-freebsd-arm64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz#46c22a16d18180e99686647543335567221caa9c" + integrity sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA== + +"@rollup/rollup-freebsd-x64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz#819ffef2f81891c266456952962a13110c8e28b5" + integrity sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ== + +"@rollup/rollup-linux-arm-gnueabihf@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz#7fe283c14793e607e653a3214b09f8973f08262a" + integrity sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg== + +"@rollup/rollup-linux-arm-musleabihf@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz#066e92eb22ea30560414ec800a6d119ba0b435ac" + integrity sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw== + +"@rollup/rollup-linux-arm64-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz#480d518ea99a8d97b2a174c46cd55164f138cc37" + integrity sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw== + +"@rollup/rollup-linux-arm64-musl@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz#ed7db3b8999b60dd20009ddf71c95f3af49423c8" + integrity sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w== + +"@rollup/rollup-linux-loongarch64-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz#16a6927a35f5dbc505ff874a4e1459610c0c6f46" + integrity sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q== + +"@rollup/rollup-linux-ppc64-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz#a006700469be0041846c45b494c35754e6a04eea" + integrity sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q== + +"@rollup/rollup-linux-riscv64-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz#0fcc45b2ec8a0e54218ca48849ea6d596f53649c" + integrity sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ== + +"@rollup/rollup-linux-riscv64-musl@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz#d6e617eec9fe6f5859ee13fad435a16c42b469f2" + integrity sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg== + +"@rollup/rollup-linux-s390x-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz#b147760d63c6f35b4b18e6a25a2a760dd3ea0c05" + integrity sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg== + +"@rollup/rollup-linux-x64-gnu@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz#fc0be1da374f85e7e85dccaf1ff12d7cfc9fbe3d" + integrity sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA== + +"@rollup/rollup-linux-x64-musl@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz#54c79932e0f9a3c992b034c82325be3bcde0d067" + integrity sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg== + +"@rollup/rollup-openharmony-arm64@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz#fc48e74d413623ac02c1d521bec3e5e784488fdc" + integrity sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA== + +"@rollup/rollup-win32-arm64-msvc@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz#8ce3d1181644406362cf1e62c90e88ab083e02bb" + integrity sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ== + +"@rollup/rollup-win32-ia32-msvc@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz#dd2dfc896eac4b2689d55f01c6d51c249263f805" + integrity sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A== + +"@rollup/rollup-win32-x64-msvc@4.50.1": + version "4.50.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz#13f758c97b9fbbac56b6928547a3ff384e7cfb3e" + integrity sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA== + +"@shikijs/core@2.5.0", "@shikijs/core@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-2.5.0.tgz#e14d33961dfa3141393d4a76fc8923d0d1c4b62f" + integrity sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg== + dependencies: + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" "@types/hast" "^3.0.4" - hast-util-to-html "^9.0.3" + hast-util-to-html "^9.0.4" + +"@shikijs/engine-javascript@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz#e045c6ecfbda6c99137547b0a482e0b87f1053fc" + integrity sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + oniguruma-to-es "^3.1.0" + +"@shikijs/engine-oniguruma@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz#230de5693cc1da6c9d59c7ad83593c2027274817" + integrity sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" -"@shikijs/engine-javascript@1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-1.21.0.tgz#86776dd5df02d7381c23041cb314f25c831c83bf" - integrity sha512-jxQHNtVP17edFW4/0vICqAVLDAxmyV31MQJL4U/Kg+heQALeKYVOWo0sMmEZ18FqBt+9UCdyqGKYE7bLRtk9mg== +"@shikijs/langs@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-2.5.0.tgz#97ab50c495922cc1ca06e192985b28dc73de5d50" + integrity sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w== dependencies: - "@shikijs/types" "1.21.0" - "@shikijs/vscode-textmate" "^9.2.2" - oniguruma-to-js "0.4.3" + "@shikijs/types" "2.5.0" -"@shikijs/engine-oniguruma@1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-1.21.0.tgz#aaceece7d2e9572d41c0fb1082ee9b2895245080" - integrity sha512-AIZ76XocENCrtYzVU7S4GY/HL+tgHGbVU+qhiDyNw1qgCA5OSi4B4+HY4BtAoJSMGuD/L5hfTzoRVbzEm2WTvg== +"@shikijs/themes@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-2.5.0.tgz#8c6aecf73f5455681c8bec15797cf678162896cb" + integrity sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw== dependencies: - "@shikijs/types" "1.21.0" - "@shikijs/vscode-textmate" "^9.2.2" + "@shikijs/types" "2.5.0" -"@shikijs/transformers@^1.13.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.21.0.tgz#f9fdc3b46ed6540668d2adb5548b5d89adc975dc" - integrity sha512-aA+XGGSzipcvqdsOYL8l6Q2RYiMuJNdhdt9eZnkJmW+wjSOixN/I7dBq3fISwvEMDlawrtuXM3eybLCEC+Fjlg== +"@shikijs/transformers@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-2.5.0.tgz#190c84786ff06c417580ab79177338a947168c55" + integrity sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg== dependencies: - shiki "1.21.0" + "@shikijs/core" "2.5.0" + "@shikijs/types" "2.5.0" -"@shikijs/types@1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-1.21.0.tgz#3e097012221b9ca1f8fbdf47e6aefe66ccb4398a" - integrity sha512-tzndANDhi5DUndBtpojEq/42+dpUF2wS7wdCDQaFtIXm3Rd1QkrcVgSSRLOvEwexekihOXfbYJINW37g96tJRw== +"@shikijs/types@2.5.0", "@shikijs/types@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-2.5.0.tgz#e949c7384802703a48b9d6425dd41673c164df69" + integrity sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw== dependencies: - "@shikijs/vscode-textmate" "^9.2.2" + "@shikijs/vscode-textmate" "^10.0.2" "@types/hast" "^3.0.4" -"@shikijs/vscode-textmate@^9.2.2": - version "9.2.2" - resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz#24571f50625c7cd075f9efe0def8b9d2c0930ada" - integrity sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg== +"@shikijs/vscode-textmate@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/hast@^3.0.0", "@types/hast@^3.0.4": version "3.0.4" @@ -662,9 +678,9 @@ "@types/unist" "*" "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/linkify-it@^5": version "5.0.0" @@ -680,11 +696,11 @@ "@types/mdurl" "^2" "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== dependencies: - "@types/unist" "*" + "@types/unist" "^2" "@types/mdast@^4.0.0": version "4.0.4" @@ -699,277 +715,270 @@ integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== "@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + version "7.7.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.1.tgz#3ce3af1a5524ef327d2da9e4fd8b6d95c8d70528" + integrity sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== -"@types/unist@*", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/unist@^3.0.0": +"@types/unist@*", "@types/unist@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== +"@types/unist@^2", "@types/unist@^2.0.2": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@types/web-bluetooth@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" + integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== "@typescript-eslint/eslint-plugin@^5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz" - integrity sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q== - dependencies: - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/type-utils" "5.49.0" - "@typescript-eslint/utils" "5.49.0" + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" + graphemer "^1.4.0" ignore "^5.2.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" "@typescript-eslint/parser@^5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.49.0.tgz" - integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg== + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/typescript-estree" "5.49.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz" - integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/visitor-keys" "5.49.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/type-utils@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz" - integrity sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA== +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: - "@typescript-eslint/typescript-estree" "5.49.0" - "@typescript-eslint/utils" "5.49.0" + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.49.0.tgz" - integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg== +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/typescript-estree@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz" - integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA== +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/visitor-keys" "5.49.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.49.0.tgz" - integrity sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ== +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: + "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.49.0" - "@typescript-eslint/types" "5.49.0" - "@typescript-eslint/typescript-estree" "5.49.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" - eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.49.0": - version "5.49.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz" - integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@ungap/structured-clone@^1.0.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@vitejs/plugin-vue@^5.1.2": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4" - integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A== +"@vitejs/plugin-vue@^5.2.1": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8" + integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== -"@vue/compiler-core@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.11.tgz#3dcd0c1bab10732f44ab1790735afb03a4b69edc" - integrity sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg== +"@vue/compiler-core@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.21.tgz#5915b19273f0492336f0beb227aba86813e2c8a8" + integrity sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw== dependencies: - "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.11" + "@babel/parser" "^7.28.3" + "@vue/shared" "3.5.21" entities "^4.5.0" estree-walker "^2.0.2" - source-map-js "^1.2.0" - -"@vue/compiler-dom@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.11.tgz#950f8fc610e26326fed008b8d102cc8ee78a6ce5" - integrity sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew== - dependencies: - "@vue/compiler-core" "3.5.11" - "@vue/shared" "3.5.11" - -"@vue/compiler-sfc@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.11.tgz#68ba7bc6fed4fec6892aed118cb3ee8e4b180d06" - integrity sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw== - dependencies: - "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.11" - "@vue/compiler-dom" "3.5.11" - "@vue/compiler-ssr" "3.5.11" - "@vue/shared" "3.5.11" + source-map-js "^1.2.1" + +"@vue/compiler-dom@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.21.tgz#26126447fe1e1d16c8cbac45b26e66b3f7175f65" + integrity sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ== + dependencies: + "@vue/compiler-core" "3.5.21" + "@vue/shared" "3.5.21" + +"@vue/compiler-sfc@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz#e48189ef3ffe334c864c2625389ebe3bb4fa41eb" + integrity sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ== + dependencies: + "@babel/parser" "^7.28.3" + "@vue/compiler-core" "3.5.21" + "@vue/compiler-dom" "3.5.21" + "@vue/compiler-ssr" "3.5.21" + "@vue/shared" "3.5.21" estree-walker "^2.0.2" - magic-string "^0.30.11" - postcss "^8.4.47" - source-map-js "^1.2.0" + magic-string "^0.30.18" + postcss "^8.5.6" + source-map-js "^1.2.1" -"@vue/compiler-ssr@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.11.tgz#02d9891c7a649bbf06490ecd8d24dd1575d53e60" - integrity sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA== +"@vue/compiler-ssr@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.21.tgz#f351c27aa5c075faa609596b2269c53df0df3aa1" + integrity sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w== dependencies: - "@vue/compiler-dom" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-dom" "3.5.21" + "@vue/shared" "3.5.21" -"@vue/devtools-api@^7.3.8": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.4.6.tgz#5e9249d6de3cee58624e511fdc727837b1f2d273" - integrity sha512-XipBV5k0/IfTr0sNBDTg7OBUCp51cYMMXyPxLXJZ4K/wmUeMqt8cVdr2ZZGOFq+si/jTyCYnNxeKoyev5DOUUA== +"@vue/devtools-api@^7.7.0": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.7.7.tgz#5ef5f55f60396220725a273548c0d7ee983d5d34" + integrity sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg== dependencies: - "@vue/devtools-kit" "^7.4.6" + "@vue/devtools-kit" "^7.7.7" -"@vue/devtools-kit@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.4.6.tgz#80aa30db65bf5b2b0eda4e818749d3c37d80f709" - integrity sha512-NbYBwPWgEic1AOd9bWExz9weBzFdjiIfov0yRn4DrRfR+EQJCI9dn4I0XS7IxYGdkmUJi8mFW42LLk18WsGqew== +"@vue/devtools-kit@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz#41a64f9526e9363331c72405544df020ce2e3641" + integrity sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA== dependencies: - "@vue/devtools-shared" "^7.4.6" - birpc "^0.2.17" + "@vue/devtools-shared" "^7.7.7" + birpc "^2.3.0" hookable "^5.5.3" mitt "^3.0.1" perfect-debounce "^1.0.0" speakingurl "^14.0.1" - superjson "^2.2.1" + superjson "^2.2.2" -"@vue/devtools-shared@^7.4.6": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.4.6.tgz#492c2301caacc83a32542dd95dfcae3980621417" - integrity sha512-rPeSBzElnHYMB05Cc056BQiJpgocQjY8XVulgni+O9a9Gr9tNXgPteSzFFD+fT/iWMxNuUgGKs9CuW5DZewfIg== +"@vue/devtools-shared@^7.7.7": + version "7.7.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz#ff14aa8c1262ebac8c0397d3b09f767cd489750c" + integrity sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw== dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.11.tgz#d27df4fba10c2de1c7234701f18247a775b7a391" - integrity sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w== +"@vue/reactivity@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.21.tgz#34d4532c325876cf5481206060a3d525862c8ac5" + integrity sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA== dependencies: - "@vue/shared" "3.5.11" + "@vue/shared" "3.5.21" -"@vue/runtime-core@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.11.tgz#7beccd013efe5d33981ffd6b6e05d0a5b9058316" - integrity sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA== +"@vue/runtime-core@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.21.tgz#d97a4e7223a99644129f95c7d8318a7e92f255e4" + integrity sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA== dependencies: - "@vue/reactivity" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/reactivity" "3.5.21" + "@vue/shared" "3.5.21" -"@vue/runtime-dom@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.11.tgz#14a3181ab7057de41b345b4b3d37b744b3ff8ff5" - integrity sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ== +"@vue/runtime-dom@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.21.tgz#a3d35d53320abe8462c3bf2a469f729d8c9f78ff" + integrity sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w== dependencies: - "@vue/reactivity" "3.5.11" - "@vue/runtime-core" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/reactivity" "3.5.21" + "@vue/runtime-core" "3.5.21" + "@vue/shared" "3.5.21" csstype "^3.1.3" -"@vue/server-renderer@3.5.11": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.11.tgz#74f558371dfc39f3b0f26f95d089a1a4d1676027" - integrity sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA== +"@vue/server-renderer@3.5.21": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.21.tgz#1d0be5059a0c10f2c0483eef71ebf5bfd21a8b49" + integrity sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA== dependencies: - "@vue/compiler-ssr" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-ssr" "3.5.21" + "@vue/shared" "3.5.21" -"@vue/shared@3.5.11", "@vue/shared@^3.4.38": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.11.tgz#464b840afc89be9373addff9eeb9dfc98bf3fe2e" - integrity sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ== +"@vue/shared@3.5.21", "@vue/shared@^3.5.13": + version "3.5.21" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.21.tgz#505edb122629d1979f70a2a65ca0bd4050dc2e54" + integrity sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw== -"@vueuse/core@11.1.0", "@vueuse/core@^11.0.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-11.1.0.tgz#a104f33c899a15f3b28d3eb7b20738501a3a5035" - integrity sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg== +"@vueuse/core@12.8.2", "@vueuse/core@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-12.8.2.tgz#007c6dd29a7d1f6933e916e7a2f8ef3c3f968eaa" + integrity sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ== dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "11.1.0" - "@vueuse/shared" "11.1.0" - vue-demi ">=0.14.10" + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/integrations@^11.0.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-11.1.0.tgz#1e2c1d43b2d389fc4b4d0a7ee08091665698b9ad" - integrity sha512-O2ZgrAGPy0qAjpoI2YR3egNgyEqwG85fxfwmA9BshRIGjV4G6yu6CfOPpMHAOoCD+UfsIl7Vb1bXJ6ifrHYDDA== +"@vueuse/integrations@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-12.8.2.tgz#d04f33d86fe985c9a27c98addcfde9f30f2db1df" + integrity sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g== dependencies: - "@vueuse/core" "11.1.0" - "@vueuse/shared" "11.1.0" - vue-demi ">=0.14.10" + "@vueuse/core" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/metadata@11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-11.1.0.tgz#ad367d2a51d985129724425923b3cf95f0faf27b" - integrity sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg== +"@vueuse/metadata@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-12.8.2.tgz#6cb3a4e97cdcf528329eebc1bda73cd7f64318d3" + integrity sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A== -"@vueuse/shared@11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-11.1.0.tgz#3bfc3aa555c2a456c21945ec7f127d71938d12e8" - integrity sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w== +"@vueuse/shared@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-12.8.2.tgz#b9e4611d0603629c8e151f982459da394e22f930" + integrity sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w== dependencies: - vue-demi ">=0.14.10" + vue "^3.5.13" acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +acorn@^8.9.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -977,137 +986,98 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -algoliasearch@^4.0.0: - version "4.14.3" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.3.tgz" - integrity sha512-GZTEuxzfWbP/vr7ZJfGzIl8fOsoxN916Z6FY2Egc9q2TmZ6hvq5KfAxY89pPW01oW/2HDEKA8d30f9iAH9eXYg== - dependencies: - "@algolia/cache-browser-local-storage" "4.14.3" - "@algolia/cache-common" "4.14.3" - "@algolia/cache-in-memory" "4.14.3" - "@algolia/client-account" "4.14.3" - "@algolia/client-analytics" "4.14.3" - "@algolia/client-common" "4.14.3" - "@algolia/client-personalization" "4.14.3" - "@algolia/client-search" "4.14.3" - "@algolia/logger-common" "4.14.3" - "@algolia/logger-console" "4.14.3" - "@algolia/requester-browser-xhr" "4.14.3" - "@algolia/requester-common" "4.14.3" - "@algolia/requester-node-http" "4.14.3" - "@algolia/transporter" "4.14.3" - -algoliasearch@^4.19.1: - version "4.24.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.24.0.tgz#b953b3e2309ef8f25da9de311b95b994ac918275" - integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== - dependencies: - "@algolia/cache-browser-local-storage" "4.24.0" - "@algolia/cache-common" "4.24.0" - "@algolia/cache-in-memory" "4.24.0" - "@algolia/client-account" "4.24.0" - "@algolia/client-analytics" "4.24.0" - "@algolia/client-common" "4.24.0" - "@algolia/client-personalization" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/logger-console" "4.24.0" - "@algolia/recommend" "4.24.0" - "@algolia/requester-browser-xhr" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/requester-node-http" "4.24.0" - "@algolia/transporter" "4.24.0" - -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" +algoliasearch@^5.14.2: + version "5.37.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.37.0.tgz#73dc4a09654e6e02b529300018d639706b95b47b" + integrity sha512-y7gau/ZOQDqoInTQp0IwTOjkrHc4Aq4R8JgpmCleFwiLl+PbN2DMWoDUWZnrK8AhNJwT++dn28Bt4NZYNLAmuA== + dependencies: + "@algolia/abtesting" "1.3.0" + "@algolia/client-abtesting" "5.37.0" + "@algolia/client-analytics" "5.37.0" + "@algolia/client-common" "5.37.0" + "@algolia/client-insights" "5.37.0" + "@algolia/client-personalization" "5.37.0" + "@algolia/client-query-suggestions" "5.37.0" + "@algolia/client-search" "5.37.0" + "@algolia/ingestion" "1.37.0" + "@algolia/monitoring" "1.37.0" + "@algolia/recommend" "5.37.0" + "@algolia/requester-browser-xhr" "5.37.0" + "@algolia/requester-fetch" "5.37.0" + "@algolia/requester-node-http" "5.37.0" + +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.0.0, ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -birpc@^0.2.17: - version "0.2.17" - resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.17.tgz#d0bdb90d4d063061156637f03b7b0adea1779734" - integrity sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg== +birpc@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-2.5.0.tgz#3a014e54c17eceba0ce15738d484ea371dbf6527" + integrity sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ== boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.2, braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== ccount@^2.0.0: @@ -1115,9 +1085,14 @@ ccount@^2.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== +chalk@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + chalk@^4.0.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -1148,40 +1123,19 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -"chokidar@>=3.0.0 <4.0.0": - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: - restore-cursor "^3.1.0" + readdirp "^4.0.1" -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + restore-cursor "^4.0.0" cli-truncate@^3.1.0: version "3.1.0" @@ -1193,34 +1147,34 @@ cli-truncate@^3.1.0: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== comma-separated-tokens@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== +commander@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" + integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== copy-anything@^3.0.2: @@ -1231,9 +1185,9 @@ copy-anything@^3.0.2: is-what "^4.1.8" cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -1241,7 +1195,7 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csstype@^3.1.3: @@ -1249,16 +1203,23 @@ csstype@^3.1.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== dequal@^2.0.0: @@ -1266,6 +1227,11 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + devlop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" @@ -1275,14 +1241,14 @@ devlop@^1.0.0: dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" @@ -1292,10 +1258,10 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex-xs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" + integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== emoji-regex@^9.2.2: version "9.2.2" @@ -1338,170 +1304,163 @@ esbuild@^0.21.3: escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" - integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== + version "8.10.2" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz#0642e53625ebc62c31c24726b0f050df6bd97a2e" + integrity sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A== eslint-plugin-markdown@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.0.tgz#69a63ab3445076a3c2eb6fce6f5114785b19d318" - integrity sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz#fc6765bdb5f82a75e2438d7fac619602f2abc38c" + integrity sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A== dependencies: mdast-util-from-markdown "^0.8.5" eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + version "4.2.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz#91ca3f2f01a84f1272cce04e9717550494c0fe06" + integrity sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg== dependencies: prettier-linter-helpers "^1.0.0" eslint-plugin-vue@^9.9.0: - version "9.9.0" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz" - integrity sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ== + version "9.33.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz#de33eba8f78e1d172c59c8ec7fbfd60c6ca35c39" + integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== dependencies: - eslint-utils "^3.0.0" + "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" - nth-check "^2.0.1" - postcss-selector-parser "^6.0.9" - semver "^7.3.5" - vue-eslint-parser "^9.0.1" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.15" + semver "^7.6.3" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.32.0: - version "8.32.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz" - integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== - dependencies: - "@eslint/eslintrc" "^1.4.1" - "@humanwhocodes/config-array" "^0.11.8" + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.3.1, espree@^9.4.0: - version "9.4.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.1" -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.0, esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" - human-signals "^3.0.1" + human-signals "^4.3.0" is-stream "^3.0.0" merge-stream "^2.0.0" npm-run-path "^5.1.0" @@ -1511,95 +1470,91 @@ execa@^6.1.0: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== -focus-trap@^7.5.4: - version "7.6.0" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.0.tgz#7f3edab8135eaca92ab59b6e963eb5cc42ded715" - integrity sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ== +focus-trap@^7.6.4: + version "7.6.5" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.5.tgz#56f0814286d43c1a2688e9bc4f31f17ae047fb76" + integrity sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg== dependencies: tabbable "^6.2.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -1609,23 +1564,23 @@ get-stream@^6.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^7.1.3: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1635,16 +1590,16 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0: - version "13.19.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== +globals@^13.19.0, globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -1654,20 +1609,20 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -hast-util-to-html@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz#a9999a0ba6b4919576a9105129fead85d37f302b" - integrity sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg== +hast-util-to-html@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" + integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" @@ -1676,7 +1631,7 @@ hast-util-to-html@^9.0.3: hast-util-whitespace "^3.0.0" html-void-elements "^3.0.0" mdast-util-to-hast "^13.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" stringify-entities "^4.0.0" zwitch "^2.0.4" @@ -1698,10 +1653,10 @@ html-void-elements@^3.0.0: resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== husky@^8.0.0: version "8.0.3" @@ -1709,36 +1664,31 @@ husky@^8.0.0: integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -immutable@^4.0.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a" - integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w== +immutable@^5.0.2: + version "5.1.3" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.3.tgz#e6486694c8b76c37c063cca92399fa64098634d4" + integrity sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg== -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== +import-fresh@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -1746,7 +1696,7 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== is-alphabetical@^1.0.0: @@ -1762,13 +1712,6 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" @@ -1776,22 +1719,17 @@ is-decimal@^1.0.0: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-fullwidth-code-point@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" @@ -1803,12 +1741,12 @@ is-hexadecimal@^1.0.0: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-stream@^3.0.0: @@ -1823,117 +1761,113 @@ is-what@^4.1.8: isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -js-sdsl@^4.1.4: - version "4.3.0" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" - integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== - js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lint-staged@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" - integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== + version "13.3.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.3.0.tgz#7965d72a8d6a6c932f85e9c13ccf3596782d28a5" + integrity sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ== + dependencies: + chalk "5.3.0" + commander "11.0.0" + debug "4.3.4" + execa "7.2.0" + lilconfig "2.1.0" + listr2 "6.6.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.1" + +listr2@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" + integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.19" - commander "^9.4.1" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.3" - -listr2@^5.0.5: - version "5.0.7" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" - integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^5.0.1" rfdc "^1.3.0" - rxjs "^7.8.0" - through "^2.3.8" - wrap-ansi "^7.0.0" + wrap-ansi "^8.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +log-update@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" + integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== dependencies: - yallist "^4.0.0" + ansi-escapes "^5.0.0" + cli-cursor "^4.0.0" + slice-ansi "^5.0.0" + strip-ansi "^7.0.1" + wrap-ansi "^8.0.1" -magic-string@^0.30.11: - version "0.30.11" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" - integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== +magic-string@^0.30.18: + version "0.30.19" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.19.tgz#cebe9f104e565602e5d2098c5f2e79a77cc86da9" + integrity sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/sourcemap-codec" "^1.5.5" mark.js@8.11.1: version "8.11.1" @@ -1978,40 +1912,40 @@ merge-stream@^2.0.0: merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromark-util-character@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" - integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== dependencies: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" micromark-util-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" - integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== micromark-util-sanitize-uri@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" - integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== dependencies: micromark-util-character "^2.0.0" micromark-util-encode "^2.0.0" micromark-util-symbol "^2.0.0" micromark-util-symbol@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" - integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== micromark-util-types@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" - integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== micromark@~2.11.0: version "2.11.4" @@ -2021,14 +1955,22 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@^4.0.4, micromatch@^4.0.5: +micromatch@4.0.5: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" picomatch "^2.3.1" +micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -2041,15 +1983,15 @@ mimic-fn@^4.0.0: minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minisearch@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.0.tgz#f5830e9109b5919ee7b291c29a304f381aa68770" - integrity sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA== +minisearch@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.2.tgz#296ee8d1906cc378f7e57a3a71f07e5205a75df5" + integrity sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA== mitt@^3.0.1: version "3.0.1" @@ -2058,51 +2000,51 @@ mitt@^3.0.1: ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: path-key "^4.0.0" -nth-check@^2.0.1: +nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" -object-inspect@^1.12.2: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -2121,49 +2063,44 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -oniguruma-to-js@0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz#8d899714c21f5c7d59a3c0008ca50e848086d740" - integrity sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ== +oniguruma-to-es@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz#480e4bac4d3bc9439ac0d2124f0725e7a0d76d17" + integrity sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ== dependencies: - regex "^4.3.2" + emoji-regex-xs "^1.0.0" + regex "^6.0.1" + regex-recursion "^6.0.2" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" + word-wrap "^1.2.5" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" @@ -2182,17 +2119,17 @@ parse-entities@^2.0.0: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: @@ -2202,7 +2139,7 @@ path-key@^4.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== perfect-debounce@^1.0.0: @@ -2210,204 +2147,206 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" - integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.6.0: +pidtree@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -postcss-selector-parser@^6.0.9: - version "6.0.11" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== +postcss-selector-parser@^6.0.15: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.4.43, postcss@^8.4.47: - version "8.4.47" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" - integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== +postcss@^8.4.43, postcss@^8.5.6: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - nanoid "^3.3.7" - picocolors "^1.1.0" + nanoid "^3.3.11" + picocolors "^1.1.1" source-map-js "^1.2.1" preact@^10.0.0: - version "10.11.3" - resolved "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz" - integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg== + version "10.27.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.27.1.tgz#c391dcad5813b67d9e04655d844d8fdc307d4252" + integrity sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ== prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" prettier@^2.8.3: - version "2.8.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz" - integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -property-information@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" - integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + +regex-recursion@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-6.0.2.tgz#a0b1977a74c87f073377b938dbedfab2ea582b33" + integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== dependencies: - picomatch "^2.2.1" + regex-utilities "^2.3.0" -regex@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/regex/-/regex-4.3.3.tgz#8cda73ccbdfa7c5691881d02f9bb142dba9daa6a" - integrity sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg== +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/regex/-/regex-6.0.1.tgz#282fa4435d0c700b09c0eb0982b602e05ab6a34f" + integrity sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA== + dependencies: + regex-utilities "^2.3.0" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== -rfdc@^1.4.1: +rfdc@^1.3.0, rfdc@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rollup@^4.20.0: - version "4.24.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05" - integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg== + version "4.50.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.50.1.tgz#6f0717c34aacc65cc727eeaaaccc2afc4e4485fd" + integrity sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA== dependencies: - "@types/estree" "1.0.6" + "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.24.0" - "@rollup/rollup-android-arm64" "4.24.0" - "@rollup/rollup-darwin-arm64" "4.24.0" - "@rollup/rollup-darwin-x64" "4.24.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.24.0" - "@rollup/rollup-linux-arm-musleabihf" "4.24.0" - "@rollup/rollup-linux-arm64-gnu" "4.24.0" - "@rollup/rollup-linux-arm64-musl" "4.24.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.24.0" - "@rollup/rollup-linux-riscv64-gnu" "4.24.0" - "@rollup/rollup-linux-s390x-gnu" "4.24.0" - "@rollup/rollup-linux-x64-gnu" "4.24.0" - "@rollup/rollup-linux-x64-musl" "4.24.0" - "@rollup/rollup-win32-arm64-msvc" "4.24.0" - "@rollup/rollup-win32-ia32-msvc" "4.24.0" - "@rollup/rollup-win32-x64-msvc" "4.24.0" + "@rollup/rollup-android-arm-eabi" "4.50.1" + "@rollup/rollup-android-arm64" "4.50.1" + "@rollup/rollup-darwin-arm64" "4.50.1" + "@rollup/rollup-darwin-x64" "4.50.1" + "@rollup/rollup-freebsd-arm64" "4.50.1" + "@rollup/rollup-freebsd-x64" "4.50.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.50.1" + "@rollup/rollup-linux-arm-musleabihf" "4.50.1" + "@rollup/rollup-linux-arm64-gnu" "4.50.1" + "@rollup/rollup-linux-arm64-musl" "4.50.1" + "@rollup/rollup-linux-loongarch64-gnu" "4.50.1" + "@rollup/rollup-linux-ppc64-gnu" "4.50.1" + "@rollup/rollup-linux-riscv64-gnu" "4.50.1" + "@rollup/rollup-linux-riscv64-musl" "4.50.1" + "@rollup/rollup-linux-s390x-gnu" "4.50.1" + "@rollup/rollup-linux-x64-gnu" "4.50.1" + "@rollup/rollup-linux-x64-musl" "4.50.1" + "@rollup/rollup-openharmony-arm64" "4.50.1" + "@rollup/rollup-win32-arm64-msvc" "4.50.1" + "@rollup/rollup-win32-ia32-msvc" "4.50.1" + "@rollup/rollup-win32-x64-msvc" "4.50.1" fsevents "~2.3.2" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -rxjs@^7.8.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== - dependencies: - tslib "^2.1.0" - sass@^1.58.0: - version "1.58.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.0.tgz#ee8aea3ad5ea5c485c26b3096e2df6087d0bb1cc" - integrity sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg== + version "1.92.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.92.1.tgz#07fb1fec5647d7b712685d1090628bf52456fe86" + integrity sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ== dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" + chokidar "^4.0.0" + immutable "^5.0.2" source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" -semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: - version "7.3.8" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.6, semver@^7.3.7, semver@^7.6.3: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shiki@1.21.0, shiki@^1.13.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.21.0.tgz#11debe38d5cc9c4a0e931632de574785c4677039" - integrity sha512-apCH5BoWTrmHDPGgg3RF8+HAAbEL/CdbYr8rMw7eIrdhCkZHdVGat5mMNlRtd1erNG01VPMIKHNQ0Pj2HMAiog== - dependencies: - "@shikijs/core" "1.21.0" - "@shikijs/engine-javascript" "1.21.0" - "@shikijs/engine-oniguruma" "1.21.0" - "@shikijs/types" "1.21.0" - "@shikijs/vscode-textmate" "^9.2.2" +shiki@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-2.5.0.tgz#09d01ebf3b0b06580431ce3ddc023320442cf223" + integrity sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ== + dependencies: + "@shikijs/core" "2.5.0" + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/langs" "2.5.0" + "@shikijs/themes" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" "@types/hast" "^3.0.4" signal-exit@^3.0.2, signal-exit@^3.0.7: @@ -2417,27 +2356,9 @@ signal-exit@^3.0.2, signal-exit@^3.0.7: slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slice-ansi@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" @@ -2446,12 +2367,7 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -"source-map-js@>=0.6.2 <2.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-js@^1.2.0, source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -2466,21 +2382,12 @@ speakingurl@^14.0.1: resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== -string-width@^5.0.0: +string-width@^5.0.0, string-width@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -2497,17 +2404,17 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" @@ -2516,21 +2423,21 @@ strip-final-newline@^3.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -superjson@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" - integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== +superjson@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.2.tgz#9d52bf0bf6b5751a3c3472f1292e714782ba3173" + integrity sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q== dependencies: copy-anything "^3.0.2" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -2542,22 +2449,12 @@ tabbable@^6.2.0: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" @@ -2569,42 +2466,37 @@ trim-lines@^3.0.0: tslib@^1.8.1: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -typescript@^4.9.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typescript@^5.9.0: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== unist-util-is@^6.0.0: version "6.0.0" @@ -2653,20 +2545,20 @@ unist-util-visit@^5.0.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== vfile-message@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" - integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== dependencies: "@types/unist" "^3.0.0" unist-util-stringify-position "^4.0.0" @@ -2679,10 +2571,10 @@ vfile@^6.0.0: "@types/unist" "^3.0.0" vfile-message "^4.0.0" -vite@^5.4.1: - version "5.4.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8" - integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ== +vite@^5.4.14: + version "5.4.20" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.20.tgz#3267a5e03f21212f44edfd72758138e8fcecd76a" + integrity sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g== dependencies: esbuild "^0.21.3" postcss "^8.4.43" @@ -2690,37 +2582,34 @@ vite@^5.4.1: optionalDependencies: fsevents "~2.3.3" -vitepress@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.3.4.tgz#3027f2e2c74e8a72479fd7b40615cf8d3cce2d42" - integrity sha512-I1/F6OW1xl3kW4PaIMC6snxjWgf3qfziq2aqsDoFc/Gt41WbcRv++z8zjw8qGRIJ+I4bUW7ZcKFDHHN/jkH9DQ== - dependencies: - "@docsearch/css" "^3.6.1" - "@docsearch/js" "^3.6.1" - "@shikijs/core" "^1.13.0" - "@shikijs/transformers" "^1.13.0" +vitepress@^1.6.0: + version "1.6.4" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.6.4.tgz#1b6c68fede541a3f401a66263dce0c985e2d8d92" + integrity sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg== + dependencies: + "@docsearch/css" "3.8.2" + "@docsearch/js" "3.8.2" + "@iconify-json/simple-icons" "^1.2.21" + "@shikijs/core" "^2.1.0" + "@shikijs/transformers" "^2.1.0" + "@shikijs/types" "^2.1.0" "@types/markdown-it" "^14.1.2" - "@vitejs/plugin-vue" "^5.1.2" - "@vue/devtools-api" "^7.3.8" - "@vue/shared" "^3.4.38" - "@vueuse/core" "^11.0.0" - "@vueuse/integrations" "^11.0.0" - focus-trap "^7.5.4" + "@vitejs/plugin-vue" "^5.2.1" + "@vue/devtools-api" "^7.7.0" + "@vue/shared" "^3.5.13" + "@vueuse/core" "^12.4.0" + "@vueuse/integrations" "^12.4.0" + focus-trap "^7.6.4" mark.js "8.11.1" - minisearch "^7.1.0" - shiki "^1.13.0" - vite "^5.4.1" - vue "^3.4.38" - -vue-demi@>=0.14.10: - version "0.14.10" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" - integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + minisearch "^7.1.1" + shiki "^2.1.0" + vite "^5.4.14" + vue "^3.5.13" -vue-eslint-parser@^9.0.1: - version "9.1.0" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz" - integrity sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ== +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -2730,70 +2619,56 @@ vue-eslint-parser@^9.0.1: lodash "^4.17.21" semver "^7.3.6" -vue@^3.4.38: - version "3.5.11" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.11.tgz#3e307183797629f701e303a0a008f517ae031483" - integrity sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg== +vue@^3.5.13: + version "3.5.21" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.21.tgz#30af9553fd9642870321b7dc547b46c395cb7b91" + integrity sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA== dependencies: - "@vue/compiler-dom" "3.5.11" - "@vue/compiler-sfc" "3.5.11" - "@vue/runtime-dom" "3.5.11" - "@vue/server-renderer" "3.5.11" - "@vue/shared" "3.5.11" + "@vue/compiler-dom" "3.5.21" + "@vue/compiler-sfc" "3.5.21" + "@vue/runtime-dom" "3.5.21" + "@vue/server-renderer" "3.5.21" + "@vue/shared" "3.5.21" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.1.3: - version "2.2.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" - integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== +yaml@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zwitch@^2.0.4: From 7d99dae9e4485ad4e7c6bb4b55d3f856947a6285 Mon Sep 17 00:00:00 2001 From: mituritsyn Date: Sun, 8 Feb 2026 22:30:24 +0100 Subject: [PATCH 3/5] add ai-generated translations --- docs/en/community/bags.md | 11 ++++ docs/en/community/soldering.md | 5 +- docs/en/intro/beginning.md | 19 +++--- docs/en/intro/flightstyles.md | 4 +- docs/en/intro/glossarium.md | 76 ++++++++++++++++++++++ docs/en/intro/tx.md | 9 ++- docs/en/shop/airplanes.md | 18 ++++++ docs/en/shop/lifehacks.md | 57 ++++++++++++++++ docs/en/theworld/Serbija.md | 115 +++++++++++++++++++++++++++++++++ 9 files changed, 301 insertions(+), 13 deletions(-) create mode 100644 docs/en/community/bags.md create mode 100644 docs/en/intro/glossarium.md create mode 100644 docs/en/shop/airplanes.md create mode 100644 docs/en/shop/lifehacks.md create mode 100644 docs/en/theworld/Serbija.md diff --git a/docs/en/community/bags.md b/docs/en/community/bags.md new file mode 100644 index 00000000..056e9779 --- /dev/null +++ b/docs/en/community/bags.md @@ -0,0 +1,11 @@ +# Planning to fly? Will they allow equipment, drones, and batteries on board? + +For air travel, you must place batteries and drones in your carry-on luggage. Other equipment without batteries can be placed in checked baggage. + +Batteries must have a manufacturer's label showing their specifications. Generally, airlines have no issues if each battery is less than 100 or 160 Wh. Sometimes after scanning on the belt, they may ask to see one of the batteries. It's advisable that batteries are not fully charged and are in storage mode (which is also beneficial when not flying between sessions). Ideally, insulate the connectors with electrical tape or printed caps. Batteries must be stored strictly in a fireproof LiPo bag. + +Before your flight, it's worth reading the rules on your chosen airline's website, as information may have been updated, and each airline has its own requirements. This knowledge will help you know your rights in case of disputes with incompetent staff. + +From personal experience with FlyOne and Azimut between Russia and Armenia, I was only asked to show a battery once. When they saw the insulated contacts and specifications, they let me through. + +As for equipment - everything passes without issues, though sometimes they ask you to explain what something is, pointing to a specific item. The main thing is not to panic and know your rights :) diff --git a/docs/en/community/soldering.md b/docs/en/community/soldering.md index 0c4fd767..8aca7a6f 100644 --- a/docs/en/community/soldering.md +++ b/docs/en/community/soldering.md @@ -1,5 +1,6 @@ # Briefly about soldering -What should you know when soldering electronics? + +## What should you know when soldering electronics? If you're picking up a soldering iron for the first time, start by practicing on wires or a test board. Don’t ruin your electronics. And make sure to read the entire list before starting. ## -1. Prepare the room for soldering @@ -38,6 +39,6 @@ If you were soldering on a board, you might have accidentally knocked off a smal Clean the tip with a sponge. Use alcohol and a synthetic brush or cotton swab (as long as it doesn’t leave fibers) to remove flux residue on the board. Check that no solder balls remain on the board behind components or between contacts. Slide heat shrink tubing over soldered wire connections or between a wire and connector. Clean up any remaining solder from the mat or surface you were working on so it doesn’t get on your drone (motor magnets are great at picking up all kinds of debris). And organize your tools to avoid turning your desk into a mess. ## 8. (Optional) Use coating to protect boards -After ensuring everything is done correctly and no further soldering is needed, coat the board with coating to protect it from dust, moisture, and accidental short circuits from external contacts. Use special sealants/lacquers for this purpose. You can learn more [here](). +After ensuring everything is done correctly and no further soldering is needed, coat the board with coating to protect it from dust, moisture, and accidental short circuits from external contacts. Use special sealants/lacquers for this purpose. You can learn more [here](https://propwashservice.com/en/community/coating). Congratulations, now I’m proud of you! I hope soldering brings you as much joy and usefulness as it does for me. \ No newline at end of file diff --git a/docs/en/intro/beginning.md b/docs/en/intro/beginning.md index 47f9c380..0dd4c884 100644 --- a/docs/en/intro/beginning.md +++ b/docs/en/intro/beginning.md @@ -9,6 +9,8 @@ # Introduction +Authors: [Andrey Sh.](https://github.com/EIIIE), [Valentina](https://github.com/ikherty) + ## What is it, and how is it used? Drones, or quadcopters, are multirotor flying devices. Depending on the number of motor-propeller groups (MPGs), a Greek prefix is added: two motors - bicopters, three - tricopters, four - quadcopters, six - hexacopters, eight - octocopters, and there are various other configurations for specific tasks. @@ -33,15 +35,16 @@ This leads to two key rules: ## What is the minimum set needed to fly an FPV drone? -- [Dictionary](https://oscarliang.com/fpv-dictionary/) -- [Transmitter](https://propwashservice.com/intro/tx) -- [Simulator](https://propwashservice.com/intro/sim) -- [Video system](https://propwashservice.com/intro/vrx) -- [Drone](https://propwashservice.com/intro/flightstyles) -- [Batteries and charger](https://propwashservice.com/intro/power) -- [Tools and spare parts](https://propwashservice.com/shop/nessesary) +- [Dictionary](https://propwashservice.com/en/intro/glossarium) +- [Transmitter](https://propwashservice.com/en/intro/tx) +- [Simulator](https://propwashservice.com/en/intro/sim) +- [Video system](https://propwashservice.com/en/intro/vrx) +- [Drone](https://propwashservice.com/en/intro/flightstyles) +- [Batteries and charger](https://propwashservice.com/en/intro/power) +- [Tools and spare parts](https://propwashservice.com/en/shop/nessesary) +- [Local community](https://propwashservice.com/en/community/chats) -[Examples of starter kits for various budgets](https://propwashservice.com/shop/set). +[Examples of starter kits for various budgets](https://propwashservice.com/en/shop/set). ## How much does it cost? diff --git a/docs/en/intro/flightstyles.md b/docs/en/intro/flightstyles.md index 49600b3d..9c11c615 100644 --- a/docs/en/intro/flightstyles.md +++ b/docs/en/intro/flightstyles.md @@ -2,7 +2,7 @@ First, it's important to determine what you're most interested in, what resources and budget you have, and what you want to achieve (at the very least, give it a try!). FPV drone flights are not always about video shooting; they don't last for half an hour like with Mavics, and they don't just rely on stabilization modes with GPS-assisted return and hover functions. -> If any terms are unclear, check this [dictionary](https://oscarliang.com/fpv-dictionary/). +> If any terms are unclear, check this [glossary](https://propwashservice.com/en/intro/glossarium). ## Indoor flying @@ -38,6 +38,8 @@ Examples of cinewhoops and cinematic drones include: Freestyle flying involves performing acrobatic tricks, either with or without an action camera (like a GoPro). It's all about flying for fun, without the pressure of following a specific style. While many associate freestyle with performing tricks like [Mr. Steele](https://www.youtube.com/@MrSteeleFPV), the beauty of freestyle is that you can fly however you like—it's your choice. +Famous freestylers and tutorials can be found [in the Useful Materials section](https://propwashservice.com/en/community/usefull). + Typically, a freestyle drone has a 5-inch frame, often referred to as a "bus" frame, which accommodates a 30x30 stack or an all-in-one board with separate ESCs on each arm (though this configuration is no longer common for sub-7-inch drones). The camera angle is usually between 15 and 30 degrees, as a rule (though it's individual and you can choose any other), a larger camera angle makes it harder to perform certain tricks. Motors in the 2306 format with medium kv, within the acceptable range for the battery (for 4S 2300-2700, preferably 2400-2500; for 6S 1700-2000, with 1800 being perfect for freestyle). Again, nobody should limit you—if you want faster flights, go for a higher kv; if you don't like momentum drifts, lighten the drone or go for a smaller 3" model. Why care about others' opinions? :) diff --git a/docs/en/intro/glossarium.md b/docs/en/intro/glossarium.md new file mode 100644 index 00000000..4115522a --- /dev/null +++ b/docs/en/intro/glossarium.md @@ -0,0 +1,76 @@ +# FPV Glossary + +This glossary explains common Russian FPV slang terms and abbreviations used in the FPV drone community. + +| Term (Russian) | Meaning (English) | +| ------------------------------------- | ------- | +| ЛА (LA) | aircraft / flying vehicle | +| ВМГ (VMG) | propeller-motor group (motor + propeller assembly) | +| 2", 2.5", 3", 3.5", 4", 5", 6", 7" .. | propeller diameter, used to designate drone size classes | +| 31mm, 35mm, 40mm, 45mm | propeller diameter smaller than 2", mainly used among tiny whoops | +| tiny whoop, тинивуп, вуп (tinywhoop, whoop) | tiny copter with 65-75mm diagonal motor-to-motor distance, prop guards on frame, powered by 1-2S battery | +| синик, синевуп (cinewhoop) | from "cinematic" - copter for smooth flights to capture cinematic footage, with prop guards/ducts | +| зубочистка (toothpick) | very lightweight copter | +| батка, бата, АКБ, аккум, батарея (battery) | battery | +| 4ы, 4s (4S) | number of battery cells, in this example 4; each cell has 4.2V maximum voltage for LiPo/LiOn, or 4.35V for LiHV | +| LiPo, LiOn/LiIon, липо, лион | most common types of lithium batteries | +| LiHV, лихв, хв батка | lithium high voltage, battery with increased voltage, max 4.35V per cell, mainly used for tiny whoops | +| ирл, IRL | In Real Life | +| FPV | First Person View | +| OSD | On Screen Display | +| KV | RPM per volt (motor constant) | +| TVL | TV Lines - analog camera resolution specification | +| сетап, билд, сборка (setup, build) | refers to a complete copter build | +| стек, стак (stack) | tower of 4-in-1 ESC with flight controller, sometimes with video transmitter | +| канопа (canopy) | upper frame cover, typically plastic, protecting electronics | +| маунт (mount) | mounting hardware for camera, antenna, etc. | +| tx | transmitter, sends signal (can be a separate device or a transmitting pin on a board) | +| rx | receiver, receives signal (can be a separate device or a receiving pin on a board) | +| втх, vtx | video transmitter | +| рег, esc | ESC (Electronic Speed Controller) | +| приемыш (receiver) | radio receiver (slang) | +| передаст (transmitter) | radio transmitter (slang) | +| пк, мозг (FC, brain) | flight controller | +| редиска (radish) | a bad person (Russian slang, not really FPV-specific) | +| камень (stone) | microprocessor, STM chip | +| кондер (cap) | capacitor | +| резюк (resistor) | resistor | +| проп (prop) | propeller | +| аппа (radio) | radio transmitter / controller | +| бут, boot, дфу, дфю (boot, DFU) | bootloader mode, typically activated by holding the boot button while powering on | +| клипса (c-clip) | c-clip / e-clip | +| пантилт, pan-tilt | pan-tilt system for antennas, etc. | +| диверсити (diversity) | two receivers to output video from the source with better signal | +| кубик (cube) | action camera | +| серва (servo) | servo motor | +| пвм, pwm | PWM (Pulse Width Modulation) | +| ппм, сбас (ppm, sbus) | radio control protocols | +| аккст, аксес (ACCESS, ACCST) | FrSky protocol variants | +| бинд (bind) | process of linking a radio receiver to a transmitter; also applies to digital video systems | +| елрс, кросс, трейсер, гост (ELRS, Crossfire, Tracer, Ghost) | radio control systems, more info: https://propwashservice.com/intro/tx.html | +| ксв (SWR) | Standing Wave Ratio - ratio of maximum to minimum voltage amplitude in a transmission line | +| бетка (Betaflight) | Betaflight firmware | +| ченл мап (channel map) | channel order field in Betaflight configurator's receiver section; abbreviation made from first letters of channel names in the transmitter's mixes | +| акро, стаб, горайзн (acro, stab, horizon) | flight stabilization modes | +| фс, fail safe, фейлсейф, фэйлсэйф | drone actions on signal loss: drop (motor shutoff), land (landing - rarely used), GPS rescue (return home with auto-landing from BF 4.4+); in INAV: RTH (return to home) | +| таргет (target) | device configuration file used for firmware compilation | +| пассфру, пассру, пастру, пасстру (passthrough) | passthrough - mode for transmitting serial data to a device connected to the FC's UART/SoftSerial port | +| десинк, срыв синхры (desync) | situation when ESC loses track of motor coil commutation, causing the motor to stop; usually happens with rapid RPM changes; sometimes fixable via ESC settings | +| тайминги (timing) | angle at which the magnet should lag when energizing the coil - related to brushless motor operation | +| питч, ролл, яв, тротл (pitch, roll, yaw, throttle) | axis names controlled by the sticks | +| пагода, патч, сосиска (pagoda, patch, sausage) | types of FPV antennas | +| рилка (Reelsteady) | Reelsteady GO - software stabilization for GoPro video | +| накед, голая проха (naked GoPro) | "naked" GoPro - stripped-down GoPro Hero camera, weight reduced from 120g to 26g, powered by 5V BEC instead of battery | +| софтмаунт, демпфер (softmount, damper) | vibration isolation mount | +| кз, коза (short) | short circuit | +| синий дым (magic blue smoke) | the magic that makes all electronics work; when it escapes, something burns out | +| спинер жижа (conformal coating) | Spinner protection silicone conformal coating, based on MG CHEMICALS 422B | +| т12, тс100 (T12, TS100) | popular soldering iron models with T12 and TS tips respectively | +| редитускай (Readytosky) | Chinese brand that typically makes clones of known brands with their own logo | +| колобок (kolobok) | frame from Aerodyne-RC (also nickname of the author in some circles) | +| пигтейл (pigtail) | coaxial cable adapter | +| армиться, арм (arm) | mode to start motors at minimum throttle (throttle must be at bottom); without arming, the drone won't fly | +| дизармиться, дизарм (disarm) | turn off motors regardless of throttle level | +| джи, джедай, цифра (DJI, digital) | DJI digital FPV system | +| толстяк (fattie) | DJI FPV Drone | +| волки, улитка, аватар (Walksnail, Avatar) | Walksnail Avatar digital video system (a division of Caddx FPV) | diff --git a/docs/en/intro/tx.md b/docs/en/intro/tx.md index 0732cbe0..caf72492 100644 --- a/docs/en/intro/tx.md +++ b/docs/en/intro/tx.md @@ -9,6 +9,8 @@ # How to Choose a Remote Control System? +> Authors: [Andrey Sh.](https://github.com/EIIIE), [Valentina](https://github.com/ikherty) + ## Summary A Remote Control System (also known as R/C Equipment, transmitter, controller, or joystick) is a device that converts the positions of sticks (gimbals) and switches into commands for the drone. @@ -191,7 +193,7 @@ Prices start at $110. There are versions with a multimodule, ELRS on 2.4GHz, and ## Necessary Accessories - Battery - if the transmitter does not have a built-in battery, you need to acquire a suitable one for the device. Typically, 2S setups or two Li-Ion 18650 cells in a 2S adapter are used. - > A link to the [article about drone batteries](https://propwashservice.com/intro/power.html) is attached separately. + > A link to the [article about drone batteries](https://propwashservice.com/en/intro/power) is attached separately.

Battery compatible with RadioMaster TX16S @@ -204,4 +206,7 @@ Prices start at $110. There are versions with a multimodule, ELRS on 2.4GHz, and

## Transmitter Setup -[Detailed documentation on EdgeTX](https://edgetx.gitbook.io/edgetx-user-manual/b-and-w-radios) \ No newline at end of file +[Detailed documentation on EdgeTX](https://edgetx.gitbook.io/edgetx-user-manual/b-and-w-radios) + +Video with basic EdgeTX transmitter setup: +https://www.youtube.com/watch?v=wU67j2G5Ibg \ No newline at end of file diff --git a/docs/en/shop/airplanes.md b/docs/en/shop/airplanes.md new file mode 100644 index 00000000..d54876c7 --- /dev/null +++ b/docs/en/shop/airplanes.md @@ -0,0 +1,18 @@ +# Parts and Consumables for RC FPV Planes and Wings + +| Item | Description | Link | Photo | +| :----------------------------------------------: | :----------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------: | +| Nylon hinges | | [buy](https://aliexpress.ru/item/32799882853.html?sku_id=65809468034&spm=a2g2w.productlist.list.8.32066938k02zV5) | ![](https://ae04.alicdn.com/kf/HTB142ECNXXXXXcDXVXXq6xXFXXXi/10-RC-aileron.jpg) | +| Voltage meter with low voltage buzzer | | [buy](https://ru.aliexpress.com/item/32720299175.html) | ![](https://ae04.alicdn.com/kf/HTB17gGMMVXXXXXXXVXXq6xXFXXXa/3-7-30-1-8-s-fe-li-ion-lipo.jpg) | +| 9g standard servos | | [blue ones](http://s.click.aliexpress.com/e/gOBHHC4) | ![](https://ae04.alicdn.com/kf/HTB10UBzQFXXXXaqXXXXq6xXFXXX3/5-10-20-50-100-SG90-SG-90.jpg) | +| Digital servos with metal gears (Emax ES08MDII) | | [Emax ES08MDII](https://aliexpress.ru/popular/es08md-digital-servo.html) | ![](https://ae04.alicdn.com/kf/Hbc881443307b4c0cb1fa3f8b521a5876k/EMAX-ES08MDII.jpg) | +| Bullet connectors | Convenient for connecting ESC to motor | [various diameters](http://s.click.aliexpress.com/e/bID3SgLq) | ![](https://ae04.alicdn.com/kf/H24795ca3455243d4b99a8de94edfd5596/20-40-3-5-RC-ESC.jpg) | +| Propeller balancer | | [buy](https://aliexpress.ru/item/1005002778082847.html?sku_id=12000022144011088&spm=a2g2w.productlist.list.1.4ce51a217sngi0) | ![](https://ae04.alicdn.com/kf/HTB1HNOARVXXXXazXpXXq6xXFXXXa/-.jpg) | +| Control horns | | [nylon](http://s.click.aliexpress.com/e/UIwQLqg) | ![](https://ae04.alicdn.com/kf/H45dfd7af7f0d451ba562184bf96758a6a/10.jpg) | +| Pushrod stoppers | | [buy](https://a.aliexpress.com/_m0geT5Y) | ![](https://ae04.alicdn.com/kf/HTB108dAivuSBuNkHFqDq6xfhVXa0/10-RC.jpg) | +| Carbon tubes 500mm and 1000mm | | [500 mm](https://a.aliexpress.com/_m0ZI1w6), [1000 mm](https://a.aliexpress.com/_mqBfyOO) | ![](https://ae04.alicdn.com/kf/HTB1UPm9bgoQMeJjy1Xaq6ASsFXax/Ormino-6-8-10-12-14.jpg) | +| Magnets | For compartment covers | [buy](https://aliexpress.ru/item/1005001625480797.html?sku_id=12000016871732454&spm=a2g2w.productlist.list.89.17401f4bNC64ZV) | ![](https://ae04.alicdn.com/kf/HTB1sEXFz1uSBuNjy1Xcq6AYjFXau/10-5-2-20.jpg) | +| Carbon rods | For reinforcement and pushrods | [buy](https://a.aliexpress.com/_mPUoGtM) | ![](https://ae04.alicdn.com/kf/H01b33631c04b4930a8f7ba8b337e650f9/1-1-5.jpg) | +| UHU-POR glue | For plastic and foam | [buy](https://www.ozon.ru/product/uhu-kley-universalnyy-50-ml-24288923/?sh=LsNWP4fz) | ![](https://www.globalhobby.ru/wa-data/public/shop/products/47/13/1347/images/4790/41341.jpg.750@2x.jpg) | +| Kleiberit PUR 501 glue | PUR 501, for foam board and polystyrene models; expands when drying and fills gaps | [buy](https://market.yandex.ru/search?text=%D0%9F%D0%A3%D0%A0-%D0%BA%D0%BB%D0%B5%D0%B9%20Kleiberit%20501.0%20%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%BB%D0%B8%D1%83%D1%80%D0%B5%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9%2C%20D4%2C%200.5%20%D0%BA%D0%B3&cpa=0&onstock=0&local-offers-first=0) | ![](https://ellmas.ru/upload/iblock/801/8012f3a8129f8839682e7ce217cf4cbe.jpg) | +| Bamboo skewers | | Available at any grocery store | ![](https://images.ru.prom.st/636921421_w200_h200_palochki-bambukovye-dlya.jpg) | diff --git a/docs/en/shop/lifehacks.md b/docs/en/shop/lifehacks.md new file mode 100644 index 00000000..20970de5 --- /dev/null +++ b/docs/en/shop/lifehacks.md @@ -0,0 +1,57 @@ +##### No advertising, just tips based on personal experience. + +##### P.S. This was relevant until February 2022, but let's hope that someday these tips will be useful again... wishing everyone the best. + +## USD as default! + +Forget about paying in rubles. At least on AliExpress, Banggood, and foreign online stores. +Dollar prices are fixed. Today the dollar is 73 rubles, tomorrow 81. The price changes everywhere if your account settings have RUB/Ruble as the currency. Yes, sometimes sellers change prices during sales to create the effect of a big discount, but that's a different matter. Also, when communicating with pilots from other countries, discussing prices in dollars is much easier than everyone converting from their currency to the other person's currency. + +What do you need for this? + +In your profile settings, there's usually a country/language selection and a currency selection. Simply change the currency to USD ($). + +When shopping at Russian stores, this obviously won't work, but we're talking about how to save money, right? In that case, we try to get the maximum benefit and first go to foreign stores (visit their websites). + +## To Pyaterochka or Magnit? + +This is about price comparison tools that allow you to compare prices between different stores in the selected parser's database. +One I know of is [rcsearch](https://rcsearch.info). Perhaps the most convenient search engine at the moment in my opinion - it not only shows options from most current stores but also offers discounts, displays new items on the main page, and sorts by categories. Isn't that nice? + +What are the downsides, why doesn't everyone talk about this resource? + +The simple obvious answer is that this parser doesn't just search for options - it also converts product links to referral links - named links where the author receives a percentage for recommendations when you make a purchase. + +Bloggers, as many know, partly earn their bread from referrals. Obviously, linking to someone else's referral links isn't profitable for them. Some try to write their own bots and post good deals with their referral links in channels. This is a standard situation; everyone wants to eat, and there's nothing shameful about it. Everyone decides for themselves whether to use a referral link (it doesn't affect you - the product price doesn't change, but the author gets a small commission), whether to create referral links themselves and try to earn something (the percentages are tiny, you'll have to work a long time to get anything significant) - just know that such search engines exist and they're quite convenient. + +## So I set a different currency, and now Sberbank charges for conversion, there's no savings. + +Hold on, no Sberbank. I'm not a Sberbank hater, I just suggest taking a calculator and calculating what price comes out on AliExpress for a certain product when displayed in rubles (in fact, the ruble price on Ali is the same dollar price at AliExpress's ruble exchange rate - they have their own conversion), when displayed in dollars at the Sberbank (or any other bank) buying rate, and if calculated at the Central Bank (CB) rate. Surprisingly, it comes out more expensive in rubles on Ali, cheaper at the CB rate. Among banks, Tinkoff Bank has the minimum commission, but still there's one - a ruble or three difference from the CB dollar rate. + +What do I care about your 100 rubles, you ask? Why not consider that all equipment, all aircraft, and other stuff from China could have been paid at the CB rate with the same success? And there the savings are already significant, right? "From the world a thread, for me a shirt" or "don't have 100 rubles, have 100 friends, each will give 2 rubles - I'll have 200" fits here. For me, having spent about 1.5 million rubles on Ali alone (and I don't shop only there... and yes, such a sum is scary), the savings seem significant. But the choice is yours. + +So how do you pay at the CB rate? (no, not an ad) Svyaznoy (still) has a theme with the Svyaznoy Plus bank card, formerly Kukuruza (https://plus.svyaznoy.ru/). You can get it for free, or you can buy it for about 350 rubles. But free ones are brought to Svyaznoy branches in small quantities and are grabbed instantly. You have to buy. Maintenance is free, and the money for paying with the card is credited as points to the card, which can be spent within a month to buy accessories from Svyaznoy - cables, card readers, cases, and other small items. So, this card converts any currency different from rubles at the CB rate. At the time of purchase, it reserves 5% of the purchase amount in case the rate changes significantly. Within 5 days of the reservation, funds are debited, if the rate hasn't changed - the 5% returns, if it changed up or down - the difference returns (or not), don't worry! Points are also credited to the card for the purchase for several months, they can also be spent, sometimes paying almost 100% of the purchase at Svyaznoy. Over all this time, I've already received for free or for a pittance about 10 various cables, smartphone screen protectors, card readers, adapters, and more. You should have heard the voice of the operator who called to clarify the order contents and cost when for items worth 4000 rubles I paid only 500 rubles... Overall, convenient. + +Also, multi-currency cards are now popular. You buy dollars from the bank in advance, keep them in your account, then pay when needed. Besides buying from the bank, you can buy them on the exchange, in the same Tinkoff Investments (not an advertisement) and withdraw to the card without commission. The price there fluctuates, differing from the CB by +/- a ruble. But it's still more profitable than paying in rubles on Ali :) +This way, withdrawing to a card with a dollar account, you can pay without conversions. + +Besides saving on payment, you can use browser plugins that return cashback on purchases, which can then be spent or withdrawn. I haven't studied the topic in detail since I mostly buy from mobile apps, and cashback is also credited to my bank card. + +## When do prices drop? + +Prices are best from November to March, as both platforms like Ali and sellers give out coupons for holidays. And the holidays during these dates are 11.11, Black Friday, New Year, Christmas, and Chinese New Year. During the rest of the period, there are also coupons, but not as "generous" as in the described period. So you can plan ahead what you'll need in the future, fill your cart, and wait. + +Regarding coupons - it's also simple. There are many resources that post coupons and terms of use. Easy to Google - "AliExpress coupons" etc. + +## What about large purchases? + +Also an important point. If there's a way to split a purchase over 200 euros into parts - I recommend doing so, for example, if you're getting kit sets or lots of batteries, etc. + +What 200 euros? +"To receive a purchase from a foreign online store, a Russian citizen must pay a fee if the purchase value exceeds 200 euros or its weight is more than 31 kg. The fee is 15% of the amount exceeding the value threshold and at least 2 euros per 1 kg of excess weight. This condition has been in effect in Russia since January 1, 2020." + +Some sellers, on request, can write a smaller amount on the package. But it doesn't always work. If you bought on AliExpress - it will send a declaration with the price shown in orders to customs. One of the lifehacks is to ask the seller to help avoid the tax; they'll offer to buy the product for a cent, then send your order under its guise. + +BUT: this won't work if you ordered to a pickup point (parcel locker/self-pickup) instead of Russian Post delivery. Customs brokers of suppliers delivering to parcel lockers check packages very carefully. In addition to the customs fee, they can also send the package back to the sender or even dispose of it if "this product is not intended for personal use." This often happens if the product name contains "drone/quadcopter," the contents include a micro camera, transmitter module, or similar... So when buying hobby items, I recommend ordering exclusively by post, there's a better chance it will go through, although it will be slower, and in the way described above, it can also save you additional funds. + +Be attentive, look for pitfalls, ask the community for tips, help others, and everything will be fine :) diff --git a/docs/en/theworld/Serbija.md b/docs/en/theworld/Serbija.md new file mode 100644 index 00000000..0346f55e --- /dev/null +++ b/docs/en/theworld/Serbija.md @@ -0,0 +1,115 @@ +# FPV in Serbia Guide + +This page contains notes from the FPV community in Serbia: spot maps, chat links, flying regulations, and more. + +## Laws + +The laws are quite relaxed: + +Up to 900 grams - Category 1, registration is only required if: + +- You fly above 100 meters +- Near airports +- More than 500m away from yourself +- Over people +- Near people (30m) +- Near prohibited zones +- At night +- The drone is carrying something + +👉 [Link to regulations](https://cad.gov.rs/upload/Bespilotni%20vazduhoplovi/Pravilnik_o_bespilotnim_vazduhoplovima_Sl_glasnik_RS_broj_108-15-nova-eng.pdf) + +## Chats and Servers + +👉 [FPV in Serbia, main chat for Russian-speaking pilots on Telegram](https://forms.gle/cth6sK1sMgeXBMg8A) + +👉 [FPV Serbia 🇷🇸, English chat on Telegram (low activity)](https://t.me/fpvserbia) + +👉 [FPV Srbija, Serbian chat on Viber](https://invite.viber.com/?g2=AQB9gM56j3yFlEs4e%2F7A94xbBJcwGi7nr5CTWxWHJXALXGFkZTGxQX4rYcpHe5Dz) + +👉 [RC BERZA, buy/sell on Viber in Serbian](https://invite.viber.com/?g2=AQAimw9t307HcUs3whI3srAvqUWrYAAoMDVUc7qpP4%2B4wZbSl%2BdMHDDY5RK8nt3V) + +👉 [Russian-speaking community marketplace](https://selective-tarragon-f1b.notion.site/FPV-3aaf0c40d79b44f398d7982da1cf2b33?pvs=4) + +👉 [Discord server for simulator flights](https://discord.gg/3W55nkAA) + +👉 [Serbian forum (low activity)](https://fpv.rs/) + +## Maps + +🗺️ [Official no-fly zone map](https://cad.gov.rs/lat/strana/23311/bespilotni-vazduhoplovi) + +🗺️ [FPV spots map on Google Maps (editable)](https://maps.app.goo.gl/HJ2VQ9K3NeJfHJ3XA) + +🗺️ [Another map with no-fly zones](https://www.bpl.rs/en/approved-flights-map/) + +According to Sergei Orekhov, top places worth driving to for flying: + +Far away: + +1. Tara National Park - on the border with Bosnia near Montenegro (3.5 hours by car from Belgrade); +2. Fruška Gora National Park - not far from Novi Sad, you can take a train there in half an hour and then taxi (or 1 hour by car from Belgrade); +3. Golubac Fortress - a beautiful freestyle location like from simulators, but flying might not be allowed there) (2 hours); +4. Uvac - a place with deep canyons and river valley (3.5 hours); +5. Stara Planina National Park - a mountain park with waterfalls (3.5 hours); + +Relatively close: + +1. Avala - small hills with a beautiful view of sunset Belgrade (about 30 min). + +## Shopping + +🛍️ [Joint order list from drone-fpv-racer.com (DFR)](https://docs.google.com/spreadsheets/d/19KzPUGUyeNiDDC7pDzb1e0e0x0PTzwcWPI2U6mR1TV0/edit?usp=sharing) + +### Guide: How to order from Europe without paying huge import taxes + +Contact DE PREVOZ. [Their website](https://deprevoz.com/). + +Steps: + +1. Write to Ivan on Viber (he understands English) to get your address and details to specify on the package. + [Link for smartphone](viber://add?number=381645985589) and [for PC version](viber://chat?number=+381645985589). + +2. You'll receive instructions like this: + + > The procedure is as follows, + > You buy and pay online and send to our warehouse in Germany. + > When it arrives there in the first next tour, we bring it to Serbia. + > Price is from 5€ per kilogram, minimum charge 20€ for packages from 0 to 4kg. + > Send invoices to ukprevozin@gmail.com > \*Note for packages outside the EU (China, America, UK, CH, Norway) that are subject to customs. You can buy only packages for which you can pay the tax online because we are no longer able to pay the tax for you. + +3. And an address like this (in this format with your details): + + > Ordering address: + > + > Name: ID International + > + > Last name: SorekhovBg + > + > Address: Osterholzallee 140 - 2.3 + > + > Postal code: 71636 + > + > City: Ludwigsburg + > + > Phone: +4915904632469 + +4. Enter the received details for delivery (screenshot example from fpv-racer in France). + +

+ delivery address example from fpv-racer in France, screenshot +

+ +5. Select Germany as the delivery country, make sure that European VAT is included in the prices at checkout (19% I think, to avoid issues with German customs), choose a convenient delivery method (since taxes are paid, you can choose free DHL Express, delivery to the warehouse takes a day or two). + +6. Monitor the package via DHL. From the moment it arrives at their warehouse, delivery to Serbia takes about a week (maybe faster, maybe a bit longer; they run the truck 4 times a month, nearest dates are usually on the [website](https://deprevoz.com/datumi-polaska-html), but may differ by a day or two). + +7. Wait for an SMS to your Serbian number (better not to message Ivan on Viber, everything will arrive) that you specified, or a message on Viber/WhatsApp saying the package has arrived + + > ('Jutro.. + > + > Samo da proverim,dobili poruku za danasnju podelu pakete od 10h do 12h na parkingu Ekstra centra,Omladinskih brigada 100? + > + > Nenad,pozz) + +8. Go to the Ekstra shopping center parking lot (Omladinskih brigada 100), head to the far end from the entrance and look for a yellow van where two people will be handing out packages, pay them 20 euros or however much the delivery costs, and leave with your package. From b283040109af41cca3f7f73e73ffbfd68072a0b9 Mon Sep 17 00:00:00 2001 From: mituritsyn Date: Fri, 13 Feb 2026 21:30:04 +0100 Subject: [PATCH 4/5] AI autors refactor --- .eslintrc.cjs | 2 + .husky/pre-commit | 5 +- .lintstagedrc | 10 +- docs/.vitepress/config/shared.ts | 159 ++++++- docs/.vitepress/theme/Layout.vue | 59 +-- docs/.vitepress/theme/index.ts | 7 +- docs/en/intro/beginning.md | 1 - docs/public/robots.txt | 4 + docs/ru/intro/beginning.md | 1 - docs/ru/intro/sim.md | 1 - package.json | 13 +- yarn.lock | 701 +++++++++++++++++++++---------- 12 files changed, 687 insertions(+), 276 deletions(-) create mode 100644 docs/public/robots.txt diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 33ea6697..86673d29 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,6 +2,7 @@ module.exports = { env: { browser: true, es2021: true, + node: true, }, extends: [ "eslint:recommended", @@ -10,6 +11,7 @@ module.exports = { "plugin:markdown/recommended", "prettier", ], + parser: "vue-eslint-parser", parserOptions: { ecmaVersion: "latest", parser: "@typescript-eslint/parser", diff --git a/.husky/pre-commit b/.husky/pre-commit index 5a182ef1..2312dc58 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -yarn lint-staged +npx lint-staged diff --git a/.lintstagedrc b/.lintstagedrc index 01dc9da8..cfe6f2ad 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,4 +1,6 @@ -{ - "*.{js,jsx,ts,tsx,md}": "eslint --fix", - "*": "prettier --write --ignore-unknown" -} +{ + "*.{js,cjs,mjs,ts,vue,md,json}": [ + "prettier --write", + "eslint --fix" + ] +} diff --git a/docs/.vitepress/config/shared.ts b/docs/.vitepress/config/shared.ts index 387c9b1a..3d9e342b 100644 --- a/docs/.vitepress/config/shared.ts +++ b/docs/.vitepress/config/shared.ts @@ -1,17 +1,99 @@ -import { defineConfig } from "vitepress"; -import { search as ruSearch } from "./ru"; +import { defineConfig, type HeadConfig } from "vitepress"; +import { ViteImageOptimizer } from "vite-plugin-image-optimizer"; +import fs from "node:fs"; +import path from "node:path"; +import { execSync } from "node:child_process"; +import { createContentLoader, type SiteConfig } from "vitepress"; +import { Feed } from "feed"; export const shared = defineConfig({ - rewrites: { - "en/:rest*": ":rest*", - }, + rewrites: { "en/:rest*": ":rest*" }, ignoreDeadLinks: true, lastUpdated: true, cleanUrls: true, metaChunk: true, + transformPageData(pageData) { + // 1. Meta Description + if (!pageData.frontmatter.description && pageData.filePath) { + try { + const fullPath = path.resolve(process.cwd(), "docs", pageData.filePath); + if (fs.existsSync(fullPath)) { + const description = excerpt(fs.readFileSync(fullPath, "utf-8")); + if (description) { + pageData.description = description; + pageData.frontmatter.description = description; + } + } + } catch (e: unknown) { + console.error(`Failed to generate description for ${pageData.filePath}`, e); + } + } + + // 2. Simple Authors from Git + if (pageData.filePath) { + try { + const fullPath = path.resolve(process.cwd(), "docs", pageData.filePath); + const history = execSync(`git log --follow --format="%an|%ae" -- "${fullPath}"`, { encoding: "utf-8" }) + .split("\n") + .map((l: string) => l.trim()) + .filter(Boolean); + + const emailsUsed = new Set(); + const namesUsed = new Set(); + const authors: string[] = []; + + for (const line of history) { + const [name, email] = line.split("|"); + if (!name || !email || email.includes("[bot]") || emailsUsed.has(email)) continue; + + emailsUsed.add(email); + if (!namesUsed.has(name)) { + namesUsed.add(name); + authors.push(name); + } + } + + if (authors.length > 0) { + pageData.frontmatter.gitAuthors = authors; + } + } catch { + // ignore errors during author extraction + } + } + }, + + transformHead({ pageData }) { + const head: HeadConfig[] = []; + if (pageData.description) { + head.push(["meta", { property: "og:description", content: pageData.description }]); + head.push(["meta", { name: "twitter:description", content: pageData.description }]); + } + if (pageData.title) { + head.push(["meta", { property: "og:title", content: pageData.title }]); + head.push(["meta", { name: "twitter:title", content: pageData.title }]); + } + + const jsonLd = { + "@context": "https://schema.org", + "@type": "Article", + headline: pageData.title, + description: pageData.description, + author: pageData.frontmatter.gitAuthors + ? pageData.frontmatter.gitAuthors.map((name: string) => ({ "@type": "Person", name })) + : { "@type": "Organization", name: "PropWash Service" }, + }; + head.push(["script", { type: "application/ld+json" }, JSON.stringify(jsonLd)]); + return head; + }, + + buildEnd: async (config: SiteConfig) => { + await generateFeed(config); + }, + sitemap: { hostname: "https://propwashservice.com" }, head: [ ["link", { rel: "icon", type: "image/x-icon", href: "/favicon.svg" }], + ["link", { rel: "alternate", type: "application/rss+xml", title: "RSS Feed", href: "/feed.rss" }], ["meta", { property: "og:type", content: "website" }], ["meta", { property: "og:locale", content: "en" }], ["meta", { property: "og:title", content: "DroneDocs" }], @@ -24,7 +106,6 @@ export const shared = defineConfig({ { type: "text/javascript" }, '(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(92209567, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true });', ], - // ["noscript", {}, ['div', {}, ["img", {src: "https://mc.yandex.ru/watch/92209567", style: "position:absolute; left:-9999px;"}]]], ], themeConfig: { @@ -41,16 +122,70 @@ export const shared = defineConfig({ { icon: "youtube", link: "https://www.youtube.com/@PropWashService" }, ], search: { - provider: "algolia", + provider: "local", options: { - appId: "T2WUNRWNAH", - apiKey: "682cbd880443f6771b3b4c37c137984e", - indexName: "propwashservice_ru", locales: { - ...ruSearch, + ru: { + translations: { + button: { buttonText: "Поиск", buttonAriaLabel: "Поиск" }, + modal: { + noResultsText: "Нет результатов по запросу", + resetButtonTitle: "Сбросить поиск", + footer: { selectText: "выбрать", navigateText: "перейти", closeText: "закрыть" }, + }, + }, + }, }, }, }, - // carbonAds: { code: '', placement: '' } }, + vite: { plugins: [ViteImageOptimizer()] }, }); + +function excerpt(content: string) { + if (!content) return ""; + const stripped = content + .replace(/^---[\s\S]*?---\n*/, "") + .replace(//gi, "") + .replace(//gi, "") + .replace(/#+ .*/g, "") + .replace(/!\[.*?\]\(.*?\)/g, "") + .replace(/\[(.*?)\]\(.*?\)/g, "$1") + .replace(/<.*?>/g, "") + .replace(/`{1,3}.*?`{1,3}/gs, "") + .replace(/&[a-z0-9#]+;/gi, "") + .replace(/\s+/g, " ") + .trim(); + return stripped.length > 160 ? stripped.slice(0, 157) + "..." : stripped; +} + +async function generateFeed(config: SiteConfig) { + const hostname = "https://propwashservice.com"; + const feed = new Feed({ + title: "DroneDocs", + description: "FPV Guides", + id: hostname, + link: hostname, + language: "ru", + image: `${hostname}/favicon.svg`, + favicon: `${hostname}/favicon.svg`, + copyright: "PropWash Service", + }); + const posts = await createContentLoader("**/*.md", { excerpt: true, render: true }).load(); + posts.sort((a, b) => +new Date(b.frontmatter.date || 0) - +new Date(a.frontmatter.date || 0)); + for (const { url, excerpt, frontmatter, html } of posts) { + if (url.includes("/public/")) continue; + feed.addItem({ + title: frontmatter.title || "DroneDocs Article", + id: `${hostname}${url}`, + link: `${hostname}${url}`, + description: excerpt, + content: html, + author: [{ name: "PropWash Service", link: hostname }], + date: frontmatter.date ? new Date(frontmatter.date) : new Date(), + }); + } + const outDir = path.resolve(config.outDir); + if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true }); + fs.writeFileSync(path.join(outDir, "feed.rss"), feed.rss2()); +} diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue index 2808d8ae..85554515 100644 --- a/docs/.vitepress/theme/Layout.vue +++ b/docs/.vitepress/theme/Layout.vue @@ -1,26 +1,12 @@ - -// Функция для переключения языка -function switchLanguage(newLang: string) { - lang.value = newLang; -} + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index ab2a5949..7889c9bb 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,3 +1,8 @@ import DefaultTheme from "vitepress/theme"; +import Layout from "./Layout.vue"; import "./custom.css"; -export default DefaultTheme; + +export default { + extends: DefaultTheme, + Layout, +}; diff --git a/docs/en/intro/beginning.md b/docs/en/intro/beginning.md index 0dd4c884..6a262990 100644 --- a/docs/en/intro/beginning.md +++ b/docs/en/intro/beginning.md @@ -9,7 +9,6 @@ # Introduction -Authors: [Andrey Sh.](https://github.com/EIIIE), [Valentina](https://github.com/ikherty) ## What is it, and how is it used? diff --git a/docs/public/robots.txt b/docs/public/robots.txt new file mode 100644 index 00000000..06368601 --- /dev/null +++ b/docs/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://propwashservice.com/sitemap.xml diff --git a/docs/ru/intro/beginning.md b/docs/ru/intro/beginning.md index 074e02be..7e21cc08 100644 --- a/docs/ru/intro/beginning.md +++ b/docs/ru/intro/beginning.md @@ -9,7 +9,6 @@ # Введение -Авторы: [Андрей Щ.](https://github.com/EIIIE), [Валентина](https://github.com/ikherty) ## Что за фрукт и с чем едят? diff --git a/docs/ru/intro/sim.md b/docs/ru/intro/sim.md index dd9273f4..798d0a3a 100644 --- a/docs/ru/intro/sim.md +++ b/docs/ru/intro/sim.md @@ -2,7 +2,6 @@ Зачем симулятор полетов на дроне нужен, где его взять и как выбрать самый реалистичный? Можно ли скачать бесплатно, торрентом? -Авторы: [Никита](https://github.com/suput), [Валентина](https://github.com/ikherty), [Илья](https://t.me/uncleDX) Статья на этапе написания. diff --git a/package.json b/package.json index b33a93c3..2f9519b6 100644 --- a/package.json +++ b/package.json @@ -15,21 +15,24 @@ "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-vue": "^9.9.0", - "husky": "^8.0.0", - "lint-staged": "^13.1.0", + "feed": "^5.2.0", + "husky": "^9.1.7", + "lint-staged": "^16.2.7", "prettier": "^2.8.3", "sass": "^1.58.0", - "typescript": "^5.9.0" + "sharp": "^0.34.5", + "svgo": "^4.0.0", + "typescript": "^5.9.0", + "vite-plugin-image-optimizer": "^2.0.3" }, "scripts": { - "prebuild": "node scripts/generate-sitemap.cjs", "dev": "vitepress dev docs", "build": "vitepress build docs", "preview": "vitepress preview docs", "build-preview": "yarn build && yarn preview", "lint": "eslint . --fix", "format-all": "npx prettier . --write --ignore-unknown", - "prepare": "husky install" + "prepare": "husky" }, "dependencies": { "vitepress": "^1.6.0" diff --git a/yarn.lock b/yarn.lock index 7d57ec6b..5860d4c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -203,6 +203,13 @@ "@docsearch/css" "3.8.2" algoliasearch "^5.14.2" +"@emnapi/runtime@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" + integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== + dependencies: + tslib "^2.4.0" + "@esbuild/aix-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" @@ -381,6 +388,153 @@ resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== +"@img/colour@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/colour/-/colour-1.0.0.tgz#d2fabb223455a793bf3bf9c70de3d28526aa8311" + integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw== + +"@img/sharp-darwin-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz#6e0732dcade126b6670af7aa17060b926835ea86" + integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.2.4" + +"@img/sharp-darwin-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz#19bc1dd6eba6d5a96283498b9c9f401180ee9c7b" + integrity sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.2.4" + +"@img/sharp-libvips-darwin-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz#2894c0cb87d42276c3889942e8e2db517a492c43" + integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== + +"@img/sharp-libvips-darwin-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz#e63681f4539a94af9cd17246ed8881734386f8cc" + integrity sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg== + +"@img/sharp-libvips-linux-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz#b1b288b36864b3bce545ad91fa6dadcf1a4ad318" + integrity sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw== + +"@img/sharp-libvips-linux-arm@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz#b9260dd1ebe6f9e3bdbcbdcac9d2ac125f35852d" + integrity sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A== + +"@img/sharp-libvips-linux-ppc64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz#4b83ecf2a829057222b38848c7b022e7b4d07aa7" + integrity sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA== + +"@img/sharp-libvips-linux-riscv64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz#880b4678009e5a2080af192332b00b0aaf8a48de" + integrity sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA== + +"@img/sharp-libvips-linux-s390x@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz#74f343c8e10fad821b38f75ced30488939dc59ec" + integrity sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ== + +"@img/sharp-libvips-linux-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz#df4183e8bd8410f7d61b66859a35edeab0a531ce" + integrity sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw== + +"@img/sharp-libvips-linuxmusl-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz#c8d6b48211df67137541007ee8d1b7b1f8ca8e06" + integrity sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw== + +"@img/sharp-libvips-linuxmusl-x64@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz#be11c75bee5b080cbee31a153a8779448f919f75" + integrity sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg== + +"@img/sharp-linux-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz#7aa7764ef9c001f15e610546d42fce56911790cc" + integrity sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.2.4" + +"@img/sharp-linux-arm@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz#5fb0c3695dd12522d39c3ff7a6bc816461780a0d" + integrity sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.2.4" + +"@img/sharp-linux-ppc64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz#9c213a81520a20caf66978f3d4c07456ff2e0813" + integrity sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA== + optionalDependencies: + "@img/sharp-libvips-linux-ppc64" "1.2.4" + +"@img/sharp-linux-riscv64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz#cdd28182774eadbe04f62675a16aabbccb833f60" + integrity sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw== + optionalDependencies: + "@img/sharp-libvips-linux-riscv64" "1.2.4" + +"@img/sharp-linux-s390x@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz#93eac601b9f329bb27917e0e19098c722d630df7" + integrity sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.2.4" + +"@img/sharp-linux-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz#55abc7cd754ffca5002b6c2b719abdfc846819a8" + integrity sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.2.4" + +"@img/sharp-linuxmusl-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz#d6515ee971bb62f73001a4829b9d865a11b77086" + integrity sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + +"@img/sharp-linuxmusl-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz#d97978aec7c5212f999714f2f5b736457e12ee9f" + integrity sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + +"@img/sharp-wasm32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz#2f15803aa626f8c59dd7c9d0bbc766f1ab52cfa0" + integrity sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw== + dependencies: + "@emnapi/runtime" "^1.7.0" + +"@img/sharp-win32-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz#3706e9e3ac35fddfc1c87f94e849f1b75307ce0a" + integrity sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g== + +"@img/sharp-win32-ia32@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz#0b71166599b049e032f085fb9263e02f4e4788de" + integrity sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg== + +"@img/sharp-win32-x64@0.34.5": + version "0.34.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8" + integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw== + "@jridgewell/sourcemap-codec@^1.5.5": version "1.5.5" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" @@ -1006,12 +1160,17 @@ algoliasearch@^5.14.2: "@algolia/requester-fetch" "5.37.0" "@algolia/requester-node-http" "5.37.0" -ansi-escapes@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" - integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^7.0.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.3.0.tgz#5395bb74b2150a4a1d6e3c2565f4aeca78d28627" + integrity sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg== dependencies: - type-fest "^1.0.2" + environment "^1.0.0" ansi-regex@^5.0.1: version "5.0.1" @@ -1030,7 +1189,7 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0, ansi-styles@^6.1.0: +ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -1068,7 +1227,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2, braces@^3.0.3: +braces@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -1085,11 +1244,6 @@ ccount@^2.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== -chalk@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -1130,20 +1284,20 @@ chokidar@^4.0.0: dependencies: readdirp "^4.0.1" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== dependencies: - restore-cursor "^4.0.0" + restore-cursor "^5.0.0" -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== +cli-truncate@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-5.1.1.tgz#455476face9904d94b7d11e98d9adbca15292ea5" + integrity sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A== dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" + slice-ansi "^7.1.0" + string-width "^8.0.0" color-convert@^2.0.1: version "2.0.1" @@ -1167,10 +1321,15 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -commander@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" - integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^14.0.2: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== concat-map@0.0.1: version "0.0.1" @@ -1184,7 +1343,7 @@ copy-anything@^3.0.2: dependencies: is-what "^4.1.8" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -1193,23 +1352,55 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-3.1.0.tgz#7aabc035f4e66b5c86f54570d55e05b1346eb0fd" + integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== + dependencies: + mdn-data "2.12.2" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + csstype@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.4.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" @@ -1232,6 +1423,11 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +detect-libc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + devlop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" @@ -1253,26 +1449,56 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" emoji-regex-xs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +emoji-regex@^10.3.0: + version "10.6.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" + integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== -entities@^4.5.0: +entities@^4.2.0, entities@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + esbuild@^0.21.3: version "0.21.5" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" @@ -1449,24 +1675,9 @@ esutils@^2.0.2: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -execa@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" + version "5.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1506,6 +1717,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +feed@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/feed/-/feed-5.2.0.tgz#f5cf2cb7395f64614017557764bdf49fe1a3d69a" + integrity sha512-hgH6CCb+7+0c8PBlakI2KubG6R+Rb1MhpNcdvqUXZTBwBHf32piwY255diAkAmkGZ6AWlywOU88AkOgP9q8Rdw== + dependencies: + xml-js "^1.6.11" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -1559,10 +1777,10 @@ fsevents@~2.3.2, fsevents@~2.3.3: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.0, get-east-asian-width@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" + integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== glob-parent@^5.1.2: version "5.1.2" @@ -1653,15 +1871,10 @@ html-void-elements@^3.0.0: resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - -husky@^8.0.0: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +husky@^9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== ignore@^5.2.0: version "5.3.2" @@ -1722,10 +1935,12 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== +is-fullwidth-code-point@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" + integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== + dependencies: + get-east-asian-width "^1.3.1" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" @@ -1749,11 +1964,6 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-what@^4.1.8: version "4.1.16" resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" @@ -1801,38 +2011,30 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lint-staged@^13.1.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.3.0.tgz#7965d72a8d6a6c932f85e9c13ccf3596782d28a5" - integrity sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ== - dependencies: - chalk "5.3.0" - commander "11.0.0" - debug "4.3.4" - execa "7.2.0" - lilconfig "2.1.0" - listr2 "6.6.1" - micromatch "4.0.5" - pidtree "0.6.0" - string-argv "0.3.2" - yaml "2.3.1" - -listr2@6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-6.6.1.tgz#08b2329e7e8ba6298481464937099f4a2cd7f95d" - integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== - dependencies: - cli-truncate "^3.1.0" +lint-staged@^16.2.7: + version "16.2.7" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.2.7.tgz#c4a635960c17b52fe774f1f40aee8ce1bd86531f" + integrity sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow== + dependencies: + commander "^14.0.2" + listr2 "^9.0.5" + micromatch "^4.0.8" + nano-spawn "^2.0.0" + pidtree "^0.6.0" + string-argv "^0.3.2" + yaml "^2.8.1" + +listr2@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.5.tgz#92df7c4416a6da630eb9ef46da469b70de97b316" + integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== + dependencies: + cli-truncate "^5.0.0" colorette "^2.0.20" eventemitter3 "^5.0.1" - log-update "^5.0.1" - rfdc "^1.3.0" - wrap-ansi "^8.1.0" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" locate-path@^6.0.0: version "6.0.0" @@ -1851,16 +2053,16 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-5.0.1.tgz#9e928bf70cb183c1f0c9e91d9e6b7115d597ce09" - integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== dependencies: - ansi-escapes "^5.0.0" - cli-cursor "^4.0.0" - slice-ansi "^5.0.0" - strip-ansi "^7.0.1" - wrap-ansi "^8.0.1" + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" magic-string@^0.30.18: version "0.30.19" @@ -1905,10 +2107,15 @@ mdast-util-to-string@^2.0.0: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf" + integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" @@ -1955,14 +2162,6 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -1971,15 +2170,10 @@ micromatch@^4.0.5, micromatch@^4.0.8: braces "^3.0.3" picomatch "^2.3.1" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -1998,16 +2192,16 @@ mitt@^3.0.1: resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +nano-spawn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-2.0.0.tgz#f1250434c09ae18870d4f729fc54b406cf85a3e1" + integrity sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw== + nanoid@^3.3.11: version "3.3.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" @@ -2028,14 +2222,7 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -nth-check@^2.1.1: +nth-check@^2.0.1, nth-check@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== @@ -2049,19 +2236,12 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== dependencies: - mimic-fn "^4.0.0" + mimic-function "^5.0.0" oniguruma-to-es@^3.1.0: version "3.1.1" @@ -2132,16 +2312,16 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + perfect-debounce@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" @@ -2157,7 +2337,7 @@ picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@0.6.0: +pidtree@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== @@ -2245,20 +2425,20 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + onetime "^7.0.0" + signal-exit "^4.1.0" reusify@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== -rfdc@^1.3.0, rfdc@^1.4.1: +rfdc@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== @@ -2318,11 +2498,55 @@ sass@^1.58.0: optionalDependencies: "@parcel/watcher" "^2.4.1" +sax@^1.2.4, sax@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.4.tgz#f29c2bba80ce5b86f4343b4c2be9f2b96627cf8b" + integrity sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw== + semver@^7.3.6, semver@^7.3.7, semver@^7.6.3: version "7.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== +semver@^7.7.3: + version "7.7.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" + integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== + +sharp@^0.34.5: + version "0.34.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" + integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== + dependencies: + "@img/colour" "^1.0.0" + detect-libc "^2.1.2" + semver "^7.7.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.34.5" + "@img/sharp-darwin-x64" "0.34.5" + "@img/sharp-libvips-darwin-arm64" "1.2.4" + "@img/sharp-libvips-darwin-x64" "1.2.4" + "@img/sharp-libvips-linux-arm" "1.2.4" + "@img/sharp-libvips-linux-arm64" "1.2.4" + "@img/sharp-libvips-linux-ppc64" "1.2.4" + "@img/sharp-libvips-linux-riscv64" "1.2.4" + "@img/sharp-libvips-linux-s390x" "1.2.4" + "@img/sharp-libvips-linux-x64" "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + "@img/sharp-linux-arm" "0.34.5" + "@img/sharp-linux-arm64" "0.34.5" + "@img/sharp-linux-ppc64" "0.34.5" + "@img/sharp-linux-riscv64" "0.34.5" + "@img/sharp-linux-s390x" "0.34.5" + "@img/sharp-linux-x64" "0.34.5" + "@img/sharp-linuxmusl-arm64" "0.34.5" + "@img/sharp-linuxmusl-x64" "0.34.5" + "@img/sharp-wasm32" "0.34.5" + "@img/sharp-win32-arm64" "0.34.5" + "@img/sharp-win32-ia32" "0.34.5" + "@img/sharp-win32-x64" "0.34.5" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2349,25 +2573,25 @@ shiki@^2.1.0: "@shikijs/vscode-textmate" "^10.0.2" "@types/hast" "^3.0.4" -signal-exit@^3.0.2, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== +slice-ansi@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403" + integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -2382,19 +2606,27 @@ speakingurl@^14.0.1: resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== -string-argv@0.3.2: +string-argv@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== -string-width@^5.0.0, string-width@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string-width@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-8.1.1.tgz#9b5aa0df72e3f232611c57fd47eb41dd97866bd3" + integrity sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + get-east-asian-width "^1.3.0" + strip-ansi "^7.1.0" stringify-entities@^4.0.0: version "4.0.4" @@ -2411,18 +2643,13 @@ strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: +strip-ansi@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -2442,6 +2669,19 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +svgo@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-4.0.0.tgz#17e0fa2eaccf429e0ec0d2179169abde9ba8ad3d" + integrity sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw== + dependencies: + commander "^11.1.0" + css-select "^5.1.0" + css-tree "^3.0.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.1.1" + sax "^1.4.1" + tabbable@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" @@ -2469,6 +2709,11 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -2488,11 +2733,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - typescript@^5.9.0: version "5.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" @@ -2571,6 +2811,14 @@ vfile@^6.0.0: "@types/unist" "^3.0.0" vfile-message "^4.0.0" +vite-plugin-image-optimizer@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vite-plugin-image-optimizer/-/vite-plugin-image-optimizer-2.0.3.tgz#2cc0af1f145288e12fdab56640c5282888191bb8" + integrity sha512-1vrFOTcpSvv6DCY7h8UXab4wqMAjTJB/ndOzG/Kmj1oDOuPF6mbjkNQoGzzCEYeWGe7qU93jc8oQqvoJ57al3A== + dependencies: + ansi-colors "^4.1.3" + pathe "^2.0.3" + vite@^5.4.14: version "5.4.20" resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.20.tgz#3267a5e03f21212f44edfd72758138e8fcecd76a" @@ -2642,29 +2890,36 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== +wrap-ansi@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" + integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yaml@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +yaml@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.2.tgz#5694f25eca0ce9c3e7a9d9e00ce0ddabbd9e35c5" + integrity sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A== yocto-queue@^0.1.0: version "0.1.0" From 33e693d3eecf2930f8649dcaf220b622837d7f43 Mon Sep 17 00:00:00 2001 From: mituritsyn Date: Fri, 13 Feb 2026 22:45:08 +0100 Subject: [PATCH 5/5] AI more translations and sidebar fix --- docs/.vitepress/config/en.ts | 59 +++-- docs/en/community/chats.md | 477 +++++++++++++---------------------- docs/en/community/coating.md | 254 +++++++++---------- docs/en/community/usefull.md | 136 +++++----- docs/en/settings/FAQ.md | 59 ++--- docs/en/settings/rates.md | 91 +++---- docs/en/settings/scripts.md | 28 +- docs/en/settings/skyzone.md | 27 +- docs/en/shop/DIY.md | 263 +++++++++---------- docs/en/shop/nessesary.md | 138 +++++----- docs/en/shop/set.md | 159 ++++++------ docs/en/shop/shops.md | 30 +++ 12 files changed, 817 insertions(+), 904 deletions(-) diff --git a/docs/.vitepress/config/en.ts b/docs/.vitepress/config/en.ts index a48b75d0..eac9d62b 100644 --- a/docs/.vitepress/config/en.ts +++ b/docs/.vitepress/config/en.ts @@ -30,45 +30,48 @@ function sidebar(): DefaultTheme.SidebarItem[] { text: "Introduction", collapsed: false, items: [ - { text: "Getting started", link: "/intro/beginning" }, - { text: "Flight styles", link: "/intro/flightstyles" }, - { text: "Simulators", link: "/intro/sim" }, - { text: "Transmitters", link: "/intro/tx" }, - { text: "Video systems", link: "/intro/vrx" }, - { text: "Chargers & Batteries", link: "/intro/power" }, + { text: "Getting started", link: "/en/intro/beginning" }, + { text: "Glossary", link: "/en/intro/glossarium" }, + { text: "Flight styles", link: "/en/intro/flightstyles" }, + { text: "Simulators", link: "/en/intro/sim" }, + { text: "Transmitters", link: "/en/intro/tx" }, + { text: "Video systems", link: "/en/intro/vrx" }, + { text: "Chargers & Batteries", link: "/en/intro/power" }, ], }, + /* { + text: "Shopping", + collapsed: true, + items: [ + { text: "Must-have items", link: "/en/shop/nessesary" }, + { text: "For Airplane Pilots", link: "/en/shop/airplanes" }, + { text: "Starter Kits", link: "/en/shop/set" }, + { text: "DIY Components", link: "/en/shop/DIY" }, + ], + }, */ { text: "Community", - collapsed: false, + collapsed: true, items: [ { text: "Dictionary", link: "https://oscarliang.com/fpv-dictionary/" }, - // { text: "Chats", link: "/community/chats" }, - // { text: "Useful Resources", link: "/community/usefull" }, - { text: "Software", link: "/community/software" }, - { text: "Soldering", link: "/community/soldering" }, - // { text: "Waterproofing", link: "/community/coating" }, + { text: "Chats", link: "/en/community/chats" }, + { text: "Useful Resources", link: "/en/community/usefull" }, + { text: "Software", link: "/en/community/software" }, + { text: "Soldering", link: "/en/community/soldering" }, + { text: "Waterproofing", link: "/en/community/coating" }, + { text: "Law", link: "/en/community/law" }, + { text: "Traveling with drones", link: "/en/community/bag" }, ], }, - /*{ - text: "Shopping", - collapsed: false, - items: [ - { text: "Must-have items", link: "/shop/nessesary" }, - { text: "For Airplane Pilots", link: "/shop/airplanes" }, - { text: "Starter Kits", link: "/shop/set" }, - { text: "DIY Components", link: "/shop/DIY" }, - ], - },*/ { text: "Settings", - collapsed: false, + collapsed: true, items: [ - // { text: "Beginner Questions", link: "/settings/FAQ" }, - // { text: "Rates", link: "/settings/rates" }, - // { text: "TX Scripts", link: "/settings/scripts" }, - { text: "For FrSky Users", link: "/settings/frsky" }, - // { text: "Skyzone SteadyView", link: "/settings/skyzone" }, + { text: "Beginner Questions", link: "/en/settings/FAQ" }, + { text: "Rates", link: "/en/settings/rates" }, + { text: "TX Scripts", link: "/en/settings/scripts" }, + { text: "For FrSky Users", link: "/en/settings/frsky" }, + { text: "Skyzone SteadyView", link: "/en/settings/skyzone" }, ], }, ]; diff --git a/docs/en/community/chats.md b/docs/en/community/chats.md index 78f2e1bc..feba04ff 100644 --- a/docs/en/community/chats.md +++ b/docs/en/community/chats.md @@ -1,296 +1,181 @@ -# Общеизвестные чаты и каналы по FPV и авиа тематике - -## Правила чатов - -### Общие правила для групп DRS: - -В группах запрещен мат, оскорбления, все, что запрещено законодательством РФ. Оффтоп крайне нежелателен и при определенных условиях будет классифицирован, как нарушение. Баны по усмотрению админов от суток до перманентного. -Запрещено использование клонов. За добавление клона в бан уходят все подозреваемые, причем перманентно. -Запрещены ники из одного-двух символов и прочие неопознаваемые. Лучше всего пишите в качестве имени свое имя и фамилию. Если боитесь - придумайте что-нибудь, что будет однозначно вас идентифицировать. -Просим всех добавлять аватарку! - -### Рекомендации по написанию вопросов - -В первую очередь, общество не любит мета-вопросы (подробнее - [nometa.xyz](https://nometa.xyz/ru.html)). - -Если вы ожидаете развернутых ответов и полезных советов от сообщества, рекомендуется описывать проблемы и ваши задумки как можно подробнее, не упуская проделанных шагов, версий используемого оборудования и прошивок, и прочие мелочи, которые могли произойти при этом. Учтите, что хоббисты в чате это не служба поддержки, они могут как ответить, так и проигнорировать. Иногда встречаются тролли, старайтесь не обращать внимания на их шутки, чтобы не влезть в конфликт и не попасть под предусмотренные санкции чата. Не игнорируйте наводящие вопросы, они могут помочь разобраться с вашей ситуацией. - -Не стесняйтесь задавать уточняющие вопросы, но учтите, что если ваш вопрос легко находится в поисковике с нужными результатами, вас могут проигнорировать или "послать в гугл", и чтобы не нервировать людей и не казаться человеком, который не умеет пользоваться ресурсами интернета, пробуйте предварительно искать ответы в поисковике браузера или даже в чате по ключевым словам. - -Если вы не знаете, как описать что-то, попробуйте обратиться к [словарю](https://propwashservice.com/ru/community/glossarium). - -Ниже представлены общие и тематические чаты, если у вас вопрос по чему-то конкретному, полезнее обращаться в тематический чат, если такой имеется в списке ниже. - -## Покупка/продажа: - -💸 (DRS) Крупнейшая FPV-барахолка для объявлений "продам" и "куплю" FPVMARKET, отправляются заявки через вход https://t.me/fpvmarket - -💸 (DRS) Отзывы о продавцах FPVMARKET https://t.me/fpvmarket_review - -💸 Dji Fpv Барахолка https://t.me/djifpvmarket - -💸 FPV-барахолка (by Alexander Chuykin) https://t.me/fpv_obmen - -💸 FPV барахолка Москва https://t.me/fpvsale - -💸 Антикризисный FPV шоппинг https://t.me/fpvshopping - -💸 Предзаказы с различных магазинов (сервис от QUADRO.TEAM) https://t.me/keksexpress - -## Разные типы дронов: - -👉 (DRS) Гоночные дроны, летающие крылья, FPV, радиоуправляемые модели. Хобби, общение. https://t.me/rcpilots - -👉 Потерянные/найденные дроны https://t.me/lostdron - -👉 Синевупы https://t.me/Cinewhoopers - -👉 BetaFPV Pavo Pico https://t.me/pavopico - -👉 KinoDrone - киноДрон https://t.me/KinoDrone - -👉 DRS Фристайл и съемки https://t.me/fpv_freestyle - -👉 DRS Крылья https://t.me/FPVwing - -👉 DRS Микродроны https://t.me/tinywhoop_fpv - -👉 По отдельному запросу можно попасть в DRS Долго и далеко (группа по дальнолетам), писать https://t.me/ValentinaPetrenko - -👉 DJI FPV Drone / Avata https://t.me/dji_fpv_avata - -👉 DRS Разговорчики (болото) https://t.me/drstrep - -👉 FPV симуляторы и киберспорт https://t.me/FpvCyberSport - -👉 DCL - The Game (симулятор) https://t.me/DCLTheGame - -## Для разработчиков и гиков: - -👉 ArduPilot/PX4 https://t.me/ardu_px4 - -👉 Inav https://t.me/INAVFlight - -👉 Inav RU https://t.me/INAV_ru - -👉 Betaflight https://t.me/betaflight_users - -👉 Betaflight devs on Slack https://slack.betaflight.com/ - -👉 EmuFlight https://discord.gg/8bVUYy - -👉 DroneCode Автономные полеты https://t.me/DroneCode - -👉 COEX Support https://t.me/COEXHelpdesk - -👉 ROS https://t.me/rosrussia - -👉 UAV Tech https://discord.gg/8VFFBs - -👉 Express LRS https://discord.gg/bbE3Qq - -👉 tBeacon RU https://t.me/tBeaconRU - -## Тематические: - -👉 DRS События и гонки, обсуждаем События ДронРейсинга https://t.me/fpv_events - -👉 DRS Оборудование https://t.me/FPVequipment - -👉 ЧАТ Мероприятий DSG (Drone Sports Global) https://t.me/DSG_EVENT - -👉 PropWash Service Chat (by ValentinaPetrenko) https://t.me/propwashservice - -👉 BlackBox (Черный ящик) https://t.me/bfblackbox - -👉 BlackBox 2.0 https://t.me/blackbox_two - -👉 Свидетели ELRS https://t.me/expresslrs_rus - -👉 Чат FPV пилотов QT(QUADRO.TEAM) https://t.me/quadroteam - -👉 Air Hobby https://t.me/airhobby - -👉 ReadyEdi https://t.me/readyediru - -👉 DJI FPV https://t.me/djifpvru - -👉 Walksnail Avatar (ru) https://t.me/hdfpv - -👉 SharkByte FPV / HDZERO https://t.me/SharkByteFPVru - -👉 Spinner Production https://t.me/spinnerproduction - -👉 Человек с Земли FPV https://t.me/fpvearth - -👉 FPV Moscow Band (by Anton Evdakov) https://t.me/FPV_Moscow - -👉 Дроны, вупы, FPV (by Alexander Chuykin) https://t.me/whoop_chat - -👉 Техпомощь (by Alexander Chuykin) https://t.me/tex_otd - -👉 FPV Guild (by Kiriodozaki) https://t.me/fpvguild - -👉 WARP chat (сообщество пилотов, продвигающих FPV LifeStyle) https://t.me/warpchat - -👉 setUP (by Alex setUP) https://t.me/setUP_m - -👉 FPVersus (by GreyDevilFox) https://t.me/fpversus - -👉 Официальный чат CADDX FPV https://t.me/caddxfpv_ruchat - -👉 fpvsim https://t.me/fpvsim - -## Чаты по городам и странам - -👉 Питер https://t.me/spb_copters - -👉 Южный чат СПб https://t.me/SouthDrone78 - -👉 По запросу https://t.me/KKastyan можно попасть в Северный чат СПб - -👉 Самолеты СПб https://t.me/joinchat/RuJoRQDrMkoqqVW1 - -👉 По запросу https://t.me/Pr0_fess0r можно попасть в Московский чат - -👉 ВАО Москвы https://t.me/fpvuaoandmo - -👉 ЗАО Москвы https://t.me/fpv_zao - -👉 По запросу https://t.me/ValentinaPetrenko можно попасть в Обнинский/Наро-Фоминский чат - -👉 По запросу https://t.me/orlv_tattooo можно попасть в чат Краснодарского края - -👉 По запросу https://t.me/hiflowfpv можно попасть в чат Курска - -👉 Екатеринбург https://t.me/fpv_ekb - -👉 Иркутск (см. описание чата) https://t.me/drones_irk - -👉 Дальний Восток https://t.me/fpvdvru - -👉 Белгород https://t.me/dronerace31 - -👉 RC AVIA 39 Авиамоделизм Калининград https://t.me/+3_BbiaLe6_01N2Yy - -👉 Казань https://t.me/fpv_dron_kazan - -👉 FPV Дагестан https://t.me/fpv_dag - -👉 По запросу https://t.me/ivan_racing_drone_omsk можно попасть в чат Омска - -👉 Киров https://t.me/fpv43 - -👉 Сочи https://t.me/fpvsochichat - -👉 Краснодар https://t.me/fpvkrd - -👉 По запросу https://t.me/elementale можно попасть в чат Красноярска - -👉 По запросу https://t.me/mzhelskiy можно попасть в чат Кемерово - -👉 Новосибирск https://t.me/nskfpv - -👉 Хабаровск FPV - сообщество https://t.me/FPVCHAT - -👉 FPV хулиганы Владивосток https://t.me/vdkfpv - -👉 FPV комьюнити по Уфе и Республике Башкортостан https://t.me/fpvufarb - -👉 FPV Бали https://t.me/bali_fpv - -👉 🇹🇭 FPV Thailand (Таиланд) https://t.me/ThailandFPV - -👉 🇰🇿 Казахстан https://t.me/FPVKazakhstan - -👉 🇰🇬 FPV Кыргызстан https://t.me/fpvkg - -👉 🇬🇪 FPV Georgia (Грузия) https://t.me/fpv_georgia - -👉 🇦🇲 FPV Armenia (Армения) https://t.me/fpv_armenia - -👉 🇹🇷 FPV Antalya (Турция) https://t.me/fpv_antalya - -👉 🇹🇷 Турция - видеографы, коптеры, дроны, операторы https://t.me/turkey_filmmakers - -👉 🇧🇾 Беларусь dr1by https://t.me/dr1by - -👉 🇵🇱 Польша https://t.me/fpv_poland - -👉 🇨🇾 Кипр https://t.me/fpvcyprus - -👉 🇷🇸 Сербия https://t.me/fpvserbia - -👉 🇦🇷 Аргентина https://t.me/argentinafpv - -## Авиамодели: - -👉 DRS Крылья https://t.me/FPVwing - -👉 Планеристы России FPV https://t.me/joinchat/S77erT-FsfolkFTM - -👉 FPVwingRussia (Drak) https://t.me/FPVwingRussia - -👉 FPV крылья и самолеты СПб https://t.me/joinchat/RuJoRQDrMkoqqVW1 - -👉 Печатные крылья https://t.me/printedwings - -👉 RC модели из листовых материалов https://t.me/RCMODELCUT - -👉 Класс RU_SPEC - чат пилотов (Гоночные крылья, основанные на классе SPEC FPVWRA) https://t.me/+kCuZbAB7w0o3ZTEy - -👉 Класс RU_SPEC - техничка https://t.me/+Xs1r2OD5G7sxZjIy - -👉 Heewing https://t.me/heewing - -👉 Talon https://t.me/talonfpv - -👉 Funjet Multiplex https://t.me/+zQn6DbkunHo0YTg6 - -👉 Дельфинарий (AtomRC Dolphin и ArWing Pro) https://t.me/dolph_pilots - -## Каналы - -### Тематические - -📌 FPV приколы https://t.me/fpvfunrus - -📌 RC AVIA 39 / Авиамоделизм https://t.me/rcavia39 - -📌 3D печатные самолеты https://t.me/fpvprinted - -📌 Caddx FPV & Walksnail https://t.me/CaddxFPVnWalksnail - -📌 FPVDudes - Новости, FPV, дроны https://t.me/fpvdudes - -📌 RDR.Инфо 🚀🚀🚀 Гонки дронов, FPV, drone racing https://t.me/rdrleague - -📌 Wow, That Flies! https://t.me/wtflies - -### Блоги - -📌 LeshaRodin FPV https://t.me/FPVSHIT - -📌 Naminao 1045 https://t.me/naminao_1045 - -📌 Flix: разработка полетного контроллера с нуля https://t.me/opensourcequadcopter - -📌 Anik FPV https://t.me/anikfpvlive - -📌 PropWash Service https://t.me/propwash - -📌 WARP FACTORY https://t.me/warpfactory - -📌 FPV LJ https://t.me/FPVLJ - -📌 Lemirix FPV https://t.me/Lemirix_Fpv - -📌 FPV Trip https://t.me/FPVtrip - -### Блоги с магазинами - -📌 Lavka u Lisa https://t.me/lavkaulisa - -📌 Keks Express https://t.me/keksexpress - -📌 RCSearch.ru FPV новинки скидки купоны промокоды https://t.me/rcmarket_rus +# Well-known FPV and Aviation Chats and Channels + +## Chat Rules + +### General Rules for DRS Groups: + +Profanity, insults, and anything prohibited by law are forbidden in the groups. Off-topic discussion is highly discouraged and may be classified as a violation under certain conditions. Bans are at the discretion of the admins, ranging from 24 hours to permanent. +The use of clones is prohibited. If a clone is added, all suspects will be permanently banned. +Usernames consisting of only one or two characters or other unidentifiable names are prohibited. It's best to use your real first and last name. If you're concerned about privacy, come up with something that uniquely identifies you. +We ask everyone to add an avatar! + +### Recommendations for Asking Questions + +First and foremost, the community dislikes meta-questions (more details at [nometa.xyz](https://nometa.xyz/en.md)). + +If you expect detailed answers and useful advice from the community, it is recommended to describe your problems and ideas as thoroughly as possible, including steps taken, versions of equipment and firmware used, and other details that might have occurred. Keep in mind that hobbyists in the chat are not a support service; they may choose to answer or ignore you. Occasionally you may encounter trolls; try not to pay attention to their jokes to avoid conflict and sanctions. Do not ignore follow-up questions, as they can help resolve your situation. + +Don't hesitate to ask clarifying questions, but note that if your question is easily found in a search engine, you might be ignored or told to "Google it." To avoid frustrating people and appearing like someone who cannot use internet resources, try searching in a browser or even within the chat using keywords first. + +If you don't know how to describe something, try referring to the [glossary](https://propwashservice.com/en/intro/glossarium). + +Below are general and thematic chats. If you have a question about something specific, it's more useful to contact a thematic chat if one exists in the list below. + +## Buy/Sell: + +💸 (DRS) The largest FPV marketplace for "sell" and "buy" ads: FPVMARKET. Submit entries via https://t.me/fpvmarket +💸 (DRS) Reviews of FPVMARKET sellers: https://t.me/fpvmarket_review +💸 Dji Fpv Marketplace: https://t.me/djifpvmarket +💸 FPV Marketplace (by Alexander Chuykin): https://t.me/fpv_obmen +💸 FPV Marketplace Moscow: https://t.me/fpvsale +💸 KZ Seller Reviews in Kazakhstan: https://t.me/+QUxQ6JJ94Ns4YzNi +💸 Anti-crisis FPV Shopping: https://t.me/fpvshopping +💸 Pre-orders from various stores (service by QUADRO.TEAM): https://t.me/keksexpress + +## Various Drone Types: + +👉 (DRS) Racing drones, flying wings, FPV, RC models. Hobbies, socializing. https://t.me/rcpilots +👉 Lost/found drones: https://t.me/lostdron +👉 Cinewhoops: https://t.me/Cinewhoopers +👉 BetaFPV Pavo Pico: https://t.me/pavopico +👉 KinoDrone - Cinematic drones: https://t.me/KinoDrone +👉 DRS Freestyle and Filming: https://t.me/fpv_freestyle +👉 DRS Wings: https://t.me/FPVwing +👉 DRS Micro-drones (Tiny Whoops): https://t.me/tinywhoop_fpv +👉 Access to DRS "Long and Far" (Long Range group) by request to: https://t.me/ValentinaPetrenko +👉 DJI FPV Drone / Avata: https://t.me/dji_fpv_avata +👉 DRS Talk (The Swamp): https://t.me/drstrep +👉 FPV Simulators and Cyber Sports: https://t.me/FpvCyberSport +👉 DCL - The Game (Simulator): https://t.me/DCLTheGame + +## For Developers and Geeks: + +👉 ArduPilot/PX4: https://t.me/ardu_px4 +👉 Inav: https://t.me/INAVFlight +👉 Inav RU: https://t.me/INAV_ru +👉 Betaflight: https://t.me/betaflight_users +👉 Betaflight devs on Slack: https://slack.betaflight.com/ +👉 EmuFlight: https://discord.gg/8bVUYy +👉 DroneCode Autonomous Flights: https://t.me/DroneCode +👉 COEX Support: https://t.me/COEXHelpdesk +👉 ROS: https://t.me/rosrussia +👉 UAV Tech: https://discord.gg/8VFFBs +👉 Express LRS: https://discord.gg/bbE3Qq +👉 tBeacon RU: https://t.me/tBeaconRU + +## Thematic: + +👉 DRS Events and Racing: discussing drone racing events. https://t.me/fpv_events +👉 DRS Equipment: https://t.me/FPVequipment +👉 DSG (Drone Sports Global) Event Chat: https://t.me/DSG_EVENT +👉 WAZUP! Crew (Tiny Whoop flights): https://t.me/wazup_crew +👉 PropWash Service Chat: https://t.me/propwashservice +👉 BlackBox: https://t.me/bfblackbox +👉 BlackBox 2.0: https://t.me/blackbox_two +👉 ELRS Witnesses: https://t.me/expresslrs_rus +👉 Air Hobby: https://t.me/airhobby +👉 ReadyEdi: https://t.me/readyediru +👉 DJI FPV: https://t.me/djifpvru +👉 Walksnail Avatar (RU): https://t.me/hdfpv +👉 SharkByte FPV / HDZERO: https://t.me/SharkByteFPVru +👉 Spinner Production: https://t.me/spinnerproduction +👉 Person from Earth FPV: https://t.me/fpvearth +👉 FPV Moscow Band (by Anton Evdakov): https://t.me/FPV_Moscow +👉 Drones, Whoops, FPV (by Alexander Chuykin): https://t.me/whoop_chat +👉 Technical Support (by Alexander Chuykin): https://t.me/tex_otd +👉 FPV Guild (by Kiriodozaki): https://t.me/fpvguild +👉 WARP chat (Community of pilots promoting FPV Lifestyle): https://t.me/warpchat +👉 setUP (by Alex setUP): https://t.me/setUP_m +👉 FPVersus (by GreyDevilFox): https://t.me/fpversus +👉 Official CADDX FPV Chat: https://t.me/caddxfpv_ruchat +👉 fpvsim: https://t.me/fpvsim +👉 FPV Pilots Chat QT (QUADRO.TEAM): https://t.me/quadroteam + +## Chats by Cities and Countries: + +👉 Saint Petersburg: https://t.me/spb_copters +👉 Saint Petersburg South Chat: https://t.me/SouthDrone78 +👉 Access to Saint Petersburg North Chat by request to: https://t.me/KKastyan +👉 Saint Petersburg Airplanes: https://t.me/joinchat/RuJoRQDrMkoqqVW1 +👉 Access to Moscow Chat by request to: https://t.me/Pr0_fess0r +👉 Moscow East (VAO): https://t.me/fpvuaoandmo +👉 Moscow West (ZAO): https://t.me/fpv_zao +👉 Access to Obninsk Chat by request to: https://t.me/niko2on +👉 Access to Naro-Fominsk Chat by request to: https://t.me/popov_ev +👉 Access to Krasnodar Krai Chat by request to: https://t.me/orlv_tattooo +👉 Access to Kursk Chat by request to: https://t.me/hiflowfpv +👉 Yekaterinburg: https://t.me/fpv_ekb +👉 Irkutsk (see chat description): https://t.me/drones_irk +👉 Far East: https://t.me/fpvdvru +👉 Belgorod: https://t.me/dronerace31 +👉 RC AVIA 39 Aeromodeling Kaliningrad: https://t.me/+3_BbiaLe6_01N2Yy +👉 Kazan: https://t.me/fpv_dron_kazan +👉 FPV Dagestan: https://t.me/fpv_dag +👉 Access to Omsk Chat by request to: https://t.me/ivan_racing_drone_omsk +👉 Kirov: https://t.me/fpv43 +👉 Sochi: https://t.me/fpvsochichat +👉 Krasnodar: https://t.me/fpvkrd +👉 Access to Krasnoyarsk Chat by request to: https://t.me/elementale +👉 Access to Kemerovo Chat by request to: https://t.me/mzhelskiy +👉 Novosibirsk: https://t.me/nskfpv +👉 Khabarovsk FPV Community: https://t.me/FPVCHAT +👉 FPV Hooligans Vladivostok: https://t.me/vdkfpv +👉 FPV Community in Ufa and Bashkortostan: https://t.me/fpvufarb +👉 FPV Bali: https://t.me/bali_fpv +👉 🇹🇭 FPV Thailand: https://t.me/ThailandFPV +👉 🇰🇿 Kazakhstan: https://t.me/FPVKazakhstan +👉 🇰🇬 FPV Kyrgyzstan: https://t.me/fpvkg +👉 🇬🇪 FPV Georgia: https://t.me/fpv_georgia +👉 🇦🇲 FPV Armenia: https://t.me/fpv_armenia +👉 🇹🇷 FPV Antalya: https://t.me/fpv_antalya +👉 🇹🇷 Turkey - Videographers, Copters, Drones, Operators: https://t.me/turkey_filmmakers +👉 🇧🇾 Belarus dr1by: https://t.me/dr1by +👉 🇵🇱 Poland: https://t.me/fpv_poland +👉 🇨🇾 Cyprus: https://t.me/fpvcyprus +👉 🇷🇸 Serbia: https://t.me/fpvserbia +👉 🇦🇷 Argentina: https://t.me/argentinafpv + +## Aircraft Models: + +👉 DRS Wings: https://t.me/FPVwing +👉 Russian FPV Glider Pilots: https://t.me/joinchat/S77erT-FsfolkFTM +👉 FPVwingRussia (Drak): https://t.me/FPVwingRussia +👉 FPV Wings and Airplanes St. Petersburg: https://t.me/joinchat/RuJoRQDrMkoqqVW1 +👉 Printed Wings: https://t.me/printedwings +👉 RC Models from Sheet Materials: https://t.me/RCMODELCUT +👉 Class RU_SPEC - Pilots Chat (Racing wings based on the SPEC FPVWRA class): https://t.me/+kCuZbAB7w0o3ZTEy +👉 Class RU_SPEC - Technical: https://t.me/+Xs1r2OD5G7sxZjIy +👉 Heewing: https://t.me/heewing +👉 Talon: https://t.me/talonfpv +👉 Funjet Multiplex: https://t.me/+zQn6DbkunHo0YTg6 +👉 Dolphinarium (AtomRC Dolphin and ArWing Pro): https://t.me/dolph_pilots + +## Channels + +### Thematic: + +📌 FPV Pranks: https://t.me/fpvfunrus +📌 RC AVIA 39 / Aeromodeling: https://t.me/rcavia39 +📌 3D Printed Airplanes: https://t.me/fpvprinted +📌 Caddx FPV & Walksnail: https://t.me/CaddxFPVnWalksnail +📌 FPVDudes - News, FPV, Drones: https://t.me/fpvdudes +📌 RDR.Info 🚀🚀🚀 Drone Racing, FPV: https://t.me/rdrleague +📌 Wow, That Flies!: https://t.me/wtflies + +### Blogs: + +📌 LeshaRodin FPV: https://t.me/FPVSHIT +📌 Naminao 1045: https://t.me/naminao_1045 +📌 Flix: Flight Controller Development from Scratch: https://t.me/opensourcequadcopter +📌 Anik FPV: https://t.me/anikfpvlive +📌 PropWash Service: https://t.me/propwash +📌 WARP FACTORY: https://t.me/warpfactory +📌 FPV LJ: https://t.me/FPVLJ +📌 Lemirix FPV: https://t.me/Lemirix_Fpv +📌 FPV Trip: https://t.me/FPVtrip + +### Blogs with Stores: + +📌 Lavka u Lisa: https://t.me/lavkaulisa +📌 Keks Express: https://t.me/keksexpress +📌 RCSearch.ru FPV news, discounts, coupons, promo codes: https://t.me/rcmarket_rus diff --git a/docs/en/community/coating.md b/docs/en/community/coating.md index 4bab8056..4eb01285 100644 --- a/docs/en/community/coating.md +++ b/docs/en/community/coating.md @@ -1,227 +1,225 @@ -# Все про влагозащиту +# Everything about Waterproofing -Без влагозащиты летать в снег и дождь на дронах рисковая затея - при попадании влаги на работающую электронику возможны (и в большинстве случаев возникают) глюки в виде внезапного отказа двигателей, потери связи, а при падении в соленую воду (море) окислы и повреждение схемы. +Flying in snow or rain without waterproofing is a risky endeavor for drones. If moisture gets onto active electronics, glitches such as sudden motor failure or loss of connection are likely (and in most cases, occur). Falling into salt water (the sea) leads to oxidation and circuit damage. -## Что необходимо покрывать герметиком? +## What should be covered with sealant? -Для максимальной защиты необходимо покрыть все ножки элементов электронных плат, если ножки находятся [под корпусом](https://yandex.ru/images/search?from=tabbar&text=bga%20qnf%20корпус%20smd), необходимо промазать корпус по периметру. Наносить на сам корпус черных элементов не обязательно, а в случае с [конденсаторами](https://yandex.ru/images/search?from=tabbar&text=smd%20capacitor) и [резисторами](https://yandex.ru/images/search?from=tabbar&text=smd%20resistor) необходимо нанести поверх элементов герметик и желательно слоем потолще, так как часть герметика может стечь, останется слабо залитая поверхность. Стоит **обратить внимание на наличие [барометра](https://yandex.ru/images/search?from=tabbar&text=barometr%20sensor%20bmp280%20DPS310%20smd)**, если он есть, и вы планируете его использовать, ни в коем случае **не допускайте попадания чего-либо в его отверстие**, можно перед нанесением герметика закрыть корпус скотчем. Также нельзя допускать попадания герметика в отверстия слота по microSD карту или usb разъема, перед нанесением стоит вставить заглушки. Контакты разъемов под коннекторы изнутри можно закрыть заглушками, чтобы не допустить попадания герметика, или замазать, если уверены, что не будете использовать их. У основания силиконовой изоляции проводов коннекторов рекомендуется нанести герметик, чтобы влага не попадала внутрь разъемов. +For maximum protection, you need to cover all the legs of electronic board elements. If the legs are [under the housing](https://yandex.ru/images/search?from=tabbar&text=bga%20qnf%20корпус%20smd), you should apply sealant around the perimeter of the housing. It is not necessary to apply it to the black bodies of the elements themselves, but for [capacitors](https://yandex.ru/images/search?from=tabbar&text=smd%20capacitor) and [resistors](https://yandex.ru/images/search?from=tabbar&text=smd%20resistor), sealant should be applied over the elements, preferably in a thicker layer, as part of the sealant may run off, leaving a poorly coated surface. You should **pay attention to the [barometer](https://yandex.ru/images/search?from=tabbar&text=barometer%20sensor%20bmp280%20DPS310%20smd)**; if one is present and you plan to use it, under no circumstances should you **let anything get into its opening**. You can cover the barometer housing with tape before applying the sealant. Additionally, do not allow sealant to get into the microSD card slot or USB connector; you should insert plugs before application. The contacts of connectors can be covered from the inside with plugs to prevent sealant entry, or sealed over if you are sure you won't use them. It is recommended to apply sealant at the base of the silicone insulation of the connector wires to prevent moisture from entering the connectors. -Такие детали как юниты и передатчики с экранами можно покрыть по периметру радиатора/экрана, или разобрать и промазать по вышеуказанным советам. Если сомневаетесь, что справитесь с разборкой, лучше не рисковать, и промазать только по периметру, от случайной влаги в траве или дождя этот вариант должен справиться. +Components like air units and transmitters with screens can be coated around the perimeter of the heatsink/shield, or disassembled and coated according to the advice above. If you are unsure about disassembly, it's better not to risk it and only coat the perimeter; this should handle accidental moisture from grass or rain. -Контакты после пайки также рекомендуется промазать герметиком. +It is also recommended to cover contacts with sealant after soldering. -## Какие есть варианты влагозащиты для электроники? +## What are the options for waterproofing electronics? -На 2024 год актуальны следующие варианты: +As of 2024, the following options are relevant: -- kotking -- силиконовый клей 705 -- клей B-7000 -- силиконовый герметик FX FPV AeroX V2 -- силиконовый лак FX FPV Aero WARP -- силиконовый лак FX FPV Aero Light +- Kotking +- Silicone Glue 705 +- B-7000 Glue +- FX FPV AeroX V2 Silicone Sealant +- FX FPV Aero WARP Silicone Varnish +- FX FPV Aero Light Silicone Varnish - DCA Electrolube -- Spinner protection silicone conformal coating V2 (спинер жижа) -- китайская силиконовая защита для плат ip65 +- Spinner Protection Silicone Conformal Coating V2 ("Spinner Liquid") +- Chinese IP65 Silicone Circuit Protection -Немного о каждом из них: +A bit about each of them: -## KOTKING, [если недоступно тут, ищите на teamblacksheep или в барахолке](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=339&search=kotking) +## KOTKING, [if unavailable here, look on Team BlackSheep or market boards](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=339&search=kotking) -Силикон. Коткинг долгое время был товаром премиум класса, продавался в основном за рубежом, а цена всегда была выше, чем у аналогов. Сейчас стал более доступным благодаря некоторым магазинам, и цена по итогу чуть выше некоторых аналогов. Представляет собой тюбик небольшого объема с жидким силиконом внутри. Объема хватает, чтобы покрыть не самым толстым слоем 3-4 коптера (подразумеваю электронику). Наносится из тюбика относительно густой каплей и размазывается палочкой по всей площади или выдавливается через доп насадку с узким отверстием, главное, не забывать его потом чистить или плотно заматывать, чтобы в следующий раз можно было воспользоваться. По инструкции он должен схватываться за 15-20 минут, но на личном опыте попадались разные, иногда попадался очень жидкий, такой схватывался через 12-16 часов, застывал больше суток; иногда попадался погуще, и застывал согласно инструкции; при этом жидкий спокойно хранился 2-3 месяца в полке, и за это время не менял своих свойств. До засыхания присутствует неприятный запах. Покрытие достаточно надежное, подтверждением тому ролики, как коптеры с покрытой им электроникой отлично работают под водой. Однако практика показала, что спустя сутки - двое нахождения включенного дрона в водоеме часть электроники все равно погибает, гарантий 100%, увы, нет. Если не было ручного вмешательства, он остается целостным слоем и защищает платы на отлично. Невозможно паять через нанесенный слой. Снимать не особо удобно, нельзя подцепить с краю и стянуть весь слой с платы, отрывается кусочками. Ацетоном не смывается. Предположительно можно снять с помощью растворителя 646 и щетки бОльшую часть покрытия, но как и любой другой силикон останется между ножками элементов на плате, что, как правило, мешает ремонтникам электроники. Немаловажный неприятный момент: при длительном хранении (несколько месяцев) может застыть внутри тюбика, но все же хранится в своей упаковке лучше, чем альтернативы в тюбиках для лака. Итого: +Silicone. Kotking was a premium product for a long time, sold mainly abroad, and the price was always higher than analogues. It has become more accessible now thanks to some stores, though the price is still slightly higher than some alternatives. It comes in a small tube with liquid silicone inside. One tube is enough to cover 3-4 drones (electronics) with a moderate layer. It is applied from the tube as a relatively thick drop and spread with a stick over the entire area, or squeezed through an additional nozzle with a narrow opening (remember to clean it or wrap it tightly afterward so it can be reused). According to the instructions, it should set in 15-20 minutes, but personal experience has varied; sometimes it was very liquid and took 12-16 hours to set, and over a day to fully cure. Yet, even the liquid version stored well for 2-3 months on a shelf without losing its properties. There is an unpleasant odor until it dries. The coating is quite reliable, as demonstrated by videos of drones working perfectly underwater. However, practice has shown that after 24-48 hours in a body of water, some electronics still fail; unfortunately, there are no 100% guarantees. If not manually disturbed, it remains as a solid layer and protects boards excellently. It is impossible to solder through the applied layer. Removing it isn't particularly convenient; you can't just peel the whole layer off; it comes off in pieces. It is not soluble in acetone. Presumably, most of it can be removed using Solvent 646 and a brush, but like any other silicone, it will remain between the legs of components, which usually bothers electronics repair technicians. One significant downside: with long-term storage (several months), it can cure inside the tube, though it still stores better in its packaging than alternatives in varnish-like tubes. In summary: -- относительно надежно защищает от влаги -- слой не повреждается без внешнего воздействия +- Relatively reliable moisture protection +- The layer is not damaged without external influence -- бывает труднодоступен в РФ -- дорогой (15мл за 12$, в РФ часто по ~1000р) -- есть жалобы, что может застыть даже в запакованном виде при долгом хранении -- тюбика хватает максимум на 3-4 коптера -- имеет неприятный запах до засыхания -- не каждое средство способно отмыть его с платы -- нельзя паять через нанесенный слой, нужно снять (отковырять) кусочек с места пайки +- Can be hard to find in Russia +- Expensive ($12 for 15ml) +- Complaints that it can cure even in sealed form during long storage +- One tube covers 3-4 drones at most +- Unpleasant odor before drying +- Hard to clean off the board +- Cannot solder through the layer; must be scraped off for repairs

KOTKING

-## Клей 705, [купить можно здесь](https://air-hobby.ru/katalog/product/3737-silikonoviy-kley-germetik-705-prozrachniy-50-ml.html) +## Glue 705, [buy it here](https://air-hobby.ru/katalog/product/3737-silikonoviy-kley-germetik-705-prozrachniy-50-ml.html) -Силикон, хоть и клей по описанию, но неплохо справляется в качестве герметика. Также встречается в варианте k-705. Наносится из тюбика относительно густой каплей и размазывается палочкой по всей площади или выдавливается через доп насадку с узким отверстием, главное, не забывать его потом чистить или плотно заматывать, чтобы в следующий раз можно было воспользоваться. Схватывается за 20-30 минут, если нанесено не сильно толстым слоем. По свойствам схож с kotking. Практически не пахнет. Итого: +Silicone. Although described as a glue, it performs well as a sealant. Also found as K-705. Applied as a thick drop from the tube and spread with a stick, or through a fine nozzle. Sets in 20-30 minutes if not applied too thickly. Properties are similar to Kotking. Practically odorless. Summary: -- дешевый (до 300р за тюбик 45г) -- доступный -- относительно надежно защищает от влаги -- практически не пахнет -- быстро застывает при умеренном слое -- слой не повреждается без внешнего воздействия +- Cheap (under 300 RUB for a 45g tube) +- Widely available +- Relatively reliable moisture protection +- Practically no smell +- Fast drying with a moderate layer +- The layer is not damaged without external influence -- не смывается ацетоном, возможно поможет отмачивание в бензине 10-15 минут -- нельзя паять через нанесенный слой, нужно снять (отковырять) кусочек с места пайки +- Not soluble in acetone; soaking in gasoline for 10-15 minutes might help +- Cannot solder through the layer; must be scraped off for repairs

705

-## Клей B-7000, [купить можно здесь](https://www.wildberries.ru/catalog/14059777/detail.aspx) +## B-7000 Glue, [buy it here](https://www.wildberries.ru/catalog/14059777/detail.aspx) -Клей B-7000, несмотря на то, что клей, также отлично справляется с задачей влагозащиты, устойчив к температурам, которые достигаются электроникой в простоях. Стоит дешево, есть варианты тюбиков разного объема, много где продается. Однако встречается много производителей этого клея (кто-то насчитывал не менее 15), и консистенция может немного отличаться. У хороших версий содержимое достаточно жидкое, легко наносится, нанесенный слой прозрачен, застывает без пузырьков с воздухом (само собой перед нанесением плату желательно очистить от пыли и прочего). Если вам попался очень вязкий/желтоватый, либо он очень долго хранился, либо из партии похуже. Схватывается за 15-30 минут, для полного засыхания рекомендуется подождать несколько часов. Можно паять через него, но занятие не из самых приятных, выделяется ужасный запах. Если вам попался хороший вариант этого клея, можно снять путем подцепки с краю и наматывания на пинцет. Если вам не повезло с производителем, сходит только после отмачивания в ацетоне на протяжении 10 минут или наматыванием после прогрева, но есть риск снять вместе с SMD элементами с платы. После покрытия платы б7000 и просушки рекомендуется протереть покрытие спиртом. Тогда поверхность станет чуть матовой и перестанет быть липкой (не будет собирать мусор). Многие ремонтники отдают свое предпочтение данному герметику, поскольку хорошо защищает и при этом его можно снять со всего участка платы. Также имеются аналоги T7000, E6000, E8000.. у них примерно схожие характеристики, но другие цвета. Итого: +Despite being a glue, B-7000 also excels at waterproofing and is resistant to temperatures reached by electronics during idle time. It's cheap, available in various tube sizes, and sold in many places. However, there are many manufacturers (some counted at least 15), and the consistency can vary slightly. Good versions are liquid enough to apply easily, and the layer is transparent and cures without air bubbles (clean the board before application). If yours is very viscous/yellowish, it's either been stored too long or is from a poor batch. Sets in 15-30 minutes; full curing takes several hours. You can solder through it, but it's not pleasant due to the terrible smell. If you have a good version, it can be removed by picking at an edge and winding it onto tweezers. If you're unlucky with the manufacturer, it only comes off after soaking in acetone for 10 minutes or by winding it after heating, but there's a risk of pulling off SMD components. After coating with B-7000 and drying, it's recommended to wipe the coating with alcohol. This makes the surface slightly matte and stops it from being sticky (so it won't collect debris). Many repair technicians prefer this sealant because it protects well and can be removed from entire sections of the board. Alternatives like T-7000, E-6000, and E-8000 have similar characteristics but different colors. Summary: -- дешевый (до 200р за тюбик до 50мл) -- доступный -- удобно наносить -- надежно защищает от влаги -- быстро засыхает +- Cheap (under 200 RUB for up to 50ml) +- Widely available +- Easy to apply +- Reliable moisture protection +- Fast drying -- иногда попадается "брак" -- при попытке паять через него выделяется едкий запах -- при снятии есть риск, что снимется с SMD компонентами платы +- Occasional "bad" batches +- Pungent smell when soldering through it +- Risk of pulling off SMD components during removal

B-7000

-## Силиконовый герметик FX FPV AeroX V2, [купить можно здесь](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=328) +## FX FPV AeroX V2 Silicone Sealant, [buy it here](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=328) -Силикон. Напоминает свою первую версию (см. раздел Устаревшее), только изменены тюбик и немного состав, ушла проблема с застыванием внутри тюбика при хранении (но при долгом хранении или долгом открытом состоянии все же может застыть). Встречается с объемами 20 и 30мл в прозрачном цвете и в черном под названием FX FPV AeroX Black, по свойствам все одинаковы. Запах приятный. Застывает за 20 минут. Слой прозрачный без пузырей. Паять через нанесенный слой нельзя, нужно сковырять кусочек с нужных пинов. Один из способов снятия с платы - отмачивание в [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Подробный обзор по [ссылке](https://youtu.be/inSmXQqUkCw). Итого: +Silicone. Reminiscent of its first version (see the Legacy section), but with a different tube and slightly modified formula; the problem of curing inside the tube during storage has been addressed (though it can still cure if stored for a very long time or left open). Available in 20 and 30ml in transparent and black (FX FPV AeroX Black); properties are identical. Pleasant smell. Sets in 20 minutes. Transparent layer with no bubbles. Cannot solder through it. One removal method is soaking in [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Detailed review [here](https://youtu.be/inSmXQqUkCw). Summary: -- удобно наносится -- приятно пахнет -- быстро застывает (20 мин) -- слой не повреждается без внешнего воздействия -- относительно надежно защищает от влаги +- Easy application +- Pleasant smell +- Fast drying (20 min) +- Durable layer +- Relatively reliable protection -- нельзя паять через нанесенный слой, нужно снять (отковырять) кусочек с места пайки -- дорогой (~850р за тюбик) -- доступен только в РФ +- Cannot solder through it +- Expensive (~850 RUB per tube) +- Only available in Russia

Aero X V2

-## Силиконовый лак FX FPV Aero WARP, [купить можно здесь](https://mydrone.ru/?match=all&subcats=Y&pcode_from_q=Y&pshort=Y&pfull=Y&pname=Y&pkeywords=Y&search_performed=Y&q=Aero&dispatch=products.search&security_hash=f42b3402778c170a04c1f0df572242c6) +## FX FPV Aero WARP Silicone Varnish, [buy it here](https://mydrone.ru/?match=all&subcats=Y&pcode_from_q=Y&pshort=Y&pfull=Y&pname=Y&pkeywords=Y&search_performed=Y&q=Aero&dispatch=products.search&security_hash=f42b3402778c170a04c1f0df572242c6) -Силиконовый лак. Не имеет токсичного запаха. Поставляется в тюбике, что позволяет герметику долго храниться. Застывает за 20 минут. Застывший слой вязкий, не трескается. Через застывший слой можно паять. Напоминает [китайскую защиту для плат ip65](https://propwashservice.com/community/coating.html#Китайская-защита-для-плат-ip65-купить-можно-здесь). -Один из способов снятия с платы - отмачивание в [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Подробный обзор по [ссылке](https://youtu.be/inSmXQqUkCw). Итого: +Silicone varnish. No toxic smell. Comes in a tube, which allows for long storage life. Sets in 20 minutes. The cured layer is viscous and doesn't crack. You can solder through the cured layer. Similar to the [Chinese IP65 circuit protection](https://propwashservice.com/community/coating.html#Chinese-IP65-Circuit-Protection). One removal method is soaking in [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Detailed review [here](https://youtu.be/inSmXQqUkCw). Summary: -- из средней ценовой категории (~600р за тюбик) -- через нанесенный слой можно паять -- не трескается -- нормально пахнет -- быстро застывает (20 мин) -- относительно надежно защищает от влаги +- Mid-range price (~600 RUB per tube) +- Can solder through it +- Doesn't crack +- Acceptable smell +- Fast drying (20 min) +- Relatively reliable protection -- доступен только в РФ +- Only available in Russia

Aero WARP

-## Силиконовый лак FX FPV Aero Light, [купить можно здесь](https://mydrone.ru/?match=all&subcats=Y&pcode_from_q=Y&pshort=Y&pfull=Y&pname=Y&pkeywords=Y&search_performed=Y&q=Aero&dispatch=products.search&security_hash=f42b3402778c170a04c1f0df572242c6) +## FX FPV Aero Light Silicone Varnish, [buy it here](https://mydrone.ru/?match=all&subcats=Y&pcode_from_q=Y&pshort=Y&pfull=Y&pname=Y&pkeywords=Y&search_performed=Y&q=Aero&dispatch=products.search&security_hash=f42b3402778c170a04c1f0df572242c6) -Силиконовый лак. Присутствует немного хим. запах, но с добавлением ароматизатора. Запах ароматизатора остается после застывания слоя. Поставляется в тюбике, что позволяет герметику долго храниться. Ранее продавался в баночке с кисточкой и периодически пользователи жаловались на засыхание внутри емкости. Застывает за 15-20 минут. Застывший слой вязкий, не трескается. Через застывший слой можно паять. Напоминает [китайскую защиту для плат ip65](https://propwashservice.com/community/coating.html#Китайская-защита-для-плат-ip65-купить-можно-здесь). -Один из способов снятия с платы - отмачивание в [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Подробный обзор по [ссылке](https://youtu.be/inSmXQqUkCw). Итого: +Silicone varnish. Has a slight chemical smell but with added fragrance. The fragrance remains after the layer cures. Comes in a tube for long shelf life (previously sold in jars with brushes, where users complained about it drying out). Sets in 15-20 minutes. The cured layer is viscous and doesn't crack. You can solder through it. Similar to [Chinese IP65 circuit protection](https://propwashservice.com/community/coating.html#Chinese-IP65-Circuit-Protection). One removal method is soaking in [Aero Remover](https://www.fpvmatrix.ru/index.php?route=product/product&product_id=327). Detailed review [here](https://youtu.be/inSmXQqUkCw). Summary: -- из средней ценовой категории (~650р за тюбик) -- через нанесенный слой можно паять -- не трескается -- приятно пахнет -- быстро застывает (15-20 мин) -- относительно надежно защищает от влаги +- Mid-range price (~650 RUB per tube) +- Can solder through it +- Doesn't crack +- Pleasant smell +- Fast drying (15-20 min) +- Relatively reliable protection -- доступен только в РФ +- Only available in Russia

Aero Light

-## DCA Electrolube, [купить можно здесь](https://air-hobby.ru/katalog/product/2286-dca-electrolube-prozrachniy-lak-na-osnove-modifitsirovannogo-silikona-20ml.html) +## DCA Electrolube, [buy it here](https://air-hobby.ru/katalog/product/2286-dca-electrolube-prozrachniy-lak-na-osnove-modifitsirovannogo-silikona-20ml.html) -Лак. В ВХ продается в удобном тюбике с кисточкой. Напоминает 422C (см. раздел устаревшее): жидкий, сохнет 30+ минут, немного вязкий в застывшем варианте. После охлаждения может отслаиваться. Положительных отзывов меньше, чем на вышеперечисленные аналоги. +Varnish. Sold in a convenient tube with a brush. Similar to 422C (see Legacy): liquid, dries in 30+ minutes, slightly viscous when cured. Can peel off after cooling. Generally fewer positive reviews than the alternatives above. -- из средней ценовой категориии (550р за 25мл) -- удобно наносить +- Mid-range price (550 RUB for 25ml) +- Easy application -- долго сохнет -- не гарантирует 100% защиту +- Long drying time +- Does not guarantee 100% protection

DCA Electrolube

-## Spinner protection silicone conformal coating V2 (спинер жижа v2), [купить можно здесь](https://www.spinnerproduction.ru/catalog-0-846) +## Spinner Protection Silicone Conformal Coating V2 ("Spinner Liquid V2"), [buy it here](https://www.spinnerproduction.ru/catalog-0-846) -Лак. Многие предположат, что это DCA или 422C, но у него другой состав (со слов продавца). Личного не проверяла (у кого есть опыт, просьба дополнить статью). Стоит 600р за 20мл. По отзывам поведение схоже с 422C - долго сохнет и не идеально защищает от влаги. +Varnish. Many might assume it's DCA or 422C, but it has a different formula (according to the seller). I haven't personally tested it (if you have experience, please supplement the article). Costs 600 RUB for 20ml. Reviews suggest behavior similar to 422C—long drying time and imperfect protection.

- спинер жижа + Spinner Liquid

-## Китайская защита для плат ip65, [купить можно здесь](https://a.aliexpress.com/_mKX5LuM) +## Chinese IP65 Circuit Protection, [buy it here](https://a.aliexpress.com/_mKX5LuM) -Лак. Напоминает 422B, но более вязкий. Также с едким запахом. Засыхает за 15 минут, для полного высыхания лучше подождать сутки, как и при использовании других лаков. 1 слоя достаточно. Можно паять через нанесенный слой, смывается щеткой с ацетоном. На личном опыте пока не подводила, не трескалась. Тюбик лучше не оставлять открытым, так как густеет. Объема хватит на очень долго, быстрее высохнет, чем закончится, если не разделить по тюбикам. Итого: +Varnish. Similar to 422B but more viscous. Also has a pungent smell. Sets in 15 minutes; for full drying, it's better to wait a day, as with other varnishes. One layer is sufficient. You can solder through it, and it can be cleaned off with a brush and acetone. In my personal experience, it hasn't failed or cracked yet. Better not to leave the tube open as it thickens. The volume will last a very long time; it will dry out before you use it all unless you decant it into smaller tubes. Summary: -- дешевая (8$ за 100мл) -- среди аналогов 422C, dca, спинер жижи в2 больше всех внушает доверие -- легко смывается -- быстро засыхает -- хорошая адгезия -- можно паять через нанесенный слой +- Cheap ($8 for 100ml) +- More trustworthy than alternatives like 422C, DCA, or Spinner V2 +- Easily cleaned off +- Fast drying +- Good adhesion +- Can solder through it -* не самый доступный вариант, купить можно только на алиэкспресс -* имеет едкий запах +* Not the most accessible option (AliExpress only) +* Pungent smell

ip65

-## Жидкая изолента +## Liquid Electrical Tape -Предложен еще один вариант, не особо популярный - жидкая изолента. Обезжириваете спиртом электронику, сушите, наносите слой. Засыхает слой за 15-20 минут. Снимается одним слоем как изолента. Стоимость спрея 500мл до 900р. Если у вас есть опыт использования, просьба дополнить статью. +Another option mentioned, though not very popular, is liquid electrical tape. Degrease the electronics with alcohol, dry, and apply a layer. It dries in 15-20 minutes. It peels off in one layer like tape. A 500ml spray costs up to 900 RUB. If you have experience using this, please supplement the article. -## Устаревшее: +## Legacy: -### Пластик-71, [купить можно здесь](https://www.chipdip.ru/product/plastik-71-100) +### Plastik-71, [buy it here](https://www.chipdip.ru/product/plastik-71-100) -Лак. Пластик-71 изначально зарекомендовал себя как самый доступный, поскольку продается в каждом радиомагазине, но неудачный вариант, так как при эксплуатации очень быстро трескается и пропускает всю влагу. Можно наносить в несколько слоев, тогда больше вероятность, что он дольше продержится, но гарантий особо нет. Также есть мнение, что в зависимости от производителя состав отличается, были отзывы, что отлично справляется со своей задачей, но таких отзывов совсем мало. Итого: +Varnish. Plastik-71 initially gained popularity as the most accessible option available in every electronics shop, but it's a poor choice because it cracks quickly under use, letting moisture in. Multiple layers can be applied to increase longevity, but there are no real guarantees. Some believe quality varies by manufacturer, with a few positive reviews, but they are rare. Summary: -- дешевый (до 200р за флакон до 100мл) -- доступный (можно купить в любом радиомагазине) +- Cheap (under 200 RUB for up to 100ml) +- Widely available -- не гарантирует влагозащиту, так как трескается со временем. +- Does not guarantee waterproofing as it cracks over time. -**Хоббисты не рекомендуют к эксплуатации.** +**Not recommended by hobbyists.** -### MG Chemicals 422B, [снят с произодства](https://www.farnell.com/datasheets/2614568.pdf) +### MG Chemicals 422B, [discontinued](https://www.farnell.com/datasheets/2614568.pdf) -Лак. Долгое время был относительно доступным, продавался в ЧипДип в небольших флаконах, канистрами в розничных магазинах, тюбиками по 20-25мл в spinner production и воздушном хобби (ВХ) под видом спинер жижи, а под конец как "ВХ 422B". Был неким компромиссом, стоил в районе 300-400р за 20мл, чего хватало на год активного использования, слой схватывался за минут 10, за 15 уже застывал, но рекомендовалось для полного высыхания ждать сутки в комнатной температуре. 1 слоя было достаточно, чтобы защитить от влаги, но когда температура понижалась(полеты зимой), она начинала трескаться и пропускала влагу. В 2021 году прекратилось производство, теперь нигде не купить. Альтернативой стала версия 422С. +Varnish. For a long time, it was relatively accessible, sold in small jars at ChipDip and in 20-25ml tubes by Spinner Production and Air-Hobby (under the names "Spinner Liquid" or later "Air-Hobby 422B"). It was a compromise, costing around 300-400 RUB for 20ml (enough for a year of active use). Set in 10 minutes, cured in 15, though 24 hours at room temperature was recommended for full drying. One layer was sufficient for protection, but at low temperatures (winter flying), it would start to crack and let moisture in. Production stopped in 2021; it is no longer available. The 422C version became the alternative. -### MG Chemicals 422C, [пропадает из вида](https://www.mgchemicals.com/products/conformal-coatings/silicone-conformal-coatings/conformal-coating-waterproof/) +### MG Chemicals 422C, [phasing out](https://www.mgchemicals.com/products/conformal-coatings/silicone-conformal-coatings/conformal-coating-waterproof/) -Лак. Есть много разных отзывов, на деле лично не удалось попробовать (у кого есть опыт, просьба дополнить статью), предположительно по эксплуатации схоже с 422b, только более жидкий и сохнет дольше (по 30-40 минут застывает 1 слой). Некоторое время продавался как раньше 422b, только под другим названием, сейчас постепенно исчезает из тех же магазинов. Итого: +Varnish. There are many mixed reviews; I haven't personally tried it. Presumably similar to 422B but more liquid and takes longer to dry (30-40 minutes per layer). For a while, it was sold under the same names as 422B, but it is now gradually disappearing from stores. Summary: -- из средней ценовой категории (700р за 20мл в ВХ был в 2022) -- можно паять через нанесенный слой -- легко снять щеткой со спиртом или ацетоном (и нет, ацетон не разъедает моментально пластик и надписи, разве что если вы на сутки в ацетоне замочите плату) +- Mid-range price (around 700 RUB for 20ml in 2022) +- Can solder through it +- Easily removed with a brush and alcohol or acetone -- в РФ уже не так просто найти -- долго сохнет -- не гарантирует 100% влагозащиту +- Becoming hard to find in Russia +- Long drying time +- Does not guarantee 100% protection -### FX FPV AeroX, [снят с производства](https://quadro.team/goods/aerox) +### FX FPV AeroX, [discontinued](https://quadro.team/goods/aerox) -Силикон. Не пахнет. Схватывается за 15 минут (еще липкий, но уже не растекается), застывает за 30 минут. Снимается хлопьями после простоя в емкости с галошей+изопропанолом на протяжении 15 мин или как любой силикон путем отковыривания кусочками. Невозможна пайка через нанесенный слой. Благодаря кисти легко наносить тонким слоем, расход меньше, чем у уналогов в тюбиках. Без внешнего воздействия сохраняет целостность. Однако после вскрытия и нескольких использований за месяц загустел так сильно, что стал непригоден для эксплуатации, хотя закрывался плотно и не стоял открытым долго. Спиртом развести не получится, не взаимодействуют. Итого: +Silicone. Odorless. Sets in 15 minutes (still tacky but no longer runs), cures in 30 minutes. Removed in flakes after soaking for 15 minutes in a container with heptane + isopropanol, or by scraping it off in pieces. Soldering through it is impossible. The brush made it easy to apply thin layers, leading to lower consumption than tube alternatives. Mantains integrity without external interference. However, after opening and a few uses over a month, it thickened so much it became unusable, despite being tightly capped. Cannot be diluted with alcohol. Summary: -- надежно защищает от влаги -- хорошая адгезия -- отсутствует запах -- для снятия нужно отмочить в смеси галоша + изопропанол 15 мин или снимать кусочно +- Reliable protection +- Good adhesion +- Odorless +- Removal requires soaking in heptane + isopropanol for 15 min or scraping -- доступен только в РФ -- дорогой (950р за 20мл) -- после вскрытия долго не хранится -- нельзя паять через нанесенный слой +- Only available in Russia +- Expensive (950 RUB for 20ml) +- Short shelf life after opening +- Cannot solder through it -### Силиконовый лак Antas ZS-NJ-D955, [купить можно здесь](https://quadro.team/goods/Vysokoprochnoe-konformnoe-silikonovoe-pokrytie-Antas-ZS-NJ-D955-Keks-Edition?mod_id=300898141) +### Antas ZS-NJ-D955 Silicone Varnish, [buy it here](https://quadro.team/goods/Vysokoprochnoe-konformnoe-silikonovoe-pokrytie-Antas-ZS-NJ-D955-Keks-Edition?mod_id=300898141) -Лак. Продается в удобном тюбике с кисточкой. Схватывается за 10-15 минут. Можно ускорить отверждение нагреванием. Застывший слой не вязкий. +Varnish. Sold in a convenient tube with a brush. Sets in 10-15 minutes. Curing can be accelerated with heat. The cured layer is not viscous. diff --git a/docs/en/community/usefull.md b/docs/en/community/usefull.md index d6d62ae7..7d1298de 100644 --- a/docs/en/community/usefull.md +++ b/docs/en/community/usefull.md @@ -1,89 +1,89 @@ -# Полезные ресурсы в одном месте - -## Каналы с примерами полетов: - -* [AirVUZ, платформа, где топ пилоты выкладывают свои ролики](https://www.airvuz.com) -* [Team BlackSheep, захватывающие пролеты по всему миру](https://www.youtube.com/channel/UCAMZOHjmiInGYjOplGhU38g) -* [Mr Steele, резкий фристайл](https://www.youtube.com/channel/UCQEqPV0AwJ6mQYLmSO0rcNA)Mr Steele, резкий фристайл -* [Le Drib, плавный фристайл](https://www.youtube.com/c/LeDribFPV) -* [MinChan FPV, один из самых быстрых гонщиков](https://www.youtube.com/c/MinChanKim04) -* [quadmovr, один из лучших визуальщиков (LOS полеты)](https://www.youtube.com/c/quadmovr) -* [уроки фристайла](https://www.youtube.com/channel/UCFedUk5j_EidYV4P-EnYJYg/videos) -* [DSG academy, основы пилотирования в DCL симуляторе](https://www.youtube.com/watch?v=ZZotXvbVEkI&list=PLwy7zFO7fCeM6rZilz3DlQ7kHs7HjhpYg&index=6) -* [velocidrone, туториалы по симулятору](https://www.youtube.com/c/Velocidrone) -* [96 трюков фристайла в одном видео](https://www.youtube.com/watch?v=hIbHrO-VBu8&ab_channel=Phantom) - -## Полезные статьи с обзорами и объяснениями - -* [Вики Betaflight Configuator](https://betaflight.com/docs/configurator/setup-tab#calibrate-accelerometer) -* [Инфографика](https://quadquestions.com/blog/2017/02/22/choose-right-size-motors-drone/) -* [OscarLiang blog (en)](https://oscarliang.com/) -* [RCDetails Blog(переводы OscarLiang на ru)](https://blog.rcdetails.info/) -* [Profpv blog](https://profpv.ru) -* [Nurk blog](http://paulnurkkala.com) -* [UAVTech blog](https://theuavtech.com/) -* [Сетапы пилотов](https://rotorbuilds.com/explore) -* [Vitroidfpv blog](https://www.vitroidfpv.com/faq) -* [DJI Digital FPV System - коллективная база знаний ](https://www.djifpv.ru/) -* [ExpressLRS + HDzero](http://www.expresslrs.ru) +# Useful Resources in One Place + +## Channels with Flight Examples: + +* [AirVUZ, a platform where top pilots upload their videos](https://www.airvuz.com) +* [Team BlackSheep, breathtaking flights around the world](https://www.youtube.com/channel/UCAMZOHjmiInGYjOplGhU38g) +* [Mr Steele, sharp freestyle](https://www.youtube.com/channel/UCQEqPV0AwJ6mQYLmSO0rcNA) +* [Le Drib, smooth freestyle](https://www.youtube.com/c/LeDribFPV) +* [MinChan FPV, one of the fastest racers](https://www.youtube.com/c/MinChanKim04) +* [quadmovr, one of the best Line of Sight (LOS) pilots](https://www.youtube.com/c/quadmovr) +* [Freestyle Lessons](https://www.youtube.com/channel/UCFedUk5j_EidYV4P-EnYJYg/videos) +* [DSG Academy, piloting basics in the DCL simulator](https://www.youtube.com/watch?v=ZZotXvbVEkI&list=PLwy7zFO7fCeM6rZilz3DlQ7kHs7HjhpYg&index=6) +* [Velocidrone, simulator tutorials](https://www.youtube.com/c/Velocidrone) +* [96 Freestyle Tricks in one video](https://www.youtube.com/watch?v=hIbHrO-VBu8&ab_channel=Phantom) + +## Useful Articles with Reviews and Explanations + +* [Betaflight Configurator Wiki](https://betaflight.com/docs/configurator/setup-tab#calibrate-accelerometer) +* [Infographic: Choosing the Right Motor Size](https://quadquestions.com/blog/2017/02/22/choose-right-size-motors-drone/) +* [OscarLiang Blog (EN)](https://oscarliang.com/) +* [RCDetails Blog (Russian translations of OscarLiang)](https://blog.rcdetails.info/) +* [ProFPV Blog (RU)](https://profpv.ru) +* [Nurk Blog](http://paulnurkkala.com) +* [UAVTech Blog](https://theuavtech.com/) +* [Pilot Setups](https://rotorbuilds.com/explore) +* [Vitroidfpv Blog](https://www.vitroidfpv.com/faq) +* [DJI Digital FPV System - Collective Knowledge Base (RU)](https://www.djifpv.ru/) +* [ExpressLRS + HDZero (RU)](http://www.expresslrs.ru) * [NerdCopter](https://hackmd.io/@nerdCopter) -## Познавательные каналы: +## Educational Channels: * [Joshua Bardwell](https://www.youtube.com/channel/UCX3eufnI7A2I7IkKHZn8KSQ) * [Mads Tech](https://www.youtube.com/@MadRC) * [Ivan Efimov (Limon)](https://www.youtube.com/@IvanEfimovLimon) * [Chris Rosser](https://www.youtube.com/channel/UC45_6KVAAZG_iOgzksGswMw) * [UAV Tech](https://www.youtube.com/channel/UCI2MZOaHJFMAmW5ni7vuAQg) -* [FPV University (ранее Paweł Spychalski)](https://www.youtube.com/c/Pawe%C5%82Spychalski) +* [FPV University (formerly Paweł Spychalski)](https://www.youtube.com/c/Pawe%C5%82Spychalski) * [IGOW: International Game of WHOOP](https://www.youtube.com/@FPVSkittles) * [RotorRiot](https://www.youtube.com/c/RotorRiot) * [My Hobby Log](https://www.youtube.com/channel/UC1R4TVyxi782_sNGUjREGVQ) * [Anik FPV](https://www.youtube.com/channel/UC29J5CXmsnqX7JPAzlU9yCQ) * [Propwash Service](https://www.youtube.com/c/propwashservice) * [areyouroo](https://www.youtube.com/c/areyouroo) -* [Олег Стельмах](https://www.youtube.com/user/Elektraua) +* [Oleg Stelmakh](https://www.youtube.com/user/Elektraua) * [KababFPV](https://www.youtube.com/channel/UC4yjtLpqFmlVncUFExoVjiQ) -* [Drone Mesh ](https://www.youtube.com/channel/UC3c9WhUvKv2eoqZNSqAGQXg/videos) +* [Drone Mesh](https://www.youtube.com/channel/UC3c9WhUvKv2eoqZNSqAGQXg/videos) * [MAVLab TU Delft](https://www.youtube.com/c/microuav) * [UAVProf](https://www.youtube.com/channel/UCBFJQVEoNPIe852VN4N1m_g) -* [CopterTime](https://www.youtube.com/@CopterTime)CopterTime +* [CopterTime](https://www.youtube.com/@CopterTime) -## Для авиамоделистов полеты, сборки: +## For Aeromodelers (Flights and Builds): * [FliteTest](https://www.youtube.com/@FliteTest) * [areyouroo](https://www.youtube.com/c/areyouroo) -* [Skyglide (Печатные самолеты)](https://www.youtube.com/@Skyglide) -* [ПАРКФЛАЕР](http://www.parkflyer.ru/ru/blogs/view_entry/15827/) +* [Skyglide (3D Printed Airplanes)](https://www.youtube.com/@Skyglide) +* [PARKFLYER (RU)](http://www.parkflyer.ru/ru/blogs/view_entry/15827/) * [Joyplanes RC](https://www.youtube.com/channel/UCMcdwq_cRfNyQZExxXLqfgw) * [Andrew Newton](https://www.youtube.com/channel/UC2QTy9BHei7SbeBRq59V66Q) * [ALMODELS](https://www.youtube.com/channel/UCatTqPsEwHGgtAXuC6WMq9w) -## Полезные статьи: +## Useful Articles: -* [Длина активной части антенны](http://www.fireniko.ru/2017/04/%D0%B4%D0%BB%D0%B8%D0%BD%D0%B0-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D0%B8-%D0%B0%D0%BD%D1%82%D0%B5%D0%BD%D0%BD-%D1%83-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BD%D0%B8/) -* [Антенны эллептической поляризации](https://bester-ltd.ru/articl/teoriya_praktika/krugovaya_polyarizatsiya/krugovaya_polyarizatsiya.html) -* [Про пагоду и клевер антенны](https://www.maartenbaert.be/quadcopters/antennas/pagoda-antenna/) -* [Тесты антенн](https://dr1.by/fpv-antena-tests/) -* [Выбор мотора](https://blog.rcdetails.info/kak-vybrat-motory-dlya-kvadrokoptera-ili-gonochnogo-drona/) -* [How Brushless Motor and ESC Work ](https://howtomechatronics.com/how-it-works/how-brushless-motor-and-esc-work/) -* [О пропах](https://pikabu.ru/story/letatelnyiy_post_7_propelleryi_4404295) -* [Время полета](http://mshtests.c1.biz/hover.html) -* [Великая коптерная теорема](http://mshtools.c1.biz/2017/07/12/the-great-copters-theorem/) -* [Propeller Static & Dynamic Thrust Calculation - Part 1 - How Did I Come Up With This Equation?](https://www.electricrcaircraftguy.com/2013/09/propeller-static-dynamic-thrust-equation.html) -* [Propeller Static & Dynamic Thrust Calculation - Part 2 - How Did I Come Up With This Equation?](https://www.electricrcaircraftguy.com/2014/04/propeller-static-dynamic-thrust-equation-background.html) -* [Настройка GPS в Ublox Center](https://iflight-rc.eu/blogs/news/m10-gps-3d-fix-enhancement) -* [Комбинации стиками для настроек под разные модыr](https://www.mrd-rc.com/tutorials-tools-and-testing/inav-flight/inav-stick-commands-for-all-transmitter-modes/) +* [Active Part Length of an Antenna](http://www.fireniko.ru/2017/04/%D0%B4%D0%BB%D0%B8%D0%BD%D0%B0-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9-%D1%87%D0%B0%D1%81%D1%82%D0%B8-%D0%B0%D0%BD%D1%82%D0%B5%D0%BD%D0%BD-%D1%83-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BD%D0%B8/) +* [Elliptical Polarization Antennas](https://bester-ltd.ru/articl/teoriya_praktika/krugovaya_polyarizatsiya/krugovaya_polyarizatsiya.html) +* [About Pagoda and Clover Antennas](https://www.maartenbaert.be/quadcopters/antennas/pagoda-antenna/) +* [Antenna Tests](https://dr1.by/fpv-antena-tests/) +* [Choosing a Motor](https://blog.rcdetails.info/kak-vybrat-motory-dlya-kvadrokoptera-ili-gonochnogo-drona/) +* [How Brushless Motor and ESC Work](https://howtomechatronics.com/how-it-works/how-brushless-motor-and-esc-work/) +* [About Props](https://pikabu.ru/story/letatelnyiy_post_7_propelleryi_4404295) +* [Flight Time Calculator](http://mshtests.c1.biz/hover.html) +* [The Great Copter Theorem](http://mshtools.c1.biz/2017/07/12/the-great-copters-theorem/) +* [Propeller Static & Dynamic Thrust Calculation - Part 1](https://www.electricrcaircraftguy.com/2013/09/propeller-static-dynamic-thrust-equation.html) +* [Propeller Static & Dynamic Thrust Calculation - Part 2](https://www.electricrcaircraftguy.com/2014/04/propeller-static-dynamic-thrust-equation-background.html) +* [GPS setup in Ublox Center](https://iflight-rc.eu/blogs/news/m10-gps-3d-fix-enhancement) +* [Stick commands for settings in different modes](https://www.mrd-rc.com/tutorials-tools-and-testing/inav-flight/inav-stick-commands-for-all-transmitter-modes/) -## Законы про полеты на дронах в разных странах +## Drone Flight Laws in Different Countries https://drone-laws.com/ https://uavcoach.com/drone-laws/ -Где можно летать в РФ - https://wheretoflyfpv.ru +Where to fly in Russia - https://wheretoflyfpv.ru -## Пресеты для Betaflight +## Betaflight Presets http://pidhub.io/pids @@ -91,36 +91,30 @@ https://theuavtech.com/presets/ https://github.com/betaflight/firmware-presets -## Курс по автономным полетам: +## Autonomous Flight Course: https://www.youtube.com/playlist?list=PLTQSXsG86pGfyZm5ac6-ZtQsEniUJIE9o -## Дронин с альтернативой pid регулятору: +## dRonin with alternative PID controller: https://github.com/d-ronin/dRonin -## Ценосравнители: +## Price Comparators: https://couponsfromchina.com/2019/ https://rcsearch.info -## Статистика от betaflight конфигуратора: +## Betaflight Configurator Statistics: https://datastudio.google.com/u/0/reporting/1pK1PFw0eWmsgl2npvuzwAqscVzlhJvuF/page/kctPB?s=kfHdPaVFYUU -## Калькуляторы: +## Calculators: -https://kernel-machine.github.io/INavMagAlignHelper/ - поворот компаса в INAV - -https://oscarliang.com/js/fpvrange.html - расчет дальности по характеристикам видеосистемы - -https://www.desmos.com/calculator/oaa7ealifn?lang=ru - калькулятор пересчета рейтов из actual в betaflight - -https://www.warpdriveprops.com/propspd2.html - подбор ВМГ - -https://brushlessmotorsparade.com/ - подбор ВМГ - -https://lan143.github.io/ - слайдеры как в betaflight для kiss ПИДов - -https://bf43-safe-migration.robertodedomenico.it/ - мигратор диффа из betaflight 4.2 в 4.3 (использовать крайне внимательно) +https://kernel-machine.github.io/INavMagAlignHelper/ - Compass rotation helper in INAV +https://oscarliang.com/js/fpvrange.html - Range calculator based on video system specs +https://www.desmos.com/calculator/oaa7ealifn?lang=en - Rate converter calculator (Actual to Betaflight) +https://www.warpdriveprops.com/propspd2.html - Propeller/Motor matching +https://brushlessmotorsparade.com/ - Motor database and matching +https://lan143.github.io/ - Sliders like Betaflight for Kiss PIDs +https://bf43-safe-migration.robertodedomenico.it/ - Diff migrator from Betaflight 4.2 to 4.3 (use with extreme caution) diff --git a/docs/en/settings/FAQ.md b/docs/en/settings/FAQ.md index 0bcf708d..2fc190f0 100644 --- a/docs/en/settings/FAQ.md +++ b/docs/en/settings/FAQ.md @@ -1,55 +1,52 @@ -# ТОП 9 задаваемых вопросов +# Top 9 Frequently Asked Questions -(статья в процессе написания) +(Article in progress) -## Здравствуйте, я новичок, какой мне дрон выбрать? +## Hello, I'm a beginner. Which drone should I choose? -Выбор дрона зависит от желаемого стиля полета и условий, [подробнее](https://propwashservice.com/ru/intro/flightstyles). +The choice of drone depends on your desired flight style and conditions. [Learn more](https://propwashservice.com/en/intro/flightstyles). -## Почему моторы набирают обороты ( раскручиваются ), когда я опускаю газ? +## Why do the motors rev up (increase RPM) when I lower the throttle? -Если лень читать: [ролик на ютубе](https://www.youtube.com/watch?v=OBiZbcUN2Lc&). +If you're too lazy to read: [YouTube Video](https://www.youtube.com/watch?v=OBiZbcUN2Lc&). -Если лень смотреть: дрон пытается корректно работать, даже несмотря на то, что вы не надели ему пропеллеры. Ему дали команду "увеличь обороты моторов", он это осознал как "увеличить обороты, сдвинуться с места", и пытается лететь. Но происходит ошибка - моторы увеличили обороты, а показания датчиков дали понять, что дрон не сдвинулся с места. Что делать прошивке полетного контроллера в таком случае? Правильно, увеличить еще обороты, чтобы дрон мог сдвинуться с места. Но снова нет движения, и это продолжает повторяться. И все потому, что без пропеллеров он никак не взлетит. Так что не издевайтесь над дроном, поставьте пропеллеры, и идите летать. +If you're too lazy to watch: The drone is trying to work correctly even though you haven't put propellers on it. It received a command to "increase motor RPM," which it interprets as "increase RPM to move," and it tries to fly. But an error occurs—the motors increased RPM, but the sensor readings indicated the drone didn't move. What should the flight controller firmware do in such a case? Correct, increase RPM even more so the drone can move. But still no movement, and this continues in a loop. It's all because it won't take off without propellers. So don't torture your drone—put the props on and go fly. -## Как правильно ставить пропеллеры? +## How do I install propellers correctly? -[Старое наглядное видео](https://youtu.be/jTr0UHyp_6A). +[Old demonstration video](https://youtu.be/jTr0UHyp_6A). -К сожалению, про пушер схему не говорится, но пропеллеры всегда должны тянуть вверх, потому и направлены верхней стороной вверх, даже если моторы перевернуты. -В случае самолета не вверх, а вперед. +Unfortunately, it doesn't mention "pusher" configurations, but propellers should always pull upward, so they are always oriented with the top side up, even if the motors are inverted. In the case of an airplane, "upward" means "forward." -## Подскажите, почему мой дрон кувыркается (переворачивается) при попытке взлететь? +## Why is my drone flipping (overturning) when I try to take off? -Стоит проверить: +Check the following: -- ориентацию полетного контроллера (соответствуют ли наклоны модели дрона в конфигураторе betaflight на вкладке setup(также Система в ру раскладке) наклонам реального дрона, учитывая, что красная стрека показывает, где расположена камера дрона). Если не соответствует, необходимо повернуть на вкладке Configuration в разделе Board and Sensor Alignment; -- схему дрона с нумерацией моторов (в betaflight конфигураторе на вкладке моторов должен быть Quad X, если у вас квадрокоптер, порядок моторов должен соответствовать нумерации на схеме); -- вращение моторов (в betaflight конфигураторе на вкладке моторов отображена схема вращения моторов, по умолчанию она внутреняя, то есть передние пропеллеры крутятся в сторону камеры (стрелки на схеме), также доступна схема внешнего вращения, для этого над схемой надо поставить галку реверса, НО эта стрелка не меняет вращения моторов, она только определяет схему для прошивки, ожидаемый результат); -- вращения пропеллеров (пропеллеры должны быть установлены согласно схеме вращения, насечка логотипа производителя и размера пропеллера должна смотреть вверх). +- **Flight Controller Orientation**: Does the tilt of the drone model in the Betaflight Configurator "Setup" tab match the tilt of the real drone? (The red arrow shows where the camera is located). If it doesn't match, you must adjust it on the "Configuration" tab in the "Board and Sensor Alignment" section. +- **Motor Mapping**: In the Betaflight "Motors" tab, the mixer should be "Quad X" (for quadcopters), and the motor order must match the numbering in the diagram. +- **Motor Rotation**: The "Motors" tab shows the rotation direction. By default, it's "props-in" (front props spin toward the camera). "Props-out" is also available by checking the "Motor direction is reversed" box. NOTE: This checkbox does not change the motor rotation; it only tells the firmware what direction to expect. +- **Propeller Installation**: Propellers must be installed according to the rotation scheme. The manufacturer's logo and size markings on the propeller should face upward. -## Почему дрон не реагирует на газ и крутит моторы парами? +## Why doesn't the drone respond to throttle and spin motors in pairs? -У вас активирован режим "черепаха", как его называют в сообществе. В режимах (modes) бетафлайта он называется flip over after crash. Он используется в случае, если ваш дрон застял где-то и ему нужен толчок, чтобы оттуда вылететь, или он лежит вверх тормашками на горизонтальной поверхности, и вам необходимо, чтобы он кувыркнулся/перевернулся, и полетел дальше. Отключите данную опцию, заармите дрон, и он станет нормально реагировать на стики, если все базовые настройки корректны и пропеллеры надеты на моторы. +You have "Turtle Mode" activated (known as "Flip Over After Crash" in Betaflight "Modes"). It's used if your drone is stuck and needs a nudge to fly out, or if it's upside down on a flat surface and you need it to flip over to resume flight. Deactivate this option, arm the drone, and it should respond normally to the sticks if basic settings are correct and props are installed. -## Как забиндить crossfire / ELRS / frsky? +## How do I bind Crossfire / ELRS / FrSky? * [Crossfire](https://doggydog.blog/update/obnovlyaem-i-bindim-tbs-crossfire/) * [ELRS](https://expresslrs.ru/Manuals/Binding/) -* [Frsky](https://rcdetails.info/kak-privyazat-priemnik-k-apparature-upravleniya-frsky-taranis/) +* [FrSky](https://rcdetails.info/kak-privyazat-priemnik-k-apparature-upravleniya-frsky-taranis/) -## Почему у меня не работает \*что угодно\* в betaflight 4.4? +## Why isn't \*anything\* working in Betaflight 4.4? -Первое: версия конфигуратора бетафлайт должна быть последней (на данный момент 10.9, версия отображается вверху слева), старые версии конфигуратора в связке с новой версии прошивки могут работать некорректно (см. [раздел ПО](https://propwashservice.com/ru/community/software)). +1. **Configurator Version**: You must use the latest version of the Betaflight Configurator (currently 10.9 or newer, version is displayed at the top left). Old configurator versions may work incorrectly with new firmware versions (see [Software section](https://propwashservice.com/en/community/software)). +2. **Cloud Build System**: Betaflight 4.4 uses a cloud build system. When flashing, you must specify the required radio protocol (CRSF for ELRS and Crossfire; for SPI receivers, the choice doesn't matter). Options like "Magnetometer" (if you have a compass) must be added in the options string where GPS, Led Strip, OSD, etc., are selected by default. Remove options you don't need, but if unsure, leave them. You can leave other lines as they are. If you check "Core Only," the parameter fields will disappear and the full firmware will be loaded, BUT for F411 and F722 chips, GPS functionality will be missing due to size constraints. If you need GPS, use the cloud build system. +3. **Custom Defaults**: After flashing, upon the first connection, a window appears asking to apply custom defaults. **You must accept this** for the flight controller configuration to load; otherwise, the firmware won't know about the sensors and ports on the FC. -Второе: для 4.4 версии бетафлайта используется система облачной сборки. При прошивке необходимо указать необходимый радио протокол (crsf для elrs и crossfire, при spi приемнике не важно, что там указывать), опции по типу магнитометра (если у вас есть компас на дроне) необходимо добавлять в строке, где по умолчанию уже выбраны GPS, Led Strip, OSD и тд, лишние же опции наоборот можно убрать, но если не уверены в их необходимости - оставьте. Остальные строки можно не трогать. Если вы поставите галку Core Only, то поля с параметрами уйдут, и будет загружена полная прошивка, НО для F411 и F722 не будет функционала GPS, так как размер прошивки уже больше доступного места в этих контроллерах, и если вам все же нужен GPS, то используйте облачную систему сборки. +## I calibrated the accelerometer, but the drone model is still rotated incorrectly. What do I do? -Третье: после прошивки при первом подключении появляется окно с предложением применить пользовательские настройки - обязательно надо принять, чтобы загрузилась конфигурация полетного контроллера, иначе прошивка не будет знать о датчиках и портах на полетном контроллере. +Flight controller rotation is handled in the "Configuration" tab. The "Calibrate Accelerometer" button only calibrates the horizontal position; it doesn't know the heading (yaw). You must set the rotation offset manually. -## Я откалибровал акселлерометр, но модель дрона все равно повернута не туда, что делать? +## Battery questions: Charging/discharging levels? Charging current? Storage? How long can they stay charged? What is the second connector for? -Поворот полетного контроллера осуществляется на вкладке Конфигурация, кнопка "Калибровать акселлерометр" позволяет только откалибровать в горизонтальном положении, откуда ему знать, где какая сторона - вам необходимо сделать это вручную. - -## До скольки заряжать, разряжать аккумуляторы? Каким током заряжать аккумуляторы? Как хранить аккумуляторы? Сколько можно держать аккумуляторы в заряженном состоянии? Зачем нужен второй разъем на батарее: - -[Все про аккумуляторы](https://propwashservice.com/ru/intro/power) +[Everything about batteries](https://propwashservice.com/en/intro/power) diff --git a/docs/en/settings/rates.md b/docs/en/settings/rates.md index 7e64e188..c0eb7ee4 100644 --- a/docs/en/settings/rates.md +++ b/docs/en/settings/rates.md @@ -1,68 +1,73 @@ -# Рейты (Rates) в Betaflight +# Rates in Betaflight -Раздел Pid Tuning, вкладка Rateprofile settings. +Found in the **PID Tuning** section, under the **Rateprofile Settings** tab. -## Системы рейтов в бетафлайт +## Rate Systems in Betaflight -Классическая система рейтов Betaflight (была по дефолту до 4.2 включительно) использовала три параметра: +The classic Betaflight rate system (the default up to version 4.2) used three parameters: -- RC Rate, который возвращает линейную зависимость между положением стика и скоростью; максимальная скорость в град/с при полном отклонении стика в 200 раз превышает значение RC Rate в конфигураторе. -- Super Rate, который экспоненциально увеличивает предыдущую линейную скорость по мере того, как стики удаляются от центра. Он практически не влияет на центральное положение. Точка перегиба кривой не меняется. - Значение Super Rate = 0,5 удваивает скорость при максимальном отклонении стика. -- RC Expo, которое добавляет вторую кривую поверх предыдущих значений в районе центрального положения стика, и не влияет на максимальную скорость. - Значение RC Expo = 0,5 в конфигураторе сгладит кривую скорости около центрального положения стика в 2 раза. +- **RC Rate**: Establishes a linear relationship between stick position and rotation speed. The maximum speed in deg/s at full stick deflection is 200 times the RC Rate value in the configurator. +- **Super Rate**: Exponentially increases the linear speed as the sticks move away from the center. It has almost no effect on the center position. The curve's transition point remains fixed. A Super Rate of 0.5 doubles the speed at maximum stick deflection. +- **RC Expo**: Adds a secondary curve on top of the previous values around the center stick position without affecting the maximum speed. An RC Expo of 0.5 in the configurator smooths the speed curve near the center by a factor of 2. -Запутанно и не до конца понятно, не правда ли? +Confusing and not entirely intuitive, right? -Когда мы настраиваем наши рейты, мы в первую очередь заботимся о трех вещах: +When we tune our rates, we primarily care about three things: +1. **Center Sensitivity**: How "twitchy" the reaction is near the center value. +2. **Maximum Rotation Speed**: How fast the aircraft rotates during a full flip or roll. +3. **Exponential Transition**: How quickly the sensitivity changes as we move the stick from the center to the edge. -- «чувствительность» в центре стика, или насколько «дерганой» будет реакция при отклонениях около центрального значения; -- максимальная скорость вращения при полном отклонении стика, т. е. как быстро ЛА будет вращаться, когда мы делаем флип/ролл; -- насколько быстро изменяется чувствительность, когда мы перемещаем стик от центра до самого края оси, или «точка экспоненциального изгиба». +Although the classic Betaflight rate scheme has been around for a long time, it has many drawbacks. This led to the introduction of the **Actual** system in version 4.2 (along with others used by different firmwares), which became the primary system starting with 4.3. The parameters of the "Actual" system are much more understandable for the average user, allowing specific parts of the curve to be changed without shifting the rest of the range. -Несмотря на то, что схема рейтов Betaflight существуют уже давно, она имеет множество недостатков, из-за чего в 4.2 была введена система actual (и еще несколько, использумых другими прошивками, но эта станет основной с 4.3). -Параметры схемы рейтов actual намного понятнее простому пользователю и позволяют менять конкретные значения получаемой кривой без сдвигов в остальном диапазоне. +### Actual Rate Parameters: -Поясним параметры: +- **Center Sensitivity**: Directly sets the "base" linear response to stick movement. The value entered represents the actual stick sensitivity in the center in degrees/sec. This is the "feel" of the center responsiveness. +- **Max Rate**: Sets the desired maximum rotation speed in degrees/sec. It creates a "wedge-shaped" linear graph from the center value to the max speed at full deflection. +- **Expo**: An exponential coefficient that curves the interval between the center and the maximum value. -- Center sensitivity - значение «центральной чувствительности», чтобы напрямую настроить «базовую» линейную реакцию на движение стика. Значение, введенное для «центральной чувствительности», представляет фактическую чувствительность стика в центре в градусах/сек. Введенное число — это «ощущение» центра, которое вы получите при линейной скорости, настроенной на заданное значение град/с. Это своего рода «базовая» отзывчивость. -- Max Rate, чтобы установить желаемую максимальную скорость вращения в градусах/с и сделать «клинообразный» линейный график изменения скорости от центральных значений до максимальной скорости при полном отклонении стика. -- Expo, экспоненциальный коэффициент, который изгибает получаемый интервал между центром и крайним значением. +[Link to the original Pull Request](https://github.com/betaflight/betaflight/pull/9495) -[Тот самый пулл реквест](https://github.com/betaflight/betaflight/pull/9495) +**Ultimately, it is recommended to use the "Actual" system. All further recommendations will focus on it.** -**В конечном итоге, рекомендуется использовать actual систему. Все дальнейшие рекомендации будут для нее.** +## Which Rates are Best to Use? -## Какие рейты лучше всего использовать? +There are no universal rates; they are chosen based on your flight style. Generally, "low rates" are used for smooth flights or racing, while "high rates" are needed for "sharp" freestyle. "Low" typically means a Max Rate around 400-550 deg/sec, while "high" Max Rate is usually between 800-1200 deg/sec, depending on how fast you want the drone to flip or roll. -Универсальных рейтов не существует, они подбираются под ваш стиль полета. Можно только уточнить, что для плавных полетов или гонок чаще используются "низкие рейты", для "резкого" фристайла нужны "высокие" рейты. Под низкими предполагается, что Max Rate будет в районе 400-550 град/сек, для высоких Max Rate будет в районе 800-1200, смотря насколько быстро дрон должен совершать обороты при отклонениях стиков. -Center sensitivity многие ставят в диапазоне 70-150. Экспонента подбирается индивидуально. Вы можете менять значения в таблице и смотреть, как меняется график (rates preview) под таблицей, на котором можно представить стик с roll и pitch осями вашей аппаратуры и увидеть, как будет меняться значение при определенном отклонении стика. При включенной аппаратуре можно наблюдать за вращением модели дрона там же. +Many pilots set **Center Sensitivity** in the 70-150 range. **Expo** is highly individual. You can change values in the table and watch the "Rates Preview" graph beneath it. You can visualize the roll and pitch axes of your controller and see how the rotation speed changes at specific stick deflections. If your radio is connected, you can see the 3D model rotate in real-time. -Касаемо значений по осям (строкам в столбцах), вы можете на все оси поставить одинаковые значения, можете изменить для какой-то оси любой параметр на ваше усмотрение. -Не бойтесь экспериметировать с рейтами, пробуйте менять их (естественно, учтите, что при высоких рейтах дрон будет очень маневренным, а при низких вы скорее всего не успеете сделать флип или ролл на небольшой высоте). Со временем вы станете лучше понимать, какие рейты вам подходят больше. И как говорится, лучшие рейты, это те, на которых вы отлетали 1000 часов:) +Regarding axes (the rows in the columns): you can set identical values for all axes, or change any parameter for a specific axis to your liking. Don't be afraid to experiment. Keep in mind that high rates make the drone very maneuverable, while at very low rates, you might not have enough time to complete a flip or roll at a low altitude. Over time, you'll better understand which rates suit you. As they say: the best rates are the ones you've flown 1,000 hours on! -## Что еще можно настроить на вкладке с рейтами? +## What Else Can Be Adjusted on the Rates Tab? -Есть еще 4 параметра: Throttle Limit, Throttle Limit %, Throttle Mid, Throttle Expo. Все они отвечают за работу оси газа. +There are 4 additional parameters: **Throttle Limit**, **Throttle Limit %**, **Throttle Mid**, and **Throttle Expo**. These control the throttle axis. -В случае, если вас устраивает работа стика газа на вашем дроне, вам не следует менять Throttle Limit и его процент. Если вы хотите, чтобы стик газа имел меньший диапазон (актуально в основном для гонщиков) можно указать Throttle Limit = clip и Throttle Limit % на уровне конечного значения газа, и тогда ваш газ от 0 до 100% будет работать в указаном диапазоне. Если вы хотите "придушить", ограничить обороты моторов, можете указать Throttle Limit = scale и Throttle Limit % = 80+-, смотря до какого уровня газа вы хотите ограничить обороты, и тогда от минимального до максимального положения стика газа обороты моторов будут меняться от 0 до указанного Throttle Limit %. +- **Throttle Limit**: If you are happy with your throttle response, leave these alone. + - **Clip**: If you want the throttle stick to have a smaller range (common for racers), set "Throttle Limit = Clip" and "Throttle Limit %" to your desired end value. Your 0-100% stick travel will then operate within that range. + - **Scale**: If you want to "cap" or limit the motor's power, set "Throttle Limit = Scale" and "Throttle Limit %" (e.g., 80%). Motor RPM will then scale from 0 to 80% across the full stick range. +- **Throttle Mid & Throttle Expo**: Usually used by freestyle and cinematic pilots. Racers prefer a linear throttle response. + - **Throttle Mid**: The throttle level where you want to apply the exponent for smoother control. + - **Throttle Expo**: The strength of that exponent. An exponent around the "hover" throttle level makes it easier to maintain altitude and perform smooth takeoffs and landings. -Throttle Mid, Throttle Expo, как правило, необходимы для фристайлеров и синематик пилотов, гонщики стараются не использовать экспоненту на газу, чтобы обороты моторов менялись "линейно". Throttle Mid является уровнем газа, на котором вы бы хотели поставить экпоненту, чтобы получить более плавное изменение оборотов, Throttle Expo как раз отвечает за эту экспоненту. Экспонента на уровне газа висения позволяет проще удерживать дрон в одном положении, а также плавно сажать и плавно взлетать. Вы можете выставить на OSD параметр Throttle position, взлететь на дроне, попробовать зависнуть, и обратить внимание на значение газа, либо по параметру из осд, либо ориентировочно по стику газа. Например, оказалось, что дрон зависает на 30% газа, значит в Throttle Mid можно указать 0.3, а Throttle Expo хватит в диапазоне 0.3-0.4. Сохраните настройки и попробуйте. Не стоит бояться менять эти 4 параметра, хуже дрону вы не сделаете. +To set these, check your **Throttle position** on the OSD while hovering. If the drone hovers at 30% throttle, set Throttle Mid to 0.3. A Throttle Expo of 0.3-0.4 is usually sufficient. Don't be afraid to change these; you won't break the drone. -## Профили рейтов +## Rate Profiles -Вы можете сделать есколько профилей рейтов и в зависимости от нужного стиля полета переключать их перед/во время полета. Также полезно, если вы планируете дать порулить кому-то, чтобы человек попробовал ваш дрон на удобных для него рейтах, или в случае, если вы обучаете новичка на своем дроне. Смена рейт профиля производится: через осд меню, в которое можно зайти стик командой -([стик команды](https://2.bp.blogspot.com/-6j_FSBSycEI/XLUUY90qklI/AAAAAAAAEug/xsLM5y7Sya8AeYKKshsgWrf7NLs01DSYgCLcBGAs/s1600/StickPositions%2Bcopy.jpg)); в луа скрипте бетафлайт с аппаратуры ([скачать скрипт на аппаратуру можно тут](https://github.com/betaflight/betaflight-tx-lua-scripts/releases)); по тумблеру, если вы настроили это в режиме adjustments (expert mode on, "rate profile selection" в поле "then apply", и естественно надо настроить остальные параметры в этой строке). -Но многие летают и с одним постоянным профилем, вас никто не заставляет использовать несколько, главное, случайно не переключите нужный профиль на другой, который будет скорее всего в дефолтовом значении, если вы ничего не меняли там. +You can create multiple rate profiles and switch between them before or during flight. This is useful for different flight styles, letting someone else try your drone, or training a beginner. -## Рекомендуемые значения рейтов от ikherty(Валентины) для новичков +You can switch profiles via: +- **OSD Menu**: Entered via [stick commands](https://2.bp.blogspot.com/-6j_FSBSycEI/XLUUY90qklI/AAAAAAAAEug/xsLM5y7Sya8AeYKKshsgWrf7NLs01DSYgCLcBGAs/s1600/StickPositions%2Bcopy.jpg). +- **Betaflight LUA Script**: From your radio ([download here](https://github.com/betaflight/betaflight-tx-lua-scripts/releases)). +- **Adjustments Tab**: Using a physical switch (Expert Mode on -> "Rate Profile Selection" in the "then apply" field). -Чтобы не переруливать и учиться летать на дроне, рекомендую ставить низкие рейты: +Most pilots stick to one profile. If you only use one, just ensure you don't accidentally switch to a default profile mid-flight. -(для всех осей) +## Recommended Rates for Beginners (by ikherty) -- Center sensitivity = 70 -- Max Rate = 400 -- Expo = 0.2 -- Throttle Mid = (газ висения, для типовых 5" это 0.3, для тяжелых вупов это 0.4-0.55) -- Throttle Expo = 0.35 +To avoid over-correcting and learn smoother control, I recommend starting with low rates: + +(Apply to all axes): +- **Center Sensitivity**: 70 +- **Max Rate**: 400 +- **Expo**: 0.2 +- **Throttle Mid**: Hover throttle (approx. 0.3 for a standard 5", 0.4-0.55 for heavy whoops) +- **Throttle Expo**: 0.35 diff --git a/docs/en/settings/scripts.md b/docs/en/settings/scripts.md index 3fb91b2d..1301da93 100644 --- a/docs/en/settings/scripts.md +++ b/docs/en/settings/scripts.md @@ -1,23 +1,21 @@ -# Полезные LUA скрипты для аппаратуры +# Useful LUA Scripts for Radios -Для настройки аппаратуры, дрона, передатчика, приемника, а также просмотра логов и даже просто игры существуют различные скрипты, которые помещаются в папку scripts/tools на SD карту аппаратуры. Рекомендую ознакомиться с доступными скриптами ниже. +Various scripts exist for configuring your radio, drone, transmitter, and receiver, as well as for viewing logs and even playing simple games. These scripts are typically placed in the `scripts/tools` folder on the radio's SD card. I recommend checking out the essential scripts listed below. -## Минимально необходимые для большинства +## Essential Scripts for Most Pilots -* [Betaflight LUA script](https://github.com/betaflight/betaflight-tx-lua-scripts) +* [Betaflight LUA Script](https://github.com/betaflight/betaflight-tx-lua-scripts) + If telemetry is available from your drone's receiver, you can adjust most Betaflight settings directly from your radio without connecting to a computer. Don't forget to save your changes! -В случае наличия телеметрии с приемника дрона можно настроить большинство настроек бетафлайта, не подключаясь к конфигуратору. Не забудьте сохранить изменения! +* [ExpressLRS Configurator (if using an ELRS radio system)](https://www.expresslrs.org/quick-start/transmitters/lua-howto/) + It is important to use the LUA script version matches your ELRS transmitter version (v2 script for hardware version 2.*.*, v3 script for 3.*.*). -* [ExpressLRS (в случае, если у вас ELRS радиосистема управления)](https://www.expresslrs.org/quick-start/transmitters/lua-howto/) +* [TBS Agent Lite (for Crossfire/Tracer radio systems)](https://www.team-blacksheep.com/products/prod:agentx) -Важно иметь скрипт той же версии, что и версия вашего ЕЛРС передатчика (v2 для 2.*.*, v3 для 3.*.*). +## Optional Scripts -* [TBS Agent Lite (для crossfire/tracer радиосистем)](https://www.team-blacksheep.com/products/prod:agentx) +* [FPV Simulator Script by AlexeyStn](https://github.com/alexeystn/lua-fpv-sim) + One of the top racing pilots in Russia, AlexeyStn, created this script that allows you to practice flying if you only have your radio handy. -## Опциональные скрипты - -* [Скрипт-симулятор от AlexeyStn (один из ТОПовых пилотов-гонщиков из РФ)](https://github.com/alexeystn/lua-fpv-sim) - -Позволяет скоротать время с пользой, если у вас под рукой только аппаратура. - -* [Множество скриптов собрано тут](https://github.com/EdgeTX/lua-scripts). +* [Multi-script Collection](https://github.com/EdgeTX/lua-scripts) + A large collection of various LUA scripts for EdgeTX. diff --git a/docs/en/settings/skyzone.md b/docs/en/settings/skyzone.md index f9003935..d3f9d490 100644 --- a/docs/en/settings/skyzone.md +++ b/docs/en/settings/skyzone.md @@ -1,22 +1,25 @@ -# Режимы работы SkyZone SteadyView +# SkyZone SteadyView Operating Modes -Модули приема видео (VRX) Skyzone Steadyview, как и большинство современных VRX модулей, содержит 2 приемника, работающих одновременно. Такая схема позволяет реализовывать различные алгоритмы улучшения приема и итоговой картинки. -Начиная с аппаратной версии 3.2 Steadyview имеют 4 режима работы. +The Skyzone Steadyview video receiver (VRX) modules, like most modern VRX modules, contain two receivers that work simultaneously. This setup allows for various algorithms to improve signal reception and the final image quality. Starting from hardware version 3.2, Steadyview has four operating modes. -- В режиме **Div** модуль будет работать в традиционном режиме приема - [диверсити](https://propwashservice.com/ru/intro/videoRx#как-принимать-картинку-с-дрона). Это означает, что на очки будет выводиться аудио и видеосигнал с приемника, имеющего наибольшую силу сигнала (RSSI). +### Operating Modes: -Mix режимы нацелены на то, чтобы взять картинку сразу с обоих приеимников и попытаться слить ее воедино, убирая помехи. +- **Div (Diversity)**: The module works in traditional [Diversity](https://propwashservice.com/en/intro/videoRx#how-to-receive-video-from-a-drone) mode. This means the goggles output the audio and video signal from the receiver with the highest signal strength (RSSI). -- Mix1 обеспечивает базовое слияние. +The **Mix** modes aim to take images from both receivers simultaneously and merge them into one, filtering out interference. -- Mix2 улучшает стабильность синхронизации. Тут речь идет о синхроимпульсе, который идет в начале каждого PAL/NTSC кадра и нужен для синхронизации, если синхроимпульс из-за помех будет неверно прочтен или потерян, итоговая картинка будет искажена. +- **Mix1**: Provides basic image merging. -- Mix3 улучшает сигнал синхронизации на основе Mix2, максимизирует стабильность видеоизображения и обеспечивает максимальную совместимость с другими устройствами отображения. В этом режиме яркость видеосигнала будет снижена. +- **Mix2**: Improves synchronization stability. This refers to the sync pulse at the beginning of each PAL/NTSC frame. If the sync pulse is misread or lost due to interference, the resulting image will be distorted. -Для корректной работы этих режимов необходимы последние версии прошивки модуля и очков. +- **Mix3**: Enhances the sync signal based on Mix2, maximizing video stability and ensuring maximum compatibility with other display devices. Note that video brightness will be reduced in this mode. -P.S. вольный перевод [статьи](https://skyzone.freshdesk.com/support/solutions/articles/151000020976-whats-the-mix1-mix2-mix3-div-mode) с австорскими дополнениями. +For these modes to work correctly, the latest firmware for both the module and the goggles is required. -Прошивки и инструкции [клац](https://www.skyzonefpv.com/pages/download). +--- -Еще инструкции по [skyzone](https://doggydog.blog/tag/skyzone/). +*P.S. This is a loose translation of the [official article](https://skyzone.freshdesk.com/support/solutions/articles/151000020976-whats-the-mix1-mix2-mix3-div-mode) with author's additions.* + +### Downloads and Guides: +* [Firmware and Instructions](https://www.skyzonefpv.com/pages/download) +* [Further Skyzone Guides](https://doggydog.blog/tag/skyzone/) diff --git a/docs/en/shop/DIY.md b/docs/en/shop/DIY.md index 6810c62a..3b013008 100644 --- a/docs/en/shop/DIY.md +++ b/docs/en/shop/DIY.md @@ -1,144 +1,149 @@ -# Как подобрать компоненты для сборки дрона? +# How to Choose Components for Building a Drone? -Новичкам частенько тяжело сориентироваться, что и с какими характеристиками стоит взять, а главное, во сколько всё обойдётся. Предлагаю список совместимых компонентов: +Beginners often find it difficult to determine which components and specifications to choose, and more importantly, how much it will all cost. Below is a list of compatible components for various build types. -> Приемник выбирается в зависимости от вашего передатчика. +> **Note**: Your receiver choice must match your radio transmitter. +> +> **Note**: As of 2022, support for flight controllers based on F722 and F411 processors is gradually being phased out due to limited memory (512kB). Currently, firmware features are being scaled back for these chips; Betaflight 4.4 uses a new cloud build system to manage this. [Detailed explanation here](https://oscarliang.com/f1-f3-f4-flight-controller/). -> В 2022 году стало известно, что в дальнейшем постепенно планируется прекращение поддержки полетников на базе f722 и f411 процессоров из-за малого количества памяти (512кБ, [подробно тут](https://oscarliang.com/f1-f3-f4-flight-controller/)), на данный момент просто урезается функционал прошивок под эти полетники, в betaflight 4.4 уже используется новая система сборки. +[Check out RotorBuilds for community build examples](https://rotorbuilds.com/). -[Примеры сборок различных пилотов можно найти здесь](https://rotorbuilds.com/). +--- -## 65мм бесколлекторный, БК (brushless) Tiny Whoop (тинивуп) на аналоговой видеосистеме: +## 65mm Brushless Tiny Whoop (Analog Video) -- Моторы 19000-23000кв 0702/0802/0803 -- Регуляторы+полетник+приёмник+видеопередатчик "aio flight controller 4 in 1" (fc+esc+receiver+vtx) на elrs 2.4 встроенном приемнике -- Камера по типу runcam nano 3/foxeer razer piko/caddx ant lite -- Пропы 3 лопасти gemfan 31мм -- Рама happymodel 65/ betafpv meteor65 -- Аккумуляторы tattu/gnb 1s c разъемом bt2.0/gnb27 (разъемы на дроне и батах должны совпадать) 300-380mAh +- **Motors**: 19000-23000KV (size 0702 / 0802 / 0803) +- **AIO Flight Controller**: 4-in-1 (FC + ESC + Receiver + VTX), ideally with built-in ELRS 2.4GHz +- **Camera**: Nano-size (e.g., RunCam Nano 3, Foxeer Razer Pico, Caddx Ant Lite) +- **Propellers**: 31mm 3-blade (e.g., Gemfan) +- **Frame**: 65mm (e.g., HappyModel Mobula6, BetaFPV Meteor65) +- **Batteries**: 1S 300-380mAh with BT2.0 or GNB27 connectors (ensure drone and battery connectors match) -## 75мм бесколлекторный, БК (brushless) Tiny Whoop (тинивуп) на аналоговой видеосистеме: +## 75mm Brushless Tiny Whoop (Analog Video) -- Моторы 18000-20000кв 1002 для бодрого фристайла или размером 0802 для легкой сборки -- Регуляторы+полетник+приёмник+видеопередатчик "aio flight controller 4 in 1" (fc+esc+receiver+vtx) на elrs 2.4 встроенном приемнике по типу happymodel aio crazyf4 elrs (но если вы используете frsky передатчик, есть и такой вариант с соответствующим приемником) или aio без встроенного видеопередатчика и отдельно видеопередатчик по типу ovx300 -- Камера по типу caddx ant lite -- Пропы 3-4 лопасти gemfan/hq prop 40мм -- Рама happymodel mobula7 / betafpv meteor75 -- Аккумуляторы tattu/gnb 1s c разъемом bt2.0/gnb27 (разъемы на дроне и батах должны совпадать) 450-550mAh +- **Motors**: 18000-20000KV (size 1002 for freestyle, 0802 for lightweight builds) +- **AIO Flight Controller**: 4-in-1 (FC + ESC + Receiver + VTX), e.g., HappyModel CrazyF4 ELRS. Alternatively, an AIO without VTX + a separate VTX (e.g., OVX300). +- **Camera**: Caddx Ant Lite or similar +- **Propellers**: 40mm 3-4 blade (e.g., Gemfan, HQProp) +- **Frame**: 75mm (e.g., HappyModel Mobula7, BetaFPV Meteor75) +- **Batteries**: 1S 450-550mAh with BT2.0 or GNB27 connectors -## 75мм бесколлекторный, БК (brushless) Tiny Whoop (тинивуп) на цифровой видеосистеме HDZero/Avatar: +## 75mm Brushless Tiny Whoop (Digital Video: HDZero/Avatar) -- Моторы 18000-20000кв 1002 -- Регуляторы+полетник+приёмник "aio flight controller 3 in 1" (fc+esc+receiver) на elrs 2.4 встроенном приемнике по типу happymodel crossf4 elrs -- kit набор видеосистемы по типу hdzero whoop bundle или walksnail avatar mini kit 1s lite -- Пропы 3-4 лопасти gemfan/hq prop 40мм -- Рама happymodel mobula7 / betafpv meteor75 -- Аккумуляторы tattu/gnb 1s c разъемом bt2.0/gnb27 (разъемы на дроне и батах должны совпадать) 450-550mAh +- **Motors**: 18000-20000KV (size 1002) +- **AIO Flight Controller**: 3-in-1 (FC + ESC + Receiver) with built-in ELRS, e.g., HappyModel CrossF4 ELRS +- **Video System**: HDZero Whoop Bundle or Walksnail Avatar Mini 1S Lite Kit +- **Propellers**: 40mm 3-4 blade +- **Frame**: 75mm (e.g., HappyModel Mobula7, BetaFPV Meteor75) +- **Batteries**: 1S 450-550mAh with BT2.0 or GNB27 connectors -## 80мм бесколлекторный, БК (brushless) Tiny Whoop (тинивуп): +## 80mm Brushless Tiny Whoop -- Моторы 18000-20000кв 1002/1003 -- Регуляторы+полетник+приёмник "aio flight controller 3 in 1" (fc+esc+receiver) на elrs 2.4 встроенном приемнике по типу happymodel crossf4 elrs -- Набор под вашу видеосистему - цифровые киты из набора под 75мм или аналоговый видеопередатчик по типу ovx300+камера по типу caddx ant lite -- Пропы 3-4 лопасти gemfan 45мм -- Рама betafpv meteor 75 PRO -- Аккумуляторы tattu/gnb 1s c разъемом bt2.0/gnb27 (разъемы на дроне и батах должны совпадать) 550mAh +- **Motors**: 18000-20000KV (size 1002 / 1003) +- **AIO Flight Controller**: 3-in-1 (FC + ESC + Receiver) with built-in ELRS +- **Video System**: Digital kits (same as 75mm) or Analog (e.g., OVX300 VTX + Caddx Ant Lite camera) +- **Propellers**: 45mm 3-4 blade (e.g., Gemfan) +- **Frame**: BetaFPV Meteor75 Pro +- **Batteries**: 1S 550mAh with BT2.0 or GNB27 connectors ## CineWhoop -- Рама под 2-3.5" пропеллеры и одноплатник 25.5\*25.5 -- Одноплатник (AIO, полетник+регуляторы) на 15-35А (в зависимости от потребления мотора на максимуме+20% запаса) с контроллером F405/F7/H7 -- Моторы 1404-2004 в зависимости от пропеллера и задач, для полной гопро ближе к 2004 и сетап под 6S (2600-3200кв), для раздетой 1408 под 4S (3800-4200кв) достаточно -- Набор под вашу видеосистему - цифровые киты caddx vista или dji o3 unit / walksnail avatar lite / hdzero whoop или race v3 vtx или аналоговый видеопередатчик+камера+антенна компактных размеров -- Аккумуляторы 600-1000мАч в зависимости от выбранной винто-моторной группы - -## 2-2,5" зубочистка - -- Рама 88-100мм для 2", для 2,5" 110-120мм -- Моторы 1102-1106 7500кв+- для 2S и 5500+-кв для 3S -- Одноплатник (AIO, полетник+регуляторы) на 15-25А (в зависимости от потребления мотора на максимуме+20% запаса) с контроллером F405/F7/H7 -- Камера формата нано -- Видеопередатчик (аналоговый) с минимальным весом - happymodel ovx300/tbs unify pro32/rush tiny tank либо цифровая система под ваши очки - caddx vista (dji) / walksnail avatar lite / hdzero whoop или race v3 vtx -- Пропы 2-3 лопасти от gemfan/hq prop -- Аккумуляторы 300-500мАч 60-80С в зависимости от выбранной винто-моторной группы - -## 3" коптер - -- Рама 120-150мм под 3" -- Стек полетник+регулятор 4в1 или одноплатник (AIO, полетник+регуляторы) на 20-25А (в зависимости от потребления мотора на максимуме+20% запаса) с контроллером F405/F7/H7 -- Моторы 1306-1506 4000кв+- под 4S или 2800+-кв под 6S -- Видеопередатчик (аналоговый) с минимальным весом - happymodel ovx300/tbs unify pro32/rush tiny tank либо цифровая система под ваши очки - caddx vista или dji o3 unit / walksnail avatar lite / hdzero whoop или race v3 vtx -- Камера нано формата (14мм шириной, рекомендуется предварительно посмотреть описание рамы, рекомендуемые размеры) -- Аккумуляторы 600-850мАч 60-100С в зависимости от выбранной винто-моторной группы - -## 3.5" зубочистка - -- Рама 140-160мм под 3.5" по типу crux35 -- Одноплатник (AIO, полетник+регуляторы) на 20-35А в зависимости от потребления мотора на максимуме+20% запаса -- Моторы 1404-1506 3900кв+- под 4S или 2600+-кв под 6S -- Видеопередатчик (аналоговый) с минимальным весом - happymodel ovx300/tbs unify pro3/rush tiny tank либо цифровая система под ваши очки - caddx vista (dji) / walksnail avatar lite / hdzero whoop или race v3 vtx -- Камера нано формата (14мм шириной, рекомендуется предварительно посмотреть описание рамы, рекомендуемые размеры) -- Аккумуляторы 600-850мАч 60-100С в зависимости от выбранной винто-моторной группы - -## 5" гоночный: - -> чем меньше вес, тем лучше (в среднем, гоночные 5" 250-300г) - -[Регламент от DSG (Drone Sports Globa) на 2023](https://disk.yandex.ru/i/jnf-UcFgCBd4eQ). - -- Аккумуляторы лучше с большой токоотдачей, 6s 100-200C 1100-1400mAh, для скоростных треков только tattu/dogcom -- Моторы 2207/2306 1800-2000кв (стоит глянуть регламент, если планируете участвовать в гонках) -- Стек (fc+esc) с полетником на F405/F722/F745/F765/H743 и регулятором 4in1 40-65A. формфактор стека 20\*20 -- Рама 200-230мм вытянутый икс или крест -- Видеопередатчик 25mW по регламенту -- АНАЛОГОВАЯ камера с низкой задержкой формата микро или нано по типу foxeer predator или runcam racer -- Антенна с круговой поляризацией по типу lollipop утопленная в канопу или в маунте на стойках рамы -- Пропы R38 или 51466 или 5146.5 -- Управляемые светодиоды, от 10 шт на каждый луч с размещением с двух сторон, идеально 5В на базе ws2812 с внешним беком (для разгрузки бека полетника) - -## 5" фристайловый: - -> весом можно пренебречь - -- Рама автобус по типу apex 5/aos 5 -- Моторы 2207/2306 1800+-кв -- Стек (fc+esc) F405/F722/F745/F765/H743 + 40-65A -- Камера формата микро -- Видеосистема под ваш шлем, антенна, вынесенная на ножке, чтобы не перекрывалась аккумулятором и экшн камерой -- Аккумуляторы 6s 1100-1400mAh 100-150C - -## 5.5" фристайловый: - -> отличный вариант для фристайла с GoPro - -- Рама по типу aos 5.5 -- Моторы 2208 1800+-кв -- Стек (fc+esc) F405/F722/F745/F765/H743 + 40-65A -- Видеосистема под ваш шлем, антенна, вынесенная на ножке, чтобы не перекрывалась аккумулятором и экшн камерой -- Аккумуляторы 6s 1300-1500mAh 100-150C - -## 7" дальнолет: - -> под inav/ardupilot - -- Аккуммуляторы: сборка из lion 18650 или 21700 4s2p/6s2p для 25-45 минут полетного времени, 6s1p/4s1p для 10-25 минут полетного времени -- Моторы 2306(если легкая сборка)-2808(если с экшн камерой) на 1250-1300кв под 6S или 1600-1750кв под 4S -- gps с магнитометром по типу holybro nano m8, matek m8q, flywoo goku m10 -- Cтек с регулятором 35-60А и полетным контроллером, поддерживающим inav/ardupilot с i2c, baro -- Пропеллеры 2-3 лопасти, неплохие по эффективности hq 7\*4\*3 -- Рама вместительная, с лучами 5-6мм, на 4мм будет желе -- Видеосистема под ваш шлем, антенна, вынесенная на ножке - -## 7" фристайл-синематик: - -> под betaflight - -- Аккуммуляторы: сборка из высокотоковых lion 21700 6s1p или lipo 6s 3000-5000mAh 50C+ -- Моторы 2406-2808 на 1300-15000кв -- gps опционально -- Cтек с регулятором 45-60А и полетным контроллером f405/f722/f745/h743 -- Пропеллеры 2-3 лопасти, hq 7\*3-4.5\*3 -- Рама с лучами толщиной от 6мм, с максимально раздвинутыми передними лучами для отсутствия пропов в кадре, если планируется угол камеры меньше 30 градусов -- Видеосистема под ваш шлем, антенна, вынесенная на ножке - -Также можно глянуть [сайт JB](https://www.fpvknowitall.com/), часть компонентов продается только в штатах, но вполне доступно расписан каждый раздел и приведены хорошие примеры. +- **Frame**: Designed for 2" to 3.5" propellers with 25.5x25.5mm mounting +- **AIO Flight Controller**: 15-35A (depending on motor draw + 20% margin) with F405 / F7 / H7 processor +- **Motors**: 1404 to 2004 size. For a full GoPro, use 2004 size on 6S (2600-3200KV). For a "Naked" GoPro, 1408 size on 4S (3800-4200KV) is sufficient. +- **Video System**: Digital (Caddx Vista, DJI O3, Walksnail Avatar Lite, HDZero) or compact Analog +- **Batteries**: 600-1000mAh depending on the motor/prop combo + +## 2" to 2.5" Toothpick + +- **Frame**: 88-100mm for 2", 110-120mm for 2.5" +- **Motors**: 1102-1106 size. ~7500KV for 2S, ~5500KV for 3S +- **AIO Flight Controller**: 15-25A with F405 / F7 / H7 processor +- **Camera**: Nano-size +- **Video System**: Lightweight Analog (HappyModel OVX300, TBS Unify Pro32, Rush Tiny Tank) or Digital (Caddx Vista, Avatar Lite, HDZero) +- **Propellers**: 2-3 blade (Gemfan, HQProp) +- **Batteries**: 300-500mAh 60-80C + +## 3" Quadcopter + +- **Frame**: 120-150mm for 3" props +- **Stack or AIO**: 20-25A with F405 / F7 / H7 processor +- **Motors**: 1306-1506 size. ~4000KV for 4S, ~2800KV for 6S +- **Video System**: Lightweight Analog or Digital (DJI O3, Vista, Avatar, HDZero) +- **Camera**: Nano-size (14mm wide; check frame compatibility) +- **Batteries**: 600-850mAh 60-100C + +## 3.5" Toothpick + +- **Frame**: 140-160mm (e.g., Crux35) +- **AIO Flight Controller**: 20-35A +- **Motors**: 1404-1506 size. ~3900KV for 4S, ~2600KV for 6S +- **Video System**: Lightweight Analog or Digital +- **Camera**: Nano-size (14mm wide) +- **Batteries**: 600-850mAh 60-100C + +## 5" Racing Drone + +> **Target**: Lower weight is better (approx. 250-300g without battery). + +- **Frame**: 200-230mm Stretched-X or True-X +- **Motors**: 2207 / 2306 size, 1800-2000KV (check race regulations) +- **Stack (FC + ESC)**: F405 / F7 / H7 processor with 40-65A 4-in-1 ESC (20x20mm mounting) +- **Video System**: Analog (low-latency Micro/Nano camera like Foxeer Predator or RunCam Racer + 25mW VTX per regulations) +- **Antenna**: Circularly polarized (e.g., Lollipop) recessed in a canopy or mount +- **Propellers**: R38, 51466, or 5146.5 +- **LEDs**: Addressable WS2812 (at least 10 per arm), ideally with an external 5V BEC +- **Batteries**: High discharge 6S 1100-1400mAh 100-200C (e.g., Tattu R-Line, Dogcom) + +## 5" Freestyle Drone + +> **Target**: Weight is secondary to durability and flight feel. + +- **Frame**: "Bus" style (e.g., Apex 5, AOS 5) +- **Motors**: 2207 / 2306 size, ~1800KV +- **Stack (FC + ESC)**: F405 / F7 / H7 + 40-65A +- **Camera**: Micro-size +- **Video System**: Digital or Analog; antenna should be mounted on a "stalk" to clear the battery and action camera +- **Batteries**: 6S 1100-1400mAh 100-150C + +## 5.5" Freestyle Drone + +> **Target**: Excellent for carrying a full-size GoPro. + +- **Frame**: AOS 5.5 or similar +- **Motors**: 2208 size, ~1800KV +- **Stack (FC + ESC)**: F405 / F7 / H7 + 40-65A +- **Video System**: Digital or Analog; stalk-mounted antenna +- **Batteries**: 6S 1300-1500mAh 100-150C + +## 7" Long Range (Long-Range) + +> **Best with**: INAV or ArduPilot + +- **Frame**: Robust, with 5-6mm thick arms (4mm will cause "jello" in video) +- **Motors**: 2306 (lightweight) to 2808 size. 1250-1300KV for 6S, 1600-1750KV for 4S +- **Stack (FC + ESC)**: 35-60A ESC + FC with I2C and Barometer support +- **GPS**: High-quality GPS with Magnetometer (e.g., Holybro Nano M8, Matek M8Q, Flywoo Goku M10) +- **Propellers**: 7x4x3 (HQProp) +- **Video System**: Digital or Analog; stalk-mounted antenna +- **Batteries**: + - Li-Ion packs (18650 or 21700) 4S2P/6S2P for 25-45 min flight time + - LiPo 4S1P/6S1P for 10-25 min flight time + +## 7" Freestyle/Cinematic + +> **Best with**: Betaflight + +- **Frame**: 6mm+ arms, "DeadCat" style (front arms pushed out) to keep props out of the camera view at low tilts +- **Motors**: 2406-2808 size, 1300-1500KV +- **Stack (FC + ESC)**: 45-60A ESC + F405 / F7 / H7 FC +- **GPS**: Optional +- **Propellers**: 7x3-4.5x3 (HQProp) +- **Video System**: Digital or Analog; stalk-mounted antenna +- **Batteries**: + - High-discharge Li-Ion 21700 6S1P + - LiPo 6S 3000-5000mAh 50C+ + +--- + +*For more information, visit [Joshua Bardwell's FPVKnowItAll](https://www.fpvknowitall.com/); while some components are US-specific, his breakdowns and examples are excellent.* diff --git a/docs/en/shop/nessesary.md b/docs/en/shop/nessesary.md index c8cd1c33..e8c8febf 100644 --- a/docs/en/shop/nessesary.md +++ b/docs/en/shop/nessesary.md @@ -1,71 +1,71 @@ -# Расходники для FPV дронов и необходимое оборудование +# FPV Drone Consumables and Essential Equipment -Что понадобится при сборке квадрокоптера: инструменты, запчасти и расходники для FPV квадрокоптеров и не только. Основные детали указаны в списке, также на сайте вы можете найти список покупок для сборки FPV самолетов и летающих крыльев. Магазины по ссылкам не являются единственными, приведены из списка предыдущих заказов, если хочется сэкономить или ссылка устарела, воспользуйтесь поиском по картинке/названию. В случае, если ссылка недоступна, просьба открыть issue на эту тему. +When building a quadcopter, you'll need tools, spare parts, and various consumables. The list below covers the essentials for FPV drones. You can also find shopping lists for FPV airplanes and flying wings on this site. The links provided are from previous orders; if a link is broken or you want to save money, use the product names or images to search for alternatives. If you find a dead link, please open an issue. -| Наименование | Описание | Ссылка | Фото | -| :------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------: | -| Мультиметр | Без вопросов, просто купи, с режимом прозвонки, вольтметром, омметром | [UNI-T UT33B+](https://aliexpress.ru/item/33055575703.html) | ![](https://ae04.alicdn.com/kf/HTB17e5ae8Cw3KVjSZFuq6AAOpXaz.jpg) | -| Электронный штангенциркуль | для точного измерения | [SHAHE](http://s.click.aliexpress.com/e/c5AjhdZI) | ![](https://ae04.alicdn.com/kf/S8ef2203574fd45eab9047f287ce99e49U/SHAHE-0-150.jpg) | -| Паяльный фен | опционально, для термоусадки d>=30mm и ремонта электроники | [858D](https://aliexpress.ru/item/4000539586748.html), [альтернатива](https://aliexpress.ru/item/32967749127.html) | ![](https://ae04.alicdn.com/kf/Hce64be4545fb44b4ad7b642ceb18fe91X/858D.jpg) | -| Паяльник | понадобится БП с напряжением и мощностью из описания паяльника | [hakko t12](https://ru.aliexpress.com/item/32740527077.html), [pine64](https://pine64.org/devices/pinecil/), [TS101](https://aliexpress.ru/wholesale?SearchText=ts+101&CatId=undefined&g=y&page=1&searchInfo=A516TkLFl9tmg1lilMo0gyyPyp1kgFu9pEFNM270qqv9ukIgFiiE+sI%2F8u2ntKyv83jRkuMIKUqsMCmaE40VEPSU544IZPMBLXk4IDYVZz+0jqsIGkVKs364LlDGj12lF6FUrHXwr8UQAzyn6uaoAPdrPH5EgujE+Fmt22LypEmPfCh%2Fo7icmnBWB8eeAt8ndw1SUNqRSStngqTyDabV) | ![](https://ae01.alicdn.com/kf/H6812ee554b1946079aac049f54f10f40Z.jpg) | -| Блок питания 24В | для паяльника | [noname](https://a.aliexpress.com/_mOOikUk) | ![](https://ae04.alicdn.com/kf/H27a59edb6b724bf9bad51b6217cc91332/QUICKO-24-3a-5-5-2-1-2-5-72.jpg) | -| Разъемы 5,5\*2,5мм | для паяльника | [5 шт](https://a.aliexpress.com/_mPbb420) | ![](https://ae01.alicdn.com/kf/H2a0586981f92453c9bf3fea6fda74684K.jpg) | -| Флюс | нейтральный не требует смывку, активный обязательно смывать | [tt flux](https://yandex.ru/search/?text=tt+flux+нейтральный+купить&clid=2574587&win=583&lr=10262), [RMA-UV10](https://aliexpress.ru/wholesale?SearchText=RMA-UV10%2C&CatId=undefined&g=y&page=1&searchInfo=A7Ycu1KdHysiye9bpmqL7mlBbJKgOcRITHmblOo8gGApnJBQI7r2xEhDQ5ungBZn7CwefI7BbY0Uz0yYDK6hp23jQPMTM+GEaJ54BHIHi6dX4+EKYtMsW9QBliK1MB0MHeFZ+AjaS9UdfYNnJ9K%2FCcUYvW1LqnYAHMxuKSPtpaSP8S0UQTJVgs+FhqA4A2OL+C2qK1r55GYIUIA7IA%3D%3D), [EFD 6-412-A Flux Plus](https://www.ozon.ru/product/flyus-efd-6-412-a-flux-plus-10-g-bezotmyvochnyy-208542676/?sh=Bsjl89ITDQ) | ![](https://static.onlinetrade.ru/img/items/b/flyus_gel_indikatornyy_tt_keller_20_ml_rexant_1107900_1.jpg) | -| Припой | ПОС60/ПОС61 с канифолью/без | [ПОС60](https://www.vseinstrumenti.ru/rashodnie_materialy/dlya_ruchnogo_instrumenta/dlya_payaki/pripoj/pos_60), [каина синяя, kaina](https://aliexpress.ru/item/33023323860.html) | ![](https://cdn.vseinstrumenti.ru/images/goods/rashodnie-materialy/dlya-ruchnogo-instrumenta/766200/560x504/51594453.jpg) | -| Губка для очистки жала | | [жесткая](https://aliexpress.ru/item/32889717103.html), [мягкая](https://aliexpress.ru/item/1005005585743667.html) | ![](https://ae04.alicdn.com/kf/H3f5e58e359e44d088504f64e4a664200H/-.jpg) | -| Спирт | изопропиловый, для чистки места пайки | [купить](https://clck.ru/ZQHrJ) | ![](https://v2.partsdirect.ru/goods/good_big_pics/602149.jpg) | -| Сменные жала | для пайки разной площади сечения + на замену | [для Т12](http://s.click.aliexpress.com/e/buqA6P5Q), [для ТS100](https://aliexpress.ru/item/32858159651.html) | ![](https://ae04.alicdn.com/kf/Hb8efb629d65e4dacbad9ecb157b417bdZ/Quicko-TS100.jpg) | -| Третья рука | для удобства пайки | [щупальца](https://aliexpress.ru/item/1005005575570751.html), [магнитная версия](https://aliexpress.ru/item/32973845988.html), [omnifixo - премиум вариант](https://omnifixo.com/), [клон omnifixo](https://www.ozon.ru/product/1-0v-rufixo-derzhatel-dlya-plat-tretya-ruka-994424263/) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/72/A3/9ef27f7b-a5db-418c-942e-bea3e10f9bd7.JPG.webp) | -| Кусачки для проводов | для проводов 30-14awg + для более твердых и крупных сечений | [binoax](https://aliexpress.ru/wholesale?SearchText=кусачки) | ![](https://ae04.alicdn.com/kf/H04d9e33200314a768209fba8bd9bfb7b5/BINOAX.jpg) | -| Паяльный коврик | | [30\*20мм](https://aliexpress.ru/item/1005002537062837.html) | ![](https://ae04.alicdn.com/kf/H9d870574f2364edca5844fea47ab5ce0E/-.jpg) | -| Коврик для резки | опционально для авиамоделистов | [А1-А4](https://a.aliexpress.com/_mMrsq2q) | ![](https://ae04.alicdn.com/kf/H56d9dc19a40346a39ec23e7205dce46ae/-.jpg) | -| Скальпель | | [металлический](https://aliexpress.ru/item/1005002376163602.html) | ![](https://ae04.alicdn.com/kf/Hdc5565a2ed9e44bf85d681b5b09aa818F/ESPLB.jpeg_640x640.jpeg) | -| Оловоотсос | | [самый простой](https://aliexpress.ru/item/32864628837.html) | ![](https://ae04.alicdn.com/kf/HTB1vJ9xeNiH3KVjSZPfq6xBiVXam/-.jpg) | -| Оплетка | для удаления припоя с места пайки | [1.5-3.5мм](https://aliexpress.ru/item/1005002080427004.html) | ![](https://ae04.alicdn.com/kf/Ha0bd06e38b5d4248ac042121c7b3f6abA/1-5-2.jpg) | -| Пинцет | | [из нержавеющей стали](https://aliexpress.ru/item/1005003535072630.html), [титановый](https://aliexpress.ru/item/1005002049014611.html) | ![](https://ae04.alicdn.com/kf/H00772b78c3cc4173917a47241064804b9/SUNSHINE-TS-11-ESD.jpg) | -| Зачистка проводов | | [SN-28B](https://aliexpress.ru/item/4001145869380.html), [HILDA](https://www.banggood.com/custlink/DGD38ejwoG) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/7F/F8/48f91d67-e5ef-4346-a333-02a4c28541c7.JPG.webp) | -| Лабораторный блок питания | для продвинутых | [минимальный](https://aliexpress.ru/item/1005001780763843.html), [RIDEN RD6006](https://aliexpress.ru/item/4000297196564.html) | ![](https://ae04.alicdn.com/kf/Hd71164aa4f2b479491e539c0d71e13c6q/RD-RD6018-RD6018W-USB-Wi-Fi.jpg) | -| Бор машинка | | [BDCAT](https://a.aliexpress.com/_mq9ybaG) | ![](https://ae04.alicdn.com/kf/Hb9990c1a453a46e890cfd93e4fed61c7i/BDCAT.jpg) | -| Силиконовые провода | | [разного диаметра с силиконовой защитой](http://s.click.aliexpress.com/e/X079c0C), [и еще](https://a.aliexpress.com/_mMfiFha) | ![](https://ae04.alicdn.com/kf/Haefde1c688774e77862744961f2093ac4/1-24AWG-22AWG-20AWG-18AWG-16AWG.jpg) | -| Набор прецизионных отверток | пример набора, где есть все необходимое | [Купить на Али](https://sl.aliexpress.ru/p?key=kvPiEz) | ![](https://s.sellercheck.ru/pic/ec/d6/laoa-66-sht-precizionnaya-otvertka-komplekty-s2-legirovannaya-stal-bity-ecd6e901b16c0489c63438467c1d00c4-500.jpg) | -| Набор шестигранников | ходовые 1.5-2.5мм, himodel неплохие | [из ВХ](https://air-hobby.ru/katalog/product/4646-nabor-otvertok.html) | ![](https://ae04.alicdn.com/kf/H9f27d2fc9add4bf893f672a308fe6937u/-.jpg_640x640.jpg) | -| Электроотвертка | намертво не заятянет, но значительно облегчит жизнь при сборке/разборке рам | [xiaomi](https://a.aliexpress.com/_mrvSBJI) | ![](https://ae04.alicdn.com/kf/H84f9c1494cb04e5f836f5217ce11e967P/2020-Xiaomi-Mijia-Type.jpg) | -| Весы | с точностью до 0.01г | [newcalox](https://a.aliexpress.com/_mP3rrLe) | ![](https://ae04.alicdn.com/kf/HTB1pkf6irYI8KJjy0Faq6zAiVXas/NEWACALOX-200-0-01.jpg) | -| Влагозащита для электроники | при желании летать в непогоду и над морем | [смотри тут](https://propwashservice.com/community/coating.html) | ![](https://ae04.alicdn.com/kf/H421df4cd5f694d0e9b264de5d8633b91l/-.jpg) | -| Клей силиконовый | брать маленькими тюбиками, т.к. засыхает | [b7000](https://aliexpress.ru/item/1005002277669677.html) | ![](https://ae04.alicdn.com/kf/H5dc73fb1d40f40f086b5ffb0fb2c9506r/B7000-15-25-50-110.jpg) | -| Полетный рюкзак | | [iflight](https://aliexpress.ru/item/4000556632268.html), [torvol](https://www.rctech.de/torvol-quad-pitstop-backpack.html), [auline](https://aliexpress.ru/item/4000961443291.html) | ![](https://rcplanet.ee/18414-home_default/torvol-quad-pitstop-backpack-ryukzak.jpg), | -| Гаечный ключ | под гайки M5 | [вид 1](https://a.aliexpress.com/_mO2Wy7S), [вид 2](https://aliexpress.ru/item/4000910039139.html) | ![](https://ae04.alicdn.com/kf/H764cc7395f964aa5be188a7e893ca3a9n/M5-M4-M3.jpg) | -| Держатель мотора | для смены пропов | [JMT](https://aliexpress.ru/item/1005002584424990.html) | ![](https://ae04.alicdn.com/kf/HTB106IDgtfJ8KJjy0Feq6xKEXXa9/JMT.jpg) | -| Стопсмокер | для первого включения дрона | [простой вариант](https://aliexpress.ru/item/4000505766463.html) | ![](https://ae04.alicdn.com/kf/Haa629538509745f295fe0b9f08489dfcD/JHEMCU-Amass-1-6S-30V-XT30-XT60.jpg) | -| Противопожарная сумка | для хранения и перевозки аккумуляторов | [сумка](https://aliexpress.ru/wholesale?SearchText=сумка+для+аккумуляторов) | ![](https://ae04.alicdn.com/kf/HLB1J9ETaULrK1Rjy0Fjq6zYXFXaO/IFlight-1-RC-LiPo.jpg) | -| Кабельные хомуты | 3-6мм ширина | [rexant](https://www.vseinstrumenti.ru/krepezh/spetsialnyj/homuty/plastikovye-styazhki/rexant/nylon-120x2-5-mm-100-sht-chernyj-07-0121/) | ![](https://cdn.vseinstrumenti.ru/images/goods/krepezh/spetsialnyj/1218997/560x504/52811333.jpg) | -| Алюминиевые стойки для рам | | [Круглые с насечкой М3](https://a.aliexpress.com/_mMhuyhe), [Круглые без насечки М2, М3](https://aliexpress.ru/item/1005001584480996.html), [Круглые с насечкой М2](https://a.aliexpress.com/_mMhuyhe) | ![](https://ae04.alicdn.com/kf/H7beb183c53144e0ca09e2460e504c810b/M3-5-6-8.jpg) | -| Нейлоновые стойки | не рекомендуется использовать для крепления стека! | [Купить на Али](https://ru.aliexpress.com/item/32873076078.html) | ![](https://ae04.alicdn.com/kf/Hca8505c0cb7747ae80ceaed6125a3c2bj/50-M2-M2-5-M3-M4-L.jpg) | -| Нейлоновые гайки | | [Купить на Али](https://ru.aliexpress.com/item/32885983150.html) | ![](https://ae04.alicdn.com/kf/HTB1bv_KwrSYBuNjSspfq6AZCpXar/50-DIN934-M2-M2-M2-M2-2-5-M3-M4-M5-M6-M8-M10-M12.jpg) | -| Болты нейлоновые М2 | | [Купить на Али](https://aliexpress.ru/item/32979035684.html) | ![](https://ae04.alicdn.com/kf/HLB1Ry8MbzvuK1Rjy0Faq6x2aVXaV/50.jpg) | -| Набор нейлоновых болтов М3 с гайками | | [Купить на Али](https://aliexpress.ru/item/32862529967.html) | ![](https://ae04.alicdn.com/kf/HTB1aJQPXIfrK1RkSmLyq6xGApXaq/160-M3-8.jpg) | -| Закладные гайки | | [М2, М3](https://aliexpress.ru/item/4001356089017.html), [М2, М3 подобные](https://aliexpress.ru/item/4000643010855.html) | ![](https://ae04.alicdn.com/kf/S709d2ad646ce42ff8b604108e9bded41g.jpg) | -| Гайки металлические | | [М2, М3](https://aliexpress.ru/item/1005002362822435.html) | ![](https://ae04.alicdn.com/kf/H53ad4b2202984971a20d08368cb86490I.jpg) | -| Гайки М5 с нейлоновой проставкой для прикручивания пропеллеров | | [Купить на Али](https://aliexpress.ru/item/1005002623702787.html?sku_id=12000021446927544) | ![](https://ae04.alicdn.com/kf/HTB1zX93OVXXXXbrXpXXq6xXFXXXr/10-M2-M3-M4-M5-M6.jpg) | -| Винты | ВНИМАНИЕ, по ссылкам с закаленными винтами наличие брака ~15% (бита в шлице прокручивается при первом использовании) | [закаленные М2, М3 с потайной шляпкой](https://aliexpress.ru/item/4000020967604.html), [закаленные М2, М3 стандартные](https://aliexpress.ru/item/32810852732.html), [geprc набор с M2, M3 винтами](https://aliexpress.ru/item/1005003058985172.html), [титановые М2, М3](https://aliexpress.ru/item/1005003314054121.html), [титановые М2, М3 еще вариант](https://aliexpress.ru/item/33005712108.html) | ![](https://ae04.alicdn.com/kf/S6d264a79c0f345b1a9471975ff627a2aP.jpg_640x640.jpg) | -| Демпферы, виброразвязка | | [резиновые шайбы под М2, М3](https://aliexpress.ru/item/33011362744.html), [вибростойки М3 для ПК с узкими отверстиями](https://aliexpress.ru/item/32907800032.html), [силиконовые демпферы М2, М3](https://aliexpress.ru/item/1005001665030662.html) | ![](https://ae04.alicdn.com/kf/H7fa6233cd4d54562a89036910bc4f3291.jpg) | -| Каптоновый скотч | | [Купить на Али](https://a.aliexpress.com/_mqMb9SM) | ![](https://ae04.alicdn.com/kf/H02a0857078864a3ab0078b394d70d916I/-.jpg) | -| Конденсаторы low esr | | [Купить на Али](https://a.aliexpress.com/_mMh8iqu) | ![](https://ae04.alicdn.com/kf/H7c4d74f8799b474d8a3959d01a85f4639/2-50-10-16-25-35-50.jpg) | -| Коврики под аккумуляторы | для плотного прилегания к раме | [Купить на Али](https://a.aliexpress.com/_m0jzM3s) | ![](https://ae04.alicdn.com/kf/H76083f88f03b4c76905149fff12a5c64F/5-100X30X2mm.jpg) | -| Аккумуляторы 186500 LiOn | для аппаратуры и сборки под очки | [Liitokala 3000mAh](https://aliexpress.ru/popular/liitokala-18650-3000-mah-battery.html) | ![](https://ae04.alicdn.com/kf/H122a4051bca041a8be5648ebd7d4f4ffy/hg2-Liitokala-HG2-18650-3000mAh-3-6V-20A.jpg) | -| Силиконовый фиксатор | для антенн | [Kafuter K-704 705 704B](https://aliexpress.ru/item/4001017724624.html) | ![](https://ae04.alicdn.com/kf/H044058c04ccc4cbb8d11945d20018e65d/Kafuter-K-704-705-704B.jpg) | -| Муфта для полетов зимой | также пойдут перчатки с отрезанными кончиками у больших пальцев | [wtotoy](https://a.aliexpress.com/_mPgZBdo) | ![](https://ae04.alicdn.com/kf/H95fae52141814031afbbcf1148c792cbR/FPV-RC-AT10II-AT9S.jpg) | -| Переходник для зарядки 6 1s аккумуляторов на ph2.0 | можно сделать самому | [6s - 1s ph2.0](https://a.aliexpress.com/_mK9tVqw) | ![](https://ae04.alicdn.com/kf/H983f402992424808b315ebe699aab06dU/PH2-0-51005-1S-XT60-Gaoneng-BetaFPV-RC-FPV.jpg) | -| Балансирные провода | на случай повреждения аккумуляторных и сборки паков | [2-6s](https://a.aliexpress.com/_mPXtzgA) | ![](https://ae04.alicdn.com/kf/HTB1ze2Sm41YBuNjy1zcq6zNcXXaQ/2s-3s-4s-5s-6s.jpg) | -| Разъемы и провода для электроники | jst sh1.0 (1мм между пинами), sh1.25 (1.25мм между пинами), gh1.25 (1.25мм между пинами и с защелкой на пластике, обжатая часть провода более вытянутая, чем в случае sh1.25) | [sh1.0 набором](https://aliexpress.ru/item/4000805400382.html), [sh1.25](https://aliexpress.ru/item/32885821424.html), [gh1.25](https://aliexpress.ru/item/32800125640.html), [обжатые силиконовые провода для sh1.0, sh1.25](https://aliexpress.ru/item/32800222001.html), [обжатые силиконовые провода для gh1.25](https://aliexpress.ru/item/32948129356.html) | ![](https://ae04.alicdn.com/kf/H3a67dc13343d4dffb9d990d2dfffef51w.jpg) | -| Двусторонний скотч | | [лента](https://aliexpress.ru/item/1005002797259090.html) | ![](https://ae04.alicdn.com/kf/H00542f23e5ac4d9b8a4a8b31b6f6da30B/M3-VHB.jpg) | -| Маленький автономный баззер | для поиска дрона, если выскочил аккумулятор | [5В](https://a.aliexpress.com/_mLvh3O2) | ![](https://ae04.alicdn.com/kf/HTB1oVOfXnHuK1RkSndVq6xVwpXax/JHE42B-s-Finder-5-100.jpg) | -| Обычные баззеры(5В) | | [5В](http://s.click.aliexpress.com/e/cao8vaAy) | ![](https://ae04.alicdn.com/kf/HTB1jwDXm_nI8KJjy0Ffq6AdoVXaB/diy-kit-5.jpg) | -| Смазка для подшипников | пойдет любая для высокоскоростных подшипников, использовать только для уставших моторов | [купить](https://rcdrive.ru/unit.php?unit=9441) | ![](https://rcdrive.ru/i/catalog/scorpion-maslo_l.jpg) | -| Коннекторы XT30, XT60 | | [самые дешевые](https://aliexpress.ru/item/32935099224.html), [amass](https://aliexpress.ru/item/32716909493.html) | ![](https://ae04.alicdn.com/kf/HTB1SzHOXorrK1RkSne1q6ArVVXaN/10-XT30-XT60.jpg) | -| Набор термоусадки | | [набор 1](https://www.banggood.com/custlink/vDKG8eOw8W), [набор 2](https://a.aliexpress.com/_mtNajZK), [прозрачные 8-40мм](https://a.aliexpress.com/_mL0Uyas), [для lion сборок](https://a.aliexpress.com/_mM7Zp40), [черные 1-10мм](https://a.aliexpress.com/_mqMy4ve) | ![](https://imgaz2.staticbg.com/thumb/large/upload/2014/01/SKU198228/12.jpg.webp) | -| Ремешки для крепления аккума | | [маленькие](https://a.aliexpress.com/_mK6KJOi), [большие](https://a.aliexpress.com/_msWuFjG) | ![](https://ae04.alicdn.com/kf/H9e1cade517384bc6b157098d1f2ddd15R/5-iFlight-20-20x400-20x300-20x250-20x200.jpg) | -| Зарядное устройство | 2 или 4 порта, блок питания либо отдельно, либо встроенный | [ToolkitRC m6d](https://a.aliexpress.com/_mLedFTM), [skyrc q200](https://www.banggood.com/custlink/3GGmbbYr83), [vifly для 1S](https://a.aliexpress.com/_ms2jDn6) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/56/CE/8b95b545-394d-4ca4-9e23-d650931d2839.jpg.webp) | -| Беки (стабилизаторы напряжения 5В) | | [2-8s 5 В/2 а 12 В/3 А](https://a.aliexpress.com/_msYgjIw) | ![](https://ae04.alicdn.com/kf/Hebacf57a0bf045d49fe7d1ad7c8c817fe/14x11x1-IFlight-Micro-2-8S-BEC-5-2-12-3.jpg) | -| SD карты | | [поиск на Ali](https://aliexpress.ru/wholesale?SearchText=micro+sd) | ![](https://ae04.alicdn.com/kf/Hd84fa097082d4e72a61bfc84ec508aedN/Sd-MIXZA-Origina-BF-256-128-64-U3-80.jpg) | -| Программатор stlink | на случай раскирпичивания | [stlink](https://a.aliexpress.com/_mLkPkg8) | ![](https://ae04.alicdn.com/kf/H95782f05306345268493bed60d7e20bae/1-Stlink-LINK-V2.jpg) | +| Item | Description | Link | Photo | +| :--- | :--- | :--- | :--- | +| **Multimeter** | Essential for circuit testing. Must have continuity, voltage, and ohm modes. | [UNI-T UT33B+](https://aliexpress.ru/item/33055575703.html) | ![](https://ae04.alicdn.com/kf/HTB17e5ae8Cw3KVjSZFuq6AAOpXaz.jpg) | +| **Digital Calipers** | For precise measurements. | [SHAHE](http://s.click.aliexpress.com/e/c5AjhdZI) | ![](https://ae04.alicdn.com/kf/S8ef2203574fd45eab9047f287ce99e49U/SHAHE-0-150.jpg) | +| **Hot Air Station** | Optional; used for large heat shrink (d >= 30mm) and electronics repair. | [858D](https://aliexpress.ru/item/4000539586748.html), [Alternative](https://aliexpress.ru/item/32967749127.html) | ![](https://ae04.alicdn.com/kf/Hce64be4545fb44b4ad7b642ceb18fe91X/858D.jpg) | +| **Soldering Iron** | Requires a power supply with appropriate voltage/power as per iron specs. | [Hakko T12](https://ru.aliexpress.com/item/32740527077.html), [Pine64 Pinecil](https://pine64.org/devices/pinecil/), [TS101](https://aliexpress.ru/wholesale?SearchText=ts+101) | ![](https://ae01.alicdn.com/kf/H6812ee554b1946079aac049f54f10f40Z.jpg) | +| **24V Power Supply** | For the soldering iron. | [Noname](https://a.aliexpress.com/_mOOikUk) | ![](https://ae04.alicdn.com/kf/H27a59edb6b724bf9bad51b6217cc91332/QUICKO-24-3a-5-5-2-1-2-5-72.jpg) | +| **5.5*2.5mm Connectors** | For soldering iron power cables. | [5-pack](https://a.aliexpress.com/_mPbb420) | ![](https://ae01.alicdn.com/kf/H2a0586981f92453c9bf3fea6fda74684K.jpg) | +| **Flux** | Neutral flux (no-clean) is best; active flux must be thoroughly washed off. | [TT Flux](https://yandex.ru/search?text=tt+flux), [RMA-UV10](https://aliexpress.ru/wholesale?SearchText=RMA-UV10), [Flux Plus 6-412-A](https://www.ozon.ru/product/flyus-efd-6-412-a-flux-plus-10-g-bezotmyvochnyy-208542676/) | ![](https://static.onlinetrade.ru/img/items/b/flyus_gel_indikatornyy_tt_keller_20_ml_rexant_1107900_1.jpg) | +| **Solder** | 60/40 or 63/37 (with or without rosin core). | [POS60](https://www.vseinstrumenti.ru/rashodnie_materialy/dlya_ruchnogo_instrumenta/dlya_payaki/pripoj/pos_60), [Kaina (Blue)](https://aliexpress.ru/item/33023323860.html) | ![](https://cdn.vseinstrumenti.ru/images/goods/rashodnie-materialy/dlya-ruchnogo-instrumenta/766200/560x504/51594453.jpg) | +| **Tip Cleaning Sponge** | Brass wool or wet sponge. | [Brass Wool](https://aliexpress.ru/item/32889717103.html), [Sponge](https://aliexpress.ru/item/1005005585743667.html) | ![](https://ae04.alicdn.com/kf/H3f5e58e359e44d088504f64e4a664200H/-.jpg) | +| **Alcohol** | Isopropyl alcohol (IPA) for cleaning solder joints. | [Buy](https://clck.ru/ZQHrJ) | ![](https://v2.partsdirect.ru/goods/good_big_pics/602149.jpg) | +| **Replacement Tips** | Various shapes for different soldering tasks. | [For T12](http://s.click.aliexpress.com/e/buqA6P5Q), [For TS100](https://aliexpress.ru/item/32858159651.html) | ![](https://ae04.alicdn.com/kf/Hb8efb629d65e4dacbad9ecb157b417bdZ/Quicko-TS100.jpg) | +| **Helping Hands** | For holding components while soldering. | [Flexible Arms](https://aliexpress.ru/item/1005005575570751.html), [Magnetic](https://aliexpress.ru/item/32973845988.html), [Omnifixo (Premium)](https://omnifixo.com/), [Omnifixo Clone](https://www.ozon.ru/product/1-0v-rufixo-derzhatel-dlya-plat-tretya-ruka-994424263/) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/72/A3/9ef27f7b-a5db-418c-942e-bea3e10f9bd7.JPG.webp) | +| **Flush Cutters** | For trimming wires (30-14AWG) and component leads. | [Binoax](https://aliexpress.ru/wholesale?SearchText=flush+cutters) | ![](https://ae04.alicdn.com/kf/H04d9e33200314a768209fba8bd9bfb7b5/BINOAX.jpg) | +| **Soldering Mat** | Heat-resistant silicone mat. | [30x20mm](https://aliexpress.ru/item/1005002537062837.html) | ![](https://ae04.alicdn.com/kf/H9d870574f2364edca5844fea47ab5ce0E/-.jpg) | +| **Cutting Mat** | Optional for aeromodelers/builders. | [A1-A4 Sizes](https://a.aliexpress.com/_mMrsq2q) | ![](https://ae04.alicdn.com/kf/H56d9dc19a40346a39ec23e7205dce46ae/-.jpg) | +| **Scalpel/Craft Knife** | For precise cutting. | [Metal](https://aliexpress.ru/item/1005002376163602.html) | ![](https://ae04.alicdn.com/kf/Hdc5565a2ed9e44bf85d681b5b09aa818F/ESPLB.jpeg_640x640.jpeg) | +| **Solder Sucker** | For desoldering components. | [Basic](https://aliexpress.ru/item/32864628837.html) | ![](https://ae04.alicdn.com/kf/HTB1vJ9xeNiH3KVjSZPfq6xBiVXam/-.jpg) | +| **Solder Wick** | For removing excess solder. | [1.5-3.5mm](https://aliexpress.ru/item/1005002080427004.html) | ![](https://ae04.alicdn.com/kf/Ha0bd06e38b5d4248ac042121c7b3f6abA/1-5-2.jpg) | +| **Tweezers** | For handling small electronics. | [Stainless Steel](https://aliexpress.ru/item/1005003535072630.html), [Titanium](https://aliexpress.ru/item/1005002049014611.html) | ![](https://ae04.alicdn.com/kf/H00772b78c3cc4173917a47241064804b9/SUNSHINE-TS-11-ESD.jpg) | +| **Wire Strippers/Crimpers** | For wire preparation and connector crimping. | [SN-28B](https://aliexpress.ru/item/4001145869380.html), [HILDA](https://www.banggood.com/custlink/DGD38ejwoG) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/7F/F8/48f91d67-e5ef-4346-a333-02a4c28541c7.JPG.webp) | +| **Lab Bench Power Supply** | For advanced users. | [Basic](https://aliexpress.ru/item/1005001780763843.html), [RIDEN RD6006](https://aliexpress.ru/item/4000297196564.html) | ![](https://ae04.alicdn.com/kf/Hd71164aa4f2b479491e539c0d71e13c6q/RD-RD6018-RD6018W-USB-Wi-Fi.jpg) | +| **Rotary Tool (Dremel)** | For frame modifications. | [BDCAT](https://a.aliexpress.com/_mq9ybaG) | ![](https://ae04.alicdn.com/kf/Hb9990c1a453a46e890cfd93e4fed61c7i/BDCAT.jpg) | +| **Silicone Wires** | High-quality flexible wires. | [Various Diameters](http://s.click.aliexpress.com/e/X079c0C), [Alternative](https://a.aliexpress.com/_mMfiFha) | ![](https://ae04.alicdn.com/kf/Haefde1c688774e77862744961f2093ac4/1-24AWG-22AWG-20AWG-18AWG-16AWG.jpg) | +| **Precision Screwdriver Set** | Includes all necessary bits for FPV. | [See on AliExpress](https://sl.aliexpress.ru/p?key=kvPiEz) | ![](https://s.sellercheck.ru/pic/ec/d6/laoa-66-sht-precizionnaya-otvertka-komplekty-s2-legirovannaya-stal-bity-ecd6e901b16c0489c63438467c1d00c4-500.jpg) | +| **Hex Driver Set** | Needs 1.5mm, 2.0mm, and 2.5mm drivers. | [Air Hobby Example](https://air-hobby.ru/katalog/product/4646-nabor-otvertok.html) | ![](https://ae04.alicdn.com/kf/H9f27d2fc9add4bf893f672a308fe6937u/-.jpg_640x640.jpg) | +| **Electric Screwdriver** | Makes assembly/disassembly much faster. | [Xiaomi Mijia](https://a.aliexpress.com/_mrvSBJI) | ![](https://ae04.alicdn.com/kf/H84f9c1494cb04e5f836f5217ce11e967P/2020-Xiaomi-Mijia-Type.jpg) | +| **Precision Scales** | Accuracy down to 0.01g. | [NEWACALOX](https://a.aliexpress.com/_mP3rrLe) | ![](https://ae04.alicdn.com/kf/HTB1pkf6irYI8KJjy0Faq6zAiVXas/NEWACALOX-200-0-01.jpg) | +| **Waterproofing (Conformal Coating)** | For flying in bad weather or near water. | [Guide Here](https://propwashservice.com/en/community/coating.md) | ![](https://ae04.alicdn.com/kf/H421df4cd5f694d0e9b264de5d8633b91l/-.jpg) | +| **Silicone Glue** | Buy small tubes as it dries out quickly. | [B7000](https://aliexpress.ru/item/1005002277669677.html) | ![](https://ae04.alicdn.com/kf/H5dc73fb1d40f40f086b5ffb0fb2c9506r/B7000-15-25-50-110.jpg) | +| **FPV Backpack** | For carrying all your gear. | [iFlight](https://aliexpress.ru/item/4000556632268.html), [Torvol](https://www.rctech.de/torvol-quad-pitstop-backpack.html), [Auline](https://aliexpress.ru/item/4000961443291.html) | ![](https://rcplanet.ee/18414-home_default/torvol-quad-pitstop-backpack-ryukzak.jpg) | +| **Prop Nut Wrench** | For M5 prop nuts. | [Style 1](https://a.aliexpress.com/_mO2Wy7S), [Style 2](https://aliexpress.ru/item/4000910039139.html) | ![](https://ae04.alicdn.com/kf/H764cc7395f964aa5be188a7e893ca3a9n/M5-M4-M3.jpg) | +| **Motor Grip Pliers** | For easier prop removal. | [JMT](https://aliexpress.ru/item/1005002584424990.html) | ![](https://ae04.alicdn.com/kf/HTB106IDgtfJ8KJjy0Feq6xKEXXa9/JMT.jpg) | +| **Smoke Stopper** | For the first flight controller power-up. | [Basic Version](https://aliexpress.ru/item/4000505766463.html) | ![](https://ae04.alicdn.com/kf/Haa629538509745f295fe0b9f08489dfcD/JHEMCU-Amass-1-6S-30V-XT30-XT60.jpg) | +| **LiPo Fireproof Bag** | For safe battery storage and transport. | [Search on AliExpress](https://aliexpress.ru/wholesale?SearchText=lipo+battery+bag) | ![](https://ae04.alicdn.com/kf/HLB1J9ETaULrK1Rjy0Fjq6zYXFXaO/IFlight-1-RC-LiPo.jpg) | +| **Cable Ties (Zip Ties)** | 3-6mm width. | [Rexant Nylon](https://www.vseinstrumenti.ru/krepezh/spetsialnyj/homuty/plastikovye-styazhki/rexant/nylon-120x2-5-mm-100-sht-chernyj-07-0121/) | ![](https://cdn.vseinstrumenti.ru/images/goods/krepezh/spetsialnyj/1218997/560x504/52811333.jpg) | +| **Aluminum Standoffs** | For frame repairs. | [Knurled M3](https://a.aliexpress.com/_mMhuyhe), [Smooth M2/M3](https://aliexpress.ru/item/1005001584480996.html) | ![](https://ae04.alicdn.com/kf/H7beb183c53144e0ca09e2460e504c810b/M3-5-6-8.jpg) | +| **Nylon Standoffs** | **Not recommended** for securing the main electronics stack! | [Buy on AliExpress](https://ru.aliexpress.com/item/32873076078.html) | ![](https://ae04.alicdn.com/kf/Hca8505c0cb7747ae80ceaed6125a3c2bj/50-M2-M2-5-M3-M4-L.jpg) | +| **Nylon Nuts** | Lightweight fastening. | [Buy on AliExpress](https://ru.aliexpress.com/item/32885983150.html) | ![](https://ae04.alicdn.com/kf/HTB1bv_KwrSYBuNjSspfq6AZCpXar/50-DIN934-M2-M2-M2-M2-2-5-M3-M4-M5-M6-M8-M10-M12.jpg) | +| **M2 Nylon Screws** | Lightweight mounting. | [Buy on AliExpress](https://aliexpress.ru/item/32979035684.html) | ![](https://ae04.alicdn.com/kf/HLB1Ry8MbzvuK1Rjy0Faq6x2aVXaV/50.jpg) | +| **M3 Nylon Screw/Nut Set** | Assorted set. | [Buy on AliExpress](https://aliexpress.ru/item/32862529967.html) | ![](https://ae04.alicdn.com/kf/HTB1aJQPXIfrK1RkSmLyq6xGApXaq/160-M3-8.jpg) | +| **Press Nuts** | For frame repair or custom builds. | [M2, M3](https://aliexpress.ru/item/4001356089017.html), [Similar M2, M3](https://aliexpress.ru/item/4000643010855.html) | ![](https://ae04.alicdn.com/kf/S709d2ad646ce42ff8b604108e9bded41g.jpg) | +| **Metal Nuts** | Standard fasteners. | [M2, M3](https://aliexpress.ru/item/1005002362822435.html) | ![](https://ae04.alicdn.com/kf/H53ad4b2202984971a20d08368cb86490I.jpg) | +| **M5 Prop Nuts** | With nylon inserts for self-locking. | [Buy on AliExpress](https://aliexpress.ru/item/1005002623702787.html) | ![](https://ae04.alicdn.com/kf/HTB1zX93OVXXXXbrXpXXq6xXFXXXr/10-M2-M3-M4-M5-M6.jpg) | +| **Screws/Bolts** | **CAUTION**: Hardened screws may have a ~15% defect rate (heads stripping). | [M2/M3 Countersunk](https://aliexpress.ru/item/4000020967604.html), [M2/M3 Standard](https://aliexpress.ru/item/32810852732.html), [GEPRC Assorted Set](https://aliexpress.ru/item/1005003058985172.html), [Titanium M2/M3](https://aliexpress.ru/item/1005003314054121.html) | ![](https://ae04.alicdn.com/kf/S6d264a79c0f345b1a9471975ff627a2aP.jpg) | +| **Dampers (Anti-vibration)** | Rubber or silicone mounts for flight controllers. | [M2/M3 Rubber Washers](https://aliexpress.ru/item/33011362744.html), [M3 Standoffs](https://aliexpress.ru/item/32907800032.html), [Silicone Dampers](https://aliexpress.ru/item/1005001665030662.html) | ![](https://ae04.alicdn.com/kf/H7fa6233cd4d54562a89036910bc4f3291.jpg) | +| **Kapton Tape** | Heat-resistant electrical tape. | [Buy on AliExpress](https://a.aliexpress.com/_mqMb9SM) | ![](https://ae04.alicdn.com/kf/H02a0857078864a3ab0078b394d70d916I/-.jpg) | +| **Low ESR Capacitors** | To filter electrical noise from the ESC/Motors. | [Buy on AliExpress](https://a.aliexpress.com/_mMh8iqu) | ![](https://ae04.alicdn.com/kf/H7c4d74f8799b474d8a3959d01a85f4639/2-50-10-16-25-35-50.jpg) | +| **Battery Pads** | Silicone or battery-safe pads for frame grip. | [Buy on AliExpress](https://a.aliexpress.com/_m0jzM3s) | ![](https://ae04.alicdn.com/kf/H76083f88f03b4c76905149fff12a5c64F/5-100X30X2mm.jpg) | +| **18650 Li-Ion Batteries** | For radios and goggle battery packs. | [Liitokala 3000mAh](https://aliexpress.ru/popular/liitokala-18650-3000-mah-battery.html) | ![](https://ae04.alicdn.com/kf/H122a4051bca041a8be5648ebd7d4f4ffy/hg2-Liitokala-HG2-18650-3000mAh-3-6V-20A.jpg) | +| **Silicone Sealant** | For antenna fixation and protection. | [Kafuter K-704/705](https://aliexpress.ru/item/4001017724624.html) | ![](https://ae04.alicdn.com/kf/H044058c04ccc4cbb8d11945d20018e65d/Kafuter-K-704-705-704B.jpg) | +| **Radio Transmitter Muff** | For winter flying; fingerless gloves are an alternative. | [Wtotoy Muff](https://a.aliexpress.com/_mPgZBdo) | ![](https://ae04.alicdn.com/kf/H95fae52141814031afbbcf1148c792cbR/FPV-RC-AT10II-AT9S.jpg) | +| **6S to 1S Charging Adapter** | For charging 6x 1S (PH2.0) batteries simultaneously. | [6S - 1S PH2.0 Adaptor](https://a.aliexpress.com/_mK9tVqw) | ![](https://ae04.alicdn.com/kf/H983f402992424808b315ebe699aab06dU/PH2-0-51005-1S-XT60-Gaoneng-BetaFPV-RC-FPV.jpg) | +| **Balance Lead Extensions** | For repairing battery leads or building custom packs. | [2S-6S Assorted](https://a.aliexpress.com/_mPXtzgA) | ![](https://ae04.alicdn.com/kf/HTB1ze2Sm41YBuNjy1zcq6zNcXXaQ/2s-3s-4s-5s-6s.jpg) | +| **Connectors and Crimps** | JST SH1.0 (1mm), SH1.25 (1.25mm), GH1.25 (locking). | [SH1.0 Set](https://aliexpress.ru/item/4000805400382.html), [SH1.25](https://aliexpress.ru/item/32885821424.html), [GH1.25](https://aliexpress.ru/item/32800125640.html), [Pre-crimped Silicone Wires](https://aliexpress.ru/item/32800222001.html) | ![](https://ae04.alicdn.com/kf/H3a67dc13343d4dffb9d990d2dfffef51w.jpg) | +| **Double-Sided VHB Tape** | For mounting receivers and VTXs. | [3M VHB Tape](https://aliexpress.ru/item/1005002797259090.html) | ![](https://ae04.alicdn.com/kf/H00542f23e5ac4d9b8a4a8b31b6f6da30B/M3-VHB.jpg) | +| **Self-Powered Buzzer** | For finding the drone if the battery ejects in a crash. | [ViFly / JHEMCU](https://a.aliexpress.com/_mLvh3O2) | ![](https://ae04.alicdn.com/kf/HTB1oVOfXnHuK1RkSndVq6xVwpXax/JHE42B-s-Finder-5-100.jpg) | +| **Standard 5V Buzzer** | Basic audible alarm. | [5V Buzzer](http://s.click.aliexpress.com/e/cao8vaAy) | ![](https://ae04.alicdn.com/kf/HTB1jwDXm_nI8KJjy0Ffq6AdoVXaB/diy-kit-5.jpg) | +| **Bearing Grease** | For high-speed bearings; use only for "tired" motors. | [Scorpion Oil/Grease](https://rcdrive.ru/unit.php?unit=9441) | ![](https://rcdrive.ru/i/catalog/scorpion-maslo_l.jpg) | +| **Connectors: XT30, XT60** | Common high-amp power connectors. | [Amass XT Sets](https://aliexpress.ru/item/32716909493.html) | ![](https://ae04.alicdn.com/kf/HTB1SzHOXorrK1RkSne1q6ArVVXaN/10-XT30-XT60.jpg) | +| **Heat Shrink Assortment** | Various sizes for wire protection. | [Set 1](https://www.banggood.com/custlink/vDKG8eOw8W), [Clear 8-40mm](https://a.aliexpress.com/_mL0Uyas), [For Li-Ion packs](https://a.aliexpress.com/_mM7Zp40) | ![](https://imgaz2.staticbg.com/thumb/large/upload/2014/01/SKU198228/12.jpg.webp) | +| **Battery Straps** | To secure the LiPo to the frame. | [Small](https://a.aliexpress.com/_mK6KJOi), [Large](https://a.aliexpress.com/_msWuFjG) | ![](https://ae04.alicdn.com/kf/H9e1cade517384bc6b157098d1f2ddd15R/5-iFlight-20-20x400-20x300-20x250-20x200.jpg) | +| **Battery Charger** | Smart balance charger. | [ToolkitRC M6D](https://a.aliexpress.com/_mLedFTM), [SkyRC Q200](https://www.banggood.com/custlink/3GGmbbYr83), [ViFly 1S](https://a.aliexpress.com/_ms2jDn6) | ![](https://imgaz1.staticbg.com/thumb/large/oaupload/banggood/images/56/CE/8b95b545-394d-4ca4-9e23-d650931d2839.jpg.webp) | +| **BEC (Voltage Regulator)** | Step-down regulators (e.g., to 5V or 12V). | [Micro 2-8S BEC](https://a.aliexpress.com/_msYgjIw) | ![](https://ae04.alicdn.com/kf/Hebacf57a0bf045d49fe7d1ad7c8c817fe/14x11x1-IFlight-Micro-2-8S-BEC-5-2-12-3.jpg) | +| **Micro SD Cards** | For DVR and Blackbox logs. | [Search on AliExpress](https://aliexpress.ru/wholesale?SearchText=micro+sd) | ![](https://ae04.alicdn.com/kf/Hd84fa097082d4e72a61bfc84ec508aedN/Sd-MIXZA-Origina-BF-256-128-64-U3-80.jpg) | +| **ST-Link Programmer** | For "unbricking" flight controllers. | [ST-Link V2](https://a.aliexpress.com/_mLkPkg8) | ![](https://ae04.alicdn.com/kf/H95782f05306345268493bed60d7e20bae/1-Stlink-LINK-V2.jpg) | diff --git a/docs/en/shop/set.md b/docs/en/shop/set.md index 792d4970..fb09785f 100644 --- a/docs/en/shop/set.md +++ b/docs/en/shop/set.md @@ -1,122 +1,117 @@ -# Комплект новичка +# Beginner's Kit -Какой стартовый набор взять, с чего начать FPV хобби, что такое KIT, BNF, чем плох цетус, варианты под различный бюджет и много другое вы найдете ниже. +Which starting set to choose, how to start the FPV hobby, what are KIT/BNF, why "Cetus" might not be the best choice, options for various budgets, and much more can be found below. -## Введение +## Introduction -В данной статье предлагаются варианты наборов "собери свой набор сам" с готовыми коптерами под определенные бюджеты. **Просьба перед изучением предложенных вариантов изучить статьи из раздела "Введение" (см. панель меню слева)**. -Так как цены изначально в долларах, стоимость в рублях будет зависеть от текущего курса. Стоит учитывать, что на различных площадках могут быть свои курсы, а в локальных магазинах дополнительные наценки. -Конвертер валют: https://g.co/kgs/zsYNPm. +This article provides "build it yourself" set options with ready-made drones for specific budgets. **Before exploring these options, please study the articles in the "Introduction" section (see the menu on the left)**. -Также вы можете собрать самостоятельно дрон, но с учетом расходных материалов и инструментов это вам обойдется дороже. -[Примеры компонентов для сборок](https://propwashservice.com/ru/shop/DIY) и [список оборудования и расходников](https://propwashservice.com/ru/shop/nessesary). +Since prices are originally in USD, the cost in other currencies will depend on the current exchange rate. Keep in mind that different platforms may have their own rates, and local stores may apply additional markups. +Currency Converter: [Google Finance](https://g.co/kgs/zsYNPm). -**Обращаю внимание, что любой набор должен включать в себя в первую очередь симулятор.** +You can also build a drone yourself, but including consumables and tools, it will likely cost more. +[Example components for builds](https://propwashservice.com/en/shop/DIY) and [Equipment and consumables list](https://propwashservice.com/en/shop/nessesary). -- [Примеры симуляторов](https://propwashservice.com/ru/intro/sim) +**Please note that any set must primarily include a simulator.** +- [Simulator examples](https://propwashservice.com/en/intro/sim) -## Что такое KIT, RTF, PNP, BNF.. +## What are KIT, RTF, PNP, BNF... -В названиях товаров часто встречаются RTF, BNF, PNP И ARF (KIT). Эти аббревиатуры уточняют комплектацию товара. +In product names, you'll often see RTF, BNF, PNP, and ARF (KIT). These abbreviations specify the product's completeness. -### RTF — это "Ready to fly", что означает "готов к полету". Также иногда используется название "Starter kit". +### RTF — "Ready to Fly" +Also sometimes called a "Starter Kit". -**В RTF набор квадрокоптера входят:** +**An RTF drone kit includes:** +- A drone with a receiver compatible with the included radio; +- A radio controller; +- A battery (or several); +- A charger for the included battery. -- Квадрокоптер с приемником, совместимым с пультом; -- Пульт управления; -- Аккумулятор (или несколько); -- Зарядное устройство для комплектного аккумулятора. +Typically, these kits consist of the cheapest possible parts. They are often given as gifts or bought by beginners. Most hobbyists **strongly recommend against** starting with these, as you'll likely have to buy everything from scratch if you want to expand your fleet, leaving the old kit useless. +Over time, better RTF kits are appearing on the market. It is recommended to consult with experienced hobbyists about the current relevance of a chosen set before buying. -Как правило, такие наборы состоят из самых дешевых частей, их часто дарят или покупают ввиду неопытности, в большистве случаев хоббисты настоятельно **не рекомендуют** начинать с таких, поскольку при желании расширить свой ассортимент дронов, скорее всего, придется покупать все с нуля, а этот набор будет лежать без дела. -Со временем на рынке появляются варианты RTF китов получше. Перед покупкой рекомендуется проконсультироваться с хоббистами насчет актуальности выбранного набора. +### BNF — "Bind and Fly" +> What "bind" means can be found [here](https://propwashservice.com/en/community/glossarium). -### BNF — "Bind and Fly", что означает "забинди и летай" +**A BNF drone kit includes:** +- A drone with a pre-soldered receiver; +- (Optional) A battery and corresponding charger, common for tiny whoops. -> что такое "бинд" смотри [тут](https://propwashservice.com/ru/community/glossarium) - -**В BNF набор квадрокоптера входят:** - -- Квадрокоптер с припаянным приемником; -- (опционально) Аккумулятор и соответствующее зарядное устройство, актуально для tiny whoop-ов. - -Поскольку различные системы радиоуправления **не совместимы** между собой (подробнее про [актуальные системы тут](https://propwashservice.com/ru/intro/tx#протоколы-передачи-данных) ), покупателю часто предлагается выбор приемника, если такого нет, то название приемника указано в названии/описании BNF набора. Также в таких опциях может быть предложен выбор камеры, актуально для дронов на DJI FPV с caddx vista/air unit, и выбор винто-моторной группы (в опциях указывается количество ячеек аккумулятора, S, пример на картинке) +Since different radio control systems are **not compatible** with each other (read about [current systems here](https://propwashservice.com/en/intro/tx#data-transmission-protocols)), buyers are often offered a choice of receiver. If no choice is given, the receiver name is usually in the BNF set title or description. You may also be offered a choice of camera (common for DJI FPV drones with Caddx Vista/Air Unit) and motor/propeller groups (specified by battery cell count, e.g., 4S or 6S).

- пример вариаций квадрокоптера с приемниками + example of drone variations with receivers

-После покупки такого набора вам понадобится обновить прошивку приемника и произвести бинд с аппаратурой, в случае цифровой видеосистемы обновить прошивку на ней и также произвести бинд с очками, в настройках прошивки полетного контроллера (по умолчанию в большинстве готовых дронов betaflight, смотрите внимательно описание товара) выставить правильный мапинг каналов ([подробнее](https://oscarliang.com/channel-map/)) и указать режимы для тумблеров ([подробнее](https://oscarliang.com/betaflight-modes/)). - -### PNP — Plug and Play, что означает "подключи и пользуйся". - -**В PNP набор квадрокоптера входит:** -- Квадрокоптер без приемника. +After purchasing such a kit, you'll need to update the receiver firmware and bind it with your radio. For digital video systems, you'll also need to update its firmware and bind it with your goggles. In the flight controller firmware settings (usually Betaflight; check product description), you must set the correct channel mapping ([more details](https://oscarliang.com/channel-map/)) and configure modes for your switches ([more details](https://oscarliang.com/betaflight-modes/)). -Как вы уже догадались, к нему вам понадобится в первую очередь купить приемник, припаять его, далее пройти те же шаги, что для BNF набора. +### PNP — "Plug and Play" +**A PNP drone kit includes:** +- A drone without a receiver. -### ARF (KIT наборы) - "Almost Ready to Fly", то есть «собери и летай». +As you might have guessed, you'll first need to buy a receiver, solder it in, and then follow the same steps as for a BNF kit. -КИТ наборы квадрокоптеров подразумевают комплект всех деталей, необходимых для сборки, но современных наборов очень мало, чаще можно встретить в штатах от каких-то крупных блогеров или брендов, на алиэкспресс и подобных площадках чаще встречаются старые неактуальные варианты, которые брать без рекомендаций хоббистов нежелательно. -KIT набор самолета часто подразумевает только тушку самолета без электроники, внимательно изучайте описание товара. +### ARF (KIT sets) — "Almost Ready to Fly" +ARF kits imply a set of all parts necessary for assembly. Modern ARF kits are rare and often sold by large bloggers or major brands. On AliExpress, you often find outdated versions that are not recommended without consulting hobbyists. +For airplanes, a "KIT" set often means just the airframe without any electronics. Always check the description carefully. -## Почему не стоит брать цетус? +## Why shouldn't you buy a "Cetus"? -BetaFPV одни из первых выпустили стартер кит в варианте RTF, и поначалу идея показалась классной - бери и летай, не думая, что что-то забыл приобрести. Следом geprc, emax, eachine также выпустили свои интерпретации наборов. Все бы ничего, но все они собраны настолько бюджетно, что качество оборудования подойдет только для того, чтобы "пощупать", а не пользоваться им постоянно. Каждый второй хоббист, получивший подобный набор в подарок или купивший его, чтобы попробовать, в конечном итоге продает или выбрасывает его полностью, так как для полного погружения в хобби качества и функционала предлагаемых в наборе компонентов недостаточно. +BetaFPV was one of the first to release an RTF starter kit, and initially, the idea seemed great—buy and fly without worrying about missing parts. GEP-RC, EMAX, and Eachine followed with their own interpretations. However, these are often built so cheaply that the equipment quality is only good for "feeling out" the hobby, not for long-term use. Many hobbyists who receive or buy these eventually sell or discard them because the quality and functionality aren't enough for full immersion. -Что касается набора от бетафпв - он разросся в линейку под названием [цетус (cetus)](https://betafpv.com/collections/best-fpv-kits). Цетусы есть в различных вариациях, но всех их объединяет одна большая проблема - betafpv. Несмотря на большой опыт в FPV, эта фирма так и не научилась делать качественную электронику, каждый раз у них множество мелких "косяков", из-за которых портится все впечатление и брать их продукцию хочется все меньше и меньше. Одна из главных проблем на данный момент - непропай компонентов на платах, из-за чего при ударах дрона происходят отвалы разъемов, чипов, и без вмешательства мастера или серьезного диалога с производителем вам придется выбросить дрон. В шлеме они ставят максимально простую начинку, чувствительности приемника в большинстве случаев хватает лишь на небольшие дистанции. Что касается аппаратуры - они "выпендрились" и сделали форк популярной прошивки EdgeTX, вместо того, чтобы добавить свою модель в этот проект, и не сильно спешат обновлять функционал своей прошивки. В своей продукции под ЕЛРС они также нередко игнорируют рекомендации разработчиков, из-за чего их приемники и передатчики дают результаты хуже, чем альтернативные более бюджетные, например, от happymodel. +BetaFPV's line grew into the [Cetus series](https://betafpv.com/collections/best-fpv-kits). They come in various versions, but they all share a common problem: BetaFPV's inconsistent quality. Despite their experience, they often struggle with reliable electronics, frequent small manufacturing defects, and poor soldering. A major issue is components "popping off" boards during crashes, requiring professional repair or replacement. Their goggles often have basic internals with poor receiver sensitivity. Their radios use a fork of EdgeTX rather than being integrated into the main project, and they are slow to update features. In their ELRS products, they sometimes ignore developer recommendations, resulting in worse performance than more affordable alternatives like Happymodel. -Само собой, если вам все же подарили подобный набор, никто вам не мешает попробовать полетать на нем, определиться с дальнейшими целями. "Плохой опыт тоже опыт". Может быть, вам повезет, и попадется комплект без брака, который научит вас основам, и такое возможно. Но статистика пока показывает в основном противоположное. +Of course, if you already have one, feel free to fly it and see if you enjoy the hobby. "A bad experience is still an experience." You might get lucky and get a defect-free unit that teaches you the basics. But statistics generally suggest otherwise. -## Хочу в хобби, но денег нет (50-200$) +## I want to start, but have no money ($50-200) -К сожалению, с таким бюджетом очень сложно войти полноценно в хобби. Лучший вариант для вас это аппаратура на EdgeTX с возможностью зарядки от USB, аккумуляторы для аппаратуры (см. описание товара), симулятор. Да, вы не сможете первое время летать на дроне, но зато у вас будет возможность ощутить управление, определиться, насколько вам интересно данное хобби, и будет цель накопить деньги на дрон, шлем и все необходимое для использования. Также учтите, что можно активно участвовать в онлайн гонках, и при достойных результатах попасть в известную гоночную команду, обрести спонсоров и двигаться дальше по "карьерной лестнице" гонщика. +Unfortunately, it's very difficult to fully enter the hobby with this budget. Your best bet is an EdgeTX radio with USB charging capability, batteries for the radio, and a simulator. You won't be able to fly a real drone initially, but you'll get a feel for the controls and decide how interested you are. You can also participate in online races; with good results, you might join a racing team, find sponsors, and move up the "career ladder." -- Примеры аппаратур: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer) +- **Radio examples**: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer). -## Самый бюджетный набор для полетов дома и в безветренную погоду на улице (250-350$) +## Most Budget-Friendly Set for Indoor/Calm Weather Flying ($250-350) -Вариант лучше, чем cetus от betafpv, потому что вы сможете в дальнейшем использовать это же оборудование, и оно будет более надежным. В данном ценовом диапазоне уместится только аналоговая видеосвязь с самым простым шлемом. Из дронов лучшим вариантом будет tiny whoop. Также встречаются дроны от "ноунейм" производителей, качество компонентов которых оставляет желать лучшего. Все риски от выбора таких дронов лежат исключительно на вас. +This is a better option than a Cetus because you can continue to use this equipment as you grow. This price range strictly covers analog video with a basic headset. A "Tiny Whoop" is the best drone choice here. Avoid "no-name" manufacturers with questionable quality; the risk is entirely yours. -- Примеры аппаратур до 100$: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro); Jumper [T-pro](https://rcsearch.ru/?s=jumper+t-pro), [T20](https://rcsearch.ru/?s=jumper+t20). Рекомендуется [ELRS 2.4](https://propwashservice.com/ru/intro/tx) версия. Не забудьте аккумуляторы! -- Примеры аналоговых шлемов до 100$: Eachine [EV800D](https://rcsearch.ru/-c1814), [EV800DM](https://rcsearch.ru/-c7798) -- Примеры tiny whoop до 100$: [mobula6](https://rcsearch.ru/-c29293), [mobula7](https://rcsearch.ru/-c33913), [mobeetle6](https://rcsearch.ru/-c35745) (должен быть с таким же радиопротоколом, если пульт ЕЛРС, то и дрон на ЕЛРС, на той же частоте) -- Зарядное устройство + (при необходимости) блок питания (БП): [VIFLY WhoopStor](https://rcsearch.ru/-c46257) -- Аккумуляторы: gnb/tattu с рекомендуемыми характеристиками для выбранного вупа, для 6 (65мм) это 1S 300-380mAh, для 7 (75мм) это 1 или 2S (см. описание вупа) на 450-550mAh. Учтите, что у вупа в стоке вероятно ph2.0 разъем для аккумуляторов. - Если вы решите остаться на нем, аккумуляторы должны быть с тем же разъемом. Если есть возможность перепаяться, рекомендуется перевести вуп на BT2.0/A30 разъем, и аккумуляторы брать с тем же разъемом. На предложенном заряднике оба варианта разъемов. -- Расходники: запасные пропеллеры того же диаметра с тем же диаметром отверстия под вал +- **Radios under $100**: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro); Jumper [T-pro](https://rcsearch.ru/?s=jumper+t-pro), [T20](https://rcsearch.ru/?s=jumper+t20). [ELRS 2.4GHz](https://propwashservice.com/en/intro/tx) version is recommended. Don't forget batteries! +- **Analog Goggles under $100**: Eachine [EV800D](https://rcsearch.ru/-c1814), [EV800DM](https://rcsearch.ru/-c7798). +- **Tiny Whoops under $100**: [Mobula6](https://rcsearch.ru/-c29293), [Mobula7](https://rcsearch.ru/-c33913), [Mobeetle6](https://rcsearch.ru/-c35745). Ensure the radio protocol matches your radio (e.g., ELRS). +- **Charger + (if needed) Power Supply**: [VIFLY WhoopStor](https://rcsearch.ru/-c46257). +- **Batteries**: GNB/Tattu according to whoop specs. For 65mm, 1S 300-380mAh; for 75mm, 1S or 2S 450-550mAh. Note: Whoops often use internal PH2.0 connectors. If possible, switch to BT2.0/A30 connectors for better performance. The suggested charger supports both. +- **Consumables**: Spare propellers matching your motor shaft diameter. -## Стартовый бюджетный набор для полетов на улице (400-500$) +## Budget Outdoor Starter Set ($400-500) -И это все еще аналоговая видеосистема. +Still an analog video system. -- Примеры аппаратур до 150$: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer); Jumper [T-pro](https://rcsearch.ru/?s=jumper+t-pro), [T20](https://rcsearch.ru/?s=jumper+t20). Рекомендуется [ELRS 2.4](https://propwashservice.com/ru/intro/tx) версия. Не забудьте аккумуляторы! -- Примеры аналоговых шлемов до 100$: Eachine [EV800D](https://rcsearch.ru/-c1814), [EV800DM](https://rcsearch.ru/-c7798) -- Примеры дронов до 200$: [HGLRC Drashark](https://rcsearch.ru/-c46627), [happymodel mobula8](https://rcsearch.ru/-c46027), [crux3](https://rcsearch.ru/-c30667), [crux35](https://rcsearch.ru/-c45326), [iFlight Baby Nazgul Nano](https://rcsearch.ru/-c35553), [GEPRC Smart Phantom 2.5"](https://rcsearch.ru/-c27390) (должен быть на аналоговой видеосистеме, с приемником на таком же радиопротоколе, что и пульт; если пульт ЕЛРС, то и дрон на ЕЛРС, на той же частоте) -- Зарядное устройство + (при необходимости) блок питания (БП): для 1S [VIFLY WhoopStor](https://rcsearch.ru/-c46257), для 2+S [skyrc b6 neo](https://rcsearch.ru/-c47308), ToolkitRC [M6](https://rcsearch.ru/-c6063), [M7](https://rcsearch.ru/-c25346), [M6D(двухпортовый)](https://rcsearch.ru/?s=toolkit+m6d), [M7AC(со встроенным БП)](https://rcsearch.ru/-c39020), [iSDT 608AC(со встроенным БП)](https://rcsearch.ru/-c8911), [m4 pocket(карманный вариант)](https://rcsearch.ru/-c32468); [ISDT PD60(карманный вариант)](https://rcsearch.ru/-c16236), [Q6 nano](https://rcsearch.ru/-c14405) (обратите внимание на входной разъем и питающее напряжение, а также разъем под аккумулятор, не забудьте переходник, если необходимо, например XT60 to XT30) -- Аккумуляторы: cnhl/gnb/tattu с рекомендуемыми характеристиками для выбранного дрона на тех же разъемах, рекомендуется для начала минимум 3-5шт -- Расходники: запасные пропеллеры того же диаметра с тем же типом крепления и диаметром отверстия под вал, ремешки для аккумуляторов +- **Radios under $150**: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer); Jumper [T-pro](https://rcsearch.ru/?s=jumper+t-pro), [T20](https://rcsearch.ru/?s=jumper+t20). ELRS 2.4GHz recommended. +- **Analog Goggles under $100**: Eachine [EV800D](https://rcsearch.ru/-c1814), [EV800DM](https://rcsearch.ru/-c7798). +- **Drones under $200**: [HGLRC Drashark](https://rcsearch.ru/-c46627), [Happymodel Mobula8](https://rcsearch.ru/-c46027), [Crux3](https://rcsearch.ru/-c30667), [Crux35](https://rcsearch.ru/-c45326), [iFlight Baby Nazgul Nano](https://rcsearch.ru/-c35553), [GEPRC Smart Phantom 2.5"](https://rcsearch.ru/-c27390). Ensure analog video and matching radio protocol. +- **Charger + (if needed) Power Supply**: For 1S: [WhoopStor](https://rcsearch.ru/-c46257). For 2S+: [SkyRC B6 Neo](https://rcsearch.ru/-c47308), ToolkitRC [M6](https://rcsearch.ru/-c6063), [M7](https://rcsearch.ru/-c25346), [M6D (Dual Port)](https://rcsearch.ru/?s=toolkit+m6d), [M7AC (Built-in PSU)](https://rcsearch.ru/-c39020), [iSDT 608AC](https://rcsearch.ru/-c8911). Check connector types (e.g., XT60/XT30). +- **Batteries**: CNHL/GNB/Tattu. Start with at least 3-5 packs. +- **Consumables**: Spare propellers, battery straps. -## Бюджетный комфортный вход (550-800$) +## Comfortable Budget Entry ($550-800) -И это все еще аналоговая видеосистема. +Still an analog video system. -- Примеры аппаратур до 150$: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer); Jumper [T-pro](https://rcsearch.ru/?s=jumper+t-pro), [T20](https://rcsearch.ru/?s=jumper+t20). Рекомендуется [ELRS 2.4](https://propwashservice.com/ru/intro/tx) версия. Не забудьте аккумуляторы! -- Примеры аналоговых шлемов/очков до 300$: Eachine [ev200d](https://rcsearch.ru/-c2397), [ev300d](https://rcsearch.ru/-c10462); [Skyzone SKY02](https://rcsearch.ru/?s=Skyzone+SKY02) (S,V,C,X,O - суть примерно одинаковая, только у О олед экраны; стоит глянуть на барахолке, будет дешевле, и возможно попадется SKY03 за ту же цену), [cobra X](https://rcsearch.ru/-c20692) (не путать с S, lite) и не забудьте аккумулятор! -- Примеры дронов до 250$: варианты из набора выше до 3.5", [GEPRC Smart 35 Analog 3.5" BNF ELRS](https://rcsearch.ru/-c27048) или уже 5" варианты по типу [iFlight Nazgul5 5" RaceCam R1 BNF ELRS 2.4](https://rcsearch.ru/-c45174), [iFlight TITAN XL5 BLITZ F7 6S BNF ELRS 2.4GHz](https://rcsearch.ru/-c36404) (должен быть на аналоговой видеосистеме, с приемником на таком же радиопротоколе, что и пульт; если пульт ЕЛРС, то и дрон на ЕЛРС, на той же частоте. Обратите внимание на количество ячеек аккумулятора, в случае 5" 6S бодрее, но и дороже!) -- Зарядное устройство + (при необходимости) блок питания (БП): [skyrc b6 neo](https://rcsearch.ru/-c47308), ToolkitRC [M6](https://rcsearch.ru/-c6063), [M7](https://rcsearch.ru/-c25346), [M6D(двухпортовый)](https://rcsearch.ru/?s=toolkit+m6d), [M7AC(со встроенным БП)](https://rcsearch.ru/-c39020), [iSDT 608AC(со встроенным БП)](https://rcsearch.ru/-c8911), [m4 pocket(карманный вариант)](https://rcsearch.ru/-c32468); [ISDT PD60(карманный вариант)](https://rcsearch.ru/-c16236), [Q6 nano](https://rcsearch.ru/-c14405) (обратите внимание на входной разъем и питающее напряжение, а также разъем под аккумулятор, не забудьте переходник, если необходимо, например XT60 to XT30) -- Аккумуляторы: cnhl/gnb/tattu с рекомендуемыми характеристиками для выбранного дрона на тех же разъемах, рекомендуется для начала минимум 3-5шт. -- Расходники: запасные пропеллеры того же диаметра с тем же типом крепления и диаметром отверстия под вал, ремешки для аккумуляторов. -- [Инструмент по типу шестигранников, ключей для гаек моторов](https://propwashservice.com/ru/shop/nessesary) +- **Radios under $150**: Radiomaster [Pocket](https://rcsearch.ru/?s=radiomaster+pocket), [TX12](https://rcsearch.ru/?s=radiomaster+tx12), [Zorro](https://rcsearch.ru/?s=radiomaster+zorro), [Boxer](https://rcsearch.ru/?s=radiomaster+boxer). ELRS 2.4GHz recommended. +- **Analog Goggles under $300**: Eachine [EV200D](https://rcsearch.ru/-c2397), [EV300D](https://rcsearch.ru/-c10462); [Skyzone SKY02](https://rcsearch.ru/?s=Skyzone+SKY02) (S, V, C, X versions are similar; OLED screens on X), [Cobra X](https://rcsearch.ru/-c20692). Check second-hand markets for deals. +- **Drones under $250**: Sets up to 3.5" (e.g., [GEPRC Smart 35](https://rcsearch.ru/-c27048)) or 5" racers like [iFlight Nazgul5](https://rcsearch.ru/-c45174) or [Titan XL5](https://rcsearch.ru/-c36404). Note: 6S batteries are more powerful but more expensive. +- **Charger + (if needed) PSU**: [SkyRC B6 Neo](https://rcsearch.ru/-c47308), ToolkitRC [M6D](https://rcsearch.ru/?s=toolkit+m6d), [M7AC](https://rcsearch.ru/-c39020). +- **Batteries**: CNHL/GNB/Tattu. Start with at least 3-5 packs. +- **Consumables**: Spare propellers, battery straps. +- [Tools like Hex drivers and nut wrenches](https://propwashservice.com/en/shop/nessesary). -## Комфортный вход (800-1500$) +## Comfortable Entry ($800-1500) -Поздравляю, у вас есть возможность выбрать видеосистему на свой вкус! +Congratulations, you can now choose a video system to your liking! -- [Примеры аппаратур. Не забудьте аккумуляторы!](https://propwashservice.com/ru/intro/tx) -- [Очки с видеосистемой под ваши задачи](https://propwashservice.com/ru/intro/vrx) -- [Дрон под желаемый стиль полета с приемником того же радиолинка, что и в аппаратуре](https://propwashservice.com/ru/intro/flightstyles) -- [Зарядное устройство + (при необходимости) блок питания (БП)](https://propwashservice.com/ru/intro/power#как-выбрать-зарядное-устроиство) -- Аккумуляторы: cnhl/gnb/tattu/dogcom с рекомендуемыми характеристиками для выбранного дрона на тех же разъемах, рекомендуется для начала минимум 3-5шт -- Расходники: запасные пропеллеры того же диаметра с тем же типом крепления и диаметром отверстия под вал, ремешки для аккумуляторов, если планируете активные полеты, то и запасные части дрона - мотор, луч, камеру.. -- [Инструмент по типу шестигранников, ключей для гаек моторов](https://propwashservice.com/ru/shop/nessesary) \ No newline at end of file +- [Radio examples. Don't forget batteries!](https://propwashservice.com/en/intro/tx) +- [Goggles and video systems for your needs](https://propwashservice.com/en/intro/vrx) +- [Drone styles and radio link compatibility](https://propwashservice.com/en/intro/flightstyles) +- [Chargers and power supplies](https://propwashservice.com/en/intro/power#how-to-choose-a-charger) +- **Batteries**: CNHL/GNB/Tattu/Dogcom. Start with at least 3-5 packs. +- **Consumables**: Spare propellers, battery straps, and spare parts like arms, motors, or a backup camera if you plan to fly hard. +- [Tools like Hex drivers and nut wrenches](https://propwashservice.com/en/shop/nessesary). \ No newline at end of file diff --git a/docs/en/shop/shops.md b/docs/en/shop/shops.md index e69de29b..0f6aafb8 100644 --- a/docs/en/shop/shops.md +++ b/docs/en/shop/shops.md @@ -0,0 +1,30 @@ +# List of FPV Related Shops + +Russian stores:
+ +
Air-Hobby (Moscow)
+
MyDrone (Moscow)
+
FPV Matrix (Moscow)
+
QuadroTeam (Online only, Moscow)
+
Coptertime (Moscow)
+
Vertorix (Moscow)
+
Wright Brothers (Moscow)
+
Sport and Hobby (by FASR) (Khimki)
+
Hobby Center online store (Khimki)
+
FPV Community (Moscow)
+
XModels (Moscow)
+
FPVwingRC (Moscow)
+
Spinner Production (Tula, Saint Petersburg)
+
FixFly (Saint Petersburg)
+
Poigraem - Radio Controlled Models (Krasnoyarsk)
+
Fly Depo Telegram Shop (Moscow)
+
ProCopter Telegram Shop (Kostroma)
+
Seagull Drone Telegram Shop (Sochi)
+
RcGood (Inactive, Moscow)
+
Belarusian stores:
+
FPV_shop (Minsk)
+
+International and other shops:
+
+
Shop search by country
+
RCSearch - search engine across various shops with categories