Acabei de lançar a versão 2.0 do validation-br, uma biblioteca em TypeScript para validar documentos brasileiros: CPF, CNPJ (numérico e alfanumérico), CEP, Boleto, chave Pix, Pix Copia e Cola, Título de Eleitor, PIS/PASEP, CNH, RENAVAM e mais uma dezena de outros formatos. A grande mudança da 2.0 é a forma como a validação funciona: cada documento agora é uma classe imutável, no estilo value object. Em vez de chamar uma função que devolve true ou false, você instancia o documento e ele já nasce validado. import { CPF } from 'validation-br/cpf'; const cpf = new CPF('906.259.666-51'); cpf.value // -> '90625966651', o valor normalizado, sem máscara cpf.mask() // -> '906.259.666-51' Se o valor for inválido, o construtor lança uma exceção em vez de devolver false. Isso deixa o fluxo mais explícito: ou você tem um CPF de verdade em mãos, ou você trata o erro. Pra quem só quer um booleano rápido, os atalhos isCPF, isCNPJ etc. continuam existindo e funcionando exatamente como antes. Um ponto que considero importante: o pacote não tem nenhuma dependência em produção. Zero. Só usa APIs nativas do JS/TS, o que significa um node_modules mais enxuto e uma superfície de ataque bem menor pra quem se preocupa com supply chain. Exemplo: CNPJ alfanumérico Desde 2026 a Receita Federal aceita CNPJ com letras no corpo do número (mantendo os dois últimos dígitos verificadores sempre numéricos). O validation-br já suporta isso, inclusive pra gerar exemplos fake pra teste: import { CNPJ } from 'validation-br/cnpj'; // Gera um CNPJ alfanumérico de exemplo CNPJ.fake({ alphanumeric: true }).mask(); // -> 'WX.BC2.1FX/0001-00' new CNPJ('WX.BC2.1FX/0001-00').value; // -> 'WXBC21FX000100', o valor normalizado A mesma classe calcula o dígito verificador, aplica e remove máscara, e gera valores fake válidos, tanto no formato numérico tradicional quanto no alfanumérico novo. Onde encontrar Site e documentação completa: https://validation-br.js.org Código no GitHub: https://github.com/klawdyo/validation-br Instalação: npm install validation-br