UNPKG

@baileys-md/baileys

Version:

Baileys WhatsApp API

54 lines (51 loc) 1.44 kB
//========================================// import { assertNodeErrorFree, getBinaryNodeChild } from "../../WABinary/index.js"; export class USyncDeviceProtocol { constructor() { this.name = "devices"; } getQueryElement() { return { tag: "devices", attrs: { version: "2" } }; } getUserElement() { return null; } parser(node) { const deviceList = []; let keyIndex = undefined; if (node.tag === "devices") { assertNodeErrorFree(node); const deviceListNode = getBinaryNodeChild(node, "device-list"); const keyIndexNode = getBinaryNodeChild(node, "key-index-list"); if (Array.isArray(deviceListNode?.content)) { for (const { tag, attrs } of deviceListNode.content) { const id = +attrs.id; const keyIndex = +attrs["key-index"]; if (tag === "device") { deviceList.push({ id, keyIndex, isHosted: !!(attrs["is_hosted"] && attrs["is_hosted"] === "true") }); } } } if (keyIndexNode?.tag === "key-index-list") { keyIndex = { timestamp: +keyIndexNode.attrs["ts"], signedKeyIndex: keyIndexNode?.content, expectedTimestamp: keyIndexNode.attrs["expected_ts"] ? +keyIndexNode.attrs["expected_ts"] : undefined }; } } return { deviceList, keyIndex }; } }