diff --git a/index.d.ts b/index.d.ts index edf4684..76ac264 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'events' import { RequestInit } from 'node-fetch' -import puppeteer from 'puppeteer' +import * as puppeteer from 'puppeteer' declare namespace WAWebJS { @@ -399,10 +399,10 @@ declare namespace WAWebJS { * Remote store interface */ export interface Store { - sessionExists: ({session: string}) => Promise | boolean, - delete: ({session: string}) => Promise | any, - save: ({session: string}) => Promise | any, - extract: ({session: string, path: string}) => Promise | any, + sessionExists: (options: { session: string }) => Promise | boolean, + delete: (options: { session: string }) => Promise | any, + save: (options: { session: string }) => Promise | any, + extract: (options: { session: string, path: string }) => Promise | any, } /** diff --git a/src/Client.js b/src/Client.js index b36eb96..d3c9bb4 100644 --- a/src/Client.js +++ b/src/Client.js @@ -989,7 +989,13 @@ class Client extends EventEmitter { */ async getCommonGroups(contactId) { const commonGroups = await this.pupPage.evaluate(async (contactId) => { - const contact = window.Store.Contact.get(contactId); + let contact = window.Store.Contact.get(contactId); + if (!contact) { + const wid = window.Store.WidFactory.createUserWid(contactId); + const chatConstructor = window.Store.Contact.getModelsArray().find(c=>!c.isGroup).constructor; + contact = new chatConstructor({id: wid}); + } + if (contact.commonGroups) { return contact.commonGroups.serialize(); } diff --git a/src/authStrategies/RemoteAuth.js b/src/authStrategies/RemoteAuth.js index 5ae85cc..f84ba59 100644 --- a/src/authStrategies/RemoteAuth.js +++ b/src/authStrategies/RemoteAuth.js @@ -178,9 +178,9 @@ class RemoteAuth extends BaseAuthStrategy { await fs.promises.rm(dirElement, { recursive: true, force: true - }); + }).catch(() => {}); } else { - await fs.promises.unlink(dirElement); + await fs.promises.unlink(dirElement).catch(() => {}); } } } diff --git a/src/structures/Message.js b/src/structures/Message.js index dc4acaf..e8260dd 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -430,14 +430,14 @@ class Message extends Base { /** * Deletes a message from the chat - * @param {?boolean} everyone If true and the message is sent by the current user, will delete it for everyone in the chat. + * @param {?boolean} everyone If true and the message is sent by the current user or the user is an admin, will delete it for everyone in the chat. */ async delete(everyone) { await this.client.pupPage.evaluate((msgId, everyone) => { let msg = window.Store.Msg.get(msgId); - if (everyone && msg.id.fromMe && msg._canRevoke()) { - return window.Store.Cmd.sendRevokeMsgs(msg.chat, [msg], {type: 'Sender'}); + if (everyone && msg._canRevoke()) { + return window.Store.Cmd.sendRevokeMsgs(msg.chat, [msg], { type: msg.id.fromMe ? 'Sender' : 'Admin' }); } return window.Store.Cmd.sendDeleteMsgs(msg.chat, [msg], true);