mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-26 11:44:28 +08:00
* build: 添加 tesseract.js 及其类型定义依赖
* feat(ocr): 添加OCR类型定义文件以支持OCR功能扩展
* feat(ocr): 添加 Tesseract OCR 提供程序配置
* feat(ocr): 添加Tesseract.js的logo
* refactor(settings): 重构文档预处理设置模块结构
将PreprocessSettings重命名为DocProcessSettings并调整文件结构
更新相关路由和组件引用以保持功能一致性
* refactor(config): 重命名OCR_PROVIDER_CONFIG为BUILTIN_OCR_PROVIDERS以更准确描述用途
* refactor(ocr): 更改文件名
* refactor(ocr): 将获取OCR提供商logo的功能移动到utils目录
将getOcrProviderLogo函数从config/ocr.ts移动到utils/ocr.ts,保持功能集中
* refactor(ocr): 重构OCR配置结构以支持默认提供者
将内置OCR提供者数组重构为单独定义的常量,并添加默认OCR提供者映射。这提高了代码的可维护性并支持未来扩展。
* feat(store): 添加OCR状态管理切片
实现OCR提供商的增删改查功能,使用Redux Toolkit管理OCR相关状态
* feat(types): 添加图片文件类型守卫函数
添加 ImageFileMetadata 类型和 isImageFile 类型守卫函数,用于检查文件是否为图片类型
* feat(ocr): 添加对OCR支持文件类型的类型定义和校验函数
添加SupportedOcrFileType类型和isSupportedOcrFileType校验函数
添加SupportedOcrFile类型和isSupportedOcrFile校验函数
* feat(ocr): 添加OCR功能支持
实现基于Tesseract的OCR功能,包括文件类型检查、服务接口和IPC通信
新增OCR相关类型定义和服务实现
* refactor(OcrService): 更新日志上下文为'main:OcrService'
* feat(ocr): 添加OCR服务基础功能
实现OCR服务的基础功能,通过调用window.api.ocr接口处理支持的文件类型
* feat(store): 添加ocr模块到redux store
* feat(ocr): 添加OCR功能支持及文件类型校验
添加OCR功能钩子useOcr,支持图片文件识别
添加不支持文件类型的错误提示国际化文案
* refactor(ocr): 重命名updatePreprocessProvider为updateOcrProvider以保持命名一致性
* feat(ocr): 添加设置图片OCR提供商的功能
* refactor(ocr): 统一OCR类型导入路径
将所有OCR相关类型从'@renderer/types/ocr'改为从'@renderer/types'或'@types'导入
优化DEFAULT_OCR_PROVIDER类型定义
* feat(store): 更新持久化存储版本并添加OCR配置迁移
添加137版本迁移逻辑,初始化OCR提供者和默认图像提供者配置
* feat(ocr): 添加OCR服务设置界面及提供商选择功能
实现OCR服务设置界面,包含图片OCR提供商的选择功能
修复ocr.ts中imageProvider的类型定义
添加相关国际化文本
* fix(ocr): 添加图像大小检查并优化错误处理
检查图像文件大小是否超过50MB限制
使用buffer读取文件替代直接路径识别
简化错误处理逻辑,直接抛出原始错误
* feat(OCR服务): 支持base64字符串作为OCR输入
扩展tesseractOcr函数以接受base64字符串或图像文件作为输入
* build: 将 tesseract.js 从 devDependencies 移至 dependencies
确保生产环境能正确使用 tesseract.js 功能
* refactor(ocr): 将Tesseract服务文件移动到tesseract子目录并更新配置
* refactor(TesseractService): 添加日志记录并更新worker配置
添加loggerService用于记录worker日志,并更新createWorker配置以使用自定义logger
* feat(i18n): 添加OCR功能的多语言支持
* refactor(preload): 移动OCR类型定义到共享类型文件
将OCR相关的类型定义(OcrProvider, OcrResult, SupportedOcrFile)从渲染进程类型文件移动到共享类型文件@types,以提高代码复用性和维护性
* refactor(ocr): 修改tesseractOcr返回完整识别结果而非仅文本
返回完整识别结果以便后续处理使用更多OCR信息,同时简化imageOcr中的条件判断逻辑
* fix(ocr): 修复文件类型与OCR提供者能力不匹配时的错误抛出位置
将错误抛出语句移至else分支
* refactor(ocr): 简化 DEFAULT_OCR_PROVIDER 的类型定义
* fix(ocr): 改进OCR处理中的消息管理和错误处理
在useOcr钩子中统一管理OCR处理的消息提示,并完善错误处理逻辑
移除TranslatePage中重复的消息管理代码,简化OCR处理流程
* feat(i18n): 添加OCR相关的错误和状态翻译文本
* fix(useOcr): 修复未支持文件类型错误抛出位置
将不支持的OCR文件类型错误抛出逻辑移至条件判断内
* refactor(ocr): ocrImage实现使用OcrService并更新日志上下文
将ocrImage函数从useOcr钩子移动到OcrService中,提高代码复用性
更新日志服务上下文从'main'改为'renderer'以更准确反映模块位置
* style(TabContainer): 移除多余的空行并保持代码整洁
* refactor(ocr): 简化OCR文件类型检查逻辑
使用现有的isImageFile函数替代冗余的类型检查逻辑,提高代码复用性
* fix: 将迁移错误日志从136更新为137
* feat(ocr): enhance Tesseract service with language support and worker management
- Added support for multiple Tesseract languages: Chinese (Simplified and Traditional) and English.
- Refactored Tesseract worker management into a class for better encapsulation and reuse.
- Introduced methods to dynamically determine language path based on IP country and manage worker lifecycle.
* update cn url
* support cn data
* change to asyn
* use register design mode
* add type
* use bind function
* refactor(ipc): 简化OCR处理程序参数
* refactor(ocr): 修改ocrProviderCapabilityRecord类型定义
允许只定义部分能力
* refactor(ocr): 将Tesseract相关配置移至服务内部
将语言列表和下载URL常量从共享配置移至Tesseract服务内部
使用常量定义图片大小阈值以提高可读性
* refactor(ocr): 统一使用 SupportedOcrFile 类型替换 FileMetadata
更新 OCR 服务及其 Tesseract 实现,使用 SupportedOcrFile 类型替代原有的 FileMetadata 类型,以提高类型安全性和一致性。同时在 OcrService 中添加重复注册的警告日志。
* refactor(ocr): 重构OCR类型定义以支持模型和API配置
将OCR提供者配置拆分为独立类型,增加模型能力记录和API配置类型检查
添加OCR处理程序类型定义,为未来扩展提供更好的类型支持
* refactor(OcrService): 移除重复的OcrHandler类型定义
已在@types中定义OcrHandler类型,移除重复定义以提高代码一致性
* refactor(ocr): 将OcrService移动到ocr目录下并更新引用路径
* feat(ocr): 添加OCR API客户端工厂及示例实现
实现OCR API客户端工厂模式,支持根据不同提供商创建对应的客户端
新增OcrBaseApiClient作为基础类,提供通用功能
添加OcrExampleApiClient作为示例实现
修改OcrService以使用新的客户端工厂
* refactor(ocr): 添加日志记录以跟踪OCR文件处理
在OCR服务中添加日志记录功能,便于跟踪文件处理过程
* fix(deps): 更新 tesseract.js 依赖并添加补丁文件
修复 tesseract.js 类型定义问题并添加语言常量支持
* refactor(ocr): 移除注释掉的tesseract语言映射代码
使用Tesseract.js的LanguageCode类型替代硬编码的语言列表,提高类型安全性
* feat(ocr): 添加 Tesseract OCR 配置类型
* refactor(OCR设置): 重命名OcrImageProviderSettings为OcrImageSettings并优化代码结构
* refactor(ocr): 将 Tesseract 相关类型移动到文件底部以改善代码组织
* feat(ocr): 添加 Tesseract OCR 提供者类型检查函数
* feat(ocr): 添加更新OCR提供者配置的功能
* feat: 添加OCR提供者钩子函数
实现useOcrProvider钩子用于获取和更新OCR提供者配置
* refactor(ocr): 修改removeOcrProvider参数为字符串id
简化removeOcrProvider方法的参数类型,直接使用字符串id进行过滤,提高代码简洁性
* refactor(ocr): 将内置OCR提供者从数组改为映射结构
重构OCR配置模块,使用映射结构存储内置OCR提供者以便于扩展和维护
* refactor(ocr): 将BUILTIN_OCR_PROVIDERS改为只读数组
使用Object.freeze确保数组不可变,提高代码安全性
* feat(ocr): 添加OCR提供者管理功能并改进错误处理
添加useOcrProviders钩子用于管理OCR提供者的添加和删除
当内置OCR提供者不存在时自动恢复默认配置
改进错误提示信息并增加国际化支持
* Revert "refactor(ocr): 将BUILTIN_OCR_PROVIDERS改为只读数组"
This reverts commit f23e37941a.
* feat(ocr): 为Tesseract OCR添加多语言支持配置
添加对简体中文、繁体中文和英文的语言支持配置,扩展OCR功能以满足多语言识别需求
* refactor(types): 将Tesseract.LanguageCode重命名为TesseractLangCode以提高可读性
* feat(OCR设置): 添加OCR提供商设置组件及状态管理
新增OCR提供商设置组件,支持显示当前选择的OCR提供商信息
在OCR图片设置中添加状态管理,同步提供商选择到父组件
添加Tesseract OCR设置组件,支持多语言选择(暂不可用)
* fix(DocProcessSettings): 修复OCR语言选择默认值问题
* feat(i18n): 添加OCR提供商相关错误和警告的翻译
* fix(ocr): 将 Tesseract 语言配置类型改为部分
* fix(ocr): 修复ocrImage函数未使用await导致的问题
* fix(ocr): 修复迁移配置中ocr状态的初始化方式
将分散的属性赋值改为对象整体赋值,避免潜在的属性丢失问题
* chore: 移除不再使用的@types/tesseract.js依赖
* refactor(OCR设置): 添加错误边界处理并移除无用注释
在OCR设置组件中添加ErrorBoundary以处理潜在错误
移除OcrTesseractSettings中的TODO注释
* build: 添加 sharp 依赖以支持图片处理功能
* refactor(ocr): 添加OCR图像预处理功能并优化TesseractService
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* refactor(ocr): 移除独立的灰度处理模块并改进预处理流程
将灰度处理功能直接集成到OCR预处理中,不再需要单独的image模块
添加normalise和threshold处理以提升OCR识别效果
* improve image preprocess
---------
Co-authored-by: beyondkmp <beyondkmp@gmail.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
315 lines
13 KiB
JSON
315 lines
13 KiB
JSON
{
|
|
"name": "CherryStudio",
|
|
"version": "1.5.7-rc.2",
|
|
"private": true,
|
|
"description": "A powerful AI assistant for producer.",
|
|
"main": "./out/main/index.js",
|
|
"author": "support@cherry-ai.com",
|
|
"homepage": "https://github.com/CherryHQ/cherry-studio",
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"workspaces": {
|
|
"packages": [
|
|
"local",
|
|
"packages/*"
|
|
],
|
|
"installConfig": {
|
|
"hoistingLimits": [
|
|
"packages/database",
|
|
"packages/mcp-trace/trace-core",
|
|
"packages/mcp-trace/trace-node",
|
|
"packages/mcp-trace/trace-web"
|
|
]
|
|
}
|
|
},
|
|
"scripts": {
|
|
"start": "electron-vite preview",
|
|
"dev": "dotenv electron-vite dev",
|
|
"debug": "electron-vite -- --inspect --sourcemap --remote-debugging-port=9222",
|
|
"build": "npm run typecheck && electron-vite build",
|
|
"build:check": "yarn lint && yarn test",
|
|
"build:unpack": "dotenv npm run build && electron-builder --dir",
|
|
"build:win": "dotenv npm run build && electron-builder --win --x64 --arm64",
|
|
"build:win:x64": "dotenv npm run build && electron-builder --win --x64",
|
|
"build:win:arm64": "dotenv npm run build && electron-builder --win --arm64",
|
|
"build:mac": "dotenv npm run build && electron-builder --mac --arm64 --x64",
|
|
"build:mac:arm64": "dotenv npm run build && electron-builder --mac --arm64",
|
|
"build:mac:x64": "dotenv npm run build && electron-builder --mac --x64",
|
|
"build:linux": "dotenv npm run build && electron-builder --linux --x64 --arm64",
|
|
"build:linux:arm64": "dotenv npm run build && electron-builder --linux --arm64",
|
|
"build:linux:x64": "dotenv npm run build && electron-builder --linux --x64",
|
|
"build:npm": "node scripts/build-npm.js",
|
|
"release": "node scripts/version.js",
|
|
"publish": "yarn build:check && yarn release patch push",
|
|
"pulish:artifacts": "cd packages/artifacts && npm publish && cd -",
|
|
"generate:agents": "yarn workspace @cherry-studio/database agents",
|
|
"generate:icons": "electron-icon-builder --input=./build/logo.png --output=build",
|
|
"analyze:renderer": "VISUALIZER_RENDERER=true yarn build",
|
|
"analyze:main": "VISUALIZER_MAIN=true yarn build",
|
|
"typecheck": "npm run typecheck:node && npm run typecheck:web",
|
|
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
|
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
|
|
"check:i18n": "tsx scripts/check-i18n.ts",
|
|
"sync:i18n": "tsx scripts/sync-i18n.ts",
|
|
"update:i18n": "dotenv -e .env -- tsx scripts/update-i18n.ts",
|
|
"auto:i18n": "dotenv -e .env -- tsx scripts/auto-translate-i18n.ts",
|
|
"update:languages": "tsx scripts/update-languages.ts",
|
|
"test": "vitest run --silent",
|
|
"test:main": "vitest run --project main",
|
|
"test:renderer": "vitest run --project renderer",
|
|
"test:update": "yarn test:renderer --update",
|
|
"test:coverage": "vitest run --coverage --silent",
|
|
"test:ui": "vitest --ui",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "yarn playwright test",
|
|
"test:lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts",
|
|
"test:scripts": "vitest scripts",
|
|
"format": "prettier --write .",
|
|
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix && yarn typecheck && yarn check:i18n",
|
|
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && husky"
|
|
},
|
|
"dependencies": {
|
|
"@libsql/client": "0.14.0",
|
|
"@libsql/win32-x64-msvc": "^0.4.7",
|
|
"@strongtz/win32-arm64-msvc": "^0.4.7",
|
|
"graceful-fs": "^4.2.11",
|
|
"jsdom": "26.1.0",
|
|
"node-stream-zip": "^1.15.0",
|
|
"officeparser": "^4.2.0",
|
|
"os-proxy-config": "^1.1.2",
|
|
"selection-hook": "^1.0.11",
|
|
"tesseract.js": "patch:tesseract.js@npm%3A6.0.1#~/.yarn/patches/tesseract.js-npm-6.0.1-2562a7e46d.patch",
|
|
"turndown": "7.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@agentic/exa": "^7.3.3",
|
|
"@agentic/searxng": "^7.3.3",
|
|
"@agentic/tavily": "^7.3.3",
|
|
"@ant-design/v5-patch-for-react-19": "^1.0.3",
|
|
"@anthropic-ai/sdk": "^0.41.0",
|
|
"@anthropic-ai/vertex-sdk": "patch:@anthropic-ai/vertex-sdk@npm%3A0.11.4#~/.yarn/patches/@anthropic-ai-vertex-sdk-npm-0.11.4-c19cb41edb.patch",
|
|
"@aws-sdk/client-bedrock": "^3.840.0",
|
|
"@aws-sdk/client-bedrock-runtime": "^3.840.0",
|
|
"@aws-sdk/client-s3": "^3.840.0",
|
|
"@cherrystudio/embedjs": "^0.1.31",
|
|
"@cherrystudio/embedjs-libsql": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-csv": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-image": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-markdown": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-msoffice": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-pdf": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-sitemap": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-web": "^0.1.31",
|
|
"@cherrystudio/embedjs-loader-xml": "^0.1.31",
|
|
"@cherrystudio/embedjs-ollama": "^0.1.31",
|
|
"@cherrystudio/embedjs-openai": "^0.1.31",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
|
|
"@electron-toolkit/eslint-config-ts": "^3.0.0",
|
|
"@electron-toolkit/preload": "^3.0.0",
|
|
"@electron-toolkit/tsconfig": "^1.0.1",
|
|
"@electron-toolkit/utils": "^3.0.0",
|
|
"@electron/notarize": "^2.5.0",
|
|
"@emotion/is-prop-valid": "^1.3.1",
|
|
"@eslint-react/eslint-plugin": "^1.36.1",
|
|
"@eslint/js": "^9.22.0",
|
|
"@google/genai": "patch:@google/genai@npm%3A1.0.1#~/.yarn/patches/@google-genai-npm-1.0.1-e26f0f9af7.patch",
|
|
"@hello-pangea/dnd": "^16.6.0",
|
|
"@kangfenmao/keyv-storage": "^0.1.0",
|
|
"@langchain/community": "^0.3.36",
|
|
"@langchain/ollama": "^0.2.1",
|
|
"@mistralai/mistralai": "^1.7.5",
|
|
"@modelcontextprotocol/sdk": "^1.17.0",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@notionhq/client": "^2.2.15",
|
|
"@opentelemetry/api": "^1.9.0",
|
|
"@opentelemetry/core": "2.0.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.200.0",
|
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
"@opentelemetry/sdk-trace-web": "^2.0.0",
|
|
"@playwright/test": "^1.52.0",
|
|
"@reduxjs/toolkit": "^2.2.5",
|
|
"@shikijs/markdown-it": "^3.9.1",
|
|
"@swc/plugin-styled-components": "^7.1.5",
|
|
"@tanstack/react-query": "^5.27.0",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@tryfabric/martian": "^1.2.4",
|
|
"@types/cli-progress": "^3",
|
|
"@types/diff": "^7",
|
|
"@types/fs-extra": "^11",
|
|
"@types/lodash": "^4.17.5",
|
|
"@types/markdown-it": "^14",
|
|
"@types/md5": "^2.3.5",
|
|
"@types/node": "^22.17.1",
|
|
"@types/pako": "^1.0.2",
|
|
"@types/react": "^19.0.12",
|
|
"@types/react-dom": "^19.0.4",
|
|
"@types/react-infinite-scroll-component": "^5.0.0",
|
|
"@types/react-transition-group": "^4.4.12",
|
|
"@types/tinycolor2": "^1",
|
|
"@types/word-extractor": "^1",
|
|
"@uiw/codemirror-extensions-langs": "^4.25.1",
|
|
"@uiw/codemirror-themes-all": "^4.25.1",
|
|
"@uiw/react-codemirror": "^4.25.1",
|
|
"@vitejs/plugin-react-swc": "^3.9.0",
|
|
"@vitest/browser": "^3.2.4",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"@vitest/ui": "^3.2.4",
|
|
"@vitest/web-worker": "^3.2.4",
|
|
"@viz-js/lang-dot": "^1.0.5",
|
|
"@viz-js/viz": "^3.14.0",
|
|
"@xyflow/react": "^12.4.4",
|
|
"antd": "patch:antd@npm%3A5.27.0#~/.yarn/patches/antd-npm-5.27.0-aa91c36546.patch",
|
|
"archiver": "^7.0.1",
|
|
"async-mutex": "^0.5.0",
|
|
"axios": "^1.7.3",
|
|
"browser-image-compression": "^2.0.2",
|
|
"chardet": "^2.1.0",
|
|
"cli-progress": "^3.12.0",
|
|
"code-inspector-plugin": "^0.20.14",
|
|
"color": "^5.0.0",
|
|
"country-flag-emoji-polyfill": "0.1.8",
|
|
"dayjs": "^1.11.11",
|
|
"dexie": "^4.0.8",
|
|
"dexie-react-hooks": "^1.1.7",
|
|
"diff": "^7.0.0",
|
|
"docx": "^9.0.2",
|
|
"dotenv-cli": "^7.4.2",
|
|
"electron": "37.3.1",
|
|
"electron-builder": "26.0.15",
|
|
"electron-devtools-installer": "^3.2.0",
|
|
"electron-store": "^8.2.0",
|
|
"electron-updater": "6.6.4",
|
|
"electron-vite": "4.0.0",
|
|
"electron-window-state": "^5.0.3",
|
|
"emittery": "^1.0.3",
|
|
"emoji-picker-element": "^1.22.1",
|
|
"epub": "patch:epub@npm%3A1.3.0#~/.yarn/patches/epub-npm-1.3.0-8325494ffe.patch",
|
|
"eslint": "^9.22.0",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
"fast-diff": "^1.3.0",
|
|
"fast-xml-parser": "^5.2.0",
|
|
"fetch-socks": "1.3.2",
|
|
"franc-min": "^6.2.0",
|
|
"fs-extra": "^11.2.0",
|
|
"google-auth-library": "^9.15.1",
|
|
"html-to-image": "^1.11.13",
|
|
"husky": "^9.1.7",
|
|
"i18next": "^23.11.5",
|
|
"iconv-lite": "^0.6.3",
|
|
"isbinaryfile": "5.0.4",
|
|
"jaison": "^2.0.2",
|
|
"jest-styled-components": "^7.2.0",
|
|
"linguist-languages": "^8.0.0",
|
|
"lint-staged": "^15.5.0",
|
|
"lodash": "^4.17.21",
|
|
"lru-cache": "^11.1.0",
|
|
"lucide-react": "^0.525.0",
|
|
"macos-release": "^3.4.0",
|
|
"markdown-it": "^14.1.0",
|
|
"mermaid": "^11.9.0",
|
|
"mime": "^4.0.4",
|
|
"motion": "^12.10.5",
|
|
"notion-helper": "^1.3.22",
|
|
"npx-scope-finder": "^1.2.0",
|
|
"openai": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"p-queue": "^8.1.0",
|
|
"pdf-lib": "^1.17.1",
|
|
"playwright": "^1.52.0",
|
|
"prettier": "^3.5.3",
|
|
"prettier-plugin-sort-json": "^4.1.1",
|
|
"proxy-agent": "^6.5.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-error-boundary": "^6.0.0",
|
|
"react-hotkeys-hook": "^4.6.1",
|
|
"react-i18next": "^14.1.2",
|
|
"react-infinite-scroll-component": "^6.1.0",
|
|
"react-json-view": "^1.21.3",
|
|
"react-markdown": "^10.1.0",
|
|
"react-redux": "^9.1.2",
|
|
"react-router": "6",
|
|
"react-router-dom": "6",
|
|
"react-spinners": "^0.14.1",
|
|
"react-transition-group": "^4.4.5",
|
|
"redux": "^5.0.1",
|
|
"redux-persist": "^6.0.0",
|
|
"reflect-metadata": "0.2.2",
|
|
"rehype-katex": "^7.0.1",
|
|
"rehype-mathjax": "^7.1.0",
|
|
"rehype-parse": "^9.0.1",
|
|
"rehype-raw": "^7.0.0",
|
|
"rehype-stringify": "^10.0.1",
|
|
"remark-cjk-friendly": "^1.2.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-github-blockquote-alert": "^2.0.0",
|
|
"remark-math": "^6.0.0",
|
|
"remove-markdown": "^0.6.2",
|
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
"sass": "^1.88.0",
|
|
"sharp": "^0.34.3",
|
|
"shiki": "^3.9.1",
|
|
"strict-url-sanitise": "^0.0.1",
|
|
"string-width": "^7.2.0",
|
|
"styled-components": "^6.1.11",
|
|
"tar": "^7.4.3",
|
|
"tiny-pinyin": "^1.3.2",
|
|
"tokenx": "^1.1.0",
|
|
"tsx": "^4.20.3",
|
|
"typescript": "^5.6.2",
|
|
"undici": "6.21.2",
|
|
"unified": "^11.0.5",
|
|
"uuid": "^10.0.0",
|
|
"vite": "npm:rolldown-vite@latest",
|
|
"vitest": "^3.2.4",
|
|
"webdav": "^5.8.0",
|
|
"winston": "^3.17.0",
|
|
"winston-daily-rotate-file": "^5.0.0",
|
|
"word-extractor": "^1.0.4",
|
|
"zipread": "^1.3.3",
|
|
"zod": "^3.25.74"
|
|
},
|
|
"resolutions": {
|
|
"@codemirror/language": "6.11.3",
|
|
"@codemirror/lint": "6.8.5",
|
|
"@codemirror/view": "6.38.1",
|
|
"@langchain/core@npm:^0.3.26": "patch:@langchain/core@npm%3A0.3.44#~/.yarn/patches/@langchain-core-npm-0.3.44-41d5c3cb0a.patch",
|
|
"@langchain/openai@npm:^0.3.16": "patch:@langchain/openai@npm%3A0.3.16#~/.yarn/patches/@langchain-openai-npm-0.3.16-e525b59526.patch",
|
|
"@langchain/openai@npm:>=0.1.0 <0.4.0": "patch:@langchain/openai@npm%3A0.3.16#~/.yarn/patches/@langchain-openai-npm-0.3.16-e525b59526.patch",
|
|
"app-builder-lib@npm:26.0.13": "patch:app-builder-lib@npm%3A26.0.13#~/.yarn/patches/app-builder-lib-npm-26.0.13-a064c9e1d0.patch",
|
|
"app-builder-lib@npm:26.0.15": "patch:app-builder-lib@npm%3A26.0.15#~/.yarn/patches/app-builder-lib-npm-26.0.15-360e5b0476.patch",
|
|
"atomically@npm:^1.7.0": "patch:atomically@npm%3A1.7.0#~/.yarn/patches/atomically-npm-1.7.0-e742e5293b.patch",
|
|
"file-stream-rotator@npm:^0.6.1": "patch:file-stream-rotator@npm%3A0.6.1#~/.yarn/patches/file-stream-rotator-npm-0.6.1-eab45fb13d.patch",
|
|
"libsql@npm:^0.4.4": "patch:libsql@npm%3A0.4.7#~/.yarn/patches/libsql-npm-0.4.7-444e260fb1.patch",
|
|
"node-abi": "4.12.0",
|
|
"openai@npm:^4.77.0": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"openai@npm:^4.87.3": "patch:openai@npm%3A5.12.2#~/.yarn/patches/openai-npm-5.12.2-30b075401c.patch",
|
|
"pdf-parse@npm:1.1.1": "patch:pdf-parse@npm%3A1.1.1#~/.yarn/patches/pdf-parse-npm-1.1.1-04a6109b2a.patch",
|
|
"pkce-challenge@npm:^4.1.0": "patch:pkce-challenge@npm%3A4.1.0#~/.yarn/patches/pkce-challenge-npm-4.1.0-fbc51695a3.patch",
|
|
"undici": "6.21.2",
|
|
"vite": "npm:rolldown-vite@latest",
|
|
"tesseract.js@npm:*": "patch:tesseract.js@npm%3A6.0.1#~/.yarn/patches/tesseract.js-npm-6.0.1-2562a7e46d.patch"
|
|
},
|
|
"packageManager": "yarn@4.9.1",
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}": [
|
|
"prettier --write",
|
|
"eslint --fix"
|
|
],
|
|
"*.{json,md,yml,yaml,css,scss,html}": [
|
|
"prettier --write"
|
|
]
|
|
}
|
|
}
|