{ "name": "jeffemmett", "version": "1.0.0", "description": "Jeff Emmett's personal website", "type": "module", "scripts": { "dev": "concurrently --kill-others --names client,worker --prefix-colors blue,red \"yarn dev:client\" \"yarn dev:worker\"", "dev:client": "vite --host --port 5173", "dev:worker": "wrangler dev --local --port 5172 --ip 0.0.0.0", "build": "tsc && vite build", "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", "deploy": "yarn build && vercel deploy --prod && wrangler deploy" }, "keywords": [], "author": "Jeff Emmett", "license": "ISC", "dependencies": { "@dimforge/rapier2d": "^0.11.2", "@tldraw/assets": "^3.6.0", "@tldraw/sync": "^3.6.0", "@tldraw/sync-core": "^3.6.0", "@tldraw/tldraw": "^3.6.0", "@tldraw/tlschema": "^3.6.0", "@types/markdown-it": "^14.1.1", "@vercel/analytics": "^1.2.2", "cloudflare-workers-unfurl": "^0.0.7", "crdts": "^0.2.0", "gray-matter": "^4.0.3", "itty-router": "^5.0.17", "lodash.throttle": "^4.1.1", "markdown-it": "^14.1.0", "markdown-it-latex2img": "^0.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.1.2", "react-router-dom": "^6.22.3", "tldraw": "^3.6.0", "use-local-storage-state": "^19.5.0", "vercel": "^39.1.1" }, "devDependencies": { "@biomejs/biome": "1.4.1", "@cloudflare/types": "^6.0.0", "@cloudflare/workers-types": "^4.20240821.1", "@types/lodash.throttle": "^4", "@types/react": "^18.2.15", "@types/react-dom": "^18.2.7", "@typescript-eslint/eslint-plugin": "^5.59.0", "@typescript-eslint/parser": "^5.59.0", "@vitejs/plugin-react": "^4.0.3", "@vitejs/plugin-react-swc": "^3.6.0", "concurrently": "^8.2.2", "eslint": "^8.38.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.3.4", "typescript": "^5.6.3", "vite": "^5.3.3", "vite-plugin-static-copy": "^1.0.6", "vite-plugin-top-level-await": "^1.3.1", "vite-plugin-wasm": "^3.2.2", "wrangler": "^3.88.0" } }