| { | |
| "name": "claw-email-webapp", | |
| "version": "0.1.0", | |
| "private": true, | |
| "type": "module", | |
| "scripts": { | |
| "dev": "tsx src/server/index.ts", | |
| "dev:web": "vite --config src/web/vite.config.ts --host 0.0.0.0", | |
| "build": "vite build --config src/web/vite.config.ts && esbuild src/server/index.ts --bundle --platform=node --target=node22 --format=esm --outfile=dist/server/index.js --packages=external", | |
| "build:cloudflare": "vite build --config src/web/vite.config.ts", | |
| "deploy": "npm run build:cloudflare && npx wrangler deploy", | |
| "cf:deploy": "npm run deploy", | |
| "cf:migrate": "npx wrangler d1 migrations apply DB --remote", | |
| "start": "node dist/server/index.js", | |
| "typecheck": "tsc -p tsconfig.json --noEmit" | |
| }, | |
| "cloudflare": { | |
| "bindings": { | |
| "DB": { | |
| "description": "D1 database used to store managed mailboxes, synced mail metadata, attachment metadata, and Claw runtime settings." | |
| }, | |
| "ADMIN_PASSWORD": { | |
| "description": "Admin password required by every `/api/*` request. Set a strong random value before using the deployed app." | |
| } | |
| } | |
| }, | |
| "dependencies": { | |
| "@clawemail/node-sdk": "^0.2.4", | |
| "@fastify/static": "^8.1.1", | |
| "@supabase/supabase-js": "^2.108.2", | |
| "@vitejs/plugin-react": "^5.1.1", | |
| "better-sqlite3": "^12.5.0", | |
| "dotenv": "^17.2.3", | |
| "fastify": "^5.6.2", | |
| "react": "^19.2.3", | |
| "react-dom": "^19.2.3", | |
| "tweetnacl": "^1.0.3", | |
| "vite": "^7.2.7", | |
| "ws": "^8.20.0", | |
| "zod": "^4.2.1" | |
| }, | |
| "devDependencies": { | |
| "@types/better-sqlite3": "^7.6.13", | |
| "@types/node": "^25.5.0", | |
| "@types/react": "^19.2.7", | |
| "@types/react-dom": "^19.2.3", | |
| "esbuild": "^0.27.4", | |
| "pg": "^8.21.0", | |
| "tsx": "^4.21.0", | |
| "typescript": "^5.9.3" | |
| } | |
| } | |