From daf7c22b6067265e81bd90f9345e66e401f16a6e Mon Sep 17 00:00:00 2001 From: Dan Ditomaso Date: Sun, 26 Apr 2026 11:10:05 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20move=20packages/web=20=E2=86=92=20apps?= =?UTF-8?q?/web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Web is a deployable SPA, not a library — no @meshtastic scope, no exports map, no npm/JSR publish target, no other workspace member depends on it. Conventional pnpm/Turbo/Nx layout puts deployables under apps/ and libraries under packages/. Doing the move now (after PR #9 / #10 / unread / useConnections refactor land but before Phase C ships) so the lib-only packages/* directory remains stable as we delete packages/core. Mechanics: - pnpm-workspace.yaml: add `apps/*` to packages. - git mv packages/web apps/web (entire directory tree). - vite.config.ts uses process.cwd(), so no internal path edits needed. - pnpm filter commands still resolve by package name (`pnpm --filter meshtastic-web run build`) — no script changes. External-path consumers updated: - README.md table row. - tsconfig.json reference. - 7 GH workflows (pr.yml, nightly.yml, release-web.yml, the three crowdin-*.yml, release-packages.yml). The packages/release-packages.yml `packages/* | grep -v packages/web` filter is now redundant since web isn't in packages/* anymore — it collapses to plain `ls -d packages/*`. Verified: web build clean, web 236 / sdk 65 / sdk-react 8 / storage 30 tests all pass. --- .github/workflows/crowdin-download.yml | 2 +- .github/workflows/crowdin-upload-sources.yml | 4 +- .../workflows/crowdin-upload-translations.yml | 2 +- .github/workflows/nightly.yml | 12 +- .github/workflows/pr.yml | 2 +- .github/workflows/release-packages.yml | 2 +- .github/workflows/release-web.yml | 10 +- .gitignore | 3 + .vscode/extensions.json | 2 +- README.md | 2 +- TESTING.md | 4 +- {packages => apps}/web/.npmrc | 0 {packages => apps}/web/.oxfmtrc.json | 0 {packages => apps}/web/.oxlintrc.json | 0 {packages => apps}/web/CONTRIBUTING.md | 0 .../web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md | 0 .../web/CONTRIBUTING_TRANSLATIONS.md | 0 {packages => apps}/web/README.md | 0 {packages => apps}/web/crowdin.yml | 0 {packages => apps}/web/index.html | 0 {packages => apps}/web/infra/.dockerignore | 0 {packages => apps}/web/infra/Containerfile | 0 {packages => apps}/web/infra/default.conf | 0 {packages => apps}/web/package.json | 0 .../web/public/apple-touch-icon.png | Bin {packages => apps}/web/public/chirpy.svg | 0 {packages => apps}/web/public/devices/diy.svg | 0 .../devices/heltec-ht62-esp32c3-sx1262.svg | 0 .../devices/heltec-mesh-node-t114-case.svg | 0 .../public/devices/heltec-mesh-node-t114.svg | 0 .../web/public/devices/heltec-v3-case.svg | 0 .../web/public/devices/heltec-v3.svg | 0 .../devices/heltec-vision-master-e213.svg | 0 .../devices/heltec-vision-master-e290.svg | 0 .../devices/heltec-vision-master-t190.svg | 0 .../devices/heltec-wireless-paper-V1_0.svg | 0 .../public/devices/heltec-wireless-paper.svg | 0 .../devices/heltec-wireless-tracker-V1-0.svg | 0 .../devices/heltec-wireless-tracker.svg | 0 .../web/public/devices/heltec-wsl-v3.svg | 0 .../web/public/devices/nano-g2-ultra.svg | 0 .../web/public/devices/pico.svg | 0 .../web/public/devices/promicro.svg | 0 .../web/public/devices/rak-wismeshtap.svg | 0 .../web/public/devices/rak11310.svg | 0 .../web/public/devices/rak2560.svg | 0 .../web/public/devices/rak4631.svg | 0 .../web/public/devices/rak4631_case.svg | 0 .../web/public/devices/rpipicow.svg | 0 .../devices/seeed-sensecap-indicator.svg | 0 .../web/public/devices/seeed-xiao-s3.svg | 0 .../web/public/devices/station-g2.svg | 0 .../web/public/devices/t-deck.svg | 0 .../web/public/devices/t-echo.svg | 0 .../web/public/devices/t-watch-s3.svg | 0 .../web/public/devices/tbeam-s3-core.svg | 0 .../web/public/devices/tbeam.svg | 0 .../web/public/devices/tlora-c6.svg | 0 .../web/public/devices/tlora-t3s3-epaper.svg | 0 .../web/public/devices/tlora-t3s3-v1.svg | 0 .../web/public/devices/tlora-v2-1-1_6.svg | 0 .../web/public/devices/tlora-v2-1-1_8.svg | 0 .../web/public/devices/tracker-t1000-e.svg | 0 .../web/public/devices/unknown.svg | 0 .../web/public/devices/wio-tracker-wm1110.svg | 0 .../web/public/devices/wm1110_dev_kit.svg | 0 {packages => apps}/web/public/favicon.ico | Bin .../public/fonts/InterVariable-Italic.woff2 | Bin .../web/public/fonts/InterVariable.woff2 | Bin .../public/i18n/locales/be-BY/channels.json | 0 .../i18n/locales/be-BY/commandPalette.json | 0 .../web/public/i18n/locales/be-BY/common.json | 0 .../web/public/i18n/locales/be-BY/config.json | 0 .../i18n/locales/be-BY/connections.json | 0 .../i18n/locales/be-BY/deviceConfig.json | 0 .../web/public/i18n/locales/be-BY/dialog.json | 0 .../web/public/i18n/locales/be-BY/map.json | 0 .../public/i18n/locales/be-BY/messages.json | 0 .../i18n/locales/be-BY/moduleConfig.json | 0 .../web/public/i18n/locales/be-BY/nodes.json | 0 .../web/public/i18n/locales/be-BY/ui.json | 0 .../public/i18n/locales/bg-BG/channels.json | 0 .../i18n/locales/bg-BG/commandPalette.json | 0 .../web/public/i18n/locales/bg-BG/common.json | 0 .../web/public/i18n/locales/bg-BG/config.json | 0 .../i18n/locales/bg-BG/connections.json | 0 .../i18n/locales/bg-BG/deviceConfig.json | 0 .../web/public/i18n/locales/bg-BG/dialog.json | 0 .../web/public/i18n/locales/bg-BG/map.json | 0 .../public/i18n/locales/bg-BG/messages.json | 0 .../i18n/locales/bg-BG/moduleConfig.json | 0 .../web/public/i18n/locales/bg-BG/nodes.json | 0 .../web/public/i18n/locales/bg-BG/ui.json | 0 .../public/i18n/locales/cs-CZ/channels.json | 0 .../i18n/locales/cs-CZ/commandPalette.json | 0 .../web/public/i18n/locales/cs-CZ/common.json | 0 .../web/public/i18n/locales/cs-CZ/config.json | 0 .../i18n/locales/cs-CZ/connections.json | 0 .../i18n/locales/cs-CZ/deviceConfig.json | 0 .../web/public/i18n/locales/cs-CZ/dialog.json | 0 .../web/public/i18n/locales/cs-CZ/map.json | 0 .../public/i18n/locales/cs-CZ/messages.json | 0 .../i18n/locales/cs-CZ/moduleConfig.json | 0 .../web/public/i18n/locales/cs-CZ/nodes.json | 0 .../web/public/i18n/locales/cs-CZ/ui.json | 0 .../public/i18n/locales/de-DE/channels.json | 0 .../i18n/locales/de-DE/commandPalette.json | 0 .../web/public/i18n/locales/de-DE/common.json | 0 .../web/public/i18n/locales/de-DE/config.json | 0 .../i18n/locales/de-DE/connections.json | 0 .../i18n/locales/de-DE/deviceConfig.json | 0 .../web/public/i18n/locales/de-DE/dialog.json | 0 .../web/public/i18n/locales/de-DE/map.json | 0 .../public/i18n/locales/de-DE/messages.json | 0 .../i18n/locales/de-DE/moduleConfig.json | 0 .../web/public/i18n/locales/de-DE/nodes.json | 0 .../web/public/i18n/locales/de-DE/ui.json | 0 .../web/public/i18n/locales/en/channels.json | 0 .../i18n/locales/en/commandPalette.json | 0 .../web/public/i18n/locales/en/common.json | 1 + .../web/public/i18n/locales/en/config.json | 0 .../public/i18n/locales/en/connections.json | 26 +- .../web/public/i18n/locales/en/dialog.json | 0 .../web/public/i18n/locales/en/map.json | 0 .../web/public/i18n/locales/en/messages.json | 0 .../public/i18n/locales/en/moduleConfig.json | 0 .../web/public/i18n/locales/en/nodes.json | 0 .../web/public/i18n/locales/en/ui.json | 0 .../public/i18n/locales/es-ES/channels.json | 0 .../i18n/locales/es-ES/commandPalette.json | 0 .../web/public/i18n/locales/es-ES/common.json | 0 .../web/public/i18n/locales/es-ES/config.json | 0 .../i18n/locales/es-ES/connections.json | 0 .../i18n/locales/es-ES/deviceConfig.json | 0 .../web/public/i18n/locales/es-ES/dialog.json | 0 .../web/public/i18n/locales/es-ES/map.json | 0 .../public/i18n/locales/es-ES/messages.json | 0 .../i18n/locales/es-ES/moduleConfig.json | 0 .../web/public/i18n/locales/es-ES/nodes.json | 0 .../web/public/i18n/locales/es-ES/ui.json | 0 .../public/i18n/locales/fi-FI/channels.json | 0 .../i18n/locales/fi-FI/commandPalette.json | 0 .../web/public/i18n/locales/fi-FI/common.json | 0 .../web/public/i18n/locales/fi-FI/config.json | 0 .../i18n/locales/fi-FI/connections.json | 0 .../i18n/locales/fi-FI/deviceConfig.json | 0 .../web/public/i18n/locales/fi-FI/dialog.json | 0 .../web/public/i18n/locales/fi-FI/map.json | 0 .../public/i18n/locales/fi-FI/messages.json | 0 .../i18n/locales/fi-FI/moduleConfig.json | 0 .../web/public/i18n/locales/fi-FI/nodes.json | 0 .../web/public/i18n/locales/fi-FI/ui.json | 0 .../public/i18n/locales/fr-FR/channels.json | 0 .../i18n/locales/fr-FR/commandPalette.json | 0 .../web/public/i18n/locales/fr-FR/common.json | 0 .../web/public/i18n/locales/fr-FR/config.json | 0 .../i18n/locales/fr-FR/connections.json | 0 .../i18n/locales/fr-FR/deviceConfig.json | 0 .../web/public/i18n/locales/fr-FR/dialog.json | 0 .../web/public/i18n/locales/fr-FR/map.json | 0 .../public/i18n/locales/fr-FR/messages.json | 0 .../i18n/locales/fr-FR/moduleConfig.json | 0 .../web/public/i18n/locales/fr-FR/nodes.json | 0 .../web/public/i18n/locales/fr-FR/ui.json | 0 .../public/i18n/locales/hu-HU/channels.json | 0 .../i18n/locales/hu-HU/commandPalette.json | 0 .../web/public/i18n/locales/hu-HU/common.json | 0 .../web/public/i18n/locales/hu-HU/config.json | 0 .../i18n/locales/hu-HU/connections.json | 0 .../i18n/locales/hu-HU/deviceConfig.json | 0 .../web/public/i18n/locales/hu-HU/dialog.json | 0 .../web/public/i18n/locales/hu-HU/map.json | 0 .../public/i18n/locales/hu-HU/messages.json | 0 .../i18n/locales/hu-HU/moduleConfig.json | 0 .../web/public/i18n/locales/hu-HU/nodes.json | 0 .../web/public/i18n/locales/hu-HU/ui.json | 0 .../public/i18n/locales/it-IT/channels.json | 0 .../i18n/locales/it-IT/commandPalette.json | 0 .../web/public/i18n/locales/it-IT/common.json | 0 .../web/public/i18n/locales/it-IT/config.json | 0 .../i18n/locales/it-IT/connections.json | 0 .../i18n/locales/it-IT/deviceConfig.json | 0 .../web/public/i18n/locales/it-IT/dialog.json | 0 .../web/public/i18n/locales/it-IT/map.json | 0 .../public/i18n/locales/it-IT/messages.json | 0 .../i18n/locales/it-IT/moduleConfig.json | 0 .../web/public/i18n/locales/it-IT/nodes.json | 0 .../web/public/i18n/locales/it-IT/ui.json | 0 .../public/i18n/locales/ja-JP/channels.json | 0 .../i18n/locales/ja-JP/commandPalette.json | 0 .../web/public/i18n/locales/ja-JP/common.json | 0 .../web/public/i18n/locales/ja-JP/config.json | 0 .../i18n/locales/ja-JP/connections.json | 0 .../i18n/locales/ja-JP/deviceConfig.json | 0 .../web/public/i18n/locales/ja-JP/dialog.json | 0 .../web/public/i18n/locales/ja-JP/map.json | 0 .../public/i18n/locales/ja-JP/messages.json | 0 .../i18n/locales/ja-JP/moduleConfig.json | 0 .../web/public/i18n/locales/ja-JP/nodes.json | 0 .../web/public/i18n/locales/ja-JP/ui.json | 0 .../public/i18n/locales/ko-KR/channels.json | 0 .../i18n/locales/ko-KR/commandPalette.json | 0 .../web/public/i18n/locales/ko-KR/common.json | 0 .../web/public/i18n/locales/ko-KR/config.json | 0 .../i18n/locales/ko-KR/connections.json | 0 .../i18n/locales/ko-KR/deviceConfig.json | 0 .../web/public/i18n/locales/ko-KR/dialog.json | 0 .../web/public/i18n/locales/ko-KR/map.json | 0 .../public/i18n/locales/ko-KR/messages.json | 0 .../i18n/locales/ko-KR/moduleConfig.json | 0 .../web/public/i18n/locales/ko-KR/nodes.json | 0 .../web/public/i18n/locales/ko-KR/ui.json | 0 .../public/i18n/locales/nl-NL/channels.json | 0 .../i18n/locales/nl-NL/commandPalette.json | 0 .../web/public/i18n/locales/nl-NL/common.json | 0 .../web/public/i18n/locales/nl-NL/config.json | 0 .../i18n/locales/nl-NL/connections.json | 0 .../i18n/locales/nl-NL/deviceConfig.json | 0 .../web/public/i18n/locales/nl-NL/dialog.json | 0 .../web/public/i18n/locales/nl-NL/map.json | 0 .../public/i18n/locales/nl-NL/messages.json | 0 .../i18n/locales/nl-NL/moduleConfig.json | 0 .../web/public/i18n/locales/nl-NL/nodes.json | 0 .../web/public/i18n/locales/nl-NL/ui.json | 0 .../public/i18n/locales/pl-PL/channels.json | 0 .../i18n/locales/pl-PL/commandPalette.json | 0 .../web/public/i18n/locales/pl-PL/common.json | 0 .../web/public/i18n/locales/pl-PL/config.json | 0 .../i18n/locales/pl-PL/connections.json | 0 .../i18n/locales/pl-PL/deviceConfig.json | 0 .../web/public/i18n/locales/pl-PL/dialog.json | 0 .../web/public/i18n/locales/pl-PL/map.json | 0 .../public/i18n/locales/pl-PL/messages.json | 0 .../i18n/locales/pl-PL/moduleConfig.json | 0 .../web/public/i18n/locales/pl-PL/nodes.json | 0 .../web/public/i18n/locales/pl-PL/ui.json | 0 .../public/i18n/locales/pt-BR/channels.json | 0 .../i18n/locales/pt-BR/commandPalette.json | 0 .../web/public/i18n/locales/pt-BR/common.json | 0 .../web/public/i18n/locales/pt-BR/config.json | 0 .../i18n/locales/pt-BR/connections.json | 0 .../i18n/locales/pt-BR/deviceConfig.json | 0 .../web/public/i18n/locales/pt-BR/dialog.json | 0 .../web/public/i18n/locales/pt-BR/map.json | 0 .../public/i18n/locales/pt-BR/messages.json | 0 .../i18n/locales/pt-BR/moduleConfig.json | 0 .../web/public/i18n/locales/pt-BR/nodes.json | 0 .../web/public/i18n/locales/pt-BR/ui.json | 0 .../public/i18n/locales/pt-PT/channels.json | 0 .../i18n/locales/pt-PT/commandPalette.json | 0 .../web/public/i18n/locales/pt-PT/common.json | 0 .../web/public/i18n/locales/pt-PT/config.json | 0 .../i18n/locales/pt-PT/connections.json | 0 .../i18n/locales/pt-PT/deviceConfig.json | 0 .../web/public/i18n/locales/pt-PT/dialog.json | 0 .../web/public/i18n/locales/pt-PT/map.json | 0 .../public/i18n/locales/pt-PT/messages.json | 0 .../i18n/locales/pt-PT/moduleConfig.json | 0 .../web/public/i18n/locales/pt-PT/nodes.json | 0 .../web/public/i18n/locales/pt-PT/ui.json | 0 .../public/i18n/locales/ru-RU/channels.json | 0 .../i18n/locales/ru-RU/commandPalette.json | 0 .../web/public/i18n/locales/ru-RU/common.json | 0 .../web/public/i18n/locales/ru-RU/config.json | 0 .../i18n/locales/ru-RU/connections.json | 0 .../web/public/i18n/locales/ru-RU/dialog.json | 0 .../web/public/i18n/locales/ru-RU/map.json | 0 .../public/i18n/locales/ru-RU/messages.json | 0 .../i18n/locales/ru-RU/moduleConfig.json | 0 .../web/public/i18n/locales/ru-RU/nodes.json | 0 .../web/public/i18n/locales/ru-RU/ui.json | 0 .../public/i18n/locales/sv-SE/channels.json | 0 .../i18n/locales/sv-SE/commandPalette.json | 0 .../web/public/i18n/locales/sv-SE/common.json | 0 .../web/public/i18n/locales/sv-SE/config.json | 0 .../i18n/locales/sv-SE/connections.json | 0 .../i18n/locales/sv-SE/deviceConfig.json | 0 .../web/public/i18n/locales/sv-SE/dialog.json | 0 .../web/public/i18n/locales/sv-SE/map.json | 0 .../public/i18n/locales/sv-SE/messages.json | 0 .../i18n/locales/sv-SE/moduleConfig.json | 0 .../web/public/i18n/locales/sv-SE/nodes.json | 0 .../web/public/i18n/locales/sv-SE/ui.json | 0 .../public/i18n/locales/tr-TR/channels.json | 0 .../i18n/locales/tr-TR/commandPalette.json | 0 .../web/public/i18n/locales/tr-TR/common.json | 0 .../web/public/i18n/locales/tr-TR/config.json | 0 .../i18n/locales/tr-TR/connections.json | 0 .../i18n/locales/tr-TR/deviceConfig.json | 0 .../web/public/i18n/locales/tr-TR/dialog.json | 0 .../web/public/i18n/locales/tr-TR/map.json | 0 .../public/i18n/locales/tr-TR/messages.json | 0 .../i18n/locales/tr-TR/moduleConfig.json | 0 .../web/public/i18n/locales/tr-TR/nodes.json | 0 .../web/public/i18n/locales/tr-TR/ui.json | 0 .../public/i18n/locales/uk-UA/channels.json | 0 .../i18n/locales/uk-UA/commandPalette.json | 0 .../web/public/i18n/locales/uk-UA/common.json | 0 .../web/public/i18n/locales/uk-UA/config.json | 0 .../i18n/locales/uk-UA/connections.json | 0 .../i18n/locales/uk-UA/deviceConfig.json | 0 .../web/public/i18n/locales/uk-UA/dialog.json | 0 .../web/public/i18n/locales/uk-UA/map.json | 0 .../public/i18n/locales/uk-UA/messages.json | 0 .../i18n/locales/uk-UA/moduleConfig.json | 0 .../web/public/i18n/locales/uk-UA/nodes.json | 0 .../web/public/i18n/locales/uk-UA/ui.json | 0 .../public/i18n/locales/zh-CN/channels.json | 0 .../i18n/locales/zh-CN/commandPalette.json | 0 .../web/public/i18n/locales/zh-CN/common.json | 0 .../web/public/i18n/locales/zh-CN/config.json | 0 .../i18n/locales/zh-CN/connections.json | 0 .../i18n/locales/zh-CN/deviceConfig.json | 0 .../web/public/i18n/locales/zh-CN/dialog.json | 0 .../web/public/i18n/locales/zh-CN/map.json | 0 .../public/i18n/locales/zh-CN/messages.json | 0 .../i18n/locales/zh-CN/moduleConfig.json | 0 .../web/public/i18n/locales/zh-CN/nodes.json | 0 .../web/public/i18n/locales/zh-CN/ui.json | 0 .../public/i18n/locales/zh-TW/channels.json | 0 .../i18n/locales/zh-TW/commandPalette.json | 0 .../web/public/i18n/locales/zh-TW/common.json | 0 .../web/public/i18n/locales/zh-TW/config.json | 0 .../i18n/locales/zh-TW/connections.json | 0 .../public/i18n/locales/zh-TW/dashboard.json | 0 .../web/public/i18n/locales/zh-TW/dialog.json | 0 .../web/public/i18n/locales/zh-TW/map.json | 0 .../public/i18n/locales/zh-TW/messages.json | 0 .../i18n/locales/zh-TW/moduleConfig.json | 0 .../web/public/i18n/locales/zh-TW/nodes.json | 0 .../web/public/i18n/locales/zh-TW/ui.json | 0 {packages => apps}/web/public/logo.svg | 0 {packages => apps}/web/public/robots.txt | 0 .../web/public/site.webmanifest | 0 {packages => apps}/web/src/App.tsx | 0 {packages => apps}/web/src/DeviceWrapper.tsx | 0 .../web/src/__mocks__/README.md | 0 .../src/__mocks__/components/UI/Button.tsx | 0 .../src/__mocks__/components/UI/Checkbox.tsx | 0 .../__mocks__/components/UI/Dialog/Dialog.tsx | 0 .../web/src/__mocks__/components/UI/Label.tsx | 0 .../web/src/__mocks__/components/UI/Link.tsx | 0 .../Badge/ConnectionStatusBadge.tsx | 0 .../src/components/Badge/SupportedBadge.tsx | 0 .../web/src/components/BatteryStatus.tsx | 0 .../src/components/CommandPalette/index.tsx | 0 .../web/src/components/DeviceInfoPanel.tsx | 0 .../AddConnectionDialog.tsx | 0 .../Dialog/AddConnectionDialog/validation.ts | 0 .../ClearAllStoresDialog.test.tsx | 0 .../ClearAllStoresDialog.tsx | 0 .../ClientNotificationDialog.tsx | 0 .../DeleteMessagesDialog.test.tsx | 0 .../DeleteMessagesDialog.tsx | 0 .../src/components/Dialog/DialogManager.tsx | 0 .../src/components/Dialog/DialogWrapper.tsx | 0 .../FactoryResetConfigDialog.test.tsx | 0 .../FactoryResetConfigDialog.tsx | 0 .../FactoryResetDeviceDialog.test.tsx | 0 .../FactoryResetDeviceDialog.tsx | 0 .../src/components/Dialog/ImportDialog.tsx | 0 .../Dialog/LocationResponseDialog.tsx | 0 .../components/Dialog/ManagedModeDialog.tsx | 0 .../src/components/Dialog/NewDeviceDialog.tsx | 0 .../NodeDetailsDialog/NodeDetailsDialog.tsx | 0 .../src/components/Dialog/PKIBackupDialog.tsx | 0 .../components/Dialog/PkiRegenerateDialog.tsx | 0 .../web/src/components/Dialog/QRDialog.tsx | 0 .../components/Dialog/RebootDialog.test.tsx | 0 .../src/components/Dialog/RebootDialog.tsx | 0 .../RefreshKeysDialog.test.tsx | 0 .../RefreshKeysDialog/RefreshKeysDialog.tsx | 0 .../RefreshKeysDialog/useRefreshKeysDialog.ts | 0 .../components/Dialog/RemoveNodeDialog.tsx | 0 .../ResetNodeDbDialog.test.tsx | 0 .../ResetNodeDbDialog/ResetNodeDbDialog.tsx | 0 .../src/components/Dialog/ShutdownDialog.tsx | 0 .../Dialog/TracerouteResponseDialog.tsx | 0 .../UnsafeRolesDialog/UnsafeRolesDialog.tsx | 0 .../useUnsafeRolesDialog.test.tsx | 0 .../UnsafeRolesDialog/useUnsafeRolesDialog.ts | 0 .../web/src/components/Dialog/useDialog.ts | 0 .../web/src/components/Form/DynamicForm.tsx | 0 .../src/components/Form/DynamicFormField.tsx | 0 .../web/src/components/Form/FormInput.tsx | 0 .../src/components/Form/FormMultiSelect.tsx | 0 .../components/Form/FormPasswordGenerator.tsx | 0 .../web/src/components/Form/FormSelect.tsx | 0 .../web/src/components/Form/FormToggle.tsx | 0 .../web/src/components/Form/FormWrapper.tsx | 0 .../src/components/Form/createZodResolver.ts | 0 .../web/src/components/KeyBackupReminder.tsx | 0 .../web/src/components/LanguageSwitcher.tsx | 0 {packages => apps}/web/src/components/Map.tsx | 0 .../PageComponents/Channels/Channel.tsx | 0 .../PageComponents/Channels/Channels.tsx | 0 .../Connections/ConnectionStatusBadge.tsx | 0 .../Map/Layers/HeatmapLayer.tsx | 0 .../PageComponents/Map/Layers/NodesLayer.tsx | 0 .../Map/Layers/PrecisionLayer.tsx | 0 .../PageComponents/Map/Layers/SNRLayer.tsx | 0 .../Map/Layers/WaypointLayer.tsx | 0 .../PageComponents/Map/Markers/NodeMarker.tsx | 0 .../PageComponents/Map/Markers/StackBadge.tsx | 0 .../PageComponents/Map/Popups/NodeDetail.tsx | 0 .../Map/Popups/PopupWrapper.tsx | 0 .../Map/Popups/WaypointDetail.tsx | 0 .../PageComponents/Map/Tools/MapLayerTool.tsx | 0 .../components/PageComponents/Map/cluster.ts | 0 .../PageComponents/Messages/ChannelChat.tsx | 0 .../Messages/MessageActionsMenu.tsx | 0 .../Messages/MessageInput.test.tsx | 0 .../PageComponents/Messages/MessageInput.tsx | 0 .../PageComponents/Messages/MessageItem.tsx | 0 .../Messages/TraceRoute.test.tsx | 0 .../PageComponents/Messages/TraceRoute.tsx | 0 .../ModuleConfig/AmbientLighting.tsx | 0 .../PageComponents/ModuleConfig/Audio.tsx | 0 .../ModuleConfig/CannedMessage.tsx | 0 .../ModuleConfig/DetectionSensor.tsx | 0 .../ModuleConfig/ExternalNotification.tsx | 0 .../PageComponents/ModuleConfig/MQTT.tsx | 0 .../ModuleConfig/NeighborInfo.tsx | 0 .../ModuleConfig/Paxcounter.tsx | 0 .../PageComponents/ModuleConfig/RangeTest.tsx | 0 .../PageComponents/ModuleConfig/Serial.tsx | 0 .../ModuleConfig/StoreForward.tsx | 0 .../PageComponents/ModuleConfig/Telemetry.tsx | 0 .../PageComponents/Settings/Bluetooth.tsx | 0 .../PageComponents/Settings/Device/index.tsx | 0 .../PageComponents/Settings/Display.tsx | 0 .../PageComponents/Settings/LoRa.tsx | 0 .../PageComponents/Settings/Network/index.tsx | 0 .../PageComponents/Settings/Position.tsx | 0 .../PageComponents/Settings/Power.tsx | 0 .../Settings/Security/Security.tsx | 0 .../PageComponents/Settings/User.tsx | 0 .../web/src/components/PageLayout.tsx | 0 .../web/src/components/Sidebar.tsx | 0 .../web/src/components/ThemeSwitcher.tsx | 0 .../web/src/components/Toaster.tsx | 0 .../web/src/components/UI/Accordion.tsx | 0 .../web/src/components/UI/AlertDialog.tsx | 0 .../web/src/components/UI/Avatar.tsx | 0 .../web/src/components/UI/Badge.tsx | 0 .../web/src/components/UI/Button.tsx | 0 .../web/src/components/UI/Card.tsx | 0 .../components/UI/Checkbox/Checkbox.test.tsx | 0 .../web/src/components/UI/Checkbox/index.tsx | 0 .../web/src/components/UI/Command.tsx | 0 .../web/src/components/UI/Dialog.tsx | 0 .../web/src/components/UI/DropdownMenu.tsx | 0 .../web/src/components/UI/ErrorPage.tsx | 0 .../web/src/components/UI/Footer.tsx | 0 .../web/src/components/UI/Generator.tsx | 0 .../web/src/components/UI/Input.tsx | 0 .../web/src/components/UI/Label.tsx | 0 .../web/src/components/UI/Menubar.tsx | 0 .../web/src/components/UI/MultiSelect.tsx | 0 .../web/src/components/UI/Popover.tsx | 0 .../web/src/components/UI/ScrollArea.tsx | 0 .../web/src/components/UI/Select.tsx | 0 .../web/src/components/UI/Separator.tsx | 0 .../components/UI/Sidebar/SidebarButton.tsx | 0 .../components/UI/Sidebar/SidebarSection.tsx | 0 .../web/src/components/UI/Skeleton.tsx | 0 .../web/src/components/UI/Slider.tsx | 0 .../web/src/components/UI/Spinner.tsx | 0 .../web/src/components/UI/Switch.tsx | 0 .../web/src/components/UI/Tabs.tsx | 0 .../web/src/components/UI/Toast.tsx | 0 .../web/src/components/UI/ToggleGroup.tsx | 0 .../web/src/components/UI/Tooltip.tsx | 0 .../components/UI/Typography/Blockquote.tsx | 0 .../web/src/components/UI/Typography/Code.tsx | 0 .../src/components/UI/Typography/Heading.tsx | 0 .../web/src/components/UI/Typography/Link.tsx | 0 .../web/src/components/UI/Typography/P.tsx | 0 .../src/components/UI/Typography/Subtle.tsx | 0 .../web/src/components/generic/Blur.tsx | 0 .../src/components/generic/DeviceImage.tsx | 0 .../generic/Filter/FilterComponents.tsx | 0 .../generic/Filter/FilterControl.tsx | 0 .../generic/Filter/useFilterNode.test.ts | 0 .../generic/Filter/useFilterNode.ts | 0 .../web/src/components/generic/Mono.tsx | 0 .../components/generic/Table/index.test.tsx | 0 .../src/components/generic/Table/index.tsx | 0 .../web/src/components/generic/TimeAgo.tsx | 0 .../web/src/components/generic/Uptime.tsx | 0 .../web/src/components/types.ts | 0 .../web/src/core/connections/heartbeat.ts | 0 .../web/src/core/connections/sdkClient.ts | 0 .../web/src/core/connections/transports.ts | 0 .../web/src/core/dto/NodeNumToNodeInfoDTO.ts | 0 .../core/hooks/useBrowserFeatureDetection.ts | 0 .../src/core/hooks/useChatAsLegacyMessages.ts | 0 .../web/src/core/hooks/useCookie.ts | 0 .../web/src/core/hooks/useCopyToClipboard.ts | 0 .../web/src/core/hooks/useDeviceContext.ts | 0 .../src/core/hooks/useFavoriteNode.test.ts | 0 .../web/src/core/hooks/useFavoriteNode.ts | 0 .../web/src/core/hooks/useFeatureFlags.ts | 0 .../web/src/core/hooks/useIgnoreNode.test.ts | 0 .../web/src/core/hooks/useIgnoreNode.ts | 0 .../src/core/hooks/useKeyBackupReminder.tsx | 0 .../web/src/core/hooks/useLRUList.ts | 0 .../web/src/core/hooks/useLang.ts | 0 .../src/core/hooks/useLocalStorage.test.ts | 0 .../web/src/core/hooks/useLocalStorage.ts | 0 .../web/src/core/hooks/useMapFitting.ts | 0 .../web/src/core/hooks/useNewNodeNum.ts | 0 .../web/src/core/hooks/useNodesAsProto.ts | 0 .../hooks/usePasswordVisibilityToggle.test.ts | 0 .../core/hooks/usePasswordVisibilityToggle.ts | 0 .../web/src/core/hooks/usePinnedItems.ts | 0 .../web/src/core/hooks/usePositionFlags.ts | 0 .../web/src/core/hooks/useTheme.ts | 0 .../web/src/core/hooks/useToast.test.tsx | 0 .../web/src/core/hooks/useToast.ts | 0 .../src/core/hooks/useToggleVisiblility.ts | 0 .../web/src/core/hooks/useWaitForConfig.ts | 0 .../web/src/core/meshRegistry.ts | 0 {packages => apps}/web/src/core/sdkStorage.ts | 0 .../web/src/core/services/dev-overrides.ts | 0 .../web/src/core/services/featureFlags.ts | 0 .../src/core/stores/appStore/appStore.test.ts | 0 .../web/src/core/stores/appStore/index.ts | 0 .../web/src/core/stores/appStore/types.ts | 0 .../stores/deviceStore/deviceStore.mock.ts | 0 .../stores/deviceStore/deviceStore.test.ts | 0 .../web/src/core/stores/deviceStore/index.ts | 0 .../src/core/stores/deviceStore/selectors.ts | 0 .../web/src/core/stores/deviceStore/types.ts | 0 .../web/src/core/stores/index.ts | 0 .../web/src/core/stores/messageStore/index.ts | 0 .../src/core/stores/sidebarStore/index.tsx | 0 .../core/stores/utils/bindStoreToDevice.ts | 0 .../core/stores/utils/evictOldestEntries.ts | 0 .../web/src/core/stores/utils/indexDB.test.ts | 0 .../web/src/core/stores/utils/indexDB.ts | 0 .../web/src/core/subscriptions.ts | 0 .../web/src/core/utils/bitwise.ts | 0 {packages => apps}/web/src/core/utils/cn.ts | 0 .../web/src/core/utils/color.test.ts | 0 .../web/src/core/utils/color.ts | 0 .../web/src/core/utils/debounce.test.ts | 0 .../web/src/core/utils/debounce.ts | 0 .../src/core/utils/deepCompareConfig.test.ts | 0 .../web/src/core/utils/deepCompareConfig.ts | 0 .../web/src/core/utils/dotPath.test.ts | 0 .../web/src/core/utils/dotPath.ts | 0 .../web/src/core/utils/eventBus.test.ts | 0 .../web/src/core/utils/eventBus.ts | 0 {packages => apps}/web/src/core/utils/geo.ts | 0 .../web/src/core/utils/github.ts | 0 .../web/src/core/utils/ip.test.ts | 0 {packages => apps}/web/src/core/utils/ip.ts | 0 .../web/src/core/utils/randId.test.ts | 0 .../web/src/core/utils/randId.ts | 0 .../web/src/core/utils/signalColor.ts | 0 {packages => apps}/web/src/core/utils/sort.ts | 0 .../web/src/core/utils/string.ts | 0 .../web/src/core/utils/x25519.ts | 0 {packages => apps}/web/src/i18n-config.ts | 0 {packages => apps}/web/src/index.css | 0 {packages => apps}/web/src/index.tsx | 0 .../web/src/pages/Connections/index.tsx | 0 .../src/pages/Connections/useConnections.ts | 0 .../web/src/pages/Connections/utils.ts | 0 .../web/src/pages/Map/index.tsx | 0 {packages => apps}/web/src/pages/Messages.tsx | 0 .../web/src/pages/Nodes/index.tsx | 0 .../web/src/pages/Settings/DeviceConfig.tsx | 0 .../web/src/pages/Settings/ModuleConfig.tsx | 0 .../web/src/pages/Settings/RadioConfig.tsx | 0 .../web/src/pages/Settings/index.tsx | 0 {packages => apps}/web/src/routes.tsx | 0 {packages => apps}/web/src/tests/setup.ts | 0 .../web/src/tests/test-utils.tsx | 0 .../web/src/validation/channel.test.ts | 0 .../web/src/validation/channel.ts | 0 .../web/src/validation/config/bluetooth.ts | 0 .../web/src/validation/config/device.ts | 0 .../web/src/validation/config/display.ts | 0 .../web/src/validation/config/lora.test.ts | 0 .../web/src/validation/config/lora.ts | 0 .../web/src/validation/config/network.ts | 0 .../web/src/validation/config/position.ts | 0 .../web/src/validation/config/power.ts | 0 .../src/validation/config/security.test.ts | 0 .../web/src/validation/config/security.ts | 0 .../web/src/validation/config/user.ts | 0 .../moduleConfig/ambientLighting.ts | 0 .../web/src/validation/moduleConfig/audio.ts | 0 .../validation/moduleConfig/cannedMessage.ts | 0 .../moduleConfig/detectionSensor.ts | 0 .../moduleConfig/externalNotification.ts | 0 .../web/src/validation/moduleConfig/mqtt.ts | 0 .../validation/moduleConfig/neighborInfo.ts | 0 .../src/validation/moduleConfig/paxcounter.ts | 0 .../src/validation/moduleConfig/rangeTest.ts | 0 .../web/src/validation/moduleConfig/serial.ts | 0 .../validation/moduleConfig/storeForward.ts | 0 .../src/validation/moduleConfig/telemetry.ts | 0 .../web/src/validation/pskSchema.test.ts | 0 .../web/src/validation/pskSchema.ts | 0 .../web/src/validation/validate.ts | 0 {packages => apps}/web/tsconfig.json | 0 {packages => apps}/web/vercel.json | 0 {packages => apps}/web/vite-env.d.ts | 0 {packages => apps}/web/vite.config.ts | 0 {packages => apps}/web/vitest.config.ts | 0 pnpm-lock.yaml | 1001 +++++------------ pnpm-workspace.yaml | 1 + tsconfig.json | 2 +- 616 files changed, 319 insertions(+), 757 deletions(-) rename {packages => apps}/web/.npmrc (100%) rename {packages => apps}/web/.oxfmtrc.json (100%) rename {packages => apps}/web/.oxlintrc.json (100%) rename {packages => apps}/web/CONTRIBUTING.md (100%) rename {packages => apps}/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md (100%) rename {packages => apps}/web/CONTRIBUTING_TRANSLATIONS.md (100%) rename {packages => apps}/web/README.md (100%) rename {packages => apps}/web/crowdin.yml (100%) rename {packages => apps}/web/index.html (100%) rename {packages => apps}/web/infra/.dockerignore (100%) rename {packages => apps}/web/infra/Containerfile (100%) rename {packages => apps}/web/infra/default.conf (100%) rename {packages => apps}/web/package.json (100%) rename {packages => apps}/web/public/apple-touch-icon.png (100%) rename {packages => apps}/web/public/chirpy.svg (100%) rename {packages => apps}/web/public/devices/diy.svg (100%) rename {packages => apps}/web/public/devices/heltec-ht62-esp32c3-sx1262.svg (100%) rename {packages => apps}/web/public/devices/heltec-mesh-node-t114-case.svg (100%) rename {packages => apps}/web/public/devices/heltec-mesh-node-t114.svg (100%) rename {packages => apps}/web/public/devices/heltec-v3-case.svg (100%) rename {packages => apps}/web/public/devices/heltec-v3.svg (100%) rename {packages => apps}/web/public/devices/heltec-vision-master-e213.svg (100%) rename {packages => apps}/web/public/devices/heltec-vision-master-e290.svg (100%) rename {packages => apps}/web/public/devices/heltec-vision-master-t190.svg (100%) rename {packages => apps}/web/public/devices/heltec-wireless-paper-V1_0.svg (100%) rename {packages => apps}/web/public/devices/heltec-wireless-paper.svg (100%) rename {packages => apps}/web/public/devices/heltec-wireless-tracker-V1-0.svg (100%) rename {packages => apps}/web/public/devices/heltec-wireless-tracker.svg (100%) rename {packages => apps}/web/public/devices/heltec-wsl-v3.svg (100%) rename {packages => apps}/web/public/devices/nano-g2-ultra.svg (100%) rename {packages => apps}/web/public/devices/pico.svg (100%) rename {packages => apps}/web/public/devices/promicro.svg (100%) rename {packages => apps}/web/public/devices/rak-wismeshtap.svg (100%) rename {packages => apps}/web/public/devices/rak11310.svg (100%) rename {packages => apps}/web/public/devices/rak2560.svg (100%) rename {packages => apps}/web/public/devices/rak4631.svg (100%) rename {packages => apps}/web/public/devices/rak4631_case.svg (100%) rename {packages => apps}/web/public/devices/rpipicow.svg (100%) rename {packages => apps}/web/public/devices/seeed-sensecap-indicator.svg (100%) rename {packages => apps}/web/public/devices/seeed-xiao-s3.svg (100%) rename {packages => apps}/web/public/devices/station-g2.svg (100%) rename {packages => apps}/web/public/devices/t-deck.svg (100%) rename {packages => apps}/web/public/devices/t-echo.svg (100%) rename {packages => apps}/web/public/devices/t-watch-s3.svg (100%) rename {packages => apps}/web/public/devices/tbeam-s3-core.svg (100%) rename {packages => apps}/web/public/devices/tbeam.svg (100%) rename {packages => apps}/web/public/devices/tlora-c6.svg (100%) rename {packages => apps}/web/public/devices/tlora-t3s3-epaper.svg (100%) rename {packages => apps}/web/public/devices/tlora-t3s3-v1.svg (100%) rename {packages => apps}/web/public/devices/tlora-v2-1-1_6.svg (100%) rename {packages => apps}/web/public/devices/tlora-v2-1-1_8.svg (100%) rename {packages => apps}/web/public/devices/tracker-t1000-e.svg (100%) rename {packages => apps}/web/public/devices/unknown.svg (100%) rename {packages => apps}/web/public/devices/wio-tracker-wm1110.svg (100%) rename {packages => apps}/web/public/devices/wm1110_dev_kit.svg (100%) rename {packages => apps}/web/public/favicon.ico (100%) rename {packages => apps}/web/public/fonts/InterVariable-Italic.woff2 (100%) rename {packages => apps}/web/public/fonts/InterVariable.woff2 (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/common.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/config.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/map.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/be-BY/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/common.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/config.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/map.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/bg-BG/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/common.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/config.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/map.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/cs-CZ/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/common.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/config.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/map.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/de-DE/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/en/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/en/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/en/common.json (99%) rename {packages => apps}/web/public/i18n/locales/en/config.json (100%) rename {packages => apps}/web/public/i18n/locales/en/connections.json (65%) rename {packages => apps}/web/public/i18n/locales/en/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/en/map.json (100%) rename {packages => apps}/web/public/i18n/locales/en/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/en/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/en/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/en/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/common.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/config.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/map.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/es-ES/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/common.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/config.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/map.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/fi-FI/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/common.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/config.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/map.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/fr-FR/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/common.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/config.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/map.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/hu-HU/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/common.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/config.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/map.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/it-IT/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/common.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/config.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/map.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/ja-JP/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/common.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/config.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/map.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/ko-KR/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/common.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/config.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/map.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/nl-NL/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/common.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/config.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/map.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/pl-PL/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/common.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/config.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/map.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-BR/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/common.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/config.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/map.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/pt-PT/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/common.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/config.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/map.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/ru-RU/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/common.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/config.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/map.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/sv-SE/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/common.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/config.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/map.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/tr-TR/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/common.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/config.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/map.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/uk-UA/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/common.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/config.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/deviceConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/map.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-CN/ui.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/channels.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/commandPalette.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/common.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/config.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/connections.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/dashboard.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/dialog.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/map.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/messages.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/moduleConfig.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/nodes.json (100%) rename {packages => apps}/web/public/i18n/locales/zh-TW/ui.json (100%) rename {packages => apps}/web/public/logo.svg (100%) rename {packages => apps}/web/public/robots.txt (100%) rename {packages => apps}/web/public/site.webmanifest (100%) rename {packages => apps}/web/src/App.tsx (100%) rename {packages => apps}/web/src/DeviceWrapper.tsx (100%) rename {packages => apps}/web/src/__mocks__/README.md (100%) rename {packages => apps}/web/src/__mocks__/components/UI/Button.tsx (100%) rename {packages => apps}/web/src/__mocks__/components/UI/Checkbox.tsx (100%) rename {packages => apps}/web/src/__mocks__/components/UI/Dialog/Dialog.tsx (100%) rename {packages => apps}/web/src/__mocks__/components/UI/Label.tsx (100%) rename {packages => apps}/web/src/__mocks__/components/UI/Link.tsx (100%) rename {packages => apps}/web/src/components/Badge/ConnectionStatusBadge.tsx (100%) rename {packages => apps}/web/src/components/Badge/SupportedBadge.tsx (100%) rename {packages => apps}/web/src/components/BatteryStatus.tsx (100%) rename {packages => apps}/web/src/components/CommandPalette/index.tsx (100%) rename {packages => apps}/web/src/components/DeviceInfoPanel.tsx (100%) rename {packages => apps}/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/AddConnectionDialog/validation.ts (100%) rename {packages => apps}/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/DialogManager.tsx (100%) rename {packages => apps}/web/src/components/Dialog/DialogWrapper.tsx (100%) rename {packages => apps}/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ImportDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/LocationResponseDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ManagedModeDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/NewDeviceDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/PKIBackupDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/PkiRegenerateDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/QRDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/RebootDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/RebootDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts (100%) rename {packages => apps}/web/src/components/Dialog/RemoveNodeDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/ShutdownDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/TracerouteResponseDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx (100%) rename {packages => apps}/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.test.tsx (100%) rename {packages => apps}/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts (100%) rename {packages => apps}/web/src/components/Dialog/useDialog.ts (100%) rename {packages => apps}/web/src/components/Form/DynamicForm.tsx (100%) rename {packages => apps}/web/src/components/Form/DynamicFormField.tsx (100%) rename {packages => apps}/web/src/components/Form/FormInput.tsx (100%) rename {packages => apps}/web/src/components/Form/FormMultiSelect.tsx (100%) rename {packages => apps}/web/src/components/Form/FormPasswordGenerator.tsx (100%) rename {packages => apps}/web/src/components/Form/FormSelect.tsx (100%) rename {packages => apps}/web/src/components/Form/FormToggle.tsx (100%) rename {packages => apps}/web/src/components/Form/FormWrapper.tsx (100%) rename {packages => apps}/web/src/components/Form/createZodResolver.ts (100%) rename {packages => apps}/web/src/components/KeyBackupReminder.tsx (100%) rename {packages => apps}/web/src/components/LanguageSwitcher.tsx (100%) rename {packages => apps}/web/src/components/Map.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Channels/Channel.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Channels/Channels.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Connections/ConnectionStatusBadge.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Layers/HeatmapLayer.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Layers/NodesLayer.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Layers/PrecisionLayer.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Layers/WaypointLayer.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Markers/NodeMarker.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Markers/StackBadge.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Popups/NodeDetail.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Popups/PopupWrapper.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Map/cluster.ts (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/ChannelChat.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/MessageActionsMenu.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/MessageInput.test.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/MessageInput.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/MessageItem.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/TraceRoute.test.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Messages/TraceRoute.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/Audio.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/MQTT.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/Serial.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Bluetooth.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Device/index.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Display.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/LoRa.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Network/index.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Position.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Power.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/Security/Security.tsx (100%) rename {packages => apps}/web/src/components/PageComponents/Settings/User.tsx (100%) rename {packages => apps}/web/src/components/PageLayout.tsx (100%) rename {packages => apps}/web/src/components/Sidebar.tsx (100%) rename {packages => apps}/web/src/components/ThemeSwitcher.tsx (100%) rename {packages => apps}/web/src/components/Toaster.tsx (100%) rename {packages => apps}/web/src/components/UI/Accordion.tsx (100%) rename {packages => apps}/web/src/components/UI/AlertDialog.tsx (100%) rename {packages => apps}/web/src/components/UI/Avatar.tsx (100%) rename {packages => apps}/web/src/components/UI/Badge.tsx (100%) rename {packages => apps}/web/src/components/UI/Button.tsx (100%) rename {packages => apps}/web/src/components/UI/Card.tsx (100%) rename {packages => apps}/web/src/components/UI/Checkbox/Checkbox.test.tsx (100%) rename {packages => apps}/web/src/components/UI/Checkbox/index.tsx (100%) rename {packages => apps}/web/src/components/UI/Command.tsx (100%) rename {packages => apps}/web/src/components/UI/Dialog.tsx (100%) rename {packages => apps}/web/src/components/UI/DropdownMenu.tsx (100%) rename {packages => apps}/web/src/components/UI/ErrorPage.tsx (100%) rename {packages => apps}/web/src/components/UI/Footer.tsx (100%) rename {packages => apps}/web/src/components/UI/Generator.tsx (100%) rename {packages => apps}/web/src/components/UI/Input.tsx (100%) rename {packages => apps}/web/src/components/UI/Label.tsx (100%) rename {packages => apps}/web/src/components/UI/Menubar.tsx (100%) rename {packages => apps}/web/src/components/UI/MultiSelect.tsx (100%) rename {packages => apps}/web/src/components/UI/Popover.tsx (100%) rename {packages => apps}/web/src/components/UI/ScrollArea.tsx (100%) rename {packages => apps}/web/src/components/UI/Select.tsx (100%) rename {packages => apps}/web/src/components/UI/Separator.tsx (100%) rename {packages => apps}/web/src/components/UI/Sidebar/SidebarButton.tsx (100%) rename {packages => apps}/web/src/components/UI/Sidebar/SidebarSection.tsx (100%) rename {packages => apps}/web/src/components/UI/Skeleton.tsx (100%) rename {packages => apps}/web/src/components/UI/Slider.tsx (100%) rename {packages => apps}/web/src/components/UI/Spinner.tsx (100%) rename {packages => apps}/web/src/components/UI/Switch.tsx (100%) rename {packages => apps}/web/src/components/UI/Tabs.tsx (100%) rename {packages => apps}/web/src/components/UI/Toast.tsx (100%) rename {packages => apps}/web/src/components/UI/ToggleGroup.tsx (100%) rename {packages => apps}/web/src/components/UI/Tooltip.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/Blockquote.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/Code.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/Heading.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/Link.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/P.tsx (100%) rename {packages => apps}/web/src/components/UI/Typography/Subtle.tsx (100%) rename {packages => apps}/web/src/components/generic/Blur.tsx (100%) rename {packages => apps}/web/src/components/generic/DeviceImage.tsx (100%) rename {packages => apps}/web/src/components/generic/Filter/FilterComponents.tsx (100%) rename {packages => apps}/web/src/components/generic/Filter/FilterControl.tsx (100%) rename {packages => apps}/web/src/components/generic/Filter/useFilterNode.test.ts (100%) rename {packages => apps}/web/src/components/generic/Filter/useFilterNode.ts (100%) rename {packages => apps}/web/src/components/generic/Mono.tsx (100%) rename {packages => apps}/web/src/components/generic/Table/index.test.tsx (100%) rename {packages => apps}/web/src/components/generic/Table/index.tsx (100%) rename {packages => apps}/web/src/components/generic/TimeAgo.tsx (100%) rename {packages => apps}/web/src/components/generic/Uptime.tsx (100%) rename {packages => apps}/web/src/components/types.ts (100%) rename {packages => apps}/web/src/core/connections/heartbeat.ts (100%) rename {packages => apps}/web/src/core/connections/sdkClient.ts (100%) rename {packages => apps}/web/src/core/connections/transports.ts (100%) rename {packages => apps}/web/src/core/dto/NodeNumToNodeInfoDTO.ts (100%) rename {packages => apps}/web/src/core/hooks/useBrowserFeatureDetection.ts (100%) rename {packages => apps}/web/src/core/hooks/useChatAsLegacyMessages.ts (100%) rename {packages => apps}/web/src/core/hooks/useCookie.ts (100%) rename {packages => apps}/web/src/core/hooks/useCopyToClipboard.ts (100%) rename {packages => apps}/web/src/core/hooks/useDeviceContext.ts (100%) rename {packages => apps}/web/src/core/hooks/useFavoriteNode.test.ts (100%) rename {packages => apps}/web/src/core/hooks/useFavoriteNode.ts (100%) rename {packages => apps}/web/src/core/hooks/useFeatureFlags.ts (100%) rename {packages => apps}/web/src/core/hooks/useIgnoreNode.test.ts (100%) rename {packages => apps}/web/src/core/hooks/useIgnoreNode.ts (100%) rename {packages => apps}/web/src/core/hooks/useKeyBackupReminder.tsx (100%) rename {packages => apps}/web/src/core/hooks/useLRUList.ts (100%) rename {packages => apps}/web/src/core/hooks/useLang.ts (100%) rename {packages => apps}/web/src/core/hooks/useLocalStorage.test.ts (100%) rename {packages => apps}/web/src/core/hooks/useLocalStorage.ts (100%) rename {packages => apps}/web/src/core/hooks/useMapFitting.ts (100%) rename {packages => apps}/web/src/core/hooks/useNewNodeNum.ts (100%) rename {packages => apps}/web/src/core/hooks/useNodesAsProto.ts (100%) rename {packages => apps}/web/src/core/hooks/usePasswordVisibilityToggle.test.ts (100%) rename {packages => apps}/web/src/core/hooks/usePasswordVisibilityToggle.ts (100%) rename {packages => apps}/web/src/core/hooks/usePinnedItems.ts (100%) rename {packages => apps}/web/src/core/hooks/usePositionFlags.ts (100%) rename {packages => apps}/web/src/core/hooks/useTheme.ts (100%) rename {packages => apps}/web/src/core/hooks/useToast.test.tsx (100%) rename {packages => apps}/web/src/core/hooks/useToast.ts (100%) rename {packages => apps}/web/src/core/hooks/useToggleVisiblility.ts (100%) rename {packages => apps}/web/src/core/hooks/useWaitForConfig.ts (100%) rename {packages => apps}/web/src/core/meshRegistry.ts (100%) rename {packages => apps}/web/src/core/sdkStorage.ts (100%) rename {packages => apps}/web/src/core/services/dev-overrides.ts (100%) rename {packages => apps}/web/src/core/services/featureFlags.ts (100%) rename {packages => apps}/web/src/core/stores/appStore/appStore.test.ts (100%) rename {packages => apps}/web/src/core/stores/appStore/index.ts (100%) rename {packages => apps}/web/src/core/stores/appStore/types.ts (100%) rename {packages => apps}/web/src/core/stores/deviceStore/deviceStore.mock.ts (100%) rename {packages => apps}/web/src/core/stores/deviceStore/deviceStore.test.ts (100%) rename {packages => apps}/web/src/core/stores/deviceStore/index.ts (100%) rename {packages => apps}/web/src/core/stores/deviceStore/selectors.ts (100%) rename {packages => apps}/web/src/core/stores/deviceStore/types.ts (100%) rename {packages => apps}/web/src/core/stores/index.ts (100%) rename {packages => apps}/web/src/core/stores/messageStore/index.ts (100%) rename {packages => apps}/web/src/core/stores/sidebarStore/index.tsx (100%) rename {packages => apps}/web/src/core/stores/utils/bindStoreToDevice.ts (100%) rename {packages => apps}/web/src/core/stores/utils/evictOldestEntries.ts (100%) rename {packages => apps}/web/src/core/stores/utils/indexDB.test.ts (100%) rename {packages => apps}/web/src/core/stores/utils/indexDB.ts (100%) rename {packages => apps}/web/src/core/subscriptions.ts (100%) rename {packages => apps}/web/src/core/utils/bitwise.ts (100%) rename {packages => apps}/web/src/core/utils/cn.ts (100%) rename {packages => apps}/web/src/core/utils/color.test.ts (100%) rename {packages => apps}/web/src/core/utils/color.ts (100%) rename {packages => apps}/web/src/core/utils/debounce.test.ts (100%) rename {packages => apps}/web/src/core/utils/debounce.ts (100%) rename {packages => apps}/web/src/core/utils/deepCompareConfig.test.ts (100%) rename {packages => apps}/web/src/core/utils/deepCompareConfig.ts (100%) rename {packages => apps}/web/src/core/utils/dotPath.test.ts (100%) rename {packages => apps}/web/src/core/utils/dotPath.ts (100%) rename {packages => apps}/web/src/core/utils/eventBus.test.ts (100%) rename {packages => apps}/web/src/core/utils/eventBus.ts (100%) rename {packages => apps}/web/src/core/utils/geo.ts (100%) rename {packages => apps}/web/src/core/utils/github.ts (100%) rename {packages => apps}/web/src/core/utils/ip.test.ts (100%) rename {packages => apps}/web/src/core/utils/ip.ts (100%) rename {packages => apps}/web/src/core/utils/randId.test.ts (100%) rename {packages => apps}/web/src/core/utils/randId.ts (100%) rename {packages => apps}/web/src/core/utils/signalColor.ts (100%) rename {packages => apps}/web/src/core/utils/sort.ts (100%) rename {packages => apps}/web/src/core/utils/string.ts (100%) rename {packages => apps}/web/src/core/utils/x25519.ts (100%) rename {packages => apps}/web/src/i18n-config.ts (100%) rename {packages => apps}/web/src/index.css (100%) rename {packages => apps}/web/src/index.tsx (100%) rename {packages => apps}/web/src/pages/Connections/index.tsx (100%) rename {packages => apps}/web/src/pages/Connections/useConnections.ts (100%) rename {packages => apps}/web/src/pages/Connections/utils.ts (100%) rename {packages => apps}/web/src/pages/Map/index.tsx (100%) rename {packages => apps}/web/src/pages/Messages.tsx (100%) rename {packages => apps}/web/src/pages/Nodes/index.tsx (100%) rename {packages => apps}/web/src/pages/Settings/DeviceConfig.tsx (100%) rename {packages => apps}/web/src/pages/Settings/ModuleConfig.tsx (100%) rename {packages => apps}/web/src/pages/Settings/RadioConfig.tsx (100%) rename {packages => apps}/web/src/pages/Settings/index.tsx (100%) rename {packages => apps}/web/src/routes.tsx (100%) rename {packages => apps}/web/src/tests/setup.ts (100%) rename {packages => apps}/web/src/tests/test-utils.tsx (100%) rename {packages => apps}/web/src/validation/channel.test.ts (100%) rename {packages => apps}/web/src/validation/channel.ts (100%) rename {packages => apps}/web/src/validation/config/bluetooth.ts (100%) rename {packages => apps}/web/src/validation/config/device.ts (100%) rename {packages => apps}/web/src/validation/config/display.ts (100%) rename {packages => apps}/web/src/validation/config/lora.test.ts (100%) rename {packages => apps}/web/src/validation/config/lora.ts (100%) rename {packages => apps}/web/src/validation/config/network.ts (100%) rename {packages => apps}/web/src/validation/config/position.ts (100%) rename {packages => apps}/web/src/validation/config/power.ts (100%) rename {packages => apps}/web/src/validation/config/security.test.ts (100%) rename {packages => apps}/web/src/validation/config/security.ts (100%) rename {packages => apps}/web/src/validation/config/user.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/ambientLighting.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/audio.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/cannedMessage.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/detectionSensor.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/externalNotification.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/mqtt.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/neighborInfo.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/paxcounter.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/rangeTest.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/serial.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/storeForward.ts (100%) rename {packages => apps}/web/src/validation/moduleConfig/telemetry.ts (100%) rename {packages => apps}/web/src/validation/pskSchema.test.ts (100%) rename {packages => apps}/web/src/validation/pskSchema.ts (100%) rename {packages => apps}/web/src/validation/validate.ts (100%) rename {packages => apps}/web/tsconfig.json (100%) rename {packages => apps}/web/vercel.json (100%) rename {packages => apps}/web/vite-env.d.ts (100%) rename {packages => apps}/web/vite.config.ts (100%) rename {packages => apps}/web/vitest.config.ts (100%) diff --git a/.github/workflows/crowdin-download.yml b/.github/workflows/crowdin-download.yml index a7fb3fd7..d048fd8a 100644 --- a/.github/workflows/crowdin-download.yml +++ b/.github/workflows/crowdin-download.yml @@ -17,7 +17,7 @@ jobs: uses: crowdin/github-action@v2 with: base_url: "https://meshtastic.crowdin.com/api/v2" - config: "./packages/web/crowdin.yml" + config: "./apps/web/crowdin.yml" upload_sources: false upload_translations: false download_translations: true diff --git a/.github/workflows/crowdin-upload-sources.yml b/.github/workflows/crowdin-upload-sources.yml index 99c2493c..2ee766ac 100644 --- a/.github/workflows/crowdin-upload-sources.yml +++ b/.github/workflows/crowdin-upload-sources.yml @@ -5,7 +5,7 @@ on: # Monitor all .json files within the /i18n/locales/en/ directory. # This ensures the workflow triggers if any the English namespace files are modified on the main branch. paths: - - "/packages/web/public/i18n/locales/en/*.json" + - "/apps/web/public/i18n/locales/en/*.json" branches: [main] workflow_dispatch: # Allow manual triggering @@ -21,7 +21,7 @@ jobs: uses: crowdin/github-action@v2 with: base_url: "https://meshtastic.crowdin.com/api/v2" - config: "./packages/web/crowdin.yml" + config: "./apps/web/crowdin.yml" upload_sources: true upload_translations: false download_translations: false diff --git a/.github/workflows/crowdin-upload-translations.yml b/.github/workflows/crowdin-upload-translations.yml index 12bccece..62a937d6 100644 --- a/.github/workflows/crowdin-upload-translations.yml +++ b/.github/workflows/crowdin-upload-translations.yml @@ -15,7 +15,7 @@ jobs: uses: crowdin/github-action@v2 with: base_url: "https://meshtastic.crowdin.com/api/v2" - config: "./packages/web/crowdin.yml" + config: "./apps/web/crowdin.yml" upload_sources: false upload_translations: true download_translations: false diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5da64a4e..c30d6670 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -39,18 +39,18 @@ jobs: run: pnpm run test - name: Build web package - working-directory: packages/web + working-directory: apps/web run: pnpm run build - name: Package output - working-directory: packages/web + working-directory: apps/web run: pnpm run package - name: Upload compressed build (artifact) uses: actions/upload-artifact@v4 with: name: web-build-nightly - path: packages/web/dist/build.tar + path: apps/web/dist/build.tar if-no-files-found: error - name: Compute tags and labels @@ -66,8 +66,8 @@ jobs: # Try to use latest release tag if it exists; fallback to package version; else date LATEST_TAG="$(gh release view --json tagName --jq .tagName 2>/dev/null || true)" - if [ -z "$LATEST_TAG" ] && [ -f packages/web/package.json ]; then - LATEST_TAG="v$(jq -r .version packages/web/package.json)" + if [ -z "$LATEST_TAG" ] && [ -f apps/web/package.json ]; then + LATEST_TAG="v$(jq -r .version apps/web/package.json)" fi if [ -n "${LATEST_TAG:-}" ] && [ "$LATEST_TAG" != "vnull" ]; then @@ -91,7 +91,7 @@ jobs: uses: redhat-actions/buildah-build@v2 with: containerfiles: | - ./packages/web/infra/Containerfile + ./apps/web/infra/Containerfile image: ${{ env.REGISTRY_IMAGE }} tags: | ${{ steps.meta.outputs.moving_tag }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 204ff278..9f728449 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -51,4 +51,4 @@ jobs: run: pnpm run test - name: Build web package - run: pnpm --filter "./packages/web" run build + run: pnpm --filter "./apps/web" run build diff --git a/.github/workflows/release-packages.yml b/.github/workflows/release-packages.yml index 58a4920d..ad02203d 100644 --- a/.github/workflows/release-packages.yml +++ b/.github/workflows/release-packages.yml @@ -46,7 +46,7 @@ jobs: run: | set -euo pipefail if [ "${{ github.event.inputs.packages }}" = "all" ] || [ -z "${{ github.event.inputs.packages }}" ]; then - mapfile -t TARGETS < <(ls -d packages/* | grep -v 'packages/web') + mapfile -t TARGETS < <(ls -d packages/*) else IFS=',' read -ra TARGETS <<< "${{ github.event.inputs.packages }}" TARGETS=("${TARGETS[@]/#/packages/}") diff --git a/.github/workflows/release-web.yml b/.github/workflows/release-web.yml index 10bd8f35..cdc52c85 100644 --- a/.github/workflows/release-web.yml +++ b/.github/workflows/release-web.yml @@ -51,25 +51,25 @@ jobs: run: pnpm install --frozen-lockfile - name: Build web package - working-directory: packages/web + working-directory: apps/web run: pnpm run build - name: Create release archive - working-directory: packages/web + working-directory: apps/web run: pnpm run package - name: Upload archive (artifact) uses: actions/upload-artifact@v4 with: name: web-build - path: packages/web/dist/build.tar + path: apps/web/dist/build.tar if-no-files-found: error - name: Attach archive to GitHub Release if: ${{ github.event_name == 'release' || inputs.attach_to_release == true }} uses: softprops/action-gh-release@v2 with: - files: packages/web/dist/build.tar + files: apps/web/dist/build.tar tag_name: ${{ github.event_name == 'release' && github.event.release.tag_name || inputs.tag_name }} fail_on_unmatched_files: true env: @@ -134,7 +134,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . - file: ./packages/web/infra/Containerfile + file: ./apps/web/infra/Containerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 push: ${{ github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && inputs.tag_name != '') }} tags: ${{ steps.meta.outputs.tags }} diff --git a/.gitignore b/.gitignore index 7c03ebef..be3f9c39 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ packages/protobufs/packages/ts/dist *.pem *.crt *.key + +# Claude Code session locks +.claude/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e11f647b..858ea5ba 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["bradlc.vscode-tailwindcss", "biomejs.biome"] + "recommendations": ["bradlc.vscode-tailwindcss", "oxc.oxc-vscode"] } diff --git a/README.md b/README.md index 8dec7b6c..96b8861c 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ All projects live under `packages/`. | --- | --- | | `packages/sdk` | Framework-agnostic TypeScript SDK. Domain-driven feature slices (device, chat, nodes, channels, config, telemetry, position, traceroute, files) built around a `MeshClient` orchestrator with `@preact/signals-core` reactive state. | | `packages/sdk-react` | React hooks + `MeshProvider` on top of `@meshtastic/sdk`. Wraps signals in `useSyncExternalStore` for concurrent-safe renders. | -| `packages/web` | Reference React web client. Hosted at [client.meshtastic.org](https://client.meshtastic.org). | +| `apps/web` | Reference React web client. Hosted at [client.meshtastic.org](https://client.meshtastic.org). | | `packages/ui` | Shared Radix + Tailwind component library. | | `packages/protobufs` | Generated TypeScript stubs from [`meshtastic/protobufs`](https://github.com/meshtastic/protobufs), produced via `buf generate`. Source of truth for every wire-level type. | | `packages/transport-http` | HTTP transport for devices exposing a network interface. | diff --git a/TESTING.md b/TESTING.md index fbb06fc4..00cb21a7 100644 --- a/TESTING.md +++ b/TESTING.md @@ -19,8 +19,8 @@ Tests live in five tiers. Each PR should add coverage at the **lowest level that | Package | Required floor | Notes | | --- | --- | --- | -| `packages/sdk` core | every primitive (signals, EventBus, Queue, packet-codec, identifiers) has a unit test; lifecycle covered by `MeshClient.test.ts` | adopt `c8` thresholds once stable | -| `packages/sdk` features/* | each slice ships: 1 domain invariant test, 1 use-case test against fake transport, 1 mapper round-trip (where mappers exist) | Integration covered by `tests/integration/fake-transport.test.ts` | +| `packages/sdk/core` | every primitive (signals, EventBus, Queue, packet-codec, identifiers) has a unit test; lifecycle covered by `MeshClient.test.ts` | adopt `c8` thresholds once stable | +| `packages/sdk/features/*` | each slice ships: 1 domain invariant test, 1 use-case test against fake transport, 1 mapper round-trip (where mappers exist) | Integration covered by `tests/integration/fake-transport.test.ts` | | `packages/sdk-react` | each public hook has a `renderHook` test that asserts initial render + re-render on signal change | uses jsdom; provider wrapper required | | `packages/sdk-storage-sqlocal` | every repository method tested against sql.js in-memory; **at least one OPFS-real test per repo** runs in browser mode | sql.js validates SQL correctness; OPFS validates VFS / Worker plumbing | | `packages/transport-*` | minimum: framing round-trip, disconnect cleans up streams, error path emits status | low-level; ship as is | diff --git a/packages/web/.npmrc b/apps/web/.npmrc similarity index 100% rename from packages/web/.npmrc rename to apps/web/.npmrc diff --git a/packages/web/.oxfmtrc.json b/apps/web/.oxfmtrc.json similarity index 100% rename from packages/web/.oxfmtrc.json rename to apps/web/.oxfmtrc.json diff --git a/packages/web/.oxlintrc.json b/apps/web/.oxlintrc.json similarity index 100% rename from packages/web/.oxlintrc.json rename to apps/web/.oxlintrc.json diff --git a/packages/web/CONTRIBUTING.md b/apps/web/CONTRIBUTING.md similarity index 100% rename from packages/web/CONTRIBUTING.md rename to apps/web/CONTRIBUTING.md diff --git a/packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md b/apps/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md similarity index 100% rename from packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md rename to apps/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md diff --git a/packages/web/CONTRIBUTING_TRANSLATIONS.md b/apps/web/CONTRIBUTING_TRANSLATIONS.md similarity index 100% rename from packages/web/CONTRIBUTING_TRANSLATIONS.md rename to apps/web/CONTRIBUTING_TRANSLATIONS.md diff --git a/packages/web/README.md b/apps/web/README.md similarity index 100% rename from packages/web/README.md rename to apps/web/README.md diff --git a/packages/web/crowdin.yml b/apps/web/crowdin.yml similarity index 100% rename from packages/web/crowdin.yml rename to apps/web/crowdin.yml diff --git a/packages/web/index.html b/apps/web/index.html similarity index 100% rename from packages/web/index.html rename to apps/web/index.html diff --git a/packages/web/infra/.dockerignore b/apps/web/infra/.dockerignore similarity index 100% rename from packages/web/infra/.dockerignore rename to apps/web/infra/.dockerignore diff --git a/packages/web/infra/Containerfile b/apps/web/infra/Containerfile similarity index 100% rename from packages/web/infra/Containerfile rename to apps/web/infra/Containerfile diff --git a/packages/web/infra/default.conf b/apps/web/infra/default.conf similarity index 100% rename from packages/web/infra/default.conf rename to apps/web/infra/default.conf diff --git a/packages/web/package.json b/apps/web/package.json similarity index 100% rename from packages/web/package.json rename to apps/web/package.json diff --git a/packages/web/public/apple-touch-icon.png b/apps/web/public/apple-touch-icon.png similarity index 100% rename from packages/web/public/apple-touch-icon.png rename to apps/web/public/apple-touch-icon.png diff --git a/packages/web/public/chirpy.svg b/apps/web/public/chirpy.svg similarity index 100% rename from packages/web/public/chirpy.svg rename to apps/web/public/chirpy.svg diff --git a/packages/web/public/devices/diy.svg b/apps/web/public/devices/diy.svg similarity index 100% rename from packages/web/public/devices/diy.svg rename to apps/web/public/devices/diy.svg diff --git a/packages/web/public/devices/heltec-ht62-esp32c3-sx1262.svg b/apps/web/public/devices/heltec-ht62-esp32c3-sx1262.svg similarity index 100% rename from packages/web/public/devices/heltec-ht62-esp32c3-sx1262.svg rename to apps/web/public/devices/heltec-ht62-esp32c3-sx1262.svg diff --git a/packages/web/public/devices/heltec-mesh-node-t114-case.svg b/apps/web/public/devices/heltec-mesh-node-t114-case.svg similarity index 100% rename from packages/web/public/devices/heltec-mesh-node-t114-case.svg rename to apps/web/public/devices/heltec-mesh-node-t114-case.svg diff --git a/packages/web/public/devices/heltec-mesh-node-t114.svg b/apps/web/public/devices/heltec-mesh-node-t114.svg similarity index 100% rename from packages/web/public/devices/heltec-mesh-node-t114.svg rename to apps/web/public/devices/heltec-mesh-node-t114.svg diff --git a/packages/web/public/devices/heltec-v3-case.svg b/apps/web/public/devices/heltec-v3-case.svg similarity index 100% rename from packages/web/public/devices/heltec-v3-case.svg rename to apps/web/public/devices/heltec-v3-case.svg diff --git a/packages/web/public/devices/heltec-v3.svg b/apps/web/public/devices/heltec-v3.svg similarity index 100% rename from packages/web/public/devices/heltec-v3.svg rename to apps/web/public/devices/heltec-v3.svg diff --git a/packages/web/public/devices/heltec-vision-master-e213.svg b/apps/web/public/devices/heltec-vision-master-e213.svg similarity index 100% rename from packages/web/public/devices/heltec-vision-master-e213.svg rename to apps/web/public/devices/heltec-vision-master-e213.svg diff --git a/packages/web/public/devices/heltec-vision-master-e290.svg b/apps/web/public/devices/heltec-vision-master-e290.svg similarity index 100% rename from packages/web/public/devices/heltec-vision-master-e290.svg rename to apps/web/public/devices/heltec-vision-master-e290.svg diff --git a/packages/web/public/devices/heltec-vision-master-t190.svg b/apps/web/public/devices/heltec-vision-master-t190.svg similarity index 100% rename from packages/web/public/devices/heltec-vision-master-t190.svg rename to apps/web/public/devices/heltec-vision-master-t190.svg diff --git a/packages/web/public/devices/heltec-wireless-paper-V1_0.svg b/apps/web/public/devices/heltec-wireless-paper-V1_0.svg similarity index 100% rename from packages/web/public/devices/heltec-wireless-paper-V1_0.svg rename to apps/web/public/devices/heltec-wireless-paper-V1_0.svg diff --git a/packages/web/public/devices/heltec-wireless-paper.svg b/apps/web/public/devices/heltec-wireless-paper.svg similarity index 100% rename from packages/web/public/devices/heltec-wireless-paper.svg rename to apps/web/public/devices/heltec-wireless-paper.svg diff --git a/packages/web/public/devices/heltec-wireless-tracker-V1-0.svg b/apps/web/public/devices/heltec-wireless-tracker-V1-0.svg similarity index 100% rename from packages/web/public/devices/heltec-wireless-tracker-V1-0.svg rename to apps/web/public/devices/heltec-wireless-tracker-V1-0.svg diff --git a/packages/web/public/devices/heltec-wireless-tracker.svg b/apps/web/public/devices/heltec-wireless-tracker.svg similarity index 100% rename from packages/web/public/devices/heltec-wireless-tracker.svg rename to apps/web/public/devices/heltec-wireless-tracker.svg diff --git a/packages/web/public/devices/heltec-wsl-v3.svg b/apps/web/public/devices/heltec-wsl-v3.svg similarity index 100% rename from packages/web/public/devices/heltec-wsl-v3.svg rename to apps/web/public/devices/heltec-wsl-v3.svg diff --git a/packages/web/public/devices/nano-g2-ultra.svg b/apps/web/public/devices/nano-g2-ultra.svg similarity index 100% rename from packages/web/public/devices/nano-g2-ultra.svg rename to apps/web/public/devices/nano-g2-ultra.svg diff --git a/packages/web/public/devices/pico.svg b/apps/web/public/devices/pico.svg similarity index 100% rename from packages/web/public/devices/pico.svg rename to apps/web/public/devices/pico.svg diff --git a/packages/web/public/devices/promicro.svg b/apps/web/public/devices/promicro.svg similarity index 100% rename from packages/web/public/devices/promicro.svg rename to apps/web/public/devices/promicro.svg diff --git a/packages/web/public/devices/rak-wismeshtap.svg b/apps/web/public/devices/rak-wismeshtap.svg similarity index 100% rename from packages/web/public/devices/rak-wismeshtap.svg rename to apps/web/public/devices/rak-wismeshtap.svg diff --git a/packages/web/public/devices/rak11310.svg b/apps/web/public/devices/rak11310.svg similarity index 100% rename from packages/web/public/devices/rak11310.svg rename to apps/web/public/devices/rak11310.svg diff --git a/packages/web/public/devices/rak2560.svg b/apps/web/public/devices/rak2560.svg similarity index 100% rename from packages/web/public/devices/rak2560.svg rename to apps/web/public/devices/rak2560.svg diff --git a/packages/web/public/devices/rak4631.svg b/apps/web/public/devices/rak4631.svg similarity index 100% rename from packages/web/public/devices/rak4631.svg rename to apps/web/public/devices/rak4631.svg diff --git a/packages/web/public/devices/rak4631_case.svg b/apps/web/public/devices/rak4631_case.svg similarity index 100% rename from packages/web/public/devices/rak4631_case.svg rename to apps/web/public/devices/rak4631_case.svg diff --git a/packages/web/public/devices/rpipicow.svg b/apps/web/public/devices/rpipicow.svg similarity index 100% rename from packages/web/public/devices/rpipicow.svg rename to apps/web/public/devices/rpipicow.svg diff --git a/packages/web/public/devices/seeed-sensecap-indicator.svg b/apps/web/public/devices/seeed-sensecap-indicator.svg similarity index 100% rename from packages/web/public/devices/seeed-sensecap-indicator.svg rename to apps/web/public/devices/seeed-sensecap-indicator.svg diff --git a/packages/web/public/devices/seeed-xiao-s3.svg b/apps/web/public/devices/seeed-xiao-s3.svg similarity index 100% rename from packages/web/public/devices/seeed-xiao-s3.svg rename to apps/web/public/devices/seeed-xiao-s3.svg diff --git a/packages/web/public/devices/station-g2.svg b/apps/web/public/devices/station-g2.svg similarity index 100% rename from packages/web/public/devices/station-g2.svg rename to apps/web/public/devices/station-g2.svg diff --git a/packages/web/public/devices/t-deck.svg b/apps/web/public/devices/t-deck.svg similarity index 100% rename from packages/web/public/devices/t-deck.svg rename to apps/web/public/devices/t-deck.svg diff --git a/packages/web/public/devices/t-echo.svg b/apps/web/public/devices/t-echo.svg similarity index 100% rename from packages/web/public/devices/t-echo.svg rename to apps/web/public/devices/t-echo.svg diff --git a/packages/web/public/devices/t-watch-s3.svg b/apps/web/public/devices/t-watch-s3.svg similarity index 100% rename from packages/web/public/devices/t-watch-s3.svg rename to apps/web/public/devices/t-watch-s3.svg diff --git a/packages/web/public/devices/tbeam-s3-core.svg b/apps/web/public/devices/tbeam-s3-core.svg similarity index 100% rename from packages/web/public/devices/tbeam-s3-core.svg rename to apps/web/public/devices/tbeam-s3-core.svg diff --git a/packages/web/public/devices/tbeam.svg b/apps/web/public/devices/tbeam.svg similarity index 100% rename from packages/web/public/devices/tbeam.svg rename to apps/web/public/devices/tbeam.svg diff --git a/packages/web/public/devices/tlora-c6.svg b/apps/web/public/devices/tlora-c6.svg similarity index 100% rename from packages/web/public/devices/tlora-c6.svg rename to apps/web/public/devices/tlora-c6.svg diff --git a/packages/web/public/devices/tlora-t3s3-epaper.svg b/apps/web/public/devices/tlora-t3s3-epaper.svg similarity index 100% rename from packages/web/public/devices/tlora-t3s3-epaper.svg rename to apps/web/public/devices/tlora-t3s3-epaper.svg diff --git a/packages/web/public/devices/tlora-t3s3-v1.svg b/apps/web/public/devices/tlora-t3s3-v1.svg similarity index 100% rename from packages/web/public/devices/tlora-t3s3-v1.svg rename to apps/web/public/devices/tlora-t3s3-v1.svg diff --git a/packages/web/public/devices/tlora-v2-1-1_6.svg b/apps/web/public/devices/tlora-v2-1-1_6.svg similarity index 100% rename from packages/web/public/devices/tlora-v2-1-1_6.svg rename to apps/web/public/devices/tlora-v2-1-1_6.svg diff --git a/packages/web/public/devices/tlora-v2-1-1_8.svg b/apps/web/public/devices/tlora-v2-1-1_8.svg similarity index 100% rename from packages/web/public/devices/tlora-v2-1-1_8.svg rename to apps/web/public/devices/tlora-v2-1-1_8.svg diff --git a/packages/web/public/devices/tracker-t1000-e.svg b/apps/web/public/devices/tracker-t1000-e.svg similarity index 100% rename from packages/web/public/devices/tracker-t1000-e.svg rename to apps/web/public/devices/tracker-t1000-e.svg diff --git a/packages/web/public/devices/unknown.svg b/apps/web/public/devices/unknown.svg similarity index 100% rename from packages/web/public/devices/unknown.svg rename to apps/web/public/devices/unknown.svg diff --git a/packages/web/public/devices/wio-tracker-wm1110.svg b/apps/web/public/devices/wio-tracker-wm1110.svg similarity index 100% rename from packages/web/public/devices/wio-tracker-wm1110.svg rename to apps/web/public/devices/wio-tracker-wm1110.svg diff --git a/packages/web/public/devices/wm1110_dev_kit.svg b/apps/web/public/devices/wm1110_dev_kit.svg similarity index 100% rename from packages/web/public/devices/wm1110_dev_kit.svg rename to apps/web/public/devices/wm1110_dev_kit.svg diff --git a/packages/web/public/favicon.ico b/apps/web/public/favicon.ico similarity index 100% rename from packages/web/public/favicon.ico rename to apps/web/public/favicon.ico diff --git a/packages/web/public/fonts/InterVariable-Italic.woff2 b/apps/web/public/fonts/InterVariable-Italic.woff2 similarity index 100% rename from packages/web/public/fonts/InterVariable-Italic.woff2 rename to apps/web/public/fonts/InterVariable-Italic.woff2 diff --git a/packages/web/public/fonts/InterVariable.woff2 b/apps/web/public/fonts/InterVariable.woff2 similarity index 100% rename from packages/web/public/fonts/InterVariable.woff2 rename to apps/web/public/fonts/InterVariable.woff2 diff --git a/packages/web/public/i18n/locales/be-BY/channels.json b/apps/web/public/i18n/locales/be-BY/channels.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/channels.json rename to apps/web/public/i18n/locales/be-BY/channels.json diff --git a/packages/web/public/i18n/locales/be-BY/commandPalette.json b/apps/web/public/i18n/locales/be-BY/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/commandPalette.json rename to apps/web/public/i18n/locales/be-BY/commandPalette.json diff --git a/packages/web/public/i18n/locales/be-BY/common.json b/apps/web/public/i18n/locales/be-BY/common.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/common.json rename to apps/web/public/i18n/locales/be-BY/common.json diff --git a/packages/web/public/i18n/locales/be-BY/config.json b/apps/web/public/i18n/locales/be-BY/config.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/config.json rename to apps/web/public/i18n/locales/be-BY/config.json diff --git a/packages/web/public/i18n/locales/be-BY/connections.json b/apps/web/public/i18n/locales/be-BY/connections.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/connections.json rename to apps/web/public/i18n/locales/be-BY/connections.json diff --git a/packages/web/public/i18n/locales/be-BY/deviceConfig.json b/apps/web/public/i18n/locales/be-BY/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/deviceConfig.json rename to apps/web/public/i18n/locales/be-BY/deviceConfig.json diff --git a/packages/web/public/i18n/locales/be-BY/dialog.json b/apps/web/public/i18n/locales/be-BY/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/dialog.json rename to apps/web/public/i18n/locales/be-BY/dialog.json diff --git a/packages/web/public/i18n/locales/be-BY/map.json b/apps/web/public/i18n/locales/be-BY/map.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/map.json rename to apps/web/public/i18n/locales/be-BY/map.json diff --git a/packages/web/public/i18n/locales/be-BY/messages.json b/apps/web/public/i18n/locales/be-BY/messages.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/messages.json rename to apps/web/public/i18n/locales/be-BY/messages.json diff --git a/packages/web/public/i18n/locales/be-BY/moduleConfig.json b/apps/web/public/i18n/locales/be-BY/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/moduleConfig.json rename to apps/web/public/i18n/locales/be-BY/moduleConfig.json diff --git a/packages/web/public/i18n/locales/be-BY/nodes.json b/apps/web/public/i18n/locales/be-BY/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/nodes.json rename to apps/web/public/i18n/locales/be-BY/nodes.json diff --git a/packages/web/public/i18n/locales/be-BY/ui.json b/apps/web/public/i18n/locales/be-BY/ui.json similarity index 100% rename from packages/web/public/i18n/locales/be-BY/ui.json rename to apps/web/public/i18n/locales/be-BY/ui.json diff --git a/packages/web/public/i18n/locales/bg-BG/channels.json b/apps/web/public/i18n/locales/bg-BG/channels.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/channels.json rename to apps/web/public/i18n/locales/bg-BG/channels.json diff --git a/packages/web/public/i18n/locales/bg-BG/commandPalette.json b/apps/web/public/i18n/locales/bg-BG/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/commandPalette.json rename to apps/web/public/i18n/locales/bg-BG/commandPalette.json diff --git a/packages/web/public/i18n/locales/bg-BG/common.json b/apps/web/public/i18n/locales/bg-BG/common.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/common.json rename to apps/web/public/i18n/locales/bg-BG/common.json diff --git a/packages/web/public/i18n/locales/bg-BG/config.json b/apps/web/public/i18n/locales/bg-BG/config.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/config.json rename to apps/web/public/i18n/locales/bg-BG/config.json diff --git a/packages/web/public/i18n/locales/bg-BG/connections.json b/apps/web/public/i18n/locales/bg-BG/connections.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/connections.json rename to apps/web/public/i18n/locales/bg-BG/connections.json diff --git a/packages/web/public/i18n/locales/bg-BG/deviceConfig.json b/apps/web/public/i18n/locales/bg-BG/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/deviceConfig.json rename to apps/web/public/i18n/locales/bg-BG/deviceConfig.json diff --git a/packages/web/public/i18n/locales/bg-BG/dialog.json b/apps/web/public/i18n/locales/bg-BG/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/dialog.json rename to apps/web/public/i18n/locales/bg-BG/dialog.json diff --git a/packages/web/public/i18n/locales/bg-BG/map.json b/apps/web/public/i18n/locales/bg-BG/map.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/map.json rename to apps/web/public/i18n/locales/bg-BG/map.json diff --git a/packages/web/public/i18n/locales/bg-BG/messages.json b/apps/web/public/i18n/locales/bg-BG/messages.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/messages.json rename to apps/web/public/i18n/locales/bg-BG/messages.json diff --git a/packages/web/public/i18n/locales/bg-BG/moduleConfig.json b/apps/web/public/i18n/locales/bg-BG/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/moduleConfig.json rename to apps/web/public/i18n/locales/bg-BG/moduleConfig.json diff --git a/packages/web/public/i18n/locales/bg-BG/nodes.json b/apps/web/public/i18n/locales/bg-BG/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/nodes.json rename to apps/web/public/i18n/locales/bg-BG/nodes.json diff --git a/packages/web/public/i18n/locales/bg-BG/ui.json b/apps/web/public/i18n/locales/bg-BG/ui.json similarity index 100% rename from packages/web/public/i18n/locales/bg-BG/ui.json rename to apps/web/public/i18n/locales/bg-BG/ui.json diff --git a/packages/web/public/i18n/locales/cs-CZ/channels.json b/apps/web/public/i18n/locales/cs-CZ/channels.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/channels.json rename to apps/web/public/i18n/locales/cs-CZ/channels.json diff --git a/packages/web/public/i18n/locales/cs-CZ/commandPalette.json b/apps/web/public/i18n/locales/cs-CZ/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/commandPalette.json rename to apps/web/public/i18n/locales/cs-CZ/commandPalette.json diff --git a/packages/web/public/i18n/locales/cs-CZ/common.json b/apps/web/public/i18n/locales/cs-CZ/common.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/common.json rename to apps/web/public/i18n/locales/cs-CZ/common.json diff --git a/packages/web/public/i18n/locales/cs-CZ/config.json b/apps/web/public/i18n/locales/cs-CZ/config.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/config.json rename to apps/web/public/i18n/locales/cs-CZ/config.json diff --git a/packages/web/public/i18n/locales/cs-CZ/connections.json b/apps/web/public/i18n/locales/cs-CZ/connections.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/connections.json rename to apps/web/public/i18n/locales/cs-CZ/connections.json diff --git a/packages/web/public/i18n/locales/cs-CZ/deviceConfig.json b/apps/web/public/i18n/locales/cs-CZ/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/deviceConfig.json rename to apps/web/public/i18n/locales/cs-CZ/deviceConfig.json diff --git a/packages/web/public/i18n/locales/cs-CZ/dialog.json b/apps/web/public/i18n/locales/cs-CZ/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/dialog.json rename to apps/web/public/i18n/locales/cs-CZ/dialog.json diff --git a/packages/web/public/i18n/locales/cs-CZ/map.json b/apps/web/public/i18n/locales/cs-CZ/map.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/map.json rename to apps/web/public/i18n/locales/cs-CZ/map.json diff --git a/packages/web/public/i18n/locales/cs-CZ/messages.json b/apps/web/public/i18n/locales/cs-CZ/messages.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/messages.json rename to apps/web/public/i18n/locales/cs-CZ/messages.json diff --git a/packages/web/public/i18n/locales/cs-CZ/moduleConfig.json b/apps/web/public/i18n/locales/cs-CZ/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/moduleConfig.json rename to apps/web/public/i18n/locales/cs-CZ/moduleConfig.json diff --git a/packages/web/public/i18n/locales/cs-CZ/nodes.json b/apps/web/public/i18n/locales/cs-CZ/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/nodes.json rename to apps/web/public/i18n/locales/cs-CZ/nodes.json diff --git a/packages/web/public/i18n/locales/cs-CZ/ui.json b/apps/web/public/i18n/locales/cs-CZ/ui.json similarity index 100% rename from packages/web/public/i18n/locales/cs-CZ/ui.json rename to apps/web/public/i18n/locales/cs-CZ/ui.json diff --git a/packages/web/public/i18n/locales/de-DE/channels.json b/apps/web/public/i18n/locales/de-DE/channels.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/channels.json rename to apps/web/public/i18n/locales/de-DE/channels.json diff --git a/packages/web/public/i18n/locales/de-DE/commandPalette.json b/apps/web/public/i18n/locales/de-DE/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/commandPalette.json rename to apps/web/public/i18n/locales/de-DE/commandPalette.json diff --git a/packages/web/public/i18n/locales/de-DE/common.json b/apps/web/public/i18n/locales/de-DE/common.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/common.json rename to apps/web/public/i18n/locales/de-DE/common.json diff --git a/packages/web/public/i18n/locales/de-DE/config.json b/apps/web/public/i18n/locales/de-DE/config.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/config.json rename to apps/web/public/i18n/locales/de-DE/config.json diff --git a/packages/web/public/i18n/locales/de-DE/connections.json b/apps/web/public/i18n/locales/de-DE/connections.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/connections.json rename to apps/web/public/i18n/locales/de-DE/connections.json diff --git a/packages/web/public/i18n/locales/de-DE/deviceConfig.json b/apps/web/public/i18n/locales/de-DE/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/deviceConfig.json rename to apps/web/public/i18n/locales/de-DE/deviceConfig.json diff --git a/packages/web/public/i18n/locales/de-DE/dialog.json b/apps/web/public/i18n/locales/de-DE/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/dialog.json rename to apps/web/public/i18n/locales/de-DE/dialog.json diff --git a/packages/web/public/i18n/locales/de-DE/map.json b/apps/web/public/i18n/locales/de-DE/map.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/map.json rename to apps/web/public/i18n/locales/de-DE/map.json diff --git a/packages/web/public/i18n/locales/de-DE/messages.json b/apps/web/public/i18n/locales/de-DE/messages.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/messages.json rename to apps/web/public/i18n/locales/de-DE/messages.json diff --git a/packages/web/public/i18n/locales/de-DE/moduleConfig.json b/apps/web/public/i18n/locales/de-DE/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/moduleConfig.json rename to apps/web/public/i18n/locales/de-DE/moduleConfig.json diff --git a/packages/web/public/i18n/locales/de-DE/nodes.json b/apps/web/public/i18n/locales/de-DE/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/nodes.json rename to apps/web/public/i18n/locales/de-DE/nodes.json diff --git a/packages/web/public/i18n/locales/de-DE/ui.json b/apps/web/public/i18n/locales/de-DE/ui.json similarity index 100% rename from packages/web/public/i18n/locales/de-DE/ui.json rename to apps/web/public/i18n/locales/de-DE/ui.json diff --git a/packages/web/public/i18n/locales/en/channels.json b/apps/web/public/i18n/locales/en/channels.json similarity index 100% rename from packages/web/public/i18n/locales/en/channels.json rename to apps/web/public/i18n/locales/en/channels.json diff --git a/packages/web/public/i18n/locales/en/commandPalette.json b/apps/web/public/i18n/locales/en/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/en/commandPalette.json rename to apps/web/public/i18n/locales/en/commandPalette.json diff --git a/packages/web/public/i18n/locales/en/common.json b/apps/web/public/i18n/locales/en/common.json similarity index 99% rename from packages/web/public/i18n/locales/en/common.json rename to apps/web/public/i18n/locales/en/common.json index a3959dca..ee729317 100644 --- a/packages/web/public/i18n/locales/en/common.json +++ b/apps/web/public/i18n/locales/en/common.json @@ -3,6 +3,7 @@ "apply": "Apply", "addConnection": "Add Connection", "saveConnection": "Save connection", + "saveChanges": "Save changes", "backupKey": "Backup Key", "cancel": "Cancel", "connect": "Connect", diff --git a/packages/web/public/i18n/locales/en/config.json b/apps/web/public/i18n/locales/en/config.json similarity index 100% rename from packages/web/public/i18n/locales/en/config.json rename to apps/web/public/i18n/locales/en/config.json diff --git a/packages/web/public/i18n/locales/en/connections.json b/apps/web/public/i18n/locales/en/connections.json similarity index 65% rename from packages/web/public/i18n/locales/en/connections.json rename to apps/web/public/i18n/locales/en/connections.json index de1b6b06..790a05f8 100644 --- a/packages/web/public/i18n/locales/en/connections.json +++ b/apps/web/public/i18n/locales/en/connections.json @@ -15,6 +15,26 @@ }, "lastConnectedAt": "Last connected: {{date}}", "neverConnected": "Never connected", + "default": "Default", + "button": { + "addConnection": "Add Connection", + "connect": "Connect", + "disconnect": "Disconnect", + "retry": "Retry", + "delete": "Delete", + "cancel": "Cancel", + "setDefault": "Set as default", + "unsetDefault": "Unset default", + "rename": "Rename", + "edit": "Edit" + }, + "renameConnection": "Rename connection", + "renameDescription": "Enter a new name for this connection.", + "nameLabel": "Name", + "editConnection": { + "title": "Edit Connection", + "description": "Modify the settings for this connection." + }, "toasts": { "connected": "Connected", "nowConnected": "{{name}} is now connected", @@ -29,6 +49,10 @@ "pickConnectionAgain": "Could not connect. You may need to reselect the device/port.", "added": "Connection added", "savedByName": "{{name}} saved.", - "savedCantConnect": "The connection was saved but could not connect." + "savedCantConnect": "The connection was saved but could not connect.", + "renamed": "Renamed", + "renamedByName": "Connection renamed to {{name}}.", + "updated": "Updated", + "updatedByName": "{{name}} has been updated." } } diff --git a/packages/web/public/i18n/locales/en/dialog.json b/apps/web/public/i18n/locales/en/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/en/dialog.json rename to apps/web/public/i18n/locales/en/dialog.json diff --git a/packages/web/public/i18n/locales/en/map.json b/apps/web/public/i18n/locales/en/map.json similarity index 100% rename from packages/web/public/i18n/locales/en/map.json rename to apps/web/public/i18n/locales/en/map.json diff --git a/packages/web/public/i18n/locales/en/messages.json b/apps/web/public/i18n/locales/en/messages.json similarity index 100% rename from packages/web/public/i18n/locales/en/messages.json rename to apps/web/public/i18n/locales/en/messages.json diff --git a/packages/web/public/i18n/locales/en/moduleConfig.json b/apps/web/public/i18n/locales/en/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/en/moduleConfig.json rename to apps/web/public/i18n/locales/en/moduleConfig.json diff --git a/packages/web/public/i18n/locales/en/nodes.json b/apps/web/public/i18n/locales/en/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/en/nodes.json rename to apps/web/public/i18n/locales/en/nodes.json diff --git a/packages/web/public/i18n/locales/en/ui.json b/apps/web/public/i18n/locales/en/ui.json similarity index 100% rename from packages/web/public/i18n/locales/en/ui.json rename to apps/web/public/i18n/locales/en/ui.json diff --git a/packages/web/public/i18n/locales/es-ES/channels.json b/apps/web/public/i18n/locales/es-ES/channels.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/channels.json rename to apps/web/public/i18n/locales/es-ES/channels.json diff --git a/packages/web/public/i18n/locales/es-ES/commandPalette.json b/apps/web/public/i18n/locales/es-ES/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/commandPalette.json rename to apps/web/public/i18n/locales/es-ES/commandPalette.json diff --git a/packages/web/public/i18n/locales/es-ES/common.json b/apps/web/public/i18n/locales/es-ES/common.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/common.json rename to apps/web/public/i18n/locales/es-ES/common.json diff --git a/packages/web/public/i18n/locales/es-ES/config.json b/apps/web/public/i18n/locales/es-ES/config.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/config.json rename to apps/web/public/i18n/locales/es-ES/config.json diff --git a/packages/web/public/i18n/locales/es-ES/connections.json b/apps/web/public/i18n/locales/es-ES/connections.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/connections.json rename to apps/web/public/i18n/locales/es-ES/connections.json diff --git a/packages/web/public/i18n/locales/es-ES/deviceConfig.json b/apps/web/public/i18n/locales/es-ES/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/deviceConfig.json rename to apps/web/public/i18n/locales/es-ES/deviceConfig.json diff --git a/packages/web/public/i18n/locales/es-ES/dialog.json b/apps/web/public/i18n/locales/es-ES/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/dialog.json rename to apps/web/public/i18n/locales/es-ES/dialog.json diff --git a/packages/web/public/i18n/locales/es-ES/map.json b/apps/web/public/i18n/locales/es-ES/map.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/map.json rename to apps/web/public/i18n/locales/es-ES/map.json diff --git a/packages/web/public/i18n/locales/es-ES/messages.json b/apps/web/public/i18n/locales/es-ES/messages.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/messages.json rename to apps/web/public/i18n/locales/es-ES/messages.json diff --git a/packages/web/public/i18n/locales/es-ES/moduleConfig.json b/apps/web/public/i18n/locales/es-ES/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/moduleConfig.json rename to apps/web/public/i18n/locales/es-ES/moduleConfig.json diff --git a/packages/web/public/i18n/locales/es-ES/nodes.json b/apps/web/public/i18n/locales/es-ES/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/nodes.json rename to apps/web/public/i18n/locales/es-ES/nodes.json diff --git a/packages/web/public/i18n/locales/es-ES/ui.json b/apps/web/public/i18n/locales/es-ES/ui.json similarity index 100% rename from packages/web/public/i18n/locales/es-ES/ui.json rename to apps/web/public/i18n/locales/es-ES/ui.json diff --git a/packages/web/public/i18n/locales/fi-FI/channels.json b/apps/web/public/i18n/locales/fi-FI/channels.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/channels.json rename to apps/web/public/i18n/locales/fi-FI/channels.json diff --git a/packages/web/public/i18n/locales/fi-FI/commandPalette.json b/apps/web/public/i18n/locales/fi-FI/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/commandPalette.json rename to apps/web/public/i18n/locales/fi-FI/commandPalette.json diff --git a/packages/web/public/i18n/locales/fi-FI/common.json b/apps/web/public/i18n/locales/fi-FI/common.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/common.json rename to apps/web/public/i18n/locales/fi-FI/common.json diff --git a/packages/web/public/i18n/locales/fi-FI/config.json b/apps/web/public/i18n/locales/fi-FI/config.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/config.json rename to apps/web/public/i18n/locales/fi-FI/config.json diff --git a/packages/web/public/i18n/locales/fi-FI/connections.json b/apps/web/public/i18n/locales/fi-FI/connections.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/connections.json rename to apps/web/public/i18n/locales/fi-FI/connections.json diff --git a/packages/web/public/i18n/locales/fi-FI/deviceConfig.json b/apps/web/public/i18n/locales/fi-FI/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/deviceConfig.json rename to apps/web/public/i18n/locales/fi-FI/deviceConfig.json diff --git a/packages/web/public/i18n/locales/fi-FI/dialog.json b/apps/web/public/i18n/locales/fi-FI/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/dialog.json rename to apps/web/public/i18n/locales/fi-FI/dialog.json diff --git a/packages/web/public/i18n/locales/fi-FI/map.json b/apps/web/public/i18n/locales/fi-FI/map.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/map.json rename to apps/web/public/i18n/locales/fi-FI/map.json diff --git a/packages/web/public/i18n/locales/fi-FI/messages.json b/apps/web/public/i18n/locales/fi-FI/messages.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/messages.json rename to apps/web/public/i18n/locales/fi-FI/messages.json diff --git a/packages/web/public/i18n/locales/fi-FI/moduleConfig.json b/apps/web/public/i18n/locales/fi-FI/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/moduleConfig.json rename to apps/web/public/i18n/locales/fi-FI/moduleConfig.json diff --git a/packages/web/public/i18n/locales/fi-FI/nodes.json b/apps/web/public/i18n/locales/fi-FI/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/nodes.json rename to apps/web/public/i18n/locales/fi-FI/nodes.json diff --git a/packages/web/public/i18n/locales/fi-FI/ui.json b/apps/web/public/i18n/locales/fi-FI/ui.json similarity index 100% rename from packages/web/public/i18n/locales/fi-FI/ui.json rename to apps/web/public/i18n/locales/fi-FI/ui.json diff --git a/packages/web/public/i18n/locales/fr-FR/channels.json b/apps/web/public/i18n/locales/fr-FR/channels.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/channels.json rename to apps/web/public/i18n/locales/fr-FR/channels.json diff --git a/packages/web/public/i18n/locales/fr-FR/commandPalette.json b/apps/web/public/i18n/locales/fr-FR/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/commandPalette.json rename to apps/web/public/i18n/locales/fr-FR/commandPalette.json diff --git a/packages/web/public/i18n/locales/fr-FR/common.json b/apps/web/public/i18n/locales/fr-FR/common.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/common.json rename to apps/web/public/i18n/locales/fr-FR/common.json diff --git a/packages/web/public/i18n/locales/fr-FR/config.json b/apps/web/public/i18n/locales/fr-FR/config.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/config.json rename to apps/web/public/i18n/locales/fr-FR/config.json diff --git a/packages/web/public/i18n/locales/fr-FR/connections.json b/apps/web/public/i18n/locales/fr-FR/connections.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/connections.json rename to apps/web/public/i18n/locales/fr-FR/connections.json diff --git a/packages/web/public/i18n/locales/fr-FR/deviceConfig.json b/apps/web/public/i18n/locales/fr-FR/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/deviceConfig.json rename to apps/web/public/i18n/locales/fr-FR/deviceConfig.json diff --git a/packages/web/public/i18n/locales/fr-FR/dialog.json b/apps/web/public/i18n/locales/fr-FR/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/dialog.json rename to apps/web/public/i18n/locales/fr-FR/dialog.json diff --git a/packages/web/public/i18n/locales/fr-FR/map.json b/apps/web/public/i18n/locales/fr-FR/map.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/map.json rename to apps/web/public/i18n/locales/fr-FR/map.json diff --git a/packages/web/public/i18n/locales/fr-FR/messages.json b/apps/web/public/i18n/locales/fr-FR/messages.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/messages.json rename to apps/web/public/i18n/locales/fr-FR/messages.json diff --git a/packages/web/public/i18n/locales/fr-FR/moduleConfig.json b/apps/web/public/i18n/locales/fr-FR/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/moduleConfig.json rename to apps/web/public/i18n/locales/fr-FR/moduleConfig.json diff --git a/packages/web/public/i18n/locales/fr-FR/nodes.json b/apps/web/public/i18n/locales/fr-FR/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/nodes.json rename to apps/web/public/i18n/locales/fr-FR/nodes.json diff --git a/packages/web/public/i18n/locales/fr-FR/ui.json b/apps/web/public/i18n/locales/fr-FR/ui.json similarity index 100% rename from packages/web/public/i18n/locales/fr-FR/ui.json rename to apps/web/public/i18n/locales/fr-FR/ui.json diff --git a/packages/web/public/i18n/locales/hu-HU/channels.json b/apps/web/public/i18n/locales/hu-HU/channels.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/channels.json rename to apps/web/public/i18n/locales/hu-HU/channels.json diff --git a/packages/web/public/i18n/locales/hu-HU/commandPalette.json b/apps/web/public/i18n/locales/hu-HU/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/commandPalette.json rename to apps/web/public/i18n/locales/hu-HU/commandPalette.json diff --git a/packages/web/public/i18n/locales/hu-HU/common.json b/apps/web/public/i18n/locales/hu-HU/common.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/common.json rename to apps/web/public/i18n/locales/hu-HU/common.json diff --git a/packages/web/public/i18n/locales/hu-HU/config.json b/apps/web/public/i18n/locales/hu-HU/config.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/config.json rename to apps/web/public/i18n/locales/hu-HU/config.json diff --git a/packages/web/public/i18n/locales/hu-HU/connections.json b/apps/web/public/i18n/locales/hu-HU/connections.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/connections.json rename to apps/web/public/i18n/locales/hu-HU/connections.json diff --git a/packages/web/public/i18n/locales/hu-HU/deviceConfig.json b/apps/web/public/i18n/locales/hu-HU/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/deviceConfig.json rename to apps/web/public/i18n/locales/hu-HU/deviceConfig.json diff --git a/packages/web/public/i18n/locales/hu-HU/dialog.json b/apps/web/public/i18n/locales/hu-HU/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/dialog.json rename to apps/web/public/i18n/locales/hu-HU/dialog.json diff --git a/packages/web/public/i18n/locales/hu-HU/map.json b/apps/web/public/i18n/locales/hu-HU/map.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/map.json rename to apps/web/public/i18n/locales/hu-HU/map.json diff --git a/packages/web/public/i18n/locales/hu-HU/messages.json b/apps/web/public/i18n/locales/hu-HU/messages.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/messages.json rename to apps/web/public/i18n/locales/hu-HU/messages.json diff --git a/packages/web/public/i18n/locales/hu-HU/moduleConfig.json b/apps/web/public/i18n/locales/hu-HU/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/moduleConfig.json rename to apps/web/public/i18n/locales/hu-HU/moduleConfig.json diff --git a/packages/web/public/i18n/locales/hu-HU/nodes.json b/apps/web/public/i18n/locales/hu-HU/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/nodes.json rename to apps/web/public/i18n/locales/hu-HU/nodes.json diff --git a/packages/web/public/i18n/locales/hu-HU/ui.json b/apps/web/public/i18n/locales/hu-HU/ui.json similarity index 100% rename from packages/web/public/i18n/locales/hu-HU/ui.json rename to apps/web/public/i18n/locales/hu-HU/ui.json diff --git a/packages/web/public/i18n/locales/it-IT/channels.json b/apps/web/public/i18n/locales/it-IT/channels.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/channels.json rename to apps/web/public/i18n/locales/it-IT/channels.json diff --git a/packages/web/public/i18n/locales/it-IT/commandPalette.json b/apps/web/public/i18n/locales/it-IT/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/commandPalette.json rename to apps/web/public/i18n/locales/it-IT/commandPalette.json diff --git a/packages/web/public/i18n/locales/it-IT/common.json b/apps/web/public/i18n/locales/it-IT/common.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/common.json rename to apps/web/public/i18n/locales/it-IT/common.json diff --git a/packages/web/public/i18n/locales/it-IT/config.json b/apps/web/public/i18n/locales/it-IT/config.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/config.json rename to apps/web/public/i18n/locales/it-IT/config.json diff --git a/packages/web/public/i18n/locales/it-IT/connections.json b/apps/web/public/i18n/locales/it-IT/connections.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/connections.json rename to apps/web/public/i18n/locales/it-IT/connections.json diff --git a/packages/web/public/i18n/locales/it-IT/deviceConfig.json b/apps/web/public/i18n/locales/it-IT/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/deviceConfig.json rename to apps/web/public/i18n/locales/it-IT/deviceConfig.json diff --git a/packages/web/public/i18n/locales/it-IT/dialog.json b/apps/web/public/i18n/locales/it-IT/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/dialog.json rename to apps/web/public/i18n/locales/it-IT/dialog.json diff --git a/packages/web/public/i18n/locales/it-IT/map.json b/apps/web/public/i18n/locales/it-IT/map.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/map.json rename to apps/web/public/i18n/locales/it-IT/map.json diff --git a/packages/web/public/i18n/locales/it-IT/messages.json b/apps/web/public/i18n/locales/it-IT/messages.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/messages.json rename to apps/web/public/i18n/locales/it-IT/messages.json diff --git a/packages/web/public/i18n/locales/it-IT/moduleConfig.json b/apps/web/public/i18n/locales/it-IT/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/moduleConfig.json rename to apps/web/public/i18n/locales/it-IT/moduleConfig.json diff --git a/packages/web/public/i18n/locales/it-IT/nodes.json b/apps/web/public/i18n/locales/it-IT/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/nodes.json rename to apps/web/public/i18n/locales/it-IT/nodes.json diff --git a/packages/web/public/i18n/locales/it-IT/ui.json b/apps/web/public/i18n/locales/it-IT/ui.json similarity index 100% rename from packages/web/public/i18n/locales/it-IT/ui.json rename to apps/web/public/i18n/locales/it-IT/ui.json diff --git a/packages/web/public/i18n/locales/ja-JP/channels.json b/apps/web/public/i18n/locales/ja-JP/channels.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/channels.json rename to apps/web/public/i18n/locales/ja-JP/channels.json diff --git a/packages/web/public/i18n/locales/ja-JP/commandPalette.json b/apps/web/public/i18n/locales/ja-JP/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/commandPalette.json rename to apps/web/public/i18n/locales/ja-JP/commandPalette.json diff --git a/packages/web/public/i18n/locales/ja-JP/common.json b/apps/web/public/i18n/locales/ja-JP/common.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/common.json rename to apps/web/public/i18n/locales/ja-JP/common.json diff --git a/packages/web/public/i18n/locales/ja-JP/config.json b/apps/web/public/i18n/locales/ja-JP/config.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/config.json rename to apps/web/public/i18n/locales/ja-JP/config.json diff --git a/packages/web/public/i18n/locales/ja-JP/connections.json b/apps/web/public/i18n/locales/ja-JP/connections.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/connections.json rename to apps/web/public/i18n/locales/ja-JP/connections.json diff --git a/packages/web/public/i18n/locales/ja-JP/deviceConfig.json b/apps/web/public/i18n/locales/ja-JP/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/deviceConfig.json rename to apps/web/public/i18n/locales/ja-JP/deviceConfig.json diff --git a/packages/web/public/i18n/locales/ja-JP/dialog.json b/apps/web/public/i18n/locales/ja-JP/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/dialog.json rename to apps/web/public/i18n/locales/ja-JP/dialog.json diff --git a/packages/web/public/i18n/locales/ja-JP/map.json b/apps/web/public/i18n/locales/ja-JP/map.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/map.json rename to apps/web/public/i18n/locales/ja-JP/map.json diff --git a/packages/web/public/i18n/locales/ja-JP/messages.json b/apps/web/public/i18n/locales/ja-JP/messages.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/messages.json rename to apps/web/public/i18n/locales/ja-JP/messages.json diff --git a/packages/web/public/i18n/locales/ja-JP/moduleConfig.json b/apps/web/public/i18n/locales/ja-JP/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/moduleConfig.json rename to apps/web/public/i18n/locales/ja-JP/moduleConfig.json diff --git a/packages/web/public/i18n/locales/ja-JP/nodes.json b/apps/web/public/i18n/locales/ja-JP/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/nodes.json rename to apps/web/public/i18n/locales/ja-JP/nodes.json diff --git a/packages/web/public/i18n/locales/ja-JP/ui.json b/apps/web/public/i18n/locales/ja-JP/ui.json similarity index 100% rename from packages/web/public/i18n/locales/ja-JP/ui.json rename to apps/web/public/i18n/locales/ja-JP/ui.json diff --git a/packages/web/public/i18n/locales/ko-KR/channels.json b/apps/web/public/i18n/locales/ko-KR/channels.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/channels.json rename to apps/web/public/i18n/locales/ko-KR/channels.json diff --git a/packages/web/public/i18n/locales/ko-KR/commandPalette.json b/apps/web/public/i18n/locales/ko-KR/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/commandPalette.json rename to apps/web/public/i18n/locales/ko-KR/commandPalette.json diff --git a/packages/web/public/i18n/locales/ko-KR/common.json b/apps/web/public/i18n/locales/ko-KR/common.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/common.json rename to apps/web/public/i18n/locales/ko-KR/common.json diff --git a/packages/web/public/i18n/locales/ko-KR/config.json b/apps/web/public/i18n/locales/ko-KR/config.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/config.json rename to apps/web/public/i18n/locales/ko-KR/config.json diff --git a/packages/web/public/i18n/locales/ko-KR/connections.json b/apps/web/public/i18n/locales/ko-KR/connections.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/connections.json rename to apps/web/public/i18n/locales/ko-KR/connections.json diff --git a/packages/web/public/i18n/locales/ko-KR/deviceConfig.json b/apps/web/public/i18n/locales/ko-KR/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/deviceConfig.json rename to apps/web/public/i18n/locales/ko-KR/deviceConfig.json diff --git a/packages/web/public/i18n/locales/ko-KR/dialog.json b/apps/web/public/i18n/locales/ko-KR/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/dialog.json rename to apps/web/public/i18n/locales/ko-KR/dialog.json diff --git a/packages/web/public/i18n/locales/ko-KR/map.json b/apps/web/public/i18n/locales/ko-KR/map.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/map.json rename to apps/web/public/i18n/locales/ko-KR/map.json diff --git a/packages/web/public/i18n/locales/ko-KR/messages.json b/apps/web/public/i18n/locales/ko-KR/messages.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/messages.json rename to apps/web/public/i18n/locales/ko-KR/messages.json diff --git a/packages/web/public/i18n/locales/ko-KR/moduleConfig.json b/apps/web/public/i18n/locales/ko-KR/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/moduleConfig.json rename to apps/web/public/i18n/locales/ko-KR/moduleConfig.json diff --git a/packages/web/public/i18n/locales/ko-KR/nodes.json b/apps/web/public/i18n/locales/ko-KR/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/nodes.json rename to apps/web/public/i18n/locales/ko-KR/nodes.json diff --git a/packages/web/public/i18n/locales/ko-KR/ui.json b/apps/web/public/i18n/locales/ko-KR/ui.json similarity index 100% rename from packages/web/public/i18n/locales/ko-KR/ui.json rename to apps/web/public/i18n/locales/ko-KR/ui.json diff --git a/packages/web/public/i18n/locales/nl-NL/channels.json b/apps/web/public/i18n/locales/nl-NL/channels.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/channels.json rename to apps/web/public/i18n/locales/nl-NL/channels.json diff --git a/packages/web/public/i18n/locales/nl-NL/commandPalette.json b/apps/web/public/i18n/locales/nl-NL/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/commandPalette.json rename to apps/web/public/i18n/locales/nl-NL/commandPalette.json diff --git a/packages/web/public/i18n/locales/nl-NL/common.json b/apps/web/public/i18n/locales/nl-NL/common.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/common.json rename to apps/web/public/i18n/locales/nl-NL/common.json diff --git a/packages/web/public/i18n/locales/nl-NL/config.json b/apps/web/public/i18n/locales/nl-NL/config.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/config.json rename to apps/web/public/i18n/locales/nl-NL/config.json diff --git a/packages/web/public/i18n/locales/nl-NL/connections.json b/apps/web/public/i18n/locales/nl-NL/connections.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/connections.json rename to apps/web/public/i18n/locales/nl-NL/connections.json diff --git a/packages/web/public/i18n/locales/nl-NL/deviceConfig.json b/apps/web/public/i18n/locales/nl-NL/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/deviceConfig.json rename to apps/web/public/i18n/locales/nl-NL/deviceConfig.json diff --git a/packages/web/public/i18n/locales/nl-NL/dialog.json b/apps/web/public/i18n/locales/nl-NL/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/dialog.json rename to apps/web/public/i18n/locales/nl-NL/dialog.json diff --git a/packages/web/public/i18n/locales/nl-NL/map.json b/apps/web/public/i18n/locales/nl-NL/map.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/map.json rename to apps/web/public/i18n/locales/nl-NL/map.json diff --git a/packages/web/public/i18n/locales/nl-NL/messages.json b/apps/web/public/i18n/locales/nl-NL/messages.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/messages.json rename to apps/web/public/i18n/locales/nl-NL/messages.json diff --git a/packages/web/public/i18n/locales/nl-NL/moduleConfig.json b/apps/web/public/i18n/locales/nl-NL/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/moduleConfig.json rename to apps/web/public/i18n/locales/nl-NL/moduleConfig.json diff --git a/packages/web/public/i18n/locales/nl-NL/nodes.json b/apps/web/public/i18n/locales/nl-NL/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/nodes.json rename to apps/web/public/i18n/locales/nl-NL/nodes.json diff --git a/packages/web/public/i18n/locales/nl-NL/ui.json b/apps/web/public/i18n/locales/nl-NL/ui.json similarity index 100% rename from packages/web/public/i18n/locales/nl-NL/ui.json rename to apps/web/public/i18n/locales/nl-NL/ui.json diff --git a/packages/web/public/i18n/locales/pl-PL/channels.json b/apps/web/public/i18n/locales/pl-PL/channels.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/channels.json rename to apps/web/public/i18n/locales/pl-PL/channels.json diff --git a/packages/web/public/i18n/locales/pl-PL/commandPalette.json b/apps/web/public/i18n/locales/pl-PL/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/commandPalette.json rename to apps/web/public/i18n/locales/pl-PL/commandPalette.json diff --git a/packages/web/public/i18n/locales/pl-PL/common.json b/apps/web/public/i18n/locales/pl-PL/common.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/common.json rename to apps/web/public/i18n/locales/pl-PL/common.json diff --git a/packages/web/public/i18n/locales/pl-PL/config.json b/apps/web/public/i18n/locales/pl-PL/config.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/config.json rename to apps/web/public/i18n/locales/pl-PL/config.json diff --git a/packages/web/public/i18n/locales/pl-PL/connections.json b/apps/web/public/i18n/locales/pl-PL/connections.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/connections.json rename to apps/web/public/i18n/locales/pl-PL/connections.json diff --git a/packages/web/public/i18n/locales/pl-PL/deviceConfig.json b/apps/web/public/i18n/locales/pl-PL/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/deviceConfig.json rename to apps/web/public/i18n/locales/pl-PL/deviceConfig.json diff --git a/packages/web/public/i18n/locales/pl-PL/dialog.json b/apps/web/public/i18n/locales/pl-PL/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/dialog.json rename to apps/web/public/i18n/locales/pl-PL/dialog.json diff --git a/packages/web/public/i18n/locales/pl-PL/map.json b/apps/web/public/i18n/locales/pl-PL/map.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/map.json rename to apps/web/public/i18n/locales/pl-PL/map.json diff --git a/packages/web/public/i18n/locales/pl-PL/messages.json b/apps/web/public/i18n/locales/pl-PL/messages.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/messages.json rename to apps/web/public/i18n/locales/pl-PL/messages.json diff --git a/packages/web/public/i18n/locales/pl-PL/moduleConfig.json b/apps/web/public/i18n/locales/pl-PL/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/moduleConfig.json rename to apps/web/public/i18n/locales/pl-PL/moduleConfig.json diff --git a/packages/web/public/i18n/locales/pl-PL/nodes.json b/apps/web/public/i18n/locales/pl-PL/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/nodes.json rename to apps/web/public/i18n/locales/pl-PL/nodes.json diff --git a/packages/web/public/i18n/locales/pl-PL/ui.json b/apps/web/public/i18n/locales/pl-PL/ui.json similarity index 100% rename from packages/web/public/i18n/locales/pl-PL/ui.json rename to apps/web/public/i18n/locales/pl-PL/ui.json diff --git a/packages/web/public/i18n/locales/pt-BR/channels.json b/apps/web/public/i18n/locales/pt-BR/channels.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/channels.json rename to apps/web/public/i18n/locales/pt-BR/channels.json diff --git a/packages/web/public/i18n/locales/pt-BR/commandPalette.json b/apps/web/public/i18n/locales/pt-BR/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/commandPalette.json rename to apps/web/public/i18n/locales/pt-BR/commandPalette.json diff --git a/packages/web/public/i18n/locales/pt-BR/common.json b/apps/web/public/i18n/locales/pt-BR/common.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/common.json rename to apps/web/public/i18n/locales/pt-BR/common.json diff --git a/packages/web/public/i18n/locales/pt-BR/config.json b/apps/web/public/i18n/locales/pt-BR/config.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/config.json rename to apps/web/public/i18n/locales/pt-BR/config.json diff --git a/packages/web/public/i18n/locales/pt-BR/connections.json b/apps/web/public/i18n/locales/pt-BR/connections.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/connections.json rename to apps/web/public/i18n/locales/pt-BR/connections.json diff --git a/packages/web/public/i18n/locales/pt-BR/deviceConfig.json b/apps/web/public/i18n/locales/pt-BR/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/deviceConfig.json rename to apps/web/public/i18n/locales/pt-BR/deviceConfig.json diff --git a/packages/web/public/i18n/locales/pt-BR/dialog.json b/apps/web/public/i18n/locales/pt-BR/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/dialog.json rename to apps/web/public/i18n/locales/pt-BR/dialog.json diff --git a/packages/web/public/i18n/locales/pt-BR/map.json b/apps/web/public/i18n/locales/pt-BR/map.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/map.json rename to apps/web/public/i18n/locales/pt-BR/map.json diff --git a/packages/web/public/i18n/locales/pt-BR/messages.json b/apps/web/public/i18n/locales/pt-BR/messages.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/messages.json rename to apps/web/public/i18n/locales/pt-BR/messages.json diff --git a/packages/web/public/i18n/locales/pt-BR/moduleConfig.json b/apps/web/public/i18n/locales/pt-BR/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/moduleConfig.json rename to apps/web/public/i18n/locales/pt-BR/moduleConfig.json diff --git a/packages/web/public/i18n/locales/pt-BR/nodes.json b/apps/web/public/i18n/locales/pt-BR/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/nodes.json rename to apps/web/public/i18n/locales/pt-BR/nodes.json diff --git a/packages/web/public/i18n/locales/pt-BR/ui.json b/apps/web/public/i18n/locales/pt-BR/ui.json similarity index 100% rename from packages/web/public/i18n/locales/pt-BR/ui.json rename to apps/web/public/i18n/locales/pt-BR/ui.json diff --git a/packages/web/public/i18n/locales/pt-PT/channels.json b/apps/web/public/i18n/locales/pt-PT/channels.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/channels.json rename to apps/web/public/i18n/locales/pt-PT/channels.json diff --git a/packages/web/public/i18n/locales/pt-PT/commandPalette.json b/apps/web/public/i18n/locales/pt-PT/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/commandPalette.json rename to apps/web/public/i18n/locales/pt-PT/commandPalette.json diff --git a/packages/web/public/i18n/locales/pt-PT/common.json b/apps/web/public/i18n/locales/pt-PT/common.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/common.json rename to apps/web/public/i18n/locales/pt-PT/common.json diff --git a/packages/web/public/i18n/locales/pt-PT/config.json b/apps/web/public/i18n/locales/pt-PT/config.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/config.json rename to apps/web/public/i18n/locales/pt-PT/config.json diff --git a/packages/web/public/i18n/locales/pt-PT/connections.json b/apps/web/public/i18n/locales/pt-PT/connections.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/connections.json rename to apps/web/public/i18n/locales/pt-PT/connections.json diff --git a/packages/web/public/i18n/locales/pt-PT/deviceConfig.json b/apps/web/public/i18n/locales/pt-PT/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/deviceConfig.json rename to apps/web/public/i18n/locales/pt-PT/deviceConfig.json diff --git a/packages/web/public/i18n/locales/pt-PT/dialog.json b/apps/web/public/i18n/locales/pt-PT/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/dialog.json rename to apps/web/public/i18n/locales/pt-PT/dialog.json diff --git a/packages/web/public/i18n/locales/pt-PT/map.json b/apps/web/public/i18n/locales/pt-PT/map.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/map.json rename to apps/web/public/i18n/locales/pt-PT/map.json diff --git a/packages/web/public/i18n/locales/pt-PT/messages.json b/apps/web/public/i18n/locales/pt-PT/messages.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/messages.json rename to apps/web/public/i18n/locales/pt-PT/messages.json diff --git a/packages/web/public/i18n/locales/pt-PT/moduleConfig.json b/apps/web/public/i18n/locales/pt-PT/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/moduleConfig.json rename to apps/web/public/i18n/locales/pt-PT/moduleConfig.json diff --git a/packages/web/public/i18n/locales/pt-PT/nodes.json b/apps/web/public/i18n/locales/pt-PT/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/nodes.json rename to apps/web/public/i18n/locales/pt-PT/nodes.json diff --git a/packages/web/public/i18n/locales/pt-PT/ui.json b/apps/web/public/i18n/locales/pt-PT/ui.json similarity index 100% rename from packages/web/public/i18n/locales/pt-PT/ui.json rename to apps/web/public/i18n/locales/pt-PT/ui.json diff --git a/packages/web/public/i18n/locales/ru-RU/channels.json b/apps/web/public/i18n/locales/ru-RU/channels.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/channels.json rename to apps/web/public/i18n/locales/ru-RU/channels.json diff --git a/packages/web/public/i18n/locales/ru-RU/commandPalette.json b/apps/web/public/i18n/locales/ru-RU/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/commandPalette.json rename to apps/web/public/i18n/locales/ru-RU/commandPalette.json diff --git a/packages/web/public/i18n/locales/ru-RU/common.json b/apps/web/public/i18n/locales/ru-RU/common.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/common.json rename to apps/web/public/i18n/locales/ru-RU/common.json diff --git a/packages/web/public/i18n/locales/ru-RU/config.json b/apps/web/public/i18n/locales/ru-RU/config.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/config.json rename to apps/web/public/i18n/locales/ru-RU/config.json diff --git a/packages/web/public/i18n/locales/ru-RU/connections.json b/apps/web/public/i18n/locales/ru-RU/connections.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/connections.json rename to apps/web/public/i18n/locales/ru-RU/connections.json diff --git a/packages/web/public/i18n/locales/ru-RU/dialog.json b/apps/web/public/i18n/locales/ru-RU/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/dialog.json rename to apps/web/public/i18n/locales/ru-RU/dialog.json diff --git a/packages/web/public/i18n/locales/ru-RU/map.json b/apps/web/public/i18n/locales/ru-RU/map.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/map.json rename to apps/web/public/i18n/locales/ru-RU/map.json diff --git a/packages/web/public/i18n/locales/ru-RU/messages.json b/apps/web/public/i18n/locales/ru-RU/messages.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/messages.json rename to apps/web/public/i18n/locales/ru-RU/messages.json diff --git a/packages/web/public/i18n/locales/ru-RU/moduleConfig.json b/apps/web/public/i18n/locales/ru-RU/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/moduleConfig.json rename to apps/web/public/i18n/locales/ru-RU/moduleConfig.json diff --git a/packages/web/public/i18n/locales/ru-RU/nodes.json b/apps/web/public/i18n/locales/ru-RU/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/nodes.json rename to apps/web/public/i18n/locales/ru-RU/nodes.json diff --git a/packages/web/public/i18n/locales/ru-RU/ui.json b/apps/web/public/i18n/locales/ru-RU/ui.json similarity index 100% rename from packages/web/public/i18n/locales/ru-RU/ui.json rename to apps/web/public/i18n/locales/ru-RU/ui.json diff --git a/packages/web/public/i18n/locales/sv-SE/channels.json b/apps/web/public/i18n/locales/sv-SE/channels.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/channels.json rename to apps/web/public/i18n/locales/sv-SE/channels.json diff --git a/packages/web/public/i18n/locales/sv-SE/commandPalette.json b/apps/web/public/i18n/locales/sv-SE/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/commandPalette.json rename to apps/web/public/i18n/locales/sv-SE/commandPalette.json diff --git a/packages/web/public/i18n/locales/sv-SE/common.json b/apps/web/public/i18n/locales/sv-SE/common.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/common.json rename to apps/web/public/i18n/locales/sv-SE/common.json diff --git a/packages/web/public/i18n/locales/sv-SE/config.json b/apps/web/public/i18n/locales/sv-SE/config.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/config.json rename to apps/web/public/i18n/locales/sv-SE/config.json diff --git a/packages/web/public/i18n/locales/sv-SE/connections.json b/apps/web/public/i18n/locales/sv-SE/connections.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/connections.json rename to apps/web/public/i18n/locales/sv-SE/connections.json diff --git a/packages/web/public/i18n/locales/sv-SE/deviceConfig.json b/apps/web/public/i18n/locales/sv-SE/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/deviceConfig.json rename to apps/web/public/i18n/locales/sv-SE/deviceConfig.json diff --git a/packages/web/public/i18n/locales/sv-SE/dialog.json b/apps/web/public/i18n/locales/sv-SE/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/dialog.json rename to apps/web/public/i18n/locales/sv-SE/dialog.json diff --git a/packages/web/public/i18n/locales/sv-SE/map.json b/apps/web/public/i18n/locales/sv-SE/map.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/map.json rename to apps/web/public/i18n/locales/sv-SE/map.json diff --git a/packages/web/public/i18n/locales/sv-SE/messages.json b/apps/web/public/i18n/locales/sv-SE/messages.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/messages.json rename to apps/web/public/i18n/locales/sv-SE/messages.json diff --git a/packages/web/public/i18n/locales/sv-SE/moduleConfig.json b/apps/web/public/i18n/locales/sv-SE/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/moduleConfig.json rename to apps/web/public/i18n/locales/sv-SE/moduleConfig.json diff --git a/packages/web/public/i18n/locales/sv-SE/nodes.json b/apps/web/public/i18n/locales/sv-SE/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/nodes.json rename to apps/web/public/i18n/locales/sv-SE/nodes.json diff --git a/packages/web/public/i18n/locales/sv-SE/ui.json b/apps/web/public/i18n/locales/sv-SE/ui.json similarity index 100% rename from packages/web/public/i18n/locales/sv-SE/ui.json rename to apps/web/public/i18n/locales/sv-SE/ui.json diff --git a/packages/web/public/i18n/locales/tr-TR/channels.json b/apps/web/public/i18n/locales/tr-TR/channels.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/channels.json rename to apps/web/public/i18n/locales/tr-TR/channels.json diff --git a/packages/web/public/i18n/locales/tr-TR/commandPalette.json b/apps/web/public/i18n/locales/tr-TR/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/commandPalette.json rename to apps/web/public/i18n/locales/tr-TR/commandPalette.json diff --git a/packages/web/public/i18n/locales/tr-TR/common.json b/apps/web/public/i18n/locales/tr-TR/common.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/common.json rename to apps/web/public/i18n/locales/tr-TR/common.json diff --git a/packages/web/public/i18n/locales/tr-TR/config.json b/apps/web/public/i18n/locales/tr-TR/config.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/config.json rename to apps/web/public/i18n/locales/tr-TR/config.json diff --git a/packages/web/public/i18n/locales/tr-TR/connections.json b/apps/web/public/i18n/locales/tr-TR/connections.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/connections.json rename to apps/web/public/i18n/locales/tr-TR/connections.json diff --git a/packages/web/public/i18n/locales/tr-TR/deviceConfig.json b/apps/web/public/i18n/locales/tr-TR/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/deviceConfig.json rename to apps/web/public/i18n/locales/tr-TR/deviceConfig.json diff --git a/packages/web/public/i18n/locales/tr-TR/dialog.json b/apps/web/public/i18n/locales/tr-TR/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/dialog.json rename to apps/web/public/i18n/locales/tr-TR/dialog.json diff --git a/packages/web/public/i18n/locales/tr-TR/map.json b/apps/web/public/i18n/locales/tr-TR/map.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/map.json rename to apps/web/public/i18n/locales/tr-TR/map.json diff --git a/packages/web/public/i18n/locales/tr-TR/messages.json b/apps/web/public/i18n/locales/tr-TR/messages.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/messages.json rename to apps/web/public/i18n/locales/tr-TR/messages.json diff --git a/packages/web/public/i18n/locales/tr-TR/moduleConfig.json b/apps/web/public/i18n/locales/tr-TR/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/moduleConfig.json rename to apps/web/public/i18n/locales/tr-TR/moduleConfig.json diff --git a/packages/web/public/i18n/locales/tr-TR/nodes.json b/apps/web/public/i18n/locales/tr-TR/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/nodes.json rename to apps/web/public/i18n/locales/tr-TR/nodes.json diff --git a/packages/web/public/i18n/locales/tr-TR/ui.json b/apps/web/public/i18n/locales/tr-TR/ui.json similarity index 100% rename from packages/web/public/i18n/locales/tr-TR/ui.json rename to apps/web/public/i18n/locales/tr-TR/ui.json diff --git a/packages/web/public/i18n/locales/uk-UA/channels.json b/apps/web/public/i18n/locales/uk-UA/channels.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/channels.json rename to apps/web/public/i18n/locales/uk-UA/channels.json diff --git a/packages/web/public/i18n/locales/uk-UA/commandPalette.json b/apps/web/public/i18n/locales/uk-UA/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/commandPalette.json rename to apps/web/public/i18n/locales/uk-UA/commandPalette.json diff --git a/packages/web/public/i18n/locales/uk-UA/common.json b/apps/web/public/i18n/locales/uk-UA/common.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/common.json rename to apps/web/public/i18n/locales/uk-UA/common.json diff --git a/packages/web/public/i18n/locales/uk-UA/config.json b/apps/web/public/i18n/locales/uk-UA/config.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/config.json rename to apps/web/public/i18n/locales/uk-UA/config.json diff --git a/packages/web/public/i18n/locales/uk-UA/connections.json b/apps/web/public/i18n/locales/uk-UA/connections.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/connections.json rename to apps/web/public/i18n/locales/uk-UA/connections.json diff --git a/packages/web/public/i18n/locales/uk-UA/deviceConfig.json b/apps/web/public/i18n/locales/uk-UA/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/deviceConfig.json rename to apps/web/public/i18n/locales/uk-UA/deviceConfig.json diff --git a/packages/web/public/i18n/locales/uk-UA/dialog.json b/apps/web/public/i18n/locales/uk-UA/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/dialog.json rename to apps/web/public/i18n/locales/uk-UA/dialog.json diff --git a/packages/web/public/i18n/locales/uk-UA/map.json b/apps/web/public/i18n/locales/uk-UA/map.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/map.json rename to apps/web/public/i18n/locales/uk-UA/map.json diff --git a/packages/web/public/i18n/locales/uk-UA/messages.json b/apps/web/public/i18n/locales/uk-UA/messages.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/messages.json rename to apps/web/public/i18n/locales/uk-UA/messages.json diff --git a/packages/web/public/i18n/locales/uk-UA/moduleConfig.json b/apps/web/public/i18n/locales/uk-UA/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/moduleConfig.json rename to apps/web/public/i18n/locales/uk-UA/moduleConfig.json diff --git a/packages/web/public/i18n/locales/uk-UA/nodes.json b/apps/web/public/i18n/locales/uk-UA/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/nodes.json rename to apps/web/public/i18n/locales/uk-UA/nodes.json diff --git a/packages/web/public/i18n/locales/uk-UA/ui.json b/apps/web/public/i18n/locales/uk-UA/ui.json similarity index 100% rename from packages/web/public/i18n/locales/uk-UA/ui.json rename to apps/web/public/i18n/locales/uk-UA/ui.json diff --git a/packages/web/public/i18n/locales/zh-CN/channels.json b/apps/web/public/i18n/locales/zh-CN/channels.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/channels.json rename to apps/web/public/i18n/locales/zh-CN/channels.json diff --git a/packages/web/public/i18n/locales/zh-CN/commandPalette.json b/apps/web/public/i18n/locales/zh-CN/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/commandPalette.json rename to apps/web/public/i18n/locales/zh-CN/commandPalette.json diff --git a/packages/web/public/i18n/locales/zh-CN/common.json b/apps/web/public/i18n/locales/zh-CN/common.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/common.json rename to apps/web/public/i18n/locales/zh-CN/common.json diff --git a/packages/web/public/i18n/locales/zh-CN/config.json b/apps/web/public/i18n/locales/zh-CN/config.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/config.json rename to apps/web/public/i18n/locales/zh-CN/config.json diff --git a/packages/web/public/i18n/locales/zh-CN/connections.json b/apps/web/public/i18n/locales/zh-CN/connections.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/connections.json rename to apps/web/public/i18n/locales/zh-CN/connections.json diff --git a/packages/web/public/i18n/locales/zh-CN/deviceConfig.json b/apps/web/public/i18n/locales/zh-CN/deviceConfig.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/deviceConfig.json rename to apps/web/public/i18n/locales/zh-CN/deviceConfig.json diff --git a/packages/web/public/i18n/locales/zh-CN/dialog.json b/apps/web/public/i18n/locales/zh-CN/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/dialog.json rename to apps/web/public/i18n/locales/zh-CN/dialog.json diff --git a/packages/web/public/i18n/locales/zh-CN/map.json b/apps/web/public/i18n/locales/zh-CN/map.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/map.json rename to apps/web/public/i18n/locales/zh-CN/map.json diff --git a/packages/web/public/i18n/locales/zh-CN/messages.json b/apps/web/public/i18n/locales/zh-CN/messages.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/messages.json rename to apps/web/public/i18n/locales/zh-CN/messages.json diff --git a/packages/web/public/i18n/locales/zh-CN/moduleConfig.json b/apps/web/public/i18n/locales/zh-CN/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/moduleConfig.json rename to apps/web/public/i18n/locales/zh-CN/moduleConfig.json diff --git a/packages/web/public/i18n/locales/zh-CN/nodes.json b/apps/web/public/i18n/locales/zh-CN/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/nodes.json rename to apps/web/public/i18n/locales/zh-CN/nodes.json diff --git a/packages/web/public/i18n/locales/zh-CN/ui.json b/apps/web/public/i18n/locales/zh-CN/ui.json similarity index 100% rename from packages/web/public/i18n/locales/zh-CN/ui.json rename to apps/web/public/i18n/locales/zh-CN/ui.json diff --git a/packages/web/public/i18n/locales/zh-TW/channels.json b/apps/web/public/i18n/locales/zh-TW/channels.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/channels.json rename to apps/web/public/i18n/locales/zh-TW/channels.json diff --git a/packages/web/public/i18n/locales/zh-TW/commandPalette.json b/apps/web/public/i18n/locales/zh-TW/commandPalette.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/commandPalette.json rename to apps/web/public/i18n/locales/zh-TW/commandPalette.json diff --git a/packages/web/public/i18n/locales/zh-TW/common.json b/apps/web/public/i18n/locales/zh-TW/common.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/common.json rename to apps/web/public/i18n/locales/zh-TW/common.json diff --git a/packages/web/public/i18n/locales/zh-TW/config.json b/apps/web/public/i18n/locales/zh-TW/config.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/config.json rename to apps/web/public/i18n/locales/zh-TW/config.json diff --git a/packages/web/public/i18n/locales/zh-TW/connections.json b/apps/web/public/i18n/locales/zh-TW/connections.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/connections.json rename to apps/web/public/i18n/locales/zh-TW/connections.json diff --git a/packages/web/public/i18n/locales/zh-TW/dashboard.json b/apps/web/public/i18n/locales/zh-TW/dashboard.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/dashboard.json rename to apps/web/public/i18n/locales/zh-TW/dashboard.json diff --git a/packages/web/public/i18n/locales/zh-TW/dialog.json b/apps/web/public/i18n/locales/zh-TW/dialog.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/dialog.json rename to apps/web/public/i18n/locales/zh-TW/dialog.json diff --git a/packages/web/public/i18n/locales/zh-TW/map.json b/apps/web/public/i18n/locales/zh-TW/map.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/map.json rename to apps/web/public/i18n/locales/zh-TW/map.json diff --git a/packages/web/public/i18n/locales/zh-TW/messages.json b/apps/web/public/i18n/locales/zh-TW/messages.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/messages.json rename to apps/web/public/i18n/locales/zh-TW/messages.json diff --git a/packages/web/public/i18n/locales/zh-TW/moduleConfig.json b/apps/web/public/i18n/locales/zh-TW/moduleConfig.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/moduleConfig.json rename to apps/web/public/i18n/locales/zh-TW/moduleConfig.json diff --git a/packages/web/public/i18n/locales/zh-TW/nodes.json b/apps/web/public/i18n/locales/zh-TW/nodes.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/nodes.json rename to apps/web/public/i18n/locales/zh-TW/nodes.json diff --git a/packages/web/public/i18n/locales/zh-TW/ui.json b/apps/web/public/i18n/locales/zh-TW/ui.json similarity index 100% rename from packages/web/public/i18n/locales/zh-TW/ui.json rename to apps/web/public/i18n/locales/zh-TW/ui.json diff --git a/packages/web/public/logo.svg b/apps/web/public/logo.svg similarity index 100% rename from packages/web/public/logo.svg rename to apps/web/public/logo.svg diff --git a/packages/web/public/robots.txt b/apps/web/public/robots.txt similarity index 100% rename from packages/web/public/robots.txt rename to apps/web/public/robots.txt diff --git a/packages/web/public/site.webmanifest b/apps/web/public/site.webmanifest similarity index 100% rename from packages/web/public/site.webmanifest rename to apps/web/public/site.webmanifest diff --git a/packages/web/src/App.tsx b/apps/web/src/App.tsx similarity index 100% rename from packages/web/src/App.tsx rename to apps/web/src/App.tsx diff --git a/packages/web/src/DeviceWrapper.tsx b/apps/web/src/DeviceWrapper.tsx similarity index 100% rename from packages/web/src/DeviceWrapper.tsx rename to apps/web/src/DeviceWrapper.tsx diff --git a/packages/web/src/__mocks__/README.md b/apps/web/src/__mocks__/README.md similarity index 100% rename from packages/web/src/__mocks__/README.md rename to apps/web/src/__mocks__/README.md diff --git a/packages/web/src/__mocks__/components/UI/Button.tsx b/apps/web/src/__mocks__/components/UI/Button.tsx similarity index 100% rename from packages/web/src/__mocks__/components/UI/Button.tsx rename to apps/web/src/__mocks__/components/UI/Button.tsx diff --git a/packages/web/src/__mocks__/components/UI/Checkbox.tsx b/apps/web/src/__mocks__/components/UI/Checkbox.tsx similarity index 100% rename from packages/web/src/__mocks__/components/UI/Checkbox.tsx rename to apps/web/src/__mocks__/components/UI/Checkbox.tsx diff --git a/packages/web/src/__mocks__/components/UI/Dialog/Dialog.tsx b/apps/web/src/__mocks__/components/UI/Dialog/Dialog.tsx similarity index 100% rename from packages/web/src/__mocks__/components/UI/Dialog/Dialog.tsx rename to apps/web/src/__mocks__/components/UI/Dialog/Dialog.tsx diff --git a/packages/web/src/__mocks__/components/UI/Label.tsx b/apps/web/src/__mocks__/components/UI/Label.tsx similarity index 100% rename from packages/web/src/__mocks__/components/UI/Label.tsx rename to apps/web/src/__mocks__/components/UI/Label.tsx diff --git a/packages/web/src/__mocks__/components/UI/Link.tsx b/apps/web/src/__mocks__/components/UI/Link.tsx similarity index 100% rename from packages/web/src/__mocks__/components/UI/Link.tsx rename to apps/web/src/__mocks__/components/UI/Link.tsx diff --git a/packages/web/src/components/Badge/ConnectionStatusBadge.tsx b/apps/web/src/components/Badge/ConnectionStatusBadge.tsx similarity index 100% rename from packages/web/src/components/Badge/ConnectionStatusBadge.tsx rename to apps/web/src/components/Badge/ConnectionStatusBadge.tsx diff --git a/packages/web/src/components/Badge/SupportedBadge.tsx b/apps/web/src/components/Badge/SupportedBadge.tsx similarity index 100% rename from packages/web/src/components/Badge/SupportedBadge.tsx rename to apps/web/src/components/Badge/SupportedBadge.tsx diff --git a/packages/web/src/components/BatteryStatus.tsx b/apps/web/src/components/BatteryStatus.tsx similarity index 100% rename from packages/web/src/components/BatteryStatus.tsx rename to apps/web/src/components/BatteryStatus.tsx diff --git a/packages/web/src/components/CommandPalette/index.tsx b/apps/web/src/components/CommandPalette/index.tsx similarity index 100% rename from packages/web/src/components/CommandPalette/index.tsx rename to apps/web/src/components/CommandPalette/index.tsx diff --git a/packages/web/src/components/DeviceInfoPanel.tsx b/apps/web/src/components/DeviceInfoPanel.tsx similarity index 100% rename from packages/web/src/components/DeviceInfoPanel.tsx rename to apps/web/src/components/DeviceInfoPanel.tsx diff --git a/packages/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.tsx b/apps/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.tsx rename to apps/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.tsx diff --git a/packages/web/src/components/Dialog/AddConnectionDialog/validation.ts b/apps/web/src/components/Dialog/AddConnectionDialog/validation.ts similarity index 100% rename from packages/web/src/components/Dialog/AddConnectionDialog/validation.ts rename to apps/web/src/components/Dialog/AddConnectionDialog/validation.ts diff --git a/packages/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.test.tsx b/apps/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.test.tsx rename to apps/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.test.tsx diff --git a/packages/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.tsx b/apps/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.tsx rename to apps/web/src/components/Dialog/ClearAllStoresDialog/ClearAllStoresDialog.tsx diff --git a/packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx b/apps/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx rename to apps/web/src/components/Dialog/ClientNotificationDialog/ClientNotificationDialog.tsx diff --git a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx b/apps/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx rename to apps/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.test.tsx diff --git a/packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx b/apps/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx rename to apps/web/src/components/Dialog/DeleteMessagesDialog/DeleteMessagesDialog.tsx diff --git a/packages/web/src/components/Dialog/DialogManager.tsx b/apps/web/src/components/Dialog/DialogManager.tsx similarity index 100% rename from packages/web/src/components/Dialog/DialogManager.tsx rename to apps/web/src/components/Dialog/DialogManager.tsx diff --git a/packages/web/src/components/Dialog/DialogWrapper.tsx b/apps/web/src/components/Dialog/DialogWrapper.tsx similarity index 100% rename from packages/web/src/components/Dialog/DialogWrapper.tsx rename to apps/web/src/components/Dialog/DialogWrapper.tsx diff --git a/packages/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.test.tsx b/apps/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.test.tsx rename to apps/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.test.tsx diff --git a/packages/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.tsx b/apps/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.tsx rename to apps/web/src/components/Dialog/FactoryResetConfigDialog/FactoryResetConfigDialog.tsx diff --git a/packages/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.test.tsx b/apps/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.test.tsx rename to apps/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.test.tsx diff --git a/packages/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.tsx b/apps/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.tsx rename to apps/web/src/components/Dialog/FactoryResetDeviceDialog/FactoryResetDeviceDialog.tsx diff --git a/packages/web/src/components/Dialog/ImportDialog.tsx b/apps/web/src/components/Dialog/ImportDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ImportDialog.tsx rename to apps/web/src/components/Dialog/ImportDialog.tsx diff --git a/packages/web/src/components/Dialog/LocationResponseDialog.tsx b/apps/web/src/components/Dialog/LocationResponseDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/LocationResponseDialog.tsx rename to apps/web/src/components/Dialog/LocationResponseDialog.tsx diff --git a/packages/web/src/components/Dialog/ManagedModeDialog.tsx b/apps/web/src/components/Dialog/ManagedModeDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ManagedModeDialog.tsx rename to apps/web/src/components/Dialog/ManagedModeDialog.tsx diff --git a/packages/web/src/components/Dialog/NewDeviceDialog.tsx b/apps/web/src/components/Dialog/NewDeviceDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/NewDeviceDialog.tsx rename to apps/web/src/components/Dialog/NewDeviceDialog.tsx diff --git a/packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx b/apps/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx rename to apps/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx diff --git a/packages/web/src/components/Dialog/PKIBackupDialog.tsx b/apps/web/src/components/Dialog/PKIBackupDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/PKIBackupDialog.tsx rename to apps/web/src/components/Dialog/PKIBackupDialog.tsx diff --git a/packages/web/src/components/Dialog/PkiRegenerateDialog.tsx b/apps/web/src/components/Dialog/PkiRegenerateDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/PkiRegenerateDialog.tsx rename to apps/web/src/components/Dialog/PkiRegenerateDialog.tsx diff --git a/packages/web/src/components/Dialog/QRDialog.tsx b/apps/web/src/components/Dialog/QRDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/QRDialog.tsx rename to apps/web/src/components/Dialog/QRDialog.tsx diff --git a/packages/web/src/components/Dialog/RebootDialog.test.tsx b/apps/web/src/components/Dialog/RebootDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/RebootDialog.test.tsx rename to apps/web/src/components/Dialog/RebootDialog.test.tsx diff --git a/packages/web/src/components/Dialog/RebootDialog.tsx b/apps/web/src/components/Dialog/RebootDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/RebootDialog.tsx rename to apps/web/src/components/Dialog/RebootDialog.tsx diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx b/apps/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx rename to apps/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.test.tsx diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx b/apps/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx rename to apps/web/src/components/Dialog/RefreshKeysDialog/RefreshKeysDialog.tsx diff --git a/packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts b/apps/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts similarity index 100% rename from packages/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts rename to apps/web/src/components/Dialog/RefreshKeysDialog/useRefreshKeysDialog.ts diff --git a/packages/web/src/components/Dialog/RemoveNodeDialog.tsx b/apps/web/src/components/Dialog/RemoveNodeDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/RemoveNodeDialog.tsx rename to apps/web/src/components/Dialog/RemoveNodeDialog.tsx diff --git a/packages/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.test.tsx b/apps/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.test.tsx rename to apps/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.test.tsx diff --git a/packages/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.tsx b/apps/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.tsx rename to apps/web/src/components/Dialog/ResetNodeDbDialog/ResetNodeDbDialog.tsx diff --git a/packages/web/src/components/Dialog/ShutdownDialog.tsx b/apps/web/src/components/Dialog/ShutdownDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/ShutdownDialog.tsx rename to apps/web/src/components/Dialog/ShutdownDialog.tsx diff --git a/packages/web/src/components/Dialog/TracerouteResponseDialog.tsx b/apps/web/src/components/Dialog/TracerouteResponseDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/TracerouteResponseDialog.tsx rename to apps/web/src/components/Dialog/TracerouteResponseDialog.tsx diff --git a/packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx b/apps/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx similarity index 100% rename from packages/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx rename to apps/web/src/components/Dialog/UnsafeRolesDialog/UnsafeRolesDialog.tsx diff --git a/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.test.tsx b/apps/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.test.tsx similarity index 100% rename from packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.test.tsx rename to apps/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.test.tsx diff --git a/packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts b/apps/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts similarity index 100% rename from packages/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts rename to apps/web/src/components/Dialog/UnsafeRolesDialog/useUnsafeRolesDialog.ts diff --git a/packages/web/src/components/Dialog/useDialog.ts b/apps/web/src/components/Dialog/useDialog.ts similarity index 100% rename from packages/web/src/components/Dialog/useDialog.ts rename to apps/web/src/components/Dialog/useDialog.ts diff --git a/packages/web/src/components/Form/DynamicForm.tsx b/apps/web/src/components/Form/DynamicForm.tsx similarity index 100% rename from packages/web/src/components/Form/DynamicForm.tsx rename to apps/web/src/components/Form/DynamicForm.tsx diff --git a/packages/web/src/components/Form/DynamicFormField.tsx b/apps/web/src/components/Form/DynamicFormField.tsx similarity index 100% rename from packages/web/src/components/Form/DynamicFormField.tsx rename to apps/web/src/components/Form/DynamicFormField.tsx diff --git a/packages/web/src/components/Form/FormInput.tsx b/apps/web/src/components/Form/FormInput.tsx similarity index 100% rename from packages/web/src/components/Form/FormInput.tsx rename to apps/web/src/components/Form/FormInput.tsx diff --git a/packages/web/src/components/Form/FormMultiSelect.tsx b/apps/web/src/components/Form/FormMultiSelect.tsx similarity index 100% rename from packages/web/src/components/Form/FormMultiSelect.tsx rename to apps/web/src/components/Form/FormMultiSelect.tsx diff --git a/packages/web/src/components/Form/FormPasswordGenerator.tsx b/apps/web/src/components/Form/FormPasswordGenerator.tsx similarity index 100% rename from packages/web/src/components/Form/FormPasswordGenerator.tsx rename to apps/web/src/components/Form/FormPasswordGenerator.tsx diff --git a/packages/web/src/components/Form/FormSelect.tsx b/apps/web/src/components/Form/FormSelect.tsx similarity index 100% rename from packages/web/src/components/Form/FormSelect.tsx rename to apps/web/src/components/Form/FormSelect.tsx diff --git a/packages/web/src/components/Form/FormToggle.tsx b/apps/web/src/components/Form/FormToggle.tsx similarity index 100% rename from packages/web/src/components/Form/FormToggle.tsx rename to apps/web/src/components/Form/FormToggle.tsx diff --git a/packages/web/src/components/Form/FormWrapper.tsx b/apps/web/src/components/Form/FormWrapper.tsx similarity index 100% rename from packages/web/src/components/Form/FormWrapper.tsx rename to apps/web/src/components/Form/FormWrapper.tsx diff --git a/packages/web/src/components/Form/createZodResolver.ts b/apps/web/src/components/Form/createZodResolver.ts similarity index 100% rename from packages/web/src/components/Form/createZodResolver.ts rename to apps/web/src/components/Form/createZodResolver.ts diff --git a/packages/web/src/components/KeyBackupReminder.tsx b/apps/web/src/components/KeyBackupReminder.tsx similarity index 100% rename from packages/web/src/components/KeyBackupReminder.tsx rename to apps/web/src/components/KeyBackupReminder.tsx diff --git a/packages/web/src/components/LanguageSwitcher.tsx b/apps/web/src/components/LanguageSwitcher.tsx similarity index 100% rename from packages/web/src/components/LanguageSwitcher.tsx rename to apps/web/src/components/LanguageSwitcher.tsx diff --git a/packages/web/src/components/Map.tsx b/apps/web/src/components/Map.tsx similarity index 100% rename from packages/web/src/components/Map.tsx rename to apps/web/src/components/Map.tsx diff --git a/packages/web/src/components/PageComponents/Channels/Channel.tsx b/apps/web/src/components/PageComponents/Channels/Channel.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Channels/Channel.tsx rename to apps/web/src/components/PageComponents/Channels/Channel.tsx diff --git a/packages/web/src/components/PageComponents/Channels/Channels.tsx b/apps/web/src/components/PageComponents/Channels/Channels.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Channels/Channels.tsx rename to apps/web/src/components/PageComponents/Channels/Channels.tsx diff --git a/packages/web/src/components/PageComponents/Connections/ConnectionStatusBadge.tsx b/apps/web/src/components/PageComponents/Connections/ConnectionStatusBadge.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Connections/ConnectionStatusBadge.tsx rename to apps/web/src/components/PageComponents/Connections/ConnectionStatusBadge.tsx diff --git a/packages/web/src/components/PageComponents/Map/Layers/HeatmapLayer.tsx b/apps/web/src/components/PageComponents/Map/Layers/HeatmapLayer.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Layers/HeatmapLayer.tsx rename to apps/web/src/components/PageComponents/Map/Layers/HeatmapLayer.tsx diff --git a/packages/web/src/components/PageComponents/Map/Layers/NodesLayer.tsx b/apps/web/src/components/PageComponents/Map/Layers/NodesLayer.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Layers/NodesLayer.tsx rename to apps/web/src/components/PageComponents/Map/Layers/NodesLayer.tsx diff --git a/packages/web/src/components/PageComponents/Map/Layers/PrecisionLayer.tsx b/apps/web/src/components/PageComponents/Map/Layers/PrecisionLayer.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Layers/PrecisionLayer.tsx rename to apps/web/src/components/PageComponents/Map/Layers/PrecisionLayer.tsx diff --git a/packages/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx b/apps/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx rename to apps/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx diff --git a/packages/web/src/components/PageComponents/Map/Layers/WaypointLayer.tsx b/apps/web/src/components/PageComponents/Map/Layers/WaypointLayer.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Layers/WaypointLayer.tsx rename to apps/web/src/components/PageComponents/Map/Layers/WaypointLayer.tsx diff --git a/packages/web/src/components/PageComponents/Map/Markers/NodeMarker.tsx b/apps/web/src/components/PageComponents/Map/Markers/NodeMarker.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Markers/NodeMarker.tsx rename to apps/web/src/components/PageComponents/Map/Markers/NodeMarker.tsx diff --git a/packages/web/src/components/PageComponents/Map/Markers/StackBadge.tsx b/apps/web/src/components/PageComponents/Map/Markers/StackBadge.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Markers/StackBadge.tsx rename to apps/web/src/components/PageComponents/Map/Markers/StackBadge.tsx diff --git a/packages/web/src/components/PageComponents/Map/Popups/NodeDetail.tsx b/apps/web/src/components/PageComponents/Map/Popups/NodeDetail.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Popups/NodeDetail.tsx rename to apps/web/src/components/PageComponents/Map/Popups/NodeDetail.tsx diff --git a/packages/web/src/components/PageComponents/Map/Popups/PopupWrapper.tsx b/apps/web/src/components/PageComponents/Map/Popups/PopupWrapper.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Popups/PopupWrapper.tsx rename to apps/web/src/components/PageComponents/Map/Popups/PopupWrapper.tsx diff --git a/packages/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx b/apps/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx rename to apps/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx diff --git a/packages/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx b/apps/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx rename to apps/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx diff --git a/packages/web/src/components/PageComponents/Map/cluster.ts b/apps/web/src/components/PageComponents/Map/cluster.ts similarity index 100% rename from packages/web/src/components/PageComponents/Map/cluster.ts rename to apps/web/src/components/PageComponents/Map/cluster.ts diff --git a/packages/web/src/components/PageComponents/Messages/ChannelChat.tsx b/apps/web/src/components/PageComponents/Messages/ChannelChat.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/ChannelChat.tsx rename to apps/web/src/components/PageComponents/Messages/ChannelChat.tsx diff --git a/packages/web/src/components/PageComponents/Messages/MessageActionsMenu.tsx b/apps/web/src/components/PageComponents/Messages/MessageActionsMenu.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/MessageActionsMenu.tsx rename to apps/web/src/components/PageComponents/Messages/MessageActionsMenu.tsx diff --git a/packages/web/src/components/PageComponents/Messages/MessageInput.test.tsx b/apps/web/src/components/PageComponents/Messages/MessageInput.test.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/MessageInput.test.tsx rename to apps/web/src/components/PageComponents/Messages/MessageInput.test.tsx diff --git a/packages/web/src/components/PageComponents/Messages/MessageInput.tsx b/apps/web/src/components/PageComponents/Messages/MessageInput.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/MessageInput.tsx rename to apps/web/src/components/PageComponents/Messages/MessageInput.tsx diff --git a/packages/web/src/components/PageComponents/Messages/MessageItem.tsx b/apps/web/src/components/PageComponents/Messages/MessageItem.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/MessageItem.tsx rename to apps/web/src/components/PageComponents/Messages/MessageItem.tsx diff --git a/packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx b/apps/web/src/components/PageComponents/Messages/TraceRoute.test.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/TraceRoute.test.tsx rename to apps/web/src/components/PageComponents/Messages/TraceRoute.test.tsx diff --git a/packages/web/src/components/PageComponents/Messages/TraceRoute.tsx b/apps/web/src/components/PageComponents/Messages/TraceRoute.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Messages/TraceRoute.tsx rename to apps/web/src/components/PageComponents/Messages/TraceRoute.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx b/apps/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/AmbientLighting.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx b/apps/web/src/components/PageComponents/ModuleConfig/Audio.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/Audio.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/Audio.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx b/apps/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/CannedMessage.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx b/apps/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/DetectionSensor.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx b/apps/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx b/apps/web/src/components/PageComponents/ModuleConfig/MQTT.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/MQTT.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/MQTT.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx b/apps/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/NeighborInfo.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx b/apps/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/Paxcounter.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx b/apps/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/RangeTest.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx b/apps/web/src/components/PageComponents/ModuleConfig/Serial.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/Serial.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/Serial.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx b/apps/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/StoreForward.tsx diff --git a/packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx b/apps/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx similarity index 100% rename from packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx rename to apps/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Bluetooth.tsx b/apps/web/src/components/PageComponents/Settings/Bluetooth.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Bluetooth.tsx rename to apps/web/src/components/PageComponents/Settings/Bluetooth.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Device/index.tsx b/apps/web/src/components/PageComponents/Settings/Device/index.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Device/index.tsx rename to apps/web/src/components/PageComponents/Settings/Device/index.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Display.tsx b/apps/web/src/components/PageComponents/Settings/Display.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Display.tsx rename to apps/web/src/components/PageComponents/Settings/Display.tsx diff --git a/packages/web/src/components/PageComponents/Settings/LoRa.tsx b/apps/web/src/components/PageComponents/Settings/LoRa.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/LoRa.tsx rename to apps/web/src/components/PageComponents/Settings/LoRa.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Network/index.tsx b/apps/web/src/components/PageComponents/Settings/Network/index.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Network/index.tsx rename to apps/web/src/components/PageComponents/Settings/Network/index.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Position.tsx b/apps/web/src/components/PageComponents/Settings/Position.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Position.tsx rename to apps/web/src/components/PageComponents/Settings/Position.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Power.tsx b/apps/web/src/components/PageComponents/Settings/Power.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Power.tsx rename to apps/web/src/components/PageComponents/Settings/Power.tsx diff --git a/packages/web/src/components/PageComponents/Settings/Security/Security.tsx b/apps/web/src/components/PageComponents/Settings/Security/Security.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/Security/Security.tsx rename to apps/web/src/components/PageComponents/Settings/Security/Security.tsx diff --git a/packages/web/src/components/PageComponents/Settings/User.tsx b/apps/web/src/components/PageComponents/Settings/User.tsx similarity index 100% rename from packages/web/src/components/PageComponents/Settings/User.tsx rename to apps/web/src/components/PageComponents/Settings/User.tsx diff --git a/packages/web/src/components/PageLayout.tsx b/apps/web/src/components/PageLayout.tsx similarity index 100% rename from packages/web/src/components/PageLayout.tsx rename to apps/web/src/components/PageLayout.tsx diff --git a/packages/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx similarity index 100% rename from packages/web/src/components/Sidebar.tsx rename to apps/web/src/components/Sidebar.tsx diff --git a/packages/web/src/components/ThemeSwitcher.tsx b/apps/web/src/components/ThemeSwitcher.tsx similarity index 100% rename from packages/web/src/components/ThemeSwitcher.tsx rename to apps/web/src/components/ThemeSwitcher.tsx diff --git a/packages/web/src/components/Toaster.tsx b/apps/web/src/components/Toaster.tsx similarity index 100% rename from packages/web/src/components/Toaster.tsx rename to apps/web/src/components/Toaster.tsx diff --git a/packages/web/src/components/UI/Accordion.tsx b/apps/web/src/components/UI/Accordion.tsx similarity index 100% rename from packages/web/src/components/UI/Accordion.tsx rename to apps/web/src/components/UI/Accordion.tsx diff --git a/packages/web/src/components/UI/AlertDialog.tsx b/apps/web/src/components/UI/AlertDialog.tsx similarity index 100% rename from packages/web/src/components/UI/AlertDialog.tsx rename to apps/web/src/components/UI/AlertDialog.tsx diff --git a/packages/web/src/components/UI/Avatar.tsx b/apps/web/src/components/UI/Avatar.tsx similarity index 100% rename from packages/web/src/components/UI/Avatar.tsx rename to apps/web/src/components/UI/Avatar.tsx diff --git a/packages/web/src/components/UI/Badge.tsx b/apps/web/src/components/UI/Badge.tsx similarity index 100% rename from packages/web/src/components/UI/Badge.tsx rename to apps/web/src/components/UI/Badge.tsx diff --git a/packages/web/src/components/UI/Button.tsx b/apps/web/src/components/UI/Button.tsx similarity index 100% rename from packages/web/src/components/UI/Button.tsx rename to apps/web/src/components/UI/Button.tsx diff --git a/packages/web/src/components/UI/Card.tsx b/apps/web/src/components/UI/Card.tsx similarity index 100% rename from packages/web/src/components/UI/Card.tsx rename to apps/web/src/components/UI/Card.tsx diff --git a/packages/web/src/components/UI/Checkbox/Checkbox.test.tsx b/apps/web/src/components/UI/Checkbox/Checkbox.test.tsx similarity index 100% rename from packages/web/src/components/UI/Checkbox/Checkbox.test.tsx rename to apps/web/src/components/UI/Checkbox/Checkbox.test.tsx diff --git a/packages/web/src/components/UI/Checkbox/index.tsx b/apps/web/src/components/UI/Checkbox/index.tsx similarity index 100% rename from packages/web/src/components/UI/Checkbox/index.tsx rename to apps/web/src/components/UI/Checkbox/index.tsx diff --git a/packages/web/src/components/UI/Command.tsx b/apps/web/src/components/UI/Command.tsx similarity index 100% rename from packages/web/src/components/UI/Command.tsx rename to apps/web/src/components/UI/Command.tsx diff --git a/packages/web/src/components/UI/Dialog.tsx b/apps/web/src/components/UI/Dialog.tsx similarity index 100% rename from packages/web/src/components/UI/Dialog.tsx rename to apps/web/src/components/UI/Dialog.tsx diff --git a/packages/web/src/components/UI/DropdownMenu.tsx b/apps/web/src/components/UI/DropdownMenu.tsx similarity index 100% rename from packages/web/src/components/UI/DropdownMenu.tsx rename to apps/web/src/components/UI/DropdownMenu.tsx diff --git a/packages/web/src/components/UI/ErrorPage.tsx b/apps/web/src/components/UI/ErrorPage.tsx similarity index 100% rename from packages/web/src/components/UI/ErrorPage.tsx rename to apps/web/src/components/UI/ErrorPage.tsx diff --git a/packages/web/src/components/UI/Footer.tsx b/apps/web/src/components/UI/Footer.tsx similarity index 100% rename from packages/web/src/components/UI/Footer.tsx rename to apps/web/src/components/UI/Footer.tsx diff --git a/packages/web/src/components/UI/Generator.tsx b/apps/web/src/components/UI/Generator.tsx similarity index 100% rename from packages/web/src/components/UI/Generator.tsx rename to apps/web/src/components/UI/Generator.tsx diff --git a/packages/web/src/components/UI/Input.tsx b/apps/web/src/components/UI/Input.tsx similarity index 100% rename from packages/web/src/components/UI/Input.tsx rename to apps/web/src/components/UI/Input.tsx diff --git a/packages/web/src/components/UI/Label.tsx b/apps/web/src/components/UI/Label.tsx similarity index 100% rename from packages/web/src/components/UI/Label.tsx rename to apps/web/src/components/UI/Label.tsx diff --git a/packages/web/src/components/UI/Menubar.tsx b/apps/web/src/components/UI/Menubar.tsx similarity index 100% rename from packages/web/src/components/UI/Menubar.tsx rename to apps/web/src/components/UI/Menubar.tsx diff --git a/packages/web/src/components/UI/MultiSelect.tsx b/apps/web/src/components/UI/MultiSelect.tsx similarity index 100% rename from packages/web/src/components/UI/MultiSelect.tsx rename to apps/web/src/components/UI/MultiSelect.tsx diff --git a/packages/web/src/components/UI/Popover.tsx b/apps/web/src/components/UI/Popover.tsx similarity index 100% rename from packages/web/src/components/UI/Popover.tsx rename to apps/web/src/components/UI/Popover.tsx diff --git a/packages/web/src/components/UI/ScrollArea.tsx b/apps/web/src/components/UI/ScrollArea.tsx similarity index 100% rename from packages/web/src/components/UI/ScrollArea.tsx rename to apps/web/src/components/UI/ScrollArea.tsx diff --git a/packages/web/src/components/UI/Select.tsx b/apps/web/src/components/UI/Select.tsx similarity index 100% rename from packages/web/src/components/UI/Select.tsx rename to apps/web/src/components/UI/Select.tsx diff --git a/packages/web/src/components/UI/Separator.tsx b/apps/web/src/components/UI/Separator.tsx similarity index 100% rename from packages/web/src/components/UI/Separator.tsx rename to apps/web/src/components/UI/Separator.tsx diff --git a/packages/web/src/components/UI/Sidebar/SidebarButton.tsx b/apps/web/src/components/UI/Sidebar/SidebarButton.tsx similarity index 100% rename from packages/web/src/components/UI/Sidebar/SidebarButton.tsx rename to apps/web/src/components/UI/Sidebar/SidebarButton.tsx diff --git a/packages/web/src/components/UI/Sidebar/SidebarSection.tsx b/apps/web/src/components/UI/Sidebar/SidebarSection.tsx similarity index 100% rename from packages/web/src/components/UI/Sidebar/SidebarSection.tsx rename to apps/web/src/components/UI/Sidebar/SidebarSection.tsx diff --git a/packages/web/src/components/UI/Skeleton.tsx b/apps/web/src/components/UI/Skeleton.tsx similarity index 100% rename from packages/web/src/components/UI/Skeleton.tsx rename to apps/web/src/components/UI/Skeleton.tsx diff --git a/packages/web/src/components/UI/Slider.tsx b/apps/web/src/components/UI/Slider.tsx similarity index 100% rename from packages/web/src/components/UI/Slider.tsx rename to apps/web/src/components/UI/Slider.tsx diff --git a/packages/web/src/components/UI/Spinner.tsx b/apps/web/src/components/UI/Spinner.tsx similarity index 100% rename from packages/web/src/components/UI/Spinner.tsx rename to apps/web/src/components/UI/Spinner.tsx diff --git a/packages/web/src/components/UI/Switch.tsx b/apps/web/src/components/UI/Switch.tsx similarity index 100% rename from packages/web/src/components/UI/Switch.tsx rename to apps/web/src/components/UI/Switch.tsx diff --git a/packages/web/src/components/UI/Tabs.tsx b/apps/web/src/components/UI/Tabs.tsx similarity index 100% rename from packages/web/src/components/UI/Tabs.tsx rename to apps/web/src/components/UI/Tabs.tsx diff --git a/packages/web/src/components/UI/Toast.tsx b/apps/web/src/components/UI/Toast.tsx similarity index 100% rename from packages/web/src/components/UI/Toast.tsx rename to apps/web/src/components/UI/Toast.tsx diff --git a/packages/web/src/components/UI/ToggleGroup.tsx b/apps/web/src/components/UI/ToggleGroup.tsx similarity index 100% rename from packages/web/src/components/UI/ToggleGroup.tsx rename to apps/web/src/components/UI/ToggleGroup.tsx diff --git a/packages/web/src/components/UI/Tooltip.tsx b/apps/web/src/components/UI/Tooltip.tsx similarity index 100% rename from packages/web/src/components/UI/Tooltip.tsx rename to apps/web/src/components/UI/Tooltip.tsx diff --git a/packages/web/src/components/UI/Typography/Blockquote.tsx b/apps/web/src/components/UI/Typography/Blockquote.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/Blockquote.tsx rename to apps/web/src/components/UI/Typography/Blockquote.tsx diff --git a/packages/web/src/components/UI/Typography/Code.tsx b/apps/web/src/components/UI/Typography/Code.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/Code.tsx rename to apps/web/src/components/UI/Typography/Code.tsx diff --git a/packages/web/src/components/UI/Typography/Heading.tsx b/apps/web/src/components/UI/Typography/Heading.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/Heading.tsx rename to apps/web/src/components/UI/Typography/Heading.tsx diff --git a/packages/web/src/components/UI/Typography/Link.tsx b/apps/web/src/components/UI/Typography/Link.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/Link.tsx rename to apps/web/src/components/UI/Typography/Link.tsx diff --git a/packages/web/src/components/UI/Typography/P.tsx b/apps/web/src/components/UI/Typography/P.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/P.tsx rename to apps/web/src/components/UI/Typography/P.tsx diff --git a/packages/web/src/components/UI/Typography/Subtle.tsx b/apps/web/src/components/UI/Typography/Subtle.tsx similarity index 100% rename from packages/web/src/components/UI/Typography/Subtle.tsx rename to apps/web/src/components/UI/Typography/Subtle.tsx diff --git a/packages/web/src/components/generic/Blur.tsx b/apps/web/src/components/generic/Blur.tsx similarity index 100% rename from packages/web/src/components/generic/Blur.tsx rename to apps/web/src/components/generic/Blur.tsx diff --git a/packages/web/src/components/generic/DeviceImage.tsx b/apps/web/src/components/generic/DeviceImage.tsx similarity index 100% rename from packages/web/src/components/generic/DeviceImage.tsx rename to apps/web/src/components/generic/DeviceImage.tsx diff --git a/packages/web/src/components/generic/Filter/FilterComponents.tsx b/apps/web/src/components/generic/Filter/FilterComponents.tsx similarity index 100% rename from packages/web/src/components/generic/Filter/FilterComponents.tsx rename to apps/web/src/components/generic/Filter/FilterComponents.tsx diff --git a/packages/web/src/components/generic/Filter/FilterControl.tsx b/apps/web/src/components/generic/Filter/FilterControl.tsx similarity index 100% rename from packages/web/src/components/generic/Filter/FilterControl.tsx rename to apps/web/src/components/generic/Filter/FilterControl.tsx diff --git a/packages/web/src/components/generic/Filter/useFilterNode.test.ts b/apps/web/src/components/generic/Filter/useFilterNode.test.ts similarity index 100% rename from packages/web/src/components/generic/Filter/useFilterNode.test.ts rename to apps/web/src/components/generic/Filter/useFilterNode.test.ts diff --git a/packages/web/src/components/generic/Filter/useFilterNode.ts b/apps/web/src/components/generic/Filter/useFilterNode.ts similarity index 100% rename from packages/web/src/components/generic/Filter/useFilterNode.ts rename to apps/web/src/components/generic/Filter/useFilterNode.ts diff --git a/packages/web/src/components/generic/Mono.tsx b/apps/web/src/components/generic/Mono.tsx similarity index 100% rename from packages/web/src/components/generic/Mono.tsx rename to apps/web/src/components/generic/Mono.tsx diff --git a/packages/web/src/components/generic/Table/index.test.tsx b/apps/web/src/components/generic/Table/index.test.tsx similarity index 100% rename from packages/web/src/components/generic/Table/index.test.tsx rename to apps/web/src/components/generic/Table/index.test.tsx diff --git a/packages/web/src/components/generic/Table/index.tsx b/apps/web/src/components/generic/Table/index.tsx similarity index 100% rename from packages/web/src/components/generic/Table/index.tsx rename to apps/web/src/components/generic/Table/index.tsx diff --git a/packages/web/src/components/generic/TimeAgo.tsx b/apps/web/src/components/generic/TimeAgo.tsx similarity index 100% rename from packages/web/src/components/generic/TimeAgo.tsx rename to apps/web/src/components/generic/TimeAgo.tsx diff --git a/packages/web/src/components/generic/Uptime.tsx b/apps/web/src/components/generic/Uptime.tsx similarity index 100% rename from packages/web/src/components/generic/Uptime.tsx rename to apps/web/src/components/generic/Uptime.tsx diff --git a/packages/web/src/components/types.ts b/apps/web/src/components/types.ts similarity index 100% rename from packages/web/src/components/types.ts rename to apps/web/src/components/types.ts diff --git a/packages/web/src/core/connections/heartbeat.ts b/apps/web/src/core/connections/heartbeat.ts similarity index 100% rename from packages/web/src/core/connections/heartbeat.ts rename to apps/web/src/core/connections/heartbeat.ts diff --git a/packages/web/src/core/connections/sdkClient.ts b/apps/web/src/core/connections/sdkClient.ts similarity index 100% rename from packages/web/src/core/connections/sdkClient.ts rename to apps/web/src/core/connections/sdkClient.ts diff --git a/packages/web/src/core/connections/transports.ts b/apps/web/src/core/connections/transports.ts similarity index 100% rename from packages/web/src/core/connections/transports.ts rename to apps/web/src/core/connections/transports.ts diff --git a/packages/web/src/core/dto/NodeNumToNodeInfoDTO.ts b/apps/web/src/core/dto/NodeNumToNodeInfoDTO.ts similarity index 100% rename from packages/web/src/core/dto/NodeNumToNodeInfoDTO.ts rename to apps/web/src/core/dto/NodeNumToNodeInfoDTO.ts diff --git a/packages/web/src/core/hooks/useBrowserFeatureDetection.ts b/apps/web/src/core/hooks/useBrowserFeatureDetection.ts similarity index 100% rename from packages/web/src/core/hooks/useBrowserFeatureDetection.ts rename to apps/web/src/core/hooks/useBrowserFeatureDetection.ts diff --git a/packages/web/src/core/hooks/useChatAsLegacyMessages.ts b/apps/web/src/core/hooks/useChatAsLegacyMessages.ts similarity index 100% rename from packages/web/src/core/hooks/useChatAsLegacyMessages.ts rename to apps/web/src/core/hooks/useChatAsLegacyMessages.ts diff --git a/packages/web/src/core/hooks/useCookie.ts b/apps/web/src/core/hooks/useCookie.ts similarity index 100% rename from packages/web/src/core/hooks/useCookie.ts rename to apps/web/src/core/hooks/useCookie.ts diff --git a/packages/web/src/core/hooks/useCopyToClipboard.ts b/apps/web/src/core/hooks/useCopyToClipboard.ts similarity index 100% rename from packages/web/src/core/hooks/useCopyToClipboard.ts rename to apps/web/src/core/hooks/useCopyToClipboard.ts diff --git a/packages/web/src/core/hooks/useDeviceContext.ts b/apps/web/src/core/hooks/useDeviceContext.ts similarity index 100% rename from packages/web/src/core/hooks/useDeviceContext.ts rename to apps/web/src/core/hooks/useDeviceContext.ts diff --git a/packages/web/src/core/hooks/useFavoriteNode.test.ts b/apps/web/src/core/hooks/useFavoriteNode.test.ts similarity index 100% rename from packages/web/src/core/hooks/useFavoriteNode.test.ts rename to apps/web/src/core/hooks/useFavoriteNode.test.ts diff --git a/packages/web/src/core/hooks/useFavoriteNode.ts b/apps/web/src/core/hooks/useFavoriteNode.ts similarity index 100% rename from packages/web/src/core/hooks/useFavoriteNode.ts rename to apps/web/src/core/hooks/useFavoriteNode.ts diff --git a/packages/web/src/core/hooks/useFeatureFlags.ts b/apps/web/src/core/hooks/useFeatureFlags.ts similarity index 100% rename from packages/web/src/core/hooks/useFeatureFlags.ts rename to apps/web/src/core/hooks/useFeatureFlags.ts diff --git a/packages/web/src/core/hooks/useIgnoreNode.test.ts b/apps/web/src/core/hooks/useIgnoreNode.test.ts similarity index 100% rename from packages/web/src/core/hooks/useIgnoreNode.test.ts rename to apps/web/src/core/hooks/useIgnoreNode.test.ts diff --git a/packages/web/src/core/hooks/useIgnoreNode.ts b/apps/web/src/core/hooks/useIgnoreNode.ts similarity index 100% rename from packages/web/src/core/hooks/useIgnoreNode.ts rename to apps/web/src/core/hooks/useIgnoreNode.ts diff --git a/packages/web/src/core/hooks/useKeyBackupReminder.tsx b/apps/web/src/core/hooks/useKeyBackupReminder.tsx similarity index 100% rename from packages/web/src/core/hooks/useKeyBackupReminder.tsx rename to apps/web/src/core/hooks/useKeyBackupReminder.tsx diff --git a/packages/web/src/core/hooks/useLRUList.ts b/apps/web/src/core/hooks/useLRUList.ts similarity index 100% rename from packages/web/src/core/hooks/useLRUList.ts rename to apps/web/src/core/hooks/useLRUList.ts diff --git a/packages/web/src/core/hooks/useLang.ts b/apps/web/src/core/hooks/useLang.ts similarity index 100% rename from packages/web/src/core/hooks/useLang.ts rename to apps/web/src/core/hooks/useLang.ts diff --git a/packages/web/src/core/hooks/useLocalStorage.test.ts b/apps/web/src/core/hooks/useLocalStorage.test.ts similarity index 100% rename from packages/web/src/core/hooks/useLocalStorage.test.ts rename to apps/web/src/core/hooks/useLocalStorage.test.ts diff --git a/packages/web/src/core/hooks/useLocalStorage.ts b/apps/web/src/core/hooks/useLocalStorage.ts similarity index 100% rename from packages/web/src/core/hooks/useLocalStorage.ts rename to apps/web/src/core/hooks/useLocalStorage.ts diff --git a/packages/web/src/core/hooks/useMapFitting.ts b/apps/web/src/core/hooks/useMapFitting.ts similarity index 100% rename from packages/web/src/core/hooks/useMapFitting.ts rename to apps/web/src/core/hooks/useMapFitting.ts diff --git a/packages/web/src/core/hooks/useNewNodeNum.ts b/apps/web/src/core/hooks/useNewNodeNum.ts similarity index 100% rename from packages/web/src/core/hooks/useNewNodeNum.ts rename to apps/web/src/core/hooks/useNewNodeNum.ts diff --git a/packages/web/src/core/hooks/useNodesAsProto.ts b/apps/web/src/core/hooks/useNodesAsProto.ts similarity index 100% rename from packages/web/src/core/hooks/useNodesAsProto.ts rename to apps/web/src/core/hooks/useNodesAsProto.ts diff --git a/packages/web/src/core/hooks/usePasswordVisibilityToggle.test.ts b/apps/web/src/core/hooks/usePasswordVisibilityToggle.test.ts similarity index 100% rename from packages/web/src/core/hooks/usePasswordVisibilityToggle.test.ts rename to apps/web/src/core/hooks/usePasswordVisibilityToggle.test.ts diff --git a/packages/web/src/core/hooks/usePasswordVisibilityToggle.ts b/apps/web/src/core/hooks/usePasswordVisibilityToggle.ts similarity index 100% rename from packages/web/src/core/hooks/usePasswordVisibilityToggle.ts rename to apps/web/src/core/hooks/usePasswordVisibilityToggle.ts diff --git a/packages/web/src/core/hooks/usePinnedItems.ts b/apps/web/src/core/hooks/usePinnedItems.ts similarity index 100% rename from packages/web/src/core/hooks/usePinnedItems.ts rename to apps/web/src/core/hooks/usePinnedItems.ts diff --git a/packages/web/src/core/hooks/usePositionFlags.ts b/apps/web/src/core/hooks/usePositionFlags.ts similarity index 100% rename from packages/web/src/core/hooks/usePositionFlags.ts rename to apps/web/src/core/hooks/usePositionFlags.ts diff --git a/packages/web/src/core/hooks/useTheme.ts b/apps/web/src/core/hooks/useTheme.ts similarity index 100% rename from packages/web/src/core/hooks/useTheme.ts rename to apps/web/src/core/hooks/useTheme.ts diff --git a/packages/web/src/core/hooks/useToast.test.tsx b/apps/web/src/core/hooks/useToast.test.tsx similarity index 100% rename from packages/web/src/core/hooks/useToast.test.tsx rename to apps/web/src/core/hooks/useToast.test.tsx diff --git a/packages/web/src/core/hooks/useToast.ts b/apps/web/src/core/hooks/useToast.ts similarity index 100% rename from packages/web/src/core/hooks/useToast.ts rename to apps/web/src/core/hooks/useToast.ts diff --git a/packages/web/src/core/hooks/useToggleVisiblility.ts b/apps/web/src/core/hooks/useToggleVisiblility.ts similarity index 100% rename from packages/web/src/core/hooks/useToggleVisiblility.ts rename to apps/web/src/core/hooks/useToggleVisiblility.ts diff --git a/packages/web/src/core/hooks/useWaitForConfig.ts b/apps/web/src/core/hooks/useWaitForConfig.ts similarity index 100% rename from packages/web/src/core/hooks/useWaitForConfig.ts rename to apps/web/src/core/hooks/useWaitForConfig.ts diff --git a/packages/web/src/core/meshRegistry.ts b/apps/web/src/core/meshRegistry.ts similarity index 100% rename from packages/web/src/core/meshRegistry.ts rename to apps/web/src/core/meshRegistry.ts diff --git a/packages/web/src/core/sdkStorage.ts b/apps/web/src/core/sdkStorage.ts similarity index 100% rename from packages/web/src/core/sdkStorage.ts rename to apps/web/src/core/sdkStorage.ts diff --git a/packages/web/src/core/services/dev-overrides.ts b/apps/web/src/core/services/dev-overrides.ts similarity index 100% rename from packages/web/src/core/services/dev-overrides.ts rename to apps/web/src/core/services/dev-overrides.ts diff --git a/packages/web/src/core/services/featureFlags.ts b/apps/web/src/core/services/featureFlags.ts similarity index 100% rename from packages/web/src/core/services/featureFlags.ts rename to apps/web/src/core/services/featureFlags.ts diff --git a/packages/web/src/core/stores/appStore/appStore.test.ts b/apps/web/src/core/stores/appStore/appStore.test.ts similarity index 100% rename from packages/web/src/core/stores/appStore/appStore.test.ts rename to apps/web/src/core/stores/appStore/appStore.test.ts diff --git a/packages/web/src/core/stores/appStore/index.ts b/apps/web/src/core/stores/appStore/index.ts similarity index 100% rename from packages/web/src/core/stores/appStore/index.ts rename to apps/web/src/core/stores/appStore/index.ts diff --git a/packages/web/src/core/stores/appStore/types.ts b/apps/web/src/core/stores/appStore/types.ts similarity index 100% rename from packages/web/src/core/stores/appStore/types.ts rename to apps/web/src/core/stores/appStore/types.ts diff --git a/packages/web/src/core/stores/deviceStore/deviceStore.mock.ts b/apps/web/src/core/stores/deviceStore/deviceStore.mock.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore/deviceStore.mock.ts rename to apps/web/src/core/stores/deviceStore/deviceStore.mock.ts diff --git a/packages/web/src/core/stores/deviceStore/deviceStore.test.ts b/apps/web/src/core/stores/deviceStore/deviceStore.test.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore/deviceStore.test.ts rename to apps/web/src/core/stores/deviceStore/deviceStore.test.ts diff --git a/packages/web/src/core/stores/deviceStore/index.ts b/apps/web/src/core/stores/deviceStore/index.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore/index.ts rename to apps/web/src/core/stores/deviceStore/index.ts diff --git a/packages/web/src/core/stores/deviceStore/selectors.ts b/apps/web/src/core/stores/deviceStore/selectors.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore/selectors.ts rename to apps/web/src/core/stores/deviceStore/selectors.ts diff --git a/packages/web/src/core/stores/deviceStore/types.ts b/apps/web/src/core/stores/deviceStore/types.ts similarity index 100% rename from packages/web/src/core/stores/deviceStore/types.ts rename to apps/web/src/core/stores/deviceStore/types.ts diff --git a/packages/web/src/core/stores/index.ts b/apps/web/src/core/stores/index.ts similarity index 100% rename from packages/web/src/core/stores/index.ts rename to apps/web/src/core/stores/index.ts diff --git a/packages/web/src/core/stores/messageStore/index.ts b/apps/web/src/core/stores/messageStore/index.ts similarity index 100% rename from packages/web/src/core/stores/messageStore/index.ts rename to apps/web/src/core/stores/messageStore/index.ts diff --git a/packages/web/src/core/stores/sidebarStore/index.tsx b/apps/web/src/core/stores/sidebarStore/index.tsx similarity index 100% rename from packages/web/src/core/stores/sidebarStore/index.tsx rename to apps/web/src/core/stores/sidebarStore/index.tsx diff --git a/packages/web/src/core/stores/utils/bindStoreToDevice.ts b/apps/web/src/core/stores/utils/bindStoreToDevice.ts similarity index 100% rename from packages/web/src/core/stores/utils/bindStoreToDevice.ts rename to apps/web/src/core/stores/utils/bindStoreToDevice.ts diff --git a/packages/web/src/core/stores/utils/evictOldestEntries.ts b/apps/web/src/core/stores/utils/evictOldestEntries.ts similarity index 100% rename from packages/web/src/core/stores/utils/evictOldestEntries.ts rename to apps/web/src/core/stores/utils/evictOldestEntries.ts diff --git a/packages/web/src/core/stores/utils/indexDB.test.ts b/apps/web/src/core/stores/utils/indexDB.test.ts similarity index 100% rename from packages/web/src/core/stores/utils/indexDB.test.ts rename to apps/web/src/core/stores/utils/indexDB.test.ts diff --git a/packages/web/src/core/stores/utils/indexDB.ts b/apps/web/src/core/stores/utils/indexDB.ts similarity index 100% rename from packages/web/src/core/stores/utils/indexDB.ts rename to apps/web/src/core/stores/utils/indexDB.ts diff --git a/packages/web/src/core/subscriptions.ts b/apps/web/src/core/subscriptions.ts similarity index 100% rename from packages/web/src/core/subscriptions.ts rename to apps/web/src/core/subscriptions.ts diff --git a/packages/web/src/core/utils/bitwise.ts b/apps/web/src/core/utils/bitwise.ts similarity index 100% rename from packages/web/src/core/utils/bitwise.ts rename to apps/web/src/core/utils/bitwise.ts diff --git a/packages/web/src/core/utils/cn.ts b/apps/web/src/core/utils/cn.ts similarity index 100% rename from packages/web/src/core/utils/cn.ts rename to apps/web/src/core/utils/cn.ts diff --git a/packages/web/src/core/utils/color.test.ts b/apps/web/src/core/utils/color.test.ts similarity index 100% rename from packages/web/src/core/utils/color.test.ts rename to apps/web/src/core/utils/color.test.ts diff --git a/packages/web/src/core/utils/color.ts b/apps/web/src/core/utils/color.ts similarity index 100% rename from packages/web/src/core/utils/color.ts rename to apps/web/src/core/utils/color.ts diff --git a/packages/web/src/core/utils/debounce.test.ts b/apps/web/src/core/utils/debounce.test.ts similarity index 100% rename from packages/web/src/core/utils/debounce.test.ts rename to apps/web/src/core/utils/debounce.test.ts diff --git a/packages/web/src/core/utils/debounce.ts b/apps/web/src/core/utils/debounce.ts similarity index 100% rename from packages/web/src/core/utils/debounce.ts rename to apps/web/src/core/utils/debounce.ts diff --git a/packages/web/src/core/utils/deepCompareConfig.test.ts b/apps/web/src/core/utils/deepCompareConfig.test.ts similarity index 100% rename from packages/web/src/core/utils/deepCompareConfig.test.ts rename to apps/web/src/core/utils/deepCompareConfig.test.ts diff --git a/packages/web/src/core/utils/deepCompareConfig.ts b/apps/web/src/core/utils/deepCompareConfig.ts similarity index 100% rename from packages/web/src/core/utils/deepCompareConfig.ts rename to apps/web/src/core/utils/deepCompareConfig.ts diff --git a/packages/web/src/core/utils/dotPath.test.ts b/apps/web/src/core/utils/dotPath.test.ts similarity index 100% rename from packages/web/src/core/utils/dotPath.test.ts rename to apps/web/src/core/utils/dotPath.test.ts diff --git a/packages/web/src/core/utils/dotPath.ts b/apps/web/src/core/utils/dotPath.ts similarity index 100% rename from packages/web/src/core/utils/dotPath.ts rename to apps/web/src/core/utils/dotPath.ts diff --git a/packages/web/src/core/utils/eventBus.test.ts b/apps/web/src/core/utils/eventBus.test.ts similarity index 100% rename from packages/web/src/core/utils/eventBus.test.ts rename to apps/web/src/core/utils/eventBus.test.ts diff --git a/packages/web/src/core/utils/eventBus.ts b/apps/web/src/core/utils/eventBus.ts similarity index 100% rename from packages/web/src/core/utils/eventBus.ts rename to apps/web/src/core/utils/eventBus.ts diff --git a/packages/web/src/core/utils/geo.ts b/apps/web/src/core/utils/geo.ts similarity index 100% rename from packages/web/src/core/utils/geo.ts rename to apps/web/src/core/utils/geo.ts diff --git a/packages/web/src/core/utils/github.ts b/apps/web/src/core/utils/github.ts similarity index 100% rename from packages/web/src/core/utils/github.ts rename to apps/web/src/core/utils/github.ts diff --git a/packages/web/src/core/utils/ip.test.ts b/apps/web/src/core/utils/ip.test.ts similarity index 100% rename from packages/web/src/core/utils/ip.test.ts rename to apps/web/src/core/utils/ip.test.ts diff --git a/packages/web/src/core/utils/ip.ts b/apps/web/src/core/utils/ip.ts similarity index 100% rename from packages/web/src/core/utils/ip.ts rename to apps/web/src/core/utils/ip.ts diff --git a/packages/web/src/core/utils/randId.test.ts b/apps/web/src/core/utils/randId.test.ts similarity index 100% rename from packages/web/src/core/utils/randId.test.ts rename to apps/web/src/core/utils/randId.test.ts diff --git a/packages/web/src/core/utils/randId.ts b/apps/web/src/core/utils/randId.ts similarity index 100% rename from packages/web/src/core/utils/randId.ts rename to apps/web/src/core/utils/randId.ts diff --git a/packages/web/src/core/utils/signalColor.ts b/apps/web/src/core/utils/signalColor.ts similarity index 100% rename from packages/web/src/core/utils/signalColor.ts rename to apps/web/src/core/utils/signalColor.ts diff --git a/packages/web/src/core/utils/sort.ts b/apps/web/src/core/utils/sort.ts similarity index 100% rename from packages/web/src/core/utils/sort.ts rename to apps/web/src/core/utils/sort.ts diff --git a/packages/web/src/core/utils/string.ts b/apps/web/src/core/utils/string.ts similarity index 100% rename from packages/web/src/core/utils/string.ts rename to apps/web/src/core/utils/string.ts diff --git a/packages/web/src/core/utils/x25519.ts b/apps/web/src/core/utils/x25519.ts similarity index 100% rename from packages/web/src/core/utils/x25519.ts rename to apps/web/src/core/utils/x25519.ts diff --git a/packages/web/src/i18n-config.ts b/apps/web/src/i18n-config.ts similarity index 100% rename from packages/web/src/i18n-config.ts rename to apps/web/src/i18n-config.ts diff --git a/packages/web/src/index.css b/apps/web/src/index.css similarity index 100% rename from packages/web/src/index.css rename to apps/web/src/index.css diff --git a/packages/web/src/index.tsx b/apps/web/src/index.tsx similarity index 100% rename from packages/web/src/index.tsx rename to apps/web/src/index.tsx diff --git a/packages/web/src/pages/Connections/index.tsx b/apps/web/src/pages/Connections/index.tsx similarity index 100% rename from packages/web/src/pages/Connections/index.tsx rename to apps/web/src/pages/Connections/index.tsx diff --git a/packages/web/src/pages/Connections/useConnections.ts b/apps/web/src/pages/Connections/useConnections.ts similarity index 100% rename from packages/web/src/pages/Connections/useConnections.ts rename to apps/web/src/pages/Connections/useConnections.ts diff --git a/packages/web/src/pages/Connections/utils.ts b/apps/web/src/pages/Connections/utils.ts similarity index 100% rename from packages/web/src/pages/Connections/utils.ts rename to apps/web/src/pages/Connections/utils.ts diff --git a/packages/web/src/pages/Map/index.tsx b/apps/web/src/pages/Map/index.tsx similarity index 100% rename from packages/web/src/pages/Map/index.tsx rename to apps/web/src/pages/Map/index.tsx diff --git a/packages/web/src/pages/Messages.tsx b/apps/web/src/pages/Messages.tsx similarity index 100% rename from packages/web/src/pages/Messages.tsx rename to apps/web/src/pages/Messages.tsx diff --git a/packages/web/src/pages/Nodes/index.tsx b/apps/web/src/pages/Nodes/index.tsx similarity index 100% rename from packages/web/src/pages/Nodes/index.tsx rename to apps/web/src/pages/Nodes/index.tsx diff --git a/packages/web/src/pages/Settings/DeviceConfig.tsx b/apps/web/src/pages/Settings/DeviceConfig.tsx similarity index 100% rename from packages/web/src/pages/Settings/DeviceConfig.tsx rename to apps/web/src/pages/Settings/DeviceConfig.tsx diff --git a/packages/web/src/pages/Settings/ModuleConfig.tsx b/apps/web/src/pages/Settings/ModuleConfig.tsx similarity index 100% rename from packages/web/src/pages/Settings/ModuleConfig.tsx rename to apps/web/src/pages/Settings/ModuleConfig.tsx diff --git a/packages/web/src/pages/Settings/RadioConfig.tsx b/apps/web/src/pages/Settings/RadioConfig.tsx similarity index 100% rename from packages/web/src/pages/Settings/RadioConfig.tsx rename to apps/web/src/pages/Settings/RadioConfig.tsx diff --git a/packages/web/src/pages/Settings/index.tsx b/apps/web/src/pages/Settings/index.tsx similarity index 100% rename from packages/web/src/pages/Settings/index.tsx rename to apps/web/src/pages/Settings/index.tsx diff --git a/packages/web/src/routes.tsx b/apps/web/src/routes.tsx similarity index 100% rename from packages/web/src/routes.tsx rename to apps/web/src/routes.tsx diff --git a/packages/web/src/tests/setup.ts b/apps/web/src/tests/setup.ts similarity index 100% rename from packages/web/src/tests/setup.ts rename to apps/web/src/tests/setup.ts diff --git a/packages/web/src/tests/test-utils.tsx b/apps/web/src/tests/test-utils.tsx similarity index 100% rename from packages/web/src/tests/test-utils.tsx rename to apps/web/src/tests/test-utils.tsx diff --git a/packages/web/src/validation/channel.test.ts b/apps/web/src/validation/channel.test.ts similarity index 100% rename from packages/web/src/validation/channel.test.ts rename to apps/web/src/validation/channel.test.ts diff --git a/packages/web/src/validation/channel.ts b/apps/web/src/validation/channel.ts similarity index 100% rename from packages/web/src/validation/channel.ts rename to apps/web/src/validation/channel.ts diff --git a/packages/web/src/validation/config/bluetooth.ts b/apps/web/src/validation/config/bluetooth.ts similarity index 100% rename from packages/web/src/validation/config/bluetooth.ts rename to apps/web/src/validation/config/bluetooth.ts diff --git a/packages/web/src/validation/config/device.ts b/apps/web/src/validation/config/device.ts similarity index 100% rename from packages/web/src/validation/config/device.ts rename to apps/web/src/validation/config/device.ts diff --git a/packages/web/src/validation/config/display.ts b/apps/web/src/validation/config/display.ts similarity index 100% rename from packages/web/src/validation/config/display.ts rename to apps/web/src/validation/config/display.ts diff --git a/packages/web/src/validation/config/lora.test.ts b/apps/web/src/validation/config/lora.test.ts similarity index 100% rename from packages/web/src/validation/config/lora.test.ts rename to apps/web/src/validation/config/lora.test.ts diff --git a/packages/web/src/validation/config/lora.ts b/apps/web/src/validation/config/lora.ts similarity index 100% rename from packages/web/src/validation/config/lora.ts rename to apps/web/src/validation/config/lora.ts diff --git a/packages/web/src/validation/config/network.ts b/apps/web/src/validation/config/network.ts similarity index 100% rename from packages/web/src/validation/config/network.ts rename to apps/web/src/validation/config/network.ts diff --git a/packages/web/src/validation/config/position.ts b/apps/web/src/validation/config/position.ts similarity index 100% rename from packages/web/src/validation/config/position.ts rename to apps/web/src/validation/config/position.ts diff --git a/packages/web/src/validation/config/power.ts b/apps/web/src/validation/config/power.ts similarity index 100% rename from packages/web/src/validation/config/power.ts rename to apps/web/src/validation/config/power.ts diff --git a/packages/web/src/validation/config/security.test.ts b/apps/web/src/validation/config/security.test.ts similarity index 100% rename from packages/web/src/validation/config/security.test.ts rename to apps/web/src/validation/config/security.test.ts diff --git a/packages/web/src/validation/config/security.ts b/apps/web/src/validation/config/security.ts similarity index 100% rename from packages/web/src/validation/config/security.ts rename to apps/web/src/validation/config/security.ts diff --git a/packages/web/src/validation/config/user.ts b/apps/web/src/validation/config/user.ts similarity index 100% rename from packages/web/src/validation/config/user.ts rename to apps/web/src/validation/config/user.ts diff --git a/packages/web/src/validation/moduleConfig/ambientLighting.ts b/apps/web/src/validation/moduleConfig/ambientLighting.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/ambientLighting.ts rename to apps/web/src/validation/moduleConfig/ambientLighting.ts diff --git a/packages/web/src/validation/moduleConfig/audio.ts b/apps/web/src/validation/moduleConfig/audio.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/audio.ts rename to apps/web/src/validation/moduleConfig/audio.ts diff --git a/packages/web/src/validation/moduleConfig/cannedMessage.ts b/apps/web/src/validation/moduleConfig/cannedMessage.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/cannedMessage.ts rename to apps/web/src/validation/moduleConfig/cannedMessage.ts diff --git a/packages/web/src/validation/moduleConfig/detectionSensor.ts b/apps/web/src/validation/moduleConfig/detectionSensor.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/detectionSensor.ts rename to apps/web/src/validation/moduleConfig/detectionSensor.ts diff --git a/packages/web/src/validation/moduleConfig/externalNotification.ts b/apps/web/src/validation/moduleConfig/externalNotification.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/externalNotification.ts rename to apps/web/src/validation/moduleConfig/externalNotification.ts diff --git a/packages/web/src/validation/moduleConfig/mqtt.ts b/apps/web/src/validation/moduleConfig/mqtt.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/mqtt.ts rename to apps/web/src/validation/moduleConfig/mqtt.ts diff --git a/packages/web/src/validation/moduleConfig/neighborInfo.ts b/apps/web/src/validation/moduleConfig/neighborInfo.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/neighborInfo.ts rename to apps/web/src/validation/moduleConfig/neighborInfo.ts diff --git a/packages/web/src/validation/moduleConfig/paxcounter.ts b/apps/web/src/validation/moduleConfig/paxcounter.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/paxcounter.ts rename to apps/web/src/validation/moduleConfig/paxcounter.ts diff --git a/packages/web/src/validation/moduleConfig/rangeTest.ts b/apps/web/src/validation/moduleConfig/rangeTest.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/rangeTest.ts rename to apps/web/src/validation/moduleConfig/rangeTest.ts diff --git a/packages/web/src/validation/moduleConfig/serial.ts b/apps/web/src/validation/moduleConfig/serial.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/serial.ts rename to apps/web/src/validation/moduleConfig/serial.ts diff --git a/packages/web/src/validation/moduleConfig/storeForward.ts b/apps/web/src/validation/moduleConfig/storeForward.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/storeForward.ts rename to apps/web/src/validation/moduleConfig/storeForward.ts diff --git a/packages/web/src/validation/moduleConfig/telemetry.ts b/apps/web/src/validation/moduleConfig/telemetry.ts similarity index 100% rename from packages/web/src/validation/moduleConfig/telemetry.ts rename to apps/web/src/validation/moduleConfig/telemetry.ts diff --git a/packages/web/src/validation/pskSchema.test.ts b/apps/web/src/validation/pskSchema.test.ts similarity index 100% rename from packages/web/src/validation/pskSchema.test.ts rename to apps/web/src/validation/pskSchema.test.ts diff --git a/packages/web/src/validation/pskSchema.ts b/apps/web/src/validation/pskSchema.ts similarity index 100% rename from packages/web/src/validation/pskSchema.ts rename to apps/web/src/validation/pskSchema.ts diff --git a/packages/web/src/validation/validate.ts b/apps/web/src/validation/validate.ts similarity index 100% rename from packages/web/src/validation/validate.ts rename to apps/web/src/validation/validate.ts diff --git a/packages/web/tsconfig.json b/apps/web/tsconfig.json similarity index 100% rename from packages/web/tsconfig.json rename to apps/web/tsconfig.json diff --git a/packages/web/vercel.json b/apps/web/vercel.json similarity index 100% rename from packages/web/vercel.json rename to apps/web/vercel.json diff --git a/packages/web/vite-env.d.ts b/apps/web/vite-env.d.ts similarity index 100% rename from packages/web/vite-env.d.ts rename to apps/web/vite-env.d.ts diff --git a/packages/web/vite.config.ts b/apps/web/vite.config.ts similarity index 100% rename from packages/web/vite.config.ts rename to apps/web/vite.config.ts diff --git a/packages/web/vitest.config.ts b/apps/web/vitest.config.ts similarity index 100% rename from packages/web/vitest.config.ts rename to apps/web/vitest.config.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac34bb6d..4e6b9976 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,239 +46,32 @@ importers: specifier: ^3.2.4 version: 3.2.4(@types/node@24.3.1)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) - packages/core: - dependencies: - crc: - specifier: npm:crc@^4.3.2 - version: 4.3.2 - - packages/protobufs: - devDependencies: - '@bufbuild/protoc-gen-es': - specifier: ^1.9.0 - version: 1.10.1(@bufbuild/protobuf@1.10.1) - rimraf: - specifier: ^6.0.0 - version: 6.0.1 - - packages/sdk: - dependencies: - '@bufbuild/protobuf': - specifier: ^2.9.0 - version: 2.9.0 - '@meshtastic/protobufs': - specifier: jsr:^2.7.18 - version: '@jsr/meshtastic__protobufs@2.7.18' - '@preact/signals-core': - specifier: ^1.8.0 - version: 1.14.1 - better-result: - specifier: ^1.0.0 - version: 1.0.1 - crc: - specifier: npm:crc@^4.3.2 - version: 4.3.2 - ste-simple-events: - specifier: ^3.0.11 - version: 3.0.11 - tslog: - specifier: ^4.9.3 - version: 4.9.3 - - packages/sdk-react: - dependencies: - '@meshtastic/sdk': - specifier: workspace:* - version: link:../sdk - devDependencies: - '@testing-library/react': - specifier: ^16.0.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.0(@types/react@19.2.1))(@types/react@19.2.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@types/react': - specifier: ^19.0.0 - version: 19.2.1 - jsdom: - specifier: ^25.0.0 - version: 25.0.1 - react: - specifier: ^19.0.0 - version: 19.2.0 - react-dom: - specifier: ^19.0.0 - version: 19.2.0(react@19.2.0) - - packages/sdk-storage-sqlocal: - dependencies: - '@meshtastic/sdk': - specifier: workspace:* - version: link:../sdk - drizzle-orm: - specifier: ^0.36.4 - version: 0.36.4(@types/react@19.2.1)(@types/sql.js@1.4.11)(react@19.2.0)(sql.js@1.14.1) - sqlocal: - specifier: ^0.14.0 - version: 0.14.2(drizzle-orm@0.36.4(@types/react@19.2.1)(@types/sql.js@1.4.11)(react@19.2.0)(sql.js@1.14.1)) - devDependencies: - '@types/sql.js': - specifier: ^1.4.9 - version: 1.4.11 - sql.js: - specifier: ^1.12.0 - version: 1.14.1 - - packages/transport-deno: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - - packages/transport-http: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - - packages/transport-node: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - - packages/transport-node-serial: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - serialport: - specifier: ^13.0.0 - version: 13.0.0 - - packages/transport-web-bluetooth: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - '@types/web-bluetooth': - specifier: npm:@types/web-bluetooth@^0.0.20 - version: 0.0.20 - - packages/transport-web-serial: - dependencies: - '@meshtastic/core': - specifier: workspace:* - version: link:../core - '@types/w3c-web-serial': - specifier: npm:@types/w3c-web-serial@^1.0.7 - version: 1.0.8 - - packages/ui: - dependencies: - '@radix-ui/react-collapsible': - specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-dialog': - specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-dropdown-menu': - specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-separator': - specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': - specifier: ^1.2.3 - version: 1.2.3(@types/react@18.3.26)(react@19.2.0) - '@radix-ui/react-tooltip': - specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/react-router': - specifier: ^1.132.47 - version: 1.132.47(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - class-variance-authority: - specifier: ^0.7.1 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - lucide-react: - specifier: ^0.545.0 - version: 0.545.0(react@19.2.0) - react: - specifier: '>=19' - version: 19.2.0 - react-dom: - specifier: '>=19' - version: 19.2.0(react@19.2.0) - tailwind-merge: - specifier: ^2.6.0 - version: 2.6.0 - devDependencies: - '@tailwindcss/postcss': - specifier: ^4.1.7 - version: 4.1.15 - '@tailwindcss/vite': - specifier: ^4.1.14 - version: 4.1.14(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) - '@types/react': - specifier: ^18.3.5 - version: 18.3.26 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.26) - '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.7.0(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) - publint: - specifier: ^0.3.14 - version: 0.3.15 - tailwindcss: - specifier: ^4.1.14 - version: 4.1.15 - tw-animate-css: - specifier: ^1.4.0 - version: 1.4.0 - typescript: - specifier: ^5.6.3 - version: 5.9.3 - vite: - specifier: ^7.0.0 - version: 7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) - vite-plugin-dts: - specifier: ^4.5.4 - version: 4.5.4(@types/node@24.7.0)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) - vite-plugin-static-copy: - specifier: ^3.1.4 - version: 3.1.4(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) - vitest: - specifier: ^3.0.0 - version: 3.2.4(@types/node@24.7.0)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) - - packages/web: + apps/web: dependencies: '@hookform/resolvers': specifier: ^5.2.2 version: 5.2.2(react-hook-form@7.64.0(react@19.2.0)) '@meshtastic/core': specifier: workspace:* - version: link:../core + version: link:../../packages/core '@meshtastic/sdk': specifier: workspace:* - version: link:../sdk + version: link:../../packages/sdk '@meshtastic/sdk-react': specifier: workspace:* - version: link:../sdk-react + version: link:../../packages/sdk-react '@meshtastic/sdk-storage-sqlocal': specifier: workspace:* - version: link:../sdk-storage-sqlocal + version: link:../../packages/sdk-storage-sqlocal '@meshtastic/transport-http': specifier: workspace:* - version: link:../transport-http + version: link:../../packages/transport-http '@meshtastic/transport-web-bluetooth': specifier: workspace:* - version: link:../transport-web-bluetooth + version: link:../../packages/transport-web-bluetooth '@meshtastic/transport-web-serial': specifier: workspace:* - version: link:../transport-web-serial + version: link:../../packages/transport-web-serial '@noble/curves': specifier: ^1.9.2 version: 1.9.6 @@ -498,10 +291,10 @@ importers: version: 3.3.1 tailwindcss: specifier: ^4.1.14 - version: 4.1.14 + version: 4.1.15 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.14) + version: 1.0.7(tailwindcss@4.1.15) tar: specifier: ^7.5.11 version: 7.5.11 @@ -515,6 +308,213 @@ importers: specifier: ^3.2.4 version: 3.2.4(@types/node@24.7.0)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) + packages/core: + dependencies: + crc: + specifier: npm:crc@^4.3.2 + version: 4.3.2 + + packages/protobufs: + devDependencies: + '@bufbuild/protoc-gen-es': + specifier: ^1.9.0 + version: 1.10.1(@bufbuild/protobuf@1.10.1) + rimraf: + specifier: ^6.0.0 + version: 6.0.1 + + packages/sdk: + dependencies: + '@bufbuild/protobuf': + specifier: ^2.9.0 + version: 2.9.0 + '@meshtastic/protobufs': + specifier: jsr:^2.7.18 + version: '@jsr/meshtastic__protobufs@2.7.18' + '@preact/signals-core': + specifier: ^1.8.0 + version: 1.14.1 + better-result: + specifier: ^1.0.0 + version: 1.0.1 + crc: + specifier: npm:crc@^4.3.2 + version: 4.3.2 + ste-simple-events: + specifier: ^3.0.11 + version: 3.0.11 + tslog: + specifier: ^4.9.3 + version: 4.9.3 + + packages/sdk-react: + dependencies: + '@meshtastic/sdk': + specifier: workspace:* + version: link:../sdk + devDependencies: + '@testing-library/react': + specifier: ^16.0.0 + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.0(@types/react@19.2.1))(@types/react@19.2.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@types/react': + specifier: ^19.0.0 + version: 19.2.1 + jsdom: + specifier: ^25.0.0 + version: 25.0.1 + react: + specifier: ^19.0.0 + version: 19.2.0 + react-dom: + specifier: ^19.0.0 + version: 19.2.0(react@19.2.0) + + packages/sdk-storage-sqlocal: + dependencies: + '@meshtastic/sdk': + specifier: workspace:* + version: link:../sdk + drizzle-orm: + specifier: ^0.36.4 + version: 0.36.4(@types/react@19.2.1)(@types/sql.js@1.4.11)(react@19.2.0)(sql.js@1.14.1) + sqlocal: + specifier: ^0.14.0 + version: 0.14.2(drizzle-orm@0.36.4(@types/react@19.2.1)(@types/sql.js@1.4.11)(react@19.2.0)(sql.js@1.14.1)) + devDependencies: + '@types/sql.js': + specifier: ^1.4.9 + version: 1.4.11 + sql.js: + specifier: ^1.12.0 + version: 1.14.1 + + packages/transport-deno: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + + packages/transport-http: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + + packages/transport-node: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + + packages/transport-node-serial: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + serialport: + specifier: ^13.0.0 + version: 13.0.0 + + packages/transport-web-bluetooth: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + '@types/web-bluetooth': + specifier: npm:@types/web-bluetooth@^0.0.20 + version: 0.0.20 + + packages/transport-web-serial: + dependencies: + '@meshtastic/core': + specifier: workspace:* + version: link:../core + '@types/w3c-web-serial': + specifier: npm:@types/w3c-web-serial@^1.0.7 + version: 1.0.8 + + packages/ui: + dependencies: + '@radix-ui/react-collapsible': + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-separator': + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-slot': + specifier: ^1.2.3 + version: 1.2.3(@types/react@18.3.26)(react@19.2.0) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/react-router': + specifier: ^1.132.47 + version: 1.132.47(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.545.0 + version: 0.545.0(react@19.2.0) + react: + specifier: '>=19' + version: 19.2.0 + react-dom: + specifier: '>=19' + version: 19.2.0(react@19.2.0) + tailwind-merge: + specifier: ^2.6.0 + version: 2.6.0 + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.7 + version: 4.1.15 + '@tailwindcss/vite': + specifier: ^4.1.14 + version: 4.1.14(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) + '@types/react': + specifier: ^18.3.5 + version: 18.3.26 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.26) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.7.0(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) + publint: + specifier: ^0.3.14 + version: 0.3.15 + tailwindcss: + specifier: ^4.1.14 + version: 4.1.15 + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 + typescript: + specifier: ^5.6.3 + version: 5.9.3 + vite: + specifier: ^7.0.0 + version: 7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) + vite-plugin-dts: + specifier: ^4.5.4 + version: 4.5.4(@types/node@24.7.0)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) + vite-plugin-static-copy: + specifier: ^3.1.4 + version: 3.1.4(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2)) + vitest: + specifier: ^3.0.0 + version: 3.2.4(@types/node@24.7.0)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) + packages: '@adobe/css-tools@4.4.3': @@ -524,10 +524,6 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@angular/common@6.1.10': resolution: {integrity: sha512-73xxTSYJNKfiJ7C1Ajg+sz5l8y+blb/vNgHYg7O3yem5zLBnfPpidJ1UGg4W4d2Y+jwUVJbZKh8SKJarqAJVUQ==} peerDependencies: @@ -565,10 +561,6 @@ packages: resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} @@ -593,12 +585,6 @@ packages: resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.28.6': resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} engines: {node: '>=6.9.0'} @@ -620,10 +606,6 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.28.5': resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} @@ -666,12 +648,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.28.6': resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} engines: {node: '>=6.9.0'} @@ -702,10 +678,6 @@ packages: resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} @@ -930,12 +902,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.28.6': resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} engines: {node: '>=6.9.0'} @@ -1137,10 +1103,6 @@ packages: resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.6': resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} @@ -1231,312 +1193,156 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.25.11': resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.25.11': resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.25.11': resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.25.11': resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.25.11': resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.25.11': resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.11': resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.25.11': resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.25.11': resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.25.11': resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.25.11': resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.25.11': resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.25.11': resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.25.11': resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.25.11': resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.25.11': resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-arm64@0.25.11': resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.11': resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/openbsd-arm64@0.25.11': resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.11': resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openharmony-arm64@0.25.11': resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/sunos-x64@0.25.11': resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.25.11': resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.25.11': resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.25.11': resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -1587,9 +1393,6 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.10': - resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==} - '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} @@ -3837,11 +3640,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.2: - resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.25.4: resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3880,9 +3678,6 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - caniuse-lite@1.0.30001733: - resolution: {integrity: sha512-e4QKw/O2Kavj2VQTKZWrwzkt3IxOmIlU6ajRb6LP64LHpBo1J67k2Hi4Vu/TgJWsNtynurfS0uK3MaUTCPfu5Q==} - caniuse-lite@1.0.30001741: resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} @@ -4300,9 +4095,6 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.199: - resolution: {integrity: sha512-3gl0S7zQd88kCAZRO/DnxtBKuhMO4h0EaQIN3YgZfV6+pW+5+bf2AdQeHNESCoaQqo/gjGVYEf2YM4O5HJQqpQ==} - electron-to-chromium@1.5.217: resolution: {integrity: sha512-Pludfu5iBxp9XzNl0qq2G87hdD17ZV7h5T4n6rQXDi3nCyloBV3jreE9+8GC6g4X/5yxqVgXEURpcLtM0WS4jA==} @@ -4376,11 +4168,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} - engines: {node: '>=18'} - hasBin: true - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -4437,14 +4224,6 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -4930,9 +4709,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} @@ -5265,9 +5041,6 @@ packages: node-html-parser@5.4.2: resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.20: resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==} @@ -6049,11 +5822,6 @@ packages: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} - terser@5.43.1: - resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} - engines: {node: '>=10'} - hasBin: true - terser@5.46.0: resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} @@ -6090,10 +5858,6 @@ packages: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -6666,11 +6430,6 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@angular/common@6.1.10(@angular/core@6.1.10(rxjs@6.6.7)(zone.js@0.8.29))(rxjs@6.6.7)': dependencies: '@angular/core': 6.1.10(rxjs@6.6.7)(zone.js@0.8.29) @@ -6714,26 +6473,6 @@ snapshots: '@babel/compat-data@7.29.0': {} - '@babel/core@7.28.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -6772,7 +6511,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -6790,19 +6529,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -6836,13 +6562,6 @@ snapshots: '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.27.1': - dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.28.5': dependencies: '@babel/traverse': 7.29.0 @@ -6864,15 +6583,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -6893,7 +6603,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 '@babel/helper-plugin-utils@7.27.1': {} @@ -6908,15 +6618,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -6928,8 +6629,8 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -6949,11 +6650,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 @@ -7016,15 +6712,15 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': dependencies: @@ -7192,14 +6888,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -7360,14 +7048,14 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) transitivePeerDependencies: - supports-color @@ -7477,21 +7165,19 @@ snapshots: '@babel/types': 7.29.0 esutils: 2.0.3 - '@babel/preset-typescript@7.27.1(@babel/core@7.28.0)': + '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.4) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) transitivePeerDependencies: - supports-color '@babel/runtime@7.28.2': {} - '@babel/runtime@7.28.4': {} - '@babel/runtime@7.28.6': {} '@babel/template@7.27.2': @@ -7599,159 +7285,81 @@ snapshots: '@esbuild/aix-ppc64@0.25.11': optional: true - '@esbuild/aix-ppc64@0.25.9': - optional: true - '@esbuild/android-arm64@0.25.11': optional: true - '@esbuild/android-arm64@0.25.9': - optional: true - '@esbuild/android-arm@0.25.11': optional: true - '@esbuild/android-arm@0.25.9': - optional: true - '@esbuild/android-x64@0.25.11': optional: true - '@esbuild/android-x64@0.25.9': - optional: true - '@esbuild/darwin-arm64@0.25.11': optional: true - '@esbuild/darwin-arm64@0.25.9': - optional: true - '@esbuild/darwin-x64@0.25.11': optional: true - '@esbuild/darwin-x64@0.25.9': - optional: true - '@esbuild/freebsd-arm64@0.25.11': optional: true - '@esbuild/freebsd-arm64@0.25.9': - optional: true - '@esbuild/freebsd-x64@0.25.11': optional: true - '@esbuild/freebsd-x64@0.25.9': - optional: true - '@esbuild/linux-arm64@0.25.11': optional: true - '@esbuild/linux-arm64@0.25.9': - optional: true - '@esbuild/linux-arm@0.25.11': optional: true - '@esbuild/linux-arm@0.25.9': - optional: true - '@esbuild/linux-ia32@0.25.11': optional: true - '@esbuild/linux-ia32@0.25.9': - optional: true - '@esbuild/linux-loong64@0.25.11': optional: true - '@esbuild/linux-loong64@0.25.9': - optional: true - '@esbuild/linux-mips64el@0.25.11': optional: true - '@esbuild/linux-mips64el@0.25.9': - optional: true - '@esbuild/linux-ppc64@0.25.11': optional: true - '@esbuild/linux-ppc64@0.25.9': - optional: true - '@esbuild/linux-riscv64@0.25.11': optional: true - '@esbuild/linux-riscv64@0.25.9': - optional: true - '@esbuild/linux-s390x@0.25.11': optional: true - '@esbuild/linux-s390x@0.25.9': - optional: true - '@esbuild/linux-x64@0.25.11': optional: true - '@esbuild/linux-x64@0.25.9': - optional: true - '@esbuild/netbsd-arm64@0.25.11': optional: true - '@esbuild/netbsd-arm64@0.25.9': - optional: true - '@esbuild/netbsd-x64@0.25.11': optional: true - '@esbuild/netbsd-x64@0.25.9': - optional: true - '@esbuild/openbsd-arm64@0.25.11': optional: true - '@esbuild/openbsd-arm64@0.25.9': - optional: true - '@esbuild/openbsd-x64@0.25.11': optional: true - '@esbuild/openbsd-x64@0.25.9': - optional: true - '@esbuild/openharmony-arm64@0.25.11': optional: true - '@esbuild/openharmony-arm64@0.25.9': - optional: true - '@esbuild/sunos-x64@0.25.11': optional: true - '@esbuild/sunos-x64@0.25.9': - optional: true - '@esbuild/win32-arm64@0.25.11': optional: true - '@esbuild/win32-arm64@0.25.9': - optional: true - '@esbuild/win32-ia32@0.25.11': optional: true - '@esbuild/win32-ia32@0.25.9': - optional: true - '@esbuild/win32-x64@0.25.11': optional: true - '@esbuild/win32-x64@0.25.9': - optional: true - '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -7809,11 +7417,6 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/source-map@0.3.10': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -9458,12 +9061,12 @@ snapshots: '@tanstack/router-plugin@1.132.47(@tanstack/react-router@1.132.47(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2))': dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.4 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@tanstack/router-core': 1.132.47 '@tanstack/router-generator': 1.132.47 '@tanstack/router-utils': 1.132.31 @@ -9480,10 +9083,10 @@ snapshots: '@tanstack/router-utils@1.132.31': dependencies: - '@babel/core': 7.28.0 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.0 + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) ansis: 4.2.0 diff: 8.0.2 fast-glob: 3.3.3 @@ -11021,8 +10624,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.2 - caniuse-lite: 1.0.30001733 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001774 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11035,10 +10638,10 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: - '@babel/core': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.4 + '@babel/parser': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -11095,13 +10698,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.2: - dependencies: - caniuse-lite: 1.0.30001733 - electron-to-chromium: 1.5.199 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.2) - browserslist@4.25.4: dependencies: caniuse-lite: 1.0.30001741 @@ -11152,8 +10748,6 @@ snapshots: pascal-case: 3.1.2 tslib: 2.8.1 - caniuse-lite@1.0.30001733: {} - caniuse-lite@1.0.30001741: {} caniuse-lite@1.0.30001774: {} @@ -11465,8 +11059,6 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.199: {} - electron-to-chromium@1.5.217: {} electron-to-chromium@1.5.302: {} @@ -11605,35 +11197,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.11 '@esbuild/win32-x64': 0.25.11 - esbuild@0.25.9: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 - escalade@3.2.0: {} esprima@4.0.1: {} @@ -11681,10 +11244,6 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.6(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -11719,7 +11278,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs-extra@11.3.2: @@ -11896,7 +11455,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.43.1 + terser: 5.46.0 html-parse-stringify@3.0.1: dependencies: @@ -11920,7 +11479,7 @@ snapshots: i18next-browser-languagedetector@8.2.0: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.6 i18next-http-backend@3.0.2: dependencies: @@ -11930,7 +11489,7 @@ snapshots: i18next@25.5.3(typescript@5.9.3): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 optionalDependencies: typescript: 5.9.3 @@ -12171,12 +11730,6 @@ snapshots: json5@2.2.3: {} - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.0: dependencies: universalify: 2.0.1 @@ -12464,8 +12017,6 @@ snapshots: css-select: 4.3.0 he: 1.2.0 - node-releases@2.0.19: {} - node-releases@2.0.20: {} node-releases@2.0.27: {} @@ -12692,7 +12243,7 @@ snapshots: react-error-boundary@6.0.0(react@19.2.0): dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.6 react: 19.2.0 react-hook-form@7.64.0(react@19.2.0): @@ -12701,7 +12252,7 @@ snapshots: react-i18next@16.0.0(i18next@25.5.3(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 html-parse-stringify: 3.0.1 i18next: 25.5.3(typescript@5.9.3) react: 19.2.0 @@ -12902,7 +12453,7 @@ snapshots: dependencies: '@babel/generator': 7.28.3 '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 ast-kit: 2.1.2 birpc: 2.5.0 debug: 4.4.3 @@ -13327,9 +12878,9 @@ snapshots: tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.14): + tailwindcss-animate@1.0.7(tailwindcss@4.1.15): dependencies: - tailwindcss: 4.1.14 + tailwindcss: 4.1.15 tailwindcss@4.1.14: {} @@ -13354,13 +12905,6 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser@5.43.1: - dependencies: - '@jridgewell/source-map': 0.3.10 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -13395,11 +12939,6 @@ snapshots: tinyexec@1.0.2: {} - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.3) - picomatch: 4.0.3 - tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -13482,7 +13021,7 @@ snapshots: tsx@4.20.3: dependencies: - esbuild: 0.25.9 + esbuild: 0.25.11 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -13588,18 +13127,12 @@ snapshots: unplugin@2.3.5: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 upath@1.2.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.2): - dependencies: - browserslist: 4.25.2 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: browserslist: 4.25.4 @@ -13731,9 +13264,9 @@ snapshots: vite-plugin-pwa@1.0.3(vite@7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): dependencies: - debug: 4.4.1 + debug: 4.4.3 pretty-bytes: 6.1.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 vite: 7.1.11(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.20.3)(yaml@2.8.2) workbox-build: 7.3.0(@types/babel__core@7.20.5) workbox-window: 7.3.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4f5741ad..c5a248f0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ minimumReleaseAge: 2880 # package dependency library must be at least 2 days old packages: - "packages/*" + - "apps/*" diff --git a/tsconfig.json b/tsconfig.json index 0b4120ba..d359fc1f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "files": [], "references": [ - { "path": "packages/web" }, + { "path": "apps/web" }, { "path": "packages/transport-http" } ] }