{
  "name": "@lobehub/chat",
  "version": "1.70.10",
  "description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
  "keywords": [
    "framework",
    "chatbot",
    "chatgpt",
    "nextjs",
    "vercel-ai",
    "openai",
    "azure-openai",
    "visual-model",
    "tts",
    "stt"
  ],
  "homepage": "https://github.com/lobehub/lobe-chat",
  "bugs": {
    "url": "https://github.com/lobehub/lobe-chat/issues/new/choose"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/lobehub/lobe-chat.git"
  },
  "license": "MIT",
  "author": "LobeHub <i@lobehub.com>",
  "sideEffects": false,
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "build": "next build",
    "postbuild": "npm run build-sitemap && npm run build-migrate-db",
    "build-migrate-db": "bun run db:migrate",
    "build-sitemap": "tsx ./scripts/buildSitemapIndex/index.ts",
    "build:analyze": "ANALYZE=true next build",
    "build:docker": "DOCKER=true next build && npm run build-sitemap",
    "db:generate": "drizzle-kit generate && npm run db:generate-client",
    "db:generate-client": "tsx ./scripts/migrateClientDB/compile-migrations.ts",
    "db:migrate": "MIGRATION_DB=1 tsx ./scripts/migrateServerDB/index.ts",
    "db:push": "drizzle-kit push",
    "db:push-test": "NODE_ENV=test drizzle-kit push",
    "db:studio": "drizzle-kit studio",
    "db:z-pull": "drizzle-kit introspect",
    "dev": "next dev -p 3210",
    "docs:i18n": "lobe-i18n md && npm run lint:md && npm run lint:mdx",
    "docs:seo": "lobe-seo && npm run lint:mdx",
    "i18n": "npm run workflow:i18n && lobe-i18n",
    "lint": "npm run lint:ts && npm run lint:style && npm run type-check && npm run lint:circular",
    "lint:circular": "dpdm src/**/*.ts  --no-warning --no-tree --exit-code circular:1 --no-progress -T true --skip-dynamic-imports circular",
    "lint:md": "remark . --silent --output",
    "lint:mdx": "npm run workflow:mdx && remark \"docs/**/*.mdx\" -r ./.remarkrc.mdx.js --silent --output && eslint \"docs/**/*.mdx\" --quiet --fix",
    "lint:style": "stylelint \"{src,tests}/**/*.{js,jsx,ts,tsx}\" --fix",
    "lint:ts": "eslint \"{src,tests}/**/*.{js,jsx,ts,tsx}\" --fix",
    "prepare": "husky",
    "prettier": "prettier -c --write \"**/**\"",
    "pull": "git pull",
    "release": "semantic-release",
    "self-hosting:docker": "docker build -t lobe-chat:local .",
    "self-hosting:docker-cn": "docker build -t lobe-chat-local --build-arg USE_CN_MIRROR=true .",
    "self-hosting:docker-cn@database": "docker build -t lobe-chat-database-local -f Dockerfile.database --build-arg USE_CN_MIRROR=true .",
    "start": "next start -p 3212",
    "stylelint": "stylelint \"src/**/*.{js,jsx,ts,tsx}\" --fix",
    "test": "npm run test-app && npm run test-server",
    "test-app": "vitest run --config vitest.config.ts",
    "test-app:coverage": "vitest run --config vitest.config.ts  --coverage",
    "test-server": "vitest run --config vitest.server.config.ts",
    "test-server:coverage": "vitest run --config vitest.server.config.ts --coverage",
    "test:update": "vitest -u",
    "type-check": "tsc --noEmit",
    "webhook:ngrok": "ngrok http http://localhost:3011",
    "workflow:cdn": "tsx ./scripts/cdnWorkflow/index.ts",
    "workflow:changelog": "tsx ./scripts/changelogWorkflow/index.ts",
    "workflow:countCharters": "tsx scripts/countEnWord.ts",
    "workflow:docs": "tsx ./scripts/docsWorkflow/index.ts",
    "workflow:i18n": "tsx ./scripts/i18nWorkflow/index.ts",
    "workflow:mdx": "tsx ./scripts/mdxWorkflow/index.ts",
    "workflow:readme": "tsx ./scripts/readmeWorkflow/index.ts"
  },
  "lint-staged": {
    "*.md": [
      "remark --silent --output --",
      "prettier --write --no-error-on-unmatched-pattern"
    ],
    "*.mdx": [
      "remark -r ./.remarkrc.mdx.js --silent --output --",
      "eslint --quiet --fix"
    ],
    "*.json": [
      "prettier --write --no-error-on-unmatched-pattern"
    ],
    "*.{mjs,cjs}": [
      "prettier --write",
      "eslint --fix"
    ],
    "*.{js,jsx}": [
      "prettier --write",
      "stylelint --fix",
      "eslint --fix"
    ],
    "*.{ts,tsx}": [
      "prettier --parser=typescript --write",
      "stylelint --fix",
      "eslint --fix"
    ]
  },
  "dependencies": {
    "@ant-design/icons": "^5.5.2",
    "@ant-design/pro-components": "^2.8.3",
    "@anthropic-ai/sdk": "^0.39.0",
    "@auth/core": "^0.38.0",
    "@aws-sdk/client-bedrock-runtime": "^3.723.0",
    "@aws-sdk/client-s3": "^3.723.0",
    "@aws-sdk/s3-request-presigner": "^3.723.0",
    "@azure-rest/ai-inference": "1.0.0-beta.5",
    "@azure/core-auth": "^1.9.0",
    "@cfworker/json-schema": "^4.1.0",
    "@clerk/localizations": "^3.9.6",
    "@clerk/nextjs": "^6.10.6",
    "@clerk/themes": "^2.2.4",
    "@codesandbox/sandpack-react": "^2.19.10",
    "@cyntler/react-doc-viewer": "^1.17.0",
    "@electric-sql/pglite": "0.2.17",
    "@google-cloud/vertexai": "^1.9.2",
    "@google/generative-ai": "^0.24.0",
    "@huggingface/inference": "^2.8.1",
    "@icons-pack/react-simple-icons": "9.6.0",
    "@khmyznikov/pwa-install": "0.3.9",
    "@langchain/community": "^0.3.22",
    "@lobechat/web-crawler": "workspace:*",
    "@lobehub/charts": "^1.12.0",
    "@lobehub/chat-plugin-sdk": "^1.32.4",
    "@lobehub/chat-plugins-gateway": "^1.9.0",
    "@lobehub/icons": "^1.73.1",
    "@lobehub/tts": "^1.28.0",
    "@lobehub/ui": "^1.165.5",
    "@neondatabase/serverless": "^0.10.4",
    "@next/third-parties": "^15.2.0",
    "@react-spring/web": "^9.7.5",
    "@sentry/nextjs": "^7.120.2",
    "@serwist/next": "^9.0.11",
    "@t3-oss/env-nextjs": "^0.12.0",
    "@tanstack/react-query": "^5.62.16",
    "@trpc/client": "next",
    "@trpc/next": "next",
    "@trpc/react-query": "next",
    "@trpc/server": "next",
    "@vercel/analytics": "^1.4.1",
    "@vercel/edge-config": "^1.4.0",
    "@vercel/functions": "^2",
    "@vercel/speed-insights": "^1.1.0",
    "ahooks": "^3.8.4",
    "ai": "^3.4.33",
    "antd": "^5.23.0",
    "antd-style": "^3.7.1",
    "axios": "^1.8.3",
    "brotli-wasm": "^3.0.1",
    "chroma-js": "^3.1.2",
    "countries-and-timezones": "^3.7.2",
    "csv-string": "^4.1.1",
    "csv-stringify": "^6.5.2",
    "dayjs": "^1.11.13",
    "debug": "^4.4.0",
    "dexie": "^3.2.7",
    "diff": "^7.0.0",
    "drizzle-orm": "^0.40.0",
    "drizzle-zod": "^0.5.1",
    "epub2": "^3.0.2",
    "fast-deep-equal": "^3.1.3",
    "file-type": "^20.0.0",
    "framer-motion": "^12.0.0",
    "gpt-tokenizer": "^2.8.1",
    "html-to-text": "^9.0.5",
    "i18next": "^24.2.1",
    "i18next-browser-languagedetector": "^8.0.2",
    "i18next-resources-to-backend": "^1.2.1",
    "idb-keyval": "^6.2.1",
    "immer": "^10.1.1",
    "jose": "^5.10.0",
    "js-sha256": "^0.11.0",
    "jsonl-parse-stringify": "^1.0.3",
    "langchain": "^0.3.10",
    "langfuse": "3.29.1",
    "langfuse-core": "3.29.1",
    "lodash-es": "^4.17.21",
    "lucide-react": "^0.479.0",
    "mammoth": "^1.9.0",
    "mdast-util-to-markdown": "^2.1.2",
    "modern-screenshot": "^4.5.5",
    "nanoid": "^5.0.9",
    "next": "latest",
    "next-auth": "beta",
    "next-mdx-remote": "^5.0.0",
    "nextjs-toploader": "^3.7.15",
    "numeral": "^2.0.6",
    "nuqs": "^1.20.0",
    "officeparser": "^5.1.1",
    "ollama": "^0.5.11",
    "openai": "^4.77.3",
    "openapi-fetch": "^0.9.8",
    "partial-json": "^0.1.7",
    "pdf-parse": "^1.1.1",
    "pdfjs-dist": "4.8.69",
    "pg": "^8.13.1",
    "pino": "^9.6.0",
    "plaiceholder": "^3.0.0",
    "polished": "^4.3.1",
    "posthog-js": "^1.205.0",
    "pwa-install-handler": "^2.6.2",
    "query-string": "^9.1.1",
    "random-words": "^2.0.1",
    "react": "^19.0.0",
    "react-confetti": "^6.2.2",
    "react-dom": "^19.0.0",
    "react-fast-marquee": "^1.6.5",
    "react-hotkeys-hook": "^4.6.1",
    "react-i18next": "^15.4.0",
    "react-layout-kit": "^1.9.1",
    "react-lazy-load": "^4.0.1",
    "react-pdf": "^9.2.1",
    "react-rnd": "^10.4.14",
    "react-scan": "^0.2.0",
    "react-virtuoso": "^4.12.3",
    "react-wrap-balancer": "^1.1.1",
    "remark": "^15.0.1",
    "remark-gfm": "^4.0.0",
    "remark-html": "^16.0.1",
    "request-filtering-agent": "^2.0.1",
    "resolve-accept-language": "^3.1.10",
    "rtl-detect": "^1.1.2",
    "semver": "^7.6.3",
    "sharp": "^0.33.5",
    "shiki": "^1.26.1",
    "stripe": "^16.12.0",
    "superjson": "^2.2.2",
    "svix": "^1.59.1",
    "swr": "^2.3.0",
    "systemjs": "^6.15.1",
    "ts-md5": "^1.3.1",
    "ua-parser-js": "^1.0.40",
    "unstructured-client": "^0.19.0",
    "url-join": "^5.0.0",
    "use-merge-value": "^1.2.0",
    "utility-types": "^3.11.0",
    "uuid": "^11.0.4",
    "ws": "^8.18.0",
    "y-protocols": "^1.0.6",
    "y-webrtc": "^10.3.0",
    "yaml": "^2.7.0",
    "yjs": "^13.6.21",
    "zod": "^3.24.1",
    "zustand": "^5.0.3",
    "zustand-utils": "^2"
  },
  "devDependencies": {
    "@commitlint/cli": "^19.6.1",
    "@edge-runtime/vm": "^5.0.0",
    "@huggingface/tasks": "^0.15.0",
    "@lobehub/i18n-cli": "^1.20.3",
    "@lobehub/lint": "^1.25.5",
    "@lobehub/seo-cli": "^1.4.3",
    "@next/bundle-analyzer": "^15.2.0",
    "@next/eslint-plugin-next": "^15.2.0",
    "@peculiar/webcrypto": "^1.5.0",
    "@semantic-release/exec": "^6.0.3",
    "@testing-library/jest-dom": "^6.6.3",
    "@testing-library/react": "^16.1.0",
    "@testing-library/user-event": "^14.6.1",
    "@types/chroma-js": "^3.1.0",
    "@types/crypto-js": "^4.2.2",
    "@types/debug": "^4.1.12",
    "@types/diff": "^7.0.0",
    "@types/fs-extra": "^11.0.4",
    "@types/ip": "^1.1.3",
    "@types/json-schema": "^7.0.15",
    "@types/lodash": "^4.17.14",
    "@types/lodash-es": "^4.17.12",
    "@types/node": "^22.10.5",
    "@types/numeral": "^2.0.5",
    "@types/pg": "^8.11.10",
    "@types/react": "^19.0.10",
    "@types/react-dom": "^19.0.4",
    "@types/rtl-detect": "^1.0.3",
    "@types/semver": "^7.5.8",
    "@types/systemjs": "^6.15.1",
    "@types/ua-parser-js": "^0.7.39",
    "@types/unist": "^3.0.3",
    "@types/uuid": "^10.0.0",
    "@types/ws": "^8.5.13",
    "@vitest/coverage-v8": "~1.2.2",
    "ajv-keywords": "^5.1.0",
    "commitlint": "^19.6.1",
    "consola": "^3.3.3",
    "crypto-js": "^4.2.0",
    "dotenv": "^16.4.7",
    "dpdm-fast": "^1.0.7",
    "drizzle-kit": "^0.30.1",
    "eslint": "^8.57.1",
    "eslint-plugin-mdx": "^3.1.5",
    "fake-indexeddb": "^6.0.0",
    "fs-extra": "^11.2.0",
    "glob": "^11.0.0",
    "gray-matter": "^4.0.3",
    "happy-dom": "^17.0.0",
    "husky": "^9.1.7",
    "just-diff": "^6.0.2",
    "lint-staged": "^15.3.0",
    "lodash": "^4.17.21",
    "markdown-table": "^3.0.4",
    "markdown-to-txt": "^2.0.1",
    "mime": "^4.0.6",
    "node-fetch": "^3.3.2",
    "node-gyp": "^11.0.0",
    "openapi-typescript": "^7.5.2",
    "p-map": "^7.0.3",
    "prettier": "^3.4.2",
    "remark-cli": "^12.0.1",
    "remark-frontmatter": "^5.0.0",
    "remark-mdx": "^3.1.0",
    "remark-parse": "^11.0.0",
    "semantic-release": "^21.1.2",
    "serwist": "^9.0.11",
    "stylelint": "^15.11.0",
    "tsx": "^4.19.2",
    "typescript": "^5.7.2",
    "unified": "^11.0.5",
    "unist-util-visit": "^5.0.0",
    "vite": "^5.4.11",
    "vitest": "~1.2.2",
    "vitest-canvas-mock": "^0.3.3"
  },
  "packageManager": "pnpm@9.15.7",
  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org"
  },
  "pnpm": {
    "overrides": {
      "mdast-util-gfm-autolink-literal": "2.0.0"
    },
    "packageExtensions": {
      "@inkjs/ui": {
        "dependencies": {
          "react": "^18"
        }
      }
    }
  },
  "overrides": {
    "mdast-util-gfm-autolink-literal": "2.0.0"
  }
}
