[Snyk] Upgrade: debug, engine.io, socket.io-adapter #73
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.
debug
from 4.3.4 to 4.3.6 | 2 versions ahead of your current version | a month ago
on 2024-07-27
engine.io
from 6.5.0 to 6.6.0 | 7 versions ahead of your current version | 3 months ago
on 2024-06-21
socket.io-adapter
from 2.5.2 to 2.5.5 | 3 versions ahead of your current version | 3 months ago
on 2024-06-18
Issues fixed by the recommended upgrade:
SNYK-JS-WS-7266574
Release notes
Package name: debug
What's Changed
New Contributors
Full Changelog: 4.3.5...4.3.6
Patch
Thank you @ calvintwr for the fix.
What's Changed
New Contributors
Full Changelog: 4.3.3...4.3.4
Package name: engine.io
Bug Fixes
websocket
andwebtransport
send callbacks (#699) (fc21c4a)Performance Improvements
Credits
Huge thanks to Jonathan Perret for their contributions!
Links
This release contains a bump of the
ws
dependency, which includes an important security fix.Advisory: GHSA-3h5v-q93c-6h6q
Bug Fixes
Links
ws@~8.17.1
(diff)This release contains some minor changes which should improve the memory usage of the server, notably this.
Links
Bug Fixes
Links
Bug Fixes
Links
Bug Fixes
Credits
Huge thanks to @ iowaguy for helping!
Links
Bug Fixes
Features
Support for WebTransport
The Engine.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 engine = new Server({
transports: ["polling", "websocket", "webtransport"] // WebTransport is not enabled by default
});
engine.attach(httpsServer);
const h3Server = new Http3Server({
port: 3000,
host: "0.0.0.0",
secret: "changeit",
cert,
privKey: key,
});
(async () => {
const stream = await h3Server.sessionStream("/engine.io/");
const sessionReader = stream.getReader();
while (true) {
const { done, value } = await sessionReader.read();
if (done) {
break;
}
engine.onWebTransportSession(value);
}
})();
h3Server.startServer();">
Added in 123b68c.
Credits
Huge thanks to @ OxleyS for helping!
Links
Package name: socket.io-adapter
Diff: 2.5.4...2.5.5
Bug Fixes
Links
Two abstract classes were imported from the Redis adapter repository:
ClusterAdapter
class, which manages the messages sent between the server instances of the clusterClusterAdapterWithHeartbeat
class, which extends theClusterAdapter
and adds a heartbeat mechanism in order to check the healthiness of the other instancesOther adapters can then just extend those classes and only have to implement the pub/sub mechanism (and not the internal chit-chat protocol):
constructor(nsp, pubSub, opts) {
super(nsp, opts);
this.pubSub = pubSub;
pubSub.subscribe("main-channel", (message) => this.onMessage(message));
pubSub.subscribe("specific-channel#" + this.uid, (response) => this.onResponse(response));
}
doPublish(message) {
return this.pubSub.publish("main-channel", message);
}
doPublishResponse(requesterUid, response) {
return this.pubSub.publish("specific-channel#" + requesterUid, response);
}
}
Besides, the number of "timeout reached: only x responses received out of y" errors (which can happen when a server instance leaves the cluster) should be greatly reduced by this commit.
Bug Fixes
Performance Improvements
Links
The
ws
dependency was moved frompeerDependencies
todependencies
, in order to prevent issues like this.Links
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: