{
    "name": "fullstack-lab-pwa",
    "version": "0.1.0",
    "private": true,
    "scripts": {
        "dev": "next dev",
        "build": "next build",
        "start": "next start",
        "lint": "eslint \"app/**/*.{ts,tsx}\" \"components/**/*.{ts,tsx}\" \"lib/**/*.{ts,tsx}\" --max-warnings 0",
        "lint:fix": "eslint \"app/**/*.{ts,tsx}\" \"components/**/*.{ts,tsx}\" \"lib/**/*.{ts,tsx}\" --fix",
        "format": "prettier --write \"**/*.{ts,tsx,json,css,md}\"",
        "format:check": "prettier --check \"**/*.{ts,tsx,json,css,md}\"",
        "test": "vitest",
        "test:run": "vitest run",
        "test:coverage": "vitest run --coverage",
        "test:e2e": "playwright test",
        "test:e2e:ui": "playwright test --ui"
    },
    "dependencies": {
        "@tailwindcss/postcss": "^4.1.18",
        "chart.js": "^4.5.1",
        "chartjs-plugin-datalabels": "^2.2.0",
        "chartjs-plugin-zoom": "^2.2.0",
        "lucide-react": "^0.563.0",
        "next": "^15",
        "postcss": "^8.5.6",
        "react": "^19",
        "react-chartjs-2": "^5.3.1",
        "react-dom": "^19",
        "recharts": "^3.7.0",
        "tailwindcss": "^4.1.18"
    },
    "devDependencies": {
        "@eslint/js": "^9.39.1",
        "@playwright/test": "^1.58.2",
        "@testing-library/jest-dom": "^6.9.1",
        "@testing-library/react": "^16.3.2",
        "@testing-library/user-event": "^14.6.1",
        "@types/node": "^22",
        "@types/react": "^19",
        "@typescript-eslint/eslint-plugin": "^8.48.1",
        "@typescript-eslint/parser": "^8.48.1",
        "@vitejs/plugin-react": "^5.1.4",
        "eslint": "^9.39.1",
        "eslint-config-prettier": "^10.1.8",
        "eslint-plugin-prettier": "^5.5.4",
        "eslint-plugin-react": "^7.37.5",
        "eslint-plugin-react-hooks": "^5.2.0",
        "jsdom": "^28.0.0",
        "prettier": "^3.7.4",
        "typescript": "^5",
        "vitest": "^4.0.18"
    }
}
