export function dedupeOcorrencias(arr) {
    const seen = new Map();
    for (const ocorrencia of arr || []) {
        const key = `${ocorrencia.relPath || ''}|${String(ocorrencia.linha ?? '')}|${ocorrencia.tipo || ''}|${ocorrencia.mensagem || ''}`;
        if (!seen.has(key))
            seen.set(key, ocorrencia);
    }
    return Array.from(seen.values());
}
export function agruparAnalistas(analistas) {
    if (!analistas || !Array.isArray(analistas) || analistas.length === 0)
        return [];
    const map = new Map();
    for (const arquivo of analistas) {
        const nome = String(arquivo && arquivo['nome'] || 'desconhecido');
        const dur = Number(arquivo && arquivo['duracaoMs'] || 0);
        const occ = Number(arquivo && arquivo['ocorrencias'] || 0);
        const globalFlag = Boolean(arquivo && arquivo['global'] || false);
        const entry = map.get(nome) || {
            nome,
            duracaoMs: 0,
            ocorrencias: 0,
            execucoes: 0,
            global: false
        };
        entry.duracaoMs += dur;
        entry.ocorrencias += occ;
        entry.execucoes += 1;
        entry.global = entry.global || globalFlag;
        map.set(nome, entry);
    }
    return Array.from(map.values()).sort((x, y) => {
        return y.ocorrencias - x.ocorrencias || y.duracaoMs - x.duracaoMs;
    });
}
//# sourceMappingURL=occurrences.js.map