BrZod class

Validador fluente para Flutter/Dart com foco em validações brasileiras.

Uso básico

TextFormField(
  validator: BrZod().required().email().build,
)

Locale customizado

BrZod(locale: MyLocale()).required().cpf().build

// ou globalmente:
BrZod.defaultLocale = MyLocale();

Validação de Map (APIs)

final result = BrZod.validate(
  data: {'email': 'foo', 'cpf': '111'},
  params: {
    'email': BrZod().required().email(),
    'cpf':   BrZod().required().cpf(),
  },
);
if (result.isNotValid) print(result.errors);

Constructors

BrZod({ILocaleBrZod? locale})

Properties

hashCode int
The hash code for this object.
no setterinherited
locale ILocaleBrZod?
Locale desta instância. Se null, usa defaultLocale.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(dynamic value) String?
Executa todos os validadores em ordem e retorna a primeira mensagem de erro encontrada, ou null se o valor for válido.
cep([String? message]) BrZod
CEP brasileiro — formato 00000-000 ou 00000000.
cnh([String? message]) BrZod
CNH — 11 dígitos com dois dígitos verificadores via módulo 11.
cnpj([String? message]) BrZod
CNPJ numérico válido (com ou sem máscara).
cnpjAlfa([String? message]) BrZod
CNPJ alfanumérico — IN RFB 2229/2024 (vigente a partir de julho/2026).
cns([String? message]) BrZod
CNS (Cartão Nacional de Saúde) — 15 dígitos, algoritmo DATASUS.
cpf([String? message]) BrZod
CPF válido (com ou sem máscara). Verifica dígitos verificadores.
cpfOuCnpj([String? message]) BrZod
CPF ou CNPJ numérico. Útil em campos de documento genérico.
custom(bool validate(dynamic value), {String? message}) BrZod
Validação customizada com função arbitrária.
email([String? message]) BrZod
Formato de e-mail válido.
equals(dynamic other, [String? message]) BrZod
Valor deve ser igual a other.
ipv4([String? message]) BrZod
Endereço IPv4 válido (0.0.0.0 a 255.255.255.255).
ipv6([String? message]) BrZod
Endereço IPv6 válido — formato completo ou comprimido.
isAfter(DateTime min, [String? message]) BrZod
Data deve ser posterior a min.
isBefore(DateTime max, [String? message]) BrZod
Data deve ser anterior a max.
isDate([String? message]) BrZod
Valor deve ser uma data válida.
max(int n, [String? message]) BrZod
Máximo de n caracteres.
min(int n, [String? message]) BrZod
Mínimo de n caracteres.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
optional() BrZod
Campo opcional — se vazio/nulo, interrompe a cadeia sem erro.
password({PasswordPolicy policy = sec.PasswordPolicy.strong, String? message}) BrZod
Senha válida conforme política configurável.
phone([String? message]) BrZod
Telefone brasileiro válido (com ou sem DDD, celular ou fixo).
pisPasep([String? message]) BrZod
PIS/PASEP — 11 dígitos, módulo 11.
placa([String? message]) BrZod
Placa veicular — formato antigo (ABC-1234) e Mercosul (ABC1D23).
regex(String pattern, {String? message}) BrZod
Valor deve corresponder ao pattern regex fornecido.
renavam([String? message]) BrZod
RENAVAM — 9 ou 11 dígitos, módulo 11.
required([String? message]) BrZod
Campo obrigatório — rejeita null e string vazia.
rg([String? message]) BrZod
RG — formato mais comum (aceita com ou sem pontuação e dígito X).
tituloEleitor([String? message]) BrZod
Título de Eleitor — 12 dígitos, dois DVs via módulo 11.
toString() String
A string representation of this object.
inherited
type<T>([String? message]) BrZod
Valor deve ser do tipo T.
url([String? message]) BrZod
URL válida com esquema http, https ou ftp.
uuid({String version = 'all', String? message}) BrZod
UUID válido — qualquer versão por padrão. Versões: '3', '4', '5', 'all'.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

defaultLocale ILocaleBrZod
Locale padrão aplicado quando nenhum locale é passado na instância.
getter/setter pair

Static Methods

validate({required Map<String, dynamic> data, required Map<String, dynamic> params}) BrZodResult
Valida um Map de dados contra um Map de esquemas BrZod.