UNPKG

@thalonbr/docbr

Version:

Uma biblioteca leve e moderna para **validação de documentos brasileiros** (CPF e CNPJ), com suporte total a **CNPJ alfanumérico**, conforme especificações da Receita Federal para 2026.

161 lines (101 loc) 3.92 kB
# 📄 @thalonbr/docbr Uma biblioteca leve e moderna para **validação de documentos brasileiros** (CPF e CNPJ), com suporte total a **CNPJ alfanumérico**, conforme especificações da Receita Federal para 2026. --- ## ✨ Recursos - Validação precisa de **CPF** - Validação de **CNPJ numérico** - Validação de **CNPJ alfanumérico** (compatível com o novo formato válido a partir de **26 de julho de 2026**) - Preenchimento automático de zeros à esquerda, se necessário - Código limpo, modular e com mensagens de erro claras --- ## 🚀 Instalação ```bash npm install @thalonbr/docbr ``` ou ```bash yarn add @thalonbr/docbr ``` --- ## 🛠️ Uso ### ✅ Validação de CPF ```ts import { isValidCPF } from '@thalonbr/docbr' const cpf1 = '123.456.789-09' const cpf2 = '11144477735' console.log(isValidCPF(cpf1)) // false console.log(isValidCPF(cpf2)) // true ``` ### ✅ Validação de CNPJ numérico ```ts import { isValidCNPJ } from '@thalonbr/docbr' const cnpj = '11.222.333/0001-81' console.log(isValidCNPJ(cnpj)) // true ou false, dependendo do CNPJ ``` ### ✅ Validação de CNPJ com letras (Alfanumérico) ```ts import { isValidCNPJ } from '@thalonbr/docbr' const cnpjAlfanumerico = 'AB1222333000181' // 14 caracteres, letras são convertidas via algoritmo da Receita console.log(isValidCNPJ(cnpjAlfanumerico)) // true ou false, com base no DV calculado ``` ### 🔍 Preenchimento com zeros à esquerda (automático) ```ts import { isValidCPF, isValidCNPJ } from '@thalonbr/docbr' console.log(isValidCPF('123456789')) // false, mas tenta validar com zeros à esquerda console.log(isValidCNPJ('112223330001')) // idem ``` --- ## 🧠 Como funciona A biblioteca aplica os **algoritmos oficiais da Receita Federal** para cálculo dos dígitos verificadores de CPF e CNPJ. Para CNPJ alfanumérico, convertemos letras para valores numéricos com base na tabela de substituição da Receita, garantindo compatibilidade futura. --- ## 📌 Aviso Importante > A Receita Federal anunciou que, **a partir de julho de 2026**, **novos CNPJs poderão conter letras** em sua composição. > > A biblioteca `@thalonbr/docbr` está **100% preparada** para lidar com esse novo formato. > **Você pode validar CNPJs alfanuméricos com segurança desde já.** --- ## 📦 API ### `isValidCPF(cpf: string): boolean` Valida um CPF com ou sem formatação. - `cpf`: CPF em string, com ou sem pontuação (ex: `'123.456.789-09'` ou `'12345678909'`) - Retorna `true` se válido, senão `false` - Lança erro se o valor for vazio ou nulo --- ### `isValidCNPJ(cnpj: string): boolean` Valida um CNPJ com ou sem formatação. Suporta letras (formato 2026+). - `cnpj`: CNPJ em string, com ou sem pontuação (ex: `'12.345.678/0001-90'`, `'12345678000190'` ou `'AB345678000190'`) - Retorna `true` se válido, senão `false` - Lança erro se o valor for vazio ou nulo --- ## 🧪 Testes Você pode rodar testes unitários com: ```bash npm test ``` --- ## 🤝 Contribuições Contribuições são super bem-vindas! Sinta-se à vontade para abrir issues, sugerir melhorias ou enviar PRs. --- ## 📄 Licença MIT © [Vittor Duarte](https://github.com/thalonbr) --- ## 💡 Exemplo real de uso ```ts import { isValidCPF, isCNPJValid } from '@thalonbr/docbr' const users = [ { name: 'Carlos', cpf: '11144477735' }, { name: 'Empresa ABC', cnpj: 'AB1222333000181' } ] users.forEach(user => { if (user.cpf && !isValidCPF(user.cpf)) { console.log(`CPF inválido: ${user.name}`) } if (user.cnpj && !isCNPJValid(user.cnpj)) { console.log(`CNPJ inválido: ${user.name}`) } }) ``` --- **Feito com 💙 para garantir que seus dados estejam sempre corretos.**