{ "name": "delivery-desk", "private": true, "version": "0.1.0", "type": "module", "scripts": { "client:dev": "vite --host 0.0.0.0", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", "check": "tsc --noEmit", "server:dev": "nodemon", "server:prod": "tsx api/server.ts", "db:postgres:migrate": "tsx scripts/migrate-sqlite-to-postgres.ts", "db:postgres:validate": "tsx scripts/validate-postgres-migration.ts", "test:postgres-runtime": "tsx scripts/test-postgres-runtime.ts", "test:collection-status": "tsx scripts/test-sqlite-collection-status.ts", "dev": "concurrently \"npm run client:dev\" \"npm run server:dev\"" }, "dependencies": { "better-sqlite3": "^11.3.0", "clsx": "^2.1.1", "cors": "^2.8.5", "cos-nodejs-sdk-v5": "^3.0.0", "dotenv": "^17.2.1", "express": "^4.21.2", "express-async-errors": "^3.1.1", "lucide-react": "^0.511.0", "multer": "^1.4.5-lts.1", "pg": "^8.22.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^7.3.0", "sharp": "^0.33.5", "tailwind-merge": "^3.0.2", "zustand": "^5.0.3" }, "devDependencies": { "@eslint/js": "^9.25.0", "@types/better-sqlite3": "^7.6.11", "@types/cors": "^2.8.19", "@types/express": "^4.17.21", "@types/multer": "^1.4.12", "@types/node": "^22.15.30", "@types/pg": "^8.20.0", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@vercel/node": "^5.3.6", "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.21", "babel-plugin-react-dev-locator": "^1.0.0", "concurrently": "^9.2.0", "eslint": "^9.25.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "nodemon": "^3.1.10", "pg-mem": "^3.0.14", "postcss": "^8.5.3", "tailwindcss": "^3.4.17", "tsx": "^4.20.3", "typescript": "~5.8.3", "typescript-eslint": "^8.30.1", "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4" } }