@react-native-firebase/auth 24.1.1 → 25.0.1
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.
- package/CHANGELOG.md +16 -0
- package/android/src/main/java/io/invertase/firebase/auth/ReactNativeFirebaseAuthModule.java +16 -4
- package/dist/module/ActionCodeURL.js +140 -0
- package/dist/module/ActionCodeURL.js.map +1 -0
- package/{lib → dist/module}/ConfirmationResult.js +4 -5
- package/dist/module/ConfirmationResult.js.map +1 -0
- package/{lib → dist/module}/MultiFactorResolver.js +14 -5
- package/dist/module/MultiFactorResolver.js.map +1 -0
- package/{lib → dist/module}/PhoneAuthListener.js +52 -75
- package/dist/module/PhoneAuthListener.js.map +1 -0
- package/dist/module/PhoneAuthState.js +25 -0
- package/dist/module/PhoneAuthState.js.map +1 -0
- package/dist/module/PhoneMultiFactorGenerator.js +39 -0
- package/dist/module/PhoneMultiFactorGenerator.js.map +1 -0
- package/{lib → dist/module}/Settings.js +3 -7
- package/dist/module/Settings.js.map +1 -0
- package/{lib → dist/module}/TotpMultiFactorGenerator.js +20 -15
- package/dist/module/TotpMultiFactorGenerator.js.map +1 -0
- package/{lib → dist/module}/TotpSecret.js +7 -5
- package/dist/module/TotpSecret.js.map +1 -0
- package/dist/module/User.js +245 -0
- package/dist/module/User.js.map +1 -0
- package/dist/module/constants.js +54 -0
- package/dist/module/constants.js.map +1 -0
- package/dist/module/credentials/AuthCredential.js +51 -0
- package/dist/module/credentials/AuthCredential.js.map +1 -0
- package/dist/module/credentials/EmailAuthCredential.js +51 -0
- package/dist/module/credentials/EmailAuthCredential.js.map +1 -0
- package/dist/module/credentials/OAuthCredential.js +84 -0
- package/dist/module/credentials/OAuthCredential.js.map +1 -0
- package/dist/module/credentials/PhoneAuthCredential.js +50 -0
- package/dist/module/credentials/PhoneAuthCredential.js.map +1 -0
- package/{lib/providers/GoogleAuthProvider.js → dist/module/credentials/index.js} +7 -19
- package/dist/module/credentials/index.js.map +1 -0
- package/{lib → dist/module}/getMultiFactorResolver.js +5 -8
- package/dist/module/getMultiFactorResolver.js.map +1 -0
- package/{lib/providers/FacebookAuthProvider.js → dist/module/index.js} +11 -18
- package/dist/module/index.js.map +1 -0
- package/dist/module/modular.js +793 -0
- package/dist/module/modular.js.map +1 -0
- package/{lib → dist/module}/multiFactor.js +16 -14
- package/dist/module/multiFactor.js.map +1 -0
- package/dist/module/namespaced.js +522 -0
- package/dist/module/namespaced.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/password-policy/PasswordPolicyImpl.js +103 -0
- package/dist/module/password-policy/PasswordPolicyImpl.js.map +1 -0
- package/{lib → dist/module}/password-policy/PasswordPolicyMixin.js +14 -16
- package/dist/module/password-policy/PasswordPolicyMixin.js.map +1 -0
- package/{lib → dist/module}/password-policy/passwordPolicyApi.js +18 -12
- package/dist/module/password-policy/passwordPolicyApi.js.map +1 -0
- package/{lib → dist/module}/providers/AppleAuthProvider.js +14 -7
- package/dist/module/providers/AppleAuthProvider.js.map +1 -0
- package/{lib → dist/module}/providers/EmailAuthProvider.js +10 -25
- package/dist/module/providers/EmailAuthProvider.js.map +1 -0
- package/dist/module/providers/FacebookAuthProvider.js +56 -0
- package/dist/module/providers/FacebookAuthProvider.js.map +1 -0
- package/dist/module/providers/GithubAuthProvider.js +49 -0
- package/dist/module/providers/GithubAuthProvider.js.map +1 -0
- package/dist/module/providers/GoogleAuthProvider.js +57 -0
- package/dist/module/providers/GoogleAuthProvider.js.map +1 -0
- package/dist/module/providers/OAuthProvider.js +116 -0
- package/dist/module/providers/OAuthProvider.js.map +1 -0
- package/{lib → dist/module}/providers/OIDCAuthProvider.js +15 -7
- package/dist/module/providers/OIDCAuthProvider.js.map +1 -0
- package/dist/module/providers/PhoneAuthProvider.js +87 -0
- package/dist/module/providers/PhoneAuthProvider.js.map +1 -0
- package/dist/module/providers/TwitterAuthProvider.js +50 -0
- package/dist/module/providers/TwitterAuthProvider.js.map +1 -0
- package/dist/module/types/auth.js +43 -0
- package/dist/module/types/auth.js.map +1 -0
- package/dist/module/types/internal.js +4 -0
- package/dist/module/types/internal.js.map +1 -0
- package/dist/module/types/namespaced.js +62 -0
- package/dist/module/types/namespaced.js.map +1 -0
- package/dist/module/version.js +5 -0
- package/dist/module/version.js.map +1 -0
- package/dist/module/web/RNFBAuthModule.android.js +5 -0
- package/dist/module/web/RNFBAuthModule.android.js.map +1 -0
- package/dist/module/web/RNFBAuthModule.ios.js +5 -0
- package/dist/module/web/RNFBAuthModule.ios.js.map +1 -0
- package/{lib → dist/module}/web/RNFBAuthModule.js +104 -321
- package/dist/module/web/RNFBAuthModule.js.map +1 -0
- package/dist/typescript/lib/ActionCodeURL.d.ts +41 -0
- package/dist/typescript/lib/ActionCodeURL.d.ts.map +1 -0
- package/dist/typescript/lib/ConfirmationResult.d.ts +10 -0
- package/dist/typescript/lib/ConfirmationResult.d.ts.map +1 -0
- package/dist/typescript/lib/MultiFactorResolver.d.ts +24 -0
- package/dist/typescript/lib/MultiFactorResolver.d.ts.map +1 -0
- package/dist/typescript/lib/PhoneAuthListener.d.ts +34 -0
- package/dist/typescript/lib/PhoneAuthListener.d.ts.map +1 -0
- package/dist/typescript/lib/PhoneAuthState.d.ts +7 -0
- package/dist/typescript/lib/PhoneAuthState.d.ts.map +1 -0
- package/dist/typescript/lib/PhoneMultiFactorGenerator.d.ts +7 -0
- package/dist/typescript/lib/PhoneMultiFactorGenerator.d.ts.map +1 -0
- package/dist/typescript/lib/Settings.d.ts +13 -0
- package/dist/typescript/lib/Settings.d.ts.map +1 -0
- package/dist/typescript/lib/TotpMultiFactorGenerator.d.ts +11 -0
- package/dist/typescript/lib/TotpMultiFactorGenerator.d.ts.map +1 -0
- package/dist/typescript/lib/TotpSecret.d.ts +33 -0
- package/dist/typescript/lib/TotpSecret.d.ts.map +1 -0
- package/dist/typescript/lib/User.d.ts +51 -0
- package/dist/typescript/lib/User.d.ts.map +1 -0
- package/dist/typescript/lib/constants.d.ts +35 -0
- package/dist/typescript/lib/constants.d.ts.map +1 -0
- package/dist/typescript/lib/credentials/AuthCredential.d.ts +12 -0
- package/dist/typescript/lib/credentials/AuthCredential.d.ts.map +1 -0
- package/dist/typescript/lib/credentials/EmailAuthCredential.d.ts +8 -0
- package/dist/typescript/lib/credentials/EmailAuthCredential.d.ts.map +1 -0
- package/dist/typescript/lib/credentials/OAuthCredential.d.ts +22 -0
- package/dist/typescript/lib/credentials/OAuthCredential.d.ts.map +1 -0
- package/dist/typescript/lib/credentials/PhoneAuthCredential.d.ts +8 -0
- package/dist/typescript/lib/credentials/PhoneAuthCredential.d.ts.map +1 -0
- package/dist/typescript/lib/credentials/index.d.ts +5 -0
- package/dist/typescript/lib/credentials/index.d.ts.map +1 -0
- package/dist/typescript/lib/getMultiFactorResolver.d.ts +19 -0
- package/dist/typescript/lib/getMultiFactorResolver.d.ts.map +1 -0
- package/dist/typescript/lib/index.d.ts +8 -0
- package/dist/typescript/lib/index.d.ts.map +1 -0
- package/dist/typescript/lib/modular.d.ts +370 -0
- package/dist/typescript/lib/modular.d.ts.map +1 -0
- package/dist/typescript/lib/multiFactor.d.ts +26 -0
- package/dist/typescript/lib/multiFactor.d.ts.map +1 -0
- package/dist/typescript/lib/namespaced.d.ts +12 -0
- package/dist/typescript/lib/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/password-policy/PasswordPolicyImpl.d.ts +19 -0
- package/dist/typescript/lib/password-policy/PasswordPolicyImpl.d.ts.map +1 -0
- package/dist/typescript/lib/password-policy/PasswordPolicyMixin.d.ts +11 -0
- package/dist/typescript/lib/password-policy/PasswordPolicyMixin.d.ts.map +1 -0
- package/dist/typescript/lib/password-policy/passwordPolicyApi.d.ts +10 -0
- package/dist/typescript/lib/password-policy/passwordPolicyApi.d.ts.map +1 -0
- package/dist/typescript/lib/providers/AppleAuthProvider.d.ts +16 -0
- package/dist/typescript/lib/providers/AppleAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/EmailAuthProvider.d.ts +11 -0
- package/dist/typescript/lib/providers/EmailAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/FacebookAuthProvider.d.ts +19 -0
- package/dist/typescript/lib/providers/FacebookAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/GithubAuthProvider.d.ts +15 -0
- package/dist/typescript/lib/providers/GithubAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/GoogleAuthProvider.d.ts +21 -0
- package/dist/typescript/lib/providers/GoogleAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/OAuthProvider.d.ts +33 -0
- package/dist/typescript/lib/providers/OAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/OIDCAuthProvider.d.ts +16 -0
- package/dist/typescript/lib/providers/OIDCAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/PhoneAuthProvider.d.ts +16 -0
- package/dist/typescript/lib/providers/PhoneAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/providers/TwitterAuthProvider.d.ts +15 -0
- package/dist/typescript/lib/providers/TwitterAuthProvider.d.ts.map +1 -0
- package/dist/typescript/lib/types/auth.d.ts +305 -0
- package/dist/typescript/lib/types/auth.d.ts.map +1 -0
- package/dist/typescript/lib/types/internal.d.ts +293 -0
- package/dist/typescript/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/lib/types/namespaced.d.ts +2185 -0
- package/dist/typescript/lib/types/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/version.d.ts +2 -0
- package/dist/typescript/lib/version.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBAuthModule.android.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBAuthModule.android.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBAuthModule.d.ts +406 -0
- package/dist/typescript/lib/web/RNFBAuthModule.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBAuthModule.ios.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBAuthModule.ios.d.ts.map +1 -0
- package/dist/typescript/package.json +1 -0
- package/ios/RNFBAuth/RNFBAuthModule.m +4 -2
- package/lib/ActionCodeURL.ts +174 -0
- package/lib/ConfirmationResult.ts +42 -0
- package/lib/MultiFactorResolver.ts +51 -0
- package/lib/PhoneAuthListener.ts +312 -0
- package/lib/PhoneAuthState.ts +22 -0
- package/lib/{PhoneMultiFactorGenerator.js → PhoneMultiFactorGenerator.ts} +8 -2
- package/lib/Settings.ts +59 -0
- package/lib/TotpMultiFactorGenerator.ts +78 -0
- package/lib/TotpSecret.ts +71 -0
- package/lib/{User.js → User.ts} +127 -83
- package/lib/constants.ts +55 -0
- package/lib/credentials/AuthCredential.ts +55 -0
- package/lib/credentials/EmailAuthCredential.ts +70 -0
- package/lib/credentials/OAuthCredential.ts +113 -0
- package/lib/credentials/PhoneAuthCredential.ts +66 -0
- package/lib/{providers/GithubAuthProvider.js → credentials/index.ts} +4 -19
- package/lib/getMultiFactorResolver.ts +40 -0
- package/lib/{providers/TwitterAuthProvider.js → index.ts} +14 -19
- package/lib/modular.ts +1172 -0
- package/lib/multiFactor.ts +83 -0
- package/lib/namespaced.ts +846 -0
- package/lib/password-policy/{PasswordPolicyImpl.js → PasswordPolicyImpl.ts} +37 -19
- package/lib/password-policy/PasswordPolicyMixin.ts +83 -0
- package/lib/password-policy/passwordPolicyApi.ts +60 -0
- package/lib/providers/AppleAuthProvider.ts +44 -0
- package/lib/providers/EmailAuthProvider.ts +42 -0
- package/lib/providers/FacebookAuthProvider.ts +58 -0
- package/lib/providers/GithubAuthProvider.ts +51 -0
- package/lib/providers/GoogleAuthProvider.ts +60 -0
- package/lib/providers/OAuthProvider.ts +150 -0
- package/lib/providers/OIDCAuthProvider.ts +49 -0
- package/lib/providers/PhoneAuthProvider.ts +161 -0
- package/lib/providers/TwitterAuthProvider.ts +52 -0
- package/lib/types/auth.ts +393 -0
- package/lib/types/internal.ts +475 -0
- package/lib/{index.d.ts → types/namespaced.ts} +52 -41
- package/lib/version.ts +2 -0
- package/lib/web/RNFBAuthModule.ts +1359 -0
- package/package.json +41 -9
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.json +26 -0
- package/tsdoc.json +22 -0
- package/typedoc.json +9 -2
- package/lib/index.js +0 -572
- package/lib/modular/index.d.ts +0 -801
- package/lib/modular/index.js +0 -651
- package/lib/providers/OAuthProvider.js +0 -70
- package/lib/providers/PhoneAuthProvider.js +0 -52
- package/lib/version.js +0 -2
- /package/lib/web/{RNFBAuthModule.android.js → RNFBAuthModule.android.ts} +0 -0
- /package/lib/web/{RNFBAuthModule.ios.js → RNFBAuthModule.ios.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getApp","MODULAR_DEPRECATION_ARG","ActionCodeOperation","FactorId","OperationType","ProviderId","SignInMethod","PhoneMultiFactorGenerator","PhoneAuthState","TotpMultiFactorGenerator","TotpSecret","MultiFactorUser","MultiFactorUserModule","AppleAuthProvider","EmailAuthProvider","FacebookAuthProvider","GithubAuthProvider","GoogleAuthProvider","OAuthProvider","OIDCAuthProvider","PhoneAuthProvider","TwitterAuthProvider","ActionCodeURL","appWithAuth","app","name","getAuthInternal","auth","getUserInternal","user","normalizeAdditionalUserInfo","info","isNewUser","Boolean","profile","providerId","username","normalizeUserCredential","userCredential","overrides","normalizedUserCredential","additionalUserInfo","operationType","SIGN_IN","normalizeMultiFactorInfo","normalizedInfo","uid","displayName","enrollmentTime","factorId","phoneNumber","normalizeActionCodeInfo","actionCodeInfo","data","email","multiFactorInfo","previousEmail","undefined","fromEmail","operation","normalizeConfirmationResult","confirmationResult","verificationId","Error","confirm","verificationCode","PHONE","normalizeMultiFactorResolver","resolver","hints","map","session","resolveSignIn","assertion","normalizeMultiFactorUser","multiFactorUser","enrolledFactors","getSession","enroll","unenroll","option","AuthCredential","EmailAuthCredential","OAuthCredential","PhoneAuthCredential","normalizeAuthListener","nextOrObserver","next","callAuthMethod","method","args","call","callUserMethod","getAuth","initializeAuth","_deps","applyActionCode","oobCode","authInternal","beforeAuthStateChanged","callback","onAbort","checkActionCode","then","confirmPasswordReset","newPassword","connectAuthEmulator","url","options","useEmulator","createUserWithEmailAndPassword","password","fetchSignInMethodsForEmail","getMultiFactorResolver","error","getRedirectResult","_auth","_resolver","isSignInWithEmailLink","emailLink","onAuthStateChanged","_error","_completed","onIdTokenChanged","revokeAccessToken","_token","revokeToken","authorizationCode","sendPasswordResetEmail","actionCodeSettings","sendSignInLinkToEmail","setPersistence","_persistence","signInAnonymously","signInWithCredential","credential","signInWithCustomToken","customToken","signInWithEmailAndPassword","signInWithEmailLink","PASSWORD","signInWithPhoneNumber","_appVerifier","verifyPhoneNumber","autoVerifyTimeoutOrForceResend","forceResend","signInWithPopup","provider","signInWithRedirect","signOut","updateCurrentUser","useDeviceLanguage","setLanguageCode","languageCode","useUserAccessGroup","userAccessGroup","verifyPasswordResetCode","code","parseActionCodeURL","link","parseLink","deleteUser","userInternal","delete","getIdToken","forceRefresh","getIdTokenResult","linkWithCredential","LINK","linkWithPhoneNumber","_user","_phoneNumber","linkWithPopup","linkWithRedirect","multiFactor","reauthenticateWithCredential","REAUTHENTICATE","reauthenticateWithPhoneNumber","reauthenticateWithPopup","reauthenticateWithRedirect","reload","sendEmailVerification","unlink","updateEmail","newEmail","updatePassword","updatePhoneNumber","updateProfile","photoURL","verifyBeforeUpdateEmail","getAdditionalUserInfo","getCustomAuthDomain","validatePassword","authWithPasswordValidation"],"sourceRoot":"../../lib","sources":["modular.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { reload } from "./modular.js";
|
|
2
4
|
/**
|
|
3
5
|
* Return a MultiFactorUser instance the gateway to multi-factor operations.
|
|
4
6
|
*/
|
|
5
7
|
export function multiFactor(auth) {
|
|
6
8
|
return new MultiFactorUser(auth);
|
|
7
9
|
}
|
|
8
|
-
|
|
9
10
|
export class MultiFactorUser {
|
|
10
11
|
constructor(auth, user) {
|
|
11
12
|
this._auth = auth;
|
|
12
13
|
if (user === undefined) {
|
|
13
14
|
user = auth.currentUser;
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
if (!user) {
|
|
17
|
+
throw new Error('A user is required to access multi-factor operations.');
|
|
18
|
+
}
|
|
19
|
+
this.enrolledFactors = user.multiFactor?.enrolledFactors ?? [];
|
|
17
20
|
}
|
|
18
|
-
|
|
19
21
|
getSession() {
|
|
20
22
|
return this._auth.native.getSession();
|
|
21
23
|
}
|
|
@@ -26,25 +28,25 @@ export class MultiFactorUser {
|
|
|
26
28
|
* profile, which is necessary to see the multi-factor changes.
|
|
27
29
|
*/
|
|
28
30
|
async enroll(multiFactorAssertion, displayName) {
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
-
await this._auth.native.finalizeMultiFactorEnrollment(token, secret, displayName);
|
|
32
|
-
} else if (
|
|
33
|
-
await this._auth.native.finalizeTotpEnrollment(totpSecret, verificationCode, displayName);
|
|
31
|
+
const assertion = multiFactorAssertion;
|
|
32
|
+
if (assertion.factorId === 'phone') {
|
|
33
|
+
await this._auth.native.finalizeMultiFactorEnrollment(assertion.token, assertion.secret, displayName ?? undefined);
|
|
34
|
+
} else if (assertion.factorId === 'totp') {
|
|
35
|
+
await this._auth.native.finalizeTotpEnrollment(assertion.totpSecret, assertion.verificationCode, displayName ?? undefined);
|
|
34
36
|
} else {
|
|
37
|
+
// Runtime guard for callers that bypass the typed MFA assertion helpers.
|
|
35
38
|
throw new Error('Invalid multi-factor assertion provided for enrollment.');
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
// We need to reload the user otherwise the changes are not visible
|
|
39
42
|
// TODO reload not working on Other platform
|
|
40
|
-
|
|
43
|
+
await reload(this._auth.currentUser);
|
|
41
44
|
}
|
|
42
|
-
|
|
43
45
|
async unenroll(enrollmentId) {
|
|
44
46
|
await this._auth.native.unenrollMultiFactor(enrollmentId);
|
|
45
|
-
|
|
46
47
|
if (this._auth.currentUser) {
|
|
47
|
-
|
|
48
|
+
await reload(this._auth.currentUser);
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|
|
52
|
+
//# sourceMappingURL=multiFactor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["reload","multiFactor","auth","MultiFactorUser","constructor","user","_auth","undefined","currentUser","Error","enrolledFactors","getSession","native","enroll","multiFactorAssertion","displayName","assertion","factorId","finalizeMultiFactorEnrollment","token","secret","finalizeTotpEnrollment","totpSecret","verificationCode","unenroll","enrollmentId","unenrollMultiFactor"],"sourceRoot":"../../lib","sources":["multiFactor.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,cAAW;AAYlC;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,IAAyB,EAAqC;EACxF,OAAO,IAAIC,eAAe,CAACD,IAAI,CAAC;AAClC;AAEA,OAAO,MAAMC,eAAe,CAAC;EAI3BC,WAAWA,CAACF,IAAyB,EAAEG,IAA6B,EAAE;IACpE,IAAI,CAACC,KAAK,GAAGJ,IAAI;IACjB,IAAIG,IAAI,KAAKE,SAAS,EAAE;MACtBF,IAAI,GAAGH,IAAI,CAACM,WAAqC;IACnD;IAEA,IAAI,CAACH,IAAI,EAAE;MACT,MAAM,IAAII,KAAK,CAAC,uDAAuD,CAAC;IAC1E;IAEA,IAAI,CAACC,eAAe,GAAGL,IAAI,CAACJ,WAAW,EAAES,eAAe,IAAI,EAAE;EAChE;EAEAC,UAAUA,CAAA,EAAkD;IAC1D,OAAO,IAAI,CAACL,KAAK,CAACM,MAAM,CAACD,UAAU,CAAC,CAAC;EACvC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAME,MAAMA,CACVC,oBAA0F,EAC1FC,WAA2B,EACZ;IACf,MAAMC,SAAS,GAAGF,oBAA8D;IAEhF,IAAIE,SAAS,CAACC,QAAQ,KAAK,OAAO,EAAE;MAClC,MAAM,IAAI,CAACX,KAAK,CAACM,MAAM,CAACM,6BAA6B,CACnDF,SAAS,CAACG,KAAK,EACfH,SAAS,CAACI,MAAM,EAChBL,WAAW,IAAIR,SACjB,CAAC;IACH,CAAC,MAAM,IAAIS,SAAS,CAACC,QAAQ,KAAK,MAAM,EAAE;MACxC,MAAM,IAAI,CAACX,KAAK,CAACM,MAAM,CAACS,sBAAsB,CAC5CL,SAAS,CAACM,UAAU,EACpBN,SAAS,CAACO,gBAAgB,EAC1BR,WAAW,IAAIR,SACjB,CAAC;IACH,CAAC,MAAM;MACL;MACA,MAAM,IAAIE,KAAK,CAAC,yDAAyD,CAAC;IAC5E;;IAEA;IACA;IACA,MAAMT,MAAM,CAAC,IAAI,CAACM,KAAK,CAACE,WAA8B,CAAC;EACzD;EAEA,MAAMgB,QAAQA,CAACC,YAAwD,EAAiB;IACtF,MAAM,IAAI,CAACnB,KAAK,CAACM,MAAM,CAACc,mBAAmB,CACzCD,YACF,CAAC;IAED,IAAI,IAAI,CAACnB,KAAK,CAACE,WAAW,EAAE;MAC1B,MAAMR,MAAM,CAAC,IAAI,CAACM,KAAK,CAACE,WAA8B,CAAC;IACzD;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { createDeprecationProxy, isAndroid, isBoolean, isNull, isOther, isString, isValidUrl, parseListenerOrObserver } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
import { setReactNativeModule } from '@react-native-firebase/app/dist/module/internal/nativeModule';
|
|
22
|
+
import { FirebaseModule, createModuleNamespace, getFirebaseRoot } from '@react-native-firebase/app/dist/module/internal';
|
|
23
|
+
import ConfirmationResult from "./ConfirmationResult.js";
|
|
24
|
+
import { PhoneAuthState } from "./PhoneAuthState.js";
|
|
25
|
+
import PhoneAuthListener from "./PhoneAuthListener.js";
|
|
26
|
+
import PhoneMultiFactorGenerator from "./PhoneMultiFactorGenerator.js";
|
|
27
|
+
import TotpMultiFactorGenerator from "./TotpMultiFactorGenerator.js";
|
|
28
|
+
import Settings from "./Settings.js";
|
|
29
|
+
import User from "./User.js";
|
|
30
|
+
import { getMultiFactorResolver } from "./getMultiFactorResolver.js";
|
|
31
|
+
import { MultiFactorUser, multiFactor } from "./multiFactor.js";
|
|
32
|
+
import AppleAuthProvider from "./providers/AppleAuthProvider.js";
|
|
33
|
+
import EmailAuthProvider from "./providers/EmailAuthProvider.js";
|
|
34
|
+
import FacebookAuthProvider from "./providers/FacebookAuthProvider.js";
|
|
35
|
+
import GithubAuthProvider from "./providers/GithubAuthProvider.js";
|
|
36
|
+
import GoogleAuthProvider from "./providers/GoogleAuthProvider.js";
|
|
37
|
+
import OAuthProvider from "./providers/OAuthProvider.js";
|
|
38
|
+
import OIDCAuthProvider from "./providers/OIDCAuthProvider.js";
|
|
39
|
+
import PhoneAuthProvider from "./providers/PhoneAuthProvider.js";
|
|
40
|
+
import TwitterAuthProvider from "./providers/TwitterAuthProvider.js";
|
|
41
|
+
import { version } from "./version.js";
|
|
42
|
+
import fallBackModule from './web/RNFBAuthModule';
|
|
43
|
+
import { PasswordPolicyMixin } from "./password-policy/PasswordPolicyMixin.js";
|
|
44
|
+
const nativeEvents = ['auth_state_changed', 'auth_id_token_changed', 'phone_auth_state_changed'];
|
|
45
|
+
const statics = {
|
|
46
|
+
AppleAuthProvider,
|
|
47
|
+
EmailAuthProvider,
|
|
48
|
+
PhoneAuthProvider,
|
|
49
|
+
GoogleAuthProvider,
|
|
50
|
+
GithubAuthProvider,
|
|
51
|
+
TwitterAuthProvider,
|
|
52
|
+
FacebookAuthProvider,
|
|
53
|
+
PhoneMultiFactorGenerator,
|
|
54
|
+
TotpMultiFactorGenerator,
|
|
55
|
+
OAuthProvider,
|
|
56
|
+
OIDCAuthProvider,
|
|
57
|
+
PhoneAuthState,
|
|
58
|
+
getMultiFactorResolver,
|
|
59
|
+
multiFactor
|
|
60
|
+
};
|
|
61
|
+
const namespace = 'auth';
|
|
62
|
+
const nativeModuleName = 'RNFBAuthModule';
|
|
63
|
+
class FirebaseAuthModule extends FirebaseModule {
|
|
64
|
+
constructor(app, config, customUrlOrRegion) {
|
|
65
|
+
super(app, config, customUrlOrRegion);
|
|
66
|
+
this._user = null;
|
|
67
|
+
this._settings = null;
|
|
68
|
+
this._authResult = false;
|
|
69
|
+
this._languageCode = this.native.APP_LANGUAGE[this.app.name] ?? '';
|
|
70
|
+
this._tenantId = null;
|
|
71
|
+
this._projectPasswordPolicy = null;
|
|
72
|
+
this._tenantPasswordPolicies = {};
|
|
73
|
+
this._emulatorConfig = null;
|
|
74
|
+
this._authStateReadyPromise = null;
|
|
75
|
+
this._beforeAuthStateChangedCallbacks = [];
|
|
76
|
+
if (!this.languageCode) {
|
|
77
|
+
this._languageCode = this.native.APP_LANGUAGE['[DEFAULT]'] ?? '';
|
|
78
|
+
}
|
|
79
|
+
const initialUser = this.native.APP_USER[this.app.name];
|
|
80
|
+
if (initialUser) {
|
|
81
|
+
this._setUser(initialUser);
|
|
82
|
+
}
|
|
83
|
+
this.emitter.addListener(this.eventNameForApp('auth_state_changed'), event => {
|
|
84
|
+
const authEvent = event;
|
|
85
|
+
void this._handleAuthStateChanged(authEvent.user);
|
|
86
|
+
});
|
|
87
|
+
this.emitter.addListener(this.eventNameForApp('phone_auth_state_changed'), event => {
|
|
88
|
+
const phoneAuthEvent = event;
|
|
89
|
+
const eventKey = `phone:auth:${phoneAuthEvent.requestKey}:${phoneAuthEvent.type}`;
|
|
90
|
+
this.emitter.emit(eventKey, phoneAuthEvent.state);
|
|
91
|
+
});
|
|
92
|
+
this.emitter.addListener(this.eventNameForApp('auth_id_token_changed'), event => {
|
|
93
|
+
const authEvent = event;
|
|
94
|
+
this._setUser(authEvent.user);
|
|
95
|
+
this.emitter.emit(this.eventNameForApp('onIdTokenChanged'), this._user);
|
|
96
|
+
});
|
|
97
|
+
this.native.addAuthStateListener();
|
|
98
|
+
this.native.addIdTokenListener();
|
|
99
|
+
|
|
100
|
+
// custom authDomain in only available from App's FirebaseOptions,
|
|
101
|
+
// but we need it in Auth if it exists. During app configuration we store
|
|
102
|
+
// mappings from app name to authDomain, this auth constructor
|
|
103
|
+
// is a reasonable time to use the mapping and set it into auth natively
|
|
104
|
+
if (!isOther) {
|
|
105
|
+
// Only supported on native platforms
|
|
106
|
+
this.native.configureAuthDomain();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
get languageCode() {
|
|
110
|
+
return this._languageCode;
|
|
111
|
+
}
|
|
112
|
+
set languageCode(code) {
|
|
113
|
+
// For modular API, not recommended to set languageCode directly as it should be set in the native SDKs first
|
|
114
|
+
if (!isString(code) && !isNull(code)) {
|
|
115
|
+
throw new Error("firebase.auth().languageCode = (*) expected 'languageCode' to be a string or null value");
|
|
116
|
+
}
|
|
117
|
+
// as this is a setter, we can't use async/await. So we set it first so it is available immediately
|
|
118
|
+
if (code === null) {
|
|
119
|
+
this._languageCode = this.native.APP_LANGUAGE[this.app.name] ?? '';
|
|
120
|
+
if (!this.languageCode) {
|
|
121
|
+
this._languageCode = this.native.APP_LANGUAGE['[DEFAULT]'] ?? '';
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
this._languageCode = code;
|
|
125
|
+
}
|
|
126
|
+
// This sets it natively
|
|
127
|
+
void this.setLanguageCode(code);
|
|
128
|
+
}
|
|
129
|
+
get config() {
|
|
130
|
+
// Native iOS/Android Firebase Auth SDKs do not expose the firebase-js-sdk config object.
|
|
131
|
+
return {};
|
|
132
|
+
}
|
|
133
|
+
get tenantId() {
|
|
134
|
+
return this._tenantId;
|
|
135
|
+
}
|
|
136
|
+
set tenantId(tenantId) {
|
|
137
|
+
void this.setTenantId(tenantId);
|
|
138
|
+
}
|
|
139
|
+
get emulatorConfig() {
|
|
140
|
+
return this._emulatorConfig;
|
|
141
|
+
}
|
|
142
|
+
authStateReady() {
|
|
143
|
+
if (this._authResult) {
|
|
144
|
+
return Promise.resolve();
|
|
145
|
+
}
|
|
146
|
+
if (!this._authStateReadyPromise) {
|
|
147
|
+
this._authStateReadyPromise = new Promise(resolve => {
|
|
148
|
+
const unsubscribe = this.onAuthStateChanged(() => {
|
|
149
|
+
if (this._authResult) {
|
|
150
|
+
unsubscribe();
|
|
151
|
+
resolve();
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
if (this._authResult) {
|
|
155
|
+
unsubscribe();
|
|
156
|
+
resolve();
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return this._authStateReadyPromise;
|
|
161
|
+
}
|
|
162
|
+
beforeAuthStateChanged(callback, onAbort) {
|
|
163
|
+
const entry = {
|
|
164
|
+
callback,
|
|
165
|
+
onAbort
|
|
166
|
+
};
|
|
167
|
+
this._beforeAuthStateChangedCallbacks.push(entry);
|
|
168
|
+
return () => {
|
|
169
|
+
const index = this._beforeAuthStateChangedCallbacks.indexOf(entry);
|
|
170
|
+
if (index >= 0) {
|
|
171
|
+
this._beforeAuthStateChangedCallbacks.splice(index, 1);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
async updateCurrentUser(user) {
|
|
176
|
+
if (user === null) {
|
|
177
|
+
await this.signOut();
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const userInternal = user;
|
|
181
|
+
if (!userInternal._auth || userInternal._auth !== this) {
|
|
182
|
+
throw new Error("firebase.auth().updateCurrentUser() expected 'user' to be an Auth instance from the same Firebase App");
|
|
183
|
+
}
|
|
184
|
+
if (!userInternal._user) {
|
|
185
|
+
throw new Error("firebase.auth().updateCurrentUser(*) expected 'user' to be a valid User");
|
|
186
|
+
}
|
|
187
|
+
this._setUser(userInternal._user);
|
|
188
|
+
}
|
|
189
|
+
async _handleAuthStateChanged(nativeUser) {
|
|
190
|
+
const pendingUser = nativeUser ? createDeprecationProxy(new User(this, nativeUser)) : null;
|
|
191
|
+
for (const {
|
|
192
|
+
callback,
|
|
193
|
+
onAbort
|
|
194
|
+
} of [...this._beforeAuthStateChangedCallbacks]) {
|
|
195
|
+
try {
|
|
196
|
+
await callback(pendingUser);
|
|
197
|
+
} catch {
|
|
198
|
+
onAbort?.();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
this._setUser(nativeUser);
|
|
203
|
+
this.emitter.emit(this.eventNameForApp('onAuthStateChanged'), this._user);
|
|
204
|
+
}
|
|
205
|
+
get settings() {
|
|
206
|
+
if (!this._settings) {
|
|
207
|
+
this._settings = new Settings(this);
|
|
208
|
+
}
|
|
209
|
+
return this._settings;
|
|
210
|
+
}
|
|
211
|
+
get currentUser() {
|
|
212
|
+
return this._user;
|
|
213
|
+
}
|
|
214
|
+
_setUser(user) {
|
|
215
|
+
this._user = user ? createDeprecationProxy(new User(this, user)) : null;
|
|
216
|
+
this._authResult = true;
|
|
217
|
+
this.emitter.emit(this.eventNameForApp('onUserChanged'), this._user);
|
|
218
|
+
return this._user;
|
|
219
|
+
}
|
|
220
|
+
_setUserCredential(userCredential) {
|
|
221
|
+
const user = createDeprecationProxy(new User(this, userCredential.user));
|
|
222
|
+
this._user = user;
|
|
223
|
+
this._authResult = true;
|
|
224
|
+
this.emitter.emit(this.eventNameForApp('onUserChanged'), this._user);
|
|
225
|
+
return {
|
|
226
|
+
additionalUserInfo: userCredential.additionalUserInfo,
|
|
227
|
+
user
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
async setLanguageCode(code) {
|
|
231
|
+
if (!isString(code) && !isNull(code)) {
|
|
232
|
+
throw new Error("firebase.auth().setLanguageCode(*) expected 'languageCode' to be a string or null value");
|
|
233
|
+
}
|
|
234
|
+
await this.native.setLanguageCode(code);
|
|
235
|
+
if (code === null) {
|
|
236
|
+
this._languageCode = this.native.APP_LANGUAGE[this.app.name] ?? '';
|
|
237
|
+
if (!this.languageCode) {
|
|
238
|
+
this._languageCode = this.native.APP_LANGUAGE['[DEFAULT]'] ?? '';
|
|
239
|
+
}
|
|
240
|
+
} else {
|
|
241
|
+
this._languageCode = code;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async setTenantId(tenantId) {
|
|
245
|
+
if (!isString(tenantId) && !isNull(tenantId)) {
|
|
246
|
+
throw new Error("firebase.auth().setTenantId(*) expected 'tenantId' to be a string");
|
|
247
|
+
}
|
|
248
|
+
await this.native.setTenantId(tenantId);
|
|
249
|
+
this._tenantId = tenantId;
|
|
250
|
+
}
|
|
251
|
+
onAuthStateChanged(listenerOrObserver) {
|
|
252
|
+
const listener = parseListenerOrObserver(listenerOrObserver);
|
|
253
|
+
const subscription = this.emitter.addListener(this.eventNameForApp('onAuthStateChanged'), listener);
|
|
254
|
+
if (this._authResult) {
|
|
255
|
+
Promise.resolve().then(() => {
|
|
256
|
+
listener(this._user || null);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
return () => subscription.remove();
|
|
260
|
+
}
|
|
261
|
+
onIdTokenChanged(listenerOrObserver) {
|
|
262
|
+
const listener = parseListenerOrObserver(listenerOrObserver);
|
|
263
|
+
const subscription = this.emitter.addListener(this.eventNameForApp('onIdTokenChanged'), listener);
|
|
264
|
+
if (this._authResult) {
|
|
265
|
+
Promise.resolve().then(() => {
|
|
266
|
+
listener(this._user || null);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return () => subscription.remove();
|
|
270
|
+
}
|
|
271
|
+
onUserChanged(listenerOrObserver) {
|
|
272
|
+
const listener = parseListenerOrObserver(listenerOrObserver);
|
|
273
|
+
const subscription = this.emitter.addListener(this.eventNameForApp('onUserChanged'), listener);
|
|
274
|
+
if (this._authResult) {
|
|
275
|
+
Promise.resolve().then(() => {
|
|
276
|
+
listener(this._user || null);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
return () => {
|
|
280
|
+
subscription.remove();
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
signOut() {
|
|
284
|
+
return this.native.signOut().then(() => {
|
|
285
|
+
this._setUser(null);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
signInAnonymously() {
|
|
289
|
+
return this.native.signInAnonymously().then(userCredential => this._setUserCredential(userCredential));
|
|
290
|
+
}
|
|
291
|
+
signInWithPhoneNumber(phoneNumber, forceResend) {
|
|
292
|
+
if (isAndroid) {
|
|
293
|
+
return this.native.signInWithPhoneNumber(phoneNumber, forceResend || false).then(result => new ConfirmationResult(this, result.verificationId));
|
|
294
|
+
}
|
|
295
|
+
return this.native.signInWithPhoneNumber(phoneNumber).then(result => new ConfirmationResult(this, result.verificationId));
|
|
296
|
+
}
|
|
297
|
+
verifyPhoneNumber(phoneNumber, autoVerifyTimeoutOrForceResend, forceResend) {
|
|
298
|
+
let _forceResend = forceResend;
|
|
299
|
+
let _autoVerifyTimeout = 60;
|
|
300
|
+
if (isBoolean(autoVerifyTimeoutOrForceResend)) {
|
|
301
|
+
_forceResend = autoVerifyTimeoutOrForceResend;
|
|
302
|
+
} else {
|
|
303
|
+
_autoVerifyTimeout = autoVerifyTimeoutOrForceResend;
|
|
304
|
+
}
|
|
305
|
+
return new PhoneAuthListener(this, phoneNumber, _autoVerifyTimeout, _forceResend);
|
|
306
|
+
}
|
|
307
|
+
verifyPhoneNumberWithMultiFactorInfo(multiFactorHint, session) {
|
|
308
|
+
return this.native.verifyPhoneNumberWithMultiFactorInfo(multiFactorHint.uid, session);
|
|
309
|
+
}
|
|
310
|
+
verifyPhoneNumberForMultiFactor(phoneInfoOptions) {
|
|
311
|
+
const {
|
|
312
|
+
phoneNumber,
|
|
313
|
+
session
|
|
314
|
+
} = phoneInfoOptions;
|
|
315
|
+
return this.native.verifyPhoneNumberForMultiFactor(phoneNumber, session);
|
|
316
|
+
}
|
|
317
|
+
resolveMultiFactorSignIn(session, verificationId, verificationCode) {
|
|
318
|
+
return this.native.resolveMultiFactorSignIn(session, verificationId, verificationCode).then(userCredential => {
|
|
319
|
+
return this._setUserCredential(userCredential);
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
resolveTotpSignIn(session, uid, totpSecret) {
|
|
323
|
+
return this.native.resolveTotpSignIn(session, uid, totpSecret).then(userCredential => {
|
|
324
|
+
return this._setUserCredential(userCredential);
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
createUserWithEmailAndPassword(email, password) {
|
|
328
|
+
return this.native.createUserWithEmailAndPassword(email, password).then(userCredential => this._setUserCredential(userCredential))
|
|
329
|
+
/* istanbul ignore next - native error handling cannot be unit tested */.catch(error => {
|
|
330
|
+
if (error.code === 'auth/password-does-not-meet-requirements') {
|
|
331
|
+
return this._recachePasswordPolicy().catch(() => {
|
|
332
|
+
// Silently ignore recache failures - the original error matters more
|
|
333
|
+
}).then(() => {
|
|
334
|
+
throw error;
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
throw error;
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
signInWithEmailAndPassword(email, password) {
|
|
341
|
+
return this.native.signInWithEmailAndPassword(email, password).then(userCredential => this._setUserCredential(userCredential))
|
|
342
|
+
/* istanbul ignore next - native error handling cannot be unit tested */.catch(error => {
|
|
343
|
+
if (error.code === 'auth/password-does-not-meet-requirements') {
|
|
344
|
+
return this._recachePasswordPolicy().catch(() => {
|
|
345
|
+
// Silently ignore recache failures - the original error matters more
|
|
346
|
+
}).then(() => {
|
|
347
|
+
throw error;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
throw error;
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
signInWithCustomToken(customToken) {
|
|
354
|
+
return this.native.signInWithCustomToken(customToken).then(userCredential => this._setUserCredential(userCredential));
|
|
355
|
+
}
|
|
356
|
+
signInWithCredential(credential) {
|
|
357
|
+
return this.native.signInWithCredential(credential.providerId, credential.token, credential.secret).then(userCredential => this._setUserCredential(userCredential));
|
|
358
|
+
}
|
|
359
|
+
revokeToken(authorizationCode) {
|
|
360
|
+
return this.native.revokeToken(authorizationCode);
|
|
361
|
+
}
|
|
362
|
+
sendPasswordResetEmail(email, actionCodeSettings = null) {
|
|
363
|
+
return this.native.sendPasswordResetEmail(email, actionCodeSettings);
|
|
364
|
+
}
|
|
365
|
+
_resolveActionCodeSettings(actionCodeSettings) {
|
|
366
|
+
if (actionCodeSettings && isString(actionCodeSettings.url)) {
|
|
367
|
+
return actionCodeSettings;
|
|
368
|
+
}
|
|
369
|
+
const authDomain = this.app.options.authDomain;
|
|
370
|
+
let url = 'https://localhost';
|
|
371
|
+
if (authDomain && isString(authDomain)) {
|
|
372
|
+
url = isValidUrl(authDomain) ? authDomain : `https://${authDomain}`;
|
|
373
|
+
}
|
|
374
|
+
return {
|
|
375
|
+
...(actionCodeSettings ?? {}),
|
|
376
|
+
url,
|
|
377
|
+
handleCodeInApp: actionCodeSettings?.handleCodeInApp ?? true
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
sendSignInLinkToEmail(email, actionCodeSettings) {
|
|
381
|
+
return this.native.sendSignInLinkToEmail(email, this._resolveActionCodeSettings(actionCodeSettings));
|
|
382
|
+
}
|
|
383
|
+
isSignInWithEmailLink(emailLink) {
|
|
384
|
+
return this.native.isSignInWithEmailLink(emailLink);
|
|
385
|
+
}
|
|
386
|
+
signInWithEmailLink(email, emailLink) {
|
|
387
|
+
return this.native.signInWithEmailLink(email, emailLink ?? '').then(userCredential => this._setUserCredential(userCredential));
|
|
388
|
+
}
|
|
389
|
+
confirmPasswordReset(code, newPassword) {
|
|
390
|
+
return this.native.confirmPasswordReset(code, newPassword)
|
|
391
|
+
/* istanbul ignore next - native error handling cannot be unit tested */.catch(error => {
|
|
392
|
+
if (error.code === 'auth/password-does-not-meet-requirements') {
|
|
393
|
+
return this._recachePasswordPolicy().catch(() => {
|
|
394
|
+
// Silently ignore recache failures - the original error matters more
|
|
395
|
+
}).then(() => {
|
|
396
|
+
throw error;
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
throw error;
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
applyActionCode(code) {
|
|
403
|
+
return this.native.applyActionCode(code).then(user => {
|
|
404
|
+
this._setUser(user);
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
checkActionCode(code) {
|
|
408
|
+
return this.native.checkActionCode(code);
|
|
409
|
+
}
|
|
410
|
+
fetchSignInMethodsForEmail(email) {
|
|
411
|
+
return this.native.fetchSignInMethodsForEmail(email);
|
|
412
|
+
}
|
|
413
|
+
verifyPasswordResetCode(code) {
|
|
414
|
+
return this.native.verifyPasswordResetCode(code);
|
|
415
|
+
}
|
|
416
|
+
useUserAccessGroup(userAccessGroup) {
|
|
417
|
+
if (isAndroid) {
|
|
418
|
+
return Promise.resolve();
|
|
419
|
+
}
|
|
420
|
+
return this.native.useUserAccessGroup(userAccessGroup).then(() => undefined);
|
|
421
|
+
}
|
|
422
|
+
getRedirectResult() {
|
|
423
|
+
throw new Error('firebase.auth().getRedirectResult() is unsupported by the native Firebase SDKs.');
|
|
424
|
+
}
|
|
425
|
+
setPersistence() {
|
|
426
|
+
throw new Error('firebase.auth().setPersistence() is unsupported by the native Firebase SDKs.');
|
|
427
|
+
}
|
|
428
|
+
signInWithPopup(provider) {
|
|
429
|
+
return this.native.signInWithProvider(provider.toObject()).then(userCredential => this._setUserCredential(userCredential));
|
|
430
|
+
}
|
|
431
|
+
signInWithRedirect(provider) {
|
|
432
|
+
return this.native.signInWithProvider(provider.toObject()).then(userCredential => this._setUserCredential(userCredential));
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// firebase issue - https://github.com/invertase/react-native-firebase/pull/655#issuecomment-349904680
|
|
436
|
+
useDeviceLanguage() {
|
|
437
|
+
throw new Error('firebase.auth().useDeviceLanguage() is unsupported by the native Firebase SDKs.');
|
|
438
|
+
}
|
|
439
|
+
useEmulator(url, options) {
|
|
440
|
+
if (!url || !isString(url) || !isValidUrl(url)) {
|
|
441
|
+
throw new Error('firebase.auth().useEmulator() takes a non-empty string URL');
|
|
442
|
+
}
|
|
443
|
+
let _url = url;
|
|
444
|
+
const androidBypassEmulatorUrlRemap = typeof this.firebaseJson.android_bypass_emulator_url_remap === 'boolean' && this.firebaseJson.android_bypass_emulator_url_remap;
|
|
445
|
+
if (!androidBypassEmulatorUrlRemap && isAndroid && _url) {
|
|
446
|
+
if (_url.startsWith('http://localhost')) {
|
|
447
|
+
_url = _url.replace('http://localhost', 'http://10.0.2.2');
|
|
448
|
+
// eslint-disable-next-line no-console
|
|
449
|
+
console.log('Mapping auth host "localhost" to "10.0.2.2" for android emulators. Use real IP on real devices. You can bypass this behaviour with "android_bypass_emulator_url_remap" flag.');
|
|
450
|
+
}
|
|
451
|
+
if (_url.startsWith('http://127.0.0.1')) {
|
|
452
|
+
_url = _url.replace('http://127.0.0.1', 'http://10.0.2.2');
|
|
453
|
+
// eslint-disable-next-line no-console
|
|
454
|
+
console.log('Mapping auth host "127.0.0.1" to "10.0.2.2" for android emulators. Use real IP on real devices. You can bypass this behaviour with "android_bypass_emulator_url_remap" flag.');
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
// Native calls take the host and port split out
|
|
459
|
+
const hostPortRegex = /^http:\/\/([\w\d-.]+):(\d+)$/;
|
|
460
|
+
const urlMatches = _url.match(hostPortRegex);
|
|
461
|
+
if (!urlMatches) {
|
|
462
|
+
throw new Error('firebase.auth().useEmulator() unable to parse host and port from URL');
|
|
463
|
+
}
|
|
464
|
+
const host = urlMatches[1];
|
|
465
|
+
const portString = urlMatches[2];
|
|
466
|
+
if (!host) {
|
|
467
|
+
throw new Error('firebase.auth().useEmulator() unable to parse host from URL');
|
|
468
|
+
}
|
|
469
|
+
const port = portString ? parseInt(portString, 10) : undefined;
|
|
470
|
+
this._emulatorConfig = {
|
|
471
|
+
protocol: 'http',
|
|
472
|
+
host,
|
|
473
|
+
port: port ?? null,
|
|
474
|
+
options: {
|
|
475
|
+
disableWarnings: options?.disableWarnings ?? false
|
|
476
|
+
}
|
|
477
|
+
};
|
|
478
|
+
this.native.useEmulator(host, port);
|
|
479
|
+
// @ts-ignore - undocumented return, useful for unit testing
|
|
480
|
+
return [host, port];
|
|
481
|
+
}
|
|
482
|
+
getMultiFactorResolver(error) {
|
|
483
|
+
return getMultiFactorResolver(this, error);
|
|
484
|
+
}
|
|
485
|
+
multiFactor(user) {
|
|
486
|
+
if (!this.currentUser || user.uid !== this.currentUser.uid) {
|
|
487
|
+
throw new Error('firebase.auth().multiFactor() only operates on currentUser');
|
|
488
|
+
}
|
|
489
|
+
return new MultiFactorUser(this, user);
|
|
490
|
+
}
|
|
491
|
+
getCustomAuthDomain() {
|
|
492
|
+
return this.native.getCustomAuthDomain();
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
// Apply password policy mixin to FirebaseAuthModule
|
|
497
|
+
Object.assign(FirebaseAuthModule.prototype, PasswordPolicyMixin);
|
|
498
|
+
|
|
499
|
+
// import { SDK_VERSION } from '@react-native-firebase/auth';
|
|
500
|
+
export const SDK_VERSION = version;
|
|
501
|
+
const authNamespace = createModuleNamespace({
|
|
502
|
+
statics,
|
|
503
|
+
version,
|
|
504
|
+
namespace,
|
|
505
|
+
nativeModuleName,
|
|
506
|
+
nativeEvents,
|
|
507
|
+
hasMultiAppSupport: true,
|
|
508
|
+
hasCustomUrlOrRegionSupport: false,
|
|
509
|
+
ModuleClass: FirebaseAuthModule
|
|
510
|
+
});
|
|
511
|
+
// import auth from '@react-native-firebase/auth';
|
|
512
|
+
// auth().X(...);
|
|
513
|
+
export default authNamespace;
|
|
514
|
+
|
|
515
|
+
// import auth, { firebase } from '@react-native-firebase/auth';
|
|
516
|
+
// auth().X(...);
|
|
517
|
+
// firebase.auth().X(...);
|
|
518
|
+
export const firebase = getFirebaseRoot();
|
|
519
|
+
|
|
520
|
+
// Register the interop module for non-native platforms.
|
|
521
|
+
setReactNativeModule(nativeModuleName, fallBackModule);
|
|
522
|
+
//# sourceMappingURL=namespaced.js.map
|