From 2ee6a40939b5b4458bb0c0871c59cb7417580799 Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Fri, 12 May 2023 11:45:34 +1000 Subject: [PATCH] use rome as linter & formatter --- .trunk/configs/.eslintrc | 9 - .trunk/configs/.prettierrc | 3 - .trunk/configs/rome.json | 17 + .trunk/configs/svgo.config.js | 24 +- .trunk/trunk.yaml | 6 +- docs/configuration/device-config/power.mdx | 2 +- docusaurus.config.js | 272 ++-- package.json | 27 +- pnpm-lock.yaml | 1263 +++++++---------- sidebars.js | 12 +- src/components/BatteryCalculator.tsx | 44 +- src/components/Button.tsx | 20 +- src/components/ColorMode.tsx | 6 +- src/components/Modal.tsx | 74 +- src/components/PageLayout.tsx | 24 +- src/components/hardware/Badge.tsx | 22 +- src/components/hardware/CardTab.tsx | 24 +- src/components/hardware/HardwareCard.tsx | 101 +- src/components/hardware/HardwareModal.tsx | 296 ++-- src/components/hardware/Tabs/InfoTab.tsx | 74 +- src/components/hardware/Tabs/PinoutTab.tsx | 50 +- src/components/hardware/Tabs/PowerTab.tsx | 4 +- .../hardware/VariantSelectButton.tsx | 142 +- src/components/homepage/SocialCard.tsx | 42 +- src/data/device.ts | 116 +- src/data/devices/heltec.ts | 124 +- src/data/devices/hydra.ts | 124 +- src/data/devices/nano_g1.ts | 124 +- src/data/devices/rak19001.ts | 124 +- src/data/devices/rak19003.ts | 124 +- src/data/devices/tbeam.ts | 546 +++---- src/data/devices/techo.ts | 124 +- src/data/region.ts | 18 +- src/data/regions/anz.ts | 18 +- src/data/regions/cn.ts | 18 +- src/data/regions/eu_433.ts | 18 +- src/data/regions/eu_868.ts | 18 +- src/data/regions/in.ts | 18 +- src/data/regions/jp.ts | 18 +- src/data/regions/kr.ts | 18 +- src/data/regions/lora_24.ts | 18 +- src/data/regions/nz_865.ts | 18 +- src/data/regions/ru.ts | 18 +- src/data/regions/th.ts | 18 +- src/data/regions/tw.ts | 18 +- src/data/regions/ua_433.ts | 18 +- src/data/regions/ua_868.ts | 18 +- src/data/regions/unset.ts | 18 +- src/data/regions/us.ts | 18 +- src/hooks/useFilteredNetworks.tsx | 38 +- src/hooks/useSelectedTags.tsx | 14 +- src/pages/2.0/index.tsx | 878 ++++++------ src/pages/credits/_components/Avatar.tsx | 60 +- src/pages/credits/index.tsx | 310 ++-- .../downloads/_components/DownloadCard.tsx | 270 ++-- .../downloads/_components/FirmwareCard.tsx | 278 ++-- .../downloads/_components/HeaderText.tsx | 26 +- src/pages/downloads/index.tsx | 442 +++--- src/pages/hardware/index.tsx | 146 +- src/pages/index.tsx | 570 ++++---- src/pages/showcase/_components/Card.tsx | 192 +-- src/pages/showcase/_components/CardTags.tsx | 40 +- src/pages/showcase/_components/Filters.tsx | 148 +- src/pages/showcase/_components/Network.tsx | 601 ++++---- .../showcase/_components/NetworkSection.tsx | 112 +- src/pages/showcase/_components/Networks.tsx | 70 +- src/pages/showcase/_components/TagSelect.tsx | 178 +-- src/pages/showcase/index.tsx | 38 +- src/pages/tools/OEM.tsx | 268 ++-- src/utils/apiTypes.ts | 80 +- src/utils/calculateADC.ts | 42 +- src/utils/map.ts | 18 +- src/utils/showcase.ts | 28 +- tailwind.config.cjs | 22 - tailwind.config.ts | 23 + 75 files changed, 4475 insertions(+), 4687 deletions(-) delete mode 100644 .trunk/configs/.eslintrc delete mode 100644 .trunk/configs/.prettierrc create mode 100644 .trunk/configs/rome.json delete mode 100644 tailwind.config.cjs create mode 100644 tailwind.config.ts diff --git a/.trunk/configs/.eslintrc b/.trunk/configs/.eslintrc deleted file mode 100644 index e8d9313c..00000000 --- a/.trunk/configs/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ - - - -{ - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@docusaurus/recommended"], - "parser": "@typescript-eslint/parser", - "plugins": ["@docusaurus", "@typescript-eslint"], - "root": true -} \ No newline at end of file diff --git a/.trunk/configs/.prettierrc b/.trunk/configs/.prettierrc deleted file mode 100644 index 36b35631..00000000 --- a/.trunk/configs/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "trailingComma": "none" -} diff --git a/.trunk/configs/rome.json b/.trunk/configs/rome.json new file mode 100644 index 00000000..639e43cb --- /dev/null +++ b/.trunk/configs/rome.json @@ -0,0 +1,17 @@ +{ + "$schema": "../../node_modules/rome/configuration_schema.json", + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentSize": 2 + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "organizeImports": { + "enabled": true + } +} diff --git a/.trunk/configs/svgo.config.js b/.trunk/configs/svgo.config.js index 277f5f2e..17e2ff67 100644 --- a/.trunk/configs/svgo.config.js +++ b/.trunk/configs/svgo.config.js @@ -1,14 +1,14 @@ module.exports = { - plugins: [ - { - name: "preset-default", - params: { - overrides: { - removeViewBox: false, // https://github.com/svg/svgo/issues/1128 - sortAttrs: true, - removeOffCanvasPaths: true - } - } - } - ] + plugins: [ + { + name: "preset-default", + params: { + overrides: { + removeViewBox: false, // https://github.com/svg/svgo/issues/1128 + sortAttrs: true, + removeOffCanvasPaths: true, + }, + }, + }, + ], }; diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 3226de3f..b9eb3ecb 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -7,15 +7,17 @@ plugins: ref: v0.0.8 uri: https://github.com/trunk-io/plugins lint: + disabled: + - eslint + - prettier enabled: + - rome@12.0.0 - markdownlint@0.33.0 - actionlint@1.6.22 - gitleaks@8.15.2 - git-diff-check - shellcheck@0.9.0 - - prettier@2.8.2 - shfmt@3.5.0 - - eslint@8.31.0 - svgo@3.0.2 runtimes: enabled: diff --git a/docs/configuration/device-config/power.mdx b/docs/configuration/device-config/power.mdx index a85ea6fb..ed94940e 100644 --- a/docs/configuration/device-config/power.mdx +++ b/docs/configuration/device-config/power.mdx @@ -7,7 +7,7 @@ sidebar_label: Power import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -import calculateADC from "@site/src/utils/calculateADC"; +import calculateADC from "/src/utils/calculateADC"; The power config options are: Power Saving, Shutdown after losing power, ADC Multiplier Override Wait Bluetooth Interval, Mesh Super Deep Sleep Timeout, Super Deep Sleep Interval, Light Sleep Interval and Minimum Wake Interval. Power config uses an admin message sending a `Config.Power` protobuf. diff --git a/docusaurus.config.js b/docusaurus.config.js index 3c96fbc8..476575ad 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -4,142 +4,142 @@ require("dotenv").config(); /** @type {import('@docusaurus/types').Config} */ const config = { - title: "Meshtastic", - tagline: - "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", - url: "https://meshtastic.org", - baseUrl: "/", - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - favicon: "design/web/favicon.ico", - organizationName: "meshtastic", - projectName: "meshtastic", - themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { - announcementBar: { - id: "2_0", - content: - '🎉 Meshtastic 2.0 Has Now Launched! Check it Out Here 🎉' - }, - docs: { - sidebar: { - autoCollapseCategories: true - } - }, - navbar: { - title: "Meshtastic", - hideOnScroll: true, - logo: { - alt: "Meshtastic Logo", - src: "design/logo/svg/Mesh_Logo_Black.svg", - srcDark: "design/logo/svg/Mesh_Logo_White.svg" - }, - items: [ - { - label: "Docs", - to: "docs/introduction" - }, - { - label: "Downloads", - to: "downloads" - }, - { - label: "About", - position: "right", - items: [ - { - label: "Introduction", - to: "docs/introduction" - }, - { - label: "Getting Started", - to: "docs/getting-started" - }, - { - label: "Contributing", - to: "docs/contributing" - }, - { - label: "Legal", - to: "docs/legal" - }, - { - label: "FAQs", - to: "docs/faq" - } - ] - }, - { - href: "https://github.com/meshtastic", - position: "right", - className: "header-github-link", - "aria-label": "GitHub repository" - } - ] - }, - footer: { - copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Meshtastic LLC. | Legal Information.` - }, - algolia: { - appId: "IG2GQB8L3V", - // trunk-ignore(gitleaks/generic-api-key) - apiKey: "2e4348812173ec7ea6f7879c7032bb21", - indexName: "meshtastic", - contextualSearch: false, - searchPagePath: "search" - }, - colorMode: { - respectPrefersColorScheme: true - }, - mermaid: { - theme: { light: "base", dark: "base" }, - options: { - themeVariables: { - primaryColor: "#67EA94", - primaryTextColor: "var(--tw-prose-headings)", - primaryBorderColor: "#4D4D4D", - lineColor: "#EAD667", - secondaryColor: "#EA67BD", - tertiaryColor: "#677CEA" - } - } - } - }, - plugins: [ - () => { - return { - name: "docusaurus-tailwindcss", - configurePostCss(postcssOptions) { - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; - } - }; - } - ], - presets: [ - [ - "@docusaurus/preset-classic", - /** @type {import('@docusaurus/preset-classic').Options} */ - { - docs: { - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/meshtastic/meshtastic/edit/master/", - breadcrumbs: false, - showLastUpdateAuthor: true - }, - theme: { - customCss: require.resolve("./src/css/custom.css") - } - } - ] - ], - customFields: { - API_URL: process.env.API_URL - }, - markdown: { - mermaid: true - }, - themes: ["@docusaurus/theme-mermaid"] + title: "Meshtastic", + tagline: + "An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices", + url: "https://meshtastic.org", + baseUrl: "/", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + favicon: "design/web/favicon.ico", + organizationName: "meshtastic", + projectName: "meshtastic", + themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { + announcementBar: { + id: "2_0", + content: + '🎉 Meshtastic 2.0 Has Now Launched! Check it Out Here 🎉', + }, + docs: { + sidebar: { + autoCollapseCategories: true, + }, + }, + navbar: { + title: "Meshtastic", + hideOnScroll: true, + logo: { + alt: "Meshtastic Logo", + src: "design/logo/svg/Mesh_Logo_Black.svg", + srcDark: "design/logo/svg/Mesh_Logo_White.svg", + }, + items: [ + { + label: "Docs", + to: "docs/introduction", + }, + { + label: "Downloads", + to: "downloads", + }, + { + label: "About", + position: "right", + items: [ + { + label: "Introduction", + to: "docs/introduction", + }, + { + label: "Getting Started", + to: "docs/getting-started", + }, + { + label: "Contributing", + to: "docs/contributing", + }, + { + label: "Legal", + to: "docs/legal", + }, + { + label: "FAQs", + to: "docs/faq", + }, + ], + }, + { + href: "https://github.com/meshtastic", + position: "right", + className: "header-github-link", + "aria-label": "GitHub repository", + }, + ], + }, + footer: { + copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Meshtastic LLC. | Legal Information.`, + }, + algolia: { + appId: "IG2GQB8L3V", + // trunk-ignore(gitleaks/generic-api-key) + apiKey: "2e4348812173ec7ea6f7879c7032bb21", + indexName: "meshtastic", + contextualSearch: false, + searchPagePath: "search", + }, + colorMode: { + respectPrefersColorScheme: true, + }, + mermaid: { + theme: { light: "base", dark: "base" }, + options: { + themeVariables: { + primaryColor: "#67EA94", + primaryTextColor: "var(--tw-prose-headings)", + primaryBorderColor: "#4D4D4D", + lineColor: "#EAD667", + secondaryColor: "#EA67BD", + tertiaryColor: "#677CEA", + }, + }, + }, + }, + plugins: [ + () => { + return { + name: "docusaurus-tailwindcss", + configurePostCss(postcssOptions) { + postcssOptions.plugins.push(require("tailwindcss")); + postcssOptions.plugins.push(require("autoprefixer")); + return postcssOptions; + }, + }; + }, + ], + presets: [ + [ + "@docusaurus/preset-classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + { + docs: { + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://github.com/meshtastic/meshtastic/edit/master/", + breadcrumbs: false, + showLastUpdateAuthor: true, + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }, + ], + ], + customFields: { + API_URL: process.env.API_URL, + }, + markdown: { + mermaid: true, + }, + themes: ["@docusaurus/theme-mermaid"], }; module.exports = config; diff --git a/package.json b/package.json index 1a30f7f4..2cdde38c 100644 --- a/package.json +++ b/package.json @@ -11,40 +11,37 @@ "clear": "docusaurus clear" }, "dependencies": { - "@algolia/client-search": "^4.16.0", + "@algolia/client-search": "^4.17.0", "@docusaurus/core": "2.4.0", "@docusaurus/plugin-content-docs": "2.4.0", "@docusaurus/preset-classic": "2.4.0", "@docusaurus/theme-mermaid": "^2.4.0", - "@headlessui/react": "^1.7.13", - "@heroicons/react": "^2.0.17", + "@headlessui/react": "^1.7.14", + "@heroicons/react": "^2.0.18", "@mdx-js/react": "^1.6.22", - "@meshtastic/meshtasticjs": "2.1.6-0", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.57.0", + "@meshtastic/meshtasticjs": "2.1.9-0", "autoprefixer": "^10.4.14", "base64-js": "^1.5.1", "dotenv": "^16.0.3", - "eslint": "^8.37.0", "framer-motion": "^6.5.1", - "postcss": "^8.4.21", + "postcss": "^8.4.23", "react": "^17.0.2", "react-dom": "^17.0.2", "react-icons": "^4.8.0", "react-responsive-carousel": "^3.2.23", - "swr": "^2.1.1", - "tailwindcss": "^3.3.1", + "swr": "^2.1.5", + "tailwindcss": "^3.3.2", "url-search-params-polyfill": "^8.1.1", "use-breakpoint": "^3.0.7" }, "devDependencies": { - "@docusaurus/eslint-plugin": "^2.4.0", "@docusaurus/module-type-aliases": "2.4.0", "@tailwindcss/typography": "^0.5.9", "@tsconfig/docusaurus": "^1.0.7", - "@types/node": "^18.15.11", - "@types/react": "^18.0.31", - "@types/react-dom": "^18.0.11", - "typescript": "^5.0.3" + "@types/node": "^20.1.3", + "@types/react": "^18.2.6", + "@types/react-dom": "^18.2.4", + "rome": "^12.0.0", + "typescript": "^5.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2506ebe..19161595 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,56 +2,47 @@ lockfileVersion: '6.0' dependencies: '@algolia/client-search': - specifier: ^4.16.0 - version: 4.16.0 + specifier: ^4.17.0 + version: 4.17.0 '@docusaurus/core': specifier: 2.4.0 - version: 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + version: 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/plugin-content-docs': specifier: 2.4.0 - version: 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + version: 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/preset-classic': specifier: 2.4.0 - version: 2.4.0(@algolia/client-search@4.16.0)(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + version: 2.4.0(@algolia/client-search@4.17.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/theme-mermaid': specifier: ^2.4.0 - version: 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + version: 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@headlessui/react': - specifier: ^1.7.13 - version: 1.7.13(react-dom@17.0.2)(react@17.0.2) + specifier: ^1.7.14 + version: 1.7.14(react-dom@17.0.2)(react@17.0.2) '@heroicons/react': - specifier: ^2.0.17 - version: 2.0.17(react@17.0.2) + specifier: ^2.0.18 + version: 2.0.18(react@17.0.2) '@mdx-js/react': specifier: ^1.6.22 version: 1.6.22(react@17.0.2) '@meshtastic/meshtasticjs': - specifier: 2.1.6-0 - version: 2.1.6-0 - '@typescript-eslint/eslint-plugin': - specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/parser': - specifier: ^5.57.0 - version: 5.57.0(eslint@8.37.0)(typescript@5.0.3) + specifier: 2.1.9-0 + version: 2.1.9-0 autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.21) + version: 10.4.14(postcss@8.4.23) base64-js: specifier: ^1.5.1 version: 1.5.1 dotenv: specifier: ^16.0.3 version: 16.0.3 - eslint: - specifier: ^8.37.0 - version: 8.37.0 framer-motion: specifier: ^6.5.1 version: 6.5.1(react-dom@17.0.2)(react@17.0.2) postcss: - specifier: ^8.4.21 - version: 8.4.21 + specifier: ^8.4.23 + version: 8.4.23 react: specifier: ^17.0.2 version: 17.0.2 @@ -65,11 +56,11 @@ dependencies: specifier: ^3.2.23 version: 3.2.23 swr: - specifier: ^2.1.1 - version: 2.1.1(react@17.0.2) + specifier: ^2.1.5 + version: 2.1.5(react@17.0.2) tailwindcss: - specifier: ^3.3.1 - version: 3.3.1(postcss@8.4.21) + specifier: ^3.3.2 + version: 3.3.2 url-search-params-polyfill: specifier: ^8.1.1 version: 8.1.1 @@ -78,30 +69,30 @@ dependencies: version: 3.0.7(react-dom@17.0.2)(react@17.0.2) devDependencies: - '@docusaurus/eslint-plugin': - specifier: ^2.4.0 - version: 2.4.0(eslint@8.37.0)(typescript@5.0.3) '@docusaurus/module-type-aliases': specifier: 2.4.0 version: 2.4.0(react-dom@17.0.2)(react@17.0.2) '@tailwindcss/typography': specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.3.1) + version: 0.5.9(tailwindcss@3.3.2) '@tsconfig/docusaurus': specifier: ^1.0.7 version: 1.0.7 '@types/node': - specifier: ^18.15.11 - version: 18.15.11 + specifier: ^20.1.3 + version: 20.1.3 '@types/react': - specifier: ^18.0.31 - version: 18.0.31 + specifier: ^18.2.6 + version: 18.2.6 '@types/react-dom': - specifier: ^18.0.11 - version: 18.0.11 + specifier: ^18.2.4 + version: 18.2.4 + rome: + specifier: ^12.0.0 + version: 12.0.0 typescript: - specifier: ^5.0.3 - version: 5.0.3 + specifier: ^5.0.4 + version: 5.0.4 packages: @@ -111,14 +102,14 @@ packages: '@algolia/autocomplete-shared': 1.7.4 dev: false - /@algolia/autocomplete-preset-algolia@1.7.4(@algolia/client-search@4.16.0)(algoliasearch@4.16.0): + /@algolia/autocomplete-preset-algolia@1.7.4(@algolia/client-search@4.17.0)(algoliasearch@4.16.0): resolution: {integrity: sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: '@algolia/autocomplete-shared': 1.7.4 - '@algolia/client-search': 4.16.0 + '@algolia/client-search': 4.17.0 algoliasearch: 4.16.0 dev: false @@ -136,6 +127,10 @@ packages: resolution: {integrity: sha512-4iHjkSYQYw46pITrNQgXXhvUmcekI8INz1m+SzmqLX8jexSSy4Ky4zfGhZzhhhLHXUP3+x/PK/c0qPjxEvRwKQ==} dev: false + /@algolia/cache-common@4.17.0: + resolution: {integrity: sha512-g8mXzkrcUBIPZaulAuqE7xyHhLAYAcF2xSch7d9dABheybaU3U91LjBX6eJTEB7XVhEsgK4Smi27vWtAJRhIKQ==} + dev: false + /@algolia/cache-in-memory@4.16.0: resolution: {integrity: sha512-p7RYykvA6Ip6QENxrh99nOD77otVh1sJRivcgcVpnjoZb5sIN3t33eUY1DpB9QSBizcrW+qk19rNkdnZ43a+PQ==} dependencies: @@ -166,6 +161,13 @@ packages: '@algolia/transporter': 4.16.0 dev: false + /@algolia/client-common@4.17.0: + resolution: {integrity: sha512-jHMks0ZFicf8nRDn6ma8DNNsdwGgP/NKiAAL9z6rS7CymJ7L0+QqTJl3rYxRW7TmBhsUH40wqzmrG6aMIN/DrQ==} + dependencies: + '@algolia/requester-common': 4.17.0 + '@algolia/transporter': 4.17.0 + dev: false + /@algolia/client-personalization@4.16.0: resolution: {integrity: sha512-irtLafssDGPuhYqIwxqOxiWlVYvrsBD+EMA1P9VJtkKi3vSNBxiWeQ0f0Tn53cUNdSRNEssfoEH84JL97SV2SQ==} dependencies: @@ -182,6 +184,14 @@ packages: '@algolia/transporter': 4.16.0 dev: false + /@algolia/client-search@4.17.0: + resolution: {integrity: sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA==} + dependencies: + '@algolia/client-common': 4.17.0 + '@algolia/requester-common': 4.17.0 + '@algolia/transporter': 4.17.0 + dev: false + /@algolia/events@4.0.1: resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} dev: false @@ -190,6 +200,10 @@ packages: resolution: {integrity: sha512-U9H8uCzSDuePJmbnjjTX21aPDRU6x74Tdq3dJmdYu2+pISx02UeBJm4kSgc9RW5jcR5j35G9gnjHY9Q3ngWbyQ==} dev: false + /@algolia/logger-common@4.17.0: + resolution: {integrity: sha512-DGuoZqpTmIKJFDeyAJ7M8E/LOenIjWiOsg1XJ1OqAU/eofp49JfqXxbfgctlVZVmDABIyOz8LqEoJ6ZP4DTyvw==} + dev: false + /@algolia/logger-console@4.16.0: resolution: {integrity: sha512-+qymusiM+lPZKrkf0tDjCQA158eEJO2IU+Nr/sJ9TFyI/xkFPjNPzw/Qbc8Iy/xcOXGlc6eMgmyjtVQqAWq6UA==} dependencies: @@ -206,6 +220,10 @@ packages: resolution: {integrity: sha512-3Zmcs/iMubcm4zqZ3vZG6Zum8t+hMWxGMzo0/uY2BD8o9q5vMxIYI0c4ocdgQjkXcix189WtZNkgjSOBzSbkdw==} dev: false + /@algolia/requester-common@4.17.0: + resolution: {integrity: sha512-XJjmWFEUlHu0ijvcHBoixuXfEoiRUdyzQM6YwTuB8usJNIgShua8ouFlRWF8iCeag0vZZiUm4S2WCVBPkdxFgg==} + dev: false + /@algolia/requester-node-http@4.16.0: resolution: {integrity: sha512-L8JxM2VwZzh8LJ1Zb8TFS6G3icYsCKZsdWW+ahcEs1rGWmyk9SybsOe1MLnjonGBaqPWJkn9NjS7mRdjEmBtKA==} dependencies: @@ -220,6 +238,18 @@ packages: '@algolia/requester-common': 4.16.0 dev: false + /@algolia/transporter@4.17.0: + resolution: {integrity: sha512-6xL6H6fe+Fi0AEP3ziSgC+G04RK37iRb4uUUqVAH9WPYFI8g+LYFq6iv5HS8Cbuc5TTut+Bwj6G+dh/asdb9uA==} + dependencies: + '@algolia/cache-common': 4.17.0 + '@algolia/logger-common': 4.17.0 + '@algolia/requester-common': 4.17.0 + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + /@ampproject/remapping@2.2.0: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} @@ -257,7 +287,7 @@ packages: gensync: 1.0.0-beta.2 json5: 2.2.3 lodash: 4.17.21 - resolve: 1.22.1 + resolve: 1.22.2 semver: 5.7.1 source-map: 0.5.7 transitivePeerDependencies: @@ -292,7 +322,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 - '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.17 jsesc: 2.5.2 dev: false @@ -366,7 +396,7 @@ packages: '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.2 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1588,8 +1618,8 @@ packages: resolution: {integrity: sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==} dev: false - /@buf/meshtastic_protobufs.bufbuild_es@1.2.0-20230328173351-271d1533a896.1(@bufbuild/protobuf@1.2.0): - resolution: {registry: https://buf.build/gen/npm/v1, tarball: https://buf.build/gen/npm/v1/@buf/meshtastic_protobufs.bufbuild_es/-/meshtastic_protobufs.bufbuild_es-1.2.0-20230328173351-271d1533a896.1.tgz} + /@buf/meshtastic_protobufs.bufbuild_es@1.2.0-20230417204104-5e504ea6e3e3.1(@bufbuild/protobuf@1.2.0): + resolution: {registry: https://buf.build/gen/npm/v1, tarball: https://buf.build/gen/npm/v1/@buf/meshtastic_protobufs.bufbuild_es/-/meshtastic_protobufs.bufbuild_es-1.2.0-20230417204104-5e504ea6e3e3.1.tgz} peerDependencies: '@bufbuild/protobuf': ^1.2.0 dependencies: @@ -1616,7 +1646,7 @@ packages: resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==} dev: false - /@docsearch/react@3.3.3(@algolia/client-search@4.16.0)(@types/react@18.0.31)(react-dom@17.0.2)(react@17.0.2): + /@docsearch/react@3.3.3(@algolia/client-search@4.17.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2): resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -1631,9 +1661,9 @@ packages: optional: true dependencies: '@algolia/autocomplete-core': 1.7.4 - '@algolia/autocomplete-preset-algolia': 1.7.4(@algolia/client-search@4.16.0)(algoliasearch@4.16.0) + '@algolia/autocomplete-preset-algolia': 1.7.4(@algolia/client-search@4.17.0)(algoliasearch@4.16.0) '@docsearch/css': 3.3.3 - '@types/react': 18.0.31 + '@types/react': 18.2.6 algoliasearch: 4.16.0 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) @@ -1641,7 +1671,7 @@ packages: - '@algolia/client-search' dev: false - /@docusaurus/core@2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/core@2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-J55/WEoIpRcLf3afO5POHPguVZosKmJEQWKBL+K7TAnfuE7i+Y0NPLlkKtnWCehagGsgTqClfQEexH/UT4kELA==} engines: {node: '>=16.14'} hasBin: true @@ -1668,7 +1698,7 @@ packages: '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 - autoprefixer: 10.4.14(postcss@8.4.21) + autoprefixer: 10.4.14(postcss@8.4.23) babel-loader: 8.3.0(@babel/core@7.21.3)(webpack@5.76.3) babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 @@ -1682,7 +1712,7 @@ packages: core-js: 3.29.1 css-loader: 6.7.3(webpack@5.76.3) css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.76.3) - cssnano: 5.1.15(postcss@8.4.21) + cssnano: 5.1.15(postcss@8.4.23) del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 @@ -1696,11 +1726,11 @@ packages: leven: 3.1.0 lodash: 4.17.21 mini-css-extract-plugin: 2.7.5(webpack@5.76.3) - postcss: 8.4.21 - postcss-loader: 7.1.0(postcss@8.4.21)(webpack@5.76.3) + postcss: 8.4.23 + postcss-loader: 7.1.0(postcss@8.4.23)(webpack@5.76.3) prompts: 2.4.2 react: 17.0.2 - react-dev-utils: 12.0.1(eslint@8.37.0)(typescript@5.0.3)(webpack@5.76.3) + react-dev-utils: 12.0.1(typescript@5.0.4)(webpack@5.76.3) react-dom: 17.0.2(react@17.0.2) react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2) react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2) @@ -1745,26 +1775,12 @@ packages: resolution: {integrity: sha512-RmdiA3IpsLgZGXRzqnmTbGv43W4OD44PCo+6Q/aYjEM2V57vKCVqNzuafE94jv0z/PjHoXUrjr69SaRymBKYYw==} engines: {node: '>=16.14'} dependencies: - cssnano-preset-advanced: 5.3.10(postcss@8.4.21) - postcss: 8.4.21 - postcss-sort-media-queries: 4.3.0(postcss@8.4.21) + cssnano-preset-advanced: 5.3.10(postcss@8.4.23) + postcss: 8.4.23 + postcss-sort-media-queries: 4.3.0(postcss@8.4.23) tslib: 2.5.0 dev: false - /@docusaurus/eslint-plugin@2.4.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-TjhDLEy/sREFYGM3ARK9VV+88/rwUliKv4jRx8Iox+e6r6YvQ6R4KpmpO3zFbINL4oI94hK7nenCg4D79RYBYQ==} - engines: {node: '>=16.14'} - peerDependencies: - eslint: '>=6' - dependencies: - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - eslint: 8.37.0 - tslib: 2.5.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@docusaurus/logger@2.4.0: resolution: {integrity: sha512-T8+qR4APN+MjcC9yL2Es+xPJ2923S9hpzDmMtdsOcUGLqpCGBbU1vp3AAqDwXtVgFkq+NsEk7sHdVsfLWR/AXw==} engines: {node: '>=16.14'} @@ -1817,7 +1833,7 @@ packages: '@docusaurus/react-loadable': 5.5.2(react@17.0.2) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 '@types/react-router-config': 5.0.6 '@types/react-router-dom': 5.3.3 react: 17.0.2 @@ -1830,14 +1846,14 @@ packages: - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-content-blog@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-YwkAkVUxtxoBAIj/MCb4ohN0SCtHBs4AS75jMhPpf67qf3j+U/4n33cELq7567hwyZ6fMz2GPJcVmctzlGGThQ==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/logger': 2.4.0 '@docusaurus/mdx-loader': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) @@ -1873,14 +1889,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-docs@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-content-docs@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-ic/Z/ZN5Rk/RQo+Io6rUGpToOtNbtPloMR2JcGwC1xT2riMu6zzfSwmBi9tHJgdXH6CB5jG+0dOZZO8QS5tmDg==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/logger': 2.4.0 '@docusaurus/mdx-loader': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2) '@docusaurus/module-type-aliases': 2.4.0(react-dom@17.0.2)(react@17.0.2) @@ -1916,14 +1932,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-content-pages@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-content-pages@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-Pk2pOeOxk8MeU3mrTU0XLIgP9NZixbdcJmJ7RUFrZp1Aj42nd0RhIT14BGvXXyqb8yTQlk4DmYGAzqOfBsFyGw==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/mdx-loader': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) @@ -1951,20 +1967,20 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-debug@2.4.0(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-debug@2.4.0(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-KC56DdYjYT7Txyux71vXHXGYZuP6yYtqwClvYpjKreWIHWus5Zt6VNi23rMZv3/QKhOCrN64zplUbdfQMvddBQ==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) fs-extra: 10.1.0 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - react-json-view: 1.21.3(@types/react@18.0.31)(react-dom@17.0.2)(react@17.0.2) + react-json-view: 1.21.3(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2) tslib: 2.5.0 transitivePeerDependencies: - '@parcel/css' @@ -1986,14 +2002,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-analytics@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-google-analytics@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-uGUzX67DOAIglygdNrmMOvEp8qG03X20jMWadeqVQktS6nADvozpSLGx4J0xbkblhJkUzN21WiilsP9iVP+zkw==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) react: 17.0.2 @@ -2017,14 +2033,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-gtag@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-google-gtag@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-adj/70DANaQs2+TF/nRdMezDXFAV/O/pjAbUgmKBlyOTq5qoMe0Tk4muvQIwWUmiUQxFJe+sKlZGM771ownyOg==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) react: 17.0.2 @@ -2048,14 +2064,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-google-tag-manager@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-google-tag-manager@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-E66uGcYs4l7yitmp/8kMEVQftFPwV9iC62ORh47Veqzs6ExwnhzBkJmwDnwIysHBF1vlxnzET0Fl2LfL5fRR3A==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) react: 17.0.2 @@ -2079,14 +2095,14 @@ packages: - webpack-cli dev: false - /@docusaurus/plugin-sitemap@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/plugin-sitemap@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-pZxh+ygfnI657sN8a/FkYVIAmVv0CGk71QMKqJBOfMmDHNN1FeDeFkBjWP49ejBqpqAhjufkv5UWq3UOu2soCw==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/logger': 2.4.0 '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) @@ -2115,25 +2131,25 @@ packages: - webpack-cli dev: false - /@docusaurus/preset-classic@2.4.0(@algolia/client-search@4.16.0)(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/preset-classic@2.4.0(@algolia/client-search@4.17.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-/5z5o/9bc6+P5ool2y01PbJhoGddEGsC0ej1MF6mCoazk8A+kW4feoUd68l7Bnv01rCnG3xy7kHUQP97Y0grUA==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-blog': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-docs': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-pages': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-debug': 2.4.0(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-google-analytics': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-google-gtag': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-google-tag-manager': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-sitemap': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/theme-classic': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/theme-search-algolia': 2.4.0(@algolia/client-search@4.16.0)(@docusaurus/types@2.4.0)(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-blog': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-docs': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-pages': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-debug': 2.4.0(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-google-analytics': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-google-gtag': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-google-tag-manager': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-sitemap': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/theme-classic': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/theme-search-algolia': 2.4.0(@algolia/client-search@4.17.0)(@docusaurus/types@2.4.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) react: 17.0.2 react-dom: 17.0.2(react@17.0.2) @@ -2163,24 +2179,24 @@ packages: peerDependencies: react: '*' dependencies: - '@types/react': 18.0.31 + '@types/react': 18.2.6 prop-types: 15.8.1 react: 17.0.2 - /@docusaurus/theme-classic@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/theme-classic@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-GMDX5WU6Z0OC65eQFgl3iNNEbI9IMJz9f6KnOyuMxNUR6q0qVLsKCNopFUDfFNJ55UU50o7P7o21yVhkwpfJ9w==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/mdx-loader': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2) '@docusaurus/module-type-aliases': 2.4.0(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-docs': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-pages': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/plugin-content-blog': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-docs': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-pages': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/theme-translations': 2.4.0 '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) @@ -2192,7 +2208,7 @@ packages: infima: 0.2.0-alpha.43 lodash: 4.17.21 nprogress: 0.2.0 - postcss: 8.4.21 + postcss: 8.4.23 prism-react-renderer: 1.3.5(react@17.0.2) prismjs: 1.29.0 react: 17.0.2 @@ -2219,7 +2235,7 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-common@2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/theme-common@2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-IkG/l5f/FLY6cBIxtPmFnxpuPzc5TupuqlOx+XDN+035MdQcAh8wHXXZJAkTeYDeZ3anIUSUIvWa7/nRKoQEfg==} engines: {node: '>=16.14'} peerDependencies: @@ -2228,13 +2244,13 @@ packages: dependencies: '@docusaurus/mdx-loader': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2) '@docusaurus/module-type-aliases': 2.4.0(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-docs': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/plugin-content-pages': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/plugin-content-blog': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-docs': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/plugin-content-pages': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) '@docusaurus/utils-common': 2.4.0(@docusaurus/types@2.4.0) '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 '@types/react-router-config': 5.0.6 clsx: 1.2.1 parse-numeric-range: 1.3.0 @@ -2263,16 +2279,16 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-mermaid@2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/theme-mermaid@2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-qB4cMDn93iwQ5JzhLgHsME5DgUbISMKgk6nP6tEWqepP3S/WXR1L/uRAH8xXbuRhJgzERHM/f6riyv0cNIQeTg==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/module-type-aliases': 2.4.0(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/types': 2.4.0(react-dom@17.0.2)(react@17.0.2) '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) '@mdx-js/react': 1.6.22(react@17.0.2) @@ -2298,18 +2314,18 @@ packages: - webpack-cli dev: false - /@docusaurus/theme-search-algolia@2.4.0(@algolia/client-search@4.16.0)(@docusaurus/types@2.4.0)(@types/react@18.0.31)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3): + /@docusaurus/theme-search-algolia@2.4.0(@algolia/client-search@4.17.0)(@docusaurus/types@2.4.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4): resolution: {integrity: sha512-pPCJSCL1Qt4pu/Z0uxBAuke0yEBbxh0s4fOvimna7TEcBLPq0x06/K78AaABXrTVQM6S0vdocFl9EoNgU17hqA==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 react-dom: ^16.8.4 || ^17.0.0 dependencies: - '@docsearch/react': 3.3.3(@algolia/client-search@4.16.0)(@types/react@18.0.31)(react-dom@17.0.2)(react@17.0.2) - '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docsearch/react': 3.3.3(@algolia/client-search@4.17.0)(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2) + '@docusaurus/core': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/logger': 2.4.0 - '@docusaurus/plugin-content-docs': 2.4.0(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) - '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(eslint@8.37.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.3) + '@docusaurus/plugin-content-docs': 2.4.0(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) + '@docusaurus/theme-common': 2.4.0(@docusaurus/types@2.4.0)(react-dom@17.0.2)(react@17.0.2)(typescript@5.0.4) '@docusaurus/theme-translations': 2.4.0 '@docusaurus/utils': 2.4.0(@docusaurus/types@2.4.0) '@docusaurus/utils-validation': 2.4.0(@docusaurus/types@2.4.0) @@ -2359,7 +2375,7 @@ packages: react-dom: ^16.8.4 || ^17.0.0 dependencies: '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 commander: 5.1.0 joi: 17.9.1 react: 17.0.2 @@ -2452,39 +2468,6 @@ packages: dev: false optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.37.0 - eslint-visitor-keys: 3.4.0 - - /@eslint-community/regexpp@4.4.1: - resolution: {integrity: sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - /@eslint/eslintrc@2.0.2: - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.5.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@eslint/js@8.37.0: - resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@hapi/hoek@9.3.0: resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -2493,8 +2476,8 @@ packages: dependencies: '@hapi/hoek': 9.3.0 - /@headlessui/react@1.7.13(react-dom@17.0.2)(react@17.0.2): - resolution: {integrity: sha512-9n+EQKRtD9266xIHXdY5MfiXPDfYwl7zBM7KOx2Ae3Gdgxy8QML1FkCMjq6AsOf0l6N9uvI4HcFtuFlenaldKg==} + /@headlessui/react@1.7.14(react-dom@17.0.2)(react@17.0.2): + resolution: {integrity: sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==} engines: {node: '>=10'} peerDependencies: react: ^16 || ^17 || ^18 @@ -2505,31 +2488,14 @@ packages: react-dom: 17.0.2(react@17.0.2) dev: false - /@heroicons/react@2.0.17(react@17.0.2): - resolution: {integrity: sha512-90GMZktkA53YbNzHp6asVEDevUQCMtxWH+2UK2S8OpnLEu7qckTJPhNxNQG52xIR1WFTwFqtH6bt7a60ZNcLLA==} + /@heroicons/react@2.0.18(react@17.0.2): + resolution: {integrity: sha512-7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==} peerDependencies: react: '>= 16' dependencies: react: 17.0.2 dev: false - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - /@jest/schemas@29.4.3: resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2544,7 +2510,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.11 + '@types/node': 20.1.3 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: false @@ -2554,16 +2520,16 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.4.15 dev: false - /@jridgewell/gen-mapping@0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} @@ -2576,18 +2542,27 @@ packages: /@jridgewell/source-map@0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} dependencies: - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + /@leichtgewicht/ip-codec@2.0.4: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} dev: false @@ -2630,10 +2605,10 @@ packages: resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} dev: false - /@meshtastic/meshtasticjs@2.1.6-0: - resolution: {integrity: sha512-JJ4tQ418BSRXz+vatKu7bGGiwJBkotF1UN0Zt2Ws01Jk333t3wsNOILhgiuTb5TBKJmSAsw6YjJ/zC7XVPgzYQ==} + /@meshtastic/meshtasticjs@2.1.9-0: + resolution: {integrity: sha512-1Xdpzt9ZgyeVY5sOaDRJ/se4dZfgTRrUg7Xs9fW/+4dIsnIoL2pa/c65p8LkGrvkNZf+FNReTCFre3G+KMDCfw==} dependencies: - '@buf/meshtastic_protobufs.bufbuild_es': 1.2.0-20230328173351-271d1533a896.1(@bufbuild/protobuf@1.2.0) + '@buf/meshtastic_protobufs.bufbuild_es': 1.2.0-20230417204104-5e504ea6e3e3.1(@bufbuild/protobuf@1.2.0) '@bufbuild/protobuf': 1.2.0 crc: 4.3.2 sub-events: 1.9.0 @@ -2711,6 +2686,54 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: false + /@rometools/cli-darwin-arm64@12.0.0: + resolution: {integrity: sha512-kEFCzU6cgy6vfY0mkMzq57ea3srqV5X2wyCAxjVfA2JF7fioq695uWhy7yOCBW+nUUFIz62N9v1nf/aYqX8XkA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-darwin-x64@12.0.0: + resolution: {integrity: sha512-YDevVPKrkRFdjjM/3zOpOWI5mEY2ivjKM2eR8Yqv9xH3SZhyD/t67f/xo7Azp6NkGUVXSnHLGdkmIg+qrYgz5A==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-linux-arm64@12.0.0: + resolution: {integrity: sha512-n2LJg6eAZENUcJF99wjDeqQCr/40IqGUJDbX7NwiU1RvCy+RBZNmhcmSAaKOc6rCoLUcM9W5q+H4jfn4bWfJBA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-linux-x64@12.0.0: + resolution: {integrity: sha512-VuQO4eOrKmfrLrc8KzMaZypz3i1rD9FXRxwOFk6ha16DNHV+17dRQYm7jRZ1p+HrXdjAJYTScxR/E03yGLThlQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-win32-arm64@12.0.0: + resolution: {integrity: sha512-lvOh5/B8YuQdI2ieGJnJ6CUMZxvVwA8+1VDkEZJyl5IEF8AXzbXYx4k6SFA5a79cfXEL9tJuJy0rn+Zs/+1yJQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rometools/cli-win32-x64@12.0.0: + resolution: {integrity: sha512-yTfz71k8+9QIDzglKnMbEMMv1JUk30qfeSomgEUG2v0qDSbSq0Gs1ff0H0dysYOHLvZZmWA3IheOY/SC8fj1nA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@sideway/address@4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -2900,7 +2923,7 @@ packages: defer-to-connect: 1.1.3 dev: false - /@tailwindcss/typography@0.5.9(tailwindcss@3.3.1): + /@tailwindcss/typography@0.5.9(tailwindcss@3.3.2): resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' @@ -2909,7 +2932,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.3.1(postcss@8.4.21) + tailwindcss: 3.3.2 dev: true /@trysound/sax@0.2.0: @@ -2925,26 +2948,26 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/connect-history-api-fallback@1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: '@types/express-serve-static-core': 4.17.33 - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/eslint-scope@3.7.4: @@ -2965,7 +2988,7 @@ packages: /@types/express-serve-static-core@4.17.33: resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: false @@ -2995,7 +3018,7 @@ packages: /@types/http-proxy@1.17.10: resolution: {integrity: sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/istanbul-lib-coverage@2.0.4: @@ -3020,7 +3043,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/mdast@3.0.11: @@ -3037,8 +3060,8 @@ packages: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: false - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + /@types/node@20.1.3: + resolution: {integrity: sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==} /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} @@ -3059,43 +3082,43 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: false - /@types/react-dom@18.0.11: - resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + /@types/react-dom@18.2.4: + resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} dependencies: - '@types/react': 18.0.31 + '@types/react': 18.2.6 dev: true /@types/react-router-config@5.0.6: resolution: {integrity: sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 '@types/react-router': 5.1.20 /@types/react-router-dom@5.3.3: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 '@types/react-router': 5.1.20 /@types/react-router@5.1.20: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.0.31 + '@types/react': 18.2.6 - /@types/react@18.0.31: - resolution: {integrity: sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==} + /@types/react@18.2.6: + resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 - csstype: 3.1.1 + csstype: 3.1.2 /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/retry@0.12.0: @@ -3105,15 +3128,12 @@ packages: /@types/sax@1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - /@types/serve-index@1.9.1: resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} dependencies: @@ -3124,13 +3144,13 @@ packages: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/unist@2.0.6: @@ -3140,7 +3160,7 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 dev: false /@types/yargs-parser@21.0.0: @@ -3153,131 +3173,6 @@ packages: '@types/yargs-parser': 21.0.0 dev: false - /@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.4.1 - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/scope-manager@5.57.0: - resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - - /@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/types@5.57.0: - resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@typescript-eslint/typescript-estree@5.57.0(typescript@5.0.3): - resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - - /@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - eslint: 8.37.0 - eslint-scope: 5.1.1 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - - /@typescript-eslint/visitor-keys@5.57.0: - resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - eslint-visitor-keys: 3.4.0 - /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -3390,13 +3285,6 @@ packages: dependencies: acorn: 8.8.2 - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -3507,6 +3395,7 @@ packages: /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + dev: false /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} @@ -3525,6 +3414,7 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: false /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} @@ -3552,6 +3442,7 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -3564,6 +3455,7 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: false /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -3574,7 +3466,7 @@ packages: engines: {node: '>= 4.0.0'} dev: false - /autoprefixer@10.4.14(postcss@8.4.21): + /autoprefixer@10.4.14(postcss@8.4.23): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3586,7 +3478,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false @@ -3817,6 +3709,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: false /camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} @@ -3865,6 +3758,7 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: false /character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} @@ -4002,6 +3896,7 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: false /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} @@ -4009,6 +3904,7 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false /colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -4237,19 +4133,20 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: false /crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} dev: false - /css-declaration-sorter@6.4.0(postcss@8.4.21): + /css-declaration-sorter@6.4.0(postcss@8.4.23): resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false /css-loader@6.7.3(webpack@5.76.3): @@ -4258,12 +4155,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.21) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.21) - postcss-modules-scope: 3.0.0(postcss@8.4.21) - postcss-modules-values: 4.0.0(postcss@8.4.21) + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.23) + postcss-modules-local-by-default: 4.0.0(postcss@8.4.23) + postcss-modules-scope: 3.0.0(postcss@8.4.23) + postcss-modules-values: 4.0.0(postcss@8.4.23) postcss-value-parser: 4.2.0 semver: 7.3.8 webpack: 5.76.3 @@ -4295,9 +4192,9 @@ packages: optional: true dependencies: clean-css: 5.3.2 - cssnano: 5.1.15(postcss@8.4.21) + cssnano: 5.1.15(postcss@8.4.23) jest-worker: 29.5.0 - postcss: 8.4.21 + postcss: 8.4.23 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 @@ -4342,77 +4239,77 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-advanced@5.3.10(postcss@8.4.21): + /cssnano-preset-advanced@5.3.10(postcss@8.4.23): resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - autoprefixer: 10.4.14(postcss@8.4.21) - cssnano-preset-default: 5.2.14(postcss@8.4.21) - postcss: 8.4.21 - postcss-discard-unused: 5.1.0(postcss@8.4.21) - postcss-merge-idents: 5.1.1(postcss@8.4.21) - postcss-reduce-idents: 5.2.0(postcss@8.4.21) - postcss-zindex: 5.1.0(postcss@8.4.21) + autoprefixer: 10.4.14(postcss@8.4.23) + cssnano-preset-default: 5.2.14(postcss@8.4.23) + postcss: 8.4.23 + postcss-discard-unused: 5.1.0(postcss@8.4.23) + postcss-merge-idents: 5.1.1(postcss@8.4.23) + postcss-reduce-idents: 5.2.0(postcss@8.4.23) + postcss-zindex: 5.1.0(postcss@8.4.23) dev: false - /cssnano-preset-default@5.2.14(postcss@8.4.21): + /cssnano-preset-default@5.2.14(postcss@8.4.23): resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.0(postcss@8.4.21) - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-calc: 8.2.4(postcss@8.4.21) - postcss-colormin: 5.3.1(postcss@8.4.21) - postcss-convert-values: 5.1.3(postcss@8.4.21) - postcss-discard-comments: 5.1.2(postcss@8.4.21) - postcss-discard-duplicates: 5.1.0(postcss@8.4.21) - postcss-discard-empty: 5.1.1(postcss@8.4.21) - postcss-discard-overridden: 5.1.0(postcss@8.4.21) - postcss-merge-longhand: 5.1.7(postcss@8.4.21) - postcss-merge-rules: 5.1.4(postcss@8.4.21) - postcss-minify-font-values: 5.1.0(postcss@8.4.21) - postcss-minify-gradients: 5.1.1(postcss@8.4.21) - postcss-minify-params: 5.1.4(postcss@8.4.21) - postcss-minify-selectors: 5.2.1(postcss@8.4.21) - postcss-normalize-charset: 5.1.0(postcss@8.4.21) - postcss-normalize-display-values: 5.1.0(postcss@8.4.21) - postcss-normalize-positions: 5.1.1(postcss@8.4.21) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.21) - postcss-normalize-string: 5.1.0(postcss@8.4.21) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.21) - postcss-normalize-unicode: 5.1.1(postcss@8.4.21) - postcss-normalize-url: 5.1.0(postcss@8.4.21) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.21) - postcss-ordered-values: 5.1.3(postcss@8.4.21) - postcss-reduce-initial: 5.1.2(postcss@8.4.21) - postcss-reduce-transforms: 5.1.0(postcss@8.4.21) - postcss-svgo: 5.1.0(postcss@8.4.21) - postcss-unique-selectors: 5.1.1(postcss@8.4.21) + css-declaration-sorter: 6.4.0(postcss@8.4.23) + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-calc: 8.2.4(postcss@8.4.23) + postcss-colormin: 5.3.1(postcss@8.4.23) + postcss-convert-values: 5.1.3(postcss@8.4.23) + postcss-discard-comments: 5.1.2(postcss@8.4.23) + postcss-discard-duplicates: 5.1.0(postcss@8.4.23) + postcss-discard-empty: 5.1.1(postcss@8.4.23) + postcss-discard-overridden: 5.1.0(postcss@8.4.23) + postcss-merge-longhand: 5.1.7(postcss@8.4.23) + postcss-merge-rules: 5.1.4(postcss@8.4.23) + postcss-minify-font-values: 5.1.0(postcss@8.4.23) + postcss-minify-gradients: 5.1.1(postcss@8.4.23) + postcss-minify-params: 5.1.4(postcss@8.4.23) + postcss-minify-selectors: 5.2.1(postcss@8.4.23) + postcss-normalize-charset: 5.1.0(postcss@8.4.23) + postcss-normalize-display-values: 5.1.0(postcss@8.4.23) + postcss-normalize-positions: 5.1.1(postcss@8.4.23) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.23) + postcss-normalize-string: 5.1.0(postcss@8.4.23) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.23) + postcss-normalize-unicode: 5.1.1(postcss@8.4.23) + postcss-normalize-url: 5.1.0(postcss@8.4.23) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.23) + postcss-ordered-values: 5.1.3(postcss@8.4.23) + postcss-reduce-initial: 5.1.2(postcss@8.4.23) + postcss-reduce-transforms: 5.1.0(postcss@8.4.23) + postcss-svgo: 5.1.0(postcss@8.4.23) + postcss-unique-selectors: 5.1.1(postcss@8.4.23) dev: false - /cssnano-utils@3.1.0(postcss@8.4.21): + /cssnano-utils@3.1.0(postcss@8.4.23): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /cssnano@5.1.15(postcss@8.4.21): + /cssnano@5.1.15(postcss@8.4.23): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.21) + cssnano-preset-default: 5.2.14(postcss@8.4.23) lilconfig: 2.1.0 - postcss: 8.4.21 + postcss: 8.4.23 yaml: 1.10.2 dev: false @@ -4423,8 +4320,8 @@ packages: css-tree: 1.1.3 dev: false - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} /cytoscape-cose-bilkent@4.1.0(cytoscape@3.23.0): resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} @@ -4732,6 +4629,7 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: false /decompress-response@3.3.0: resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} @@ -4745,9 +4643,6 @@ packages: engines: {node: '>=4.0.0'} dev: false - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4851,6 +4746,7 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: false /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -4866,12 +4762,6 @@ packages: '@leichtgewicht/ip-codec': 2.0.4 dev: false - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - /dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: @@ -5048,6 +4938,7 @@ packages: /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: false /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -5056,85 +4947,12 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /eslint@8.37.0: - resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@eslint-community/regexpp': 4.4.1 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.37.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.4.0 - 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 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - /espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: false - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -5152,6 +4970,7 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: false /eta@2.0.1: resolution: {integrity: sha512-46E2qDPDm7QA+usjffUWz9KfXsxVZclPOuKsXs4ZWZdI/X1wpDF7AO424pt7fdYohCzWsIkXAhNGXSlwo5naAg==} @@ -5167,7 +4986,7 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 require-like: 0.1.2 dev: false @@ -5260,9 +5079,6 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: @@ -5314,12 +5130,6 @@ packages: xml-js: 1.6.11 dev: false - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.76.3): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -5387,16 +5197,7 @@ packages: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: false /flux@4.0.4(react@17.0.2): resolution: {integrity: sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==} @@ -5420,7 +5221,7 @@ packages: optional: true dev: false - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.37.0)(typescript@5.0.3)(webpack@5.76.3): + /fork-ts-checker-webpack-plugin@6.5.3(typescript@5.0.4)(webpack@5.76.3): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -5440,7 +5241,6 @@ packages: chokidar: 3.5.3 cosmiconfig: 6.0.0 deepmerge: 4.3.1 - eslint: 8.37.0 fs-extra: 9.1.0 glob: 7.2.3 memfs: 3.4.13 @@ -5448,7 +5248,7 @@ packages: schema-utils: 2.7.0 semver: 7.3.8 tapable: 1.1.3 - typescript: 5.0.3 + typescript: 5.0.4 webpack: 5.76.3 dev: false @@ -5600,6 +5400,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: false /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -5629,12 +5430,6 @@ packages: engines: {node: '>=4'} dev: false - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -5645,6 +5440,7 @@ packages: ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 + dev: false /globby@13.1.3: resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} @@ -5679,9 +5475,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -5976,18 +5769,19 @@ packages: safer-buffer: 2.1.2 dev: false - /icss-utils@5.1.0(postcss@8.4.21): + /icss-utils@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} + dev: false /image-size@1.0.2: resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} @@ -6007,6 +5801,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: false /import-lazy@2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} @@ -6016,6 +5811,7 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: false /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -6111,8 +5907,8 @@ packages: ci-info: 2.0.0 dev: false - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: has: 1.0.3 @@ -6185,6 +5981,7 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + dev: false /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} @@ -6250,6 +6047,7 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false /isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} @@ -6260,7 +6058,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.11 + '@types/node': 20.1.3 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -6271,7 +6069,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6279,7 +6077,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.15.11 + '@types/node': 20.1.3 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6298,9 +6096,6 @@ packages: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - /js-sdsl@4.4.0: - resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6317,6 +6112,7 @@ packages: hasBin: true dependencies: argparse: 2.0.1 + dev: false /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} @@ -6343,9 +6139,6 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: false - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -6411,13 +6204,6 @@ packages: engines: {node: '>=6'} dev: false - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -6463,6 +6249,7 @@ packages: engines: {node: '>=10'} dependencies: p-locate: 5.0.0 + dev: false /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} @@ -6494,6 +6281,7 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -6536,6 +6324,7 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: false /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -6713,6 +6502,7 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: false /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6738,13 +6528,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: false - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -6895,17 +6678,6 @@ packages: hasBin: true dev: false - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - /p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} @@ -6923,6 +6695,7 @@ packages: engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: false /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} @@ -6943,6 +6716,7 @@ packages: engines: {node: '>=10'} dependencies: p-limit: 3.1.0 + dev: false /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} @@ -6986,6 +6760,7 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: false /parse-entities@2.0.0: resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} @@ -7049,6 +6824,7 @@ packages: /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + dev: false /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -7061,6 +6837,7 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: false /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -7082,6 +6859,7 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: false /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -7121,17 +6899,17 @@ packages: tslib: 2.5.0 dev: false - /postcss-calc@8.2.4(postcss@8.4.21): + /postcss-calc@8.2.4(postcss@8.4.23): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@5.3.1(postcss@8.4.21): + /postcss-colormin@5.3.1(postcss@8.4.23): resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -7140,90 +6918,90 @@ packages: browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@5.1.3(postcss@8.4.21): + /postcss-convert-values@5.1.3(postcss@8.4.23): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.21): + /postcss-discard-comments@5.1.2(postcss@8.4.23): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.21): + /postcss-discard-duplicates@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.21): + /postcss-discard-empty@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.21): + /postcss-discard-overridden@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-discard-unused@5.1.0(postcss@8.4.21): + /postcss-discard-unused@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false - /postcss-import@14.1.0(postcss@8.4.21): - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} + /postcss-import@15.1.0(postcss@8.4.23): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.2 - /postcss-js@4.0.1(postcss@8.4.21): + /postcss-js@4.0.1(postcss@8.4.23): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.21 + postcss: 8.4.23 - /postcss-load-config@3.1.4(postcss@8.4.21): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-load-config@4.0.1(postcss@8.4.23): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -7234,10 +7012,10 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.21 - yaml: 1.10.2 + postcss: 8.4.23 + yaml: 2.2.2 - /postcss-loader@7.1.0(postcss@8.4.21)(webpack@5.76.3): + /postcss-loader@7.1.0(postcss@8.4.23)(webpack@5.76.3): resolution: {integrity: sha512-vTD2DJ8vJD0Vr1WzMQkRZWRjcynGh3t7NeoLg+Sb1TeuK7etiZfL/ZwHbaVa3M+Qni7Lj/29voV9IggnIUjlIw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7246,34 +7024,34 @@ packages: dependencies: cosmiconfig: 8.1.3 klona: 2.0.6 - postcss: 8.4.21 + postcss: 8.4.23 semver: 7.3.8 webpack: 5.76.3 dev: false - /postcss-merge-idents@5.1.1(postcss@8.4.21): + /postcss-merge-idents@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.21): + /postcss-merge-longhand@5.1.7(postcss@8.4.23): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.21) + stylehacks: 5.1.1(postcss@8.4.23) dev: false - /postcss-merge-rules@5.1.4(postcss@8.4.21): + /postcss-merge-rules@5.1.4(postcss@8.4.23): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -7281,218 +7059,218 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.21): + /postcss-minify-font-values@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.21): + /postcss-minify-gradients@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@5.1.4(postcss@8.4.21): + /postcss-minify-params@5.1.4(postcss@8.4.23): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.21): + /postcss-minify-selectors@5.2.1(postcss@8.4.23): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.23): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-modules-local-by-default@4.0.0(postcss@8.4.21): + /postcss-modules-local-by-default@4.0.0(postcss@8.4.23): resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.21): + /postcss-modules-scope@3.0.0(postcss@8.4.23): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.21): + /postcss-modules-values@4.0.0(postcss@8.4.23): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 dev: false - /postcss-nested@6.0.0(postcss@8.4.21): - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + /postcss-nested@6.0.1(postcss@8.4.23): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 - /postcss-normalize-charset@5.1.0(postcss@8.4.21): + /postcss-normalize-charset@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.21): + /postcss-normalize-display-values@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.21): + /postcss-normalize-positions@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.21): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.21): + /postcss-normalize-string@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.21): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.21): + /postcss-normalize-unicode@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.21): + /postcss-normalize-url@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.21): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.21): + /postcss-ordered-values@5.1.3(postcss@8.4.23): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 3.1.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-idents@5.2.0(postcss@8.4.21): + /postcss-reduce-idents@5.2.0(postcss@8.4.23): resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@5.1.2(postcss@8.4.21): + /postcss-reduce-initial@5.1.2(postcss@8.4.23): resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -7500,16 +7278,16 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.21): + /postcss-reduce-transforms@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false @@ -7521,68 +7299,64 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + /postcss-selector-parser@6.0.12: + resolution: {integrity: sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-sort-media-queries@4.3.0(postcss@8.4.21): + /postcss-sort-media-queries@4.3.0(postcss@8.4.23): resolution: {integrity: sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.4.16 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 sort-css-media-queries: 2.1.0 dev: false - /postcss-svgo@5.1.0(postcss@8.4.21): + /postcss-svgo@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.21): + /postcss-unique-selectors@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss-zindex@5.1.0(postcss@8.4.21): + /postcss-zindex@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 dev: false - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss@8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} engines: {node: '>=4'} @@ -7694,10 +7468,6 @@ packages: inherits: 2.0.4 dev: false - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -7742,7 +7512,7 @@ packages: pure-color: 1.3.0 dev: false - /react-dev-utils@12.0.1(eslint@8.37.0)(typescript@5.0.3)(webpack@5.76.3): + /react-dev-utils@12.0.1(typescript@5.0.4)(webpack@5.76.3): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -7761,7 +7531,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.37.0)(typescript@5.0.3)(webpack@5.76.3) + fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.0.4)(webpack@5.76.3) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -7776,7 +7546,7 @@ packages: shell-quote: 1.8.0 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.0.3 + typescript: 5.0.4 webpack: 5.76.3 transitivePeerDependencies: - eslint @@ -7833,7 +7603,7 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - /react-json-view@1.21.3(@types/react@18.0.31)(react-dom@17.0.2)(react@17.0.2): + /react-json-view@1.21.3(@types/react@18.2.6)(react-dom@17.0.2)(react@17.0.2): resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==} peerDependencies: react: ^17.0.0 || ^16.3.0 || ^15.5.4 @@ -7844,7 +7614,7 @@ packages: react-base16-styling: 0.6.0 react-dom: 17.0.2(react@17.0.2) react-lifecycles-compat: 3.0.4 - react-textarea-autosize: 8.4.1(@types/react@18.0.31)(react@17.0.2) + react-textarea-autosize: 8.4.1(@types/react@18.2.6)(react@17.0.2) transitivePeerDependencies: - '@types/react' - encoding @@ -7917,7 +7687,7 @@ packages: tiny-warning: 1.0.3 dev: false - /react-textarea-autosize@8.4.1(@types/react@18.0.31)(react@17.0.2): + /react-textarea-autosize@8.4.1(@types/react@18.2.6)(react@17.0.2): resolution: {integrity: sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==} engines: {node: '>=10'} peerDependencies: @@ -7926,7 +7696,7 @@ packages: '@babel/runtime': 7.21.0 react: 17.0.2 use-composed-ref: 1.3.0(react@17.0.2) - use-latest: 1.2.1(@types/react@18.0.31)(react@17.0.2) + use-latest: 1.2.1(@types/react@18.2.6)(react@17.0.2) transitivePeerDependencies: - '@types/react' dev: false @@ -7978,7 +7748,7 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: - resolve: 1.22.1 + resolve: 1.22.2 dev: false /recursive-readdir@2.2.3: @@ -8131,16 +7901,17 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: false /resolve-pathname@3.0.0: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} dev: false - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.12.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -8164,11 +7935,26 @@ packages: hasBin: true dependencies: glob: 7.2.3 + dev: false /robust-predicates@3.0.1: resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==} dev: false + /rome@12.0.0: + resolution: {integrity: sha512-w/tLvLj5PGUCx3R+Kna08BMq4zL83Xzh9spvrqoWa3Nkzk16SkD8JSpyWWP9WhI2r3qv3Xvc7FnYZ4QDnjAiYg==} + engines: {node: '>=14.*'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@rometools/cli-darwin-arm64': 12.0.0 + '@rometools/cli-darwin-x64': 12.0.0 + '@rometools/cli-linux-arm64': 12.0.0 + '@rometools/cli-linux-x64': 12.0.0 + '@rometools/cli-win32-arm64': 12.0.0 + '@rometools/cli-win32-x64': 12.0.0 + dev: true + /rtl-detect@1.0.4: resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==} dev: false @@ -8179,7 +7965,7 @@ packages: dependencies: find-up: 5.0.0 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.23 strip-json-comments: 3.1.1 dev: false @@ -8297,6 +8083,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: false /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -8390,10 +8177,12 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: false /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: false /shell-quote@1.8.0: resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} @@ -8448,6 +8237,7 @@ packages: /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + dev: false /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -8587,6 +8377,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: false /strip-ansi@7.0.1: resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} @@ -8613,6 +8404,7 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: false /style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} @@ -8627,15 +8419,15 @@ packages: tslib: 2.5.0 dev: false - /stylehacks@5.1.1(postcss@8.4.21): + /stylehacks@5.1.1(postcss@8.4.23): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 dev: false /stylis@4.1.3: @@ -8647,11 +8439,12 @@ packages: engines: {node: '>=10.0.0'} dev: false - /sucrase@3.31.0: - resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} + /sucrase@3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} hasBin: true dependencies: + '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -8671,6 +8464,7 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: false /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} @@ -8700,9 +8494,8 @@ packages: stable: 0.1.8 dev: false - /swr@2.1.1(react@17.0.2): - resolution: {integrity: sha512-OgwqZmpjOgxNbaez6qzTVqiRWn+Ti5Uzmktk2c01Afqwc50q6z15DeNC8m9G1aY+w2BwEAsKvk59iq6aHlhgyw==} - engines: {pnpm: '7'} + /swr@2.1.5(react@17.0.2): + resolution: {integrity: sha512-/OhfZMcEpuz77KavXST5q6XE9nrOBOVcBLWjMT+oAE/kQHyE3PASrevXCtQDZ8aamntOfFkbVJp7Il9tNBQWrw==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: @@ -8710,16 +8503,14 @@ packages: use-sync-external-store: 1.2.0(react@17.0.2) dev: false - /tailwindcss@3.3.1(postcss@8.4.21): - resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==} - engines: {node: '>=12.13.0'} + /tailwindcss@3.3.2: + resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + engines: {node: '>=14.0.0'} hasBin: true - peerDependencies: - postcss: ^8.0.9 dependencies: + '@alloc/quick-lru': 5.2.0 arg: 5.0.2 chokidar: 3.5.3 - color-name: 1.1.4 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.2.12 @@ -8731,16 +8522,15 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0(postcss@8.4.21) - postcss-js: 4.0.1(postcss@8.4.21) - postcss-load-config: 3.1.4(postcss@8.4.21) - postcss-nested: 6.0.0(postcss@8.4.21) - postcss-selector-parser: 6.0.11 + postcss: 8.4.23 + postcss-import: 15.1.0(postcss@8.4.23) + postcss-js: 4.0.1(postcss@8.4.23) + postcss-load-config: 4.0.1(postcss@8.4.23) + postcss-nested: 6.0.1(postcss@8.4.23) + postcss-selector-parser: 6.0.12 postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 - sucrase: 3.31.0 + resolve: 1.22.2 + sucrase: 3.32.0 transitivePeerDependencies: - ts-node @@ -8788,6 +8578,7 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -8863,35 +8654,19 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib@2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: false /tslog@4.8.2: resolution: {integrity: sha512-eAKIRjxfSKYLs06r1wT7oou6Uv9VN6NW9g0JPidBlqQwPBBl5+84dm7r8zSOPVq1kyfEw1P6B3/FLSpZCorAgA==} engines: {node: '>=16'} dev: false - /tsutils@3.21.0(typescript@5.0.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.0.3 - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: false /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} @@ -8912,8 +8687,8 @@ packages: is-typedarray: 1.0.0 dev: false - /typescript@5.0.3: - resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} hasBin: true @@ -9123,7 +8898,7 @@ packages: react: 17.0.2 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.31)(react@17.0.2): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.6)(react@17.0.2): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -9132,11 +8907,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.2.6 react: 17.0.2 dev: false - /use-latest@1.2.1(@types/react@18.0.31)(react@17.0.2): + /use-latest@1.2.1(@types/react@18.2.6)(react@17.0.2): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -9145,9 +8920,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.2.6 react: 17.0.2 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.31)(react@17.0.2) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.6)(react@17.0.2) dev: false /use-sync-external-store@1.2.0(react@17.0.2): @@ -9434,6 +9209,7 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: false /widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} @@ -9452,10 +9228,6 @@ packages: /wildcard@2.0.0: resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -9535,14 +9307,21 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + dev: false + + /yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + dev: false /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} diff --git a/sidebars.js b/sidebars.js index c0509e2f..bad0a43f 100644 --- a/sidebars.js +++ b/sidebars.js @@ -2,10 +2,10 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ module.exports = { - Sidebar: [ - { - type: "autogenerated", - dirName: "." - } - ] + Sidebar: [ + { + type: "autogenerated", + dirName: ".", + }, + ], }; diff --git a/src/components/BatteryCalculator.tsx b/src/components/BatteryCalculator.tsx index 5a8226a2..d83399c4 100644 --- a/src/components/BatteryCalculator.tsx +++ b/src/components/BatteryCalculator.tsx @@ -1,25 +1,27 @@ import React from "react"; export const BatteryCalculator = (): JSX.Element => { - return ( -
-
-

Battery Calculator

-
-
-
- - - - -
-
-
-
- -
-
- ); + return ( +
+
+

Battery Calculator

+
+
+
+ + + + +
+
+
+ +
+
+ ); }; diff --git a/src/components/Button.tsx b/src/components/Button.tsx index bb469daf..798f9fe2 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -3,14 +3,14 @@ import React from "react"; import { HTMLMotionProps, motion } from "framer-motion"; export const Button = ({ children, ...props }: HTMLMotionProps<"div">) => { - return ( - -
{children}
-
- ); + return ( + +
{children}
+
+ ); }; diff --git a/src/components/ColorMode.tsx b/src/components/ColorMode.tsx index ae020458..c7d651ad 100644 --- a/src/components/ColorMode.tsx +++ b/src/components/ColorMode.tsx @@ -1,13 +1,13 @@ import React from "react"; export interface ColorModeProps { - children: React.ReactNode; + children: React.ReactNode; } export const Dark = ({ children }: ColorModeProps): JSX.Element => { - return
{children}
; + return
{children}
; }; export const Light = ({ children }: ColorModeProps): JSX.Element => { - return
{children}
; + return
{children}
; }; diff --git a/src/components/Modal.tsx b/src/components/Modal.tsx index 2b04622e..11e7ee2c 100644 --- a/src/components/Modal.tsx +++ b/src/components/Modal.tsx @@ -5,45 +5,45 @@ import { AnimatePresence, motion } from "framer-motion"; import { Dialog } from "@headlessui/react"; export interface ModalProps { - open: boolean; - onClose: () => void; - children: React.ReactNode; + open: boolean; + onClose: () => void; + children: React.ReactNode; } export const Modal = ({ open, onClose, children }: ModalProps): JSX.Element => { - return ( - - -
- - - + return ( + + +
+ + + - -
-
-
-
- {children} -
-
-
-
-
-
- ); + +
+
+
+
+ {children} +
+
+
+
+
+
+ ); }; diff --git a/src/components/PageLayout.tsx b/src/components/PageLayout.tsx index f53fdfbf..f1f3ecb5 100644 --- a/src/components/PageLayout.tsx +++ b/src/components/PageLayout.tsx @@ -3,23 +3,23 @@ import React from "react"; import Layout from "@theme/Layout"; export interface PageLayoutProps { - title: string; - description: string; - children: React.ReactNode; + title: string; + description: string; + children: React.ReactNode; } export const PageLayout = ({ - title, - description, - children + title, + description, + children, }: PageLayoutProps): JSX.Element => { - return ( - - {children} - - ); + return ( + + {children} + + ); }; export interface ColorModeProps { - children: React.ReactNode; + children: React.ReactNode; } diff --git a/src/components/hardware/Badge.tsx b/src/components/hardware/Badge.tsx index ee5d54b6..a12a7c3e 100644 --- a/src/components/hardware/Badge.tsx +++ b/src/components/hardware/Badge.tsx @@ -1,18 +1,18 @@ import React from "react"; export interface BadgeProps { - name: string; - color: string; - icon: React.ReactNode; + name: string; + color: string; + icon: React.ReactNode; } export const Badge = ({ name, color, icon }: BadgeProps): JSX.Element => { - return ( -
-
{icon}
- {name} -
- ); + return ( +
+
{icon}
+ {name} +
+ ); }; diff --git a/src/components/hardware/CardTab.tsx b/src/components/hardware/CardTab.tsx index 244befd4..6b20e2e2 100644 --- a/src/components/hardware/CardTab.tsx +++ b/src/components/hardware/CardTab.tsx @@ -3,19 +3,19 @@ import React from "react"; import { Tab } from "@headlessui/react"; export interface CardTabProps { - title: string; + title: string; } export const CardTab = ({ title }: CardTabProps): JSX.Element => { - return ( - - `w-1/3 truncate rounded-md px-3 py-2 text-sm font-medium hover:bg-tertiary ${ - selected ? "bg-secondary shadow-md" : "" - }` - } - > - {title} - - ); + return ( + + `w-1/3 truncate rounded-md px-3 py-2 text-sm font-medium hover:bg-tertiary ${ + selected ? "bg-secondary shadow-md" : "" + }` + } + > + {title} + + ); }; diff --git a/src/components/hardware/HardwareCard.tsx b/src/components/hardware/HardwareCard.tsx index f7bdbbf0..c5261b24 100644 --- a/src/components/hardware/HardwareCard.tsx +++ b/src/components/hardware/HardwareCard.tsx @@ -1,58 +1,61 @@ import React from "react"; -import { IDevice, Stability } from "@site/src/data/device"; +import { IDevice, Stability } from "../../data/device"; export interface HardwareCardProps { - device: IDevice; - setDevice: () => void; + device: IDevice; + setDevice: () => void; } export const HardwareCard = ({ - device, - setDevice + device, + setDevice, }: HardwareCardProps): JSX.Element => { - return ( -
  • { - setDevice(); - }} - > -
    -
    - -
    - -
    -
    -
    -

    - {device.name} -

    -

    -

    -
    {Stability[device.misc.Stability]}
    -

    -
    -
    -
  • - ); + return ( +
  • { + setDevice(); + }} + onKeyDown={() => { + setDevice(); + }} + > +
    +
    + +
    + +
    +
    +
    +

    + {device.name} +

    +

    +

    +
    {Stability[device.misc.Stability]}
    +

    +
    +
    +
  • + ); }; diff --git a/src/components/hardware/HardwareModal.tsx b/src/components/hardware/HardwareModal.tsx index 28584bf2..d00c169e 100644 --- a/src/components/hardware/HardwareModal.tsx +++ b/src/components/hardware/HardwareModal.tsx @@ -5,7 +5,7 @@ import { FiBluetooth, FiChevronRight, FiWifi, FiX } from "react-icons/fi"; import { useBreakpoint } from "use-breakpoint"; import { Tab } from "@headlessui/react"; -import type { IDevice } from "@site/src/data/device"; +import type { IDevice } from "../../data/device"; import { Button } from "../../components/Button"; import { BREAKPOINTS } from "../../utils/breakpoints"; @@ -18,156 +18,156 @@ import { PowerTab } from "./Tabs/PowerTab"; import { VariantSelectButton } from "./VariantSelectButton"; export interface HardwareModal { - device: IDevice; - open: boolean; - close: () => void; + device: IDevice; + open: boolean; + close: () => void; } export const HardwareModal = ({ - device, - open, - close + device, + open, + close, }: HardwareModal): JSX.Element => { - const [hideDetails, setHideDetails] = useState(false); - const { breakpoint } = useBreakpoint(BREAKPOINTS, "md"); + const [hideDetails, setHideDetails] = useState(false); + const { breakpoint } = useBreakpoint(BREAKPOINTS, "md"); - return ( - -
    - -
    -
    - - - -
    - -
    - - {!hideDetails && ( - <> - - - - -
    - {device.features.BLE && ( - } - /> - )} - {device.features.WiFi && ( - } - /> - )} -
    -
    - - )} -
    -
    -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - -
    -
    - - ); + return ( + +
    + +
    +
    + + + +
    + +
    + + {!hideDetails && ( + <> + + + + +
    + {device.features.BLE && ( + } + /> + )} + {device.features.WiFi && ( + } + /> + )} +
    +
    + + )} +
    +
    +
    + +
    +
    +
    + +
    +
    + + + + + + + + + + + + +
    +
    + + ); }; diff --git a/src/components/hardware/Tabs/InfoTab.tsx b/src/components/hardware/Tabs/InfoTab.tsx index 6b8c212f..7878667e 100644 --- a/src/components/hardware/Tabs/InfoTab.tsx +++ b/src/components/hardware/Tabs/InfoTab.tsx @@ -5,44 +5,44 @@ import { Tab } from "@headlessui/react"; import type { IDevice } from "../../../data/device"; export interface InfoTabProps { - device: IDevice; + device: IDevice; } export const InfoTab = ({ device }: InfoTabProps): JSX.Element => { - return ( - -
    -
    -
    -
    - BLE/WiFi Version -
    -
    - - {device.specifications.BLEVersion} - - / - - {device.specifications.WiFiVersion} - -
    -
    -
    -
    - BLE/WiFi Antenna -
    -
    - - {device.specifications.BLEAntenna} - - / - - {device.specifications.WiFiAntenna} - -
    -
    -
    -
    -
    - ); + return ( + +
    +
    +
    +
    + BLE/WiFi Version +
    +
    + + {device.specifications.BLEVersion} + + / + + {device.specifications.WiFiVersion} + +
    +
    +
    +
    + BLE/WiFi Antenna +
    +
    + + {device.specifications.BLEAntenna} + + / + + {device.specifications.WiFiAntenna} + +
    +
    +
    +
    +
    + ); }; diff --git a/src/components/hardware/Tabs/PinoutTab.tsx b/src/components/hardware/Tabs/PinoutTab.tsx index 19a984c4..32d4b35b 100644 --- a/src/components/hardware/Tabs/PinoutTab.tsx +++ b/src/components/hardware/Tabs/PinoutTab.tsx @@ -5,32 +5,32 @@ import { Tab } from "@headlessui/react"; import type { IDevice } from "../../../data/device"; export interface PinoutTabProps { - device: IDevice; + device: IDevice; } export const PinoutTab = ({ device }: PinoutTabProps): JSX.Element => { - return ( - -
    - {[ - device.pinout.slice(0, device.misc.pinoutSplit), - device.pinout.slice(device.misc.pinoutSplit, device.pinout.length) - ].map((group, index) => ( -
    - {group.map((pin, pinIndex) => ( -
    -
    - {pin.label} -
    - ))} -
    - ))} -
    - - ); + return ( + +
    + {[ + device.pinout.slice(0, device.misc.pinoutSplit), + device.pinout.slice(device.misc.pinoutSplit, device.pinout.length), + ].map((group, index) => ( +
    + {group.map((pin, pinIndex) => ( +
    +
    + {pin.label} +
    + ))} +
    + ))} +
    + + ); }; diff --git a/src/components/hardware/Tabs/PowerTab.tsx b/src/components/hardware/Tabs/PowerTab.tsx index 8f4ec10c..aa33fe94 100644 --- a/src/components/hardware/Tabs/PowerTab.tsx +++ b/src/components/hardware/Tabs/PowerTab.tsx @@ -5,9 +5,9 @@ import { Tab } from "@headlessui/react"; import type { IDevice } from "../../../data/device"; export interface PowerTabProps { - device: IDevice; + device: IDevice; } export const PowerTab = (): JSX.Element => { - return Content 1; + return Content 1; }; diff --git a/src/components/hardware/VariantSelectButton.tsx b/src/components/hardware/VariantSelectButton.tsx index a29c56cb..ebb4eed8 100644 --- a/src/components/hardware/VariantSelectButton.tsx +++ b/src/components/hardware/VariantSelectButton.tsx @@ -5,84 +5,84 @@ import { FiCheck } from "react-icons/fi"; import { HiSelector } from "react-icons/hi"; import { Listbox, Transition } from "@headlessui/react"; -import type { Variant } from "@site/src/data/device.js"; +import type { Variant } from "../../data/device"; export interface VariantSelectButtonProps { - options: Variant[]; + options: Variant[]; } export const VariantSelectButton = ({ - options + options, }: VariantSelectButtonProps): JSX.Element => { - const [selected, setSelected] = useState(options[options.length - 1]); + const [selected, setSelected] = useState(options[options.length - 1]); - return ( - - {({ open }) => ( - <> -
    - - - {selected.name} - - - - + return ( + + {({ open }) => ( + <> +
    + + + {selected.name} + + + + - - - {options.map((variant, index) => ( - - `relative cursor-default select-none py-2 pl-3 pr-9 ${ - active ? "bg-secondary" : "" - }` - } - value={variant} - > - {({ selected, active }) => ( - <> - - {variant.name} - + + + {options.map((variant, index) => ( + + `relative cursor-default select-none py-2 pl-3 pr-9 ${ + active ? "bg-secondary" : "" + }` + } + value={variant} + > + {({ selected, active }) => ( + <> + + {variant.name} + - {selected ? ( - - - ) : null} - - )} - - ))} - - -
    - - )} -
    - ); + {selected ? ( + + + ) : null} + + )} + + ))} + + +
    + + )} +
    + ); }; diff --git a/src/components/homepage/SocialCard.tsx b/src/components/homepage/SocialCard.tsx index ba9cae3a..310b68d2 100644 --- a/src/components/homepage/SocialCard.tsx +++ b/src/components/homepage/SocialCard.tsx @@ -3,29 +3,29 @@ import React from "react"; import { FiExternalLink } from "react-icons/fi"; export interface SocialCardProps { - children: React.ReactNode; - color: string; - link: string; + children: React.ReactNode; + color: string; + link: string; } export const SocialCard = ({ - children, - color, - link + children, + color, + link, }: SocialCardProps): JSX.Element => { - return ( -
    - {children} - - - -
    - ); + return ( +
    + {children} + + + +
    + ); }; diff --git a/src/data/device.ts b/src/data/device.ts index 548aae5b..590abcd2 100644 --- a/src/data/device.ts +++ b/src/data/device.ts @@ -1,28 +1,28 @@ export type DeepPartial = T extends object - ? { - [P in keyof T]?: DeepPartial; - } - : T; + ? { + [P in keyof T]?: DeepPartial; + } + : T; export enum UseCase { - Solar, - Router, - Portable + Solar = 0, + Router = 1, + Portable = 2, } enum PinUsage { - LoRa, - GNSS + LoRa = 0, + GNSS = 1, } export interface Pin { - offset: { - x: number; - y: number; - }; - name: string; - label: string; - usage?: PinUsage; + offset: { + x: number; + y: number; + }; + name: string; + label: string; + usage?: PinUsage; } export type DeviceName = "tbeam" | "techo"; @@ -44,51 +44,51 @@ export type LORAModule = "SX1276" | "SX1262"; export type Variant = DeepPartial> & { name: string }; export enum Stability { - Stable, - Semi, - Unstable, - Broken + Stable = 0, + Semi = 1, + Unstable = 2, + Broken = 3, } export type Module = - | "cannedMessage" - | "externalNotification" - | "rangeTest" - | "rotaryEncoder" - | "storeAndForward" - | "telemetry"; + | "cannedMessage" + | "externalNotification" + | "rangeTest" + | "rotaryEncoder" + | "storeAndForward" + | "telemetry"; export interface IDevice { - name: string; - misc: { - SuggestedUse: UseCase[]; - Stability: Stability; - Gradient: string; - pinoutSplit: number; - }; - images: { - Front: string; - Back: string; - }; - features: { - BLE: boolean; - WiFi: boolean; - Modules: Module[]; - }; - specifications: { - BLEVersion?: BLEVersion; - BLEAntenna?: AntennaType; - WiFiVersion?: string; - WiFiAntenna?: AntennaType; - Chipset: Chipset; - Driver: SerialAdapter; - GNSS?: GNSSModule; - FlashSize: number; - Frequencies: Frequency[]; - LoRa: LORAModule; - PSRAM: number; - RAM?: number; - }; - pinout: Pin[]; - variants: Variant[]; + name: string; + misc: { + SuggestedUse: UseCase[]; + Stability: Stability; + Gradient: string; + pinoutSplit: number; + }; + images: { + Front: string; + Back: string; + }; + features: { + BLE: boolean; + WiFi: boolean; + Modules: Module[]; + }; + specifications: { + BLEVersion?: BLEVersion; + BLEAntenna?: AntennaType; + WiFiVersion?: string; + WiFiAntenna?: AntennaType; + Chipset: Chipset; + Driver: SerialAdapter; + GNSS?: GNSSModule; + FlashSize: number; + Frequencies: Frequency[]; + LoRa: LORAModule; + PSRAM: number; + RAM?: number; + }; + pinout: Pin[]; + variants: Variant[]; } diff --git a/src/data/devices/heltec.ts b/src/data/devices/heltec.ts index 8ab4e35e..6a241cee 100644 --- a/src/data/devices/heltec.ts +++ b/src/data/devices/heltec.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const heltec: IDevice = { - name: "Heltec", - misc: { - Stability: Stability.Unstable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-pink-300 via-purple-300 to-indigo-400" - }, - images: { - Front: "/img/hardware/heltec-v2.png", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "Heltec", + misc: { + Stability: Stability.Unstable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-pink-300 via-purple-300 to-indigo-400", + }, + images: { + Front: "/img/hardware/heltec-v2.png", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/devices/hydra.ts b/src/data/devices/hydra.ts index cfd5d91e..438eae90 100644 --- a/src/data/devices/hydra.ts +++ b/src/data/devices/hydra.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const hydra: IDevice = { - name: "Hydra", - misc: { - Stability: Stability.Stable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-indigo-200 via-red-200 to-yellow-100" - }, - images: { - Front: "/img/hardware/Hydra-PCB.2.1.svg", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "Hydra", + misc: { + Stability: Stability.Stable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-indigo-200 via-red-200 to-yellow-100", + }, + images: { + Front: "/img/hardware/Hydra-PCB.2.1.svg", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/devices/nano_g1.ts b/src/data/devices/nano_g1.ts index e8968884..02edcfd9 100644 --- a/src/data/devices/nano_g1.ts +++ b/src/data/devices/nano_g1.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const nano_g1: IDevice = { - name: "Nano G1", - misc: { - Stability: Stability.Unstable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-green-200 to-green-500" - }, - images: { - Front: "/img/hardware/nano_g1_front.svg", - Back: "/img/hardware/nano_g1_back.svg" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "Nano G1", + misc: { + Stability: Stability.Unstable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-green-200 to-green-500", + }, + images: { + Front: "/img/hardware/nano_g1_front.svg", + Back: "/img/hardware/nano_g1_back.svg", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/devices/rak19001.ts b/src/data/devices/rak19001.ts index 58ea9104..48100e5a 100644 --- a/src/data/devices/rak19001.ts +++ b/src/data/devices/rak19001.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const rak19001: IDevice = { - name: "WisBlock 19001", - misc: { - Stability: Stability.Stable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-indigo-300 to-purple-400" - }, - images: { - Front: "/img/hardware/rak/RAK19001.png", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "WisBlock 19001", + misc: { + Stability: Stability.Stable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-indigo-300 to-purple-400", + }, + images: { + Front: "/img/hardware/rak/RAK19001.png", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/devices/rak19003.ts b/src/data/devices/rak19003.ts index a5ed7d51..fc88835e 100644 --- a/src/data/devices/rak19003.ts +++ b/src/data/devices/rak19003.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const rak19003: IDevice = { - name: "WisBlock 19003", - misc: { - Stability: Stability.Stable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-b from-orange-500 to-yellow-300" - }, - images: { - Front: "/img/hardware/rak/RAK19003.png", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "WisBlock 19003", + misc: { + Stability: Stability.Stable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-b from-orange-500 to-yellow-300", + }, + images: { + Front: "/img/hardware/rak/RAK19003.png", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/devices/tbeam.ts b/src/data/devices/tbeam.ts index 32f2eb21..f74d19ed 100644 --- a/src/data/devices/tbeam.ts +++ b/src/data/devices/tbeam.ts @@ -1,277 +1,277 @@ import { IDevice, Stability, UseCase } from "../device"; export const tbeam: IDevice = { - name: "T-Beam", - misc: { - Stability: Stability.Stable, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-pink-500 via-red-500 to-yellow-500", - pinoutSplit: 13 - }, - images: { - Front: "/img/hardware/tbeam-v1.1.svg", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ], - pinout: [ - { - label: "VP", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "VN", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "RST", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "15", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "35", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "32", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "33", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "25", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "14", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "13", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "2", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "GND", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "5V", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "TX", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "RX", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "23", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "4", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "0", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "GND", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "3V3", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "GND", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "22", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "21", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "3.3V", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "LoRa2", - name: "IO1", - offset: { - x: 5, - y: 5 - } - }, - { - label: "LoRa1", - name: "IO1", - offset: { - x: 5, - y: 5 - } - } - ] + name: "T-Beam", + misc: { + Stability: Stability.Stable, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-pink-500 via-red-500 to-yellow-500", + pinoutSplit: 13, + }, + images: { + Front: "/img/hardware/tbeam-v1.1.svg", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], + pinout: [ + { + label: "VP", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "VN", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "RST", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "15", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "35", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "32", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "33", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "25", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "14", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "13", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "2", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "GND", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "5V", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "TX", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "RX", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "23", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "4", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "0", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "GND", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "3V3", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "GND", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "22", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "21", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "3.3V", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "LoRa2", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + { + label: "LoRa1", + name: "IO1", + offset: { + x: 5, + y: 5, + }, + }, + ], }; diff --git a/src/data/devices/techo.ts b/src/data/devices/techo.ts index 992ba2bb..0666b345 100644 --- a/src/data/devices/techo.ts +++ b/src/data/devices/techo.ts @@ -1,66 +1,66 @@ import { IDevice, Stability, UseCase } from "../device"; export const techo: IDevice = { - name: "T-Echo", - misc: { - Stability: Stability.Semi, - SuggestedUse: [UseCase.Portable], - Gradient: "bg-gradient-to-r from-gray-700 via-gray-900 to-black" - }, - images: { - Front: "/img/hardware/t-echo-lilygo.jpg", - Back: "" - }, - features: { - BLE: true, - WiFi: true, - Modules: [ - "cannedMessage", - "externalNotification", - "rangeTest", - "rotaryEncoder", - "storeAndForward", - "telemetry" - ] - }, - specifications: { - BLEVersion: "4.2", - BLEAntenna: "Integrated", - WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", - WiFiAntenna: "Integrated", - Chipset: "ESP32", - Driver: "CH9102", - GNSS: "NEO-6M", - FlashSize: 4, - Frequencies: [433, 868, 915, 923], - LoRa: "SX1262", - PSRAM: 8, - RAM: undefined - }, - variants: [ - { - name: "TBeam 0.7", - misc: { - Stability: Stability.Unstable - }, - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M", - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.0", - specifications: { - Frequencies: [868, 915] - } - }, - { - name: "TBeam 1.1", - specifications: { - Driver: "CP210X", - GNSS: "NEO-6M" - } - } - ] + name: "T-Echo", + misc: { + Stability: Stability.Semi, + SuggestedUse: [UseCase.Portable], + Gradient: "bg-gradient-to-r from-gray-700 via-gray-900 to-black", + }, + images: { + Front: "/img/hardware/t-echo-lilygo.jpg", + Back: "", + }, + features: { + BLE: true, + WiFi: true, + Modules: [ + "cannedMessage", + "externalNotification", + "rangeTest", + "rotaryEncoder", + "storeAndForward", + "telemetry", + ], + }, + specifications: { + BLEVersion: "4.2", + BLEAntenna: "Integrated", + WiFiVersion: "2.4GHz 802.11 b/g/n WPA/WPA2/WPA2-Enterprise/SPS", + WiFiAntenna: "Integrated", + Chipset: "ESP32", + Driver: "CH9102", + GNSS: "NEO-6M", + FlashSize: 4, + Frequencies: [433, 868, 915, 923], + LoRa: "SX1262", + PSRAM: 8, + RAM: undefined, + }, + variants: [ + { + name: "TBeam 0.7", + misc: { + Stability: Stability.Unstable, + }, + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.0", + specifications: { + Frequencies: [868, 915], + }, + }, + { + name: "TBeam 1.1", + specifications: { + Driver: "CP210X", + GNSS: "NEO-6M", + }, + }, + ], }; diff --git a/src/data/region.ts b/src/data/region.ts index 34d2d545..f8ac51a7 100644 --- a/src/data/region.ts +++ b/src/data/region.ts @@ -1,11 +1,11 @@ export interface IRegion { - name: string; - freqStart: number; - freqEnd: number; - dutyCycle: number; - spacing: number; - powerLimit: number; - audioPermitted: boolean; - frequencySwitching: boolean; - wideLora: boolean; + name: string; + freqStart: number; + freqEnd: number; + dutyCycle: number; + spacing: number; + powerLimit: number; + audioPermitted: boolean; + frequencySwitching: boolean; + wideLora: boolean; } diff --git a/src/data/regions/anz.ts b/src/data/regions/anz.ts index d9d0ef06..530388e4 100644 --- a/src/data/regions/anz.ts +++ b/src/data/regions/anz.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const ANZ: IRegion = { - name: "ANZ", - freqStart: 915.0, - freqEnd: 928.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 30, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "ANZ", + freqStart: 915.0, + freqEnd: 928.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 30, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/cn.ts b/src/data/regions/cn.ts index 59f530de..b2a26450 100644 --- a/src/data/regions/cn.ts +++ b/src/data/regions/cn.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const CN: IRegion = { - name: "CN", - freqStart: 470.0, - freqEnd: 510.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 19, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "CN", + freqStart: 470.0, + freqEnd: 510.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 19, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/eu_433.ts b/src/data/regions/eu_433.ts index efe268a8..69aca39c 100644 --- a/src/data/regions/eu_433.ts +++ b/src/data/regions/eu_433.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const EU_433: IRegion = { - name: "EU_433", - freqStart: 433.0, - freqEnd: 434.0, - dutyCycle: 10, - spacing: 0, - powerLimit: 12, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "EU_433", + freqStart: 433.0, + freqEnd: 434.0, + dutyCycle: 10, + spacing: 0, + powerLimit: 12, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/eu_868.ts b/src/data/regions/eu_868.ts index ec02c4a3..42b3e916 100644 --- a/src/data/regions/eu_868.ts +++ b/src/data/regions/eu_868.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const EU_868: IRegion = { - name: "EU_868", - freqStart: 869.4, - freqEnd: 869.65, - dutyCycle: 10, - spacing: 0, - powerLimit: 27, - audioPermitted: false, - frequencySwitching: false, - wideLora: false + name: "EU_868", + freqStart: 869.4, + freqEnd: 869.65, + dutyCycle: 10, + spacing: 0, + powerLimit: 27, + audioPermitted: false, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/in.ts b/src/data/regions/in.ts index 2a6c8b75..822f8f04 100644 --- a/src/data/regions/in.ts +++ b/src/data/regions/in.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const IN: IRegion = { - name: "IN", - freqStart: 865.0, - freqEnd: 867.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 30, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "IN", + freqStart: 865.0, + freqEnd: 867.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 30, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/jp.ts b/src/data/regions/jp.ts index b0479821..9fe848f4 100644 --- a/src/data/regions/jp.ts +++ b/src/data/regions/jp.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const JP: IRegion = { - name: "JP", - freqStart: 920.8, - freqEnd: 927.8, - dutyCycle: 100, - spacing: 0, - powerLimit: 16, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "JP", + freqStart: 920.8, + freqEnd: 927.8, + dutyCycle: 100, + spacing: 0, + powerLimit: 16, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/kr.ts b/src/data/regions/kr.ts index d3f954ba..3a294977 100644 --- a/src/data/regions/kr.ts +++ b/src/data/regions/kr.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const KR: IRegion = { - name: "KR", - freqStart: 920.0, - freqEnd: 925.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 0, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "KR", + freqStart: 920.0, + freqEnd: 925.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 0, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/lora_24.ts b/src/data/regions/lora_24.ts index 84ec51a2..84a06179 100644 --- a/src/data/regions/lora_24.ts +++ b/src/data/regions/lora_24.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const LORA_24: IRegion = { - name: "LORA_24", - freqStart: 2400.0, - freqEnd: 2483.5, - dutyCycle: 100, - spacing: 0, - powerLimit: 10, - audioPermitted: true, - frequencySwitching: false, - wideLora: true + name: "LORA_24", + freqStart: 2400.0, + freqEnd: 2483.5, + dutyCycle: 100, + spacing: 0, + powerLimit: 10, + audioPermitted: true, + frequencySwitching: false, + wideLora: true, }; diff --git a/src/data/regions/nz_865.ts b/src/data/regions/nz_865.ts index 192f2519..e3ae353d 100644 --- a/src/data/regions/nz_865.ts +++ b/src/data/regions/nz_865.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const NZ_865: IRegion = { - name: "NZ_865", - freqStart: 864.0, - freqEnd: 868.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 36, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "NZ_865", + freqStart: 864.0, + freqEnd: 868.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 36, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/ru.ts b/src/data/regions/ru.ts index 0db5b293..954df39d 100644 --- a/src/data/regions/ru.ts +++ b/src/data/regions/ru.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const RU: IRegion = { - name: "RU", - freqStart: 868.7, - freqEnd: 869.2, - dutyCycle: 100, - spacing: 0, - powerLimit: 20, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "RU", + freqStart: 868.7, + freqEnd: 869.2, + dutyCycle: 100, + spacing: 0, + powerLimit: 20, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/th.ts b/src/data/regions/th.ts index f5658993..d6cb0511 100644 --- a/src/data/regions/th.ts +++ b/src/data/regions/th.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const TH: IRegion = { - name: "TH", - freqStart: 920.0, - freqEnd: 925.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 16, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "TH", + freqStart: 920.0, + freqEnd: 925.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 16, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/tw.ts b/src/data/regions/tw.ts index 98fdbc2c..e2c6497b 100644 --- a/src/data/regions/tw.ts +++ b/src/data/regions/tw.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const TW: IRegion = { - name: "TW", - freqStart: 920.0, - freqEnd: 925.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 0, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "TW", + freqStart: 920.0, + freqEnd: 925.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 0, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/ua_433.ts b/src/data/regions/ua_433.ts index 69d10cb0..fdff6ede 100644 --- a/src/data/regions/ua_433.ts +++ b/src/data/regions/ua_433.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const UA_433: IRegion = { - name: "UA_433", - freqStart: 433.0, - freqEnd: 434.7, - dutyCycle: 10, - spacing: 0, - powerLimit: 10, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "UA_433", + freqStart: 433.0, + freqEnd: 434.7, + dutyCycle: 10, + spacing: 0, + powerLimit: 10, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/ua_868.ts b/src/data/regions/ua_868.ts index a2982cd7..88b47287 100644 --- a/src/data/regions/ua_868.ts +++ b/src/data/regions/ua_868.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const UA_868: IRegion = { - name: "UA_868", - freqStart: 868.0, - freqEnd: 868.6, - dutyCycle: 1, - spacing: 0, - powerLimit: 14, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "UA_868", + freqStart: 868.0, + freqEnd: 868.6, + dutyCycle: 1, + spacing: 0, + powerLimit: 14, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/unset.ts b/src/data/regions/unset.ts index 17464f7c..119ea6e0 100644 --- a/src/data/regions/unset.ts +++ b/src/data/regions/unset.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const UNSET: IRegion = { - name: "UNSET", - freqStart: 902.0, - freqEnd: 928.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 30, - audioPermitted: true, - frequencySwitching: false, - wideLora: false + name: "UNSET", + freqStart: 902.0, + freqEnd: 928.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 30, + audioPermitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/data/regions/us.ts b/src/data/regions/us.ts index 05113406..56d538f2 100644 --- a/src/data/regions/us.ts +++ b/src/data/regions/us.ts @@ -1,13 +1,13 @@ import { IRegion } from "../region"; export const US: IRegion = { - name: "US", - freqStart: 902.0, - freqEnd: 928.0, - dutyCycle: 100, - spacing: 0, - powerLimit: 30, - audioPrmitted: true, - frequencySwitching: false, - wideLora: false + name: "US", + freqStart: 902.0, + freqEnd: 928.0, + dutyCycle: 100, + spacing: 0, + powerLimit: 30, + audioPrmitted: true, + frequencySwitching: false, + wideLora: false, }; diff --git a/src/hooks/useFilteredNetworks.tsx b/src/hooks/useFilteredNetworks.tsx index ce8508f0..1ddf7864 100644 --- a/src/hooks/useFilteredNetworks.tsx +++ b/src/hooks/useFilteredNetworks.tsx @@ -1,29 +1,29 @@ import React from "react"; -import { Showcase } from "../utils/apiTypes.js"; +import { Showcase } from "../utils/apiTypes"; import { useSelectedTags } from "./useSelectedTags"; const filterNetworks = ( - showcaseNetworks: Showcase[], - selectedTags: string[] + showcaseNetworks: Showcase[], + selectedTags: string[], ) => { - if (selectedTags.length === 0) { - return showcaseNetworks; - } - return showcaseNetworks.filter((showcaseNetwork) => { - if (showcaseNetwork.tags.length === 0) { - return false; - } - return selectedTags.every((queryTag) => - showcaseNetwork.tags.find((searchTag) => searchTag.label === queryTag) - ); - }); + if (selectedTags.length === 0) { + return showcaseNetworks; + } + return showcaseNetworks.filter((showcaseNetwork) => { + if (showcaseNetwork.tags.length === 0) { + return false; + } + return selectedTags.every((queryTag) => + showcaseNetwork.tags.find((searchTag) => searchTag.label === queryTag), + ); + }); }; export const useFilteredNetworks = (networks: Showcase[]) => { - const selectedTags = useSelectedTags(); - return React.useMemo( - () => filterNetworks(networks, selectedTags), - [selectedTags] - ); + const selectedTags = useSelectedTags(); + return React.useMemo( + () => filterNetworks(networks, selectedTags), + [selectedTags], + ); }; diff --git a/src/hooks/useSelectedTags.tsx b/src/hooks/useSelectedTags.tsx index 908369dc..8b387ae1 100644 --- a/src/hooks/useSelectedTags.tsx +++ b/src/hooks/useSelectedTags.tsx @@ -5,12 +5,12 @@ import { useLocation } from "@docusaurus/router"; import { readSearchTags } from "../pages/showcase/_components/TagSelect"; export const useSelectedTags = () => { - const location = useLocation(); - const [selectedTags, setSelectedTags] = React.useState([]); - React.useEffect(() => { - const tags = readSearchTags(location.search); - setSelectedTags(tags); - }, [location]); + const location = useLocation(); + const [selectedTags, setSelectedTags] = React.useState([]); + React.useEffect(() => { + const tags = readSearchTags(location.search); + setSelectedTags(tags); + }, [location]); - return selectedTags; + return selectedTags; }; diff --git a/src/pages/2.0/index.tsx b/src/pages/2.0/index.tsx index d7e3f026..a0df9e0f 100644 --- a/src/pages/2.0/index.tsx +++ b/src/pages/2.0/index.tsx @@ -4,454 +4,454 @@ import { FiTwitter } from "react-icons/fi"; import { ChevronRightIcon } from "@heroicons/react/20/solid"; import Layout from "@theme/Layout"; -import { Dark, Light } from "/src/components/ColorMode"; +import { Dark, Light } from "../../components/ColorMode"; const TwoPointZero = (): JSX.Element => { - const stats = [ - { label: "Active Nodes", value: "A Lot!" }, - { label: "Community Members", value: "4000+" }, - { label: "Firmware Commits", value: "4900+" }, - { label: "Community Donations", value: "$5700+" } - ]; - const logos = [ - { - name: "Vercel", - url: "/2.0/vercel-logotype-dark.svg" - }, - { - name: "Cloudflare", - url: "/2.0/CF_logo_horizontal_blktype.svg" - }, - { - name: "RAK Wireless", - url: "/2.0/RAK-blue-main.svg" - }, - { - name: "Open Collective", - url: "/2.0/opencollectivelogo.svg" - }, - { - name: "LILYGO", - url: "/2.0/LILYGO.png" - }, - { - name: "Discord", - url: "/2.0/discord.svg" - } - ]; - return ( - -
    -
    - {/* Hero section */} -
    -
    -
    -
    - - Meshtastic Logo - - - Meshtastic Logo - -
    -
    - -
    -

    - Meshtastic 2.0 🎉🎉🎉 -

    -

    - After 9 months in the making, we present to you the next - milestone for the Meshtastic project. -

    -
    -
    -

    - As a part of the launch event, we are running a number of - giveaways, so jump in and win some prizes. -

    - -
    -
    -
    -
    + const stats = [ + { label: "Active Nodes", value: "A Lot!" }, + { label: "Community Members", value: "4000+" }, + { label: "Firmware Commits", value: "4900+" }, + { label: "Community Donations", value: "$5700+" }, + ]; + const logos = [ + { + name: "Vercel", + url: "/2.0/vercel-logotype-dark.svg", + }, + { + name: "Cloudflare", + url: "/2.0/CF_logo_horizontal_blktype.svg", + }, + { + name: "RAK Wireless", + url: "/2.0/RAK-blue-main.svg", + }, + { + name: "Open Collective", + url: "/2.0/opencollectivelogo.svg", + }, + { + name: "LILYGO", + url: "/2.0/LILYGO.png", + }, + { + name: "Discord", + url: "/2.0/discord.svg", + }, + ]; + return ( + +
    +
    + {/* Hero section */} +
    +
    +
    +
    + + Meshtastic Logo + + + Meshtastic Logo + +
    +
    + +
    +

    + Meshtastic 2.0 🎉🎉🎉 +

    +

    + After 9 months in the making, we present to you the next + milestone for the Meshtastic project. +

    +
    +
    +

    + As a part of the launch event, we are running a number of + giveaways, so jump in and win some prizes. +

    + +
    +
    +
    +
    -
    -
    -
    -
    - - - - - - - - -
    -
    - Web UI - Android - IOS -
    -
    -
    -
    +
    +
    +
    +
    + + + + + + + + +
    +
    + Web UI + Android + IOS +
    +
    +
    +
    - {/* Testimonial/stats section */} -
    -
    -
    - +
    +
    - {/* Logo cloud section */} -
    -
    -
    -
    -

    - All made possible by the amazing companies that support us. -

    -

    - Running a project of this scale is no easy feat, without the - generosity of many of our vendors and providers, none of - this would be possible. -

    -
    -
    - {logos.map((logo) => ( -
    - {logo.name} -
    - ))} -
    -
    -
    -
    + {/* Logo cloud section */} +
    +
    +
    +
    +

    + All made possible by the amazing companies that support us. +

    +

    + Running a project of this scale is no easy feat, without the + generosity of many of our vendors and providers, none of + this would be possible. +

    +
    +
    + {logos.map((logo) => ( +
    + {logo.name} +
    + ))} +
    +
    +
    +
    - {/* CTA section */} -
    - -
    -
    -
    - ); + {/* CTA section */} +
    + +
    +
    +
    + ); }; export default TwoPointZero; diff --git a/src/pages/credits/_components/Avatar.tsx b/src/pages/credits/_components/Avatar.tsx index 1995b298..6ec6b32e 100644 --- a/src/pages/credits/_components/Avatar.tsx +++ b/src/pages/credits/_components/Avatar.tsx @@ -1,44 +1,44 @@ import React from "react"; export interface avatarProps { - imgUrl: string; - name?: string; - userName?: string; - description?: string; + imgUrl: string; + name?: string; + userName?: string; + description?: string; } export interface avatarLayoutProps { - list: list[]; + list: list[]; } export const Avatar = ({ - imgUrl, - name, - description + imgUrl, + name, + description, }: avatarProps): JSX.Element => { - return ( -
    -
    -
    - -
    -
    {name}
    - {description} -
    -
    -
    -
    - ); + return ( +
    +
    +
    + +
    +
    {name}
    + {description} +
    +
    +
    +
    + ); }; export const AvatarLayout = ({ list }: avatarLayoutProps): JSX.Element => { - return ( -
    -
    - {list.map(() => { - return ; - })} -
    -
    - ); + return ( +
    +
    + {list.map(() => { + return ; + })} +
    +
    + ); }; diff --git a/src/pages/credits/index.tsx b/src/pages/credits/index.tsx index 3d1b6416..6dd0fc25 100644 --- a/src/pages/credits/index.tsx +++ b/src/pages/credits/index.tsx @@ -5,161 +5,161 @@ import Link from "@docusaurus/Link"; import { AvatarLayout } from "./_components/Avatar"; const Credits = (): JSX.Element => { - const partnerLogos = [ - { - name: "Vercel", - url: "/2.0/vercel-logotype-dark.svg" - }, - { - name: "Cloudflare", - url: "/2.0/CF_logo_horizontal_blktype.svg" - }, - { - name: "RAK Wireless", - url: "/2.0/RAK-blue-main.svg" - }, - { - name: "Open Collective", - url: "/2.0/opencollectivelogo.svg" - }, - { - name: "LILYGO", - url: "/2.0/LILYGO.png" - }, - { - name: "Discord", - url: "/2.0/discord.svg" - } - ]; - return ( - -
    -
    -

    Credits

    -

    - Meshtastic is community driven. Thousands of hours have been donated - by volunteers who want to develop this amazing project. Whether - you've submitted a pull request or triaged a bug in our - Discord/Forum. You've made Meshtastic possible. Thank you for your - contributions. -

    -

    - We would also like to recognize those who have donated financially - to the project. As Meshtastic has grown, we've aquired some ongoing - costs to keep the project running. Thank you for your generous - donations. -

    -
    -
    -

    Fiscal Sponsors

    -

    - We have partnered with both the{" "} - - Open Collective - {" "} - and the{" "} - - Open Source Collective - {" "} - to help us with a fiscal management framework and banking needs. - They help support over three thousand open source projects including - the PHP Foundation, F-Droid, Sonarr, LinuxServer and DarkReader. We - are in good hands and good company. -

    -

    - As with everything we do here, Open Collective provides a fully - transparent framework for our budget and expenses. You can see what - we’re bringing in, who is spending money and where that money is - going{" "} - - here - - . -

    -

    - In addition to our partnership with Open Collective and Open Source - Collective, we have also been approved into the{" "} - - GitHub Sponsors - {" "} - program where we can set fundraising goals with GitHub. -

    -

    - All donations made through GitHub will be deposited to our account - with the Open Source Collective and managed by the Open Collective. - This means we have a single place to monitor and maintain - transparency of our finances. -

    -

    If you are able, please contribute to this amazing project.

    -
    - - Sponsor Meshtastic - -
    -

    - Open Collective Donations - {/*Open Collective Donations*/} - -

    -

    - GitHub Sponsor Donations - {/*GitHub Sponsor Donations*/} - -

    -
    -
    -

    Partnerships

    -
    - {partnerLogos.map((logo) => ( -
    - {logo.name} -
    - ))} -
    -
    -
    -

    Contributors

    -

    - Literally thousands of hours have gone into creating, maintaining, - and improving Meshtastic. Without our contributors none of this - would be possible. Thank you for donating the time for each and - every commit, issue, and pull request. -

    - {/*GitHub Organization Contributors*/} - -
    - {/*Admin Bios*/} -
    - -
    -
    -
    - ); + const partnerLogos = [ + { + name: "Vercel", + url: "/2.0/vercel-logotype-dark.svg", + }, + { + name: "Cloudflare", + url: "/2.0/CF_logo_horizontal_blktype.svg", + }, + { + name: "RAK Wireless", + url: "/2.0/RAK-blue-main.svg", + }, + { + name: "Open Collective", + url: "/2.0/opencollectivelogo.svg", + }, + { + name: "LILYGO", + url: "/2.0/LILYGO.png", + }, + { + name: "Discord", + url: "/2.0/discord.svg", + }, + ]; + return ( + +
    +
    +

    Credits

    +

    + Meshtastic is community driven. Thousands of hours have been donated + by volunteers who want to develop this amazing project. Whether + you've submitted a pull request or triaged a bug in our + Discord/Forum. You've made Meshtastic possible. Thank you for your + contributions. +

    +

    + We would also like to recognize those who have donated financially + to the project. As Meshtastic has grown, we've aquired some ongoing + costs to keep the project running. Thank you for your generous + donations. +

    +
    +
    +

    Fiscal Sponsors

    +

    + We have partnered with both the{" "} + + Open Collective + {" "} + and the{" "} + + Open Source Collective + {" "} + to help us with a fiscal management framework and banking needs. + They help support over three thousand open source projects including + the PHP Foundation, F-Droid, Sonarr, LinuxServer and DarkReader. We + are in good hands and good company. +

    +

    + As with everything we do here, Open Collective provides a fully + transparent framework for our budget and expenses. You can see what + we’re bringing in, who is spending money and where that money is + going{" "} + + here + + . +

    +

    + In addition to our partnership with Open Collective and Open Source + Collective, we have also been approved into the{" "} + + GitHub Sponsors + {" "} + program where we can set fundraising goals with GitHub. +

    +

    + All donations made through GitHub will be deposited to our account + with the Open Source Collective and managed by the Open Collective. + This means we have a single place to monitor and maintain + transparency of our finances. +

    +

    If you are able, please contribute to this amazing project.

    +
    + + Sponsor Meshtastic + +
    +

    + Open Collective Donations + {/*Open Collective Donations*/} + +

    +

    + GitHub Sponsor Donations + {/*GitHub Sponsor Donations*/} + +

    +
    +
    +

    Partnerships

    +
    + {partnerLogos.map((logo) => ( +
    + {logo.name} +
    + ))} +
    +
    +
    +

    Contributors

    +

    + Literally thousands of hours have gone into creating, maintaining, + and improving Meshtastic. Without our contributors none of this + would be possible. Thank you for donating the time for each and + every commit, issue, and pull request. +

    + {/*GitHub Organization Contributors*/} + +
    + {/*Admin Bios*/} +
    + +
    +
    +
    + ); }; export default Credits; diff --git a/src/pages/downloads/_components/DownloadCard.tsx b/src/pages/downloads/_components/DownloadCard.tsx index 6f1c7145..92a44b9c 100644 --- a/src/pages/downloads/_components/DownloadCard.tsx +++ b/src/pages/downloads/_components/DownloadCard.tsx @@ -1,146 +1,146 @@ import React from "react"; export interface downloadCardProps { - client: string; - imgUrl: string; - url: string; - imgUrl2: string; - url2: string; - notes: string; - buttonText: string; + client: string; + imgUrl: string; + url: string; + imgUrl2: string; + url2: string; + notes: string; + buttonText: string; } export const DownloadCard = ({ - client, - imgUrl, - url, - imgUrl2, - url2, - notes, - buttonText + client, + imgUrl, + url, + imgUrl2, + url2, + notes, + buttonText, }: downloadCardProps): JSX.Element => { - return ( -
    -
    -

    {client}

    -
    -
    - {buttonText ? ( - - {buttonText} - - ) : ( - - )} -
    -
    {notes ? notes : null}
    -
    - ); + return ( +
    +
    +

    {client}

    +
    +
    + {buttonText ? ( + + {buttonText} + + ) : ( + + )} +
    +
    {notes ? notes : null}
    +
    + ); }; export const PlaceholderCard = (): JSX.Element => { - return ( -
    -
    -
    -
    -
    -
    -   -
    -
    -
    -
    -
    -
    - ); + return ( +
    +
    +
    +
    +
    +
    +   +
    +
    +
    +
    +
    +
    + ); }; diff --git a/src/pages/downloads/_components/FirmwareCard.tsx b/src/pages/downloads/_components/FirmwareCard.tsx index 46e83860..654e7e70 100644 --- a/src/pages/downloads/_components/FirmwareCard.tsx +++ b/src/pages/downloads/_components/FirmwareCard.tsx @@ -1,151 +1,151 @@ import React from "react"; -import { DeviceFirmwareResource } from "../../../utils/apiTypes.js"; +import { DeviceFirmwareResource } from "../../../utils/apiTypes"; export interface releaseCardProps { - variant: string; - description: string; - release?: DeviceFirmwareResource[]; + variant: string; + description: string; + release?: DeviceFirmwareResource[]; } export const FirmwareCard = ({ - variant, - description, - release + variant, + description, + release, }: releaseCardProps): JSX.Element => { - return ( -
    -
    -

    {variant}

    - {release?.length && ( - {release[0].title} - )} -
    -
    -

    {description}

    -
    -
    -
    -
    - Older Versions - {release.slice(1, 6).map((release) => { - return ( - - ); - })} -
    -
    - {release?.length ? ( - <> - - Download {variant} - - - ) : ( - - )} -
    -
    - ); + return ( +
    +
    +

    {variant}

    + {release?.length && ( + {release[0].title} + )} +
    +
    +

    {description}

    +
    +
    +
    +
    + Older Versions + {release.slice(1, 6).map((release) => { + return ( + + ); + })} +
    +
    + {release?.length ? ( + <> + + Download {variant} + + + ) : ( + + )} +
    +
    + ); }; export const PlaceholderFirmwareCard = (): JSX.Element => { - return ( -
    -
    -
    -
    -
    -
    -   -
    -
    -
    -
    -
    -
    - ); + return ( +
    +
    +
    +
    +
    +
    +   +
    +
    +
    +
    +
    +
    + ); }; diff --git a/src/pages/downloads/_components/HeaderText.tsx b/src/pages/downloads/_components/HeaderText.tsx index e870a1a6..13cdfbb6 100644 --- a/src/pages/downloads/_components/HeaderText.tsx +++ b/src/pages/downloads/_components/HeaderText.tsx @@ -1,18 +1,18 @@ import React from "react"; export const HeaderText = ({ type, text, link }): JSX.Element => { - const Header = type; + const Header = type; - return ( -
    - {text} - {link && ( - - )} -
    - ); + return ( +
    + {text} + {link && ( + + )} +
    + ); }; diff --git a/src/pages/downloads/index.tsx b/src/pages/downloads/index.tsx index 53ff48ad..9bd76d8c 100644 --- a/src/pages/downloads/index.tsx +++ b/src/pages/downloads/index.tsx @@ -4,236 +4,236 @@ import { FaAndroid, FaApple } from "react-icons/fa"; import useSWR from "swr"; import { - ArrowTopRightOnSquareIcon, - BoltIcon, - ComputerDesktopIcon, - CpuChipIcon, - GlobeAltIcon + ArrowTopRightOnSquareIcon, + BoltIcon, + ComputerDesktopIcon, + CpuChipIcon, + GlobeAltIcon, } from "@heroicons/react/24/solid"; import Layout from "@theme/Layout"; -import { FirmwareReleases } from "../../utils/apiTypes.js"; +import { FirmwareReleases } from "../../utils/apiTypes"; import { fetcher } from "../../utils/swr"; import { - FirmwareCard, - PlaceholderFirmwareCard + FirmwareCard, + PlaceholderFirmwareCard, } from "./_components/FirmwareCard"; const Firmware = (): JSX.Element => { - const { data, error } = useSWR( - "https://api.meshtastic.org/github/firmware/list", - fetcher - ); + const { data, error } = useSWR( + "https://api.meshtastic.org/github/firmware/list", + fetcher, + ); - return ( - -
    -

    Flasher

    -
    -
    - -
    -
    - -
    -
    -

    ESP32 Web Flasher

    -
    -
    -

    - Web based installer for easy flashing with Chrome and Edge - Browser. Works with T-Beam, T-Lora, Nano-G1 and similar - boards. -

    -
    - -
    -
    -
    -

    nRF52 Drag & Drop

    -
    -
    -

    - Devices such as T-Echo and RAK4631 are flashed via filesystem. -

    -
    - -
    -
    -
    - {/* */} -

    Apps

    -
    -
    - -
    -
    -
    -
    -

    Apple

    -
    -
    -
    - -
    -
    -
    - Available on MacOS & iOS. Requires MacOS Ventura or iOS 16+. -
    - -
    -
    -
    -

    Android

    -
    -
    -
    - -
    -
    -
    Sideloading also available.
    - -
    -
    -
    -

    Web

    -
    -
    -
    - -
    -
    -
    - Requires Chromium based browsers. -
    - -
    -
    -
    - {/* */} -

    Firmware

    -
    -
    - -
    -
    - {data && !error ? ( - <> - - -
    -
    -

    Bleeding

    -
    -
    -

    - Latest successful CI build. For those who want to break - things. -

    -
    - -
    - - ) : ( - <> - - - - - )} -
    -
    -
    - - ); + return ( + +
    +

    Flasher

    +
    +
    + +
    +
    +
    +
    +

    Meshtastic Flasher

    +
    +
    +

    Desktop application to flash fimware to your devices.

    +
    + +
    +
    +
    +

    ESP32 Web Flasher

    +
    +
    +

    + Web based installer for easy flashing with Chrome and Edge + Browser. Works with T-Beam, T-Lora, Nano-G1 and similar + boards. +

    +
    + +
    +
    +
    +

    nRF52 Drag & Drop

    +
    +
    +

    + Devices such as T-Echo and RAK4631 are flashed via filesystem. +

    +
    + +
    +
    +
    + {/* */} +

    Apps

    +
    +
    + +
    +
    +
    +
    +

    Apple

    +
    +
    +
    + +
    +
    +
    + Available on MacOS & iOS. Requires MacOS Ventura or iOS 16+. +
    + +
    +
    +
    +

    Android

    +
    +
    +
    + +
    +
    +
    Sideloading also available.
    + +
    +
    +
    +

    Web

    +
    +
    +
    + +
    +
    +
    + Requires Chromium based browsers. +
    + +
    +
    +
    + {/* */} +

    Firmware

    +
    +
    + +
    +
    + {data && !error ? ( + <> + + +
    +
    +

    Bleeding

    +
    +
    +

    + Latest successful CI build. For those who want to break + things. +

    +
    + +
    + + ) : ( + <> + + + + + )} +
    +
    +
    +
    + ); }; export default Firmware; diff --git a/src/pages/hardware/index.tsx b/src/pages/hardware/index.tsx index 514dab3c..1630c1f5 100644 --- a/src/pages/hardware/index.tsx +++ b/src/pages/hardware/index.tsx @@ -2,8 +2,8 @@ import React, { useState } from "react"; import { FiPlus } from "react-icons/fi"; -import { HardwareModal } from "@site/src/components/hardware/HardwareModal"; -import { IDevice } from "@site/src/data/device"; +import { HardwareModal } from "../../components/hardware/HardwareModal"; +import { IDevice } from "../../data/device"; import { HardwareCard } from "../../components/hardware/HardwareCard"; import { PageLayout } from "../../components/PageLayout"; @@ -16,79 +16,79 @@ import { tbeam } from "../../data/devices/tbeam"; import { techo } from "../../data/devices/techo"; const Hardware = (): JSX.Element => { - const hardware = [tbeam, hydra, rak19003, rak19001, nano_g1, heltec, techo]; - const [modalData, setModalData] = useState(); + const hardware = [tbeam, hydra, rak19003, rak19001, nano_g1, heltec, techo]; + const [modalData, setModalData] = useState(); - return ( - -
    -
    -

    - Issues -

    -
    - +
    +
    +
    +
    +
      + {hardware.map((device, index) => ( + { + setModalData(device); + }} + /> + ))} +
    • + + + +

      + New Board +

      +

      + Want to support a board? +

      +
    • +
    +
    + {modalData && ( + { + setModalData(undefined); + }} + device={modalData} + /> + )} +
    + ); }; export default Hardware; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 7fe4d441..2f30cb6c 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -13,299 +13,299 @@ import Layout from "@theme/Layout"; import { SocialCard, SocialCardProps } from "../components/homepage/SocialCard"; const features = [ - { - title: "Radio Mesh Text Messaging", - imageUrl: "img/homepage/messages.svg", - description: ( - <> - Off-grid messaging using inexpensive hardware to create your personal - mesh. Radios forward messages to the next to flood the network. - Communicate kilometers/miles between nodes. Internet-connected relay - nodes enable the conversation to move online too. - - ) - }, - { - title: "Encryption", - imageUrl: "img/homepage/encryption.svg", - description: ( - <> - Messages are AES256 encrypted. Only radios supplied with your channel - settings (which includes the key) should be able to read your messages. - Using multichannel settings you can send encrypted messages on one - channel and still participate in a default Meshtastic mesh. - - ) - }, - { - title: "Conserve Battery", - imageUrl: "img/homepage/battery.svg", - description: ( - <> - Go for days on end and on a single battery or extend it infinitely with - a solar cell. Power management ensures the device will last the duration - of your use. - - ) - }, - { - title: "Extensible", - imageUrl: "img/homepage/extendable.svg", - description: ( - <> - Create a highly scalable mesh with hardware on a multitude of platforms - to fit your unique requirements: Create an environment monitoring mesh - and produce real-time heatmaps, or maybe decentralized, encrypted - messaging network, your imagination is the limit. - - ) - }, - { - title: "Platform Agnostic", - imageUrl: "img/homepage/platforms.svg", - description: ( - <> - Meshtastic clients are built or being built for all major desktop and - mobile platforms. Linux, Windows, Mac, Android, and iOS are all - supported or well on their way to being supported. - - ) - }, - { - title: "Open Source", - imageUrl: "img/homepage/opensource.svg", - description: ( - <> - All Meshtastic software is open source. If you want an improvement, - submit a pull request or file an issue on Github. Happy coding! - - ) - } + { + title: "Radio Mesh Text Messaging", + imageUrl: "img/homepage/messages.svg", + description: ( + <> + Off-grid messaging using inexpensive hardware to create your personal + mesh. Radios forward messages to the next to flood the network. + Communicate kilometers/miles between nodes. Internet-connected relay + nodes enable the conversation to move online too. + + ), + }, + { + title: "Encryption", + imageUrl: "img/homepage/encryption.svg", + description: ( + <> + Messages are AES256 encrypted. Only radios supplied with your channel + settings (which includes the key) should be able to read your messages. + Using multichannel settings you can send encrypted messages on one + channel and still participate in a default Meshtastic mesh. + + ), + }, + { + title: "Conserve Battery", + imageUrl: "img/homepage/battery.svg", + description: ( + <> + Go for days on end and on a single battery or extend it infinitely with + a solar cell. Power management ensures the device will last the duration + of your use. + + ), + }, + { + title: "Extensible", + imageUrl: "img/homepage/extendable.svg", + description: ( + <> + Create a highly scalable mesh with hardware on a multitude of platforms + to fit your unique requirements: Create an environment monitoring mesh + and produce real-time heatmaps, or maybe decentralized, encrypted + messaging network, your imagination is the limit. + + ), + }, + { + title: "Platform Agnostic", + imageUrl: "img/homepage/platforms.svg", + description: ( + <> + Meshtastic clients are built or being built for all major desktop and + mobile platforms. Linux, Windows, Mac, Android, and iOS are all + supported or well on their way to being supported. + + ), + }, + { + title: "Open Source", + imageUrl: "img/homepage/opensource.svg", + description: ( + <> + All Meshtastic software is open source. If you want an improvement, + submit a pull request or file an issue on Github. Happy coding! + + ), + }, ]; const SocialCards: SocialCardProps[] = [ - { - color: "bg-[#5865F2]", - link: "https://discord.com/invite/ktMAKGBnBs", - children: ( - discord - ) - }, - { - color: "bg-[#ffffff]", - link: "https://twitter.com/TheMeshtastic", - children: ( - twitter - ) - }, - { - color: "bg-[#FF0000]", - link: "https://www.youtube.com/meshtastic", - children: ( - youtube - ) - }, - { - color: "bg-[#ffffff]", - link: "https://meshtastic.discourse.group", - children: ( - discourse - ) - }, - { - color: "bg-[#FF4500]", - link: "https://reddit.com/r/meshtastic", - children: ( - reddit - ) - }, - { - color: "bg-[#ffffff]", - link: "https://github.com/meshtastic", - children: ( - github - ) - } + { + color: "bg-[#5865F2]", + link: "https://discord.com/invite/ktMAKGBnBs", + children: ( + discord + ), + }, + { + color: "bg-[#ffffff]", + link: "https://twitter.com/TheMeshtastic", + children: ( + twitter + ), + }, + { + color: "bg-[#FF0000]", + link: "https://www.youtube.com/meshtastic", + children: ( + youtube + ), + }, + { + color: "bg-[#ffffff]", + link: "https://meshtastic.discourse.group", + children: ( + discourse + ), + }, + { + color: "bg-[#FF4500]", + link: "https://reddit.com/r/meshtastic", + children: ( + reddit + ), + }, + { + color: "bg-[#ffffff]", + link: "https://github.com/meshtastic", + children: ( + github + ), + }, ]; function Home() { - const context = useDocusaurusContext(); - const { siteConfig } = context; - return ( - - - - - - - - -
    -
    -

    - Meshtastic Logo -

    -

    {siteConfig.tagline}

    -
    - - Learn More - - - Get Started - -
    -
    -
    -
    - - {features.map((feature, index) => ( -
    -
    - {feature.title} -
    -
    -

    {feature.title}

    -

    {feature.description}

    -
    -
    - ))} -
    + const context = useDocusaurusContext(); + const { siteConfig } = context; + return ( + + + + + + + + +
    +
    +

    + Meshtastic Logo +

    +

    {siteConfig.tagline}

    +
    + + Learn More + + + Get Started + +
    +
    +
    +
    + + {features.map((feature) => ( +
    +
    + {feature.title} +
    +
    +

    {feature.title}

    +

    {feature.description}

    +
    +
    + ))} +
    -
    -

    Connect with us.

    -
    - {SocialCards.map((card, index) => ( - - {card.children} - - ))} -
    -
    +
    +

    Connect with us.

    +
    + {SocialCards.map((card) => ( + + {card.children} + + ))} +
    +
    -
    -

    - Getting started with Meshtastic is as easy as 1, 2, 3! -

    -
      -
      -
      -

      1. Purchase Supported Hardware

      -
      -
      -

      - Hardware you will want to consider: -

        -
      • Radio
      • -
      • Battery
      • -
      • Case
      • -
      • - Antenna (most devices include an antenna, but the quality - can be a bit of a mixed bag from some suppliers on stock - antennas) -
      • -
      -

      -
      -
      -
      -
      -

      2. Flash & Configure Node

      -
      -
      -

      - The Meshtastic Flasher application can assist you in flashing - the firmware and configuring settings. -

      -
      -
      -
      -
      -

      3. Connect to Node

      -
      -
      -

      - Applications are available for the following systems: -

        -
      • Android
      • -
      • iOS
      • -
      • Mac
      • -
      • Web Browser
      • -
      -

      -
      -
      -
    -
    -
    -
    -
    - ); +
    +

    + Getting started with Meshtastic is as easy as 1, 2, 3! +

    +
      +
      +
      +

      1. Purchase Supported Hardware

      +
      +
      +

      + Hardware you will want to consider: +

        +
      • Radio
      • +
      • Battery
      • +
      • Case
      • +
      • + Antenna (most devices include an antenna, but the quality + can be a bit of a mixed bag from some suppliers on stock + antennas) +
      • +
      +

      +
      +
      +
      +
      +

      2. Flash & Configure Node

      +
      +
      +

      + The Meshtastic Flasher application can assist you in flashing + the firmware and configuring settings. +

      +
      +
      +
      +
      +

      3. Connect to Node

      +
      +
      +

      + Applications are available for the following systems: +

        +
      • Android
      • +
      • iOS
      • +
      • Mac
      • +
      • Web Browser
      • +
      +

      +
      +
      +
    +
    +
    +
    +
    + ); } export default Home; diff --git a/src/pages/showcase/_components/Card.tsx b/src/pages/showcase/_components/Card.tsx index d01a5ede..7981f85b 100644 --- a/src/pages/showcase/_components/Card.tsx +++ b/src/pages/showcase/_components/Card.tsx @@ -5,106 +5,106 @@ import { mapUrl } from "../../../utils/map"; import { CardTags } from "./CardTags"; export interface CardProps { - network: Showcase; + network: Showcase; } export const Card = React.memo(({ network }: CardProps) => ( -
    -
    -
    - {network.title} -
    -
    -
    -

    {network.title}

    - {network.summary} -
    - -
    +
    +
    +
    + {network.title} +
    +
    +
    +

    {network.title}

    + {network.summary} +
    + +
    )); export const PlaceholderCard = (): JSX.Element => ( -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -   - -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +   + +
    +
    +
    +
    +
    +
    ); diff --git a/src/pages/showcase/_components/CardTags.tsx b/src/pages/showcase/_components/CardTags.tsx index 06b1aafe..a1749e8f 100644 --- a/src/pages/showcase/_components/CardTags.tsx +++ b/src/pages/showcase/_components/CardTags.tsx @@ -3,27 +3,27 @@ import React from "react"; import { ShowcaseTag } from "../../../utils/apiTypes"; export interface CardTagsProps { - tags: ShowcaseTag[]; + tags: ShowcaseTag[]; } export const CardTags = ({ tags }: CardTagsProps) => { - return ( -
    - {tags.map(({ color, label }, index) => { - return ( - - {label} - - ); - })} -
    - ); + return ( +
    + {tags.map(({ color, label }, index) => { + return ( + + {label} + + ); + })} +
    + ); }; diff --git a/src/pages/showcase/_components/Filters.tsx b/src/pages/showcase/_components/Filters.tsx index 317ad356..978384fe 100644 --- a/src/pages/showcase/_components/Filters.tsx +++ b/src/pages/showcase/_components/Filters.tsx @@ -4,87 +4,87 @@ import { FiHeart } from "react-icons/fi"; import useSWR from "swr"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import { fetcher } from "@site/src/utils/swr"; +import { fetcher } from "../../../utils/swr"; import { ShowcaseTag } from "../../../utils/apiTypes"; // import { TagList, Tags } from '../../../utils/showcase'; import { PlaceholderTagSelect, TagSelect } from "./TagSelect"; export const Filters = (): JSX.Element => { - const { siteConfig } = useDocusaurusContext(); + const { siteConfig } = useDocusaurusContext(); - const { data, error } = useSWR( - `${siteConfig.customFields.API_URL}/showcase/tags`, - fetcher - ); + const { data, error } = useSWR( + `${siteConfig.customFields.API_URL}/showcase/tags`, + fetcher, + ); - return ( -
    - {data && !error ? ( -
      - {data.map((tag, i) => { - const { label, color } = tag; - const id = `showcase_checkbox_id_${tag};`; + return ( +
      + {data && !error ? ( +
        + {data.map((tag, i) => { + const { label, color } = tag; + const id = `showcase_checkbox_id_${tag};`; - return ( -
        - - - - ) : ( - - ) - } - /> -
        - ); - })} -
      - ) : ( - - )} -
      - ); + return ( +
      + + + + ) : ( + + ) + } + /> +
      + ); + })} +
    + ) : ( + + )} +
    + ); }; diff --git a/src/pages/showcase/_components/Network.tsx b/src/pages/showcase/_components/Network.tsx index 6c14e571..6b78b953 100644 --- a/src/pages/showcase/_components/Network.tsx +++ b/src/pages/showcase/_components/Network.tsx @@ -3,317 +3,316 @@ import React from "react"; import useSWR from "swr"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import { Showcase } from "@site/src/utils/apiTypes"; -import { User } from "@site/src/utils/github"; -import { fetcher } from "@site/src/utils/swr"; +import { Showcase } from "../../../utils/apiTypes"; +import { fetcher } from "../../../utils/swr"; interface NetworkProps { - id: string; + id: string; } export const Network = ({ id }: NetworkProps): JSX.Element => { - const { siteConfig } = useDocusaurusContext(); + const { siteConfig } = useDocusaurusContext(); - const { data, error } = useSWR( - `${siteConfig.customFields.API_URL}/showcase/${id}`, - fetcher - ); + const { data, error } = useSWR( + `${siteConfig.customFields.API_URL}/showcase/${id}`, + fetcher, + ); - const githubData = useSWR( - `https://api.github.com/users/${data?.author?.githubUsername}`, - fetcher - ).data; + const githubData = useSWR( + `https://api.github.com/users/${data?.author?.githubUsername}`, + fetcher, + ).data; - return ( -
    - {data && !error ? ( -
    -

    {data.title}

    -

    {data.summary}

    - {githubData && ( -
    - {githubData.name} -
    -
    {githubData.name}
    -
    {githubData.bio}
    -
    -
    - )} -
    {data.body}
    + return ( +
    + {data && !error ? ( +
    +

    {data.title}

    +

    {data.summary}

    + {githubData && ( +
    + {githubData.name} +
    +
    {githubData.name}
    +
    {githubData.bio}
    +
    +
    + )} +
    {data.body}
    -
    -
    -

    Bill of Materials

    -
    -
    - {data.materials?.map((material, index) => ( -
    -
    - -
    -
    -
    {material.name}
    - - {material.details} - -
    - - View - -
    - ))} -
    -
    -
    - ) : ( -
    - {error &&
    {JSON.stringify(error)}
    } - {!data && } -
    - )} -
    - ); +
    +
    +

    Bill of Materials

    +
    +
    + {data.materials?.map((material, index) => ( +
    +
    + +
    +
    +
    {material.name}
    + + {material.details} + +
    + + View + +
    + ))} +
    +
    +
    + ) : ( +
    + {error &&
    {JSON.stringify(error)}
    } + {!data && } +
    + )} +
    + ); }; export const PlaceholderNetwork = (): JSX.Element => { - return ( -
    768 ? "row" : "column", - gap: "2rem" - }} - > -
    768 ? "60%" : "100%" - }} - > -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    768 ? "40%" : "100%" - }} - > -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    -
    -
    - ); + return ( +
    768 ? "row" : "column", + gap: "2rem", + }} + > +
    768 ? "60%" : "100%", + }} + > +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    768 ? "40%" : "100%", + }} + > +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + ); }; diff --git a/src/pages/showcase/_components/NetworkSection.tsx b/src/pages/showcase/_components/NetworkSection.tsx index 730270a4..38a4fb3b 100644 --- a/src/pages/showcase/_components/NetworkSection.tsx +++ b/src/pages/showcase/_components/NetworkSection.tsx @@ -4,64 +4,64 @@ import { Showcase } from "../../../utils/apiTypes"; import { Card, PlaceholderCard } from "./Card"; interface NetworkSectionProps { - title: string; - icon?: JSX.Element; - iconColor?: string; - networks?: Showcase[]; + title: string; + icon?: JSX.Element; + iconColor?: string; + networks?: Showcase[]; } export const NetworkSection = ({ - title, - icon, - iconColor, - networks + title, + icon, + iconColor, + networks, }: NetworkSectionProps): JSX.Element => { - return ( -
    -
    -

    {title}

    - {icon && ( - - {icon} - - )} -
    -
      - {networks ? ( - <> - {networks.map((network) => ( - - ))} - {networks.length === 0 &&

      No result

      } - - ) : ( -
      - -
      - )} -
    -
    - ); + return ( +
    +
    +

    {title}

    + {icon && ( + + {icon} + + )} +
    +
      + {networks ? ( + <> + {networks.map((network) => ( + + ))} + {networks.length === 0 &&

      No result

      } + + ) : ( +
      + +
      + )} +
    +
    + ); }; diff --git a/src/pages/showcase/_components/Networks.tsx b/src/pages/showcase/_components/Networks.tsx index 887ff542..2d709fc7 100644 --- a/src/pages/showcase/_components/Networks.tsx +++ b/src/pages/showcase/_components/Networks.tsx @@ -4,7 +4,7 @@ import { FiHeart, FiSearch } from "react-icons/fi"; import useSWR from "swr"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import { useSelectedTags } from "@site/src/hooks/useSelectedTags"; +import { useSelectedTags } from "../../../hooks/useSelectedTags"; import { useFilteredNetworks } from "../../../hooks/useFilteredNetworks"; import { Showcase } from "../../../utils/apiTypes"; @@ -12,41 +12,41 @@ import { fetcher } from "../../../utils/swr"; import { NetworkSection } from "./NetworkSection"; export const Networks = (): JSX.Element => { - const { siteConfig } = useDocusaurusContext(); + const { siteConfig } = useDocusaurusContext(); - const { data, error } = useSWR( - `${siteConfig.customFields.API_URL}/showcase`, - fetcher - ); + const { data, error } = useSWR( + `${siteConfig.customFields.API_URL}/showcase`, + fetcher, + ); - const selectedTags = useSelectedTags(); - const filteredNetworks = useFilteredNetworks(data ?? []); + const selectedTags = useSelectedTags(); + const filteredNetworks = useFilteredNetworks(data ?? []); - return ( -
    - {!error ? ( - selectedTags.length === 0 ? ( - <> - } - iconColor="rgb(190 24 93)" - networks={data?.filter((network) => - network.tags.find((tag) => tag.label === "Favorite") - )} - /> - - - ) : ( - } - networks={filteredNetworks} - /> - ) - ) : ( -
    {JSON.stringify(error)}
    - )} -
    - ); + return ( +
    + {!error ? ( + selectedTags.length === 0 ? ( + <> + } + iconColor="rgb(190 24 93)" + networks={data?.filter((network) => + network.tags.find((tag) => tag.label === "Favorite"), + )} + /> + + + ) : ( + } + networks={filteredNetworks} + /> + ) + ) : ( +
    {JSON.stringify(error)}
    + )} +
    + ); }; diff --git a/src/pages/showcase/_components/TagSelect.tsx b/src/pages/showcase/_components/TagSelect.tsx index 98f75da9..c8c41899 100644 --- a/src/pages/showcase/_components/TagSelect.tsx +++ b/src/pages/showcase/_components/TagSelect.tsx @@ -3,109 +3,109 @@ import "url-search-params-polyfill"; import React from "react"; import { useHistory, useLocation } from "@docusaurus/router"; -import { ShowcaseTag } from "@site/src/utils/apiTypes"; +import { ShowcaseTag } from "../../../utils/apiTypes"; import { toggleListItem } from "../../../utils/showcase"; interface Props extends React.ComponentProps<"input"> { - icon: React.ReactElement>; - label: React.ReactNode; - tag: ShowcaseTag; + icon: React.ReactElement>; + label: React.ReactNode; + tag: ShowcaseTag; } export function readSearchTags(search: string): string[] { - return new URLSearchParams(search).getAll("tags"); + return new URLSearchParams(search).getAll("tags"); } function replaceSearchTags(search: string, newTags: string[]) { - const searchParams = new URLSearchParams(search); - searchParams.delete("tags"); - newTags.forEach((tag) => searchParams.append("tags", tag)); - return searchParams.toString(); + const searchParams = new URLSearchParams(search); + searchParams.delete("tags"); + newTags.forEach((tag) => searchParams.append("tags", tag)); + return searchParams.toString(); } export const TagSelect = React.forwardRef( - ({ icon, label, tag }) => { - const location = useLocation(); - const history = useHistory(); - const [selected, setSelected] = React.useState(false); - React.useEffect(() => { - const tags = readSearchTags(location.search); - setSelected(tags.includes(tag.label)); - }, [tag, location]); - const toggleTag = React.useCallback(() => { - const tags = readSearchTags(location.search); - const newTags = toggleListItem(tags, tag.label); - const newSearch = replaceSearchTags(location.search, newTags); - history.push({ ...location, search: newSearch }); - }, [tag, location, history]); - return ( - - ); - } + ({ icon, label, tag }) => { + const location = useLocation(); + const history = useHistory(); + const [selected, setSelected] = React.useState(false); + React.useEffect(() => { + const tags = readSearchTags(location.search); + setSelected(tags.includes(tag.label)); + }, [tag, location]); + const toggleTag = React.useCallback(() => { + const tags = readSearchTags(location.search); + const newTags = toggleListItem(tags, tag.label); + const newSearch = replaceSearchTags(location.search, newTags); + history.push({ ...location, search: newSearch }); + }, [tag, location, history]); + return ( + + ); + }, ); export const PlaceholderTagSelect = (): JSX.Element => ( -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    ); diff --git a/src/pages/showcase/index.tsx b/src/pages/showcase/index.tsx index 216fc35f..31780c9b 100644 --- a/src/pages/showcase/index.tsx +++ b/src/pages/showcase/index.tsx @@ -10,26 +10,26 @@ import { Network } from "./_components/Network"; import { Networks } from "./_components/Networks"; const Showcase = (): JSX.Element => { - const location = useLocation(); - const id = new URLSearchParams(location.search).get("id"); + const location = useLocation(); + const id = new URLSearchParams(location.search).get("id"); - return ( - -
    - {id ? ( - - ) : ( - <> - - - - )} -
    -
    - ); + return ( + +
    + {id ? ( + + ) : ( + <> + + + + )} +
    +
    + ); }; export default Showcase; diff --git a/src/pages/tools/OEM.tsx b/src/pages/tools/OEM.tsx index d34204d7..13be1cd8 100644 --- a/src/pages/tools/OEM.tsx +++ b/src/pages/tools/OEM.tsx @@ -6,146 +6,146 @@ import { Protobuf } from "@meshtastic/meshtasticjs"; import Layout from "@theme/Layout"; const OEM = (): JSX.Element => { - const [oemAesKey, setOemAesKey] = useState(new Uint8Array()); - const [oemFont, setOemFont] = useState( - Protobuf.ScreenFonts.FONT_MEDIUM - ); - const [oemIconBits, setOemIconBits] = useState(new Uint8Array()); - const [oemIconHeight, setOemIconHeight] = useState(0); - const [oemIconWidth, setOemIconWidth] = useState(0); - const [oemText, setOemText] = useState(""); - const [oemBytes, setOemBytes] = useState(new Uint8Array()); + const [oemAesKey, setOemAesKey] = useState(new Uint8Array()); + const [oemFont, setOemFont] = useState( + Protobuf.ScreenFonts.FONT_MEDIUM, + ); + const [oemIconBits, setOemIconBits] = useState(new Uint8Array()); + const [oemIconHeight, setOemIconHeight] = useState(0); + const [oemIconWidth, setOemIconWidth] = useState(0); + const [oemText, setOemText] = useState(""); + const [oemBytes, setOemBytes] = useState(new Uint8Array()); - useEffect(() => { - setOemBytes( - Protobuf.OEMStore.toBinary({ - oemAesKey, - oemFont, - oemIconBits, - oemIconHeight, - oemIconWidth, - oemText - }) - ); - }, [oemAesKey, oemFont, oemIconBits, oemIconHeight, oemIconWidth, oemText]); + useEffect(() => { + setOemBytes( + Protobuf.OEMStore.toBinary({ + oemAesKey, + oemFont, + oemIconBits, + oemIconHeight, + oemIconWidth, + oemText, + }), + ); + }, [oemAesKey, oemFont, oemIconBits, oemIconHeight, oemIconWidth, oemText]); - const enumOptions = Protobuf.ScreenFonts - ? Object.entries(Protobuf.ScreenFonts).filter( - (value) => typeof value[1] === "number" - ) - : []; + const enumOptions = Protobuf.ScreenFonts + ? Object.entries(Protobuf.ScreenFonts).filter( + (value) => typeof value[1] === "number", + ) + : []; - const readFile = (file: File) => { - return new Promise((resolve: (value: string) => void, reject) => { - const reader = new FileReader(); + const readFile = (file: File) => { + return new Promise((resolve: (value: string) => void, reject) => { + const reader = new FileReader(); - reader.onload = (res) => { - resolve(res.target.result as string); - }; - reader.onerror = (err) => reject(err); + reader.onload = (res) => { + resolve(res.target.result as string); + }; + reader.onerror = (err) => reject(err); - reader.readAsText(file); - }); - }; + reader.readAsText(file); + }); + }; - return ( - -
    - AES Key -
    - - -
    - { - setOemAesKey(toByteArray(e.target.value)); - }} - /> - Font - - Logo XBM - { - readFile(e.target.files[0]).then((data) => { - setOemIconBits( - new Uint8Array( - data.split(",").map((s) => parseInt(s.trim(), 16)) - ) - ); - }); - }} - /> - Logo Height - { - setOemIconHeight(parseInt(e.target.value)); - }} - /> - Logo Width - { - setOemIconWidth(parseInt(e.target.value)); - }} - /> - Boot Text - { - setOemText(e.target.value); - }} - /> - { - const blob = new Blob([oemBytes], { - type: "application/octet-stream" - }); - window.open(URL.createObjectURL(blob)); - }} - > - Download - - {oemBytes.toString()} -
    -
    - ); + return ( + +
    + AES Key +
    + + +
    + { + setOemAesKey(toByteArray(e.target.value)); + }} + /> + Font + + Logo XBM + { + readFile(e.target.files[0]).then((data) => { + setOemIconBits( + new Uint8Array( + data.split(",").map((s) => parseInt(s.trim(), 16)), + ), + ); + }); + }} + /> + Logo Height + { + setOemIconHeight(parseInt(e.target.value)); + }} + /> + Logo Width + { + setOemIconWidth(parseInt(e.target.value)); + }} + /> + Boot Text + { + setOemText(e.target.value); + }} + /> + { + const blob = new Blob([oemBytes], { + type: "application/octet-stream", + }); + window.open(URL.createObjectURL(blob)); + }} + > + Download + + {oemBytes.toString()} +
    +
    + ); }; export default OEM; diff --git a/src/utils/apiTypes.ts b/src/utils/apiTypes.ts index 01698a9b..c97404a9 100644 --- a/src/utils/apiTypes.ts +++ b/src/utils/apiTypes.ts @@ -1,65 +1,65 @@ export interface Showcase { - id: string; - title: string; - summary: string; - body: string; - createdAt: Date; - updatedAt: Date; + id: string; + title: string; + summary: string; + body: string; + createdAt: Date; + updatedAt: Date; - tags: ShowcaseTag[]; - nodes?: Node[]; - materials?: Material[]; - author?: Author; - authorId?: string; + tags: ShowcaseTag[]; + nodes?: Node[]; + materials?: Material[]; + author?: Author; + authorId?: string; } export interface ShowcaseTag { - id: string; - label: string; - description: string; - color: string; + id: string; + label: string; + description: string; + color: string; - showcases?: Showcase[]; + showcases?: Showcase[]; } export interface Node { - id: string; - latitude: string; - longitude: string; + id: string; + latitude: string; + longitude: string; - showcase?: Showcase; - showcaseId?: string; + showcase?: Showcase; + showcaseId?: string; } export interface Material { - id: string; - name: string; - details: string; - image: string; - url: string; + id: string; + name: string; + details: string; + image: string; + url: string; - showcases?: Showcase[]; + showcases?: Showcase[]; } export interface Author { - id: string; - githubUsername: string; - bio: string; + id: string; + githubUsername: string; + bio: string; - showcase?: Showcase[]; + showcase?: Showcase[]; } export interface DeviceFirmwareResource { - id: string; - title: string; - page_url?: string; - zip_url?: string; + id: string; + title: string; + page_url?: string; + zip_url?: string; } export interface FirmwareReleases { - releases: { - stable: DeviceFirmwareResource[]; - alpha: DeviceFirmwareResource[]; - }; - pullRequests: DeviceFirmwareResource[]; + releases: { + stable: DeviceFirmwareResource[]; + alpha: DeviceFirmwareResource[]; + }; + pullRequests: DeviceFirmwareResource[]; } diff --git a/src/utils/calculateADC.ts b/src/utils/calculateADC.ts index 304b8193..5d534405 100644 --- a/src/utils/calculateADC.ts +++ b/src/utils/calculateADC.ts @@ -1,23 +1,23 @@ export default function calculateADC() { - //const variables - const BAT_MILLIVOLTS_FULL = 4.2; - const BAT_MILLIVOLTS_EMPTY = 3.27; - const BAT_FULL_PERCENT = 1; - //variable - const batteryChargePercent = - parseFloat( - (document.getElementById("batteryChargePercent")).value - ) / 100; - const operativeAdcMultiplier = parseFloat( - (document.getElementById("operativeAdcMultiplier")).value - ); - const result = - (operativeAdcMultiplier * - ((BAT_FULL_PERCENT - 1) * BAT_MILLIVOLTS_EMPTY - - BAT_FULL_PERCENT * BAT_MILLIVOLTS_FULL)) / - ((batteryChargePercent - 1) * BAT_MILLIVOLTS_EMPTY - - batteryChargePercent * BAT_MILLIVOLTS_FULL); - (( - document.getElementById("newOperativeAdcMultiplier") - )).value = result.toFixed(4); + //const variables + const BAT_MILLIVOLTS_FULL = 4.2; + const BAT_MILLIVOLTS_EMPTY = 3.27; + const BAT_FULL_PERCENT = 1; + //variable + const batteryChargePercent = + parseFloat( + (document.getElementById("batteryChargePercent")).value, + ) / 100; + const operativeAdcMultiplier = parseFloat( + (document.getElementById("operativeAdcMultiplier")).value, + ); + const result = + (operativeAdcMultiplier * + ((BAT_FULL_PERCENT - 1) * BAT_MILLIVOLTS_EMPTY - + BAT_FULL_PERCENT * BAT_MILLIVOLTS_FULL)) / + ((batteryChargePercent - 1) * BAT_MILLIVOLTS_EMPTY - + batteryChargePercent * BAT_MILLIVOLTS_FULL); + (( + document.getElementById("newOperativeAdcMultiplier") + )).value = result.toFixed(4); } diff --git a/src/utils/map.ts b/src/utils/map.ts index e5e5ee5d..9b271f3d 100644 --- a/src/utils/map.ts +++ b/src/utils/map.ts @@ -1,13 +1,13 @@ -import { Node } from "./apiTypes.js"; +import { Node } from "./apiTypes"; export const mapUrl = (nodes: Node[]): string => { - const width = 900; - const height = 400; - const access_token = - "pk.eyJ1Ijoic2FjaGF3IiwiYSI6ImNrNW9meXozZjBsdW0zbHBjM2FnNnV6cmsifQ.3E4n8eFGD9ZOFo-XDVeZnQ"; - const nodeCoords = nodes.map( - ({ latitude, longitude }) => `pin-l+67ea94(${longitude},${latitude})` - ); + const width = 900; + const height = 400; + const access_token = + "pk.eyJ1Ijoic2FjaGF3IiwiYSI6ImNrNW9meXozZjBsdW0zbHBjM2FnNnV6cmsifQ.3E4n8eFGD9ZOFo-XDVeZnQ"; + const nodeCoords = nodes.map( + ({ latitude, longitude }) => `pin-l+67ea94(${longitude},${latitude})`, + ); - return `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/${nodeCoords}/auto/${width}x${height}@2x?access_token=${access_token}`; + return `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/${nodeCoords}/auto/${width}x${height}@2x?access_token=${access_token}`; }; diff --git a/src/utils/showcase.ts b/src/utils/showcase.ts index 646e8289..29d64b52 100644 --- a/src/utils/showcase.ts +++ b/src/utils/showcase.ts @@ -1,22 +1,22 @@ export const sortBy = (array: T[], getter: (item: T) => unknown): T[] => { - const sortedArray = [...array]; - sortedArray.sort((a, b) => - getter(a) > getter(b) ? 1 : getter(b) > getter(a) ? -1 : 0 - ); - return sortedArray; + const sortedArray = [...array]; + sortedArray.sort((a, b) => + getter(a) > getter(b) ? 1 : getter(b) > getter(a) ? -1 : 0, + ); + return sortedArray; }; export const difference = (...arrays: T[][]): T[] => { - return arrays.reduce((a, b) => a.filter((c) => !b.includes(c))); + return arrays.reduce((a, b) => a.filter((c) => !b.includes(c))); }; export const toggleListItem = (list: T[], item: T): T[] => { - const itemIndex = list.indexOf(item); - if (itemIndex === -1) { - return list.concat(item); - } else { - const newList = [...list]; - newList.splice(itemIndex, 1); - return newList; - } + const itemIndex = list.indexOf(item); + if (itemIndex === -1) { + return list.concat(item); + } else { + const newList = [...list]; + newList.splice(itemIndex, 1); + return newList; + } }; diff --git a/tailwind.config.cjs b/tailwind.config.cjs deleted file mode 100644 index 1dbb7907..00000000 --- a/tailwind.config.cjs +++ /dev/null @@ -1,22 +0,0 @@ -// trunk-ignore(eslint/no-undef) -module.exports = { - content: ["./src/**/*.{js,jsx,ts,tsx}"], - darkMode: "class", - theme: { - extend: { - colors: { - accent: "var(--accent)", - base: "var(--base)", - primary: "var(--primary)", - secondary: "var(--secondary)", - tertiary: "var(--tertiary)", - mute: "var(--mute)", - primaryInv: "var(--primaryInv)", - secondaryInv: "var(--secondaryInv)", - tertiaryInv: "var(--tertiaryInv)" - } - } - }, - // trunk-ignore(eslint/no-undef) - plugins: [require("@tailwindcss/typography")] -}; diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 00000000..62bdb7e0 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,23 @@ +import type { Config } from "tailwindcss"; +import typography from "@tailwindcss/typography"; + +export default { + content: ["./src/**/*.{js,jsx,ts,tsx}"], + darkMode: "class", + theme: { + extend: { + colors: { + accent: "var(--accent)", + base: "var(--base)", + primary: "var(--primary)", + secondary: "var(--secondary)", + tertiary: "var(--tertiary)", + mute: "var(--mute)", + primaryInv: "var(--primaryInv)", + secondaryInv: "var(--secondaryInv)", + tertiaryInv: "var(--tertiaryInv)", + }, + }, + }, + plugins: [typography()], +} satisfies Config;