fad9760265
- 新增 Node 服务端(Hono + Hocuspocus + node:sqlite),数据保存在服务器 - 基于 Yjs 的多端实时同步,本机 IndexedDB 离线缓存,撤销只针对本机操作 - 空间(标签)有独立地址,增删改通过接口同步到所有设备 - 口令登录(签名 Cookie 会话、登录限流、同源校验) - 图片上传到服务器,过大照片上传前自动压缩 - 历史版本(自动/手动保存、一键恢复)、跨空间搜索、在线设备 - 随机油画加载动画(Painting Loaders,本地收录 p5 / p5.brush) - 选中样式与拖拽性能优化:拖动结束后才同步位置 - Docker / docker-compose 部署,README 与 CLAUDE.md 更新
75 lines
2.3 KiB
JSON
75 lines
2.3 KiB
JSON
{
|
|
"name": "boundless",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "run-p dev:server dev:web",
|
|
"dev:web": "vite",
|
|
"dev:server": "node --experimental-strip-types --disable-warning=ExperimentalWarning --env-file-if-exists=.env --watch server/index.ts",
|
|
"start": "node --experimental-strip-types --disable-warning=ExperimentalWarning --env-file-if-exists=.env server/index.ts",
|
|
"build": "run-p type-check \"build-only {@}\" --",
|
|
"preview": "run-s build-only start",
|
|
"test:unit": "vitest",
|
|
"test:e2e": "playwright test",
|
|
"build-only": "vite build",
|
|
"type-check": "vue-tsc --build",
|
|
"lint": "run-s \"lint:*\"",
|
|
"lint:oxlint": "oxlint . --fix",
|
|
"lint:eslint": "eslint . --fix --cache",
|
|
"format": "prettier --write --experimental-cli src/"
|
|
},
|
|
"dependencies": {
|
|
"@hocuspocus/extension-database": "4.7.1",
|
|
"@hocuspocus/provider": "4.7.1",
|
|
"@hocuspocus/server": "4.7.1",
|
|
"@hono/node-server": "2.1.5",
|
|
"@lucide/vue": "^1.31.0",
|
|
"@vue-flow/background": "^1.3.2",
|
|
"@vue-flow/controls": "^1.1.3",
|
|
"@vue-flow/core": "^1.48.2",
|
|
"@vue-flow/minimap": "^1.5.4",
|
|
"@vue-flow/node-resizer": "^1.5.1",
|
|
"@vueuse/core": "^14.4.0",
|
|
"crossws": "0.4.15",
|
|
"hono": "4.13.13",
|
|
"pinia": "^4.0.2",
|
|
"vue": "^3.5.40",
|
|
"vue-router": "^5.2.0",
|
|
"y-indexeddb": "9.0.12",
|
|
"yjs": "13.6.33"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.61.1",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@tsconfig/node24": "^24.0.4",
|
|
"@types/jsdom": "^28.0.3",
|
|
"@types/node": "^24.13.3",
|
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
"@vitest/eslint-plugin": "^1.6.23",
|
|
"@vue/eslint-config-typescript": "^14.9.0",
|
|
"@vue/test-utils": "^2.4.11",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^10.7.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-oxlint": "~1.73.0",
|
|
"eslint-plugin-playwright": "^2.10.5",
|
|
"eslint-plugin-vue": "~10.9.2",
|
|
"jiti": "^2.7.0",
|
|
"jsdom": "^29.1.1",
|
|
"npm-run-all2": "^9.0.2",
|
|
"oxlint": "~1.74.0",
|
|
"prettier": "3.9.5",
|
|
"tailwindcss": "^4.3.3",
|
|
"typescript": "~6.0.0",
|
|
"vite": "^8.1.5",
|
|
"vite-plugin-vue-devtools": "^8.1.5",
|
|
"vitest": "^4.1.10",
|
|
"vue-eslint-parser": "^10.4.1",
|
|
"vue-tsc": "^3.3.7"
|
|
},
|
|
"engines": {
|
|
"node": "^22.18.0 || >=24.12.0"
|
|
}
|
|
}
|