Files
FastGPT/projects/app/package.json
T
DigHuang 3df8908851 feat(sandbox): support multimedia preview and source/preview toggle in editor (#6723)
* style: re-component Editor

* style: re-component Editor

* feat: sandbox file preview support with binary detection and mime type handling

* feat: preview support for markdown, svg, and html files in sandbox editor

* feat(sandbox): support multimedia preview and source/preview toggle in editor

* fix: XSS SVG rendering with MyPhotoView

* refactor: blob URL lifecycle management, improve filename encoding in downloads

* feat: implement S3-based HTML preview for sandbox editor and add PDF support to binary file detection

* refactor: improve sandbox editor stability by adding file size validation

* feat: introduce fileService to encapsulate sandbox file operations and add unit tests

* refactor: secure HTML sandbox preview by fetching content from server and injecting CSP meta tags

* refactor: replace unified file operation API with dedicated endpoints for list, read, write, and download operations

* chore: remove packageManager field from package.json

* fix: sandbox file read error message

* refactor: improve sandbox editor UI styling, type safety, and CSP security policy

* feat: HTML preview link API and standardize sandbox request/response types

* fix: improve log view layout responsiveness by adding overflow handling and flex constraints

* perf: fix review

---------

Co-authored-by: archer <545436317@qq.com>
2026-04-10 23:02:59 +08:00

113 lines
3.5 KiB
JSON

{
"name": "app",
"version": "4.14.10.1",
"private": false,
"scripts": {
"dev": "NODE_OPTIONS='--max-old-space-size=8192' npm run build:workers && next dev",
"dev:skill": "NODE_OPTIONS='--max-old-space-size=8192' npm run build:workers && tsx server.ts",
"dev:webpack": "NODE_OPTIONS='--max-old-space-size=8192' npm run build:workers && WEBPACK=1 next dev --webpack",
"build": "npm run build:workers && next build --debug --webpack",
"start": "NODE_ENV=production tsx server.ts",
"build:workers": "npx tsx scripts/build-workers.ts",
"typecheck": "tsc --noEmit --pretty",
"build:workers:watch": "npx tsx scripts/build-workers.ts --watch"
},
"engines": {
"node": ">=20",
"pnpm": "9.x"
},
"dependencies": {
"@chakra-ui/anatomy": "catalog:",
"@chakra-ui/icons": "catalog:",
"@chakra-ui/next-js": "catalog:",
"@chakra-ui/react": "catalog:",
"@chakra-ui/styled-system": "catalog:",
"@chakra-ui/system": "catalog:",
"@dagrejs/dagre": "^1.1.4",
"@emotion/react": "catalog:",
"@emotion/styled": "catalog:",
"@fastgpt-sdk/storage": "catalog:",
"@fastgpt/global": "workspace:*",
"@fastgpt/service": "workspace:*",
"@fastgpt/web": "workspace:*",
"@fortaine/fetch-event-source": "^3.0.6",
"@modelcontextprotocol/sdk": "catalog:",
"@monaco-editor/react": "^4.7.0",
"@node-rs/jieba": "2.0.1",
"@scalar/api-reference-react": "^0.8.1",
"@tanstack/react-query": "^4.24.10",
"ahooks": "^3.9.5",
"archiver": "^7.0.1",
"axios": "catalog:",
"date-fns": "catalog:",
"dayjs": "catalog:",
"echarts": "5.4.1",
"echarts-gl": "2.0.9",
"esbuild": "^0.25.11",
"framer-motion": "9.1.7",
"hyperdown": "^2.4.29",
"i18next": "catalog:",
"immer": "^9.0.19",
"ip2region.js": "^3.1.6",
"js-yaml": "catalog:",
"json5": "catalog:",
"jsondiffpatch": "^0.7.2",
"jsonwebtoken": "^9.0.2",
"lodash": "catalog:",
"jszip": "^3.10.1",
"mermaid": "^10.9.4",
"mime": "catalog:",
"minio": "catalog:",
"nanoid": "^5.1.3",
"next": "catalog:",
"next-i18next": "catalog:",
"nprogress": "^0.2.0",
"p-limit": "^7.2.0",
"qrcode": "^1.5.4",
"react": "catalog:",
"react-dom": "catalog:",
"react-hook-form": "7.43.1",
"react-i18next": "catalog:",
"react-markdown": "^9.0.1",
"react-syntax-highlighter": "^15.5.0",
"react-textarea-autosize": "^8.5.4",
"reactflow": "^11.7.4",
"recharts": "^2.15.0",
"rehype-external-links": "^3.0.0",
"rehype-katex": "^7.0.0",
"remark-breaks": "^4.0.0",
"remark-gfm": "^4.0.0",
"remark-math": "^6.0.0",
"request-ip": "^3.3.0",
"sass": "^1.58.3",
"http-proxy": "^1.18.1",
"undici": "^7.18.2",
"use-context-selector": "^1.4.4",
"zod": "catalog:"
},
"devDependencies": {
"@types/http-proxy": "^1.17.15",
"@next/bundle-analyzer": "16.1.6",
"@svgr/webpack": "^6.5.1",
"@types/archiver": "^6.0.2",
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.3",
"@types/lodash": "catalog:",
"@types/node": "^20.14.2",
"@types/nprogress": "^0.2.0",
"@types/qrcode": "^1.5.5",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@types/react-syntax-highlighter": "^15.5.6",
"@types/request-ip": "^0.0.37",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"eslint": "catalog:",
"eslint-config-next": "catalog:",
"next-rspack": "catalog:",
"tsx": "^4.20.6",
"typescript": "^5.1.3",
"vitest": "^3.0.9"
}
}