{ "name": "radioplayer-web", "private": true, "version": "0.1.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build && node scripts/stamp-dist-sw.mjs", "lint": "eslint \"src/**/*.{js,jsx,ts,tsx}\" \"scripts/**/*.{js,mjs,ts}\" \"tests/**/*.js\" \"*.js\" \"public/sw.js\"", "preview": "vite preview", "test": "vitest run", "test:watch": "vitest", "test:e2e": "playwright test", "check": "npm run lint && npm run typecheck && npm run test", "update:stations": "node scripts/update-stations.mjs", "update:stations:build": "npm run update:stations && npm run build", "radio:import": "tsx scripts/import-radio-stations.ts", "typecheck": "tsc --noEmit" }, "dependencies": { "idb": "^8.0.3", "react": "^19.2.7", "react-dom": "^19.2.7" }, "devDependencies": { "@eslint/js": "^10.0.1", "@playwright/test": "^1.61.1", "@types/node": "^24.13.2", "@vitejs/plugin-react": "^6.0.3", "eslint": "^10.6.0", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.3", "globals": "^17.7.0", "jsdom": "^29.1.1", "terser": "^5.48.0", "tsx": "^4.23.0", "typescript": "^5.9.3", "typescript-eslint": "^8.62.1", "vite": "^8.1.3", "vitest": "^4.1.9" } }