{ "name": "web", "type": "module", "scripts": { "dev": "vite dev", "build": "vite build", "start": "NODE_OPTIONS='--import ./public/instrument.server.mjs' vite start", "preview": "vite preview", "test": "vitest run", "lint": "tsc --noEmit", "db:generate": "drizzle-kit generate", "db:push": "drizzle-kit push", "db:migrate": "tsx src/server/db/migrate.ts", "db:seed": "tsx src/server/db/seed.ts", "benchmark:spamshield": "tsx src/server/services/spamshield/benchmark.ts" }, "dependencies": { "@libsql/client": "^0.15.0", "@sentry/solidstart": "^10.54.0", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "2.0.0-alpha.2", "@solidjs/vite-plugin-nitro-2": "^0.1.0", "@stripe/stripe-js": "^9.6.0", "@tailwindcss/vite": "^4.0.0", "@trpc/client": "^10.45.2", "@trpc/server": "^10.45.2", "@types/three": "^0.184.1", "@typeschema/valibot": "^0.13.4", "bcryptjs": "^3.0.3", "bullmq": "^5.77.3", "clerk-solidjs": "^2.0.10", "dompurify": "^3.4.7", "drizzle-orm": "^0.45.2", "firebase-admin": "^13.10.0", "imapflow": "^1.3.4", "ioredis": "^5.10.1", "isomorphic-dompurify": "^3.15.0", "jose": "^5", "node-cron": "^4.2.1", "onnxruntime-node": "^1.26.0", "pino": "^10.3.1", "pino-pretty": "^13.1.3", "puppeteer": "^25.0.4", "resend": "^6.12.4", "solid-js": "^1.9.5", "stripe": "^22.1.1", "tailwindcss": "^4.0.0", "three": "^0.184.0", "twilio": "^6.0.2", "valibot": "^0.29.0", "vite": "^7.0.0", "ws": "^8.21.0" }, "engines": { "node": ">=22" }, "devDependencies": { "@playwright/test": "^1.60.0", "@types/node-cron": "^3.0.11", "@types/ws": "^8.18.1", "drizzle-kit": "^0.31.10", "jsdom": "^29.1.1", "playwright": "^1.60.0", "tsx": "^4.22.3", "vite-plugin-solid": "^2.11.12", "vitest": "^4.1.5" } }