{ "name": "whatsapp-channel", "version": "1.0.0", "description": "WhatsApp Channel Directory with scraping, AI moderation, and HTMX frontend", "type": "module", "main": "src/app.ts", "scripts": { "dev": "tsx watch src/app.ts", "build": "tsc", "start": "node dist/app.js", "worker:scrape": "tsx watch workers/scrapeWorker.ts", "worker:update": "tsx watch workers/updateWorker.ts", "worker:cleanup": "tsx watch workers/cleanupWorker.ts", "docker:build": "docker build -t whatsapp-channel .", "docker:up": "docker compose up -d", "docker:down": "docker compose down", "db:seed": "tsx scripts/seedAdmin.ts" }, "dependencies": { "@fastify/cookie": "^9.3.1", "@fastify/cors": "^9.0.1", "@fastify/csrf-protection": "^6.0.1", "@fastify/formbody": "^7.4.0", "@fastify/multipart": "^8.2.0", "@fastify/rate-limit": "^9.1.0", "@fastify/session": "^10.9.0", "@fastify/static": "^7.0.3", "@fastify/view": "^9.1.0", "@hcaptcha/hcaptcha-node": "^1.0.0", "@huggingface/inference": "^2.8.0", "@huggingface/hub": "^0.12.0", "argon2": "^0.40.3", "axios": "^1.7.2", "cheerio": "^1.0.0-rc.12", "date-fns": "^3.6.0", "dotenv": "^16.4.5", "fastify": "^4.28.0", "fastify-plugin": "^4.5.1", "groq-sdk": "^0.5.0", "ip": "^2.0.1", "nanoid": "^5.0.7", "nanoid-dictionary": "^5.0.0", "nunjucks": "^3.2.4", "pino": "^9.1.0", "pino-pretty": "^11.2.1", "pino-roll": "^1.0.0", "p-limit": "^6.1.0", "zod": "^3.23.8", "xss": "^1.0.15", "yaml": "^2.4.5" }, "devDependencies": { "@types/node": "^20.14.0", "@types/nunjucks": "^3.2.6", "@types/ip": "^1.1.3", "tsx": "^4.15.0", "typescript": "^5.5.0" }, "engines": { "node": ">=20.0.0" } }