form_shield 0.8.2
form_shield: ^0.8.2 copied to clipboard
A declarative, rule-based form validation library for Flutter apps. Supports async validation, custom validation logic, and more.
Changelog #
0.8.2 - 2025-11-18 #
Fixed #
- Corrected phone number regex pattern in
PhoneRuleto properly validate various formats. - Resolved issues in
PhoneRulewhere null and empty string inputs were incorrectly validated as successful.
Added #
- Added tests for null and empty string cases in
PhoneRuleto ensure accurate validation behavior.
0.8.0 - 2025-11-12 #
Added #
- Top-level
asyncValidator<T>(rules, {debounceDuration})helper for async validation. - Top-level
compositeValidator<T>(syncValidators, asyncValidators)helper for combined sync/async validation.
Changed #
validator<T>(rules)now returns a closureString? Function(T?)for implicit tear-off compatibility with FlutterFormFieldValidator.CompositeValidator<T>consumes sync validators as functions (String? Function(T?)), aligning with thevalidatorhelper.- Documentation and examples updated to use
validator,asyncValidator, andcompositeValidatorhelpers.
Breaking Changes #
- Export
Validator,AsyncValidator, andCompositeValidatortypes, but their constructors are non-public; use helpers to instantiate. compositeValidatoruses positional parameters:compositeValidator(syncValidators, asyncValidators).
0.7.0 - 2025-11-10 #
Added #
- Top-level
validator([])helper for concise validator creation.
Changed #
- Documentation examples updated to prefer
validator([])for brevity. - Migrate date-related APIs to operate on
Stringinputs:DateRulenow validates date strings (parsing withDateTime.tryParse).DateRangeRulenow compares start/end date strings (parsing internally).- Updated tests and README examples accordingly.
Deprecated #
- Direct constructor
Validator([...])in favor ofvalidator([]).
Breaking Changes #
- Removed
Validator.forString,Validator.forNumber,Validator.forBoolean, andValidator.forDate. Use the top-levelvalidator([])helper instead. - Removed
AsyncValidator.forString,AsyncValidator.forNumber,AsyncValidator.forBoolean, andAsyncValidator.forDate. Use theAsyncValidator<T>([rules])constructor instead.
0.6.2 - 2025-11-10 #
0.6.0 - 2025-04-20 #
0.5.0 - 2025-04-19 #
0.4.1 - 2025-04-14 #
Fixed #
- Fix regex pattern for email validation to correctly handle multiple domains
0.4.0 - 2025-04-08 #
Added #
- Introduce
AsyncValidatorclass for handling asynchronous validation - New
CompositeValidatorclass for combining multiple validators (to offer an unified API for both sync and async validation) - Update readme with new async validation examples
0.3.0 - 2025-04-05 #
Added #
- Asynchronous validation support:
- New
AsyncValidationRulebase class for creating async-specific validation rules - Async validation state tracking with
AsyncValidationStateclass - Debouncing support for async validation to prevent excessive API calls
- Manual async validation triggering with
validateAsync()method - Example implementation of username availability checking
- New
- New properties for validation state management:
isValidating- Indicates if async validation is in progressisValid- Indicates if the last async validation was successfulerrorMessage- Provides the current error message from either sync or async validation
0.2.0 - 2025-04-04 #
Added #
- New validation rules:
DateRule- Validates dates with min and max constraintsDateRangeRule- Validates date ranges between two fieldsURLRule- Validates URLs with optional protocol checkingIPAddressRule- Validates IPv4 and IPv6 addressesCreditCardRule- Validates credit card numbers with Luhn algorithm
- Updated documentation
Changed #
- Improved error message formatting
- Enhanced type inference for validation rules
- Better handling of null values
- Updated documentation with more examples
Fixed #
- Edge cases in phone number validation
- Memory leak in form validation
- Type conversion issues in numeric validators
0.1.0 - 2025-04-03 #
Added #
- Initial release of Form Shield
- Core validation framework with
ValidationRuleabstract class andValidationResultclass Validatorclass with support for chaining multiple validation rules- Type-specific validator factory methods:
forString(),forNumber(),forBoolean(), andforDate() - Built-in validation rules:
RequiredRule- Validates that a value is not null or emptyEmailRule- Validates email addresses with customizable regex patternPasswordRule- Validates passwords with configurable complexity requirementsPasswordMatchRule- Validates that passwords matchLengthRule- Validates string length with min and max constraintsMinLengthRule- Validates minimum string lengthMaxLengthRule- Validates maximum string lengthValueRule- Validates numeric values with min and max constraintsMinValueRule- Validates minimum numeric valueMaxValueRule- Validates maximum numeric valuePhoneRule- Validates phone numbersCountryPhoneRule- Validates phone numbers for specific countriesCustomRule- Allows custom validation logic with fixed error messageDynamicCustomRule- Allows custom validation logic with dynamic error messages
- Seamless integration with Flutter's form validation system
- Example login form implementation