mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-25 03:10:08 +08:00
* refactor(ui): migrate switch component from heroui to radix-ui replace heroui switch implementation with radix-ui for better maintainability update package.json and yarn.lock to include new dependency * fix(eslint): enable heroui import restriction for deprecated Switch component * refactor(ui): update Switch component props from isSelected/onValueChange to checked/onCheckedChange Standardize Switch component props across the codebase to use checked/onCheckedChange instead of isSelected/onValueChange for better consistency with common React patterns. Also updates loading state prop from isLoading to loading and removes size prop where unnecessary. The changes include: - Replacing isSelected with checked - Replacing onValueChange with onCheckedChange - Updating isLoading to loading - Removing redundant size props - Adjusting styling to accommodate new loading state * refactor(switch): improve switch component styling and structure - Add default values for loading and disabled props - Update styling classes and add group cursor pointer - Restructure loading indicator and thumb positioning - Wrap DescriptionSwitch children in flex container * refactor(ui): improve switch component structure and usage - Restructure DescriptionSwitch to use explicit props instead of children - Add label, description, and position props for better customization - Update all switch usages in SettingsTab to use new props format * refactor(primitives): simplify switch props by omitting children Remove redundant children prop from CustomSwitchProps since it's already omitted from the parent type * fix(switch): add useId for label accessibility in DescriptionSwitch Ensure proper label association with switch input by generating unique ID using React's useId hook * refactor(settings): remove commented out SettingRowTitleSmall components * refactor(SettingsTab): add todo comment for memoization optimization * feat(switch): add size prop to customize switch dimensions Add sm, md, and lg size options to the Switch component with corresponding styles. This allows for better visual consistency across different UI contexts. * style(ui): adjust switch component styling and theme colors update switch component layout and spacing to improve consistency modify secondary-foreground color variable to use correct semantic token * feat(switch): add new switch component styles and animations - Add new switch.css file with gradient and transition styles - Update switch.tsx component with new styling classes and animations - Remove loader icon in favor of animated gradient effect * fix(i18n): Auto update translations for PR #11061 * style(primitives): remove redundant border style from switch component * refactor(switch): remove switch.css and update switch component styles Remove deprecated switch.css file and migrate styles to inline tailwind classes. Update disabled state styling to use opacity instead of linear gradient for better consistency. * refactor(switch): simplify switch thumb implementation Replace complex div structure with svg for loading state Adjust disabled opacity and loading state styling * style(switch): adjust thumb size and positioning for better consistency * feat(switch): add storybook documentation for switch component Add comprehensive Storybook documentation for the Switch component, including: - Basic usage examples - Different states (checked, disabled, loading) - Size variations - DescriptionSwitch variant - Real-world usage scenarios - Accessibility examples - Form integration examples Also remove redundant box-content class from switch styles * fix(switch): adjust thumb positioning for md and lg sizes * style(primitives): improve switch component styling and spacing - Add padding to the container - Simplify label height logic - Update typography classes for better consistency - Adjust switch container alignment * feat(switch): add size prop to DescriptionSwitch component Add support for sm, md, and lg sizes to DescriptionSwitch component with responsive text sizing. Also includes comprehensive Storybook documentation with examples of all sizes and states. * style(switch): align label text to right when isLeftSide is true * refactor(stories): clean up DescriptionSwitch stories by removing unused imports and simplifying JSX * refactor(ui): rename CustomizedSwitch to Switch for consistency Simplify component naming by removing redundant 'Customized' prefix and aligning with common naming conventions * refactor(switch): extract switch root styles into cva variants Improve maintainability by using class-variance-authority to manage switch root styles and variants * refactor(switch): extract thumb variants into separate cva function Improve maintainability by moving switch thumb styling logic into a dedicated variants configuration. This makes the component more readable and easier to modify. * feat(switch): add classNames prop for custom styling Allow custom class names to be applied to switch root, thumb, and thumbSvg elements for more flexible styling options. * feat(switch): add loading animation variants for switch thumb Extract loading animation logic into separate cva variants for better maintainability and reusability --------- Co-authored-by: GitHub Action <action@github.com>
436 lines
19 KiB
JSON
436 lines
19 KiB
JSON
{
|
|
"name": "CherryStudio",
|
|
"version": "2.0.0-alpha",
|
|
"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",
|
|
"packages/extension-table-plus"
|
|
]
|
|
}
|
|
},
|
|
"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",
|
|
"release": "node scripts/version.js",
|
|
"publish": "yarn build:check && yarn release patch push",
|
|
"pulish:artifacts": "cd packages/artifacts && npm publish && cd -",
|
|
"agents:generate": "NODE_ENV='development' drizzle-kit generate --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:push": "NODE_ENV='development' drizzle-kit push --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:studio": "NODE_ENV='development' drizzle-kit studio --config src/main/services/agents/drizzle.config.ts",
|
|
"agents:drop": "NODE_ENV='development' drizzle-kit drop --config src/main/services/agents/drizzle.config.ts",
|
|
"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": "concurrently -n \"node,web,ui\" -c \"cyan,magenta,green\" \"npm run typecheck:node\" \"npm run typecheck:web\" \"npm run typecheck:ui\"",
|
|
"typecheck:node": "tsgo --noEmit -p tsconfig.node.json --composite false",
|
|
"typecheck:web": "tsgo --noEmit -p tsconfig.web.json --composite false",
|
|
"typecheck:ui": "cd packages/ui && npm run type-check",
|
|
"check:i18n": "dotenv -e .env -- tsx scripts/check-i18n.ts",
|
|
"sync:i18n": "dotenv -e .env -- 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",
|
|
"update:upgrade-config": "tsx scripts/update-app-upgrade-config.ts",
|
|
"test": "vitest run --silent",
|
|
"test:main": "vitest run --project main",
|
|
"test:renderer": "vitest run --project renderer",
|
|
"test:aicore": "vitest run --project aiCore",
|
|
"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": "oxlint --deny-warnings && eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --cache",
|
|
"test:scripts": "vitest scripts",
|
|
"lint": "oxlint --fix && eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --cache && biome lint --write && biome format --write && yarn typecheck && yarn check:i18n && yarn format:check",
|
|
"lint:ox": "oxlint --fix && biome lint --write && biome format --write",
|
|
"format": "biome format --write && biome lint --write",
|
|
"format:check": "biome format && biome lint",
|
|
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && husky",
|
|
"claude": "dotenv -e .env -- claude",
|
|
"migrations:generate": "drizzle-kit generate --config ./migrations/sqlite-drizzle.config.ts",
|
|
"release:aicore:alpha": "yarn workspace @cherrystudio/ai-core version prerelease --preid alpha --immediate && yarn workspace @cherrystudio/ai-core build && yarn workspace @cherrystudio/ai-core npm publish --tag alpha --access public",
|
|
"release:aicore:beta": "yarn workspace @cherrystudio/ai-core version prerelease --preid beta --immediate && yarn workspace @cherrystudio/ai-core build && yarn workspace @cherrystudio/ai-core npm publish --tag beta --access public",
|
|
"release:aicore": "yarn workspace @cherrystudio/ai-core version patch --immediate && yarn workspace @cherrystudio/ai-core build && yarn workspace @cherrystudio/ai-core npm publish --access public",
|
|
"release:ai-sdk-provider": "yarn workspace @cherrystudio/ai-sdk-provider version patch --immediate && yarn workspace @cherrystudio/ai-sdk-provider build && yarn workspace @cherrystudio/ai-sdk-provider npm publish --access public"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "patch:@anthropic-ai/claude-agent-sdk@npm%3A0.1.53#~/.yarn/patches/@anthropic-ai-claude-agent-sdk-npm-0.1.53-4b77f4cf29.patch",
|
|
"@libsql/client": "0.14.0",
|
|
"@libsql/win32-x64-msvc": "^0.4.7",
|
|
"@napi-rs/system-ocr": "patch:@napi-rs/system-ocr@npm%3A1.0.2#~/.yarn/patches/@napi-rs-system-ocr-npm-1.0.2-59e7a78e8b.patch",
|
|
"@paymoapp/electron-shutdown-handler": "^1.1.2",
|
|
"@strongtz/win32-arm64-msvc": "^0.4.7",
|
|
"emoji-picker-element-data": "^1",
|
|
"express": "^5.1.0",
|
|
"font-list": "^2.0.0",
|
|
"graceful-fs": "^4.2.11",
|
|
"gray-matter": "^4.0.3",
|
|
"js-yaml": "^4.1.0",
|
|
"jsdom": "26.1.0",
|
|
"node-stream-zip": "^1.15.0",
|
|
"officeparser": "^4.2.0",
|
|
"os-proxy-config": "^1.1.2",
|
|
"qrcode.react": "^4.2.0",
|
|
"selection-hook": "^1.0.12",
|
|
"sharp": "^0.34.3",
|
|
"socket.io": "^4.8.1",
|
|
"stream-json": "^1.9.1",
|
|
"swagger-jsdoc": "^6.2.8",
|
|
"swagger-ui-express": "^5.0.1",
|
|
"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",
|
|
"@ai-sdk/amazon-bedrock": "^3.0.61",
|
|
"@ai-sdk/anthropic": "^2.0.49",
|
|
"@ai-sdk/cerebras": "^1.0.31",
|
|
"@ai-sdk/gateway": "^2.0.15",
|
|
"@ai-sdk/google": "patch:@ai-sdk/google@npm%3A2.0.43#~/.yarn/patches/@ai-sdk-google-npm-2.0.43-689ed559b3.patch",
|
|
"@ai-sdk/google-vertex": "^3.0.79",
|
|
"@ai-sdk/huggingface": "^0.0.10",
|
|
"@ai-sdk/mistral": "^2.0.24",
|
|
"@ai-sdk/openai": "patch:@ai-sdk/openai@npm%3A2.0.72#~/.yarn/patches/@ai-sdk-openai-npm-2.0.72-234e68da87.patch",
|
|
"@ai-sdk/perplexity": "^2.0.20",
|
|
"@ai-sdk/test-server": "^0.0.1",
|
|
"@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.910.0",
|
|
"@aws-sdk/client-bedrock-runtime": "^3.910.0",
|
|
"@aws-sdk/client-s3": "^3.910.0",
|
|
"@biomejs/biome": "2.2.4",
|
|
"@cherrystudio/ai-core": "workspace:^1.0.9",
|
|
"@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",
|
|
"@cherrystudio/extension-table-plus": "workspace:^",
|
|
"@cherrystudio/openai": "^6.9.0",
|
|
"@cherrystudio/ui": "workspace:*",
|
|
"@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-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": "^18.0.1",
|
|
"@langchain/community": "^1.0.0",
|
|
"@langchain/core": "patch:@langchain/core@npm%3A1.0.2#~/.yarn/patches/@langchain-core-npm-1.0.2-183ef83fe4.patch",
|
|
"@langchain/openai": "patch:@langchain/openai@npm%3A1.0.0#~/.yarn/patches/@langchain-openai-npm-1.0.0-474d0ad9d4.patch",
|
|
"@mistralai/mistralai": "^1.7.5",
|
|
"@modelcontextprotocol/sdk": "^1.17.5",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@notionhq/client": "^2.2.15",
|
|
"@openrouter/ai-sdk-provider": "^1.2.8",
|
|
"@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",
|
|
"@opeoginni/github-copilot-openai-compatible": "^0.1.21",
|
|
"@playwright/test": "^1.55.1",
|
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
"@radix-ui/react-switch": "^1.2.6",
|
|
"@reduxjs/toolkit": "^2.2.5",
|
|
"@shikijs/markdown-it": "^3.12.0",
|
|
"@swc/plugin-styled-components": "^8.0.4",
|
|
"@tailwindcss/vite": "^4.1.13",
|
|
"@tanstack/react-query": "^5.85.5",
|
|
"@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",
|
|
"@tiptap/extension-collaboration": "^3.2.0",
|
|
"@tiptap/extension-drag-handle": "patch:@tiptap/extension-drag-handle@npm%3A3.2.0#~/.yarn/patches/@tiptap-extension-drag-handle-npm-3.2.0-5a9ebff7c9.patch",
|
|
"@tiptap/extension-drag-handle-react": "^3.2.0",
|
|
"@tiptap/extension-image": "^3.2.0",
|
|
"@tiptap/extension-list": "^3.2.0",
|
|
"@tiptap/extension-mathematics": "^3.2.0",
|
|
"@tiptap/extension-mention": "^3.2.0",
|
|
"@tiptap/extension-node-range": "^3.2.0",
|
|
"@tiptap/extension-table-of-contents": "^3.2.0",
|
|
"@tiptap/extension-typography": "^3.2.0",
|
|
"@tiptap/extension-underline": "^3.2.0",
|
|
"@tiptap/pm": "^3.2.0",
|
|
"@tiptap/react": "^3.2.0",
|
|
"@tiptap/starter-kit": "^3.2.0",
|
|
"@tiptap/suggestion": "^3.2.0",
|
|
"@tiptap/y-tiptap": "^3.0.0",
|
|
"@truto/turndown-plugin-gfm": "^1.0.2",
|
|
"@tryfabric/martian": "^1.2.4",
|
|
"@types/cli-progress": "^3",
|
|
"@types/content-type": "^1.1.9",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/diff": "^7",
|
|
"@types/express": "^5",
|
|
"@types/fs-extra": "^11",
|
|
"@types/he": "^1",
|
|
"@types/html-to-text": "^9",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/lodash": "^4.17.5",
|
|
"@types/markdown-it": "^14",
|
|
"@types/md5": "^2.3.5",
|
|
"@types/mime-types": "^3",
|
|
"@types/node": "^22.17.1",
|
|
"@types/pako": "^1.0.2",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/react-infinite-scroll-component": "^5.0.0",
|
|
"@types/react-transition-group": "^4.4.12",
|
|
"@types/react-window": "^1",
|
|
"@types/stream-json": "^1",
|
|
"@types/swagger-jsdoc": "^6",
|
|
"@types/swagger-ui-express": "^4.1.8",
|
|
"@types/tinycolor2": "^1",
|
|
"@types/turndown": "^5.0.5",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/word-extractor": "^1",
|
|
"@typescript/native-preview": "latest",
|
|
"@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",
|
|
"ai": "^5.0.98",
|
|
"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",
|
|
"check-disk-space": "3.4.0",
|
|
"cheerio": "^1.1.2",
|
|
"chokidar": "^4.0.3",
|
|
"claude-code-plugins": "1.0.3",
|
|
"cli-progress": "^3.12.0",
|
|
"clsx": "^2.1.1",
|
|
"code-inspector-plugin": "^0.20.14",
|
|
"color": "^5.0.0",
|
|
"concurrently": "^9.2.1",
|
|
"country-flag-emoji-polyfill": "0.1.8",
|
|
"dayjs": "^1.11.11",
|
|
"dexie": "^4.0.8",
|
|
"dexie-react-hooks": "^1.1.7",
|
|
"diff": "^8.0.2",
|
|
"docx": "^9.0.2",
|
|
"dompurify": "^3.2.6",
|
|
"dotenv-cli": "^7.4.2",
|
|
"drizzle-kit": "^0.31.4",
|
|
"drizzle-orm": "^0.44.5",
|
|
"electron": "38.7.0",
|
|
"electron-builder": "26.1.0",
|
|
"electron-devtools-installer": "^3.2.0",
|
|
"electron-reload": "^2.0.0-alpha.1",
|
|
"electron-store": "^8.2.0",
|
|
"electron-updater": "patch:electron-updater@npm%3A6.7.0#~/.yarn/patches/electron-updater-npm-6.7.0-47b11bb0d4.patch",
|
|
"electron-vite": "4.0.1",
|
|
"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-import-zod": "^1.2.0",
|
|
"eslint-plugin-oxlint": "^1.15.0",
|
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
"express-validator": "^7.2.1",
|
|
"fast-diff": "^1.3.0",
|
|
"fast-xml-parser": "^5.2.0",
|
|
"fetch-socks": "1.3.2",
|
|
"framer-motion": "^12.23.12",
|
|
"franc-min": "^6.2.0",
|
|
"fs-extra": "^11.2.0",
|
|
"google-auth-library": "^9.15.1",
|
|
"he": "^1.2.0",
|
|
"html-tags": "^5.1.0",
|
|
"html-to-image": "^1.11.13",
|
|
"html-to-text": "^9.0.5",
|
|
"htmlparser2": "^10.0.0",
|
|
"husky": "^9.1.7",
|
|
"i18next": "^23.11.5",
|
|
"iconv-lite": "^0.6.3",
|
|
"ipaddr.js": "^2.2.0",
|
|
"isbinaryfile": "5.0.4",
|
|
"jaison": "^2.0.2",
|
|
"jest-styled-components": "^7.2.0",
|
|
"linguist-languages": "^8.1.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.10.1",
|
|
"mime": "^4.0.4",
|
|
"mime-types": "^3.0.1",
|
|
"motion": "^12.10.5",
|
|
"notion-helper": "^1.3.22",
|
|
"npx-scope-finder": "^1.2.0",
|
|
"oxlint": "^1.22.0",
|
|
"oxlint-tsgolint": "^0.2.0",
|
|
"p-queue": "^8.1.0",
|
|
"pdf-lib": "^1.17.1",
|
|
"pdf-parse": "^1.1.1",
|
|
"proxy-agent": "^6.5.0",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.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-player": "^3.3.1",
|
|
"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",
|
|
"shiki": "^3.12.0",
|
|
"strict-url-sanitise": "^0.0.1",
|
|
"string-width": "^7.2.0",
|
|
"striptags": "^3.2.0",
|
|
"styled-components": "^6.1.11",
|
|
"swr": "^2.3.6",
|
|
"tailwind-merge": "^3.3.1",
|
|
"tailwindcss": "^4.1.13",
|
|
"tar": "^7.4.3",
|
|
"tiny-pinyin": "^1.3.2",
|
|
"tokenx": "^1.1.0",
|
|
"tsx": "^4.20.3",
|
|
"turndown-plugin-gfm": "^1.0.2",
|
|
"tw-animate-css": "^1.3.8",
|
|
"typescript": "~5.8.2",
|
|
"undici": "6.21.2",
|
|
"unified": "^11.0.5",
|
|
"uuid": "^13.0.0",
|
|
"vite": "npm:rolldown-vite@7.1.5",
|
|
"vitest": "^3.2.4",
|
|
"webdav": "^5.8.0",
|
|
"winston": "^3.17.0",
|
|
"winston-daily-rotate-file": "^5.0.0",
|
|
"word-extractor": "^1.0.4",
|
|
"y-protocols": "^1.0.6",
|
|
"yaml": "^2.8.1",
|
|
"yjs": "^13.6.27",
|
|
"youtubei.js": "^15.0.1",
|
|
"zipread": "^1.3.3",
|
|
"zod": "^4.1.5"
|
|
},
|
|
"resolutions": {
|
|
"@smithy/types": "4.7.1",
|
|
"@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%3A1.0.2#~/.yarn/patches/@langchain-core-npm-1.0.2-183ef83fe4.patch",
|
|
"atomically@npm:^1.7.0": "patch:atomically@npm%3A1.7.0#~/.yarn/patches/atomically-npm-1.7.0-e742e5293b.patch",
|
|
"esbuild": "^0.25.0",
|
|
"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.24.0",
|
|
"openai@npm:^4.77.0": "npm:@cherrystudio/openai@6.5.0",
|
|
"openai@npm:^4.87.3": "npm:@cherrystudio/openai@6.5.0",
|
|
"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",
|
|
"tar-fs": "^2.1.4",
|
|
"undici": "6.21.2",
|
|
"vite": "npm:rolldown-vite@7.1.5",
|
|
"tesseract.js@npm:*": "patch:tesseract.js@npm%3A6.0.1#~/.yarn/patches/tesseract.js-npm-6.0.1-2562a7e46d.patch",
|
|
"@ai-sdk/openai@npm:^2.0.52": "patch:@ai-sdk/openai@npm%3A2.0.52#~/.yarn/patches/@ai-sdk-openai-npm-2.0.52-b36d949c76.patch",
|
|
"@img/sharp-darwin-arm64": "0.34.3",
|
|
"@img/sharp-darwin-x64": "0.34.3",
|
|
"@img/sharp-linux-arm": "0.34.3",
|
|
"@img/sharp-linux-arm64": "0.34.3",
|
|
"@img/sharp-linux-x64": "0.34.3",
|
|
"@img/sharp-win32-x64": "0.34.3",
|
|
"openai@npm:5.12.2": "npm:@cherrystudio/openai@6.5.0",
|
|
"@langchain/openai@npm:>=0.1.0 <0.6.0": "patch:@langchain/openai@npm%3A1.0.0#~/.yarn/patches/@langchain-openai-npm-1.0.0-474d0ad9d4.patch",
|
|
"@langchain/openai@npm:^0.3.16": "patch:@langchain/openai@npm%3A1.0.0#~/.yarn/patches/@langchain-openai-npm-1.0.0-474d0ad9d4.patch",
|
|
"@langchain/openai@npm:>=0.2.0 <0.7.0": "patch:@langchain/openai@npm%3A1.0.0#~/.yarn/patches/@langchain-openai-npm-1.0.0-474d0ad9d4.patch",
|
|
"@ai-sdk/openai@npm:^2.0.42": "patch:@ai-sdk/openai@npm%3A2.0.72#~/.yarn/patches/@ai-sdk-openai-npm-2.0.72-234e68da87.patch",
|
|
"@ai-sdk/google@npm:^2.0.40": "patch:@ai-sdk/google@npm%3A2.0.40#~/.yarn/patches/@ai-sdk-google-npm-2.0.40-47e0eeee83.patch",
|
|
"@ai-sdk/openai-compatible@npm:^1.0.27": "patch:@ai-sdk/openai-compatible@npm%3A1.0.27#~/.yarn/patches/@ai-sdk-openai-compatible-npm-1.0.27-06f74278cf.patch"
|
|
},
|
|
"packageManager": "yarn@4.9.1",
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}": [
|
|
"biome format --write --no-errors-on-unmatched",
|
|
"eslint --fix"
|
|
],
|
|
"*.{json,yml,yaml,css,html}": [
|
|
"biome format --write --no-errors-on-unmatched"
|
|
]
|
|
}
|
|
}
|