{ "name": "@follow/server", "private": true, "scripts": { "build": "cross-env NODE_ENV=production vite build && tsx scripts/prepare-vercel-build.ts && tsup && tsx scripts/cleanup-vercel-build.ts", "dev": "cross-env NODE_ENV=development tsx watch --include \"src/**/*.ts\" --exclude \"./*.ts\" --exclude \"./*.mjs\" index.ts", "meta": "tsx helper/meta-map.ts --watch", "start": "tsx index.ts", "typecheck": "tsc --noEmit" }, "dependencies": { "@fastify/middie": "9.0.3", "@fastify/request-context": "6.0.2", "@fontsource/sn-pro": "5.1.0", "@openpanel/web": "1.0.1", "@resvg/resvg-js": "2.6.2", "@sentry/react": "9.1.0", "@tanstack/react-query": "5.66.7", "blurhash": "2.0.5", "click-to-react-component": "1.1.2", "dayjs": "1.11.13", "fastify": "5.2.1", "framer-motion": "12.4.7", "i18next": "24.2.2", "jotai": "2.12.1", "kose-font": "1.0.0", "linkedom": "0.18.9", "ofetch": "1.4.1", "rc-modal-sheet": "0.3.2", "react-blurhash": "0.3.0", "react-hook-form": "7.54.2", "react-hotkeys-hook": "4.6.1", "react-i18next": "15.4.1", "react-photo-view": "1.2.7", "react-router": "7.2.0", "satori": "0.12.1", "sonner": "2.0.0", "use-context-selector": "2.0.0", "xss": "1.0.15", "zod": "3.24.2" }, "devDependencies": { "@follow/components": "workspace:*", "@follow/constants": "workspace:*", "@follow/hooks": "workspace:*", "@follow/models": "workspace:*", "@follow/shared": "workspace:*", "@follow/types": "workspace:*", "@follow/utils": "workspace:*", "@radix-ui/react-avatar": "1.1.3", "@types/html-minifier-terser": "7.0.2", "chokidar": "4.0.3", "daisyui": "4.12.23", "dotenv-flow": "4.1.0", "es-toolkit": "1.32.0", "fast-glob": "3.3.3", "foxact": "0.2.44", "html-minifier-terser": "7.2.0", "lightningcss": "1.29.1", "masonic": "4.0.1", "nanoid": "5.1.0", "path-to-regexp": "8.2.0", "tsup": "8.3.6", "tsx": "4.19.3", "vite": "6.1.0" } }