FLUTTER ECOSYSTEM

CriandoGames/all_validations_br

用於巴西驗證(CPF、CNPJ、PIX、CEP 等)的 Dart/Flutter 庫,以及實用工具(JWT、UUID、貨幣、日期)和經過認證的加密(ChaCha20-Poly1305)。無外部依賴。

all_validations_br 專案封面
Stars
13
Forks
5
最近推送(UTC)
2026年8月3日
專案狀態
未封存
Carlos Castro GitHub avatar
GITHUB User

Carlos Castro ↗

Developer back-end node and front-end with flutter

CarlosCastroRio de Janeiro官方網站 ↗
語言DartHTMLSwiftKotlinObjective-C

技術主題

此儲存庫發佈的套件

使用的依賴

依賴清單 8 項
  • all_br_forms>=1.0.1 <2.0.0
  • all_br_validations>=1.0.3 <2.0.0
  • all_crypto>=1.0.2 <2.0.0
  • all_logger>=1.0.2 <2.0.0
  • all_result>=1.0.2 <2.0.0
  • flutter{"sdk":"flutter"}
  • flutter_lints開發依賴^3.0.0
  • flutter_test開發依賴{"sdk":"flutter"}

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

展開 / 收合專案 README

all_validations_br

🇧🇷 Português | 🇺🇸 English

pub package CI license: MIT

O toolkit completo do ecossistema All para aplicações brasileiras em Flutter: validações, formulários, Result, logging e criptografia em uma única dependência, preservando também os imports históricos do pacote.

all_validations_br toolkit

Por que usar

all_validations_br é a porta de entrada para projetos Flutter que precisam de vários módulos do ecossistema. Um único import disponibiliza regras brasileiras, máscaras, contratos de resultado, logs estruturados e criptografia autenticada.

  • Uma dependência para os cinco módulos oficiais.
  • APIs especializadas mantidas em pacotes independentes e testáveis.
  • Compatibilidade com projetos que já utilizam os imports históricos.
  • Caminho de migração gradual para dependências menores.
  • Exemplo Flutter integrado com cenários reais.

O que está incluído

Área Pacote incluído Principais recursos
Validações all_br_validations ^1.0.3 CPF, CNPJ, documentos, BrZod, Contract, formatadores e modelos BR
Formulários all_br_forms ^1.0.1 24 máscaras e TextInputFormatters para Flutter
Resultados all_result ^1.0.2 Result<F, S>, composição síncrona e assíncrona
Logging all_logger ^1.0.2 níveis, filtros, cores, printers e outputs
Criptografia all_crypto ^1.0.2 ChaCha20-Poly1305, AES-GCM, SHA-256, HMAC e envelope v2
Compatibilidade incluída no agregador HelperUtil e barrels históricos

Essas dependências são instaladas automaticamente. Não é necessário declará-las separadamente ao usar o toolkit.

Instalação

dependencies:
  all_validations_br: ^5.0.2
import 'package:all_validations_br/all_validations_br.dart';

Uso rápido

Validar e formatar dados brasileiros
final cpfValido = AllValidations.isCpf('529.982.247-25');
final documento = BrFormatter.formatCpf('52998224725');

final validator = BrZod().required().cpf().build;
final mensagem = validator('529.982.247-25'); // null: valor válido
Máscara e validação no mesmo campo
TextFormField(
  inputFormatters: const [PhoneMask()],
  autovalidateMode: AutovalidateMode.onUserInteraction,
  validator: BrZod().required().phone().build,
)

A máscara controla a digitação; o BrZod valida o valor. Uma máscara, sozinha, não comprova dígitos verificadores nem regras de domínio.

Falhas explícitas com Result
Result<String, String> validateCustomer(String cpf) {
  final error = BrZod().required().cpf().build(cpf);
  return error == null
      ? Result.success<String, String>(cpf)
      : Result.failure<String, String>(error);
}

final message = validateCustomer('529.982.247-25').fold(
  (failure) => failure,
  (value) => 'CPF aceito: $value',
);
Logging controlado por ambiente
final log = BrLogger(tag: 'Checkout');
log.info('pedido validado');
log.warning('gateway com latência elevada');
log.dispose();

O filtro padrão bloqueia logs em release. A liberação em produção precisa ser explícita. O logger não remove dados sensíveis automaticamente.

Criptografia autenticada com chave externa
final key = AllCrypto.generateKey(); // armazene em keychain, KMS ou cofre
final envelope = AllCrypto.encryptText('segredo', key: key);
final token = envelope.toBase64(); // nunca contém a chave

final restored = CryptEnvelope.fromBase64(token);
final plaintext = AllCrypto.decryptText(restored, key: key);

Para dados novos, prefira AllCrypto e CryptEnvelope. O pacote não fornece cofre de chaves, KDF de senha, TLS ou autenticação de usuários.

Toolkit completo ou módulos separados?

Use all_validations_br quando a aplicação é Flutter e utiliza vários módulos, ou quando precisa manter compatibilidade enquanto migra. Em projetos novos que usam apenas uma área, instale diretamente o pacote especializado. Projetos Dart puros não devem instalar este agregador, pois all_br_forms adiciona Flutter ao grafo de dependências.

Se você precisa apenas de... Instale diretamente
validações e regras brasileiras all_br_validations
máscaras Flutter all_br_forms
falhas tipadas all_result
logging all_logger
criptografia e hashes all_crypto

Compatibilidade

O barrel principal e os imports históricos validation.dart, br_zod.dart, br_logger.dart, crypt.dart e regions_validations.dart continuam disponíveis. HelperUtil permanece no agregador para compatibilidade, exceto por validatePixKey, removido na 5.0.2 para eliminar a validação duplicada. Use AllValidations.validatePixKey, que retorna PixKeyType.

HelperUtil.maskPixKey permanece disponível e usa o validador tipado como fonte única. Entradas desconhecidas não vazias são mascaradas como ***.

Na migração da 4.5.2, deep imports em src/ precisam ser substituídos e o logger passa a ficar totalmente desligado em release por padrão. Consulte o guia de migração.

Exemplo integrado

O aplicativo de exemplo demonstra validações, máscaras, utilitários e criptografia. Execute com:

cd example
flutter pub get
flutter run

Documentação

Licença MIT.