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>
43 lines
1.1 KiB
JSON
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"
|
|
}
|
|
}
|