gongxiangp2/package.json
chenpei f8db4232ce feat: 第一阶段框架——登录落点切换为品牌中心看板首页
- 看板首页 / :Zen Minimal × Future Organic 融合(用户裁定),编号索引+柔光光晕+GSAP克制动效,白皮书气质
- 素材库首页整体迁移至 /materials(含colocated测试),全站返回素材库链接同步清扫
- 组织架构页上移为顶层 /organization(保留云采石场契约注释),旧路径 /admin/org 服务端跳转;API 迁移 /api/organization(逻辑零改动)
- 后台删除组织架构跳转按钮(白屏问题源头消失);middleware 增 /materials 登录门、/organization 管理员门
- 品牌统一:浅色顶栏用 loginLogoUrl(深色图案版),标题「由壹点·品牌中心」;字体自托管 @fontsource
- 可访问性收尾(评审fix项):全文对比度过WCAG、焦点环、加载骨架防闪灰、移动端状态可见、::selection
- PRODUCT.md/DESIGN.md 记录方向契约;测试基线 1815 通过/6 既有失败(无劣化)
2026-08-15 11:01:27 +08:00

96 lines
3.2 KiB
JSON

{
"name": "youyidian-3d-material",
"version": "1.0.0",
"description": "由壹点3D素材分享平台",
"private": true,
"scripts": {
"dev": "next dev",
"build": "npm run storage:legacy-boundary && prisma generate && next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit",
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage",
"storage:legacy-boundary": "node scripts/check-legacy-storage-boundaries.mjs",
"storage:legacy-boundary:test": "node --test scripts/check-legacy-storage-boundaries.test.mjs",
"migration:safe:test": "node --test scripts/safe-production-migrate.test.mjs",
"performance-survey:test-data:audit": "tsx scripts/performance-survey-test-data.ts --mode=audit",
"performance-survey:test-data:clear": "tsx scripts/performance-survey-test-data.ts --mode=clear",
"performance-survey:position-config:seed": "tsx scripts/seed-performance-survey-position-config.ts",
"performance-survey:templates:collapse": "node scripts/collapse-performance-survey-template-versions.mjs",
"history:scan": "tsx scripts/scan-history-materials.ts",
"history:import": "tsx scripts/import-history-materials.ts",
"prisma:generate": "prisma generate",
"prisma:push": "prisma db push",
"prisma:studio": "prisma studio"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.917.0",
"@aws-sdk/s3-request-presigner": "^3.645.0",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@fontsource/noto-sans-sc": "^5.3.0",
"@fontsource/space-grotesk": "^5.3.0",
"@gsap/react": "^2.1.2",
"@prisma/client": "^5.22.0",
"@prisma/engines": "^6.18.0",
"adm-zip": "^0.5.16",
"ag-psd": "^28.4.1",
"archiver": "^7.0.1",
"bcryptjs": "^2.4.3",
"clsx": "^2.1.0",
"date-fns": "^3.6.0",
"exceljs": "^4.4.0",
"file-saver": "^2.0.5",
"formidable": "^3.5.1",
"gsap": "^3.15.0",
"ioredis": "^5.4.1",
"jsonwebtoken": "^9.0.3",
"jszip": "^3.10.1",
"lucide-react": "^1.30.0",
"mime-types": "^2.1.35",
"mssql": "10.0.4",
"music-metadata": "^11.10.3",
"next": "^14.2.0",
"next-auth": "^4.24.0",
"pinyin-pro": "^3.28.0",
"react": "^18.3.0",
"react-dom": "^18.3.0",
"sharp": "^0.34.4",
"zod": "^3.23.0"
},
"devDependencies": {
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.1",
"@testing-library/user-event": "^14.6.1",
"@types/adm-zip": "^0.5.7",
"@types/archiver": "^7.0.0",
"@types/bcryptjs": "^2.4.6",
"@types/file-saver": "^2.0.7",
"@types/formidable": "^3.4.5",
"@types/jest": "^30.0.0",
"@types/jsonwebtoken": "^9.0.10",
"@types/mime-types": "^2.1.4",
"@types/node": "^22.0.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"autoprefixer": "^10.4.20",
"eslint": "^8.57.0",
"eslint-config-next": "^14.2.0",
"fast-check": "^4.5.0",
"jest": "^30.2.0",
"jest-environment-jsdom": "^30.2.0",
"postcss": "^8.4.47",
"prisma": "^5.22.0",
"tailwindcss": "^3.4.0",
"tsx": "^4.21.0",
"typescript": "^5.5.0"
},
"optionalDependencies": {
"canvas": "^2.11.2"
}
}