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 message usando key.
sha256(List<int> data) Uint8List
Calcula o digest SHA-256 de data e 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 T em 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.