{ "version": "2.3.3-0", "description": "Meshtastic web client", "license": "GPL-3.0-only", "homepage": "https://meshtastic.org", "repository": "https://github.com/meshtastic/web", "compilerOptions": { "lib": [ "DOM", "DOM.Iterable", "ESNext", "deno.window", "deno.ns" ], "jsx": "react-jsx", "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "strictNullChecks": true, "strictPropertyInitialization": false, "types": [ "vite/client", "@types/node", "@types/web-bluetooth", "@types/w3c-web-serial" ] }, "imports": { "@app/": "./src/", "@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.4", "@pages/": "./src/pages/", "@components/": "./src/components/", "@core/": "./src/core/", "@layouts/": "./src/layouts/", "@bufbuild/protobuf": "npm:@bufbuild/protobuf@^2.2.3", "@meshtastic/core": "npm:@jsr/meshtastic__core@2.6.0-0", "@meshtastic/js": "npm:@jsr/meshtastic__js@2.6.0-0", "@meshtastic/transport-http": "npm:@jsr/meshtastic__transport-http", "@meshtastic/transport-web-serial": "npm:@jsr/meshtastic__transport-web-serial", "@noble/curves": "npm:@noble/curves@^1.8.1", "@radix-ui/react-accordion": "npm:@radix-ui/react-accordion@^1.2.3", "@radix-ui/react-checkbox": "npm:@radix-ui/react-checkbox@^1.1.4", "@radix-ui/react-dialog": "npm:@radix-ui/react-dialog@^1.1.6", "@radix-ui/react-dropdown-menu": "npm:@radix-ui/react-dropdown-menu@^2.1.6", "@radix-ui/react-label": "npm:@radix-ui/react-label@^2.1.2", "@radix-ui/react-menubar": "npm:@radix-ui/react-menubar@^1.1.6", "@radix-ui/react-popover": "npm:@radix-ui/react-popover@^1.1.6", "@radix-ui/react-scroll-area": "npm:@radix-ui/react-scroll-area@^1.2.3", "@radix-ui/react-select": "npm:@radix-ui/react-select@^2.1.6", "@radix-ui/react-separator": "npm:@radix-ui/react-separator@^1.1.2", "@radix-ui/react-switch": "npm:@radix-ui/react-switch@^1.1.3", "@radix-ui/react-tabs": "npm:@radix-ui/react-tabs@^1.1.3", "@radix-ui/react-toast": "npm:@radix-ui/react-toast@^1.2.6", "@radix-ui/react-tooltip": "npm:@radix-ui/react-tooltip@^1.1.8", "@turf/turf": "npm:@turf/turf@^7.2.0", "base64-js": "npm:base64-js@^1.5.1", "class-validator": "npm:class-validator@^0.14.1", "class-variance-authority": "npm:class-variance-authority@^0.7.1", "clsx": "npm:clsx@^2.1.1", "cmdk": "npm:cmdk@^1.0.4", "crypto-random-string": "npm:crypto-random-string@^5.0.0", "immer": "npm:immer@^10.1.1", "js-cookie": "npm:js-cookie@^3.0.5", "lucide-react": "npm:lucide-react@^0.477.0", "maplibre-gl": "npm:maplibre-gl@5.1.1", "react": "npm:react@^19.0.0", "react-dom": "npm:react-dom@^19.0.0", "react-error-boundary": "npm:react-error-boundary@^5.0.0", "react-hook-form": "npm:react-hook-form@^7.54.2", "react-map-gl": "npm:react-map-gl@8.0.1", "react-qrcode-logo": "npm:react-qrcode-logo@^3.0.0", "react-scan": "npm:react-scan@^0.2.8", "rfc4648": "npm:rfc4648@^1.5.4", "zustand": "npm:zustand@5.0.3", "@tailwindcss/postcss": "npm:@tailwindcss/postcss@^4.0.9", "@testing-library/jest-dom": "npm:@testing-library/jest-dom@^6.6.3", "@testing-library/react": "npm:@testing-library/react@^16.2.0", "@testing-library/user-event": "npm:@testing-library/user-event@^14.6.1", "@types/chrome": "npm:@types/chrome@^0.0.307", "@types/js-cookie": "npm:@types/js-cookie@^3.0.6", "@types/node": "npm:@types/node@^22.13.7", "@types/react": "npm:@types/react@^19.0.10", "@types/react-dom": "npm:@types/react-dom@^19.0.4", "@types/serviceworker": "npm:@types/serviceworker@^0.0.123", "@types/w3c-web-serial": "npm:@types/w3c-web-serial@^1.0.8", "@types/web-bluetooth": "npm:@types/web-bluetooth@^0.0.21", "@vitejs/plugin-react": "npm:@vitejs/plugin-react@^4.3.4", "autoprefixer": "npm:autoprefixer@^10.4.20", "gzipper": "npm:gzipper@^8.2.0", "happy-dom": "npm:happy-dom@^17.2.2", "postcss": "npm:postcss@^8.5.3", "simple-git-hooks": "npm:simple-git-hooks@^2.11.1", "tailwind-merge": "npm:tailwind-merge@^3.0.2", "tailwindcss": "npm:tailwindcss@^4.0.9", "tailwindcss-animate": "npm:tailwindcss-animate@^1.0.7", "tar": "npm:tar@^7.4.3", "testing-library": "npm:testing-library@^0.0.2", "typescript": "npm:typescript@^5.8.2", "vite": "npm:vite@^6.2.0", "vitest": "npm:vitest@^3.0.7", "vite-plugin-pwa": "npm:vite-plugin-pwa@^0.21.1" }, "tasks": { "install:hooks": "deno run -A npm:simple-git-hooks", "build": "deno run -A --node-modules-dir npm:vite build", "build:analyze": "BUNDLE_ANALYZE=true deno task build", "lint": "deno lint src/", "lint:fix": "deno lint --fix src/", "format": "deno fmt src/", "dev": "deno run -A --node-modules-dir npm:vite", "dev:scan": "VITE_DEBUG_SCAN=true deno task dev", "test": "deno run -A --node-modules-dir npm:vitest", "preview": "deno run -A --node-modules-dir 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/ ." }, "lint": { "files": { "include": ["src/"] } }, "fmt": { "files": { "include": ["src/"] } } }