{ "name": "meshtastic-web", "version": "1.0", "description": "Meshtastic web client", "license": "GPL-3.0-only", "scripts": { "dev": "vite", "build": "tsc && vite build", "preview": "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/ $(ls ./dist/output/)", "format": "prettier --write 'src/**/*.{ts,tsx}'", "lint": "eslint 'src/**/*.{ts,tsx}'" }, "dependencies": { "@headlessui/react": "^1.4.2", "@meshtastic/meshtasticjs": "^0.6.32", "@reduxjs/toolkit": "^1.6.2", "boring-avatars": "^1.5.8", "i18next": "^21.5.5", "i18next-browser-languagedetector": "^6.1.2", "mapbox-gl": "^2.6.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-file-icon": "^1.1.0", "react-hook-form": "^7.21.0", "react-i18next": "^11.14.3", "react-icons": "^4.3.1", "react-json-pretty": "^2.2.0", "react-qr-code": "^2.0.3", "react-redux": "^7.2.6", "rfc4648": "^1.5.0", "swr": "^1.1.0", "timeago-react": "^3.0.4", "type-route": "^0.6.0", "use-breakpoint": "^3.0.0" }, "devDependencies": { "@types/mapbox-gl": "^2.6.0", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/react-file-icon": "^1.0.1", "@types/w3c-web-serial": "^1.0.2", "@types/web-bluetooth": "^0.0.11", "@typescript-eslint/eslint-plugin": "^5.6.0", "@typescript-eslint/parser": "^5.6.0", "@verypossible/eslint-config": "^1.6.1", "@vitejs/plugin-react": "^1.1.1", "autoprefixer": "^10.4.0", "babel-plugin-module-resolver": "^4.1.0", "eslint": "8.4.1", "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-babel-module": "^5.3.1", "eslint-import-resolver-typescript": "^2.5.0", "eslint-plugin-import": "^2.25.3", "eslint-plugin-react": "^7.27.1", "eslint-plugin-react-hooks": "^4.3.0", "gzipper": "^6.0.0", "postcss": "^8.4.4", "prettier": "^2.5.1", "tailwindcss": "^3.0.0-alpha.2", "tar": "^6.1.11", "typescript": "^4.5.2", "vite": "^2.7.0", "vite-plugin-cdn-import": "^0.3.5", "vite-plugin-pwa": "^0.11.10", "workbox-window": "^6.4.2" } }