Set up Vitest with server (node) and client (jsdom) test projects. 79 tests across 8 files verify all Phase 0-1 security controls: escapeHtml sanitization, DOMPurify markdown XSS prevention, CSRF enforcement, security headers, rate limiting, auth guards, profile field allowlist, and login anti-enumeration. Updated SECURITY_EVALUATION.md with remediation status, implementation summary, and automated test coverage details.
45 lines
1.1 KiB
JSON
45 lines
1.1 KiB
JSON
{
|
|
"name": "nuxt-app",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "nuxt build",
|
|
"dev": "nuxt dev",
|
|
"generate": "nuxt generate",
|
|
"preview": "nuxt preview",
|
|
"postinstall": "nuxt prepare",
|
|
"test": "vitest",
|
|
"test:run": "vitest run"
|
|
},
|
|
"dependencies": {
|
|
"@cloudinary/vue": "^1.13.3",
|
|
"@headlessui/vue": "^1.7.23",
|
|
"@heroicons/vue": "^2.2.0",
|
|
"@nuxt/eslint": "^1.9.0",
|
|
"@nuxt/ui": "^4.0.0",
|
|
"@nuxtjs/plausible": "^3.0.1",
|
|
"@slack/web-api": "^7.10.0",
|
|
"bcryptjs": "^3.0.2",
|
|
"chrono-node": "^2.8.4",
|
|
"cloudinary": "^2.7.0",
|
|
"eslint": "^9.34.0",
|
|
"isomorphic-dompurify": "^3.0.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"marked": "^17.0.3",
|
|
"mongoose": "^8.18.0",
|
|
"nitro-cors": "^0.7.1",
|
|
"nuxt": "^4.0.3",
|
|
"rate-limiter-flexible": "^9.1.1",
|
|
"resend": "^6.0.1",
|
|
"typescript": "^5.9.2",
|
|
"vue": "^3.5.20",
|
|
"vue-cal": "^5.0.1-rc.28",
|
|
"zod": "^4.1.3"
|
|
},
|
|
"devDependencies": {
|
|
"@nuxt/test-utils": "^4.0.0",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"jsdom": "^28.1.0",
|
|
"vitest": "^4.0.18"
|
|
}
|
|
}
|