From 7fb2da396f1dc08ce963c0858f4e0ff6da31b2d8 Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Sat, 6 Jan 2024 10:15:49 +1000 Subject: [PATCH] update deps & lint --- package.json | 16 +- pnpm-lock.yaml | 350 +++++++++--------- src/components/DeviceSelector.tsx | 1 - src/components/DeviceSelectorButton.tsx | 2 - src/components/Dialog/ImportDialog.tsx | 24 +- src/components/Dialog/NewDeviceDialog.tsx | 1 - src/components/Dialog/QRDialog.tsx | 12 +- src/components/Dialog/RebootDialog.tsx | 1 - src/components/Form/DynamicForm.tsx | 1 - src/components/Form/FormToggle.tsx | 2 +- src/components/PageComponents/Connect/BLE.tsx | 2 +- src/components/Sidebar.tsx | 3 +- src/components/Toaster.tsx | 24 +- src/components/UI/Sidebar/sidebarButton.tsx | 4 +- src/core/hooks/useToast.ts | 2 +- src/pages/Channels.tsx | 1 - src/pages/Config/ModuleConfig.tsx | 2 +- src/pages/Config/index.tsx | 4 +- src/validation/channel.ts | 4 +- src/validation/config/bluetooth.ts | 4 +- src/validation/config/device.ts | 4 +- src/validation/config/display.ts | 4 +- src/validation/config/lora.ts | 4 +- src/validation/config/network.ts | 4 +- src/validation/config/position.ts | 4 +- src/validation/config/power.ts | 4 +- .../moduleConfig/ambientLighting.ts | 4 +- src/validation/moduleConfig/audio.ts | 4 +- src/validation/moduleConfig/cannedMessage.ts | 4 +- .../moduleConfig/detectionSensor.ts | 4 +- .../moduleConfig/externalNotification.ts | 4 +- src/validation/moduleConfig/mqtt.ts | 4 +- src/validation/moduleConfig/neighborInfo.ts | 4 +- src/validation/moduleConfig/rangeTest.ts | 4 +- src/validation/moduleConfig/serial.ts | 4 +- src/validation/moduleConfig/storeForward.ts | 4 +- src/validation/moduleConfig/telemetry.ts | 4 +- 37 files changed, 261 insertions(+), 267 deletions(-) diff --git a/package.json b/package.json index 998c2dd6..c241506f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshtastic-web", - "version": "2.2.17-0", + "version": "2.2.17-1", "type": "module", "description": "Meshtastic web client", "license": "GPL-3.0-only", @@ -22,7 +22,7 @@ "dependencies": { "@bufbuild/protobuf": "^1.6.0", "@emeraldpay/hashicon-react": "^0.5.2", - "@meshtastic/js": "2.2.17-4", + "@meshtastic/js": "2.2.17-5", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-dialog": "^1.0.5", @@ -45,7 +45,7 @@ "clsx": "^2.1.0", "cmdk": "^0.2.0", "immer": "^10.0.3", - "lucide-react": "^0.303.0", + "lucide-react": "^0.306.0", "mapbox-gl": "npm:empty-npm-package@^1.0.0", "maplibre-gl": "3.6.2", "react": "^18.2.0", @@ -61,8 +61,8 @@ }, "devDependencies": { "@biomejs/biome": "^1.4.1", - "@buf/meshtastic_protobufs.bufbuild_es": "1.6.0-20231227193150-3f9c1dfd2a29.1", - "@types/chrome": "^0.0.254", + "@buf/meshtastic_protobufs.bufbuild_es": "1.6.0-20240104182715-af4a215beb91.1", + "@types/chrome": "^0.0.256", "@types/node": "^20.10.6", "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", @@ -71,13 +71,13 @@ "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.16", "gzipper": "^7.2.0", - "postcss": "^8.4.32", + "postcss": "^8.4.33", "rollup-plugin-visualizer": "^5.12.0", - "tailwindcss": "^3.4.0", + "tailwindcss": "^3.4.1", "tar": "^6.2.0", "tslib": "^2.6.2", "typescript": "^5.3.3", - "vite": "^5.0.10", + "vite": "^5.0.11", "vite-plugin-environment": "^1.1.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef9f9663..3d9fe708 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ dependencies: specifier: ^0.5.2 version: 0.5.2 '@meshtastic/js': - specifier: 2.2.17-4 - version: 2.2.17-4 + specifier: 2.2.17-5 + version: 2.2.17-5 '@radix-ui/react-accordion': specifier: ^1.1.2 version: 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0) @@ -81,8 +81,8 @@ dependencies: specifier: ^10.0.3 version: 10.0.3 lucide-react: - specifier: ^0.303.0 - version: 0.303.0(react@18.2.0) + specifier: ^0.306.0 + version: 0.306.0(react@18.2.0) mapbox-gl: specifier: npm:empty-npm-package@^1.0.0 version: /empty-npm-package@1.0.0 @@ -112,7 +112,7 @@ dependencies: version: 2.2.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.0) + version: 1.0.7(tailwindcss@3.4.1) timeago-react: specifier: ^3.0.6 version: 3.0.6(react@18.2.0) @@ -125,11 +125,11 @@ devDependencies: specifier: ^1.4.1 version: 1.4.1 '@buf/meshtastic_protobufs.bufbuild_es': - specifier: 1.6.0-20231227193150-3f9c1dfd2a29.1 - version: 1.6.0-20231227193150-3f9c1dfd2a29.1(@bufbuild/protobuf@1.6.0) + specifier: 1.6.0-20240104182715-af4a215beb91.1 + version: 1.6.0-20240104182715-af4a215beb91.1(@bufbuild/protobuf@1.6.0) '@types/chrome': - specifier: ^0.0.254 - version: 0.0.254 + specifier: ^0.0.256 + version: 0.0.256 '@types/node': specifier: ^20.10.6 version: 20.10.6 @@ -147,22 +147,22 @@ devDependencies: version: 0.0.20 '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.2.1(vite@5.0.10) + version: 4.2.1(vite@5.0.11) autoprefixer: specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.32) + version: 10.4.16(postcss@8.4.33) gzipper: specifier: ^7.2.0 version: 7.2.0 postcss: - specifier: ^8.4.32 - version: 8.4.32 + specifier: ^8.4.33 + version: 8.4.33 rollup-plugin-visualizer: specifier: ^5.12.0 version: 5.12.0 tailwindcss: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.1 + version: 3.4.1 tar: specifier: ^6.2.0 version: 6.2.0 @@ -173,11 +173,11 @@ devDependencies: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.0.10 - version: 5.0.10(@types/node@20.10.6) + specifier: ^5.0.11 + version: 5.0.11(@types/node@20.10.6) vite-plugin-environment: specifier: ^1.1.3 - version: 1.1.3(vite@5.0.10) + version: 1.1.3(vite@5.0.11) packages: @@ -484,8 +484,8 @@ packages: dev: true optional: true - /@buf/meshtastic_protobufs.bufbuild_es@1.6.0-20231227193150-3f9c1dfd2a29.1(@bufbuild/protobuf@1.6.0): - resolution: {tarball: https://buf.build/gen/npm/v1/@buf/meshtastic_protobufs.bufbuild_es/-/meshtastic_protobufs.bufbuild_es-1.6.0-20231227193150-3f9c1dfd2a29.1.tgz} + /@buf/meshtastic_protobufs.bufbuild_es@1.6.0-20240104182715-af4a215beb91.1(@bufbuild/protobuf@1.6.0): + resolution: {tarball: https://buf.build/gen/npm/v1/@buf/meshtastic_protobufs.bufbuild_es/-/meshtastic_protobufs.bufbuild_es-1.6.0-20240104182715-af4a215beb91.1.tgz} peerDependencies: '@bufbuild/protobuf': ^1.6.0 dependencies: @@ -511,8 +511,8 @@ packages: js-sha3: 0.8.0 dev: false - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -520,8 +520,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -529,8 +529,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -538,8 +538,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -547,8 +547,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -556,8 +556,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -565,8 +565,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -574,8 +574,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -583,8 +583,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -592,8 +592,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -601,8 +601,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -610,8 +610,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -619,8 +619,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -628,8 +628,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -637,8 +637,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -646,8 +646,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -655,8 +655,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -664,8 +664,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -673,8 +673,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -682,8 +682,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -691,8 +691,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -700,8 +700,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -709,8 +709,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -837,8 +837,8 @@ packages: sort-object: 3.0.3 dev: false - /@meshtastic/js@2.2.17-4: - resolution: {integrity: sha512-L7nFKzv+Jl/q9TbSmedOqmM2+LKQT7yDUn5TJJ2kjSYP/Gvgb5P+Xby+YmhErfIRaunRtQ0DJM8a0IPrFzoRPg==} + /@meshtastic/js@2.2.17-5: + resolution: {integrity: sha512-03z+Z2EqsNxHqPqaUjfycNi9luPnLAQaaAAyjSwz7O+SCpRWKVDfyZTxTcjQDdFj5HL88ygz3EsWp6w/masW3g==} dependencies: crc: 4.3.2 sub-events: 1.9.0 @@ -1979,104 +1979,104 @@ packages: '@babel/runtime': 7.23.6 dev: false - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + /@rollup/rollup-android-arm-eabi@4.9.3: + resolution: {integrity: sha512-nvh9bB41vXEoKKvlWCGptpGt8EhrEwPQFDCY0VAto+R+qpSbaErPS3OjMZuXR8i/2UVw952Dtlnl2JFxH31Qvg==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + /@rollup/rollup-android-arm64@4.9.3: + resolution: {integrity: sha512-kffYCJ2RhDL1DlshLzYPyJtVeusHlA8Q1j6k6s4AEVKLq/3HfGa2ADDycLsmPo3OW83r4XtOPqRMbcFzFsEIzQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + /@rollup/rollup-darwin-arm64@4.9.3: + resolution: {integrity: sha512-Fo7DR6Q9/+ztTyMBZ79+WJtb8RWZonyCgkBCjV51rW5K/dizBzImTW6HLC0pzmHaAevwM0jW1GtB5LCFE81mSw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + /@rollup/rollup-darwin-x64@4.9.3: + resolution: {integrity: sha512-5HcxDF9fqHucIlTiw/gmMb3Qv23L8bLCg904I74Q2lpl4j/20z9ogaD3tWkeguRuz+/17cuS321PT3PAuyjQdg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.3: + resolution: {integrity: sha512-cO6hKV+99D1V7uNJQn1chWaF9EGp7qV2N8sGH99q9Y62bsbN6Il55EwJppEWT+JiqDRg396vWCgwdHwje8itBQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + /@rollup/rollup-linux-arm64-gnu@4.9.3: + resolution: {integrity: sha512-xANyq6lVg6KMO8UUs0LjA4q7di3tPpDbzLPgVEU2/F1ngIZ54eli8Zdt3uUUTMXVbgTCafIO+JPeGMhu097i3w==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + /@rollup/rollup-linux-arm64-musl@4.9.3: + resolution: {integrity: sha512-TZJUfRTugVFATQToCMD8DNV6jv/KpSwhE1lLq5kXiQbBX3Pqw6dRKtzNkh5wcp0n09reBBq/7CGDERRw9KmE+g==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.3: + resolution: {integrity: sha512-4/QVaRyaB5tkEAGfjVvWrmWdPF6F2NoaoO5uEP7N0AyeBw7l8SeCWWKAGrbx/00PUdHrJVURJiYikazslSKttQ==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + /@rollup/rollup-linux-x64-gnu@4.9.3: + resolution: {integrity: sha512-koLC6D3pj1YLZSkTy/jsk3HOadp7q2h6VQl/lPX854twOmmLNekHB6yuS+MkWcKdGGdW1JPuPBv/ZYhr5Yhtdg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + /@rollup/rollup-linux-x64-musl@4.9.3: + resolution: {integrity: sha512-0OAkQ4HBp+JO2ip2Lgt/ShlrveOMzyhwt2D0KvqH28jFPqfZco28KSq76zymZwmU+F6GRojdxtQMJiNSXKNzeA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + /@rollup/rollup-win32-arm64-msvc@4.9.3: + resolution: {integrity: sha512-z5uvoMvdRWggigOnsb9OOCLERHV0ykRZoRB5O+URPZC9zM3pkoMg5fN4NKu2oHqgkzZtfx9u4njqqlYEzM1v9A==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + /@rollup/rollup-win32-ia32-msvc@4.9.3: + resolution: {integrity: sha512-wxomCHjBVKws+O4N1WLnniKCXu7vkLtdq9Fl9CN/EbwEldojvUrkoHE/fBLZzC7IT/x12Ut6d6cRs4dFvqJkMg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + /@rollup/rollup-win32-x64-msvc@4.9.3: + resolution: {integrity: sha512-1Qf/qk/iEtx0aOi+AQQt5PBoW0mFngsm7bPuxHClC/hWh2hHBktR6ktSfUg5b5rC9v8hTwNmHE7lBWXkgqluUQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -3168,13 +3168,17 @@ packages: '@babel/types': 7.23.6 dev: true - /@types/chrome@0.0.254: - resolution: {integrity: sha512-svkOGKwA+6ZZuk9xtrYun8MYpNY/9hD17rgZ19v3KunhsK1ZOKaMESw12/1AXLh1u3UPA8jQIRi2370DXv9wgw==} + /@types/chrome@0.0.256: + resolution: {integrity: sha512-NleTQw4DNzhPwObLNuQ3i3nvX1rZ1mgnx5FNHc2KP+Cj1fgd3BrT5yQ6Xvs+7H0kNsYxCY+lxhiCwsqq3JwtEg==} dependencies: '@types/filesystem': 0.0.35 '@types/har-format': 1.2.15 dev: true + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + /@types/filesystem@0.0.35: resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==} dependencies: @@ -3261,7 +3265,7 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true - /@vitejs/plugin-react@4.2.1(vite@5.0.10): + /@vitejs/plugin-react@4.2.1(vite@5.0.11): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3272,7 +3276,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.6) transitivePeerDependencies: - supports-color dev: true @@ -3339,7 +3343,7 @@ packages: engines: {node: '>=0.10.0'} dev: false - /autoprefixer@10.4.16(postcss@8.4.32): + /autoprefixer@10.4.16(postcss@8.4.33): resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3351,7 +3355,7 @@ packages: fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -3733,35 +3737,35 @@ packages: stop-iteration-iterator: 1.0.0 dev: true - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.10 - '@esbuild/android-arm': 0.19.10 - '@esbuild/android-arm64': 0.19.10 - '@esbuild/android-x64': 0.19.10 - '@esbuild/darwin-arm64': 0.19.10 - '@esbuild/darwin-x64': 0.19.10 - '@esbuild/freebsd-arm64': 0.19.10 - '@esbuild/freebsd-x64': 0.19.10 - '@esbuild/linux-arm': 0.19.10 - '@esbuild/linux-arm64': 0.19.10 - '@esbuild/linux-ia32': 0.19.10 - '@esbuild/linux-loong64': 0.19.10 - '@esbuild/linux-mips64el': 0.19.10 - '@esbuild/linux-ppc64': 0.19.10 - '@esbuild/linux-riscv64': 0.19.10 - '@esbuild/linux-s390x': 0.19.10 - '@esbuild/linux-x64': 0.19.10 - '@esbuild/netbsd-x64': 0.19.10 - '@esbuild/openbsd-x64': 0.19.10 - '@esbuild/sunos-x64': 0.19.10 - '@esbuild/win32-arm64': 0.19.10 - '@esbuild/win32-ia32': 0.19.10 - '@esbuild/win32-x64': 0.19.10 + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 dev: true /escalade@3.1.1: @@ -4284,8 +4288,8 @@ packages: yallist: 3.1.1 dev: true - /lucide-react@0.303.0(react@18.2.0): - resolution: {integrity: sha512-B0B9T3dLEFBYPCUlnUS1mvAhW1craSbF9HO+JfBjAtpFUJ7gMIqmEwNSclikY3RiN2OnCkj/V1ReAQpaHae8Bg==} + /lucide-react@0.306.0(react@18.2.0): + resolution: {integrity: sha512-eShuk2PI3vxN4YN8kNPmhAsroSvPXbtaxU/UX/zrBcLLg8FeFH9MG7C2EYzYsT2rNrPVjbP7rpBz3mOviZYN3A==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -4516,27 +4520,27 @@ packages: splaytree: 3.1.2 dev: false - /postcss-import@15.1.0(postcss@8.4.32): + /postcss-import@15.1.0(postcss@8.4.33): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - /postcss-js@4.0.1(postcss@8.4.32): + /postcss-js@4.0.1(postcss@8.4.33): 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.32 + postcss: 8.4.33 - /postcss-load-config@4.0.2(postcss@8.4.32): + /postcss-load-config@4.0.2(postcss@8.4.33): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -4549,20 +4553,20 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.32 + postcss: 8.4.33 yaml: 2.3.4 - /postcss-nested@6.0.1(postcss@8.4.32): + /postcss-nested@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss: 8.4.33 + postcss-selector-parser: 6.0.15 - /postcss-selector-parser@6.0.14: - resolution: {integrity: sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==} + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -4571,8 +4575,8 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -4881,24 +4885,26 @@ packages: yargs: 17.7.2 dev: true - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + /rollup@4.9.3: + resolution: {integrity: sha512-JnchF0ZGFiqGpAPjg3e89j656Ne4tTtCY1VZc1AxtoQcRIxjTu9jyYHBAtkDXE+X681n4un/nX9SU52AroSRzg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.1 - '@rollup/rollup-android-arm64': 4.9.1 - '@rollup/rollup-darwin-arm64': 4.9.1 - '@rollup/rollup-darwin-x64': 4.9.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 - '@rollup/rollup-linux-arm64-gnu': 4.9.1 - '@rollup/rollup-linux-arm64-musl': 4.9.1 - '@rollup/rollup-linux-riscv64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-musl': 4.9.1 - '@rollup/rollup-win32-arm64-msvc': 4.9.1 - '@rollup/rollup-win32-ia32-msvc': 4.9.1 - '@rollup/rollup-win32-x64-msvc': 4.9.1 + '@rollup/rollup-android-arm-eabi': 4.9.3 + '@rollup/rollup-android-arm64': 4.9.3 + '@rollup/rollup-darwin-arm64': 4.9.3 + '@rollup/rollup-darwin-x64': 4.9.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.3 + '@rollup/rollup-linux-arm64-gnu': 4.9.3 + '@rollup/rollup-linux-arm64-musl': 4.9.3 + '@rollup/rollup-linux-riscv64-gnu': 4.9.3 + '@rollup/rollup-linux-x64-gnu': 4.9.3 + '@rollup/rollup-linux-x64-musl': 4.9.3 + '@rollup/rollup-win32-arm64-msvc': 4.9.3 + '@rollup/rollup-win32-ia32-msvc': 4.9.3 + '@rollup/rollup-win32-x64-msvc': 4.9.3 fsevents: 2.3.3 dev: true @@ -5126,16 +5132,16 @@ packages: '@babel/runtime': 7.23.6 dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.4.0): + /tailwindcss-animate@1.0.7(tailwindcss@3.4.1): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.4.0 + tailwindcss: 3.4.1 dev: false - /tailwindcss@3.4.0: - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -5153,12 +5159,12 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.2(postcss@8.4.32) - postcss-nested: 6.0.1(postcss@8.4.32) - postcss-selector-parser: 6.0.14 + postcss: 8.4.33 + postcss-import: 15.1.0(postcss@8.4.33) + postcss-js: 4.0.1(postcss@8.4.33) + postcss-load-config: 4.0.2(postcss@8.4.33) + postcss-nested: 6.0.1(postcss@8.4.33) + postcss-selector-parser: 6.0.15 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -5363,16 +5369,16 @@ packages: engines: {node: '>= 0.10'} dev: false - /vite-plugin-environment@1.1.3(vite@5.0.10): + /vite-plugin-environment@1.1.3(vite@5.0.11): resolution: {integrity: sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA==} peerDependencies: vite: '>= 2.7' dependencies: - vite: 5.0.10(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.6) dev: true - /vite@5.0.10(@types/node@20.10.6): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + /vite@5.0.11(@types/node@20.10.6): + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5400,9 +5406,9 @@ packages: optional: true dependencies: '@types/node': 20.10.6 - esbuild: 0.19.10 - postcss: 8.4.32 - rollup: 4.9.1 + esbuild: 0.19.11 + postcss: 8.4.33 + rollup: 4.9.3 optionalDependencies: fsevents: 2.3.3 dev: true diff --git a/src/components/DeviceSelector.tsx b/src/components/DeviceSelector.tsx index 9c8a62de..d5cbae5d 100644 --- a/src/components/DeviceSelector.tsx +++ b/src/components/DeviceSelector.tsx @@ -5,7 +5,6 @@ import { useAppStore } from "@core/stores/appStore.js"; import { useDeviceStore } from "@core/stores/deviceStore.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import { - GithubIcon, HomeIcon, LanguagesIcon, MoonIcon, diff --git a/src/components/DeviceSelectorButton.tsx b/src/components/DeviceSelectorButton.tsx index 243c3e80..38dff36a 100644 --- a/src/components/DeviceSelectorButton.tsx +++ b/src/components/DeviceSelectorButton.tsx @@ -1,5 +1,3 @@ -import { cn } from "@app/core/utils/cn.js"; - export interface DeviceSelectorButtonProps { active: boolean; onClick: () => void; diff --git a/src/components/Dialog/ImportDialog.tsx b/src/components/Dialog/ImportDialog.tsx index 6691f90f..348549a8 100644 --- a/src/components/Dialog/ImportDialog.tsx +++ b/src/components/Dialog/ImportDialog.tsx @@ -26,14 +26,14 @@ export const ImportDialog = ({ open, onOpenChange, }: ImportDialogProps): JSX.Element => { - const [QRCodeURL, setQRCodeURL] = useState(""); + const [qrCodeUrl, setQrCodeUrl] = useState(""); const [channelSet, setChannelSet] = useState(); - const [validURL, setValidURL] = useState(false); + const [validUrl, setValidUrl] = useState(false); const { connection } = useDevice(); useEffect(() => { - const base64String = QRCodeURL.split("e/#")[1]; + const base64String = qrCodeUrl.split("e/#")[1]; const paddedString = base64String ?.padEnd(base64String.length + ((4 - (base64String.length % 4)) % 4), "=") .replace(/-/g, "+") @@ -42,12 +42,12 @@ export const ImportDialog = ({ setChannelSet( Protobuf.AppOnly.ChannelSet.fromBinary(toByteArray(paddedString)), ); - setValidURL(true); + setValidUrl(true); } catch (error) { - setValidURL(false); + setValidUrl(false); setChannelSet(undefined); } - }, [QRCodeURL]); + }, [qrCodeUrl]); const apply = () => { channelSet?.settings.map((ch, index) => { @@ -87,19 +87,19 @@ export const ImportDialog = ({
{ - setQRCodeURL(e.target.value); + setQrCodeUrl(e.target.value); }} /> - {validURL && ( + {validUrl && (
@@ -138,7 +138,7 @@ export const ImportDialog = ({ )}
- diff --git a/src/components/Dialog/NewDeviceDialog.tsx b/src/components/Dialog/NewDeviceDialog.tsx index dc4dd483..927e4277 100644 --- a/src/components/Dialog/NewDeviceDialog.tsx +++ b/src/components/Dialog/NewDeviceDialog.tsx @@ -4,7 +4,6 @@ import { Serial } from "@components/PageComponents/Connect/Serial.js"; import { Dialog, DialogContent, - DialogDescription, DialogHeader, DialogTitle, } from "@components/UI/Dialog.js"; diff --git a/src/components/Dialog/QRDialog.tsx b/src/components/Dialog/QRDialog.tsx index f31d3f4d..9a94e073 100644 --- a/src/components/Dialog/QRDialog.tsx +++ b/src/components/Dialog/QRDialog.tsx @@ -29,7 +29,7 @@ export const QRDialog = ({ channels, }: QRDialogProps): JSX.Element => { const [selectedChannels, setSelectedChannels] = useState([0]); - const [QRCodeURL, setQRCodeURL] = useState(""); + const [qrCodeUrl, setQrCodeUrl] = useState(""); const allChannels = Array.from(channels.values()); @@ -49,7 +49,7 @@ export const QRDialog = ({ .replace(/\+/g, "-") .replace(/\//g, "_"); - setQRCodeURL(`https://meshtastic.org/e/#${base64}`); + setQrCodeUrl(`https://meshtastic.org/e/#${base64}`); }, [channels, selectedChannels, loraConfig]); return ( @@ -92,18 +92,18 @@ export const QRDialog = ({
))}
- + diff --git a/src/components/Dialog/RebootDialog.tsx b/src/components/Dialog/RebootDialog.tsx index 3d7f8d7f..f4a591bf 100644 --- a/src/components/Dialog/RebootDialog.tsx +++ b/src/components/Dialog/RebootDialog.tsx @@ -3,7 +3,6 @@ import { Dialog, DialogContent, DialogDescription, - DialogFooter, DialogHeader, DialogTitle, } from "@components/UI/Dialog.js"; diff --git a/src/components/Form/DynamicForm.tsx b/src/components/Form/DynamicForm.tsx index cd58120f..65bee09b 100644 --- a/src/components/Form/DynamicForm.tsx +++ b/src/components/Form/DynamicForm.tsx @@ -8,7 +8,6 @@ import { H4 } from "@components/UI/Typography/H4.js"; import { Subtle } from "@components/UI/Typography/Subtle.js"; import { Control, - DeepPartial, DefaultValues, FieldValues, Path, diff --git a/src/components/Form/FormToggle.tsx b/src/components/Form/FormToggle.tsx index 6b0b1090..11d9a6cc 100644 --- a/src/components/Form/FormToggle.tsx +++ b/src/components/Form/FormToggle.tsx @@ -4,7 +4,7 @@ import type { } from "@components/Form/DynamicForm.js"; import { Switch } from "@components/UI/Switch.js"; import { ChangeEvent } from "react"; -import { Controller, FieldPathValue, FieldValues } from "react-hook-form"; +import { Controller, FieldValues } from "react-hook-form"; export interface ToggleFieldProps extends BaseFormBuilderProps { type: "toggle"; diff --git a/src/components/PageComponents/Connect/BLE.tsx b/src/components/PageComponents/Connect/BLE.tsx index 59a41f8a..fcadd9fc 100644 --- a/src/components/PageComponents/Connect/BLE.tsx +++ b/src/components/PageComponents/Connect/BLE.tsx @@ -4,7 +4,7 @@ import { useAppStore } from "@core/stores/appStore.js"; import { useDeviceStore } from "@core/stores/deviceStore.js"; import { subscribeAll } from "@core/subscriptions.js"; import { randId } from "@core/utils/randId.js"; -import { Constants, BleConnection } from "@meshtastic/js"; +import { BleConnection, Constants } from "@meshtastic/js"; import { useCallback, useEffect, useState } from "react"; export const BLE = (): JSX.Element => { diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index f01dd88d..0ee029a3 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -6,7 +6,6 @@ import type { Page } from "@core/stores/deviceStore.js"; import { EditIcon, LayersIcon, - LayoutGrid, LucideIcon, MapIcon, MessageSquareIcon, @@ -80,7 +79,7 @@ export const Sidebar = ({ children }: SidebarProps): JSX.Element => { { setActivePage(link.page); }} diff --git a/src/components/Toaster.tsx b/src/components/Toaster.tsx index 14f70b09..12ec486f 100644 --- a/src/components/Toaster.tsx +++ b/src/components/Toaster.tsx @@ -14,20 +14,16 @@ export function Toaster() { return ( - {toasts.map(function ({ id, title, description, action, ...props }) { - return ( - -
- {title && {title}} - {description && ( - {description} - )} -
- {action} - -
- ); - })} + {toasts.map(({ id, title, description, action, ...props }) => ( + +
+ {title && {title}} + {description && {description}} +
+ {action} + +
+ ))}
); diff --git a/src/components/UI/Sidebar/sidebarButton.tsx b/src/components/UI/Sidebar/sidebarButton.tsx index efe2238f..ef8f3ff6 100644 --- a/src/components/UI/Sidebar/sidebarButton.tsx +++ b/src/components/UI/Sidebar/sidebarButton.tsx @@ -4,7 +4,7 @@ import type { LucideIcon } from "lucide-react"; export interface SidebarButtonProps { label: string; active?: boolean; - icon?: LucideIcon; + Icon?: LucideIcon; element?: JSX.Element; onClick?: () => void; } @@ -12,7 +12,7 @@ export interface SidebarButtonProps { export const SidebarButton = ({ label, active, - icon: Icon, + Icon, element, onClick, }: SidebarButtonProps): JSX.Element => ( diff --git a/src/core/hooks/useToast.ts b/src/core/hooks/useToast.ts index 4ea790ce..aaca05fa 100644 --- a/src/core/hooks/useToast.ts +++ b/src/core/hooks/useToast.ts @@ -1,4 +1,4 @@ -import { useEffect, useState, ReactNode } from "react"; +import { ReactNode, useEffect, useState } from "react"; import type { ToastActionElement, ToastProps } from "@components/UI/Toast.js"; diff --git a/src/pages/Channels.tsx b/src/pages/Channels.tsx index 516e5413..4fe48244 100644 --- a/src/pages/Channels.tsx +++ b/src/pages/Channels.tsx @@ -4,7 +4,6 @@ import { TabsList, TabsTrigger, } from "@app/components/UI/Tabs.js"; -import { cn } from "@app/core/utils/cn.js"; import { Channel } from "@components/PageComponents/Channel.js"; import { PageLayout } from "@components/PageLayout.js"; import { Sidebar } from "@components/Sidebar.js"; diff --git a/src/pages/Config/ModuleConfig.tsx b/src/pages/Config/ModuleConfig.tsx index 39f7b004..ee8d5553 100644 --- a/src/pages/Config/ModuleConfig.tsx +++ b/src/pages/Config/ModuleConfig.tsx @@ -1,6 +1,6 @@ -import { NeighborInfo } from "@app/components/PageComponents/ModuleConfig/NeighborInfo.js"; import { AmbientLighting } from "@app/components/PageComponents/ModuleConfig/AmbientLighting.js"; import { DetectionSensor } from "@app/components/PageComponents/ModuleConfig/DetectionSensor.js"; +import { NeighborInfo } from "@app/components/PageComponents/ModuleConfig/NeighborInfo.js"; import { Audio } from "@components/PageComponents/ModuleConfig/Audio.js"; import { CannedMessage } from "@components/PageComponents/ModuleConfig/CannedMessage.js"; import { ExternalNotification } from "@components/PageComponents/ModuleConfig/ExternalNotification.js"; diff --git a/src/pages/Config/index.tsx b/src/pages/Config/index.tsx index ac2706f7..c568670a 100644 --- a/src/pages/Config/index.tsx +++ b/src/pages/Config/index.tsx @@ -24,13 +24,13 @@ export const ConfigPage = (): JSX.Element => { label="Radio Config" active={activeConfigSection === "device"} onClick={() => setActiveConfigSection("device")} - icon={SettingsIcon} + Icon={SettingsIcon} /> setActiveConfigSection("module")} - icon={BoxesIcon} + Icon={BoxesIcon} /> diff --git a/src/validation/channel.ts b/src/validation/channel.ts index f9296357..336e35e1 100644 --- a/src/validation/channel.ts +++ b/src/validation/channel.ts @@ -1,3 +1,5 @@ +import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; import { IsBoolean, IsEnum, @@ -6,8 +8,6 @@ import { IsString, Length, } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; -import type { Message } from "@bufbuild/protobuf"; export class ChannelValidation implements Omit diff --git a/src/validation/config/bluetooth.ts b/src/validation/config/bluetooth.ts index 63f0b4da..65a0d0be 100644 --- a/src/validation/config/bluetooth.ts +++ b/src/validation/config/bluetooth.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt } from "class-validator"; export class BluetoothValidation implements Omit diff --git a/src/validation/config/device.ts b/src/validation/config/device.ts index 165c94d9..728625bf 100644 --- a/src/validation/config/device.ts +++ b/src/validation/config/device.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt } from "class-validator"; export class DeviceValidation implements Omit diff --git a/src/validation/config/display.ts b/src/validation/config/display.ts index 48df479b..68d0a306 100644 --- a/src/validation/config/display.ts +++ b/src/validation/config/display.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt } from "class-validator"; export class DisplayValidation implements Omit diff --git a/src/validation/config/lora.ts b/src/validation/config/lora.ts index 7210a053..42060ce8 100644 --- a/src/validation/config/lora.ts +++ b/src/validation/config/lora.ts @@ -1,6 +1,6 @@ -import { IsArray, IsBoolean, IsEnum, IsInt, Max, Min } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsArray, IsBoolean, IsEnum, IsInt, Max, Min } from "class-validator"; export class LoRaValidation implements Omit diff --git a/src/validation/config/network.ts b/src/validation/config/network.ts index 977938eb..8f851d69 100644 --- a/src/validation/config/network.ts +++ b/src/validation/config/network.ts @@ -1,3 +1,5 @@ +import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; import { IsBoolean, IsEnum, @@ -6,8 +8,6 @@ import { IsString, Length, } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; -import type { Message } from "@bufbuild/protobuf"; export class NetworkValidation implements diff --git a/src/validation/config/position.ts b/src/validation/config/position.ts index 6458e946..9b38775a 100644 --- a/src/validation/config/position.ts +++ b/src/validation/config/position.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class PositionValidation implements Omit diff --git a/src/validation/config/power.ts b/src/validation/config/power.ts index 27946782..f1cc1691 100644 --- a/src/validation/config/power.ts +++ b/src/validation/config/power.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt, Max, Min } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt, Max, Min } from "class-validator"; export class PowerValidation implements Omit diff --git a/src/validation/moduleConfig/ambientLighting.ts b/src/validation/moduleConfig/ambientLighting.ts index ac097fa4..2e72f00e 100644 --- a/src/validation/moduleConfig/ambientLighting.ts +++ b/src/validation/moduleConfig/ambientLighting.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class AmbientLightingValidation implements diff --git a/src/validation/moduleConfig/audio.ts b/src/validation/moduleConfig/audio.ts index d8cadcac..da527a66 100644 --- a/src/validation/moduleConfig/audio.ts +++ b/src/validation/moduleConfig/audio.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt } from "class-validator"; export class AudioValidation implements Omit diff --git a/src/validation/moduleConfig/cannedMessage.ts b/src/validation/moduleConfig/cannedMessage.ts index d1f89197..85c8d6a7 100644 --- a/src/validation/moduleConfig/cannedMessage.ts +++ b/src/validation/moduleConfig/cannedMessage.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt, Length } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt, Length } from "class-validator"; export class CannedMessageValidation implements diff --git a/src/validation/moduleConfig/detectionSensor.ts b/src/validation/moduleConfig/detectionSensor.ts index 738f5bc8..3e026fee 100644 --- a/src/validation/moduleConfig/detectionSensor.ts +++ b/src/validation/moduleConfig/detectionSensor.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt, Length } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt, Length } from "class-validator"; export class DetectionSensorValidation implements diff --git a/src/validation/moduleConfig/externalNotification.ts b/src/validation/moduleConfig/externalNotification.ts index 91508efa..cf08a321 100644 --- a/src/validation/moduleConfig/externalNotification.ts +++ b/src/validation/moduleConfig/externalNotification.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class ExternalNotificationValidation implements diff --git a/src/validation/moduleConfig/mqtt.ts b/src/validation/moduleConfig/mqtt.ts index 99e80e33..78b9febc 100644 --- a/src/validation/moduleConfig/mqtt.ts +++ b/src/validation/moduleConfig/mqtt.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsString, Length } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsString, Length } from "class-validator"; export class MqttValidation implements Omit diff --git a/src/validation/moduleConfig/neighborInfo.ts b/src/validation/moduleConfig/neighborInfo.ts index 5381f777..f6b48a01 100644 --- a/src/validation/moduleConfig/neighborInfo.ts +++ b/src/validation/moduleConfig/neighborInfo.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class NeighborInfoValidation implements diff --git a/src/validation/moduleConfig/rangeTest.ts b/src/validation/moduleConfig/rangeTest.ts index eb475cb9..9cc9a96e 100644 --- a/src/validation/moduleConfig/rangeTest.ts +++ b/src/validation/moduleConfig/rangeTest.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class RangeTestValidation implements diff --git a/src/validation/moduleConfig/serial.ts b/src/validation/moduleConfig/serial.ts index 9b5d1c6d..75861abd 100644 --- a/src/validation/moduleConfig/serial.ts +++ b/src/validation/moduleConfig/serial.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsEnum, IsInt } from "class-validator"; -import { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsEnum, IsInt } from "class-validator"; export class SerialValidation implements diff --git a/src/validation/moduleConfig/storeForward.ts b/src/validation/moduleConfig/storeForward.ts index 5c2a0e7f..82d9f4c2 100644 --- a/src/validation/moduleConfig/storeForward.ts +++ b/src/validation/moduleConfig/storeForward.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class StoreForwardValidation implements diff --git a/src/validation/moduleConfig/telemetry.ts b/src/validation/moduleConfig/telemetry.ts index ce67dab2..48b89025 100644 --- a/src/validation/moduleConfig/telemetry.ts +++ b/src/validation/moduleConfig/telemetry.ts @@ -1,6 +1,6 @@ -import { IsBoolean, IsInt } from "class-validator"; -import type { Protobuf } from "@meshtastic/js"; import type { Message } from "@bufbuild/protobuf"; +import type { Protobuf } from "@meshtastic/js"; +import { IsBoolean, IsInt } from "class-validator"; export class TelemetryValidation implements