// // Copyright Amazon.com Inc. or its affiliates. // All Rights Reserved. // // SPDX-License-Identifier: Apache-2.0 // import Foundation // Docs: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#API_SignUp_RequestParameters struct SignUpPasswordValidator { static let maxPasswordLength = 256 static func validate(password: String) -> SignUpError? { let error: SignUpError? if password.isEmpty { error = .invalidPassword(message: "password is empty") } else if password.count > maxPasswordLength { error = .invalidPassword(message: "password is over maximum length") } else if password.rangeOfCharacter(from: .whitespacesAndNewlines) != nil { error = .invalidPassword(message: "password includes disallowed characters") } else { error = nil } return error } }