Summary
Replace hand-rolled validators with established crates that handle edge cases better:
- date: use
jiff (already a workspace dep) for date parsing and validation instead of manual MM/DD/YYYY parsing
- phone: use
phonenumber crate for ITU-T E.164 validation with country code awareness
- IBAN: use
iban_validate crate for full ISO 13616 validation including country-specific length rules
- credit card:
luhn crate or keep current (it's simple enough)
Motivation
The current validators handle common cases but miss edge cases that specialized crates handle (e.g. country-specific IBAN lengths, international phone number formatting rules, date format ambiguity between locales).
Scope
- Replace validator implementations in
crates/nvisy-pattern/src/validators/
- Keep the
ValidatorResolver interface unchanged
- Update tests to cover the new edge cases
Summary
Replace hand-rolled validators with established crates that handle edge cases better:
jiff(already a workspace dep) for date parsing and validation instead of manual MM/DD/YYYY parsingphonenumbercrate for ITU-T E.164 validation with country code awarenessiban_validatecrate for full ISO 13616 validation including country-specific length rulesluhncrate or keep current (it's simple enough)Motivation
The current validators handle common cases but miss edge cases that specialized crates handle (e.g. country-specific IBAN lengths, international phone number formatting rules, date format ambiguity between locales).
Scope
crates/nvisy-pattern/src/validators/ValidatorResolverinterface unchanged