{ "name": "meshtastic-web", "version": "1.0.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}' && eslint src/*.{ts,tsx}", "check": "unimported" }, "repository": { "type": "git", "url": "git+https://github.com/meshtastic/meshtastic-web.git" }, "bugs": { "url": "https://github.com/meshtastic/meshtastic-web/issues" }, "homepage": "https://meshtastic.org", "dependencies": { "@emeraldpay/hashicon-react": "^0.5.2", "@meshtastic/eslint-config": "^1.0.6", "@meshtastic/meshtasticjs": "^0.6.48", "@reduxjs/toolkit": "^1.7.2", "@tippyjs/react": "^4.2.6", "base64-js": "^1.5.1", "framer-motion": "^6.2.7", "mapbox-gl": "^2.7.0", "prettier": "^2.5.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-draggable": "^4.4.4", "react-error-boundary": "^3.1.4", "react-flow-renderer": "^10.0.0-next.39", "react-hook-form": "^7.27.1", "react-icons": "^4.3.1", "react-json-pretty": "^2.2.0", "react-multi-select-component": "^4.2.3", "react-redux": "^7.2.6", "react-use-clipboard": "^1.0.7", "rfc4648": "^1.5.1", "swr": "^1.2.2", "timeago-react": "^3.0.4", "tippy.js": "^6.3.7", "type-route": "^0.6.0", "vite-plugin-environment": "^1.1.0" }, "devDependencies": { "@hookform/devtools": "^4.0.2", "@types/mapbox-gl": "^2.6.1", "@types/react": "^17.0.39", "@types/react-dom": "^17.0.11", "@types/w3c-web-serial": "^1.0.2", "@types/web-bluetooth": "^0.0.12", "@vitejs/plugin-react": "^1.2.0", "autoprefixer": "^10.4.2", "gzipper": "^7.0.0", "postcss": "^8.4.6", "rollup-plugin-visualizer": "^5.5.4", "tailwindcss": "^3.0.23", "tar": "^6.1.11", "typescript": "^4.5.5", "unimported": "^1.19.1", "vite": "^2.8.4", "vite-plugin-cdn-import": "^0.3.5", "vite-plugin-pwa": "^0.11.13", "workbox-window": "^6.4.2" } }