@react-native-firebase/auth 25.1.0 → 26.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/RNFBAuth.podspec +16 -7
  3. package/android/build.gradle +23 -0
  4. package/android/src/main/java/io/invertase/firebase/auth/{ReactNativeFirebaseAuthModule.java → NativeRNFBTurboAuth.java} +131 -103
  5. package/android/src/main/java/io/invertase/firebase/auth/ReactNativeFirebaseAuthPackage.java +1 -1
  6. package/android/src/main/java/io/invertase/firebase/auth/ReactNativeFirebaseAuthSyncException.java +35 -0
  7. package/android/src/main/java/io/invertase/firebase/auth/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAuthSpec.java +308 -0
  8. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/CMakeLists.txt +36 -0
  9. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/RNFBAuthTurboModules-generated.cpp +392 -0
  10. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/RNFBAuthTurboModules.h +31 -0
  11. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/react/renderer/components/RNFBAuthTurboModules/RNFBAuthTurboModulesJSI-generated.cpp +539 -0
  12. package/android/src/main/java/io/invertase/firebase/auth/generated/jni/react/renderer/components/RNFBAuthTurboModules/RNFBAuthTurboModulesJSI.h +611 -0
  13. package/app.plugin.js +1 -1
  14. package/dist/module/ConfirmationResult.js.map +1 -1
  15. package/dist/module/MultiFactorResolver.js.map +1 -1
  16. package/dist/module/PhoneAuthListener.js +3 -4
  17. package/dist/module/PhoneAuthListener.js.map +1 -1
  18. package/dist/module/TotpMultiFactorGenerator.js +1 -1
  19. package/dist/module/TotpMultiFactorGenerator.js.map +1 -1
  20. package/dist/module/TotpSecret.js +15 -9
  21. package/dist/module/TotpSecret.js.map +1 -1
  22. package/dist/module/User.js +1 -1
  23. package/dist/module/User.js.map +1 -1
  24. package/dist/module/credentials/OAuthCredential.js +22 -1
  25. package/dist/module/credentials/OAuthCredential.js.map +1 -1
  26. package/dist/module/getMultiFactorResolver.js +2 -2
  27. package/dist/module/getMultiFactorResolver.js.map +1 -1
  28. package/dist/module/index.js +1226 -6
  29. package/dist/module/index.js.map +1 -1
  30. package/dist/module/internal/syncNativeError.js +75 -0
  31. package/dist/module/internal/syncNativeError.js.map +1 -0
  32. package/dist/module/multiFactor.js +5 -3
  33. package/dist/module/multiFactor.js.map +1 -1
  34. package/dist/module/providers/AppleAuthProvider.js +17 -4
  35. package/dist/module/providers/AppleAuthProvider.js.map +1 -1
  36. package/dist/module/providers/OAuthProvider.js +4 -2
  37. package/dist/module/providers/OAuthProvider.js.map +1 -1
  38. package/dist/module/providers/PhoneAuthProvider.js +4 -4
  39. package/dist/module/providers/PhoneAuthProvider.js.map +1 -1
  40. package/dist/module/types/auth.js +8 -0
  41. package/dist/module/types/auth.js.map +1 -1
  42. package/dist/module/version.js +1 -1
  43. package/dist/module/web/RNFBAuthModule.js +26 -18
  44. package/dist/module/web/RNFBAuthModule.js.map +1 -1
  45. package/dist/typescript/lib/ConfirmationResult.d.ts +2 -2
  46. package/dist/typescript/lib/ConfirmationResult.d.ts.map +1 -1
  47. package/dist/typescript/lib/MultiFactorResolver.d.ts +6 -6
  48. package/dist/typescript/lib/MultiFactorResolver.d.ts.map +1 -1
  49. package/dist/typescript/lib/PhoneAuthListener.d.ts +1 -4
  50. package/dist/typescript/lib/PhoneAuthListener.d.ts.map +1 -1
  51. package/dist/typescript/lib/TotpSecret.d.ts +2 -4
  52. package/dist/typescript/lib/TotpSecret.d.ts.map +1 -1
  53. package/dist/typescript/lib/User.d.ts +13 -13
  54. package/dist/typescript/lib/User.d.ts.map +1 -1
  55. package/dist/typescript/lib/credentials/OAuthCredential.d.ts +6 -0
  56. package/dist/typescript/lib/credentials/OAuthCredential.d.ts.map +1 -1
  57. package/dist/typescript/lib/getMultiFactorResolver.d.ts +5 -5
  58. package/dist/typescript/lib/getMultiFactorResolver.d.ts.map +1 -1
  59. package/dist/typescript/lib/index.d.ts +377 -4
  60. package/dist/typescript/lib/index.d.ts.map +1 -1
  61. package/dist/typescript/lib/internal/syncNativeError.d.ts +6 -0
  62. package/dist/typescript/lib/internal/syncNativeError.d.ts.map +1 -0
  63. package/dist/typescript/lib/multiFactor.d.ts +9 -9
  64. package/dist/typescript/lib/multiFactor.d.ts.map +1 -1
  65. package/dist/typescript/lib/providers/AppleAuthProvider.d.ts +10 -3
  66. package/dist/typescript/lib/providers/AppleAuthProvider.d.ts.map +1 -1
  67. package/dist/typescript/lib/providers/OAuthProvider.d.ts.map +1 -1
  68. package/dist/typescript/lib/providers/PhoneAuthProvider.d.ts.map +1 -1
  69. package/dist/typescript/lib/types/auth.d.ts +39 -0
  70. package/dist/typescript/lib/types/auth.d.ts.map +1 -1
  71. package/dist/typescript/lib/types/internal.d.ts +45 -48
  72. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  73. package/dist/typescript/lib/version.d.ts +1 -1
  74. package/dist/typescript/lib/web/RNFBAuthModule.d.ts +7 -5
  75. package/dist/typescript/lib/web/RNFBAuthModule.d.ts.map +1 -1
  76. package/ios/RNFBAuth/RNFBAuthHelper.h +338 -0
  77. package/ios/RNFBAuth/{RNFBAuthModule.m → RNFBAuthHelper.m} +605 -323
  78. package/ios/RNFBAuth/RNFBAuthModule.h +9 -66
  79. package/ios/RNFBAuth/RNFBAuthModule.mm +592 -0
  80. package/ios/RNFBAuth.xcodeproj/project.pbxproj +8 -8
  81. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  82. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  83. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  84. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  85. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  86. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  87. package/ios/generated/RNFBAuthTurboModules/RNFBAuthTurboModules-generated.mm +459 -0
  88. package/ios/generated/RNFBAuthTurboModules/RNFBAuthTurboModules.h +342 -0
  89. package/ios/generated/RNFBAuthTurboModulesJSI-generated.cpp +539 -0
  90. package/ios/generated/RNFBAuthTurboModulesJSI.h +611 -0
  91. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  92. package/lib/ConfirmationResult.ts +3 -6
  93. package/lib/MultiFactorResolver.ts +8 -8
  94. package/lib/PhoneAuthListener.ts +6 -10
  95. package/lib/TotpMultiFactorGenerator.ts +1 -1
  96. package/lib/TotpSecret.ts +22 -9
  97. package/lib/User.ts +27 -38
  98. package/lib/credentials/OAuthCredential.ts +44 -0
  99. package/lib/getMultiFactorResolver.ts +9 -11
  100. package/lib/index.ts +1848 -6
  101. package/lib/internal/syncNativeError.ts +89 -0
  102. package/lib/multiFactor.ts +25 -16
  103. package/lib/providers/AppleAuthProvider.ts +21 -5
  104. package/lib/providers/OAuthProvider.ts +2 -0
  105. package/lib/providers/PhoneAuthProvider.ts +9 -22
  106. package/lib/types/auth.ts +42 -0
  107. package/lib/types/internal.ts +56 -63
  108. package/lib/version.ts +1 -1
  109. package/lib/web/RNFBAuthModule.ts +47 -33
  110. package/package.json +30 -5
  111. package/plugin/build/app.plugin.d.ts +2 -0
  112. package/plugin/build/app.plugin.js +6 -0
  113. package/plugin/src/app.plugin.ts +3 -0
  114. package/plugin/tsconfig.tsbuildinfo +1 -1
  115. package/react-native.config.js +9 -0
  116. package/specs/NativeRNFBTurboAuth.ts +145 -0
  117. package/typedoc.json +0 -1
  118. package/dist/module/modular.js +0 -793
  119. package/dist/module/modular.js.map +0 -1
  120. package/dist/module/namespaced.js +0 -522
  121. package/dist/module/namespaced.js.map +0 -1
  122. package/dist/module/types/namespaced.js +0 -62
  123. package/dist/module/types/namespaced.js.map +0 -1
  124. package/dist/typescript/lib/modular.d.ts +0 -370
  125. package/dist/typescript/lib/modular.d.ts.map +0 -1
  126. package/dist/typescript/lib/namespaced.d.ts +0 -12
  127. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  128. package/dist/typescript/lib/types/namespaced.d.ts +0 -2185
  129. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  130. package/lib/modular.ts +0 -1166
  131. package/lib/namespaced.ts +0 -849
  132. package/lib/types/namespaced.ts +0 -2350
