From 74f6259fd7417ac5ac0c265c19acc3289c407a5b Mon Sep 17 00:00:00 2001 From: MoonsvnLyn <287222957+FirmaSpring@users.noreply.github.com> Date: Mon, 17 Aug 2026 15:26:09 +0800 Subject: [PATCH] fix(sio): parse Engine.v3 namespace query without Object.fromEntries Keep protocol-3 connect auth parsing compatible with engines.node >=10.2.0. Co-authored-by: FirmamentalSpring <287222957+FirmaSpring@users.noreply.github.com> --- packages/socket.io/lib/client.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/socket.io/lib/client.ts b/packages/socket.io/lib/client.ts index 50b2eae3b5..08f4b1ec46 100644 --- a/packages/socket.io/lib/client.ts +++ b/packages/socket.io/lib/client.ts @@ -11,6 +11,16 @@ import type { Socket as RawSocket } from "engine.io"; const debug = debugModule("socket.io:client"); +function objectFromEntries( + entries: Iterable, +): Record { + const obj: Record = Object.create(null); + for (const [key, value] of entries) { + obj[key as string] = value; + } + return obj; +} + interface WriteOptions { compress?: boolean; volatile?: boolean; @@ -296,7 +306,7 @@ export class Client< const url = new URL(packet.nsp, "https://socket.io"); return { namespace: url.pathname, - authPayload: Object.fromEntries(url.searchParams.entries()), + authPayload: objectFromEntries(url.searchParams.entries()), }; }