{ "name": "silent-whisper", "description": "A federated social media platform for the modern age.", "author": [ { "name": "Marcello Brito", "alias": "Tocka", "email": "tocka@tockanest.com", "url": "https://tockanest.com" } ], "license": "AGPL-3.0", "version": "0.1.0", "private": true, "scripts": { "dev": "cross-env NODE_ENV=development tsx src/server.ts", "email:dev": "cross-env NODE_ENV=development email dev --dir src/lib/mail/templates --port 3001", "test": "cross-env NODE_ENV=test playwright test", "keygen": "bun run src/lib/federation/keygen.ts", "test:key": "cross-env NODE_ENV=test playwright test tests/key.test.ts", "test:discover": "cross-env NODE_ENV=test playwright test tests/discover.test.ts", "test:attacks": "cross-env NODE_ENV=test playwright test tests/attacks.test.ts", "build": "next build", "start": "cross-env NODE_ENV=production node src/server.ts", "db:push": "drizzle-kit push", "db:migrate": "bun run db:push && bun run drizzle-kit migrate", "db:generate": "auth generate --output src/lib/db/schema/index.ts --yes", "db:update": "bun run db:generate && bun run db:push" }, "dependencies": { "@better-auth/drizzle-adapter": "^1.5.4", "@hookform/resolvers": "^5.2.2", "@marsidev/react-turnstile": "^1.4.2", "@nanostores/react": "^1.0.0", "@react-email/components": "1.0.8", "better-auth": "^1.5.4", "bullmq": "^5.70.4", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "debug": "^4.4.3", "dexie": "^4.3.0", "dexie-react-hooks": "^4.2.0", "dotenv": "^17.3.1", "drizzle-orm": "^0.45.1", "framer-motion": "^12.35.2", "ioredis": "^5.10.0", "lucide-react": "^0.577.0", "minio": "^8.0.7", "nanostores": "^1.1.1", "next": "16.2.0", "next-themes": "^0.4.6", "nodemailer": "^8.0.2", "pg": "^8.20.0", "radix-ui": "^1.4.3", "react": "19.2.4", "react-dom": "19.2.4", "react-hook-form": "^7.71.2", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "sonner": "^2.0.7", "tailwind-merge": "^3.5.0", "tweetnacl": "^1.0.3", "tweetnacl-util": "^0.15.1", "zod": "^4.3.6" }, "devDependencies": { "@react-email/preview-server": "5.2.9", "@tailwindcss/postcss": "^4.2.1", "@types/bun": "^1.3.10", "@types/debug": "^4.1.12", "@types/node": "^25.4.0", "@types/nodemailer": "^7.0.11", "@types/pg": "^8.18.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "auth": "^1.5.4", "babel-plugin-react-compiler": "1.0.0", "cross-env": "^10.1.0", "drizzle-kit": "^0.31.9", "react-email": "5.2.9", "shadcn": "^4.0.5", "tailwindcss": "^4.2.1", "tsx": "^4.21.0", "tw-animate-css": "^1.4.0", "typescript": "^5.9.3" }, "ignoreScripts": [ "sharp", "unrs-resolver" ], "trustedDependencies": [ "sharp", "unrs-resolver" ], "repository": { "type": "git", "url": "https://github.com/tockawaffle/sipher.git" }, "bugs": { "url": "https://github.com/tockawaffle/sipher/issues" }, "keywords": [ "social", "media", "federated" ] }