@@ -15,72 +15,15 @@
15
15
  *
16
16
  */
17
17
 
18
- #import <Firebase/Firebase.h>
18
+ // This header is intentionally Firebase-free. See RNFBAuthHelper.h for why:
19
+ // FirebaseAuth's core `FIRAuth`/`FIRUser` classes are implemented in Swift, so
20
+ // `@import FirebaseAuth` (the only way to get their real interface) can't be
21
+ // used from an Objective-C++ (.mm) TurboModule when C++ modules are disabled
22
+ // (required by React Native's JSI headers). All Firebase Auth calls are routed
23
+ // through RNFBAuthHelper instead. See docs/ios-spm.mdx and
24
+ // okf-bundle/ios-spm-native-imports.md.
19
25
  #import <Foundation/Foundation.h>
20
- #import <React/RCTBridgeModule.h>
26
+ #import "RNFBAuthTurboModules.h"
21
27
 
22
- @interface RNFBAuthModule : NSObject <RCTBridgeModule>
28
+ @interface RNFBAuthModule : NSObject <NativeRNFBTurboAuthSpec>
23
29
  @end
24
-
25
- extern NSString* const AuthErrorCode_toJSErrorCode[];
26
- NSString* const AuthErrorCode_toJSErrorCode[] = {
27
- [FIRAuthErrorCodeInvalidCustomToken] = @"invalid-custom-token",
28
- [FIRAuthErrorCodeCustomTokenMismatch] = @"custom-token-mismatch",
29
- [FIRAuthErrorCodeInvalidCredential] = @"invalid-credential",
30
- [FIRAuthErrorCodeUserDisabled] = @"user-disabled",
31
- [FIRAuthErrorCodeOperationNotAllowed] = @"operation-not-allowed",
32
- [FIRAuthErrorCodeEmailAlreadyInUse] = @"email-already-in-use",
33
- [FIRAuthErrorCodeInvalidEmail] = @"invalid-email",
34
- [FIRAuthErrorCodeWrongPassword] = @"wrong-password",
35
- [FIRAuthErrorCodeTooManyRequests] = @"too-many-requests",
36
- [FIRAuthErrorCodeUserNotFound] = @"user-not-found",
37
- [FIRAuthErrorCodeAccountExistsWithDifferentCredential] =
38
- @"account-exists-with-different-credential",
39
- [FIRAuthErrorCodeRequiresRecentLogin] = @"requires-recent-login",
40
- [FIRAuthErrorCodeProviderAlreadyLinked] = @"provider-already-linked",
41
- [FIRAuthErrorCodeNoSuchProvider] = @"no-such-provider",
42
- [FIRAuthErrorCodeInvalidUserToken] = @"invalid-user-token",
43
- [FIRAuthErrorCodeNetworkError] = @"network-request-failed",
44
- [FIRAuthErrorCodeUserTokenExpired] = @"user-token-expired",
45
- [FIRAuthErrorCodeInvalidAPIKey] = @"invalid-api-key",
46
- [FIRAuthErrorCodeUserMismatch] = @"user-mismatch",
47
- [FIRAuthErrorCodeCredentialAlreadyInUse] = @"credential-already-in-use",
48
- [FIRAuthErrorCodeWeakPassword] = @"weak-password",
49
- [FIRAuthErrorCodeAppNotAuthorized] = @"app-not-authorized",
50
- [FIRAuthErrorCodeExpiredActionCode] = @"expired-action-code",
51
- [FIRAuthErrorCodeInvalidActionCode] = @"invalid-action-code",
52
- [FIRAuthErrorCodeInvalidMessagePayload] = @"invalid-message-payload",
53
- [FIRAuthErrorCodeInvalidSender] = @"invalid-sender",
54
- [FIRAuthErrorCodeInvalidRecipientEmail] = @"invalid-recipient-email",
55
- [FIRAuthErrorCodeMissingEmail] = @"invalid-email",
56
- [FIRAuthErrorCodeMissingIosBundleID] = @"missing-ios-bundle-id",
57
- [FIRAuthErrorCodeMissingAndroidPackageName] = @"missing-android-pkg-name",
58
- [FIRAuthErrorCodeUnauthorizedDomain] = @"unauthorized-domain",
59
- [FIRAuthErrorCodeInvalidContinueURI] = @"invalid-continue-uri",
60
- [FIRAuthErrorCodeMissingContinueURI] = @"missing-continue-uri",
61
- [FIRAuthErrorCodeMissingPhoneNumber] = @"missing-phone-number",
62
- [FIRAuthErrorCodeInvalidPhoneNumber] = @"invalid-phone-number",
63
- [FIRAuthErrorCodeMissingVerificationCode] = @"missing-verification-code",
64
- [FIRAuthErrorCodeInvalidVerificationCode] = @"invalid-verification-code",
65
- [FIRAuthErrorCodeMissingVerificationID] = @"missing-verification-id",
66
- [FIRAuthErrorCodeInvalidVerificationID] = @"invalid-verification-id",
67
- [FIRAuthErrorCodeMissingAppCredential] = @"missing-app-credential",
68
- [FIRAuthErrorCodeInvalidAppCredential] = @"invalid-app-credential",
69
- [FIRAuthErrorCodeSessionExpired] = @"code-expired",
70
- [FIRAuthErrorCodeQuotaExceeded] = @"quota-exceeded",
71
- [FIRAuthErrorCodeMissingAppToken] = @"missing-apns-token",
72
- [FIRAuthErrorCodeNotificationNotForwarded] = @"notification-not-forwarded",
73
- [FIRAuthErrorCodeAppNotVerified] = @"app-not-verified",
74
- [FIRAuthErrorCodeCaptchaCheckFailed] = @"captcha-check-failed",
75
- [FIRAuthErrorCodeWebContextAlreadyPresented] = @"cancelled-popup-request",
76
- [FIRAuthErrorCodeWebContextCancelled] = @"popup-closed-by-user",
77
- [FIRAuthErrorCodeAppVerificationUserInteractionFailure] =
78
- @"app-verification-user-interaction-failure",
79
- [FIRAuthErrorCodeInvalidClientID] = @"invalid-oauth-client-id",
80
- [FIRAuthErrorCodeWebNetworkRequestFailed] = @"network-request-failed",
81
- [FIRAuthErrorCodeWebInternalError] = @"internal-error",
82
- [FIRAuthErrorCodeNullUser] = @"null-user",
83
- [FIRAuthErrorCodeKeychainError] = @"keychain-error",
84
- [FIRAuthErrorCodeInternalError] = @"internal-error",
85
- [FIRAuthErrorCodeMalformedJWT] = @"malformed-jwt",
86
- [FIRAuthErrorCodeSecondFactorRequired] = @"multi-factor-auth-required"};
@@ -0,0 +1,592 @@
1
+ /**
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+
18
+ // This module intentionally has no Firebase imports -- see RNFBAuthHelper.h /
19
+ // RNFBAuthModule.h for why. Every Firebase Auth SDK call is routed through the
20
+ // plain Objective-C RNFBAuthHelper class instead, which can safely `@import
21
+ // FirebaseAuth` because it compiles as ObjC, not ObjC++.
22
+ #import "RNFBAuthModule.h"
23
+ #import "RNFBAuthHelper.h"
24
+ #import "RNFBAuthTurboModules.h"
25
+
26
+ @implementation RNFBAuthModule
27
+ #pragma mark -
28
+ #pragma mark Module Setup
29
+
30
+ RCT_EXPORT_MODULE(NativeRNFBTurboAuth);
31
+
32
+ + (BOOL)requiresMainQueueSetup {
33
+ return NO;
34
+ }
35
+
36
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
37
+ (const facebook::react::ObjCTurboModule::InitParams &)params {
38
+ return std::make_shared<facebook::react::NativeRNFBTurboAuthSpecJSI>(params);
39
+ }
40
+
41
+ - (void)dealloc {
42
+ [self invalidate];
43
+ }
44
+
45
+ - (void)invalidate {
46
+ [RNFBAuthHelper invalidate];
47
+ }
48
+
49
+ #pragma mark -
50
+ #pragma mark Firebase Auth Methods
51
+
52
+ - (void)addAuthStateListener:(NSString *)appName {
53
+ [RNFBAuthHelper addAuthStateListener:appName];
54
+ }
55
+
56
+ - (void)removeAuthStateListener:(NSString *)appName {
57
+ [RNFBAuthHelper removeAuthStateListener:appName];
58
+ }
59
+
60
+ - (void)addIdTokenListener:(NSString *)appName {
61
+ [RNFBAuthHelper addIdTokenListener:appName];
62
+ }
63
+
64
+ - (void)removeIdTokenListener:(NSString *)appName {
65
+ [RNFBAuthHelper removeIdTokenListener:appName];
66
+ }
67
+
68
+ - (void)configureAuthDomain:(NSString *)appName {
69
+ [RNFBAuthHelper configureAuthDomain:appName];
70
+ }
71
+
72
+ - (void)getCustomAuthDomain:(NSString *)appName
73
+ resolve:(RCTPromiseResolveBlock)resolve
74
+ reject:(RCTPromiseRejectBlock)reject {
75
+ [RNFBAuthHelper getCustomAuthDomain:appName resolve:resolve reject:reject];
76
+ }
77
+
78
+ - (void)setAppVerificationDisabledForTesting:(NSString *)appName
79
+ disabled:(BOOL)disabled
80
+ resolve:(RCTPromiseResolveBlock)resolve
81
+ reject:(RCTPromiseRejectBlock)reject {
82
+ [RNFBAuthHelper setAppVerificationDisabledForTesting:appName
83
+ disabled:disabled
84
+ resolve:resolve
85
+ reject:reject];
86
+ }
87
+
88
+ - (void)forceRecaptchaFlowForTesting:(NSString *)appName
89
+ forceRecaptchaFlow:(BOOL)forceRecaptchaFlow
90
+ resolve:(RCTPromiseResolveBlock)resolve
91
+ reject:(RCTPromiseRejectBlock)reject {
92
+ resolve([NSNull null]);
93
+ }
94
+
95
+ - (void)setAutoRetrievedSmsCodeForPhoneNumber:(NSString *)appName
96
+ phoneNumber:(NSString *)phoneNumber
97
+ smsCode:(NSString *)smsCode
98
+ resolve:(RCTPromiseResolveBlock)resolve
99
+ reject:(RCTPromiseRejectBlock)reject {
100
+ resolve([NSNull null]);
101
+ }
102
+
103
+ - (void)useUserAccessGroup:(NSString *)appName
104
+ userAccessGroup:(NSString *)userAccessGroup
105
+ resolve:(RCTPromiseResolveBlock)resolve
106
+ reject:(RCTPromiseRejectBlock)reject {
107
+ [RNFBAuthHelper useUserAccessGroup:appName
108
+ userAccessGroup:userAccessGroup
109
+ resolve:resolve
110
+ reject:reject];
111
+ }
112
+
113
+ - (void)signOut:(NSString *)appName
114
+ resolve:(RCTPromiseResolveBlock)resolve
115
+ reject:(RCTPromiseRejectBlock)reject {
116
+ [RNFBAuthHelper signOut:appName resolve:resolve reject:reject];
117
+ }
118
+
119
+ - (void)signInAnonymously:(NSString *)appName
120
+ resolve:(RCTPromiseResolveBlock)resolve
121
+ reject:(RCTPromiseRejectBlock)reject {
122
+ [RNFBAuthHelper signInAnonymously:appName resolve:resolve reject:reject];
123
+ }
124
+
125
+ - (void)signInWithEmailAndPassword:(NSString *)appName
126
+ email:(NSString *)email
127
+ password:(NSString *)password
128
+ resolve:(RCTPromiseResolveBlock)resolve
129
+ reject:(RCTPromiseRejectBlock)reject {
130
+ [RNFBAuthHelper signInWithEmailAndPassword:appName
131
+ email:email
132
+ password:password
133
+ resolve:resolve
134
+ reject:reject];
135
+ }
136
+
137
+ - (NSNumber *)isSignInWithEmailLink:(NSString *)appName emailLink:(NSString *)emailLink {
138
+ return [RNFBAuthHelper isSignInWithEmailLink:appName emailLink:emailLink];
139
+ }
140
+
141
+ - (void)signInWithEmailLink:(NSString *)appName
142
+ email:(NSString *)email
143
+ emailLink:(NSString *)emailLink
144
+ resolve:(RCTPromiseResolveBlock)resolve
145
+ reject:(RCTPromiseRejectBlock)reject {
146
+ [RNFBAuthHelper signInWithEmailLink:appName
147
+ email:email
148
+ emailLink:emailLink
149
+ resolve:resolve
150
+ reject:reject];
151
+ }
152
+
153
+ - (void)createUserWithEmailAndPassword:(NSString *)appName
154
+ email:(NSString *)email
155
+ password:(NSString *)password
156
+ resolve:(RCTPromiseResolveBlock)resolve
157
+ reject:(RCTPromiseRejectBlock)reject {
158
+ [RNFBAuthHelper createUserWithEmailAndPassword:appName
159
+ email:email
160
+ password:password
161
+ resolve:resolve
162
+ reject:reject];
163
+ }
164
+
165
+ - (void)deleteUser:(NSString *)appName
166
+ resolve:(RCTPromiseResolveBlock)resolve
167
+ reject:(RCTPromiseRejectBlock)reject {
168
+ [RNFBAuthHelper deleteUser:appName resolve:resolve reject:reject];
169
+ }
170
+
171
+ - (void)reload:(NSString *)appName
172
+ resolve:(RCTPromiseResolveBlock)resolve
173
+ reject:(RCTPromiseRejectBlock)reject {
174
+ [RNFBAuthHelper reload:appName resolve:resolve reject:reject];
175
+ }
176
+
177
+ - (void)sendEmailVerification:(NSString *)appName
178
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
179
+ resolve:(RCTPromiseResolveBlock)resolve
180
+ reject:(RCTPromiseRejectBlock)reject {
181
+ [RNFBAuthHelper sendEmailVerification:appName
182
+ actionCodeSettings:actionCodeSettings
183
+ resolve:resolve
184
+ reject:reject];
185
+ }
186
+
187
+ - (void)verifyBeforeUpdateEmail:(NSString *)appName
188
+ email:(NSString *)email
189
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
190
+ resolve:(RCTPromiseResolveBlock)resolve
191
+ reject:(RCTPromiseRejectBlock)reject {
192
+ [RNFBAuthHelper verifyBeforeUpdateEmail:appName
193
+ email:email
194
+ actionCodeSettings:actionCodeSettings
195
+ resolve:resolve
196
+ reject:reject];
197
+ }
198
+
199
+ - (void)updateEmail:(NSString *)appName
200
+ email:(NSString *)email
201
+ resolve:(RCTPromiseResolveBlock)resolve
202
+ reject:(RCTPromiseRejectBlock)reject {
203
+ [RNFBAuthHelper updateEmail:appName email:email resolve:resolve reject:reject];
204
+ }
205
+
206
+ - (void)updatePassword:(NSString *)appName
207
+ password:(NSString *)password
208
+ resolve:(RCTPromiseResolveBlock)resolve
209
+ reject:(RCTPromiseRejectBlock)reject {
210
+ [RNFBAuthHelper updatePassword:appName password:password resolve:resolve reject:reject];
211
+ }
212
+
213
+ #if TARGET_OS_IOS
214
+ - (void)updatePhoneNumber:(NSString *)appName
215
+ provider:(NSString *)provider
216
+ authToken:(NSString *)authToken
217
+ authSecret:(NSString *)authSecret
218
+ resolve:(RCTPromiseResolveBlock)resolve
219
+ reject:(RCTPromiseRejectBlock)reject {
220
+ [RNFBAuthHelper updatePhoneNumber:appName
221
+ provider:provider
222
+ authToken:authToken
223
+ authSecret:authSecret
224
+ resolve:resolve
225
+ reject:reject];
226
+ }
227
+ #endif
228
+
229
+ - (void)updateProfile:(NSString *)appName
230
+ props:(NSDictionary *)props
231
+ resolve:(RCTPromiseResolveBlock)resolve
232
+ reject:(RCTPromiseRejectBlock)reject {
233
+ [RNFBAuthHelper updateProfile:appName props:props resolve:resolve reject:reject];
234
+ }
235
+
236
+ - (void)getIdToken:(NSString *)appName
237
+ forceRefresh:(BOOL)forceRefresh
238
+ resolve:(RCTPromiseResolveBlock)resolve
239
+ reject:(RCTPromiseRejectBlock)reject {
240
+ [RNFBAuthHelper getIdToken:appName forceRefresh:forceRefresh resolve:resolve reject:reject];
241
+ }
242
+
243
+ - (void)getIdTokenResult:(NSString *)appName
244
+ forceRefresh:(BOOL)forceRefresh
245
+ resolve:(RCTPromiseResolveBlock)resolve
246
+ reject:(RCTPromiseRejectBlock)reject {
247
+ [RNFBAuthHelper getIdTokenResult:appName forceRefresh:forceRefresh resolve:resolve reject:reject];
248
+ }
249
+
250
+ - (void)signInWithCredential:(NSString *)appName
251
+ provider:(NSString *)provider
252
+ authToken:(NSString *)authToken
253
+ authSecret:(NSString *)authSecret
254
+ fullName:(NSDictionary *)fullName
255
+ resolve:(RCTPromiseResolveBlock)resolve
256
+ reject:(RCTPromiseRejectBlock)reject {
257
+ [RNFBAuthHelper signInWithCredential:appName
258
+ provider:provider
259
+ authToken:authToken
260
+ authSecret:authSecret
261
+ fullName:fullName
262
+ resolve:resolve
263
+ reject:reject];
264
+ }
265
+
266
+ - (void)signInWithProvider:(NSString *)appName
267
+ provider:(NSDictionary *)provider
268
+ resolve:(RCTPromiseResolveBlock)resolve
269
+ reject:(RCTPromiseRejectBlock)reject {
270
+ [RNFBAuthHelper signInWithProvider:appName provider:provider resolve:resolve reject:reject];
271
+ }
272
+
273
+ - (void)confirmPasswordReset:(NSString *)appName
274
+ code:(NSString *)code
275
+ newPassword:(NSString *)newPassword
276
+ resolve:(RCTPromiseResolveBlock)resolve
277
+ reject:(RCTPromiseRejectBlock)reject {
278
+ [RNFBAuthHelper confirmPasswordReset:appName
279
+ code:code
280
+ newPassword:newPassword
281
+ resolve:resolve
282
+ reject:reject];
283
+ }
284
+
285
+ - (void)applyActionCode:(NSString *)appName
286
+ code:(NSString *)code
287
+ resolve:(RCTPromiseResolveBlock)resolve
288
+ reject:(RCTPromiseRejectBlock)reject {
289
+ [RNFBAuthHelper applyActionCode:appName code:code resolve:resolve reject:reject];
290
+ }
291
+
292
+ - (void)checkActionCode:(NSString *)appName
293
+ code:(NSString *)code
294
+ resolve:(RCTPromiseResolveBlock)resolve
295
+ reject:(RCTPromiseRejectBlock)reject {
296
+ [RNFBAuthHelper checkActionCode:appName code:code resolve:resolve reject:reject];
297
+ }
298
+
299
+ - (void)revokeToken:(NSString *)appName
300
+ authorizationCode:(NSString *)authorizationCode
301
+ resolve:(RCTPromiseResolveBlock)resolve
302
+ reject:(RCTPromiseRejectBlock)reject {
303
+ [RNFBAuthHelper revokeToken:appName
304
+ authorizationCode:authorizationCode
305
+ resolve:resolve
306
+ reject:reject];
307
+ }
308
+
309
+ - (void)sendPasswordResetEmail:(NSString *)appName
310
+ email:(NSString *)email
311
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
312
+ resolve:(RCTPromiseResolveBlock)resolve
313
+ reject:(RCTPromiseRejectBlock)reject {
314
+ [RNFBAuthHelper sendPasswordResetEmail:appName
315
+ email:email
316
+ actionCodeSettings:actionCodeSettings
317
+ resolve:resolve
318
+ reject:reject];
319
+ }
320
+
321
+ - (void)sendSignInLinkToEmail:(NSString *)appName
322
+ email:(NSString *)email
323
+ actionCodeSettings:(NSDictionary *)actionCodeSettings
324
+ resolve:(RCTPromiseResolveBlock)resolve
325
+ reject:(RCTPromiseRejectBlock)reject {
326
+ [RNFBAuthHelper sendSignInLinkToEmail:appName
327
+ email:email
328
+ actionCodeSettings:actionCodeSettings
329
+ resolve:resolve
330
+ reject:reject];
331
+ }
332
+
333
+ - (void)signInWithCustomToken:(NSString *)appName
334
+ customToken:(NSString *)customToken
335
+ resolve:(RCTPromiseResolveBlock)resolve
336
+ reject:(RCTPromiseRejectBlock)reject {
337
+ [RNFBAuthHelper signInWithCustomToken:appName
338
+ customToken:customToken
339
+ resolve:resolve
340
+ reject:reject];
341
+ }
342
+
343
+ #if TARGET_OS_IOS
344
+ - (void)signInWithPhoneNumber:(NSString *)appName
345
+ phoneNumber:(NSString *)phoneNumber
346
+ forceResend:(BOOL)forceResend
347
+ resolve:(RCTPromiseResolveBlock)resolve
348
+ reject:(RCTPromiseRejectBlock)reject {
349
+ [RNFBAuthHelper signInWithPhoneNumber:appName
350
+ phoneNumber:phoneNumber
351
+ forceResend:forceResend
352
+ resolve:resolve
353
+ reject:reject];
354
+ }
355
+
356
+ - (void)verifyPhoneNumberWithMultiFactorInfo:(NSString *)appName
357
+ hintUid:(NSString *)hintUid
358
+ sessionKey:(NSString *)sessionKey
359
+ resolve:(RCTPromiseResolveBlock)resolve
360
+ reject:(RCTPromiseRejectBlock)reject {
361
+ [RNFBAuthHelper verifyPhoneNumberWithMultiFactorInfo:appName
362
+ hintUid:hintUid
363
+ sessionKey:sessionKey
364
+ resolve:resolve
365
+ reject:reject];
366
+ }
367
+
368
+ - (void)verifyPhoneNumberForMultiFactor:(NSString *)appName
369
+ phoneNumber:(NSString *)phoneNumber
370
+ sessionKey:(NSString *)sessionKey
371
+ resolve:(RCTPromiseResolveBlock)resolve
372
+ reject:(RCTPromiseRejectBlock)reject {
373
+ [RNFBAuthHelper verifyPhoneNumberForMultiFactor:appName
374
+ phoneNumber:phoneNumber
375
+ sessionKey:sessionKey
376
+ resolve:resolve
377
+ reject:reject];
378
+ }
379
+
380
+ - (void)resolveMultiFactorSignIn:(NSString *)appName
381
+ session:(NSString *)session
382
+ verificationId:(NSString *)verificationId
383
+ verificationCode:(NSString *)verificationCode
384
+ resolve:(RCTPromiseResolveBlock)resolve
385
+ reject:(RCTPromiseRejectBlock)reject {
386
+ [RNFBAuthHelper resolveMultiFactorSignIn:appName
387
+ session:session
388
+ verificationId:verificationId
389
+ verificationCode:verificationCode
390
+ resolve:resolve
391
+ reject:reject];
392
+ }
393
+
394
+ - (void)resolveTotpSignIn:(NSString *)appName
395
+ sessionKey:(NSString *)sessionKey
396
+ uid:(NSString *)uid
397
+ oneTimePassword:(NSString *)oneTimePassword
398
+ resolve:(RCTPromiseResolveBlock)resolve
399
+ reject:(RCTPromiseRejectBlock)reject {
400
+ [RNFBAuthHelper resolveTotpSignIn:appName
401
+ sessionKey:sessionKey
402
+ uid:uid
403
+ oneTimePassword:oneTimePassword
404
+ resolve:resolve
405
+ reject:reject];
406
+ }
407
+
408
+ - (void)generateTotpSecret:(NSString *)appName
409
+ sessionKey:(NSString *)sessionKey
410
+ resolve:(RCTPromiseResolveBlock)resolve
411
+ reject:(RCTPromiseRejectBlock)reject {
412
+ [RNFBAuthHelper generateTotpSecret:appName sessionKey:sessionKey resolve:resolve reject:reject];
413
+ }
414
+
415
+ - (NSString *)generateQrCodeUrl:(NSString *)appName
416
+ secretKey:(NSString *)secretKey
417
+ account:(NSString *)account
418
+ issuer:(NSString *)issuer {
419
+ return [RNFBAuthHelper generateQrCodeUrl:appName
420
+ secretKey:secretKey
421
+ account:account
422
+ issuer:issuer];
423
+ }
424
+
425
+ - (void)openInOtpApp:(NSString *)appName
426
+ secretKey:(NSString *)secretKey
427
+ qrCodeUri:(NSString *)qrCodeUri {
428
+ [RNFBAuthHelper openInOtpApp:appName secretKey:secretKey qrCodeUri:qrCodeUri];
429
+ }
430
+
431
+ - (void)getSession:(NSString *)appName
432
+ resolve:(RCTPromiseResolveBlock)resolve
433
+ reject:(RCTPromiseRejectBlock)reject {
434
+ [RNFBAuthHelper getSession:appName resolve:resolve reject:reject];
435
+ }
436
+
437
+ - (void)unenrollMultiFactor:(NSString *)appName
438
+ factorUID:(NSString *)factorUID
439
+ resolve:(RCTPromiseResolveBlock)resolve
440
+ reject:(RCTPromiseRejectBlock)reject {
441
+ [RNFBAuthHelper unenrollMultiFactor:appName factorUID:factorUID resolve:resolve reject:reject];
442
+ }
443
+
444
+ - (void)finalizeMultiFactorEnrollment:(NSString *)appName
445
+ verificationId:(NSString *)verificationId
446
+ verificationCode:(NSString *)verificationCode
447
+ displayName:(NSString *_Nullable)displayName
448
+ resolve:(RCTPromiseResolveBlock)resolve
449
+ reject:(RCTPromiseRejectBlock)reject {
450
+ [RNFBAuthHelper finalizeMultiFactorEnrollment:appName
451
+ verificationId:verificationId
452
+ verificationCode:verificationCode
453
+ displayName:displayName
454
+ resolve:resolve
455
+ reject:reject];
456
+ }
457
+
458
+ - (void)finalizeTotpEnrollment:(NSString *)appName
459
+ totpSecret:(NSString *)totpSecret
460
+ verificationCode:(NSString *)verificationCode
461
+ displayName:(NSString *_Nullable)displayName
462
+ resolve:(RCTPromiseResolveBlock)resolve
463
+ reject:(RCTPromiseRejectBlock)reject {
464
+ [RNFBAuthHelper finalizeTotpEnrollment:appName
465
+ totpSecret:totpSecret
466
+ verificationCode:verificationCode
467
+ displayName:displayName
468
+ resolve:resolve
469
+ reject:reject];
470
+ }
471
+
472
+ - (void)verifyPhoneNumber:(NSString *)appName
473
+ phoneNumber:(NSString *)phoneNumber
474
+ requestKey:(NSString *)requestKey
475
+ timeout:(double)timeout
476
+ forceResend:(BOOL)forceResend {
477
+ [RNFBAuthHelper verifyPhoneNumber:appName
478
+ phoneNumber:phoneNumber
479
+ requestKey:requestKey
480
+ timeout:timeout
481
+ forceResend:forceResend];
482
+ }
483
+
484
+ - (void)confirmationResultConfirm:(NSString *)appName
485
+ verificationCode:(NSString *)verificationCode
486
+ resolve:(RCTPromiseResolveBlock)resolve
487
+ reject:(RCTPromiseRejectBlock)reject {
488
+ [RNFBAuthHelper confirmationResultConfirm:appName
489
+ verificationCode:verificationCode
490
+ resolve:resolve
491
+ reject:reject];
492
+ }
493
+ #endif
494
+
495
+ - (void)linkWithCredential:(NSString *)appName
496
+ provider:(NSString *)provider
497
+ authToken:(NSString *)authToken
498
+ authSecret:(NSString *)authSecret
499
+ resolve:(RCTPromiseResolveBlock)resolve
500
+ reject:(RCTPromiseRejectBlock)reject {
501
+ [RNFBAuthHelper linkWithCredential:appName
502
+ provider:provider
503
+ authToken:authToken
504
+ authSecret:authSecret
505
+ resolve:resolve
506
+ reject:reject];
507
+ }
508
+
509
+ - (void)linkWithProvider:(NSString *)appName
510
+ provider:(NSDictionary *)provider
511
+ resolve:(RCTPromiseResolveBlock)resolve
512
+ reject:(RCTPromiseRejectBlock)reject {
513
+ [RNFBAuthHelper linkWithProvider:appName provider:provider resolve:resolve reject:reject];
514
+ }
515
+
516
+ - (void)unlink:(NSString *)appName
517
+ providerId:(NSString *)providerId
518
+ resolve:(RCTPromiseResolveBlock)resolve
519
+ reject:(RCTPromiseRejectBlock)reject {
520
+ [RNFBAuthHelper unlink:appName providerId:providerId resolve:resolve reject:reject];
521
+ }
522
+
523
+ - (void)reauthenticateWithCredential:(NSString *)appName
524
+ provider:(NSString *)provider
525
+ authToken:(NSString *)authToken
526
+ authSecret:(NSString *)authSecret
527
+ resolve:(RCTPromiseResolveBlock)resolve
528
+ reject:(RCTPromiseRejectBlock)reject {
529
+ [RNFBAuthHelper reauthenticateWithCredential:appName
530
+ provider:provider
531
+ authToken:authToken
532
+ authSecret:authSecret
533
+ resolve:resolve
534
+ reject:reject];
535
+ }
536
+
537
+ - (void)reauthenticateWithProvider:(NSString *)appName
538
+ provider:(NSDictionary *)provider
539
+ resolve:(RCTPromiseResolveBlock)resolve
540
+ reject:(RCTPromiseRejectBlock)reject {
541
+ [RNFBAuthHelper reauthenticateWithProvider:appName
542
+ provider:provider
543
+ resolve:resolve
544
+ reject:reject];
545
+ }
546
+
547
+ - (void)fetchSignInMethodsForEmail:(NSString *)appName
548
+ email:(NSString *)email
549
+ resolve:(RCTPromiseResolveBlock)resolve
550
+ reject:(RCTPromiseRejectBlock)reject {
551
+ [RNFBAuthHelper fetchSignInMethodsForEmail:appName email:email resolve:resolve reject:reject];
552
+ }
553
+
554
+ - (void)setLanguageCode:(NSString *)appName code:(NSString *)code {
555
+ [RNFBAuthHelper setLanguageCode:appName code:code];
556
+ }
557
+
558
+ - (void)setTenantId:(NSString *)appName
559
+ tenantId:(NSString *)tenantId
560
+ resolve:(RCTPromiseResolveBlock)resolve
561
+ reject:(RCTPromiseRejectBlock)reject {
562
+ [RNFBAuthHelper setTenantId:appName tenantId:tenantId resolve:resolve reject:reject];
563
+ }
564
+
565
+ - (void)useDeviceLanguage:(NSString *)appName {
566
+ [RNFBAuthHelper useDeviceLanguage:appName];
567
+ }
568
+
569
+ - (void)verifyPasswordResetCode:(NSString *)appName
570
+ code:(NSString *)code
571
+ resolve:(RCTPromiseResolveBlock)resolve
572
+ reject:(RCTPromiseRejectBlock)reject {
573
+ [RNFBAuthHelper verifyPasswordResetCode:appName code:code resolve:resolve reject:reject];
574
+ }
575
+
576
+ - (void)useEmulator:(NSString *)appName host:(nonnull NSString *)host port:(double)port {
577
+ [RNFBAuthHelper useEmulator:appName host:host port:port];
578
+ }
579
+
580
+ #pragma mark -
581
+ #pragma mark Constants
582
+
583
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboAuth::Constants::Builder>)constantsToExport {
584
+ return
585
+ [_RCTTypedModuleConstants newWithUnsafeDictionary:[RNFBAuthHelper authConstantsDictionary]];
586
+ }
587
+
588
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboAuth::Constants::Builder>)getConstants {
589
+ return [self constantsToExport];
590
+ }
591
+
592
+ @end