From a3391996102d90d55bad9cd2ba3e9c605afab53d Mon Sep 17 00:00:00 2001 From: Rajeh Taher Date: Fri, 1 Mar 2024 16:05:09 +0200 Subject: [PATCH] Fix isOfficialClient (#2794) * fix(isOfficialClient): initial commit * fix(isOfficial): eslint my dear * chore: eslint my dear x2 * fix(isOfficial): make code more transparent * fix(isOfficial): missing await * fix(isOfficial): Obfuscate set to custom seed so maintainers can verify * feat(isOfficial): original code * chore: eslint --- src/Client.js | 14 ++++++++++++++ tests/structures/group.js | 1 + 2 files changed, 15 insertions(+) diff --git a/src/Client.js b/src/Client.js index ca75e66..c0c1db0 100644 --- a/src/Client.js +++ b/src/Client.js @@ -105,6 +105,8 @@ class Client extends EventEmitter { if(!browserArgs.find(arg => arg.includes('--user-agent'))) { browserArgs.push(`--user-agent=${this.options.userAgent}`); } + // navigator.webdriver fix + browserArgs.push('--disable-blink-features=AutomationControlled'); browser = await puppeteer.launch({...puppeteerOpts, args: browserArgs}); page = (await browser.pages())[0]; @@ -123,6 +125,18 @@ class Client extends EventEmitter { await this.authStrategy.afterBrowserInitialized(); await this.initWebVersionCache(); + // ocVesion (isOfficialClient patch) + await page.evaluateOnNewDocument(() => { + const originalError = Error; + //eslint-disable-next-line no-global-assign + Error = function (message) { + const error = new originalError(message); + const originalStack = error.stack; + if (error.stack.includes('moduleRaid')) error.stack = originalStack + '\n at https://web.whatsapp.com/vendors~lazy_loaded_low_priority_components.05e98054dbd60f980427.js:2:44'; + return error; + }; + }); + await page.goto(WhatsWebURL, { waitUntil: 'load', timeout: 0, diff --git a/tests/structures/group.js b/tests/structures/group.js index 6c47dd5..133ded6 100644 --- a/tests/structures/group.js +++ b/tests/structures/group.js @@ -193,6 +193,7 @@ describe('Group', function() { describe('Leave / re-join', function () { let code; + before(async function () { code = await group.getInviteCode(); });