{ "name": "@vignette/web", "private": true, "version": "0.1.0", "type": "module", "description": "Vignette — AI 심리상담 시뮬레이션 훈련 플랫폼 (React 19 프론트)", "scripts": { "dev": "vite", "build": "npm run check:cosmetic-filter-safety && tsc -b && vite build", "generate:api-types": "node scripts/generate-api-types.mjs", "check:api-types": "node scripts/generate-api-types.mjs --check", "check:preview-hosts": "node scripts/check-preview-hosts.mjs", "check:design-ssot": "node scripts/check-design-ssot.mjs", "check:cosmetic-filter-safety": "node scripts/check-cosmetic-filter-safety.mjs", "check:cosmetic-filter-safety:self-test": "node scripts/check-cosmetic-filter-safety.mjs --self-test", "check:dead-code": "knip --include files,dependencies,unlisted,unresolved,binaries --treat-config-hints-as-errors", "check:duplication": "jscpd src ../api/app --min-lines 8 --min-tokens 80 --ignore **/test_*.py,**/*_test.py,**/api.gen.ts,**/*.css,**/*.d.ts --threshold 0.05 --reporters console,threshold --no-tips", "generate:live2d-assets": "node scripts/generate-live2d-assets.mjs", "preview": "vite preview", "typecheck": "tsc -b", "lint": "npm run check:cosmetic-filter-safety && tsc -b", "e2e": "node scripts/run-e2e.mjs", "e2e:list": "node scripts/run-e2e.mjs --list", "e2e:parallel": "playwright test --project=chromium-desktop --project=chromium-mobile --workers=4", "e2e:single-run": "playwright test --project=chromium-single-run --workers=1", "e2e:headed": "playwright test --headed", "e2e:ui": "playwright test --ui" }, "dependencies": { "@tanstack/react-table": "^8.21.3", "@tanstack/react-virtual": "^3.14.8", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router-dom": "^6.30.1" }, "overrides": { "gh-pages": "^6.3.0" }, "devDependencies": { "@playwright/test": "^1.61.1", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^4.6.0", "esbuild": "^0.25.12", "jscpd": "5.0.12", "knip": "^6.26.0", "openapi-typescript": "^7.13.0", "typescript": "^5.8.3", "vite": "^6.3.5" } }