// Check if the number is MX or AR function formatMXOrARNumber(jid: string): string { const countryCode = jid.substring(0, 2); if (Number(countryCode) === 52 || Number(countryCode) === 54) { if (jid.length === 13) { const number = countryCode + jid.substring(3); return number; } return jid; } return jid; } // Check if the number is br function formatBRNumber(jid: string) { const regexp = new RegExp(/^(\d{2})(\d{2})\d{1}(\d{8})$/); if (regexp.test(jid)) { const match = regexp.exec(jid); if (match && match[1] === '55') { const joker = Number.parseInt(match[3][0]); const ddd = Number.parseInt(match[2]); if (joker < 7 || ddd < 31) { return match[0]; } return match[1] + match[2] + match[3]; } return jid; } else { return jid; } } export function createJid(number: string): string { number = number.replace(/:\d+/, ''); if (number.includes('@g.us') || number.includes('@s.whatsapp.net') || number.includes('@lid')) { return number; } if (number.includes('@broadcast')) { return number; } number = number ?.replace(/\s/g, '') .replace(/\+/g, '') .replace(/\(/g, '') .replace(/\)/g, '') .split(':')[0] .split('@')[0]; if (number.includes('-') && number.length >= 24) { number = number.replace(/[^\d-]/g, ''); return `${number}@g.us`; } number = number.replace(/\D/g, ''); if (number.length >= 18) { number = number.replace(/[^\d-]/g, ''); return `${number}@g.us`; } number = formatMXOrARNumber(number); number = formatBRNumber(number); return `${number}@s.whatsapp.net`; }