module.exports = async function (page, url, siteKey) { return new Promise(async (resolve, reject) => { const timeout = setTimeout(() => reject(new Error("Timeout Turnstile")), 30000); try { await page.goto(url, { waitUntil: "domcontentloaded" }); const htmlContent = `
`; await page.setRequestInterception(true); page.once('request', request => { request.respond({ status: 200, contentType: 'text/html', body: htmlContent }); }); await page.reload(); const waitToken = setInterval(async () => { const token = await page.evaluate(() => window.cf_token); if (token) { clearInterval(waitToken); clearTimeout(timeout); resolve({ token: token }); } }, 500); } catch (e) { clearTimeout(timeout); reject(e); } }); };