{ "name": "sifa-api", "version": "1.0.0", "description": "Sifa professional network API backend", "main": "dist/index.js", "scripts": { "dev": "tsx watch src/index.ts", "build": "tsc", "start": "node dist/index.js", "db:migrate": "tsx src/db/run-migrate.ts", "test": "vitest run", "test:watch": "vitest", "lint": "eslint src/ tests/", "typecheck": "tsc --noEmit", "seed:skills": "tsx scripts/seed-skills.ts", "refresh:pds": "tsx src/scripts/refresh-pds-hosts.ts", "services:up": "docker compose -f docker-compose.dev.yml up -d", "services:down": "docker compose -f docker-compose.dev.yml down", "format": "prettier --write .", "format:check": "prettier --check .", "prepare": "husky" }, "keywords": [], "author": "Singi Labs", "license": "SEE LICENSE IN LICENSE", "type": "module", "dependencies": { "@atproto/api": "0.19.3", "@atproto/common-web": "0.4.18", "@atproto/oauth-client": "0.6.0", "@atproto/oauth-client-node": "0.3.17", "@atproto/syntax": "0.5.0", "@fastify/cookie": "11.0.2", "@fastify/cors": "11.2.0", "@fastify/helmet": "13.0.2", "@fastify/multipart": "9.0.3", "@fastify/rate-limit": "10.3.0", "@fastify/static": "8.1.0", "@sentry/node": "10.42.0", "dotenv": "17.3.1", "drizzle-orm": "0.45.1", "fastify": "5.8.2", "ioredis": "5.10.0", "isomorphic-dompurify": "3.0.0", "jose": "6.2.0", "pg": "8.20.0", "pino": "10.3.1", "pino-pretty": "13.1.3", "sharp": "0.33.5", "ws": "8.19.0", "zod": "4.3.6" }, "overrides": { "@esbuild-kit/core-utils": { "esbuild": "0.25.12" }, "flatted": "3.4.2" }, "devDependencies": { "@commitlint/cli": "19.8.1", "@commitlint/config-conventional": "19.8.1", "@types/node": "25.3.5", "@types/pg": "8.18.0", "@types/ws": "8.18.1", "drizzle-kit": "0.31.9", "eslint": "10.0.3", "husky": "9.1.7", "lint-staged": "16.4.0", "prettier": "3.5.3", "tsx": "4.21.0", "typescript": "5.9.3", "typescript-eslint": "8.56.1", "vitest": "4.0.18" }, "lint-staged": { "*.{js,jsx,ts,tsx,json,css,md}": "prettier --write" }, "pnpm": { "onlyBuiltDependencies": [ "esbuild", "sharp" ] } }