From c41aae78c237e30c1bf10430b00bd015e7b26cff Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Wed, 8 Oct 2025 02:46:09 +0300 Subject: [PATCH] messages-send,jid-utils: get deterministic server for user --- src/Socket/messages-send.ts | 6 ++++-- src/WABinary/jid-utils.ts | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Socket/messages-send.ts b/src/Socket/messages-send.ts index 2a754f0e..0a7d329c 100644 --- a/src/Socket/messages-send.ts +++ b/src/Socket/messages-send.ts @@ -42,6 +42,7 @@ import { type FullJid, getBinaryNodeChild, getBinaryNodeChildren, + getServerFromDomainType, isJidGroup, isJidHostedLidUser, isJidHostedPnUser, @@ -320,9 +321,10 @@ export const makeMessagesSocket = (config: SocketConfig) => { // Process all devices for this user for (const item of userDevices) { + const deterministicServer = getServerFromDomainType(item.server, item.domainType) const finalJid = isLidUser - ? jidEncode(user, item.server, item.device, item.domainType) - : jidEncode(item.user, item.server, item.device, item.domainType) + ? jidEncode(user, deterministicServer, item.device) + : jidEncode(item.user, deterministicServer, item.device) deviceResults.push({ ...item, diff --git a/src/WABinary/jid-utils.ts b/src/WABinary/jid-utils.ts index b7ab62b2..1b74d54d 100644 --- a/src/WABinary/jid-utils.ts +++ b/src/WABinary/jid-utils.ts @@ -34,6 +34,20 @@ export type FullJid = JidWithDevice & { domainType?: number } +export const getServerFromDomainType = (initialServer: string, domainType?: WAJIDDomains): JidServer => { + switch(domainType) { + case WAJIDDomains.LID: + return 'lid' + case WAJIDDomains.HOSTED: + return 'hosted' + case WAJIDDomains.HOSTED_LID: + return 'hosted.lid' + case WAJIDDomains.WHATSAPP: + default: + return initialServer + } +} + export const jidEncode = (user: string | number | null, server: JidServer, device?: number, agent?: number) => { return `${user || ''}${!!agent ? `_${agent}` : ''}${!!device ? `:${device}` : ''}@${server}` }