{
  "name": "memos",
  "private": true,
  "engines": {
    "node": ">=24"
  },
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "release": "vite build --mode release --outDir=../server/router/frontend/dist --emptyOutDir",
    "lint": "tsc --noEmit --skipLibCheck && biome check src",
    "lint:fix": "biome check --write src",
    "format": "biome format --write src"
  },
  "dependencies": {
    "@connectrpc/connect": "^2.1.1",
    "@connectrpc/connect-web": "^2.1.1",
    "@emotion/react": "^11.14.0",
    "@emotion/styled": "^11.14.1",
    "@github/relative-time-element": "^4.5.0",
    "@radix-ui/react-checkbox": "^1.3.3",
    "@radix-ui/react-dialog": "^1.1.15",
    "@radix-ui/react-dropdown-menu": "^2.1.16",
    "@radix-ui/react-label": "^2.1.8",
    "@radix-ui/react-popover": "^1.1.15",
    "@radix-ui/react-radio-group": "^1.3.8",
    "@radix-ui/react-select": "^2.2.6",
    "@radix-ui/react-separator": "^1.1.8",
    "@radix-ui/react-slot": "^1.2.4",
    "@radix-ui/react-switch": "^1.2.6",
    "@radix-ui/react-tooltip": "^1.2.8",
    "@tailwindcss/vite": "^4.2.1",
    "@tanstack/react-query": "^5.90.21",
    "@tanstack/react-query-devtools": "^5.91.3",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "copy-to-clipboard": "^3.3.3",
    "dayjs": "^1.11.20",
    "fuse.js": "^7.1.0",
    "highlight.js": "^11.11.1",
    "i18next": "^25.8.18",
    "katex": "^0.16.38",
    "leaflet": "^1.9.4",
    "leaflet.markercluster": "^1.5.3",
    "lodash-es": "^4.17.23",
    "lucide-react": "^0.577.0",
    "mdast-util-from-markdown": "^2.0.3",
    "mdast-util-gfm": "^3.1.0",
    "mermaid": "^11.13.0",
    "micromark-extension-gfm": "^3.0.0",
    "mime": "^4.1.0",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "react-hot-toast": "^2.6.0",
    "react-i18next": "^15.7.4",
    "react-leaflet": "^4.2.1",
    "react-leaflet-cluster": "^2.1.0",
    "react-markdown": "^10.1.0",
    "react-router-dom": "^7.13.1",
    "react-use": "^17.6.0",
    "rehype-katex": "^7.0.1",
    "rehype-raw": "^7.0.0",
    "rehype-sanitize": "^6.0.0",
    "remark-breaks": "^4.0.0",
    "remark-gfm": "^4.0.1",
    "remark-math": "^6.0.0",
    "tailwind-merge": "^3.5.0",
    "tailwindcss": "^4.2.1",
    "textarea-caret": "^3.1.0",
    "unist-util-visit": "^5.1.0",
    "uuid": "^11.1.0"
  },
  "devDependencies": {
    "@biomejs/biome": "^2.4.7",
    "@bufbuild/protobuf": "^2.11.0",
    "@types/d3": "^7.4.3",
    "@types/hast": "^3.0.4",
    "@types/katex": "^0.16.8",
    "@types/leaflet": "^1.9.21",
    "@types/lodash-es": "^4.17.12",
    "@types/mdast": "^4.0.4",
    "@types/node": "^24.10.1",
    "@types/qs": "^6.15.0",
    "@types/react": "^18.3.27",
    "@types/react-dom": "^18.3.7",
    "@types/textarea-caret": "^3.0.4",
    "@types/unist": "^3.0.3",
    "@types/uuid": "^10.0.0",
    "@vitejs/plugin-react": "^4.7.0",
    "baseline-browser-mapping": "^2.10.8",
    "long": "^5.3.2",
    "terser": "^5.46.1",
    "tw-animate-css": "^1.4.0",
    "typescript": "^6.0.2",
    "vite": "^7.2.4"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "esbuild"
    ]
  }
}
