Files
AfiS-Aktensystem/web/package.json
T
HarlekinandClaude Opus 5 6b0cd331bb Web-Anwendung: Design-Tokens, Texte, Gesundheitsendpunkt
Design-Tokens aus docs/10-design-system.md als CSS-Variablen: Grundpalette,
die sechs Klassifizierungsfarben, Eckenradius durchgehend 2 px, keine Schatten
ausser dem Fokusring. Der Schwärzungsbalken mit dem einmaligen Durchwischen
respektiert prefers-reduced-motion. Vier Tests halten die Tokens gegen das
Dokument.

IBM Plex selbst gehostet als woff2, latin und latin-ext getrennt über
unicode-range, font-display: swap, immutable-Cache.

Alle Oberflächentexte in lib/i18n/de.ts. Ein Test durchsucht app/ und
components/ nach Umlauten im JSX und schlägt fehl, wenn dort deutscher Text
steht. Er hat beim ersten Lauf gleich einen Verstoss gefunden.

/api/health prüft Datenbank, Discord-Gateway und ClamAV. Die Gesamtbewertung
fällt nur auf "down", wenn die Datenbank weg ist: die anderen Dienste haben
eigene Healthchecks im Stack, und ein ausgefallener Virenscanner soll nicht
den Web-Container als tot markieren.

Strikte CSP mit Nonce, kein unsafe-inline für Skripte. Die erste Route liegt
bei 100 kB JavaScript nach Kompression, Budget sind 120 kB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 00:01:41 +02:00

49 lines
1.3 KiB
JSON

{
"name": "@afis/web",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint app lib components tests --max-warnings 0",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"test:e2e": "playwright test",
"analyze": "ANALYZE=true next build"
},
"dependencies": {
"@afis/db": "workspace:*",
"next": "15.5.25",
"next-auth": "5.0.0-beta.32",
"pg": "8.13.1",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"uuidv7": "1.0.2",
"zod": "^4.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3.2.0",
"@fontsource/ibm-plex-mono": "^5.0.0",
"@fontsource/ibm-plex-sans": "^5.0.0",
"@fontsource/ibm-plex-sans-condensed": "^5.0.0",
"@next/bundle-analyzer": "15.5.25",
"@playwright/test": "1.62.1",
"@tailwindcss/postcss": "4.3.3",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.1.0",
"@types/node": "^22.10.0",
"@types/pg": "^8.11.10",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^5.0.0",
"eslint": "9.39.5",
"eslint-config-next": "15.5.25",
"jsdom": "^25.0.1",
"tailwindcss": "4.3.3",
"typescript": "5.9.3",
"vitest": "4.1.11"
}
}