From 9b5afc8c6b4c7ec7ebe240285f728144c4490d1c Mon Sep 17 00:00:00 2001 From: Cassio Santos Date: Thu, 3 Jul 2025 17:08:58 -0300 Subject: [PATCH] fix: add lid sutff to message.key type (#1586) * fix: add lid sutff to message.key type * feat: add view once information to msg key --- src/Types/Message.ts | 3 ++- src/Utils/decode-wa-message.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Types/Message.ts b/src/Types/Message.ts index 2ef4b34..ec86db7 100644 --- a/src/Types/Message.ts +++ b/src/Types/Message.ts @@ -9,7 +9,7 @@ import { CacheStore } from './Socket' // export the WAMessage Prototypes export { proto as WAProto } -export type WAMessage = proto.IWebMessageInfo +export type WAMessage = proto.IWebMessageInfo & { key: WAMessageKey } export type WAMessageContent = proto.IMessage export type WAContactMessage = proto.Message.IContactMessage export type WAContactsArrayMessage = proto.Message.IContactsArrayMessage @@ -19,6 +19,7 @@ export type WAMessageKey = proto.IMessageKey & { senderPn?: string participantLid?: string participantPn?: string + isViewOnce?: boolean } export type WATextMessage = proto.Message.IExtendedTextMessage export type WAContextInfo = proto.IContextInfo diff --git a/src/Utils/decode-wa-message.ts b/src/Utils/decode-wa-message.ts index 3a470f7..c7f71af 100644 --- a/src/Utils/decode-wa-message.ts +++ b/src/Utils/decode-wa-message.ts @@ -1,6 +1,6 @@ import { Boom } from '@hapi/boom' import { proto } from '../../WAProto' -import { SignalRepository, WAMessageKey } from '../Types' +import { SignalRepository, WAMessage, WAMessageKey } from '../Types' import { areJidsSameUser, BinaryNode, @@ -118,7 +118,7 @@ export function decodeMessageNode(stanza: BinaryNode, meId: string, meLid: strin ...(msgType === 'newsletter' && stanza.attrs.server_id ? { server_id: stanza.attrs.server_id } : {}) } - const fullMessage: proto.IWebMessageInfo = { + const fullMessage: WAMessage = { key, messageTimestamp: +stanza.attrs.t, pushName: pushname, @@ -158,6 +158,10 @@ export const decryptMessageNode = ( fullMessage.verifiedBizName = details.verifiedName } + if (tag === 'unavailable' && attrs.type === 'view_once') { + fullMessage.key.isViewOnce = true + } + if (tag !== 'enc' && tag !== 'plaintext') { continue }