[Snyk] Upgrade: , express, moment, redis, socket.io #44
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Snyk has created this PR to upgrade multiple dependencies.
👯♂ The following dependencies are linked and will therefore be updated together.ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
@socket.io/redis-adapter
from 7.1.0 to 7.2.0 | 1 version ahead of your current version | 2 years ago
on 2022-05-03
express
from 4.18.2 to 4.19.2 | 4 versions ahead of your current version | 5 months ago
on 2024-03-25
moment
from 2.29.4 to 2.30.1 | 2 versions ahead of your current version | 8 months ago
on 2023-12-27
redis
from 4.0.2 to 4.7.0 | 29 versions ahead of your current version | a month ago
on 2024-07-29
socket.io
from 4.6.1 to 4.7.5 | 7 versions ahead of your current version | 6 months ago
on 2024-03-14
Issues fixed by the recommended upgrade:
SNYK-JS-SOCKETIO-7278048
SNYK-JS-SOCKETIOPARSER-5596892
SNYK-JS-WS-7266574
SNYK-JS-EXPRESS-6474509
Release notes
Package name: @socket.io/redis-adapter
Bug Fixes
Features
This feature was added in
socket.io@4.5.0
:Thanks to this change, it will now work with multiple Socket.IO servers.
Diff: 7.1.0...7.2.0
Features
Error handling can now be done on the redis clients directly.
Before:
After:
// something went wrong
});
subClient.on("error", () => {
// something went wrong
});
A more performant way to do request-response is available behind an option,
publishOnSpecificResponseChannel
:const { createClient } = require('redis');
const redisAdapter = require('@ socket.io/redis-adapter');
const pubClient = createClient({ host: 'localhost', port: 6379 });
const subClient = pubClient.duplicate();
io.adapter(redisAdapter(pubClient, subClient, {
publishOnSpecificResponseChannel: true
}));
To upgrade an existing deployment, you will need to upgrade all nodes to the latest version with publishOnSpecificResponseChannel = false, and then toggle the option on each node.
Please check the commit for more information.
Links
Package name: express
What's Changed
Full Changelog: 4.19.0...4.19.1
What's Changed
New Contributors
Full Changelog: 4.18.3...4.19.0
Main Changes
Other Changes
New Contributors
Full Changelog: 4.18.2...4.18.3
Package name: moment
2.30.1
2.30.0
2.29.4
Package name: redis
Enhancements
@ redis/client
from1.5.16
to1.6.0
@ redis/json
from1.0.6
to1.0.7
@ redis/search
from1.1.6
to1.2.0
@ redis/time-series
from1.0.5
to1.1.0
Enhancements
@ redis/client
from1.5.16
to1.5.17
Enhancements
@ redis/client
from1.5.14
to1.5.16
Package name: socket.io
Bug Fixes
Links
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)Bug Fixes
Links
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)Bug Fixes
Links
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)Bug Fixes
Links
engine.io@~6.5.2
(diff)ws@~8.11.0
(no change)The client bundle contains a few fixes regarding the WebTransport support.
Links
engine.io@~6.5.0
(no change)ws@~8.11.0
(no change)Bug Fixes
Features
Support for WebTransport
The Socket.IO server can now use WebTransport as the underlying transport.
WebTransport is a web API that uses the HTTP/3 protocol as a bidirectional transport. It's intended for two-way communications between a web client and an HTTP/3 server.
References:
Until WebTransport support lands in Node.js, you can use the
@ fails-components/webtransport
package:const cert = readFileSync("/path/to/my/cert.pem");
const key = readFileSync("/path/to/my/key.pem");
const httpsServer = createServer({
key,
cert
});
httpsServer.listen(3000);
const io = new Server(httpsServer, {
transports: ["polling", "websocket", "webtransport"] // WebTransport is not enabled by default
});
const h3Server = new Http3Server({
port: 3000,
host: "0.0.0.0",
secret: "changeit",
cert,
privKey: key,
});
(async () => {
const stream = await h3Server.sessionStream("/socket.io/");
const sessionReader = stream.getReader();
while (true) {
const { done, value } = await sessionReader.read();
if (done) {
break;
}
io.engine.onWebTransportSession(value);
}
})();
h3Server.startServer();">
Added in 123b68c.
Client bundles with CORS headers
The bundles will now have the right
Access-Control-Allow-xxx
headers.Added in 63f181c.
Links
engine.io@~6.5.0
(diff)ws@~8.11.0
(no change)Bug Fixes
types
condition to the top (#4698) (3d44aae)Links
engine.io@~6.4.2
(diff)ws@~8.11.0
(no change)Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: