{ "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", "import": "npx tsx scripts/import-url.ts", "configure": "npx tsx scripts/configure-fork.ts", "deploy": "npm run sync && npm run build", "deploy:prod": "npx convex deploy && npm run sync:prod" }, "dependencies": { "@convex-dev/aggregate": "^0.2.0", "@mendable/firecrawl-js": "^1.21.1", "@phosphor-icons/react": "^2.1.10", "@radix-ui/react-icons": "^1.3.2", "convex": "^1.17.4", "date-fns": "^3.3.1", "gray-matter": "^4.0.3", "lucide-react": "^0.344.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-markdown": "^9.0.1", "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" }, "devDependencies": { "@types/node": "^25.0.2", "@types/react": "^18.2.56", "@types/react-dom": "^18.2.19", "@types/react-syntax-highlighter": "^15.5.11", "@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" } }