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:
co-authored by
Claude Opus 5
parent
bfec3a25f3
commit
1c0eed61f6
@@ -105,13 +105,18 @@ describe("Security headers", () => {
|
||||
assert.doesNotMatch(csp, /upgrade-insecure-requests/);
|
||||
});
|
||||
|
||||
// express-rate-limit gebruikt per RFC-draft andere headernamen
|
||||
// (RateLimit-Limit vs. RateLimit); daarom op de hele familie testen.
|
||||
const heeftRateLimitHeaders = (res) =>
|
||||
[...res.headers.keys()].some((naam) => naam.startsWith("ratelimit"));
|
||||
|
||||
it("statische bestanden krijgen geen rate-limit headers", async () => {
|
||||
const res = await fetch(`${basis}/assets/index-abc12345.js`);
|
||||
assert.equal(res.headers.get("ratelimit-limit"), null);
|
||||
assert.equal(heeftRateLimitHeaders(res), false);
|
||||
});
|
||||
|
||||
it("de API krijgt wel rate-limit headers", async () => {
|
||||
const res = await fetch(`${basis}/api/health`);
|
||||
assert.notEqual(res.headers.get("ratelimit-limit"), null);
|
||||
assert.equal(heeftRateLimitHeaders(res), true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user