{ "name": "bill-tracker", "version": "0.18", "description": "Monthly bill tracking system", "main": "server.js", "scripts": { "dev:api": "node --watch server.js", "dev:ui": "vite", "dev": "concurrently \"npm run dev:api\" \"npm run dev:ui\"", "build": "vite build", "start": "node server.js" }, "dependencies": { "@radix-ui/react-alert-dialog": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.2", "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-tooltip": "^1.1.3", "bcryptjs": "^2.4.3", "better-sqlite3": "^9.4.3", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "express": "^4.18.2", "express-rate-limit": "^8.4.1", "lucide-react": "^0.456.0", "node-cron": "^3.0.3", "nodemailer": "^6.9.14", "openid-client": "^5.7.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.26.2", "sonner": "^1.7.1", "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", "xlsx": "^0.18.5" }, "devDependencies": { "@vitejs/plugin-react": "^4.3.3", "autoprefixer": "^10.4.20", "concurrently": "^9.1.0", "postcss": "^8.4.47", "tailwindcss": "^3.4.14", "vite": "^5.4.10" } }