fix: harden Protobuf Deserialization and Refactor Utilities (#1820)

* refactor: reorganize browser utility functions and improve buffer handling

* fix: harden protobuf deserialization and clean up code

* refactor: simplify data handling in GroupCipher and SenderKey classes

* fix: Ensure consistent Buffer hydration and remove redundant code

* refactor: update decodeAndHydrate calls to use proto types for improved type safety
This commit is contained in:
João Lucas de Oliveira Lopes
2025-09-25 22:45:30 -03:00
committed by GitHub
parent 202c39f3fe
commit 3b46d43beb
23 changed files with 194 additions and 160 deletions
+3 -2
View File
@@ -40,6 +40,7 @@ import {
getRawMediaUploadData,
type MediaDownloadOptions
} from './messages-media'
import { decodeAndHydrate } from './proto-utils'
type MediaUploadData = {
media: WAMediaUpload
@@ -156,7 +157,7 @@ export const prepareWAMessageMedia = async (
if (mediaBuff) {
logger?.debug({ cacheableKey }, 'got media cache hit')
const obj = WAProto.Message.decode(mediaBuff)
const obj = decodeAndHydrate(proto.Message, mediaBuff)
const key = `${mediaType}Message`
Object.assign(obj[key as keyof proto.Message]!, { ...uploadData, media: undefined })
@@ -339,7 +340,7 @@ export const generateForwardMessageContent = (message: WAMessage, forceForward?:
// hacky copy
content = normalizeMessageContent(content)
content = proto.Message.decode(proto.Message.encode(content!).finish())
content = decodeAndHydrate(proto.Message, proto.Message.encode(content!).finish())
let key = Object.keys(content)[0] as keyof proto.IMessage