Browse Source

feat: add monorepo support

pull/682/head
Dan Ditomaso 1 year ago
parent
commit
b078e8f973
  1. 2
      .githooks/_/pre-commit
  2. 57
      deno.json
  3. 200
      deno.lock
  4. 0
      packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md
  5. 0
      packages/web/CONTRIBUTING_TRANSLATIONS.md
  6. 0
      packages/web/LICENSE
  7. 0
      packages/web/README.md
  8. 0
      packages/web/crowdin.yml
  9. 44
      packages/web/deno.json
  10. 7229
      packages/web/deno.lock
  11. 0
      packages/web/index.html
  12. 0
      packages/web/infra/.dockerignore
  13. 0
      packages/web/infra/Containerfile
  14. 0
      packages/web/infra/default.conf
  15. 16
      packages/web/package.json
  16. 0
      packages/web/postcss.config.cjs
  17. 0
      packages/web/public/Logo.svg
  18. 0
      packages/web/public/Logo_Black.svg
  19. 0
      packages/web/public/Logo_White.svg
  20. 0
      packages/web/public/apple-touch-icon.png
  21. 0
      packages/web/public/chirpy.svg
  22. 0
      packages/web/public/diy.svg
  23. 0
      packages/web/public/favicon.ico
  24. 0
      packages/web/public/heltec-ht62-esp32c3-sx1262.svg
  25. 0
      packages/web/public/heltec-mesh-node-t114-case.svg
  26. 0
      packages/web/public/heltec-mesh-node-t114.svg
  27. 0
      packages/web/public/heltec-v3-case.svg
  28. 0
      packages/web/public/heltec-v3.svg
  29. 0
      packages/web/public/heltec-vision-master-e213.svg
  30. 0
      packages/web/public/heltec-vision-master-e290.svg
  31. 0
      packages/web/public/heltec-vision-master-t190.svg
  32. 0
      packages/web/public/heltec-wireless-paper-V1_0.svg
  33. 0
      packages/web/public/heltec-wireless-paper.svg
  34. 0
      packages/web/public/heltec-wireless-tracker-V1-0.svg
  35. 0
      packages/web/public/heltec-wireless-tracker.svg
  36. 0
      packages/web/public/heltec-wsl-v3.svg
  37. 0
      packages/web/public/i18n/locales/bg-BG/channels.json
  38. 0
      packages/web/public/i18n/locales/bg-BG/commandPalette.json
  39. 0
      packages/web/public/i18n/locales/bg-BG/common.json
  40. 0
      packages/web/public/i18n/locales/bg-BG/dashboard.json
  41. 0
      packages/web/public/i18n/locales/bg-BG/deviceConfig.json
  42. 0
      packages/web/public/i18n/locales/bg-BG/dialog.json
  43. 0
      packages/web/public/i18n/locales/bg-BG/messages.json
  44. 0
      packages/web/public/i18n/locales/bg-BG/moduleConfig.json
  45. 0
      packages/web/public/i18n/locales/bg-BG/nodes.json
  46. 0
      packages/web/public/i18n/locales/bg-BG/ui.json
  47. 0
      packages/web/public/i18n/locales/cs-CZ/channels.json
  48. 0
      packages/web/public/i18n/locales/cs-CZ/commandPalette.json
  49. 0
      packages/web/public/i18n/locales/cs-CZ/common.json
  50. 0
      packages/web/public/i18n/locales/cs-CZ/dashboard.json
  51. 0
      packages/web/public/i18n/locales/cs-CZ/deviceConfig.json
  52. 0
      packages/web/public/i18n/locales/cs-CZ/dialog.json
  53. 0
      packages/web/public/i18n/locales/cs-CZ/messages.json
  54. 0
      packages/web/public/i18n/locales/cs-CZ/moduleConfig.json
  55. 0
      packages/web/public/i18n/locales/cs-CZ/nodes.json
  56. 0
      packages/web/public/i18n/locales/cs-CZ/ui.json
  57. 0
      packages/web/public/i18n/locales/de-DE/channels.json
  58. 0
      packages/web/public/i18n/locales/de-DE/commandPalette.json
  59. 0
      packages/web/public/i18n/locales/de-DE/common.json
  60. 0
      packages/web/public/i18n/locales/de-DE/dashboard.json
  61. 0
      packages/web/public/i18n/locales/de-DE/deviceConfig.json
  62. 0
      packages/web/public/i18n/locales/de-DE/dialog.json
  63. 0
      packages/web/public/i18n/locales/de-DE/messages.json
  64. 0
      packages/web/public/i18n/locales/de-DE/moduleConfig.json
  65. 0
      packages/web/public/i18n/locales/de-DE/nodes.json
  66. 0
      packages/web/public/i18n/locales/de-DE/ui.json
  67. 0
      packages/web/public/i18n/locales/en/channels.json
  68. 0
      packages/web/public/i18n/locales/en/commandPalette.json
  69. 0
      packages/web/public/i18n/locales/en/common.json
  70. 0
      packages/web/public/i18n/locales/en/dashboard.json
  71. 0
      packages/web/public/i18n/locales/en/deviceConfig.json
  72. 0
      packages/web/public/i18n/locales/en/dialog.json
  73. 0
      packages/web/public/i18n/locales/en/messages.json
  74. 0
      packages/web/public/i18n/locales/en/moduleConfig.json
  75. 0
      packages/web/public/i18n/locales/en/nodes.json
  76. 0
      packages/web/public/i18n/locales/en/ui.json
  77. 0
      packages/web/public/i18n/locales/es-ES/channels.json
  78. 0
      packages/web/public/i18n/locales/es-ES/commandPalette.json
  79. 0
      packages/web/public/i18n/locales/es-ES/common.json
  80. 0
      packages/web/public/i18n/locales/es-ES/dashboard.json
  81. 0
      packages/web/public/i18n/locales/es-ES/deviceConfig.json
  82. 0
      packages/web/public/i18n/locales/es-ES/dialog.json
  83. 0
      packages/web/public/i18n/locales/es-ES/messages.json
  84. 0
      packages/web/public/i18n/locales/es-ES/moduleConfig.json
  85. 0
      packages/web/public/i18n/locales/es-ES/nodes.json
  86. 0
      packages/web/public/i18n/locales/es-ES/ui.json
  87. 0
      packages/web/public/i18n/locales/fi-FI/channels.json
  88. 0
      packages/web/public/i18n/locales/fi-FI/commandPalette.json
  89. 0
      packages/web/public/i18n/locales/fi-FI/common.json
  90. 0
      packages/web/public/i18n/locales/fi-FI/dashboard.json
  91. 0
      packages/web/public/i18n/locales/fi-FI/deviceConfig.json
  92. 0
      packages/web/public/i18n/locales/fi-FI/dialog.json
  93. 0
      packages/web/public/i18n/locales/fi-FI/messages.json
  94. 0
      packages/web/public/i18n/locales/fi-FI/moduleConfig.json
  95. 0
      packages/web/public/i18n/locales/fi-FI/nodes.json
  96. 0
      packages/web/public/i18n/locales/fi-FI/ui.json
  97. 0
      packages/web/public/i18n/locales/fr-FR/channels.json
  98. 0
      packages/web/public/i18n/locales/fr-FR/commandPalette.json
  99. 0
      packages/web/public/i18n/locales/fr-FR/common.json
  100. 0
      packages/web/public/i18n/locales/fr-FR/dashboard.json

