all_validations_br library
Biblioteca principal do pacote — exporta todos os módulos em uma única importação.
Inclui validações brasileiras, máscaras de campo, formatadores, utilitários,
Contract/Result para validação de domínio e criptografia autenticada.
Importação
import 'package:all_validations_br/all_validations_br.dart';
O que está incluído
| Módulo | Classes principais |
|---|---|
| Validações | AllValidations — CPF, CNPJ, CNH, RENAVAM, PIS, Título, CEP, Placa, PIX, EAN-13 |
| Formatadores | BrFormatter, BrData — CPF, CNPJ, moeda, datas (sem intl) |
| Máscaras | BrInputMask + 23 máscaras especializadas para TextField |
| CNPJ 2026 | CnpjAlfanumerico — IN RFB 2229/2024: validação, formatação, geração |
| Contrato | Contract, ValidationNotifiable — validação acumulativa de entidades |
| Result | Result<F,S>, ContractValidations — programação orientada a trilhos |
| Utilitários | HelperUtil — UUID, JWT, PIX, datas, strings, maioridade |
| Criptografia | CryptUtil — ChaCha20-Poly1305, AES-GCM, AES-CBC, AES-CTR, SHA-256, HMAC-SHA256 |
| Modelos | AllValidationsGetMonth, AllValidationsGetStates, AllValidationsGetRegions |
Módulos com importação separada
Estes módulos têm barrel próprio e não estão incluídos aqui:
import 'package:all_validations_br/br_zod.dart'; // validador fluente
import 'package:all_validations_br/br_logger.dart'; // logging puro
import 'package:all_validations_br/crypt.dart'; // apenas criptografia
Exemplos rápidos
// Validação direta
AllValidations.isCpf('529.982.247-25'); // true
// Máscara em TextField
TextField(inputFormatters: [BrInputMask.cpf()])
// Contract em entidade
Contract().isEmail(email, 'email', 'E-mail inválido').hasMinLen(nome, 2, 'nome', 'Mínimo 2')
// Result assíncrono
final r = await Result.tryAsync(() => dio.get('/api'), onError: (e, _) => '$e');
// Criptografia — ChaCha20-Poly1305 (padrão)
final enc = CryptUtil.encryptToBase64('segredo');
final dec = CryptUtil.decryptFromBase64(enc);
// Criptografia — AES-256-GCM
final payload = CryptUtil.encryptAesGcm(utf8.encode('segredo'));
final plain = CryptUtil.decryptAny(payload); // dispatch automático
Classes
- AesCbc
- Implementação de AES-CBC (NIST SP 800-38A) com padding PKCS#7.
- AesCtr
- Implementação de AES-CTR (NIST SP 800-38A, modo de contador).
- AesGcm
- Implementação do cipher autenticado AES-GCM (AEAD) — NIST SP 800-38D.
- AllValidations
- AllValidationsGetMonth
- AllValidationsGetRegions
- AllValidationsGetStates
- AllValidationsGetWeek
- AlturaMask
- Formatter de campo para altura em metros com 2 casas decimais.
- BrData
- Utilitários de data e hora para o contexto brasileiro.
- BrFormatter
- Utilitários de formatação para dados tipicamente brasileiros.
- BrInputMask
- Classe base abstrata para todos os formatters de campo (máscaras) da biblioteca.
- CardExpiryMask
- Formatter de campo para data de validade de cartão.
- CardMask
- Formatter de campo para número de cartão de crédito/débito.
- CentavosMask
-
Formatter de campo para valores monetários em centavos, sem prefixo
R$. - CepMask
- Formatter de campo para CEP brasileiro.
- CertNascimentoMask
- Formatter de campo para Certidão de Nascimento brasileira.
- CestMask
- Formatter de campo para o código CEST (Código Especificador da Substituição Tributária).
- CnpjAlfaMask
- Formatter de campo para CNPJ alfanumérico (formato 2026).
- CnpjAlfanumerico
- Suporte ao CNPJ alfanumérico — Receita Federal, IN RFB 2229/2024.
- CnpjMask
- Formatter de campo para CNPJ numérico.
- CnsMask
- Formatter de campo para Cartão Nacional de Saúde (CNS).
- Contract
- ContractValidations
- CpfMask
- Formatter de campo para CPF.
- CpfOuCnpjMask
- Formatter de campo que alterna automaticamente entre CPF e CNPJ.
- CryptUtil
- Utilitário de criptografia com suporte a múltiplos algoritmos.
- CurrencyMask
- Formatter de campo para moeda brasileira (Real).
- DateMask
- Formatter de campo para data brasileira.
- EncryptedPayload
- Envelope imutável que carrega todos os dados necessários para decifrar uma mensagem — independente do algoritmo usado.
- ExpiryMask
- Formatter de campo para data de expiração — suporta dois formatos de forma dinâmica com base na quantidade de dígitos digitados:
-
Failure<
F, S> - Representa uma falha. Convencionalmente carrega o erro.
- HelperUtil
- IofMask
- Formatter de campo para alíquota de IOF (Imposto sobre Operações Financeiras) com 6 casas decimais.
- KmMask
- Formatter de campo para quilometragem.
- NcmMask
- Formatter de campo para código NCM (Nomenclatura Comum do Mercosul).
- NupMask
- Formatter de campo para NUP (Número Único de Protocolo do governo federal).
- PesoMask
- Formatter de campo para peso com 1 casa decimal.
- PhoneMask
- Formatter de campo para telefone brasileiro (fixo e celular).
- PlacaMask
- Formatter de campo para placa de veículo brasileira.
-
Result<
F, S> - Representa o resultado de uma operação que pode falhar.
-
Success<
F, S> - Representa um sucesso. Carrega o valor resultante.
- TemperaturaMask
- Formatter de campo para temperatura com 1 casa decimal.
- TimeMask
-
Formatter de campo para hora no formato
HH:MM. - ValidationError
- Representa um erro de validação pontual, com o campo e a mensagem.
- ValidationNotifiable
- ValidationNotification
Enums
- BrazilianState
- CryptAlgorithm
- Identificadores de algoritmos suportados pelo módulo crypt.
Extensions
- BoolExtension on bool?
- Extensão em bool? com getters semânticos para leitura mais fluente.
-
FutureResult
on Future<
Result< F, S> > -
Extension em
Future<Result<F, S>>para encadeamento assíncrono. -
ListExtension
on List<
T> ? - Extensão em List<T>? com getters para verificação de nulidade e vazio.
-
ResultAsync
on Result<
F, S> - Extensões async adicionadas diretamente no Result para uso com Future.
- StringExtension on String?
- Extensão em String? com getters para verificação de nulidade, vazio e truncagem.
Functions
-
hmacEqual(
List< int> a, List<int> b) → bool - Compara dois HMACs em tempo constante para evitar ataques de timing.
-
hmacSha256(
List< int> key, List<int> message) → Uint8List -
Calcula HMAC-SHA256 para
messageusandokey. -
sha256(
List< int> data) → Uint8List -
Calcula o digest SHA-256 de
datae retorna 32 bytes.
Typedefs
-
Lazy<
T> = T Function() -
ValidationResult<
T> = Result< List< ValidationNotification> , T> -
Alias de domínio: resultado de uma validação que carrega
Tem caso de sucesso ou uma lista de ValidationNotification em caso de falha.
Exceptions / Errors
- CryptException
- Exceção lançada quando a autenticação falha durante a decriptação.