all_br_validations 1.0.2
all_br_validations: ^1.0.2 copied to clipboard
Reusable pure Dart core for Brazilian validations, BrZod schemas, contracts, formatters, geographic models, and validation results.
Changelog #
1.0.2 #
Breaking changes #
BrZodResultdeixou de possuir construtorconstpara copiar e proteger profundamenteerrorseerrorListcontra mutações externas.- Os catálogos públicos de meses e dias agora são coleções imutáveis; código que alterava essas listas ou mapas deve manter uma cópia própria.
AllValidations.validatePixKeyagora retornaResult<ValidationError, PixKeyType>; comparações com strings como'CPF'devem usarPixKeyType.cpf.BrZod.type<T>()eisType<T>()agora verificam estritamentevalue is T. Strings convertíveis, como'123'parainte'true'parabool, passam a ser rejeitadas.
Fixed #
- Adicionados vetores independentes para Título de Eleitor, incluindo dígitos verificadores, limites de UF e regras especiais dos códigos eleitorais.
- Removida a dependência de
assertemremoveCharacters(''), mantendo o mesmo resultado em desenvolvimento e produção. - Impedido que os geradores numérico e alfanumérico de CNPJ produzam valores inválidos por bases degeneradas ou por mutação do catálogo público.
- Unificadas as fachadas de IPv4 em um validador canônico que rejeita octetos com zeros à esquerda.
- Substituída a string mágica de
optional()por uma sentinela privada. - Corrigida a formatação de valores monetários negativos.
- Restringidos cartões, inclusive mascarados, ao intervalo de 13 a 19 dígitos antes da verificação de Luhn.
- Ajustada a chave aleatória PIX ao formato UUID do DICT sem restringi-la à versão 4.
- Chaves PIX telefônicas agora exigem um DDD brasileiro atribuído.
- UUIDs agora exigem versão suportada e variante RFC válida em
AllValidationseBrZod. - Chaves PIX de telefone, e-mail e EVP agora usam regras próprias do DICT: E.164 brasileiro sem máscara, e-mail minúsculo de até 77 caracteres e EVP hexadecimal agrupada sem restrição artificial de versão ou variante UUID.
BrZod.validateagora lançaArgumentErrorcom o caminho completo quando recebe um schema que não éBrZodnemMap.- Aplicados os limites de 64 octetos para a parte local, 255 para o domínio e 254 para o endereço completo de e-mail.
parseCurrencyagora remove apenas o prefixoR$e rejeita caracteres ou agrupamentos inválidos no restante do valor.formatCurrencyagora rejeita valores não finitos, valores absolutos a partir de1e21e quantidades de casas decimais fora de 0 a 20.- Políticas de senha agora aceitam somente valores que já sejam
String. StringExtension.truncateagora opera sobre pontos de código Unicode e rejeita limites negativos explicitamente.BrData.formateformatMonthYearpreenchem anos até quatro dígitos e rejeitam explicitamente anos fora de0000a9999.BrZodResultagora mantém mapa, mapas aninhados e lista de erros imutáveis e coerentes após a construção.- Catálogos públicos de meses e dias passaram a ser somente leitura.
- Centralizado o catálogo de DDDs no mapa canônico
DDD → estado; validação, telefones, consulta de estado e a lista legada derivam dessa única fonte. - Corrigida a identificação de CNPJ numérico e alfanumérico em chaves PIX.
- Corrigida a validação estrita de datas e horários em
BrData. - Corrigido o reconhecimento de IPv6 comprimido, inclusive
::e zonas. - Evitado erro de runtime em
Contract.isNotNullOrEmptycom tipos dinâmicos. - Corrigida a extração de DDD em números com código do país
+55. - Corrigido o bloqueio determinístico de bases repetidas no gerador de CPF.
- Corrigidos formatos sem número aceitos por
isNumericFloat. - Corrigida a identificação de extensões de vídeo e removida a legenda
.srt. - Corrigida a normalização de placas em minúsculas e com espaços externos.
- Ampliada a validação genérica de PAN por formato e algoritmo de Luhn.
- Impedido que tipos incompatíveis sejam aceitos como objetos aninhados vazios.
- Removidos logs de chaves e valores de mapas em
isMapExists. - Unificadas as políticas de senha média e forte entre
AllValidations,ContracteBrZod. - Completada a documentação DartDoc da API e habilitado seu lint obrigatório.
1.0.1 #
Correções #
- Telefones brasileiros agora validam o formato original antes da normalização.
AllValidations,ContracteBrZodutilizam regras canônicas compartilhadas para telefone.- Comparadores ordenáveis do
Contractnão lançam mais exceções para valores incompatíveis. - Comparações entre valores numéricos e datas foram centralizadas.
1.0.0 #
- Primeira versão pública.
- Validações, contratos, formatação e modelos brasileiros em Dart puro.