Update dependency express to v5 #11
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
andylockran/eventloop-adventures!11
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/express-5.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
~4.16.1→~5.3.0Release Notes
expressjs/express (express)
v5.3.0Compare Source
=====
🐞 Bug fixes
Fixed HTTP header conflict between Content-Length and Transfer-Encoding in res.send - by @YuryShkoda in #4893
Fixed the behavior of
res.send()to prevent conflicts betweenContent-LengthandTransfer-EncodingHTTP headers in responses. TheContent-Lengthheader inres.send()is now only added when aTransfer-Encodingheader is not present, complying with the HTTP specification that states both headers should not coexist in the same response. ETag generation is unaffected by the presence of aTransfer-Encodingheader - by @cuishuang in #7459Upgrade
qsto^6.16.0, which fixes CVE-2026-2391 (GHSA-w7fw-mjwx-w883), CVE-2026-82417 (GHSA-4mjr-xmp4-gh2g) and CVE-2026-82562 (GHSA-x5fp-wj9c-mxmx):arrayLimitbypasses in comma parsing and a denial of service via an attacker-controlledisBuffer- by @davetashner in #7057 and #7478, and @cyphercodes in #7305Upgrade
proxy-addrto^2.0.8, which fixes CVE-2026-90711 - by @lazerg in #7474🚀 Improvements
Allow conditional revalidation for QUERY requests.
req.freshpreviously only validated freshness for GET and HEAD requests, so QUERY responses never returned 304 despite a matching validator. Since QUERY is a safe, idempotent, and cacheable method that supports conditional requests, it is now included in the freshness check - by @Cherry in #7366Improve HTML structure in
res.redirect()responses when HTML format is accepted by adding<!DOCTYPE html>,<title>, and<body>tags for better browser compatibility - by @Bernice55231 in #5167When calling
app.renderwith options set to null, the locals object is handled correctly, preventing unexpected errors and making the method behave the same as when options is omitted or an empty object is passed - by AkaHarshit in #6903Upgrade
content-typeto^2.0.0, bringing a faster parser (~1.5x quickerContent-Typeparsing/formatting inres.send()) along with a behavior change:res.send()now keeps any existing parameters when adding the charset and no longer throws on aContent-Typethat fails to parse.type-isis upgraded to^2.1.0as part of the same change - by @blakeembrey in #7234The default error handler now logs the full error object instead of only its stack trace, so nested details such as
Error.causeand library-specific properties (e.g. Sequelize'sparent/original) are no longer swallowed - by @Nitin-Mohapatra in #6464Upgrade
content-dispositionto^2.0.1, which changes theContent-Dispositionheader emitted byres.download(),res.attachment(), andres.sendFile(): file names that are valid HTTP tokens are no longer wrapped in quotes. This is equivalent per RFC 6266, but applications asserting on the exact header bytes should update their expectations - by @blakeembrey in #7233Upgrade
body-parserto^2.3.0, which fixes CVE-2026-12590 (GHSA-v422-hmwv-36x6): an invalidlimitoption value caused request body size enforcement to be silently disabled (fail-open), allowing a denial of service via arbitrarily large payloads. Invalidlimitvalues now throw at parser initialization instead of being ignored - by @Mayvis in #7390⚡ Performance
res.send()when sending string responses without an explicit Content-Type header - by @bjohansebas in #6991v5.2.1Compare Source
=====
v5.2.0Compare Source
=====
body-parser@^2.2.1res.redirectwith undefined arguments, Express now emits a warning to help detect calls that pass undefined as the status or URL and make them easier to fix.v5.1.0Compare Source
=====
Uint8Arrayinres.send()res.sendFile()res.links()setprototypeofsafe-bufferutils-mergemethodsdepddebug@^4.4.0body-parser@^2.2.0router@^2.2.0content-type@^1.0.5finalhandler@^2.1.0qs@^6.14.0server-static@2.2.0type-is@2.0.1v5.0.1Compare Source
=====
cookiesemver lock to address CVE-2024-47764v5.0.0Compare Source
=====
path-is-absolutedependency - usepath.isAbsoluteinsteadres.status()accepts only integers, and input must be greater than 99 and less than 1000RangeError: Invalid status code: ${code}. Status code must be greater than 99 and less than 1000.for inputs outside this rangeTypeError: Invalid status code: ${code}. Status code must be an integer.for non integer inputsres.redirect('back')andres.location('back')is no longer a supported magic string, explicitly usereq.get('Referrer') || '/'.res.clearCookiewill ignore user providedmaxAgeandexpiresoptionsapplication/javascript=>text/javascriptv4.22.3Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/expressjs/express/compare/v4.22.2...v4.22.3
v4.22.2Compare Source
What's Changed
req.queryrepeated keys (8d09bfe6)a[0]=...) was historically capped at qs's defaultarrayLimitof 20 even in older qs versions; after this change it also allows up to 1000 items.New Contributors
Full Changelog: https://github.com/expressjs/express/compare/v4.22.1...v4.22.2
v4.22.1Compare Source
What's Changed
Full Changelog: https://github.com/expressjs/express/compare/4.22.0...v4.22.1
v4.22.0Compare Source
Important: Security
What's Changed
npm isteps to fix ci for older node versions by @Phillip9587 in #6336qsby @Phillip9587 in #6919Full Changelog: https://github.com/expressjs/express/compare/4.21.2...4.22.0
v4.21.2Compare Source
What's Changed
Full Changelog: https://github.com/expressjs/express/compare/4.21.1...4.21.2
v4.21.1Compare Source
What's Changed
Full Changelog: https://github.com/expressjs/express/compare/4.21.0...4.21.1
v4.21.0Compare Source
What's Changed
"back"magic string in redirects by @blakeembrey in #5935New Contributors
Full Changelog: https://github.com/expressjs/express/compare/4.20.0...4.21.0
v4.20.0Compare Source
======
depthoption to customize the depth level in the parserdepthlevel for parsing URL-encoded data is now32(previously wasInfinity)res.redirect\,|, and^to align better with URL specoptions.maxAgeandoptions.expirestores.clearCookiev4.19.2Compare Source
======
v4.19.1Compare Source
======
v4.19.0Compare Source
======
v4.18.3Compare Source
======
partitionedoptionv4.18.2Compare Source
======
v4.18.1Compare Source
======
v4.18.0Compare Source
======
res.downloadoptionswithoutfilenameinres.downloadres.statusnull/undefinedasmaxAgeinres.cookieObject.prototypevalues in settings throughapp.set/app.getdefaultwith same arguments as types inres.formatres.sendhttp-errorsforres.formaterrorstrictpriorityoptionexpiresoption to reject invalid datesevalusage withFunctionconstructorprocessto check for listeners425 Unordered Collectionto standard425 Too Earlyv4.17.3Compare Source
======
__proto__keysv4.17.2Compare Source
======
undefinedinres.jsonpundefinedwhen"json escape"is enabledRegExpsres.jsonp(obj, status)deprecation messageres.isJSDocmaxAgeoption to reject invalid valuesreq.socketover deprecatedreq.connectionv4.17.1Compare Source
======
null/undefinedtores.status"v4.17.0Compare Source
======
express.rawto parse bodies intoBufferexpress.textto parse bodies into stringres.sendFilenull/undefinedtores.statusX-Forwarded-Hostpb) supportSameSite=NonesupportContent-Security-Policyheaderpath.normalizecall103 Early Hintsthrowon invalid typeConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.