{ "name": "bangui-frontend", "private": true, "version": "0.9.19-rc.2", "description": "BanGUI frontend — fail2ban web management interface", "type": "module", "scripts": { "dev": "vite", "generate:types": "openapi-typescript ./openapi.json -o src/types/generated.ts", "validate:types": "bash scripts/validate-types.sh", "build": "npm run generate:types && tsc --noEmit && vite build", "preview": "vite preview", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "typecheck": "tsc --noEmit", "format": "prettier --write 'src/**/*.{ts,tsx,css}'", "test": "vitest run --config vitest.config.ts", "coverage": "vitest run --config vitest.config.ts --coverage" }, "dependencies": { "@fluentui/react-components": "^9.55.0", "@fluentui/react-icons": "^2.0.257", "d3-geo": "^3.1.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.27.0", "recharts": "^3.8.0", "topojson-client": "^3.1.0", "web-vitals": "^4.0.0", "world-atlas": "^2.0.2" }, "devDependencies": { "@eslint/js": "^9.13.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", "@types/d3-geo": "^3.1.0", "@types/node": "^25.3.2", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@types/topojson-client": "^3.0.0", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", "@vitejs/plugin-react": "^4.3.3", "@vitest/coverage-v8": "^4.0.18", "eslint": "^9.13.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.0.0", "husky": "^9.1.7", "jiti": "^2.6.1", "jsdom": "^28.1.0", "openapi-typescript": "^7.13.0", "prettier": "^3.3.3", "typescript": "^5.6.3", "typescript-eslint": "^8.56.1", "vite": "^5.4.11", "vitest": "^4.0.18" } }