|
12 | 12 | // See the License for the specific language governing permissions and |
13 | 13 | // limitations under the License. |
14 | 14 |
|
15 | | -// RecaptchaInterop is only available on iOS. |
16 | | -#if os(iOS) |
17 | | - import Foundation |
| 15 | +import Foundation |
18 | 16 |
|
19 | | - #if SWIFT_PACKAGE |
20 | | - import FirebaseAuthInternal |
21 | | - #endif |
| 17 | +#if SWIFT_PACKAGE |
| 18 | + import FirebaseAuthInternal |
| 19 | +#endif |
22 | 20 |
|
| 21 | +#if os(iOS) |
23 | 22 | import RecaptchaInterop |
| 23 | +#endif // os(iOS) |
24 | 24 |
|
25 | | - @available(iOS 13, *) |
26 | | - class AuthRecaptchaConfig { |
27 | | - var siteKey: String? |
28 | | - let enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus] |
| 25 | +@available(iOS 13, *) |
| 26 | +class AuthRecaptchaConfig { |
| 27 | + var siteKey: String? |
| 28 | + let enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus] |
29 | 29 |
|
30 | | - init(siteKey: String? = nil, |
31 | | - enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]) { |
32 | | - self.siteKey = siteKey |
33 | | - self.enablementStatus = enablementStatus |
34 | | - } |
| 30 | + init(siteKey: String? = nil, |
| 31 | + enablementStatus: [AuthRecaptchaProvider: AuthRecaptchaEnablementStatus]) { |
| 32 | + self.siteKey = siteKey |
| 33 | + self.enablementStatus = enablementStatus |
35 | 34 | } |
| 35 | +} |
36 | 36 |
|
37 | | - @available(iOS 13, *) |
38 | | - enum AuthRecaptchaEnablementStatus: String, CaseIterable { |
39 | | - case enforce = "ENFORCE" |
40 | | - case audit = "AUDIT" |
41 | | - case off = "OFF" |
| 37 | +@available(iOS 13, *) |
| 38 | +enum AuthRecaptchaEnablementStatus: String, CaseIterable { |
| 39 | + case enforce = "ENFORCE" |
| 40 | + case audit = "AUDIT" |
| 41 | + case off = "OFF" |
42 | 42 |
|
43 | | - // Convenience property for mapping values |
44 | | - var stringValue: String { rawValue } |
45 | | - } |
| 43 | + // Convenience property for mapping values |
| 44 | + var stringValue: String { rawValue } |
| 45 | +} |
46 | 46 |
|
47 | | - @available(iOS 13, *) |
48 | | - enum AuthRecaptchaProvider: String, CaseIterable { |
49 | | - case password = "EMAIL_PASSWORD_PROVIDER" |
50 | | - case phone = "PHONE_PROVIDER" |
| 47 | +@available(iOS 13, *) |
| 48 | +enum AuthRecaptchaProvider: String, CaseIterable { |
| 49 | + case password = "EMAIL_PASSWORD_PROVIDER" |
| 50 | + case phone = "PHONE_PROVIDER" |
51 | 51 |
|
52 | | - // Convenience property for mapping values |
53 | | - var stringValue: String { rawValue } |
54 | | - } |
| 52 | + // Convenience property for mapping values |
| 53 | + var stringValue: String { rawValue } |
| 54 | +} |
55 | 55 |
|
56 | | - @available(iOS 13, *) |
57 | | - enum AuthRecaptchaAction: String { |
58 | | - case defaultAction |
59 | | - case signInWithPassword |
60 | | - case getOobCode |
61 | | - case signUpPassword |
62 | | - case sendVerificationCode |
63 | | - case mfaSmsSignIn |
64 | | - case mfaSmsEnrollment |
| 56 | +@available(iOS 13, *) |
| 57 | +enum AuthRecaptchaAction: String { |
| 58 | + case defaultAction |
| 59 | + case signInWithPassword |
| 60 | + case getOobCode |
| 61 | + case signUpPassword |
| 62 | + case sendVerificationCode |
| 63 | + case mfaSmsSignIn |
| 64 | + case mfaSmsEnrollment |
65 | 65 |
|
66 | | - // Convenience property for mapping values |
67 | | - var stringValue: String { rawValue } |
68 | | - } |
| 66 | + // Convenience property for mapping values |
| 67 | + var stringValue: String { rawValue } |
| 68 | +} |
69 | 69 |
|
70 | | - @available(iOS 13, *) |
71 | | - class AuthRecaptchaVerifier { |
72 | | - weak var auth: Auth? |
73 | | - private var agentConfig: AuthRecaptchaConfig? |
74 | | - private var tenantConfigs: [String: AuthRecaptchaConfig] = [:] |
| 70 | +@available(iOS 13, *) |
| 71 | +class AuthRecaptchaVerifier { |
| 72 | + weak var auth: Auth? |
| 73 | + private var agentConfig: AuthRecaptchaConfig? |
| 74 | + private var tenantConfigs: [String: AuthRecaptchaConfig] = [:] |
| 75 | + #if os(iOS) |
75 | 76 | private var recaptchaClient: RCARecaptchaClientProtocol? |
76 | | - private let recaptchaVersion = "RECAPTCHA_ENTERPRISE" |
| 77 | + #endif // os(iOS) |
| 78 | + private let recaptchaVersion = "RECAPTCHA_ENTERPRISE" |
| 79 | +} |
77 | 80 |
|
| 81 | +#if os(iOS) |
| 82 | + @available(iOS 13, *) |
| 83 | + extension AuthRecaptchaVerifier { |
78 | 84 | private func siteKey() -> String? { |
79 | 85 | if let tenantID = auth?.tenantID { |
80 | 86 | if let config = tenantConfigs[tenantID] { |
|
0 commit comments