56c07c3581
Ein neuer Widget-Typ war an sieben Stellen einzutragen; vergass man eine, fehlte die Kachel im Katalog oder die API lehnte sie mit 400 ab. - WIDGET_TYPES/WidgetType/WIDGET_MODULE_SLUGS stehen jetzt einmal in packages/shared; Registry, Katalog und die @IsIn-Whitelist der API leiten davon ab - neun wireXWidget()-Funktionen durch ein generisches registerWidget() ersetzt (idempotent, unbekannter Typ wirft in der Entwicklung) - der Katalog fuehrt keine zweite Typliste mehr, sondern leitet sie aus der Registry ab und filtert nach Modulzugriff (fail-closed, wenn die Modulliste unbekannt ist); der Abruf von /modules/active liegt auf der Dashboard-Seite, nicht im Dialog - widget-module-map.ts liest die geteilte Tabelle statt einer Kopie, die oeffentliche Funktion bleibt unveraendert Der Katalogfilter ist Komfort (T-M1H-01) — verbindlich bleibt der serverseitige Filter in DashboardService.getWidgets. Abweichung vom Plan: apps/web hing entgegen der Planannahme noch nicht von @tessera/shared ab; die Abhaengigkeit wurde ergaenzt (Lockfile). Die Dockerfiles kopieren packages/shared bereits, der Produktionsbau von Next.js und der nest build laufen unveraendert. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
46 lines
1.2 KiB
JSON
46 lines
1.2 KiB
JSON
{
|
|
"name": "@tessera/web",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"test": "vitest run",
|
|
"type-check": "tsc --noEmit",
|
|
"lint": "biome lint ."
|
|
},
|
|
"dependencies": {
|
|
"@tessera/shared": "workspace:*",
|
|
"@uiw/react-md-editor": "4.1.1",
|
|
"fflate": "^0.8.3",
|
|
"html-to-image": "1.11.13",
|
|
"jose": "^6.2.3",
|
|
"next": "^15.3.0",
|
|
"next-intl": "^4.13.0",
|
|
"next-themes": "^0.4.6",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-grid-layout": "2.2.3",
|
|
"react-resizable": "^4.0.2",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@types/react-grid-layout": "^2.1.0",
|
|
"@vitejs/plugin-react": "^6.0.2",
|
|
"jsdom": "^29.1.1",
|
|
"postcss": "^8.0.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.5.0",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|