2
.githooks/_/pre-commit

@ -9,4 +9,4 @@ if [ -f "$SIMPLE_GIT_HOOKS_RC" ]; then
. "$SIMPLE_GIT_HOOKS_RC"
fi
deno task lint:fix && deno task format
cd packages/web && deno task lint:fix && deno task format

57
deno.json

@ -1,59 +1,24 @@
{
"imports": {
"@app/": "./src/",
"@pages/": "./src/pages/",
"@components/": "./src/components/",
"@core/": "./src/core/",
"@layouts/": "./src/layouts/",
"@std/path": "jsr:@std/path@^1.1.0"
},
"include": ["src", "./vite-env.d.ts"],
"compilerOptions": {
"lib": [
"DOM",
"DOM.Iterable",
"ESNext",
"deno.window",
"deno.ns"
],
"jsx": "react-jsx",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"strictNullChecks": true,
"types": [
"vite/client",
"node",
"npm:@types/w3c-web-serial",
"npm:@types/web-bluetooth"
"workspace": [
"./packages/web"
],
"strictPropertyInitialization": false
},
"fmt": {
"exclude": [
"src/routeTree.gen.ts",
"*.test.ts",
"*.test.tsx"
]
},
"imports": {},
"nodeModulesDir": "auto",
"lint": {
"exclude": [
"src/routeTree.gen.ts",
"*routeTree.gen.ts",
"*.test.ts",
"*.test.tsx"
],
"report": "pretty"
},
"fmt": {
"exclude": [
"routeTree.gen.ts",
"node_modules/",
"dist",
"build",
"coverage",
"out",
".vscode-test"
],
"*routeTree.gen.ts",
"*.test.ts",
"*.test.tsx"
]
},
"unstable": [
"sloppy-imports"
]

200
deno.lock

@ -27,25 +27,24 @@
"npm:@radix-ui/react-toggle-group@^1.1.9": "1.1.10_@[email protected]_@[email protected]__@[email protected][email protected][email protected][email protected]",
"npm:@radix-ui/react-tooltip@^1.2.4": "1.2.7_@[email protected]_@[email protected]__@[email protected][email protected][email protected][email protected]",
"npm:@tailwindcss/postcss@^4.1.5": "4.1.10",
"npm:@tanstack/react-router-devtools@^1.120.16": "1.121.27_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]",
"npm:@tanstack/react-router@^1.120.15": "[email protected][email protected][email protected]",
"npm:@tanstack/router-devtools@^1.120.15": "1.121.27_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]",
"npm:@tanstack/router-plugin@^1.120.15": "1.121.29_@[email protected][email protected][email protected][email protected][email protected]__@[email protected][email protected]_@[email protected][email protected][email protected][email protected]_@[email protected]",
"npm:@tanstack/react-router-devtools@^1.120.16": "1.121.34_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]",
"npm:@tanstack/react-router@^1.120.15": "[email protected][email protected][email protected]",
"npm:@tanstack/router-cli@^1.121.37": "1.121.37",
"npm:@tanstack/router-devtools@^1.120.15": "1.121.34_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]",
"npm:@tanstack/router-plugin@^1.120.15": "1.121.37_@[email protected][email protected][email protected][email protected][email protected]__@[email protected][email protected]_@[email protected][email protected][email protected][email protected]_@[email protected]",
"npm:@testing-library/jest-dom@^6.6.3": "6.6.3",
"npm:@testing-library/react@^16.3.0": "16.3.0_@[email protected]_@[email protected]_@[email protected]__@[email protected][email protected][email protected][email protected]",
"npm:@testing-library/user-event@^14.6.1": "14.6.1_@[email protected]",
"npm:@turf/turf@^7.2.0": "7.2.0",
"npm:@types/chrome@^0.0.318": "0.0.318",
"npm:@types/js-cookie@^3.0.6": "3.0.6",
"npm:@types/node@^22.15.3": "22.15.32",
"npm:@types/node@^24.0.4": "24.0.4",
"npm:@types/react-dom@^19.1.3": "19.1.6_@[email protected]",
"npm:@types/react@^19.1.2": "19.1.8",
"npm:@types/serviceworker@^0.0.133": "0.0.133",
"npm:@types/w3c-web-serial@*": "1.0.8",
"npm:@types/w3c-web-serial@^1.0.8": "1.0.8",
"npm:@types/web-bluetooth@*": "0.0.21",
"npm:@types/web-bluetooth@^0.0.21": "0.0.21",
"npm:@vitejs/plugin-react@^4.4.1": "4.[email protected]__@[email protected][email protected]_@[email protected]_@[email protected]",
"npm:@vitejs/plugin-react@^4.4.1": "4.[email protected]__@[email protected][email protected]_@[email protected]_@[email protected]",
"npm:autoprefixer@^10.4.21": "[email protected]",
"npm:base64-js@^1.5.1": "1.5.1",
"npm:class-variance-authority@~0.7.1": "0.7.1",
@ -78,10 +77,11 @@
"npm:tar@^7.4.3": "7.4.3",
"npm:testing-library@^0.0.2": "0.0.2_@[email protected]__@[email protected][email protected][email protected][email protected]_@[email protected][email protected][email protected]",
"npm:typescript@^5.8.3": "5.8.3",
"npm:vite-plugin-pwa@1": "[email protected]__@[email protected][email protected][email protected][email protected]__@[email protected][email protected][email protected]_@[email protected]",
"npm:vite@^6.3.4": "6.3.5_@[email protected][email protected]",
"npm:vitest@^3.1.2": "3.2.4_@[email protected][email protected][email protected]__@[email protected][email protected]",
"npm:zod@^3.25.62": "3.25.67",
"npm:vite-plugin-pwa@1": "[email protected]__@[email protected][email protected][email protected][email protected]__@[email protected][email protected][email protected]_@[email protected]",
"npm:vite@*": "7.0.0_@[email protected][email protected]",
"npm:vite@7": "7.0.0_@[email protected][email protected]",
"npm:vitest@^3.2.4": "3.2.4_@[email protected][email protected][email protected]__@[email protected][email protected]",
"npm:zod@^3.25.67": "3.25.67",
"npm:[email protected]": "5.0.5_@[email protected][email protected][email protected]"
},
"jsr": {
@ -1167,12 +1167,12 @@
],
"tarball": "https://npm.jsr.io/~/11/@jsr/meshtastic__js/2.6.0-0.tgz"
},
"@jsr/meshtastic__protobufs@2.6.2": {
"integrity": "sha512-bIENtFnUEru28GrAeSdiBS9skp0hN/3HZunMbF/IjvUrXOlx2fptKVj3b+pzjOWnLBZxllrByV/W+XDmrxqJ6g==",
"@jsr/meshtastic__protobufs@2.7.0": {
"integrity": "sha512-ndZhUyB/ADSyjJI+iSeSOoIKqNGZ2+ERVjfY0qnh4jgF740tFTwefC5mzZhOqDLbreGFYS79+429NtH5Ujdzdg==",
"dependencies": [
"@bufbuild/protobuf"
],
"tarball": "https://npm.jsr.io/~/11/@jsr/meshtastic__protobufs/2.6.2.tgz"
"tarball": "https://npm.jsr.io/~/11/@jsr/meshtastic__protobufs/2.7.0.tgz"
},
"@jsr/[email protected]": {
"integrity": "sha512-lmQKr3aIINKvtGROU4HchmSVqbZSbkIHqajowRRC8IAjsnR0zNTyxz210QyY4pFUF9hpcW3GRjwq5h/VO2JuGg==",
@ -2019,8 +2019,8 @@
"@radix-ui/[email protected]": {
"integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw=="
},
"@rolldown/[email protected]1": {
"integrity": "sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag=="
"@rolldown/[email protected]9": {
"integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA=="
},
"@rollup/[email protected]_@[email protected][email protected]": {
"integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
@ -2309,11 +2309,11 @@
"tailwindcss"
]
},
"@tanstack/[email protected].21": {
"integrity": "sha512-8BFGA7fpElicM1aEfZRDoEiWgMrNb/fVuJjSKv+nYtbp7jdtqt57fROi/uDGf6PLlgJbMoT3GWxqveZisOUEKA=="
"@tanstack/[email protected].34": {
"integrity": "sha512-YL8dGi5ZU+xvtav2boRlw4zrRghkY6hvdcmHhA0RGSJ/CBgzv+cbADW9eYJLx74XMZvIQ1pp6VMbrpXnnM5gHA=="
},
"@tanstack/[email protected].27_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]": {
"integrity": "sha512-hPOI1FGVWSf9U70eW7NevF/i68Id44KLTM7YjKtDcQi+MWEoxqvXiyXrl/HUAm1IBqLNwO5ktnEdcDuAG/efDg==",
"@tanstack/[email protected].34_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]": {
"integrity": "sha512-rqbgqTT5QaxeEX5oEI3K/9kDRRhCq3daszjZIWEWa9KKA8Fo4cE9F5OIQeXKdFu7QrIlHurlE7HB2uLkjgVviw==",
"dependencies": [
"@tanstack/react-router",
"@tanstack/router-devtools-core",
@ -2321,8 +2321,8 @@
"react-dom"
]
},
"@tanstack/[email protected].27[email protected][email protected][email protected]": {
"integrity": "sha512-zuLy8IC5fF52fzTTG61nMW2pMoK8LW4kSpeW21deb4gx/kMFKDOaYTe/soT63CO9/x0X6TYcbfjRj67038J0pQ==",
"@tanstack/[email protected].34[email protected][email protected][email protected]": {
"integrity": "sha512-nQYUXh459/YX9tDOGUqBb8yCiUw4JjcCf1o9wtb9fMxy3hnP0iQNU2TeV1A1N4KCGKXV3ZzkhpBb6sJe3kd43Q==",
"dependencies": [
"@tanstack/history",
"@tanstack/react-store",
@ -2343,16 +2343,25 @@
"use-sync-external-store"
]
},
"@tanstack/[email protected]": {
"integrity": "sha512-6lCQ3p7KhJ8Qy33TPRM6wIkQ1XKaikD5qqx3K2fPr3YtyDNefKQValbSAkb2CBB+hlDodfHNyxemE9alnQr55A==",
"@tanstack/[email protected]": {
"integrity": "sha512-Jc/YIBPBGgKt10wqquWMR3dntbUWSlhXaGCYFRb31SM+zRl+NSyOIhEO5zAm0oP4l605yyejs9gGj8BC9idn0Q==",
"dependencies": [
"@tanstack/router-generator",
"chokidar",
"yargs"
],
"bin": true
},
"@tanstack/[email protected]": {
"integrity": "sha512-CRH9dC8uLfFOKUGTbtOcMPv+weNVt2xs+me34KLX0Yja2yHG99oAUCBwamXsVQPpfjLFPYeJuKyo98+Mg+Ppeg==",
"dependencies": [
"@tanstack/history",
"@tanstack/store",
"tiny-invariant"
]
},
"@tanstack/[email protected]_@[email protected][email protected][email protected][email protected]": {
"integrity": "sha512-taeINd8CSIg+0916myI52HbQxjqfgxqHp68Ha6uxjXAHhHQKg/hBFCWpDs4Dwxi290mhT8j2oeXNyDaGMvVumQ==",
"@tanstack/[email protected].34_@[email protected][email protected][email protected][email protected]": {
"integrity": "sha512-WAFYxJ7qViKxqkFmf+VsrtMT4TfYqdfWTBRhVU/6qi0k/+7TO2EHjl8/aGBhg6q0/IwO9wyGvcbDhJxm0DwWag==",
"dependencies": [
"@tanstack/router-core",
"clsx",
@ -2361,8 +2370,8 @@
"tiny-invariant"
]
},
"@tanstack/[email protected].27_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]": {
"integrity": "sha512-hQ+8CwMYXCk+FmDPSG5YavWNmY2WuHvEGsbmu1KkwyZ8pwj0RUYCArzGpKx8c0GT7Y29eWmU+U0DNzmEKQILpA==",
"@tanstack/[email protected].34_@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]": {
"integrity": "sha512-si51q0B/rcUDPn4I9uULy117yVryaNsC/sn7fgwxPbGREfQZT45TmjzTqAYPm3q0lbZumysEGRVhTkZuriwTjg==",
"dependencies": [
"@tanstack/react-router",
"@tanstack/react-router-devtools",
@ -2372,8 +2381,8 @@
"react-dom"
]
},
"@tanstack/[email protected].27": {
"integrity": "sha512-tIb2w8cno85BPu+7v9IK6eki9LIAWJIEaZJvqOwbdhX+X7LgL8K1xMgIRZfcd4a+7VwJaf66cR/0GzIYlWOggg==",
"@tanstack/[email protected].37": {
"integrity": "sha512-d7IqEDf962uJFNPMWXfPr+kUpS3Cv72azZhBNMMVmZUox/h3VDGgQ6OUnWXHwnno4xqDoS/mx9huTUnItoewaw==",
"dependencies": [
"@tanstack/router-core",
"@tanstack/router-utils",
@ -2385,8 +2394,8 @@
"zod"
]
},
"@tanstack/[email protected].29_@[email protected][email protected][email protected][email protected][email protected]__@[email protected][email protected]_@[email protected][email protected][email protected][email protected]_@[email protected]": {
"integrity": "sha512-MFVuYQY89Qilu+OIcKpfgOwXFUbCm5eidwYv1V/JG8HuiOIUcC6kcIm9t2OPyCBeroA3ywJSTvoOWMiHe2ybOw==",
"@tanstack/[email protected].37_@[email protected][email protected][email protected][email protected][email protected]__@[email protected][email protected]_@[email protected][email protected][email protected][email protected]_@[email protected]": {
"integrity": "sha512-zrolQ1J53xDUdxdO6MLfvnpVINnkIfOnEDVeX3kwHKBGQ5zyGdbolVcVVrJIRYQS0SJoWesn8cf8j+z+u8nZtg==",
"dependencies": [
"@babel/core",
"@babel/plugin-syntax-jsx",
@ -3911,8 +3920,8 @@
"@types/pbf"
]
},
"@types/node@22.15.32": {
"integrity": "sha512-3jigKqgSjsH6gYZv2nEsqdXfZqIFGAV36XYYjf9KGZ3PSG+IhLecqPnI310RvjutyMwifE2hhhNEklOUrvx/wA==",
"@types/node@24.0.4": {
"integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==",
"dependencies": [
"undici-types"
]
@ -3972,8 +3981,8 @@
"maplibre-gl"
]
},
"@vitejs/plugin-react@4.[email protected]__@[email protected][email protected]_@[email protected]_@[email protected]": {
"integrity": "sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==",
"@vitejs/plugin-react@4.[email protected]__@[email protected][email protected]_@[email protected]_@[email protected]": {
"integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==",
"dependencies": [
"@babel/core",
"@babel/plugin-transform-react-jsx-self",
@ -3994,7 +4003,7 @@
"tinyrainbow"
]
},
"@vitest/[email protected]_vite@6.3.5__@[email protected][email protected]_@[email protected]": {
"@vitest/[email protected]_vite@7.0.0__@[email protected][email protected]_@[email protected]": {
"integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dependencies": [
"@vitest/spy",
@ -4218,8 +4227,8 @@
"fill-range"
]
},
"[email protected].0": {
"integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==",
"[email protected].1": {
"integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
"dependencies": [
"caniuse-lite",
"electron-to-chromium",
@ -4270,8 +4279,8 @@
"get-intrinsic"
]
},
"[email protected]4": {
"integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA=="
"[email protected]6": {
"integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw=="
},
"[email protected]": {
"integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
@ -4324,6 +4333,14 @@
"clsx"
]
},
"[email protected]": {
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dependencies": [
"string-width",
"strip-ansi",
"wrap-ansi"
]
},
"[email protected]": {
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="
},
@ -4519,8 +4536,11 @@
],
"bin": true
},
"[email protected]": {
"integrity": "sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ=="
"[email protected]": {
"integrity": "sha512-HE43yYdUUiJVjewV2A9EP8o89Kb4AqMKplMQP2IxEPUws1Etu/ZkdsgUDabUZ/WmbP4ZbvJDOcunvbBUPPIfmw=="
},
"[email protected]": {
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"[email protected]": {
"integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
@ -4528,8 +4548,8 @@
"once"
]
},
"[email protected].1": {
"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"[email protected].2": {
"integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==",
"dependencies": [
"graceful-fs",
"tapable"
@ -4787,6 +4807,9 @@
"[email protected]": {
"integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A=="
},
"[email protected]": {
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"[email protected]": {
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dependencies": [
@ -5079,6 +5102,9 @@
"call-bound"
]
},
"[email protected]": {
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"[email protected]": {
"integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
"dependencies": [
@ -5514,8 +5540,8 @@
"[email protected]": {
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="
},
"[email protected].0": {
"integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA=="
"[email protected].1": {
"integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ=="
},
"[email protected]": {
"integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
@ -5575,8 +5601,8 @@
"[email protected]": {
"integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw=="
},
"prettier@3.5.3": {
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"prettier@3.6.1": {
"integrity": "sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==",
"bin": true
},
"[email protected]": {
@ -5608,8 +5634,8 @@
"[email protected]": {
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"[email protected].0": {
"integrity": "sha512-sqo7otiDq5rA4djRkFI7IjLQqxRrLpIou0d3rqr03JJLUGf5raPh91xCio+lFFbQf0SlcVckStz0EmDEX3EeZA=="
"[email protected].1": {
"integrity": "sha512-u0zerMlMtKBgkDlDzWXG/7F7jo2En1d7bivC7V33HGqP62XxGiHGnbCJNkSCMxGfNlhXGBGEIamNMHbZ4P4mLg=="
},
"[email protected]": {
"integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ=="
@ -5838,6 +5864,9 @@
],
"bin": true
},
"[email protected]": {
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
},
"[email protected]": {
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
},
@ -6148,6 +6177,14 @@
"[email protected]": {
"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="
},
"[email protected]": {
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": [
"emoji-regex",
"is-fullwidth-code-point",
"strip-ansi"
]
},
"[email protected]": {
"integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dependencies": [
@ -6215,6 +6252,12 @@
"is-regexp"
]
},
"[email protected]": {
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": [
"ansi-regex"
]
},
"[email protected]": {
"integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="
},
@ -6472,8 +6515,8 @@
"which-boxed-primitive"
]
},
"undici-types@6.21.0": {
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="
"undici-types@7.8.0": {
"integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="
},
"[email protected]": {
"integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="
@ -6520,7 +6563,7 @@
"[email protected]": {
"integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
},
"[email protected][email protected].0": {
"[email protected][email protected].1": {
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"dependencies": [
"browserslist",
@ -6561,7 +6604,7 @@
"[email protected]": {
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"[email protected]_@types+node@22.15.32": {
"[email protected]_@types+node@24.0.4": {
"integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dependencies": [
"cac",
@ -6572,7 +6615,7 @@
],
"bin": true
},
"[email protected]_vite@6.3.5__@[email protected][email protected][email protected][email protected]__@[email protected][email protected][email protected]_@types+node@22.15.32": {
"[email protected]_vite@7.0.0__@[email protected][email protected][email protected][email protected]__@[email protected][email protected][email protected]_@types+node@24.0.4": {
"integrity": "sha512-X77jo0AOd5OcxmWj3WnVti8n7Kw2tBgV1c8MCXFclrSlDV23ePzv2eTDIALXI2Qo6nJ5pZJeZAuX0AawvRfoeA==",
"dependencies": [
"debug",
@ -6583,8 +6626,8 @@
"workbox-window"
]
},
"vite@6.3.5_@[email protected][email protected]": {
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
"vite@7.0.0_@[email protected][email protected]": {
"integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==",
"dependencies": [
"@types/node",
"esbuild",
@ -6602,7 +6645,7 @@
],
"bin": true
},
"[email protected]_@types+node@2[email protected][email protected]__@[email protected][email protected]": {
"[email protected]_@types+node@2[email protected][email protected]__@[email protected][email protected]": {
"integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
"dependencies": [
"@types/chai",
@ -6882,18 +6925,44 @@
"workbox-core"
]
},
"[email protected]": {
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dependencies": [
"[email protected]",
"string-width",
"strip-ansi"
]
},
"[email protected]": {
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"[email protected]": {
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"[email protected]": {
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
},
"[email protected]": {
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"[email protected]": {
"integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="
},
"[email protected]": {
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
},
"[email protected]": {
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dependencies": [
"cliui",
"escalade",
"get-caller-file",
"require-directory",
"string-width",
"y18n",
"yargs-parser"
]
},
"[email protected]": {
"integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw=="
},
@ -6915,6 +6984,8 @@
}
},
"workspace": {
"members": {
"packages/web": {
"dependencies": [
"jsr:@std/path@^1.1.0",
"npm:@types/w3c-web-serial@*",
@ -6949,6 +7020,7 @@
"npm:@tailwindcss/postcss@^4.1.5",
"npm:@tanstack/react-router-devtools@^1.120.16",
"npm:@tanstack/react-router@^1.120.15",
"npm:@tanstack/router-cli@^1.121.37",
"npm:@tanstack/router-devtools@^1.120.15",
"npm:@tanstack/router-plugin@^1.120.15",
"npm:@testing-library/jest-dom@^6.6.3",
@ -6957,7 +7029,7 @@
"npm:@turf/turf@^7.2.0",
"npm:@types/chrome@^0.0.318",
"npm:@types/js-cookie@^3.0.6",
"npm:@types/node@^22.15.3",
"npm:@types/node@^24.0.4",
"npm:@types/react-dom@^19.1.3",
"npm:@types/react@^19.1.2",
"npm:@types/serviceworker@^0.0.133",
@ -6997,11 +7069,13 @@
"npm:testing-library@^0.0.2",
"npm:typescript@^5.8.3",
"npm:vite-plugin-pwa@1",
"npm:vite@^6.3.4",
"npm:vitest@^3.1.2",
"npm:vite@7",
"npm:vitest@^3.2.4",
"npm:zod@^3.25.67",
"npm:[email protected]"
]
}
}
}
}
}

0
CONTRIBUTING_I18N_DEVELOPER_GUIDE.md → packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md

0
CONTRIBUTING_TRANSLATIONS.md → packages/web/CONTRIBUTING_TRANSLATIONS.md

0
LICENSE → packages/web/LICENSE

0
README.md → packages/web/README.md

0
crowdin.yml → packages/web/crowdin.yml

44
packages/web/deno.json

@ -0,0 +1,44 @@
{
"imports": {
"@app/": "./src/",
"@public/": "./public/",
"@pages/": "./src/pages/",
"@components/": "./src/components/",
"@core/": "./src/core/",
"@layouts/": "./src/layouts/",
"@std/path": "jsr:@std/path@^1.1.0"
},
"include": ["src", "./vite-env.d.ts"],
"compilerOptions": {
"lib": [
"DOM",
"DOM.Iterable",
"ESNext",
"deno.window",
"deno.ns"
],
"jsx": "react-jsx",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"strictNullChecks": true,
"types": [
"vite/client",
"node",
"npm:@types/w3c-web-serial",
"npm:@types/web-bluetooth"
],
"strictPropertyInitialization": false
},
"exclude": [
"routeTree.gen.ts",
"node_modules/",
"dist",
"build",
"coverage",
"out",
".vscode-test"
]
}

7229
packages/web/deno.lock

File diff suppressed because it is too large

0
index.html → packages/web/index.html

0
infra/.dockerignore → packages/web/infra/.dockerignore

0
infra/Containerfile → packages/web/infra/Containerfile

0
infra/default.conf → packages/web/infra/default.conf

16
package.json → packages/web/package.json

@ -15,7 +15,8 @@
"test": "deno run -A npm:vitest",
"check": "deno check",
"preview": "deno run -A npm:vite preview",
"package": "gzipper c -i html,js,css,png,ico,svg,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ."
"generate:routes": "deno run -A npm:@tanstack/router-cli generate --outDir src/ routes --rootRoutePath /",
"package": "gzipper c -i html,js,css,png,ico,svg,json,webmanifest,txt dist dist/output && tar -cvf dist/build.tar -C ./dist/output/ ."
},
"repository": {
"type": "git",
@ -27,12 +28,6 @@
"simple-git-hooks": {
"pre-commit": "deno task lint:fix && deno task format"
},
"lint-staged": {
"*.{ts,tsx}": [
"deno task lint:fix",
"deno task format"
]
},
"homepage": "https://meshtastic.org",
"dependencies": {
"@bufbuild/protobuf": "^2.2.5",
@ -61,8 +56,10 @@
"@radix-ui/react-tooltip": "^1.2.4",
"@tanstack/react-router": "^1.120.15",
"@tanstack/react-router-devtools": "^1.120.16",
"@tanstack/router-cli": "^1.121.37",
"@tanstack/router-devtools": "^1.120.15",
"@turf/turf": "^7.2.0",
"@types/node": "^24.0.4",
"@types/web-bluetooth": "^0.0.21",
"base64-js": "^1.5.1",
"class-variance-authority": "^0.7.1",
@ -95,7 +92,6 @@
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/chrome": "^0.0.318",
"@types/node": "^22.15.3",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.3",
"@types/serviceworker": "^0.0.133",
@ -113,8 +109,8 @@
"tar": "^7.4.3",
"testing-library": "^0.0.2",
"typescript": "^5.8.3",
"vite": "^6.3.4",
"vite": "^7.0.0",
"vite-plugin-pwa": "^1.0.0",
"vitest": "^3.1.2"
"vitest": "^3.2.4"
}
}

0
postcss.config.cjs → packages/web/postcss.config.cjs

0
public/Logo.svg → packages/web/public/Logo.svg

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
public/Logo_Black.svg → packages/web/public/Logo_Black.svg

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
public/Logo_White.svg → packages/web/public/Logo_White.svg

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
public/apple-touch-icon.png → packages/web/public/apple-touch-icon.png

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

0
public/chirpy.svg → packages/web/public/chirpy.svg

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
public/diy.svg → packages/web/public/diy.svg

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

0
public/favicon.ico → packages/web/public/favicon.ico

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
public/heltec-ht62-esp32c3-sx1262.svg → packages/web/public/heltec-ht62-esp32c3-sx1262.svg

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

0
public/heltec-mesh-node-t114-case.svg → packages/web/public/heltec-mesh-node-t114-case.svg

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

0
public/heltec-mesh-node-t114.svg → packages/web/public/heltec-mesh-node-t114.svg

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

0
public/heltec-v3-case.svg → packages/web/public/heltec-v3-case.svg

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
public/heltec-v3.svg → packages/web/public/heltec-v3.svg

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

0
public/heltec-vision-master-e213.svg → packages/web/public/heltec-vision-master-e213.svg

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

0
public/heltec-vision-master-e290.svg → packages/web/public/heltec-vision-master-e290.svg

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

0
public/heltec-vision-master-t190.svg → packages/web/public/heltec-vision-master-t190.svg

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
public/heltec-wireless-paper-V1_0.svg → packages/web/public/heltec-wireless-paper-V1_0.svg

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

0
public/heltec-wireless-paper.svg → packages/web/public/heltec-wireless-paper.svg

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

0
public/heltec-wireless-tracker-V1-0.svg → packages/web/public/heltec-wireless-tracker-V1-0.svg

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

0
public/heltec-wireless-tracker.svg → packages/web/public/heltec-wireless-tracker.svg

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

0
public/heltec-wsl-v3.svg → packages/web/public/heltec-wsl-v3.svg

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

0
public/i18n/locales/bg-BG/channels.json → packages/web/public/i18n/locales/bg-BG/channels.json

0
public/i18n/locales/bg-BG/commandPalette.json → packages/web/public/i18n/locales/bg-BG/commandPalette.json

0
public/i18n/locales/bg-BG/common.json → packages/web/public/i18n/locales/bg-BG/common.json

0
public/i18n/locales/bg-BG/dashboard.json → packages/web/public/i18n/locales/bg-BG/dashboard.json

0
public/i18n/locales/bg-BG/deviceConfig.json → packages/web/public/i18n/locales/bg-BG/deviceConfig.json

0
public/i18n/locales/bg-BG/dialog.json → packages/web/public/i18n/locales/bg-BG/dialog.json

0
public/i18n/locales/bg-BG/messages.json → packages/web/public/i18n/locales/bg-BG/messages.json

0
public/i18n/locales/bg-BG/moduleConfig.json → packages/web/public/i18n/locales/bg-BG/moduleConfig.json

0
public/i18n/locales/bg-BG/nodes.json → packages/web/public/i18n/locales/bg-BG/nodes.json

0
public/i18n/locales/bg-BG/ui.json → packages/web/public/i18n/locales/bg-BG/ui.json

0
public/i18n/locales/cs-CZ/channels.json → packages/web/public/i18n/locales/cs-CZ/channels.json

0
public/i18n/locales/cs-CZ/commandPalette.json → packages/web/public/i18n/locales/cs-CZ/commandPalette.json

0
public/i18n/locales/cs-CZ/common.json → packages/web/public/i18n/locales/cs-CZ/common.json

0
public/i18n/locales/cs-CZ/dashboard.json → packages/web/public/i18n/locales/cs-CZ/dashboard.json

0
public/i18n/locales/cs-CZ/deviceConfig.json → packages/web/public/i18n/locales/cs-CZ/deviceConfig.json

0
public/i18n/locales/cs-CZ/dialog.json → packages/web/public/i18n/locales/cs-CZ/dialog.json

0
public/i18n/locales/cs-CZ/messages.json → packages/web/public/i18n/locales/cs-CZ/messages.json

0
public/i18n/locales/cs-CZ/moduleConfig.json → packages/web/public/i18n/locales/cs-CZ/moduleConfig.json

0
public/i18n/locales/cs-CZ/nodes.json → packages/web/public/i18n/locales/cs-CZ/nodes.json

0
public/i18n/locales/cs-CZ/ui.json → packages/web/public/i18n/locales/cs-CZ/ui.json

0
public/i18n/locales/de-DE/channels.json → packages/web/public/i18n/locales/de-DE/channels.json

0
public/i18n/locales/de-DE/commandPalette.json → packages/web/public/i18n/locales/de-DE/commandPalette.json

0
public/i18n/locales/de-DE/common.json → packages/web/public/i18n/locales/de-DE/common.json

0
public/i18n/locales/de-DE/dashboard.json → packages/web/public/i18n/locales/de-DE/dashboard.json

0
public/i18n/locales/de-DE/deviceConfig.json → packages/web/public/i18n/locales/de-DE/deviceConfig.json

0
public/i18n/locales/de-DE/dialog.json → packages/web/public/i18n/locales/de-DE/dialog.json

0
public/i18n/locales/de-DE/messages.json → packages/web/public/i18n/locales/de-DE/messages.json

0
public/i18n/locales/de-DE/moduleConfig.json → packages/web/public/i18n/locales/de-DE/moduleConfig.json

0
public/i18n/locales/de-DE/nodes.json → packages/web/public/i18n/locales/de-DE/nodes.json

0
public/i18n/locales/de-DE/ui.json → packages/web/public/i18n/locales/de-DE/ui.json

0
public/i18n/locales/en/channels.json → packages/web/public/i18n/locales/en/channels.json

0
public/i18n/locales/en/commandPalette.json → packages/web/public/i18n/locales/en/commandPalette.json

0
public/i18n/locales/en/common.json → packages/web/public/i18n/locales/en/common.json

0
public/i18n/locales/en/dashboard.json → packages/web/public/i18n/locales/en/dashboard.json

0
public/i18n/locales/en/deviceConfig.json → packages/web/public/i18n/locales/en/deviceConfig.json

0
public/i18n/locales/en/dialog.json → packages/web/public/i18n/locales/en/dialog.json

0
public/i18n/locales/en/messages.json → packages/web/public/i18n/locales/en/messages.json

0
public/i18n/locales/en/moduleConfig.json → packages/web/public/i18n/locales/en/moduleConfig.json

0
public/i18n/locales/en/nodes.json → packages/web/public/i18n/locales/en/nodes.json

0
public/i18n/locales/en/ui.json → packages/web/public/i18n/locales/en/ui.json

0
public/i18n/locales/es-ES/channels.json → packages/web/public/i18n/locales/es-ES/channels.json

0
public/i18n/locales/es-ES/commandPalette.json → packages/web/public/i18n/locales/es-ES/commandPalette.json

0
public/i18n/locales/es-ES/common.json → packages/web/public/i18n/locales/es-ES/common.json

0
public/i18n/locales/es-ES/dashboard.json → packages/web/public/i18n/locales/es-ES/dashboard.json

0
public/i18n/locales/es-ES/deviceConfig.json → packages/web/public/i18n/locales/es-ES/deviceConfig.json

0
public/i18n/locales/es-ES/dialog.json → packages/web/public/i18n/locales/es-ES/dialog.json

0
public/i18n/locales/es-ES/messages.json → packages/web/public/i18n/locales/es-ES/messages.json

0
public/i18n/locales/es-ES/moduleConfig.json → packages/web/public/i18n/locales/es-ES/moduleConfig.json

0
public/i18n/locales/es-ES/nodes.json → packages/web/public/i18n/locales/es-ES/nodes.json

0
public/i18n/locales/es-ES/ui.json → packages/web/public/i18n/locales/es-ES/ui.json

0
public/i18n/locales/fi-FI/channels.json → packages/web/public/i18n/locales/fi-FI/channels.json

0
public/i18n/locales/fi-FI/commandPalette.json → packages/web/public/i18n/locales/fi-FI/commandPalette.json

0
public/i18n/locales/fi-FI/common.json → packages/web/public/i18n/locales/fi-FI/common.json

0
public/i18n/locales/fi-FI/dashboard.json → packages/web/public/i18n/locales/fi-FI/dashboard.json

0
public/i18n/locales/fi-FI/deviceConfig.json → packages/web/public/i18n/locales/fi-FI/deviceConfig.json

0
public/i18n/locales/fi-FI/dialog.json → packages/web/public/i18n/locales/fi-FI/dialog.json

0
public/i18n/locales/fi-FI/messages.json → packages/web/public/i18n/locales/fi-FI/messages.json

0
public/i18n/locales/fi-FI/moduleConfig.json → packages/web/public/i18n/locales/fi-FI/moduleConfig.json

0
public/i18n/locales/fi-FI/nodes.json → packages/web/public/i18n/locales/fi-FI/nodes.json

0
public/i18n/locales/fi-FI/ui.json → packages/web/public/i18n/locales/fi-FI/ui.json

0
public/i18n/locales/fr-FR/channels.json → packages/web/public/i18n/locales/fr-FR/channels.json

0
public/i18n/locales/fr-FR/commandPalette.json → packages/web/public/i18n/locales/fr-FR/commandPalette.json

0
public/i18n/locales/fr-FR/common.json → packages/web/public/i18n/locales/fr-FR/common.json

0
public/i18n/locales/fr-FR/dashboard.json → packages/web/public/i18n/locales/fr-FR/dashboard.json

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save