Brazilian document validators and formatters for global-docs
npm install global-docs-brglobal-docs ecosystem.
ts
// Example (IE - GoiΓ‘s)
mask("1234") β "12.34"
mask("12345678") β "12.345.678"
mask("123456789") β "12.345.678-9"
`
---
$3
Every document validator:
- has deterministic unit tests
- has a makeValid* helper to generate valid values
- never depends on real or sensitive data (LGPD-compliance on development)
> No real personal or company data is used or required.
---
π Quick Start (Standalone)
First, install the package:
`bash
npm install global-docs-br
`
You can use Brazilian document validators directly, without any registration step:
`ts
import { CPF, CNPJ, IE } from "global-docs-br";
// CPF
CPF.validate("11144477735"); // true
CPF.mask("11144477735"); // "111.444.777-35"
// CNPJ
CNPJ.validate("11444777000161"); // true
CNPJ.mask("11444777000161"); // "11.444.777/0001-61"
// State Registration (IE) β requires UF context
IE.validate("123456789", { uf: "GO" }); // false
IE.mask("123456789", { uf: "GO" }); // "12.345.678-9"
`
> No registration step is required when using documents directly.
---
$3
If you are using the core global-docs engine with country-based resolution, you must explicitly register Brazilian documents:
#### 1οΈβ£ Register Brazilian documents
`ts
import { registerBrazilDocuments } from "global-docs-br";
registerBrazilDocuments();
`
This registers all Brazilian document validators under country code BR.
---
#### 2οΈβ£ Validate and mask using the engine API
`ts
import { validate, mask } from "global-docs";
// Validation
validate("BR", "CPF", "11144477735"); // true
validate("BR", "CNPJ", "11444777000161"); // true
// Masking
mask("BR", "CPF", "11144477735"); // "111.444.777-35"
mask("BR", "CNPJ", "11444777000161"); // "11.444.777/0001-61"
`
You may also use the path-based helpers:
`ts
import { validatePath, maskPath } from "global-docs";
validatePath("BR.CPF", "11144477735"); // true
maskPath("BR.CPF", "11144477735"); // "111.444.777-35"
`
> registerBrazilDocuments is only required when using the dynamic country based registry mechanism provided by global-docs.
> If you are importing documents directly from global-docs-br, registration is not needed.
---
π§ͺ Testing
Tests are organized by responsibility:
`
documents/
ββ cau/
β ββ __tests__/
β β ββ cau.spec.ts
β β ββ validate.spec.ts
β β ββ mask.spec.ts
β ββ cau.ts
β ββ index.ts
β ββ mask.ts
β ββ validate.ts
ββ cnh/
β ββ __tests__/
β β ββ cnh.spec.ts
β β ββ validate.spec.ts
β β ββ mask.spec.ts
β ββ cnh.ts
β ββ index.ts
β ββ mask.ts
β ββ validate.ts
ββ ie/
β ββ index.ts
β ββ registry.ts
β ββ types.ts
β ββ states/
β β ββ ac.ts
β β ββ al.ts
β β ββ am.ts
β β ββ ap0.ts
β β ββ ...
β ββ __tests__/
β ββ registry.spec.ts
β ββ mask.spec.ts # generic IE mask routing
β ββ validate.spec.ts # generic IE validate routing
β ββ helpers # IE faker
β ββ ac.ts
β ββ al.ts
β ββ am.ts
β ββ ap.ts
β ββ ...
β ββ states/
β ββ ac.spec.ts
β ββ al.spec.ts
β ββ am.spec.ts
β ββ ap.spec.ts
β ββ ...
``