Dependencies naar de nieuwste versies + update-check in de testsuite

Upgrades
- Frontend: React 19.2, Vite 8.2, @vitejs/plugin-react 6.1, ESLint 9.39
- Backend: Express 5.2, Helmet 8.3, express-rate-limit 8.7, pino 10.3,
  pino-http 11, pg 8.23, dotenv 17.4, bcryptjs 3.0, ESLint 10.9
- Lockfiles opnieuw gegenereerd (backend had er geen)

Breaking changes opgevangen
- Express 5 laat kale wildcards in routes niet toe: app.use("/api/*") is een
  prefix-mount geworden en app.get("*") pad-loze middleware
- Vite 8 bundelt met Rolldown, dat de object-vorm van manualChunks niet kent;
  omgezet naar build.rollupOptions.output.advancedChunks
- Rate-limit headers verschillen per RFC-draft; de test kijkt nu naar de hele
  RateLimit-headerfamilie in plaats van naar RateLimit-Limit
- ESLint blijft in de frontend op 9: eslint-plugin-react ondersteunt nog geen
  ESLint 10 (peer <= ^9.7)

Update-check bij het testen
- docker/check-updates.mjs vergelijkt beide package.json's met het
  npm-register; werkt zonder node_modules en zonder npm install
- test.ps1 draait dit als stap 1 van 4, met -Strict (falen) en -SkipDeps
  (offline). Ook informatief in de Test-stage van de pipeline
- Bewuste uitzonderingen met reden in docker/update-exceptions.json
- dev.ps1 up gebruikt --renew-anon-volumes, anders houdt de dev-container de
  oude node_modules na een upgrade

Overig
- ESLint flat configs voor beide packages; npm run lint werkte niet omdat er
  geen configuratie was. Beide draaien nu groen (alleen waarschuwingen over
  bestaande ongebruikte variabelen)
- README.md, BEHEER.md en Changelog.md bijgewerkt

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jordy Hoogeveen
2026-09-04 12:21:06 +02:00
co-authored by Claude Opus 5
parent bfec3a25f3
commit 1c0eed61f6
17 changed files with 6887 additions and 4999 deletions
+19
View File
@@ -25,6 +25,16 @@
`dev.ps1 up` wist de dev-database niet langer (alleen `dev.ps1 down`)
- `release.ps1` draait de testsuite vóór het publiceren en bouwt voor
`linux/amd64` + `linux/arm64`
- Dependencies naar de nieuwste versies: React 19.2, Vite 8.2,
@vitejs/plugin-react 6.1, Express 5.2, Helmet 8.3, express-rate-limit 8.7,
pino 10.3 / pino-http 11, pg 8.23, dotenv 17.4, bcryptjs 3.0, ESLint 9.39
(frontend) / 10.9 (backend)
- Express 5 vereist benoemde wildcards in routes; `app.use("/api/*")` en
`app.get("*")` vervangen door een prefix-mount en pad-loze middleware
- `dev.ps1 up` gebruikt `--renew-anon-volumes`, anders blijven de oude
`node_modules` in de dev-container staan na een upgrade
- Vite 8 bundelt met Rolldown: `manualChunks` (object-vorm) vervangen door
`build.rollupOptions.output.advancedChunks`
### Toegevoegd
- Testsuite: `backend/test/app.test.js` (11 tests met `node --test`) voor de
@@ -35,6 +45,15 @@
Publish (multi-arch push, alleen op main/master of een tag)
- `.env.example`, `.dockerignore` en `.gitignore`
- `STATIC_DIR` als omgevingsvariabele (map met de frontend-build)
- Dependency-check als eerste stap van de testsuite: `docker/check-updates.mjs`
vergelijkt beide `package.json`'s met het npm-register, met bewuste
uitzonderingen in `docker/update-exceptions.json` (`-Strict` om te falen,
`-SkipDeps` om over te slaan). Draait ook informatief in de pipeline
- ESLint flat configs (`frontend/eslint.config.js`, `backend/eslint.config.js`) —
`npm run lint` werkte voorheen niet, er was geen configuratie
- Lockfiles voor beide packages (`backend/package-lock.json` was er niet)
- `.gitattributes`: shell-scripts en Docker-bestanden altijd met LF, anders
faalt het shebang in de container
---