@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
Markdown
# 📄 @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` já 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.**