返回 oh-my-ppt
package.json
根目录 / package.json
1 {
2 "name": "oh-my-ppt",
3 "version": "2.2.0",
4 "description": "Oh My PPT - Local-first AI presentation workbench",
5 "main": "./out/main/index.js",
6 "author": "arcsin1",
7 "homepage": "https://github.com/arcsin1/oh-my-ppt",
8 "license": "Apache-2.0",
9 "type": "module",
10 "packageManager": "pnpm@10.10.0",
11 "engines": {
12 "node": ">=20",
13 "pnpm": ">=10.0.0 <11.0.0"
14 },
15 "scripts": {
16 "format": "prettier --write .",
17 "lint": "eslint --cache .",
18 "test": "vitest run",
19 "test:watch": "vitest",
20 "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
21 "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
22 "typecheck": "npm run typecheck:node && npm run typecheck:web",
23 "start": "electron-vite preview",
24 "dev": "electron-vite dev",
25 "build": "electron-vite build",
26 "postinstall": "electron-builder install-app-deps",
27 "build:unpack": "npm run build && electron-builder --dir",
28 "build:win": "npm run build && electron-builder --win",
29 "build:mac": "npm run build && electron-builder --mac",
30 "build:linux": "npm run build && electron-builder --linux",
31 "db:generate": "drizzle-kit generate",
32 "db:migrate": "drizzle-kit migrate",
33 "db:studio": "drizzle-kit studio",
34 "electron:generate-icons": "npx @arcsin1/electron-icon-builder --input=./resources/icon.png --output=build --flatten"
35 },
36 "dependencies": {
37 "@arcsin1/html2pptx": "^0.0.10",
38 "@arcsin1/pptx-ooxml-geometry": "^0.0.2",
39 "@arcsin1/pptx2json": "^0.1.9",
40 "@arcsin1/presentation-editor-runtime": "^0.0.6",
41 "@chenglou/pretext": "^0.0.6",
42 "@dnd-kit/core": "^6.3.1",
43 "@dnd-kit/sortable": "^10.0.0",
44 "@dnd-kit/utilities": "^3.2.2",
45 "@electron-toolkit/preload": "^3.0.2",
46 "@electron-toolkit/utils": "^4.0.0",
47 "@google/genai": "^2.7.0",
48 "@joplin/turndown-plugin-gfm": "^1.0.64",
49 "@langchain/anthropic": "^1.3.29",
50 "@langchain/core": "^1.1.47",
51 "@langchain/google-genai": "^2.1.31",
52 "@langchain/langgraph": "^1.3.0",
53 "@langchain/openai": "^1.4.5",
54 "@libsql/client": "^0.14.0",
55 "@node-rs/jieba": "^2.0.1",
56 "@radix-ui/react-alert-dialog": "^1.1.15",
57 "@radix-ui/react-checkbox": "^1.3.4",
58 "@radix-ui/react-dialog": "^1.1.4",
59 "@radix-ui/react-dropdown-menu": "^2.1.4",
60 "@radix-ui/react-popover": "^1.1.15",
61 "@radix-ui/react-progress": "^1.1.1",
62 "@radix-ui/react-scroll-area": "^1.2.2",
63 "@radix-ui/react-select": "^2.1.4",
64 "@radix-ui/react-slot": "^1.1.1",
65 "@radix-ui/react-tabs": "^1.1.2",
66 "@radix-ui/react-toast": "^1.2.4",
67 "@radix-ui/react-toggle-group": "^1.1.11",
68 "@radix-ui/react-tooltip": "^1.2.8",
69 "@tanstack/react-virtual": "^3.11.2",
70 "@uiw/react-color": "^2.10.3",
71 "chart.js": "^4.5.1",
72 "cheerio": "^1.2.0",
73 "class-variance-authority": "^0.7.1",
74 "clsx": "^2.1.1",
75 "dayjs": "^1.11.20",
76 "deepagents": "^1.10.2",
77 "domhandler": "^6.0.1",
78 "drizzle-orm": "^0.44.5",
79 "electron-log": "^5.4.3",
80 "electron-updater": "^6.3.9",
81 "fflate": "^0.8.2",
82 "fonteditor-core": "^2.6.3",
83 "isomorphic-git": "^1.37.6",
84 "katex": "^0.16.45",
85 "langchain": "^1.4.1",
86 "lru-cache": "^11.5.0",
87 "lucide-react": "^0.574.0",
88 "mammoth": "^1.12.0",
89 "mdast-util-from-markdown": "^2.0.3",
90 "mdast-util-gfm": "^3.1.0",
91 "mdast-util-to-string": "^4.0.0",
92 "micromark-extension-gfm": "^3.0.0",
93 "nanoid": "^5.1.9",
94 "p-limit": "^3.1.0",
95 "papaparse": "^5.5.3",
96 "pdf-lib": "^1.17.1",
97 "pngjs": "^7.0.0",
98 "react-markdown": "^10.1.0",
99 "react-router-dom": "^7.1.1",
100 "slate": "^0.124.1",
101 "slate-history": "^0.113.1",
102 "slate-react": "^0.124.2",
103 "sonner": "^2.0.7",
104 "tailwind-merge": "^3.0.1",
105 "turndown": "^7.2.4",
106 "undici": "^8.3.0",
107 "woff2-encoder": "^2.0.0",
108 "xlsx": "^0.18.5",
109 "zod": "^4.4.3",
110 "zustand": "^5.0.3"
111 },
112 "devDependencies": {
113 "@electron-toolkit/eslint-config-prettier": "^3.0.0",
114 "@electron-toolkit/eslint-config-ts": "^3.1.0",
115 "@electron-toolkit/tsconfig": "^2.0.0",
116 "@tailwindcss/postcss": "^4.2.2",
117 "@types/mdast": "^4.0.4",
118 "@types/node": "^22.19.1",
119 "@types/react": "^19.2.7",
120 "@types/react-dom": "^19.2.3",
121 "@vitejs/plugin-react": "^5.1.1",
122 "autoprefixer": "^10.4.20",
123 "drizzle-kit": "^0.31.4",
124 "electron": "^39.2.6",
125 "electron-builder": "^26.0.12",
126 "electron-vite": "^5.0.0",
127 "eslint": "^9.39.1",
128 "eslint-plugin-react": "^7.37.5",
129 "eslint-plugin-react-hooks": "^7.0.1",
130 "eslint-plugin-react-refresh": "^0.4.24",
131 "happy-dom": "^20.9.0",
132 "postcss": "^8.4.49",
133 "prettier": "^3.7.4",
134 "react": "^19.2.1",
135 "react-dom": "^19.2.1",
136 "tailwindcss": "^4.0.0",
137 "typescript": "^5.9.3",
138 "vite": "^7.2.6",
139 "vitest": "^4.1.6"
140 },
141 "pnpm": {
142 "supportedArchitectures": {
143 "os": [
144 "current",
145 "darwin",
146 "win32"
147 ],
148 "cpu": [
149 "current",
150 "arm64",
151 "x64"
152 ]
153 },
154 "onlyBuiltDependencies": [
155 "@google/genai",
156 "electron",
157 "electron-winstaller",
158 "esbuild",
159 "protobufjs"
160 ],
161 "overrides": {
162 "@langchain/core": "^1.1.47",
163 "@langchain/langgraph": "^1.3.0"
164 }
165 }
166 }
167
167 lines JSON