{ "name": "rideaware-trainer", "private": true, "version": "1.0.0", "description": "RideAware Indoor Cycling Trainer", "author": "RideAware ", "type": "module", "main": "electron/main.cjs", "scripts": { "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", "electron:dev": "concurrently \"npm run dev\" \"wait-on http://localhost:5173 && cross-env ELECTRON_IS_DEV=1 electron .\"", "electron:build": "npm run build && electron-builder --publish never", "electron:build:win": "npm run build && electron-builder --win --publish never", "electron:build:mac": "npm run build && electron-builder --mac --publish never", "electron:build:linux": "npm run build && electron-builder --linux --publish never" }, "dependencies": { "react": "^19.2.0", "react-dom": "^19.2.0" }, "devDependencies": { "@eslint/js": "^9.39.1", "@tailwindcss/vite": "^4.1.18", "@types/node": "^24.10.1", "@types/react": "^19.2.5", "@types/react-dom": "^19.2.3", "@types/web-bluetooth": "^0.0.21", "@vitejs/plugin-react": "^5.1.1", "concurrently": "^9.1.0", "cross-env": "^7.0.3", "electron": "^32.0.0", "electron-builder": "^25.1.8", "electron-rebuild": "^3.2.9", "eslint": "^9.39.1", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "globals": "^16.5.0", "tailwindcss": "^4.1.18", "typescript": "~5.9.3", "typescript-eslint": "^8.46.4", "vite": "^7.2.4", "wait-on": "^8.0.0" }, "build": { "appId": "org.rideaware.trainer", "productName": "RideAware Trainer", "directories": { "output": "release" }, "files": [ "dist/**/*", "electron/**/*", "package.json" ], "protocols": [ { "name": "RideAware Trainer Protocol", "schemes": [ "rideaware" ] } ], "win": { "target": [ "nsis" ], "icon": "build/icon.ico" }, "mac": { "target": [ "dmg", "zip" ], "icon": "build/icon.icns", "category": "public.app-category.healthcare-fitness" }, "linux": { "target": [ "AppImage", "deb", "rpm" ], "icon": "build/icon.png", "category": "Utility" }, "nsis": { "oneClick": false, "allowToChangeInstallationDirectory": true, "perMachine": false, "createDesktopShortcut": true, "createStartMenuShortcut": true } } }