{ executablePath } = require "puppeteer" { Client, Events, LocalAuth } = require "whatsapp-web.js" { CHROME_BIN, GROUP_ID, PHONE_NUMBER } = process.env unless GROUP_ID and PHONE_NUMBER console.log "Set GROUP_ID and PHONE_NUMBER first (for bot) in env" process.exit 1 PHONE_NUMBER = PHONE_NUMBER.replace /\D/g, "" client = new Client authStrategy: new LocalAuth clientId: PHONE_NUMBER puppeteer: headless: "new", args: ["--no-sandbox"], executablePath: CHROME_BIN or executablePath() pairingCodeRequested = false client.on Events.QR_RECEIVED, (qr) -> if not pairingCodeRequested pairingCode = await client.requestPairingCode PHONE_NUMBER console.log "Pairing code:", pairingCode pairingCodeRequested = true client.on Events.READY, () -> debugWWebVersion = await client.getWWebVersion() console.log "WWebVersion", debugWWebVersion module.exports = client