Spaces:
Sleeping
Sleeping
| { | |
| "name": "@operation-hope/paper-trail-web", | |
| "version": "1.0.0", | |
| "description": "Political campaign finance transparency tool for corruptionwatch.us", | |
| "author": "Operation-Hope", | |
| "license": "MIT", | |
| "repository": { | |
| "type": "git", | |
| "url": "git+https://github.com/Operation-Hope/paper-trail-web.git" | |
| }, | |
| "homepage": "https://github.com/Operation-Hope/paper-trail-web#readme", | |
| "bugs": { | |
| "url": "https://github.com/Operation-Hope/paper-trail-web/issues" | |
| }, | |
| "private": false, | |
| "type": "module", | |
| "keywords": [ | |
| "campaign-finance", | |
| "political-transparency", | |
| "corruption-watch", | |
| "democracy", | |
| "politics", | |
| "civic-tech", | |
| "react", | |
| "typescript", | |
| "vite", | |
| "tailwindcss" | |
| ], | |
| "scripts": { | |
| "dev": "vite", | |
| "dev:mocks": "VITE_ENABLE_MOCKS=true vite", | |
| "build": "tsc -b && vite build", | |
| "lint": "eslint .", | |
| "preview": "vite preview", | |
| "test": "vitest", | |
| "test:ui": "vitest --ui", | |
| "test:run": "vitest run", | |
| "test:coverage": "vitest run --coverage", | |
| "knip": "knip", | |
| "type-check": "tsc --noEmit", | |
| "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css}\"", | |
| "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css}\"", | |
| "fix:tailwind-data-attr": "node scripts/fix-tailwind-data-attr.js", | |
| "prepare": "husky" | |
| }, | |
| "engines": { | |
| "node": ">=24.0.0", | |
| "pnpm": ">=9.0.0" | |
| }, | |
| "dependencies": { | |
| "@radix-ui/react-avatar": "^1.1.11", | |
| "@radix-ui/react-checkbox": "^1.3.3", | |
| "@radix-ui/react-collapsible": "^1.1.12", | |
| "@radix-ui/react-dialog": "^1.1.15", | |
| "@radix-ui/react-label": "^2.1.8", | |
| "@radix-ui/react-popover": "^1.1.15", | |
| "@radix-ui/react-select": "^2.2.6", | |
| "@radix-ui/react-separator": "^1.1.8", | |
| "@radix-ui/react-slot": "^1.2.4", | |
| "@radix-ui/react-tabs": "^1.1.13", | |
| "@radix-ui/react-toggle-group": "^1.1.11", | |
| "@radix-ui/react-tooltip": "^1.2.8", | |
| "@tanstack/react-query": "^5.90.12", | |
| "chart.js": "^4.5.1", | |
| "class-variance-authority": "^0.7.1", | |
| "clsx": "^2.1.1", | |
| "cmdk": "^1.1.1", | |
| "date-fns": "^4.1.0", | |
| "lucide-react": "^0.562.0", | |
| "next-themes": "^0.4.6", | |
| "react": "19.2.3", | |
| "react-chartjs-2": "^5.3.1", | |
| "react-day-picker": "^9.13.0", | |
| "react-dom": "19.2.3", | |
| "react-router-dom": "^7.11.0", | |
| "sonner": "^2.0.7", | |
| "tailwind-merge": "^3.4.0" | |
| }, | |
| "devDependencies": { | |
| "@eslint/js": "^9.39.2", | |
| "@tailwindcss/vite": "^4.1.18", | |
| "@testing-library/jest-dom": "^6.9.1", | |
| "@testing-library/react": "^16.3.1", | |
| "@testing-library/user-event": "^14.6.1", | |
| "@types/node": "^25.0.3", | |
| "@types/react": "^19.2.7", | |
| "@types/react-dom": "^19.2.3", | |
| "@vitejs/plugin-react": "^5.1.2", | |
| "@vitest/coverage-v8": "^4.0.16", | |
| "eslint": "^9.39.2", | |
| "eslint-plugin-react": "^7.37.5", | |
| "eslint-plugin-react-hooks": "^7.0.1", | |
| "eslint-plugin-react-refresh": "^0.4.26", | |
| "husky": "^9.1.7", | |
| "jsdom": "^27.3.0", | |
| "knip": "^5.76.3", | |
| "lint-staged": "^16.2.7", | |
| "msw": "^2.12.4", | |
| "prettier": "^3.7.4", | |
| "prettier-plugin-tailwindcss": "^0.7.2", | |
| "pretty-quick": "^4.2.2", | |
| "tailwindcss": "4.1.18", | |
| "tw-animate-css": "^1.4.0", | |
| "typescript": "5.9.3", | |
| "typescript-eslint": "^8.50.1", | |
| "vite": "^7.3.0", | |
| "vitest": "^4.0.16" | |
| }, | |
| "msw": { | |
| "workerDirectory": [ | |
| "public" | |
| ] | |
| }, | |
| "lint-staged": { | |
| "*.{ts,tsx}": "eslint --fix" | |
| } | |
| } | |