Files
Wabenhain/package.json
T
Nick SzaunigandClaude Opus 5 21ac8bbc6a fix: Go-Live-Pruefung liest den ausgelieferten Text statt der Quelltext-Vorlage
Die Pruefung der Rechtstexte war falsch gebaut: sie suchte
[PLATZHALTER]-Markierungen in src/i18n/dictionaries/de.ts und en.ts. Diese
Dateien sind aber nur der RUECKFALLWERT. Impressum, Datenschutz, AGB,
Widerrufsbelehrung und die Telefonnummer sind im Admin-Bereich unter
"Inhalte" pflegbar (lib/content-registry.ts, Tabelle SiteContent) — genau
wie die uebrigen Firmendaten.

Zwei Folgen davon:

- Falsch-positiv: Wer sein Impressum im Admin-Bereich ausfuellt — ohne
  Deploy, so wie vorgesehen —, bekam trotzdem dauerhaft einen Blocker
  gemeldet, der sich ueber die Oberflaeche gar nicht schliessen liess.
- Falsch-negativ: Wer einen Platzhaltertext erst im Admin eintraegt, kam
  ungeprueft durch.

Das Skript ist deshalb von .mjs auf .ts gewechselt (ueber tsx, wie die
Seed-Skripte) und fragt jetzt getContentValue() ab — also genau den Text,
den Besucher auf /impressum tatsaechlich zu sehen bekommen, je
Sprachfassung einzeln. Neben dem Impressum werden nun auch Datenschutz,
AGB und Widerrufsbelehrung geprueft; der Befund benennt praezise, welcher
Text in welcher Sprache noch offen ist, statt pauschal eine Datei zu
nennen.

Ist die Datenbank vom ausfuehrenden Rechner aus nicht erreichbar, meldet
das Skript diese Punkte ausdruecklich als UNGEPRUEFT (Warnung) — es raet
weder "in Ordnung" noch "blockiert". Beide Wege gegen die lokale
Datenbank geprueft: mit Verbindung meldet es "Impressum (de), Impressum
(en)" als einzigen offenen Rechtstext, ohne Verbindung die Warnung samt
Ursache.

Kein Top-Level-await: das Projekt hat kein "type": "module", tsx
uebersetzt nach CommonJS.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-09-15 10:17:09 +02:00

69 lines
2.1 KiB
JSON

{
"name": "wabenhain",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "node scripts/generate-prisma-clients.mjs && next dev",
"build": "node scripts/generate-prisma-clients.mjs && next build",
"start": "node scripts/generate-prisma-clients.mjs && next start",
"lint": "eslint",
"postinstall": "node scripts/generate-prisma-clients.mjs",
"db:push": "node scripts/prisma-provider.mjs && prisma db push",
"db:migrate": "node scripts/prisma-provider.mjs && prisma migrate dev",
"db:deploy": "node scripts/prisma-provider.mjs && prisma migrate deploy",
"db:seed": "prisma db seed",
"db:seed:demo": "tsx prisma/seed-demo.ts",
"db:studio": "node scripts/prisma-provider.mjs && prisma studio",
"test": "vitest run",
"test:watch": "vitest",
"test:e2e": "playwright test",
"preflight": "tsx scripts/preflight.ts"
},
"dependencies": {
"@prisma/adapter-mariadb": "^7.10.0",
"@prisma/adapter-pg": "^7.10.0",
"@prisma/client": "^7.10.0",
"bcryptjs": "^3.0.3",
"ffmpeg-static": "^5.3.0",
"jose": "^6.2.8",
"mariadb": "^3.5.3",
"motion": "^13.0.0",
"next": "16.3.5",
"nodemailer": "^9.1.1",
"otpauth": "^9.5.1",
"pdfkit": "^0.19.1",
"prisma": "^7.10.0",
"qrcode": "^1.5.4",
"react": "19.2.8",
"react-dom": "19.2.8",
"sharp": "^0.35.4",
"stripe": "^22.4.0",
"zod": "^4.4.3",
"zustand": "^5.0.14"
},
"devDependencies": {
"@playwright/test": "^1.62.1",
"@tailwindcss/postcss": "^4",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.4",
"@types/bcryptjs": "^3.0.0",
"@types/node": "^20.19.43",
"@types/nodemailer": "^8.0.1",
"@types/pdfkit": "^0.17.6",
"@types/qrcode": "^1.5.6",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^6.0.5",
"dotenv": "^17.4.2",
"eslint": "^9",
"eslint-config-next": "16.3.5",
"jsdom": "^30.0.1",
"tailwindcss": "^4",
"tsx": "^4",
"typescript": "^5",
"vitest": "^4.1.10"
},
"packageManager": "[email protected]"
}