diff --git a/Cargo.lock b/Cargo.lock index 7c07431..e6f8a3a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,6 +37,15 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -101,15 +110,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitvec" version = "1.0.1" @@ -173,6 +173,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.11.1" @@ -215,6 +221,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "cobs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror", +] + [[package]] name = "constant-string" version = "0.0.2" @@ -240,6 +255,12 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "darling" version = "0.20.11" @@ -307,6 +328,18 @@ dependencies = [ "serde", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "equivalent" version = "1.0.2" @@ -388,7 +421,7 @@ dependencies = [ "axum", "fortifier", "serde", - "thiserror 2.0.17", + "thiserror", "tokio", "utoipa", "utoipa-axum", @@ -495,6 +528,15 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -510,6 +552,20 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version", + "serde", + "spin", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -776,6 +832,15 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.29" @@ -871,22 +936,22 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "phonenumber" -version = "0.3.7+8.13.52" +version = "0.3.9+9.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2247167dc3741816fdd4d3690e97f56a892a264b44f4c702078b72d1f8b6bd40" +checksum = "9114f9c1683dd09c5f4fa024c89fdad783eaae21d3d52dd23ddaaffa29ffb168" dependencies = [ - "bincode", "either", "fnv", "nom", "once_cell", + "postcard", "quick-xml", "regex", "regex-cache", "serde", "serde_derive", "strum", - "thiserror 1.0.69", + "thiserror", ] [[package]] @@ -901,6 +966,19 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "postcard" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "heapless", + "serde", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -1161,6 +1239,15 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustversion" version = "1.0.22" @@ -1173,12 +1260,24 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "seahash" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + [[package]] name = "serde" version = "1.0.228" @@ -1282,6 +1381,15 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -1376,33 +1484,13 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - [[package]] name = "thiserror" version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.17", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", + "thiserror-impl", ] [[package]] diff --git a/deny.toml b/deny.toml index 7716577..88cc878 100644 --- a/deny.toml +++ b/deny.toml @@ -3,8 +3,8 @@ all-features = true [advisories] ignore = [ + { id = "RUSTSEC-2023-0089", reason = "No maintained version available for `atomic-polyfill`." }, { id = "RUSTSEC-2024-0436", reason = "No maintained version available for `paste`." }, - { id = "RUSTSEC-2025-0141", reason = "No maintained version available for `bincode`." }, ] [bans] diff --git a/packages/fortifier-macros-tests/tests/validations/phone-number/options_pass.rs b/packages/fortifier-macros-tests/tests/validations/phone-number/options_pass.rs index 17c5ec6..d3d4c76 100644 --- a/packages/fortifier-macros-tests/tests/validations/phone-number/options_pass.rs +++ b/packages/fortifier-macros-tests/tests/validations/phone-number/options_pass.rs @@ -27,7 +27,7 @@ fn main() { ParseError::TooLong )), PhoneNumberDataValidationError::DefaultCountry(PhoneNumberError::from( - ParseError::TooShortNsn + ParseError::NoNumber )), PhoneNumberDataValidationError::AllowedCountries( PhoneNumberError::DisallowedCountryCode { diff --git a/packages/fortifier-macros-tests/tests/validations/phone-number/types_pass.rs b/packages/fortifier-macros-tests/tests/validations/phone-number/types_pass.rs index b78609c..769d9e6 100644 --- a/packages/fortifier-macros-tests/tests/validations/phone-number/types_pass.rs +++ b/packages/fortifier-macros-tests/tests/validations/phone-number/types_pass.rs @@ -25,10 +25,8 @@ fn main() { assert_eq!( data.validate_sync(), Err(ValidationErrors::from_iter([ - PhoneNumberDataValidationError::Str(PhoneNumberError::from( - ParseError::InvalidCountryCode - )), - PhoneNumberDataValidationError::String(PhoneNumberError::from(ParseError::TooShortNsn)), + PhoneNumberDataValidationError::Str(PhoneNumberError::from(ParseError::NoNumber)), + PhoneNumberDataValidationError::String(PhoneNumberError::from(ParseError::NoNumber)), PhoneNumberDataValidationError::PhoneNumber(PhoneNumberError::DisallowedCountryCode { code: PhoneNumberErrorCode, allowed: vec![PhoneNumberCountry::NL], diff --git a/packages/fortifier/src/validations/phone_number.rs b/packages/fortifier/src/validations/phone_number.rs index a81ddcd..62835d8 100644 --- a/packages/fortifier/src/validations/phone_number.rs +++ b/packages/fortifier/src/validations/phone_number.rs @@ -365,58 +365,58 @@ mod tests { fn invalid_error() { assert_eq!( (*"+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( "+44".validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( "+44".to_owned().validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( Cow::::Borrowed("+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( Cow::::Owned("+44".to_owned()).validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( Some("+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( (&"+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); #[expect(unused_allocation)] { assert_eq!( Box::new("+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); } assert_eq!( Arc::new("+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( Rc::new("+44").validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); let cell = RefCell::new("+44"); assert_eq!( cell.borrow().validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); assert_eq!( cell.borrow_mut().validate_phone_number(None, None), - Err(PhoneNumberError::from(ParseError::TooShortNsn)) + Err(PhoneNumberError::from(ParseError::NoNumber)) ); }