From 80b2c34478892e266abdc22318cf993ac4efef22 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Wed, 3 Jan 2024 21:37:25 +0100 Subject: [PATCH 1/7] chore: bump socket.io-client version --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 162426c90a..1cf33d42a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "socket.io", - "version": "4.7.2", + "version": "4.7.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "socket.io", - "version": "4.7.2", + "version": "4.7.3", "license": "MIT", "dependencies": { "accepts": "~1.3.4", @@ -24,7 +24,7 @@ "nyc": "^15.1.0", "prettier": "^2.3.2", "rimraf": "^3.0.2", - "socket.io-client": "4.7.2", + "socket.io-client": "4.7.3", "socket.io-client-v2": "npm:socket.io-client@^2.4.0", "superagent": "^8.0.0", "supertest": "^6.1.6", @@ -3478,9 +3478,9 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", - "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", + "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -6942,9 +6942,9 @@ } }, "socket.io-client": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", - "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", + "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", diff --git a/package.json b/package.json index 0b59ec1454..c62bef2c72 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "nyc": "^15.1.0", "prettier": "^2.3.2", "rimraf": "^3.0.2", - "socket.io-client": "4.7.2", + "socket.io-client": "4.7.3", "socket.io-client-v2": "npm:socket.io-client@^2.4.0", "superagent": "^8.0.0", "supertest": "^6.1.6", From cb6d2e02aa7ec03c2de1817d35cffa1128b107ef Mon Sep 17 00:00:00 2001 From: Zachary Soare Date: Fri, 5 Jan 2024 10:47:27 -0600 Subject: [PATCH 2/7] fix(typings): calling io.emit with no arguments incorrectly errored Refs: #4914 --- lib/typed-events.ts | 8 +++++--- test/socket.io.test-d.ts | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/lib/typed-events.ts b/lib/typed-events.ts index 19bb8702c6..a906e8f564 100644 --- a/lib/typed-events.ts +++ b/lib/typed-events.ts @@ -52,9 +52,11 @@ export type EventNamesWithoutAck< > = IfAny< Last> | Map[K], K, - K extends ( - Last> extends (...args: any[]) => any ? never : K - ) + K extends (Parameters extends never[] ? K : never) + ? K + : K extends ( + Last> extends (...args: any[]) => any ? never : K + ) ? K : never >; diff --git a/test/socket.io.test-d.ts b/test/socket.io.test-d.ts index 1cb229cd90..6d91617ff2 100644 --- a/test/socket.io.test-d.ts +++ b/test/socket.io.test-d.ts @@ -187,6 +187,7 @@ describe("server", () => { Ev extends keyof Map = keyof Map > = (ev: Ev, ...args: Parameters) => ReturnType; interface ClientToServerEvents { + noArgs: () => void; helloFromClient: (message: string) => void; ackFromClient: ( a: string, @@ -196,6 +197,7 @@ describe("server", () => { } interface ServerToClientEvents { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; ackFromServer: ( a: boolean, @@ -212,12 +214,14 @@ describe("server", () => { // While these could be generated using the types from typed-events, // it's likely better to just write them out, so that both the types and this are tested properly interface ServerToClientEventsNoAck { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; ackFromServer: never; ackFromServerSingleArg: never; onlyCallback: never; } interface ServerToClientEventsWithError { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; ackFromServer: ( a: boolean, @@ -233,6 +237,7 @@ describe("server", () => { } interface ServerToClientEventsWithMultiple { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; ackFromServer: (a: boolean, b: string, ack: (c: boolean[]) => void) => void; ackFromServerSingleArg: ( @@ -243,6 +248,7 @@ describe("server", () => { onlyCallback: (a: () => void) => void; } interface ServerToClientEventsWithMultipleAndError { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; ackFromServer: ( a: boolean, @@ -383,6 +389,9 @@ describe("server", () => { }); it("has the correct types for `emit`", () => { const sio = new Server(); + expectType>( + sio.timeout(0).emit<"noArgs"> + ); expectType< ToEmit >(sio.timeout(0).emit<"helloFromServer">); @@ -406,6 +415,8 @@ describe("server", () => { expectType( undefined as Parameters[0] ); + // @ts-expect-error - "noArgs" doesn't have a callback and is thus excluded + sio.timeout(0).emitWithAck("noArgs"); // @ts-expect-error - "helloFromServer" doesn't have a callback and is thus excluded sio.timeout(0).emitWithAck("helloFromServer"); // @ts-expect-error - "onlyCallback" doesn't have a callback and is thus excluded @@ -428,7 +439,9 @@ describe("server", () => { it("Infers correct types", () => { const sio = new Server(); const nio = sio.of("/test"); - + expectType>( + sio.emit<"noArgs"> + ); expectType>( // These errors will dissapear once the TS version is updated from 4.7.4 // the TSD instance is using a newer version of TS than the workspace version @@ -439,6 +452,7 @@ describe("server", () => { nio.emit<"helloFromServer"> ); sio.on("connection", (s) => { + expectType>(s.emit<"noArgs">); expectType>( s.emit<"helloFromServer"> ); @@ -474,6 +488,8 @@ describe("server", () => { it("Infers correct types", () => { const sio = new Server(); sio.on("connection", (s) => { + // @ts-expect-error - "noArgs" doesn't have a callback and is thus excluded + s.emitWithAck("noArgs"); // @ts-expect-error - "helloFromServer" doesn't have a callback and is thus excluded s.emitWithAck("helloFromServer"); // @ts-expect-error - "onlyCallback" doesn't have a callback and is thus excluded @@ -506,6 +522,10 @@ describe("server", () => { srv.listen(() => { sio.on("connection", (s) => { expectType>(s); + s.on("noArgs", (...args) => { + expectType<[]>(args); + done(); + }); s.on("helloFromClient", (message) => { expectType(message); done(); @@ -526,6 +546,10 @@ describe("server", () => { const sio = new Server(srv); srv.listen(() => { sio.on("connection", (s) => { + // @ts-expect-error - shouldn't accept emit events + s.on("noArgs", (message, number) => { + done(); + }); // @ts-expect-error - shouldn't accept emit events s.on("helloFromServer", (message, number) => { done(); @@ -538,14 +562,17 @@ describe("server", () => { describe("listen and emit event maps for the serverSideEmit method", () => { interface ClientToServerEvents { + noArgs: () => void; helloFromClient: (message: string) => void; } interface ServerToClientEvents { + noArgs: () => void; helloFromServer: (message: string, x: number) => void; } interface InterServerEvents { + noArgs: () => void; helloFromServerToServer: (message: string, x: number) => void; ackFromServerToServer: (foo: string, cb: (bar: number) => void) => void; } @@ -563,20 +590,29 @@ describe("server", () => { Server >(sio); srv.listen(async () => { + sio.serverSideEmit("noArgs"); sio.serverSideEmit("helloFromServerToServer", "hello", 10); sio .of("/test") .serverSideEmit("helloFromServerToServer", "hello", 10); + sio.on("noArgs", (...args) => { + expectType<[]>(args); + }); sio.on("helloFromServerToServer", (message, x) => { expectType(message); expectType(x); }); + sio.of("/test").on("noArgs", (...args) => { + expectType<[]>(args); + }); sio.of("/test").on("helloFromServerToServer", (message, x) => { expectType(message); expectType(x); }); + //@ts-expect-error - "helloFromServerToServer" does not have a callback + sio.serverSideEmitWithAck("noArgs"); //@ts-expect-error - "helloFromServerToServer" does not have a callback sio.serverSideEmitWithAck("helloFromServerToServer", "hello"); From 04640d68cfd0469c04ecce63b86801625402c691 Mon Sep 17 00:00:00 2001 From: Zachary Soare Date: Fri, 5 Jan 2024 11:35:15 -0600 Subject: [PATCH 3/7] chore(tests): indicate a future ts error with version --- test/socket.io.test-d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/socket.io.test-d.ts b/test/socket.io.test-d.ts index 6d91617ff2..70f7d73ea1 100644 --- a/test/socket.io.test-d.ts +++ b/test/socket.io.test-d.ts @@ -285,7 +285,7 @@ describe("server", () => { sio.send(1, "2", [3]); // @ts-expect-error - ServerToClientEvents doesn't have a message event nio.send(1, "2", [3]); - // This should likely be an error, but I don't know how to make it one + // This correctly becomes an error in TS 5.3.2, so when updating typescript, this should expect-error sio.send(); nio.send(); }); From f8d2644921cdcaf877d07d68a2ad61c13d586663 Mon Sep 17 00:00:00 2001 From: Zachary Soare Date: Fri, 5 Jan 2024 11:37:50 -0600 Subject: [PATCH 4/7] chore(tests): add type defs for expectjs and fix invalid expectations --- test/connection-state-recovery.ts | 4 +- test/messaging-many.ts | 2 +- test/socket-timeout.ts | 2 +- test/support/expectjs.d.ts | 221 ++++++++++++++++++++++++++++++ test/support/util.ts | 1 + 5 files changed, 226 insertions(+), 4 deletions(-) create mode 100644 test/support/expectjs.d.ts diff --git a/test/connection-state-recovery.ts b/test/connection-state-recovery.ts index 9d20579953..b9d1678cb3 100644 --- a/test/connection-state-recovery.ts +++ b/test/connection-state-recovery.ts @@ -222,11 +222,11 @@ describe("connection state recovery", () => { class DummyAdapter extends Adapter { override persistSession(session) { - expect.fail(); + expect().fail(); } override restoreSession(pid, offset) { - expect.fail(); + expect().fail(); return Promise.reject("should not happen"); } } diff --git a/test/messaging-many.ts b/test/messaging-many.ts index 983ea23645..ce71062645 100644 --- a/test/messaging-many.ts +++ b/test/messaging-many.ts @@ -526,7 +526,7 @@ describe("messaging many", () => { ]).then(async () => { try { await io.timeout(200).emitWithAck("some event"); - expect.fail(); + expect().fail(); } catch (err) { expect(err).to.be.an(Error); // @ts-ignore diff --git a/test/socket-timeout.ts b/test/socket-timeout.ts index 813ec9a249..62f36807b8 100644 --- a/test/socket-timeout.ts +++ b/test/socket-timeout.ts @@ -62,7 +62,7 @@ describe("timeout", () => { io.on("connection", async (socket) => { try { await socket.timeout(50).emitWithAck("unknown"); - expect.fail(); + expect().fail(); } catch (err) { expect(err).to.be.an(Error); success(done, io, client); diff --git a/test/support/expectjs.d.ts b/test/support/expectjs.d.ts new file mode 100644 index 0000000000..9774e1e4fd --- /dev/null +++ b/test/support/expectjs.d.ts @@ -0,0 +1,221 @@ +declare function expect(target?: any): Expect.Root; + +declare namespace Expect { + interface Assertion { + /** + * Check if the value is truthy + */ + ok(): void; + + /** + * Creates an anonymous function which calls fn with arguments. + */ + withArgs(...args: any[]): Root; + + /** + * Assert that the function throws. + * + * @param fn callback to match error string against + */ + throwError(fn?: (exception: any) => void): void; + + /** + * Assert that the function throws. + * + * @param fn callback to match error string against + */ + throwException(fn?: (exception: any) => void): void; + + /** + * Assert that the function throws. + * + * @param regexp regexp to match error string against + */ + throwError(regexp: RegExp): void; + + /** + * Assert that the function throws. + * + * @param fn callback to match error string against + */ + throwException(regexp: RegExp): void; + + /** + * Checks if the array is empty. + */ + empty(): Assertion; + + /** + * Checks if the obj exactly equals another. + */ + equal(obj: any): Assertion; + + /** + * Checks if the obj sortof equals another. + */ + eql(obj: any): Assertion; + + /** + * Assert within start to finish (inclusive). + * + * @param start + * @param finish + */ + within(start: number, finish: number): Assertion; + + /** + * Assert typeof. + */ + a(type: string): Assertion; + + /** + * Assert instanceof. + */ + a(type: Function): Assertion; + + /** + * Assert typeof / instanceof. + */ + an: An; + + /** + * Assert numeric value above n. + */ + greaterThan(n: number): Assertion; + + /** + * Assert numeric value above n. + */ + above(n: number): Assertion; + + /** + * Assert numeric value below n. + */ + lessThan(n: number): Assertion; + + /** + * Assert numeric value below n. + */ + below(n: number): Assertion; + + /** + * Assert string value matches regexp. + * + * @param regexp + */ + match(regexp: RegExp): Assertion; + + /** + * Assert property "length" exists and has value of n. + * + * @param n + */ + length(n: number): Assertion; + + /** + * Assert property name exists, with optional val. + * + * @param name + * @param val + */ + property(name: string, val?: any): Assertion; + + /** + * Assert that string contains str. + */ + contain(...strings: string[]): Assertion; + string(str: string): Assertion; + + /** + * Assert that the array contains obj. + */ + contain(...objs: any[]): Assertion; + string(obj: any): Assertion; + + /** + * Assert exact keys or inclusion of keys by using the `.own` modifier. + */ + key(keys: string[]): Assertion; + /** + * Assert exact keys or inclusion of keys by using the `.own` modifier. + */ + key(...keys: string[]): Assertion; + /** + * Assert exact keys or inclusion of keys by using the `.own` modifier. + */ + keys(keys: string[]): Assertion; + /** + * Assert exact keys or inclusion of keys by using the `.own` modifier. + */ + keys(...keys: string[]): Assertion; + + /** + * Assert a failure. + */ + fail(message?: string): Assertion; + } + + interface Root extends Assertion { + not: Not; + to: To; + only: Only; + have: Have; + be: Be; + } + + interface Be extends Assertion { + /** + * Checks if the obj exactly equals another. + */ + (obj: any): Assertion; + + an: An; + } + + interface An extends Assertion { + /** + * Assert typeof. + */ + (type: string): Assertion; + + /** + * Assert instanceof. + */ + (type: Function): Assertion; + } + + interface Not extends Expect.NotBase { + to: Expect.ToBase; + } + + interface NotBase extends Assertion { + be: Be; + have: Have; + include: Assertion; + only: Only; + } + + interface To extends Expect.ToBase { + not: Expect.NotBase; + } + + interface ToBase extends Assertion { + be: Be; + have: Have; + include: Assertion; + only: Only; + } + + interface Only extends Assertion { + have: Have; + } + + interface Have extends Assertion { + own: Assertion; + } +} + +declare module "expect.js" { + //@ts-ignore + export = expect; +} diff --git a/test/support/util.ts b/test/support/util.ts index f44fedb480..ac78016fbe 100644 --- a/test/support/util.ts +++ b/test/support/util.ts @@ -1,3 +1,4 @@ +/// import type { Server } from "../.."; import { io as ioc, From 2c0a81cd8737388f92a87afe51deb1e92b4aba45 Mon Sep 17 00:00:00 2001 From: Zachary Soare Date: Fri, 5 Jan 2024 11:38:28 -0600 Subject: [PATCH 5/7] chore(tests): fix issues due to client#id type change --- test/namespaces.ts | 3 +++ test/support/util.ts | 10 ++++++++++ test/uws.ts | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/test/namespaces.ts b/test/namespaces.ts index d78d25f86d..ffe9602c30 100644 --- a/test/namespaces.ts +++ b/test/namespaces.ts @@ -6,6 +6,7 @@ import { createClient, successFn, createPartialDone, + assert, } from "./support/util"; describe("namespaces", () => { @@ -417,6 +418,7 @@ describe("namespaces", () => { socket1.on("a", successFn(done, io, socket1, socket2)); socket2.on("connect", () => { + assert(socket2.id); io.except(socket2.id).emit("a"); }); }); @@ -435,6 +437,7 @@ describe("namespaces", () => { socket1.on("a", successFn(done, io, socket1, socket2)); socket2.on("connect", () => { + assert(socket2.id); nsp.except(socket2.id).emit("a"); }); }); diff --git a/test/support/util.ts b/test/support/util.ts index ac78016fbe..1742010f48 100644 --- a/test/support/util.ts +++ b/test/support/util.ts @@ -63,6 +63,16 @@ export function successFn( return () => success(done, sio, ...clientSockets); } +/** + * Asserts a condition so that typescript will recognize the assertion! + * + * Uses expect's `ok` check on condition + * @param condition + */ +export function assert(condition: any): asserts condition { + expect(condition).to.be.ok(); +} + export function getPort(io: Server): number { // @ts-ignore return io.httpServer.address().port; diff --git a/test/uws.ts b/test/uws.ts index 13ede296af..3a287e6468 100644 --- a/test/uws.ts +++ b/test/uws.ts @@ -7,6 +7,7 @@ import { Server } from ".."; import { io as ioc, Socket as ClientSocket } from "socket.io-client"; import request from "supertest"; import expect from "expect.js"; +import { assert } from "./support/util"; const createPartialDone = (done: (err?: Error) => void, count: number) => { let i = 0; @@ -134,6 +135,8 @@ describe("socket.io with uWebSocket.js-based engine", () => { clientWSOnly.on("hello", partialDone); clientPollingOnly.on("hello", partialDone); clientCustomNamespace.on("hello", shouldNotHappen(done)); + assert(clientWSOnly.id); + assert(clientPollingOnly.id); io.of("/").sockets.get(clientWSOnly.id)!.join("room1"); io.of("/").sockets.get(clientPollingOnly.id)!.join("room1"); @@ -148,6 +151,8 @@ describe("socket.io with uWebSocket.js-based engine", () => { clientWSOnly.on("hello", partialDone); clientPollingOnly.on("hello", partialDone); clientCustomNamespace.on("hello", shouldNotHappen(done)); + assert(clientWSOnly.id); + assert(clientPollingOnly.id); io.of("/").sockets.get(clientWSOnly.id)!.join("room1"); io.of("/").sockets.get(clientPollingOnly.id)!.join("room2"); @@ -163,6 +168,8 @@ describe("socket.io with uWebSocket.js-based engine", () => { clientPollingOnly.on("hello", shouldNotHappen(done)); clientCustomNamespace.on("hello", shouldNotHappen(done)); + assert(clientWSOnly.id); + assert(clientPollingOnly.id); io.of("/").sockets.get(clientWSOnly.id)!.join("room1"); io.of("/").sockets.get(clientPollingOnly.id)!.join("room2"); @@ -177,6 +184,9 @@ describe("socket.io with uWebSocket.js-based engine", () => { clientPollingOnly.on("hello", partialDone); clientCustomNamespace.on("hello", shouldNotHappen(done)); + assert(client.id); + assert(clientWSOnly.id); + assert(clientPollingOnly.id); io.of("/").sockets.get(client.id)!.join("room1"); io.of("/").sockets.get(clientPollingOnly.id)!.join("room1"); @@ -189,6 +199,7 @@ describe("socket.io with uWebSocket.js-based engine", () => { it("should not crash when socket is disconnected before the upgrade", (done) => { client.on("disconnect", () => done()); + assert(client.id); io.of("/").sockets.get(client.id)!.disconnect(); }); From d9fb2f64b618af2d50adae83b17d6d757b05600a Mon Sep 17 00:00:00 2001 From: Zachary Soare Date: Sun, 7 Jan 2024 09:35:52 -0600 Subject: [PATCH 6/7] chore(tests): add a test for noArgs in a namespace --- test/socket.io.test-d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/socket.io.test-d.ts b/test/socket.io.test-d.ts index 70f7d73ea1..d2d5a08204 100644 --- a/test/socket.io.test-d.ts +++ b/test/socket.io.test-d.ts @@ -442,6 +442,9 @@ describe("server", () => { expectType>( sio.emit<"noArgs"> ); + expectType>( + nio.emit<"noArgs"> + ); expectType>( // These errors will dissapear once the TS version is updated from 4.7.4 // the TSD instance is using a newer version of TS than the workspace version From 6ab2509d529d438e25b6c3a701444aa6585fa153 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Fri, 12 Jan 2024 11:09:14 +0100 Subject: [PATCH 7/7] chore(release): 4.7.4 Diff: https://github.com/socketio/socket.io/compare/4.7.3...4.7.4 --- CHANGELOG.md | 16 ++++++++++++++++ client-dist/socket.io.esm.min.js | 2 +- client-dist/socket.io.js | 2 +- client-dist/socket.io.min.js | 2 +- client-dist/socket.io.msgpack.min.js | 2 +- package-lock.json | 14 +++++++------- package.json | 4 ++-- 7 files changed, 29 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e25d8b10cd..24bf5befae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 2024 +- [4.7.4](#474-2024-01-12) (Jan 2024) - [4.7.3](#473-2024-01-03) (Jan 2024) ## 2023 @@ -65,6 +66,21 @@ # Release notes +## [4.7.4](https://github.com/socketio/socket.io/compare/4.7.3...4.7.4) (2024-01-12) + + +### Bug Fixes + +* **typings:** calling io.emit with no arguments incorrectly errored ([cb6d2e0](https://github.com/socketio/socket.io/commit/cb6d2e02aa7ec03c2de1817d35cffa1128b107ef)), closes [#4914](https://github.com/socketio/socket.io/issues/4914) + + +### Dependencies + +- [`engine.io@~6.5.2`](https://github.com/socketio/engine.io/releases/tag/6.5.2) (no change) +- [`ws@~8.11.0`](https://github.com/websockets/ws/releases/tag/8.11.0) (no change) + + + ## [4.7.3](https://github.com/socketio/socket.io/compare/4.7.2...4.7.3) (2024-01-03) diff --git a/client-dist/socket.io.esm.min.js b/client-dist/socket.io.esm.min.js index f7f283f149..ecddf45d0a 100644 --- a/client-dist/socket.io.esm.min.js +++ b/client-dist/socket.io.esm.min.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v4.7.3 + * Socket.IO v4.7.4 * (c) 2014-2024 Guillermo Rauch * Released under the MIT License. */ diff --git a/client-dist/socket.io.js b/client-dist/socket.io.js index 55e9dc8d78..dcc9af04a8 100644 --- a/client-dist/socket.io.js +++ b/client-dist/socket.io.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v4.7.3 + * Socket.IO v4.7.4 * (c) 2014-2024 Guillermo Rauch * Released under the MIT License. */ diff --git a/client-dist/socket.io.min.js b/client-dist/socket.io.min.js index 40046a72d1..2276074616 100644 --- a/client-dist/socket.io.min.js +++ b/client-dist/socket.io.min.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v4.7.3 + * Socket.IO v4.7.4 * (c) 2014-2024 Guillermo Rauch * Released under the MIT License. */ diff --git a/client-dist/socket.io.msgpack.min.js b/client-dist/socket.io.msgpack.min.js index 1a52eb4f7b..8e18d4720e 100644 --- a/client-dist/socket.io.msgpack.min.js +++ b/client-dist/socket.io.msgpack.min.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v4.7.3 + * Socket.IO v4.7.4 * (c) 2014-2024 Guillermo Rauch * Released under the MIT License. */ diff --git a/package-lock.json b/package-lock.json index 1cf33d42a7..36fd65456c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "nyc": "^15.1.0", "prettier": "^2.3.2", "rimraf": "^3.0.2", - "socket.io-client": "4.7.3", + "socket.io-client": "4.7.4", "socket.io-client-v2": "npm:socket.io-client@^2.4.0", "superagent": "^8.0.0", "supertest": "^6.1.6", @@ -3478,9 +3478,9 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", - "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz", + "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -6942,9 +6942,9 @@ } }, "socket.io-client": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", - "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz", + "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", diff --git a/package.json b/package.json index c62bef2c72..078917a172 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "socket.io", - "version": "4.7.3", + "version": "4.7.4", "description": "node.js realtime framework server", "keywords": [ "realtime", @@ -61,7 +61,7 @@ "nyc": "^15.1.0", "prettier": "^2.3.2", "rimraf": "^3.0.2", - "socket.io-client": "4.7.3", + "socket.io-client": "4.7.4", "socket.io-client-v2": "npm:socket.io-client@^2.4.0", "superagent": "^8.0.0", "supertest": "^6.1.6",