{
"name": "@bitfun/web-ui",
"version": "0.2.19",
"private": true,
"description": "BitFun Web UI - 支持 Desktop 和 Server 两种部署方式",
"type": "module",
"scripts": {
"dev": "vite",
"dev:force": "vite --force",
"gen:types": "node scripts/gen-api-barrel.mjs --clean && cargo test --locked --package bitfun-app-server-protocol --no-default-features --features ts --lib export -- --nocapture && node scripts/gen-api-barrel.mjs",
"build": "vite build",
"build:desktop": "vite build --mode desktop",
"build:web": "vite build --mode web",
"build:with-types": "npm run gen:types && npm run build",
"preview": "vite preview",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"type-check": "tsc --noEmit",
"test": "vitest",
"test:run": "vitest run"
},
"dependencies": {
"@monaco-editor/react": "^4.6.0",
"@tanstack/react-virtual": "^3.13.23",
"@tauri-apps/api": "^2.10.1",
"@tauri-apps/plugin-dialog": "^2.6.0",
"@tauri-apps/plugin-fs": "^2.0.0",
"@tauri-apps/plugin-log": "^2.8.0",
"@tauri-apps/plugin-notification": "^2.3.3",
"@tauri-apps/plugin-opener": "^2.5.2",
"@tiptap/core": "^3.20.4",
"@tiptap/extension-details": "^3.20.4",
"@tiptap/extension-link": "^3.20.4",
"@tiptap/extension-placeholder": "^3.20.4",
"@tiptap/extension-task-item": "^3.20.4",
"@tiptap/extension-task-list": "^3.20.4",
"@tiptap/pm": "^3.20.4",
"@tiptap/react": "^3.20.4",
"@tiptap/starter-kit": "^3.20.4",
"@xterm/addon-fit": "^0.12.0-beta.103",
"@xterm/addon-web-links": "^0.13.0-beta.103",
"@xterm/addon-webgl": "^0.20.0-beta.100",
"@xterm/xterm": "^6.1.0-beta.101",
"diff": "^8.0.3",
"highlight.js": "^11.11.1",
"i18next": "^25.8.0",
"immer": "^11.1.3",
"jszip": "^3.10.1",
"katex": "^0.16.25",
"lucide-react": "^0.541.0",
"mermaid": "^11.10.1",
"modern-screenshot": "^4.7.0",
"monaco-editor": "^0.52.2",
"morphdom": "^2.7.8",
"partial-json": "^0.1.7",
"path-browserify": "^1.0.1",
"prismjs": "^1.30.0",
"qrcode.react": "^4.2.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-i18next": "^16.5.3",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^15.6.6",
"react-virtuoso": "^4.18.11",
"rehype-katex": "^7.0.1",
"rehype-raw": "^7.0.0",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"remark-math": "^6.0.0",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"unified": "^11.0.5",
"unist-util-visit": "^5.0.0",
"utif": "^3.1.0",
"yaml": "^2.8.2",
"zustand": "^5.0.10"
},
"devDependencies": {
"@eslint/js": "^9.24.0",
"@types/node": "^20.10.0",
"@types/path-browserify": "^1.0.3",
"@types/prismjs": "^1.26.5",
"@types/react": "^18.3.29",
"@types/react-dom": "^18.3.0",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/utif": "^3.0.6",
"@vitejs/plugin-react": "^4.6.0",
"eslint": "^9.24.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.0.0",
"jsdom": "^29.0.1",
"sass": "^1.93.2",
"typescript": "~5.8.3",
"typescript-eslint": "^8.29.0",
"vite": "^7.0.4",
"vitest": "^4.1.0"
}
}