"use strict";
/**
 * Utilitários para manipulação de JIDs (Jabber IDs) do WhatsApp.
 *
 * O WhatsApp usa JIDs como identificadores únicos para contatos, grupos e canais:
 *   - Contatos individuais: "5511999999999@s.whatsapp.net"
 *   - Grupos: "120363012345678@g.us"
 *   - Canais/newsletters: "120363012345678@newsletter"
 *   - LID (Linked ID): "123456789012345@lid" (identificador interno moderno)
 *   - Broadcast: "status@broadcast"
 *
 * JIDs de dispositivo incluem sufixo ":N" (ex: "5511999999999:1@s.whatsapp.net")
 * que identifica o dispositivo específico (multi-device). Para armazenamento
 * e comparação, normalizamos removendo esse sufixo.
 *
 * @see MessageHandler — usa normalizeJid para persistir mensagens
 * @see ContactHandler — usa para vincular contatos a chats
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeJid = normalizeJid;
exports.extractPhone = extractPhone;
/**
 * Normaliza um JID do WhatsApp removendo sufixos de dispositivo (:1, :2, etc).
 *
 * Exemplos:
 *   "556199999999:1@s.whatsapp.net" → "556199999999@s.whatsapp.net"
 *   "556199999999@s.whatsapp.net"   → "556199999999@s.whatsapp.net" (sem mudança)
 *   "120363012345@g.us"             → "120363012345@g.us" (grupos não têm sufixo)
 *   null / undefined                → "" (string vazia como fallback seguro)
 *
 * IMPORTANTE: Não confundir com resolução LID. Este método apenas remove
 * o sufixo de dispositivo — NÃO converte @lid para @s.whatsapp.net.
 * Para resolução LID, veja MessageHandler.resolveLidToPhoneJid().
 *
 * @param jid - JID bruto do Baileys (pode conter sufixo de dispositivo)
 * @returns JID normalizado sem sufixo de dispositivo
 */
function normalizeJid(jid) {
    if (!jid)
        return '';
    const [userPart, domain] = jid.split('@');
    if (!domain)
        return jid; // Não é um JID válido (sem @), retorna como está
    // Remove sufixo de dispositivo: "556199999999:1" → "556199999999"
    const [cleanUser] = userPart.split(':');
    return `${cleanUser}@${domain}`;
}
/**
 * Extrai o número de telefone puro de um JID.
 *
 * Exemplos:
 *   "5511999999999@s.whatsapp.net"   → "5511999999999"
 *   "5511999999999:1@s.whatsapp.net" → "5511999999999"
 *   "120363012345@g.us"              → null (grupos não têm telefone único)
 *   null / undefined                 → null
 *
 * @param jid - JID do WhatsApp
 * @returns Número de telefone (apenas dígitos + código do país) ou null
 */
function extractPhone(jid) {
    if (!jid)
        return null;
    if (jid.endsWith('@g.us'))
        return null; // Grupos não têm "telefone" único no JID
    const [userPart] = jid.split('@');
    const [cleanUser] = userPart.split(':');
    return cleanUser;
}
//# sourceMappingURL=whatsapp.js.map