feature-based React PWA with Hono backend: - feed from abgeordnetenwatch.de API (polls by topic + politician) - follow topics, search and follow politicians - geo-based politician discovery via Nominatim - push notifications for new polls via web-push - service worker with offline caching - deploy to Uberspace 8 (systemd, PostgreSQL, web backend proxy) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.5 KiB
JSON
60 lines
1.5 KiB
JSON
{
|
|
"name": "abgeordnetenwatch-pwa",
|
|
"version": "2026.03.01",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"lint": "biome check .",
|
|
"lint:fix": "biome check --fix .",
|
|
"prepare": "simple-git-hooks"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-router": "^1.120.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"lucide-react": "^0.575.0",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0",
|
|
"tailwind-merge": "^3.5.0",
|
|
"zod": "^3.24.3",
|
|
"zustand": "^5.0.5"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^1.9.4",
|
|
"@tailwindcss/vite": "^4.1.4",
|
|
"@tanstack/router-plugin": "^1.120.3",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@types/node": "^25.3.3",
|
|
"@types/react": "^19.1.2",
|
|
"@types/react-dom": "^19.1.2",
|
|
"@vitejs/plugin-react": "^4.5.1",
|
|
"jsdom": "^26.1.0",
|
|
"lint-staged": "^16.1.0",
|
|
"shadcn": "^3.8.5",
|
|
"simple-git-hooks": "^2.11.1",
|
|
"tailwindcss": "^4.1.4",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.8.3",
|
|
"vite": "^6.3.5",
|
|
"vite-plugin-pwa": "^1.0.0",
|
|
"vitest": "^3.2.1",
|
|
"workbox-core": "^7.4.0",
|
|
"workbox-expiration": "^7.4.0",
|
|
"workbox-precaching": "^7.3.0",
|
|
"workbox-routing": "^7.3.0",
|
|
"workbox-strategies": "^7.3.0"
|
|
},
|
|
"simple-git-hooks": {
|
|
"pre-commit": "bunx lint-staged"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx,js,json,css}": ["biome check --fix --no-errors-on-unmatched"]
|
|
}
|
|
}
|