Files
CherryHQ-cherry-studio/package.json
fullex 87b2b64ba5 refactor(process-entry): rename main/preload entries to named files per naming §6.4
src/main/index.ts → main.ts and src/preload/index.ts → preload.ts, so the process entries stop occupying the barrel-reserved index filename (§6.4) without needing an exemption list. The rename is wired through electron.vite (main build.lib.entry — rollupOptions.input would bypass electron-vite's output-format detection — and the preload input key), package.json main (out/main/main.js), WindowManager's default preload filename, MainWindowService's webview preload path, and DbService's slow-query stack filter, which matches the bundled artifact name. preload.d.ts becomes globals.d.ts: sharing preload.ts's basename makes TypeScript drop the .d.ts as that file's presumed output declaration, and tsgo only applies its global Window augmentation when the declaration sorts before its importer, so the file keeps a distinct, alphabetically-early name. Entry-path mentions in code comments and reference docs follow.
2026-07-04 20:18:14 -07:00

485 lines
20 KiB
JSON

{
"name": "CherryStudio",
"version": "2.0.0-dev",
"private": true,
"description": "A powerful AI assistant for producer.",
"desktopName": "CherryStudio.desktop",
"main": "./out/main/main.js",
"author": "support@cherry-ai.com",
"homepage": "https://github.com/CherryHQ/cherry-studio",
"engines": {
"node": ">=24.11.1 <24.16.0"
},
"scripts": {
"start": "pnpm rebuild:electron && electron-vite preview",
"download:binaries": "node scripts/download-binaries.js",
"rebuild:electron": "electron-rebuild --force --only better-sqlite3",
"rebuild:node": "pnpm rebuild better-sqlite3",
"dev": "pnpm rebuild:electron && pnpm download:binaries && dotenv electron-vite dev",
"dev:watch": "pnpm rebuild:electron && dotenv electron-vite dev -- -w",
"debug": "pnpm rebuild:electron && dotenv -- electron-vite -- --inspect --sourcemap --remote-debugging-port=9222",
"build": "npm run typecheck && electron-vite build",
"build:check": "pnpm lint && pnpm docs:check-links && pnpm 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": "pnpm build:check && pnpm release patch push",
"publish:artifacts": "cd packages/artifacts && npm publish && cd -",
"analyze:renderer": "VISUALIZER_RENDERER=true pnpm build",
"analyze:main": "VISUALIZER_MAIN=true pnpm build",
"typecheck": "pnpm --filter @cherrystudio/ai-sdk-provider build && concurrently -n \"node,web,aicore\" -c \"cyan,magenta,yellow\" \"npm run typecheck:node\" \"npm run typecheck:web\" \"pnpm --filter @cherrystudio/ai-core typecheck\"",
"typecheck:node": "tsgo --noEmit -p tsconfig.node.json --composite false",
"typecheck:web": "tsgo --noEmit -p tsconfig.web.json --composite false",
"i18n:check": "dotenv -e .env -- tsx scripts/check-i18n.ts",
"i18n:extract": "i18next-cli extract",
"i18n:lint": "i18next-cli lint",
"i18n:hardcoded": "tsx scripts/check-hardcoded-strings.ts",
"i18n:hardcoded:strict": "cross-env I18N_STRICT=true tsx scripts/check-hardcoded-strings.ts",
"i18n:unused": "tsx scripts/check-unused-i18n.ts",
"i18n:remove-unused": "tsx scripts/check-unused-i18n.ts --clean",
"styles:legacy-vars": "tsx scripts/check-legacy-css-vars.ts",
"styles:legacy-vars:strict": "cross-env LEGACY_CSS_VARS_STRICT=true tsx scripts/check-legacy-css-vars.ts",
"styles:reminders:pr": "tsx scripts/check-pr-style-reminders.ts",
"styles:canonical": "tsx scripts/fix-tailwind-canonical-classes.ts",
"i18n:sync": "dotenv -e .env -- tsx scripts/sync-i18n.ts",
"i18n:translate": "dotenv -e .env -- tsx scripts/auto-translate-i18n.ts",
"i18n:all": "pnpm i18n:sync && pnpm i18n:translate",
"skills:sync": "tsx scripts/skills-sync.ts",
"skills:check": "tsx scripts/skills-check.ts",
"update:languages": "tsx scripts/update-languages.ts",
"update:upgrade-config": "tsx scripts/update-app-upgrade-config.ts",
"pretest": "pnpm rebuild:node",
"test": "vitest run --silent",
"pretest:main": "pnpm rebuild:node",
"test:main": "vitest run --project main",
"test:renderer": "vitest run --project renderer",
"test:aicore": "vitest run --project aiCore",
"test:pkg:ui": "vitest run --project ui",
"test:shared": "vitest run --project shared",
"test:provider-registry": "vitest run --project provider-registry",
"test:update": "pnpm test:renderer --update",
"test:coverage": "vitest run --coverage --silent",
"test:ui": "vitest --ui",
"test:watch": "vitest",
"test:e2e": "pnpm playwright test",
"test:lint": "oxlint --deny-warnings && cross-env NO_LEGACY_CSS_WARN=true eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --cache",
"test:scripts": "vitest scripts",
"lint": "oxlint --fix && cross-env NO_LEGACY_CSS_WARN=true eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --cache && pnpm typecheck && pnpm i18n:check && pnpm format",
"format": "biome format --write && biome lint --write",
"format:check": "biome format && biome lint",
"bench": "vitest bench --run",
"bench:main": "vitest bench --run --project main",
"bench:renderer": "vitest bench --run --project renderer",
"bench:aicore": "vitest bench --run --project aiCore",
"bench:shared": "vitest bench --run --project shared",
"docs:check-links": "tsx scripts/check-doc-links.ts",
"prepare": "git config blame.ignoreRevsFile .git-blame-ignore-revs && prek install",
"claude": "dotenv -e .env -- claude",
"db:migrations:generate": "drizzle-kit generate --config ./migrations/sqlite-drizzle.config.ts",
"db:migrations:check": "drizzle-kit check --config ./migrations/sqlite-drizzle.config.ts",
"changeset": "changeset",
"changeset:status": "changeset status",
"changeset:version": "changeset version && pnpm format",
"changeset:publish": "changeset publish",
"packages:build": "pnpm --filter @cherrystudio/ai-sdk-provider build && pnpm --filter @cherrystudio/ai-core build && pnpm --filter @cherrystudio/extension-table-plus build",
"packages:release": "pnpm packages:build && changeset publish",
"ci:basic-check": "pnpm test:lint && pnpm format:check && pnpm typecheck && pnpm i18n:check && pnpm i18n:hardcoded:strict && pnpm skills:check",
"ci:test-check": "pnpm test:main && pnpm test:renderer && pnpm test:aicore && pnpm test:shared && pnpm test:provider-registry && pnpm test:scripts",
"ci": "pnpm ci:basic-check && pnpm ci:test-check"
},
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "0.3.185",
"@expo/sudo-prompt": "^9.3.2",
"@larksuiteoapi/node-sdk": "^1.59.0",
"@napi-rs/canvas": "0.1.80",
"@napi-rs/system-ocr": "1.0.2",
"@paymoapp/electron-shutdown-handler": "1.1.2",
"@vectorstores/core": "^0.1.8",
"@vectorstores/env": "^0.1.0",
"@vectorstores/readers": "^0.1.8",
"better-sqlite3": "12.11.1",
"font-list": "2.0.0",
"graceful-fs": "4.2.11",
"grammy": "^1.36.3",
"gray-matter": "4.0.3",
"jsdom": "26.1.0",
"node-stream-zip": "1.15.0",
"officeparser": "4.2.0",
"os-proxy-config": "1.1.2",
"pdf-parse": "^2.4.5",
"pdfjs-dist": "5.4.296",
"selection-hook": "2.0.1",
"sharp": "0.34.5",
"sqlite-vec": "npm:@aiany/sqlite-vec@0.1.10-alpha.4.aiany.2",
"tesseract.js": "6.0.1",
"turndown": "7.2.0",
"ws": "^8.18.2",
"xxhash-wasm": "^1.1.0"
},
"devDependencies": {
"@agentic/exa": "^7.3.3",
"@agentic/searxng": "^7.3.3",
"@agentic/tavily": "^7.3.3",
"@ai-sdk/amazon-bedrock": "^4.0.96",
"@ai-sdk/anthropic": "^3.0.71",
"@ai-sdk/azure": "^3.0.54",
"@ai-sdk/cerebras": "^2.0.45",
"@ai-sdk/cohere": "^3.0.30",
"@ai-sdk/devtools": "^0.0.17",
"@ai-sdk/gateway": "^3.0.104",
"@ai-sdk/google": "3.0.64",
"@ai-sdk/google-vertex": "^4.0.112",
"@ai-sdk/groq": "^3.0.35",
"@ai-sdk/huggingface": "^1.0.43",
"@ai-sdk/mistral": "^3.0.30",
"@ai-sdk/openai": "^3.0.53",
"@ai-sdk/openai-compatible": "2.0.37",
"@ai-sdk/perplexity": "^3.0.29",
"@ai-sdk/provider": "^3.0.8",
"@ai-sdk/provider-utils": "^4.0.23",
"@ai-sdk/react": "^3.0.147",
"@ai-sdk/test-server": "^1.0.3",
"@ai-sdk/togetherai": "^2.0.45",
"@ai-sdk/xai": "^3.0.83",
"@aiden0z/pptx-renderer": "1.2.2",
"@anthropic-ai/sdk": "^0.81.0",
"@aws-sdk/client-s3": "^3.998.0",
"@biomejs/biome": "2.2.4",
"@changesets/changelog-github": "^0.5.2",
"@changesets/cli": "^2.29.8",
"@cherrystudio/ai-core": "workspace:*",
"@cherrystudio/analytics-client": "^1.3.0",
"@cherrystudio/extension-table-plus": "workspace:^",
"@cherrystudio/openai": "6.15.0",
"@cherrystudio/provider-registry": "workspace:*",
"@cherrystudio/ui": "workspace:*",
"@codemirror/lang-json": "6.0.2",
"@codemirror/lint": "6.9.5",
"@codemirror/view": "6.39.16",
"@dagrejs/dagre": "^3.0.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@e965/xlsx": "^0.20.3",
"@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",
"@electron/rebuild": "^4.0.4",
"@elysia/bearer": "^1.4.4",
"@elysia/cors": "^1.4.2",
"@elysia/node": "^1.4.6",
"@elysia/openapi": "^1.4.15",
"@eslint-react/eslint-plugin": "^1.36.1",
"@eslint/js": "^9.22.0",
"@floating-ui/dom": "1.7.3",
"@google/genai": "^1.46.0",
"@hello-pangea/dnd": "^18.0.1",
"@hookform/resolvers": "^5.0.1",
"@iconify-json/material-icon-theme": "^1.2.56",
"@iconify/react": "^6.0.2",
"@j178/prek": "^0.3.4",
"@mistralai/mistralai": "^1.7.5",
"@modelcontextprotocol/sdk": "1.27.1",
"@mozilla/readability": "^0.6.0",
"@notionhq/client": "^2.2.15",
"@openrouter/ai-sdk-provider": "^2.10.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/context-async-hooks": "2.0.1",
"@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",
"@opeoginni/github-copilot-openai-compatible": "^1.0.0",
"@paddleocr/api-sdk": "^0.2.0",
"@pierre/diffs": "^1.1.3",
"@playwright/test": "^1.55.1",
"@radix-ui/react-context-menu": "^2.2.16",
"@radix-ui/react-switch": "^1.2.6",
"@shikijs/markdown-it": "^3.12.0",
"@swc/core": "^1.15.8",
"@tailwindcss/vite": "^4.1.13",
"@tanstack/react-router": "^1.139.3",
"@tanstack/react-virtual": "^3.13.24",
"@tanstack/router-plugin": "^1.139.3",
"@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/core": "3.26.1",
"@tiptap/extension-code-block": "3.26.1",
"@tiptap/extension-collaboration": "3.26.1",
"@tiptap/extension-drag-handle": "3.26.1",
"@tiptap/extension-drag-handle-react": "3.26.1",
"@tiptap/extension-heading": "3.26.1",
"@tiptap/extension-image": "3.26.1",
"@tiptap/extension-link": "3.26.1",
"@tiptap/extension-list": "3.26.1",
"@tiptap/extension-mathematics": "3.26.1",
"@tiptap/extension-mention": "3.26.1",
"@tiptap/extension-node-range": "3.26.1",
"@tiptap/extension-table-of-contents": "3.26.1",
"@tiptap/extension-typography": "3.26.1",
"@tiptap/extension-underline": "3.26.1",
"@tiptap/markdown": "3.26.1",
"@tiptap/pm": "3.26.1",
"@tiptap/react": "3.26.1",
"@tiptap/starter-kit": "3.26.1",
"@tiptap/suggestion": "3.26.1",
"@tiptap/y-tiptap": "^3.0.5",
"@tryfabric/martian": "^1.2.4",
"@types/adm-zip": "^0.5.7",
"@types/better-sqlite3": "^7.6.13",
"@types/cli-progress": "^3",
"@types/diff": "^7",
"@types/fs-extra": "^11",
"@types/hast": "^3.0.4",
"@types/html-to-text": "^9",
"@types/json-schema": "7.0.15",
"@types/markdown-it": "^14",
"@types/md5": "^2.3.5",
"@types/mdast": "4.0.4",
"@types/mime-types": "^3",
"@types/node": "24.10.4",
"@types/pako": "^1.0.2",
"@types/qrcode": "^1.5.6",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/react-transition-group": "^4.4.12",
"@types/react-window": "^1",
"@types/semver": "^7.7.1",
"@types/stream-json": "^1",
"@types/tinycolor2": "^1",
"@types/turndown": "^5.0.5",
"@types/unist": "3.0.3",
"@types/uuid": "^10.0.0",
"@types/word-extractor": "^1",
"@types/ws": "^8.18.1",
"@typescript/native-preview": "7.0.0-dev.20260204.1",
"@uiw/codemirror-extensions-langs": "4.25.7",
"@uiw/codemirror-themes-all": "4.25.7",
"@uiw/react-codemirror": "4.25.7",
"@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",
"adm-zip": "0.4.16",
"ai": "6.0.143",
"ansi-to-react": "^6.2.6",
"archiver": "^8.0.0",
"async-mutex": "^0.5.0",
"axios": "^1.15.0",
"bonjour-service": "1.3.0",
"browser-image-compression": "^2.0.2",
"builder-util-runtime": "9.5.0",
"chalk": "4.1.2",
"chardet": "^2.1.0",
"cheerio": "^1.1.2",
"chokidar": "^4.0.3",
"cli-progress": "^3.12.0",
"clsx": "^2.1.1",
"code-inspector-plugin": "^0.20.14",
"codemirror-lang-mermaid": "0.5.0",
"color": "^5.0.0",
"commander": "^14.0.2",
"concurrently": "^9.2.1",
"country-flag-emoji-polyfill": "0.1.8",
"croner": "^10.0.1",
"cross-env": "^10.1.0",
"dayjs": "^1.11.11",
"dexie": "^4.0.8",
"dexie-react-hooks": "^1.1.7",
"diff": "^8.0.3",
"docx": "^9.0.2",
"docx-preview": "0.3.7",
"dompurify": "^3.2.6",
"dotenv": "16.6.1",
"dotenv-cli": "^7.4.2",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.5",
"electron": "41.8.0",
"electron-builder": "26.15.3",
"electron-devtools-installer": "^3.2.0",
"electron-reload": "^2.0.0-alpha.1",
"electron-store": "^8.2.0",
"electron-updater": "6.7.0",
"electron-vite": "5.0.0",
"elysia": "^1.4.28",
"emittery": "^1.0.3",
"emoji-picker-element": "^1.22.1",
"emoji-picker-element-data": "1",
"epub": "2.1.1",
"es-toolkit": "^1.49.0",
"eslint": "^9.22.0",
"eslint-import-resolver-typescript": "^4.4.5",
"eslint-plugin-import-x": "^4.17.1",
"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",
"fast-diff": "^1.3.0",
"fast-xml-parser": "5.4.1",
"fetch-socks": "1.3.2",
"form-data": "4.0.5",
"fractional-indexing": "^3.2.0",
"franc-min": "^6.2.0",
"fs-extra": "^11.2.0",
"google-auth-library": "^9.15.1",
"html-to-image": "^1.11.13",
"html-to-text": "^9.0.5",
"htmlparser2": "^10.0.0",
"i18next": "^23.11.5",
"i18next-cli": "^1.64.1",
"i18next-resources-to-backend": "^1.2.1",
"iconv-lite": "^0.6.3",
"ignore": "^7.0.5",
"ipaddr.js": "^2.2.0",
"isbinaryfile": "5.0.4",
"jaison": "^2.0.2",
"js-base64": "3.7.7",
"json-schema": "0.4.0",
"jsonc-parser": "^3.3.1",
"katex": "0.16.22",
"ky": "1.8.1",
"linguist-languages": "^8.1.0",
"lru-cache": "^11.1.0",
"lucide-react": "^0.525.0",
"macos-release": "^3.4.0",
"markdown-it": "^14.1.1",
"md5": "2.3.0",
"mermaid": "^11.13.0",
"mime": "^4.0.4",
"mime-types": "^3.0.1",
"motion": "^12.42.0",
"nanoid": "3.3.11",
"notion-helper": "^1.3.22",
"npx-scope-finder": "^1.2.0",
"og-crd": "^0.0.2",
"ollama-ai-provider-v2": "3.3.1",
"open": "^8.4.2",
"oxlint": "^1.56.0",
"oxlint-tsgolint": "^0.17.3",
"p-queue": "^8.1.0",
"pako": "1.0.11",
"partial-json": "0.1.7",
"pdf-lib": "^1.17.1",
"proxy-agent": "^6.5.0",
"qrcode": "^1.5.4",
"qrcode.react": "^4.2.0",
"rc-input": "1.8.0",
"rc-select": "14.16.6",
"rc-virtual-list": "3.18.6",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-error-boundary": "^6.0.0",
"react-hook-form": "^7.55.0",
"react-hotkeys-hook": "^4.6.1",
"react-i18next": "^14.1.2",
"react-player": "^3.3.1",
"react-spinners": "^0.14.1",
"react-transition-group": "^4.4.5",
"reflect-metadata": "0.2.2",
"rehype-parse": "^9.0.1",
"rehype-stringify": "^10.0.1",
"remark-github-blockquote-alert": "^2.0.0",
"remark-parse": "11.0.0",
"remark-stringify": "11.0.0",
"remove-markdown": "^0.6.2",
"rollup-plugin-visualizer": "^5.12.0",
"semver": "7.7.1",
"shiki": "^3.12.0",
"stream-json": "^1.9.1",
"streamdown": "^2.5.0",
"strict-url-sanitise": "^0.0.1",
"string-width": "^7.2.0",
"swr": "^2.3.6",
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.13",
"tar": "^7.5.9",
"telegram-markdown-v2": "^0.0.4",
"tiny-pinyin": "^1.3.2",
"tokenx": "^1.1.0",
"ts-morph": "^27.0.2",
"tsx": "^4.20.3",
"turndown-plugin-gfm": "^1.0.2",
"tw-animate-css": "^1.3.8",
"typescript": "~5.8.3",
"undici": "6.21.2",
"unified": "^11.0.5",
"unist-util-visit": "5.0.0",
"uuid": "^13.0.0",
"virtua": "^0.49.1",
"vite": "npm:rolldown-vite@7.3.0",
"vitest": "^3.2.4",
"voyage-ai-provider": "^3.0.0",
"webdav": "^5.9.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"
},
"packageManager": "pnpm@11.8.0+sha512.c1f5e7c4cb241c8f174b743851d82f42b802324afc8b0f116b96adb15aa06664948dde36960a3ba1079ba5b4b29dd0140135b94b5b5f5263592249d68e555f26",
"optionalDependencies": {
"@aiany/sqlite-vec-darwin-arm64": "0.1.10-alpha.4.aiany.2",
"@aiany/sqlite-vec-darwin-x64": "0.1.10-alpha.4.aiany.2",
"@aiany/sqlite-vec-linux-arm64": "0.1.10-alpha.4.aiany.2",
"@aiany/sqlite-vec-linux-x64": "0.1.10-alpha.4.aiany.2",
"@aiany/sqlite-vec-windows-arm64": "0.1.10-alpha.4.aiany.2",
"@aiany/sqlite-vec-windows-x64": "0.1.10-alpha.4.aiany.2",
"@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.168",
"@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.168",
"@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.168",
"@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.168",
"@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.168",
"@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.168",
"@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.168",
"@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.168",
"@img/sharp-darwin-arm64": "0.34.5",
"@img/sharp-darwin-x64": "0.34.5",
"@img/sharp-libvips-darwin-arm64": "1.2.4",
"@img/sharp-libvips-darwin-x64": "1.2.4",
"@img/sharp-libvips-linux-arm64": "1.2.4",
"@img/sharp-libvips-linux-x64": "1.2.4",
"@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
"@img/sharp-libvips-linuxmusl-x64": "1.2.4",
"@img/sharp-linux-arm64": "0.34.5",
"@img/sharp-linux-x64": "0.34.5",
"@img/sharp-linuxmusl-arm64": "0.34.5",
"@img/sharp-linuxmusl-x64": "0.34.5",
"@img/sharp-win32-arm64": "0.34.5",
"@img/sharp-win32-x64": "0.34.5",
"@napi-rs/canvas-darwin-arm64": "0.1.97",
"@napi-rs/canvas-darwin-x64": "0.1.97",
"@napi-rs/canvas-linux-arm64-gnu": "0.1.97",
"@napi-rs/canvas-linux-arm64-musl": "0.1.97",
"@napi-rs/canvas-linux-x64-gnu": "0.1.97",
"@napi-rs/canvas-linux-x64-musl": "0.1.97",
"@napi-rs/canvas-win32-arm64-msvc": "0.1.97",
"@napi-rs/canvas-win32-x64-msvc": "0.1.97",
"@napi-rs/system-ocr-darwin-arm64": "1.0.2",
"@napi-rs/system-ocr-darwin-x64": "1.0.2",
"@napi-rs/system-ocr-win32-arm64-msvc": "1.0.2",
"@napi-rs/system-ocr-win32-x64-msvc": "1.0.2"
}
}