{ "name": "openhamclock", "version": "15.6.2", "description": "Amateur Radio Dashboard - A modern web-based HamClock alternative", "main": "electron/main.js", "scripts": { "dev": "npx vite", "electron": "electron .", "electron-builder": "electron-builder", "build": "npx vite build", "preview": "npx vite preview", "prestart": "npm run build", "server": "node server.js", "start": "node server.js", "test": "npx vitest", "test:ui": "npx vitest --ui", "test:run": "npx vitest run", "test:coverage": "npx vitest run --coverage", "format": "npx prettier --write .", "format:check": "npx prettier --check .", "prepare": "husky || true" }, "dependencies": { "axios": "^1.6.2", "compression": "^1.7.4", "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.21.2", "express-rate-limit": "^7.5.0", "flexlayout-react": "^0.7.15", "helmet": "^8.0.0", "i18next": "^25.8.0", "i18next-browser-languagedetector": "^8.2.0", "mqtt": "^5.3.4", "node-fetch": "^2.7.0", "papaparse": "^5.5.3", "react-i18next": "^16.5.4", "satellite.js": "^5.0.0", "ws": "^8.14.2" }, "devDependencies": { "@playwright/test": "^1.58.1", "@vitejs/plugin-react": "^4.2.1", "electron": "^40.2.1", "electron-builder": "^26.7.0", "@vitest/ui": "^2.1.8", "husky": "^9.1.0", "jsdom": "^25.0.1", "lint-staged": "^15.2.0", "react": "^18.2.0", "react-dom": "^18.2.0", "vite": "^5.0.10", "vitest": "^2.1.8", "@vitest/coverage-v8": "^2.1.8", "prettier": "3.8.1" }, "lint-staged": { "*.{js,jsx,mjs,json,css,md}": "prettier --write" }, "keywords": [ "amateur-radio", "ham-radio", "hamclock", "dx-cluster", "propagation", "pota", "satellite-tracking", "pskreporter" ], "author": "K0CJH", "contributors": [ { "name": "HB3XCO", "email": "qsl@hb3xco.ch", "url": "https://seventrees.io" } ], "license": "MIT" }