mantimon-tcg/frontend/package.json
Cal Corum b9b803da66 Scaffold Vue 3 + TypeScript frontend (Phase F0)
Vue 3 with Composition API, Pinia, Vue Router, Tailwind v4:
- Vite build with @/ path aliases and backend proxy
- TypeScript strict mode with proper type imports
- Pinia stores (auth, game) with setup syntax and persistence
- Vue Router with auth guards and lazy-loaded routes
- Tailwind v4 with custom theme (Pokemon types, dark UI)
- Vitest configured for component testing
- ESLint v9 flat config with Vue/TypeScript support

Pages: Home, Login, Register, Campaign, Collection, DeckBuilder, Match
Components: AppHeader with auth-aware navigation
Types: Card, GameState, Player, Deck, Campaign types

Also adds frontend-code-audit skill with patterns for:
- Error handling (unhandled promises, empty catches)
- Security (XSS, token storage, input validation)
- Architecture (Composition API, Pinia patterns, Phaser rules)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:23:53 -06:00

43 lines
1.1 KiB
JSON

{
"name": "mantimon-tcg-frontend",
"private": true,
"version": "0.1.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc -b && vite build",
"preview": "vite preview",
"test": "vitest",
"test:watch": "vitest --watch",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
"typecheck": "vue-tsc --noEmit"
},
"dependencies": {
"@tailwindcss/postcss": "^4.1.18",
"pinia": "^3.0.2",
"pinia-plugin-persistedstate": "^4.2.0",
"socket.io-client": "^4.8.1",
"vue": "^3.5.24",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@types/node": "^24.10.1",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/test-utils": "^2.4.6",
"@vue/tsconfig": "^0.8.1",
"autoprefixer": "^10.4.21",
"eslint": "^9.21.0",
"eslint-plugin-vue": "^10.1.0",
"globals": "^17.2.0",
"jsdom": "^27.4.0",
"postcss": "^8.5.3",
"tailwindcss": "^4.1.4",
"typescript": "~5.9.3",
"typescript-eslint": "^8.54.0",
"vite": "^7.2.4",
"vitest": "^3.1.2",
"vue-tsc": "^3.1.4"
}
}