{
  "name": "markdown-site",
  "private": true,
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "dev:convex": "convex dev",
    "build": "npx vite build",
    "typecheck": "tsc --noEmit",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview",
    "sync": "npx tsx scripts/sync-posts.ts",
    "sync:prod": "SYNC_ENV=production npx tsx scripts/sync-posts.ts",
    "sync:discovery": "npx tsx scripts/sync-discovery-files.ts",
    "sync:discovery:prod": "SYNC_ENV=production npx tsx scripts/sync-discovery-files.ts",
    "sync:all": "npm run sync && npm run sync:discovery",
    "sync:all:prod": "npm run sync:prod && npm run sync:discovery:prod",
    "export:db": "npx tsx scripts/export-db-posts.ts",
    "export:db:prod": "SYNC_ENV=production npx tsx scripts/export-db-posts.ts",
    "import": "npx tsx scripts/import-url.ts",
    "configure": "npx tsx scripts/configure-fork.ts",
    "newsletter:send": "npx tsx scripts/send-newsletter.ts",
    "newsletter:send:stats": "npx tsx scripts/send-newsletter-stats.ts",
    "sync-server": "npx tsx scripts/sync-server.ts",
    "deploy": "npm run sync && npm run build",
    "deploy:prod": "npx convex deploy && npm run sync:prod"
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.71.2",
    "@convex-dev/aggregate": "^0.2.0",
    "@convex-dev/persistent-text-streaming": "^0.3.0",
    "@convex-dev/workos": "^0.0.1",
    "@google/genai": "^1.0.1",
    "@mendable/firecrawl-js": "^1.21.1",
    "@modelcontextprotocol/sdk": "^1.0.0",
    "@phosphor-icons/react": "^2.1.10",
    "@pierre/diffs": "^1.0.4",
    "@radix-ui/react-icons": "^1.3.2",
    "@workos-inc/authkit-react": "^0.15.0",
    "@workos-inc/widgets": "^1.6.1",
    "agentmail": "^0.1.15",
    "convex": "^1.17.4",
    "convex-fs": "^0.2.0",
    "date-fns": "^3.3.1",
    "diff": "^8.0.2",
    "gray-matter": "^4.0.3",
    "lucide-react": "^0.344.0",
    "openai": "^4.79.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-markdown": "^9.0.1",
    "react-quill": "^2.0.0",
    "react-router-dom": "^6.22.0",
    "react-syntax-highlighter": "^15.5.0",
    "rehype-raw": "^7.0.0",
    "rehype-sanitize": "^6.0.0",
    "remark-breaks": "^4.0.0",
    "remark-gfm": "^4.0.0",
    "showdown": "^2.1.0",
    "turndown": "^7.2.2"
  },
  "devDependencies": {
    "@types/node": "^25.0.2",
    "@types/react": "^18.2.56",
    "@types/react-dom": "^18.2.19",
    "@types/react-syntax-highlighter": "^15.5.11",
    "@types/showdown": "^2.0.6",
    "@types/turndown": "^5.0.6",
    "@typescript-eslint/eslint-plugin": "^7.0.2",
    "@typescript-eslint/parser": "^7.0.2",
    "@vitejs/plugin-react": "^4.2.1",
    "dotenv": "^16.4.5",
    "eslint": "^8.56.0",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.5",
    "tsx": "^4.7.1",
    "typescript": "^5.2.2",
    "vite": "^5.1.4"
  }
}
