7385785504
- viewer/admin 错误码→文案映射按契约 ErrorCodes 枚举全集登记(机器守护 spec 遍历枚举断言无缺漏 + 映射键在 zh/en 词条均存在 + locale 键集 递归相等);mobile 镜像补齐 DOWNLOAD_DISABLED(P4a 增补漏登) - 漏译修复:viewer.photoRemoved en 侧缺失(审计测试捕获); DOWNLOAD_DISABLED 观众侧专属文案 + useDownload 专属提示接线; admin apiMsg 增 RATE_LIMITED/ALBUM_NOT_PUBLIC/DOWNLOAD_DISABLED/ SYNC_AUTH_FAILED 四码词条 - 运行时抽查:admin 主旅程 en 版 e2e(登录→相册管理全英文 + 偏好 持久);embed iframe lang=en 渲染与深链跟随 e2e(zh 侧既有用例覆盖) - contracts 新增 ./errors 浏览器安全子路径(errors.ts 纯 TS); admin 增 @photo/contracts devDep(仅测试消费) Co-Authored-By: Claude Code <noreply@anthropic.com>
72 lines
2.3 KiB
JSON
72 lines
2.3 KiB
JSON
{
|
|
"name": "@photo/admin",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Staff admin (art-design-pro v3.0.2 template, trimmed): local session auth against /v1/auth/*; template source recorded in SOURCE.md",
|
|
"//": "Template art-design-pro v3.0.2 (https://github.com/Daymychen/art-design-pro, tag v3.0.2, commit d224dd4). Trim: demo views/routes, src/mock, apifox wiring, echarts/xlsx/xgplayer/wangeditor/highlight.js/file-saver/qrcode.vue/vue-img-cutter + stylelint/husky/commitizen toolchain.",
|
|
"engines": {
|
|
"node": ">=20.19.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint .",
|
|
"typecheck": "vue-tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:e2e": "playwright test"
|
|
},
|
|
"dependencies": {
|
|
"@element-plus/icons-vue": "^2.3.2",
|
|
"@iconify/vue": "^5.0.0",
|
|
"@tailwindcss/vite": "^4.1.14",
|
|
"@vue/reactivity": "3.5.22",
|
|
"@vueuse/core": "13.9.0",
|
|
"axios": "1.12.2",
|
|
"crypto-js": "^4.2.0",
|
|
"element-plus": "2.11.4",
|
|
"mitt": "^3.0.1",
|
|
"nprogress": "^0.2.0",
|
|
"ohash": "^2.0.11",
|
|
"pinia": "^3.0.3",
|
|
"pinia-plugin-persistedstate": "^4.3.0",
|
|
"qrcode": "^1.5.4",
|
|
"tailwindcss": "^4.1.14",
|
|
"vue": "3.5.22",
|
|
"vue-draggable-plus": "^0.6.0",
|
|
"vue-i18n": "^9.14.0",
|
|
"vue-router": "^4.5.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.9.1",
|
|
"@photo/contracts": "workspace:*",
|
|
"@playwright/test": "^1.48.0",
|
|
"@types/node": "^24.0.5",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@typescript-eslint/eslint-plugin": "^8.3.0",
|
|
"@typescript-eslint/parser": "^8.3.0",
|
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
"@vue/compiler-sfc": "^3.0.5",
|
|
"eslint": "^9.9.1",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"eslint-plugin-prettier": "^5.2.1",
|
|
"eslint-plugin-vue": "^9.27.0",
|
|
"globals": "^15.9.0",
|
|
"prettier": "^3.5.3",
|
|
"sass": "^1.81.0",
|
|
"terser": "^5.36.0",
|
|
"typescript": "~5.6.3",
|
|
"typescript-eslint": "^8.9.0",
|
|
"unplugin-auto-import": "^20.2.0",
|
|
"unplugin-element-plus": "^0.10.0",
|
|
"unplugin-vue-components": "^29.1.0",
|
|
"vite": "^7.1.5",
|
|
"vite-plugin-compression": "^0.5.1",
|
|
"vite-plugin-vue-devtools": "^7.7.6",
|
|
"vitest": "^4.1.11",
|
|
"vue-demi": "^0.14.9",
|
|
"vue-tsc": "~2.1.6"
|
|
}
|
|
}
|