{
  "name": "memos",
  "private": true,
  "packageManager": "pnpm@11.0.1",
  "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",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage"
  },
  "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": "^5.0.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.4",
    "@tanstack/react-query": "^5.100.9",
    "@tanstack/react-query-devtools": "^5.100.9",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "copy-to-clipboard": "^4.0.2",
    "dayjs": "^1.11.20",
    "fuse.js": "^7.3.0",
    "highlight.js": "^11.11.1",
    "html-to-image": "^1.11.13",
    "i18next": "^26.0.10",
    "katex": "^0.16.45",
    "leaflet": "^1.9.4",
    "leaflet.markercluster": "^1.5.3",
    "lodash-es": "^4.18.1",
    "lucide-react": "^1.14.0",
    "mdast-util-from-markdown": "^2.0.3",
    "mdast-util-gfm": "^3.1.0",
    "mermaid": "^11.14.0",
    "micromark-extension-gfm": "^3.0.0",
    "mime": "^4.1.0",
    "react": "^19.2.6",
    "react-dom": "^19.2.6",
    "react-hot-toast": "^2.6.0",
    "react-i18next": "^17.0.7",
    "react-leaflet": "^5.0.0",
    "react-leaflet-cluster": "^4.1.3",
    "react-markdown": "^10.1.0",
    "react-router-dom": "^7.15.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.4",
    "textarea-caret": "^3.1.0",
    "unist-util-visit": "^5.1.0",
    "uuid": "^14.0.0"
  },
  "devDependencies": {
    "@babel/core": "7.29.0",
    "@babel/plugin-transform-runtime": "7.29.0",
    "@babel/runtime": "7.29.2",
    "@biomejs/biome": "^2.4.14",
    "@bufbuild/protobuf": "^2.12.0",
    "@rolldown/plugin-babel": "0.2.3",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@types/babel__core": "7.20.5",
    "@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.12.2",
    "@types/qs": "^6.15.1",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/textarea-caret": "^3.0.4",
    "@types/unist": "^3.0.3",
    "@vitejs/plugin-react": "^6.0.1",
    "babel-plugin-react-compiler": "1.0.0",
    "baseline-browser-mapping": "^2.10.27",
    "jsdom": "^29.1.1",
    "long": "^5.3.2",
    "terser": "^5.47.1",
    "tw-animate-css": "^1.4.0",
    "typescript": "^6.0.3",
    "vite": "^8.0.11",
    "vitest": "^4.1.5"
  }
}
