@chem-po/firebase-native 0.0.17 → 0.0.19
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/README.md +215 -0
- package/lib/commonjs/adapter/auth.js +288 -78
- package/lib/commonjs/adapter/auth.js.map +1 -1
- package/lib/commonjs/components/FirebaseSignIn.js +1 -1
- package/lib/commonjs/components/FirebaseSignIn.js.map +1 -1
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/validation.js +71 -0
- package/lib/commonjs/utils/validation.js.map +1 -0
- package/lib/module/adapter/auth.js +288 -78
- package/lib/module/adapter/auth.js.map +1 -1
- package/lib/module/components/FirebaseSignIn.js +1 -1
- package/lib/module/components/FirebaseSignIn.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/validation.js +62 -0
- package/lib/module/utils/validation.js.map +1 -0
- package/lib/typescript/adapter/auth.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +21 -0
- package/lib/typescript/utils/validation.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/adapter/auth.ts +263 -70
- package/src/components/FirebaseSignIn.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/utils/validation.ts +85 -0
|
@@ -1,16 +1,43 @@
|
|
|
1
|
+
var _process$env;
|
|
1
2
|
import { getIdTokenResult, getMultiFactorResolver, GoogleAuthProvider, onAuthStateChanged, PhoneAuthProvider, PhoneMultiFactorGenerator, sendPasswordResetEmail, signInWithCredential, signInWithCustomToken, signInWithEmailAndPassword, signOut } from '@react-native-firebase/auth';
|
|
2
3
|
import { GoogleSignin } from '@react-native-google-signin/google-signin';
|
|
4
|
+
const isDebug = typeof process !== 'undefined' && ((_process$env = process.env) === null || _process$env === void 0 ? void 0 : _process$env.EXPO_PUBLIC_DEBUG) === 'true' || false;
|
|
5
|
+
const debugLog = (message, data) => {
|
|
6
|
+
if (isDebug) {
|
|
7
|
+
console.log(`[FirebaseAuth Debug] ${message}`, data || '');
|
|
8
|
+
}
|
|
9
|
+
};
|
|
3
10
|
const providerInitialized = {};
|
|
4
11
|
const getUserWithRole = async user => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
debugLog('Getting user with role', {
|
|
13
|
+
uid: user.uid,
|
|
14
|
+
email: user.email
|
|
15
|
+
});
|
|
16
|
+
try {
|
|
17
|
+
var _user$multiFactor, _user$multiFactor2;
|
|
18
|
+
const {
|
|
19
|
+
claims
|
|
20
|
+
} = await getIdTokenResult(user);
|
|
21
|
+
debugLog('Retrieved ID token claims', {
|
|
22
|
+
role: claims.role,
|
|
23
|
+
customClaims: Object.keys(claims)
|
|
24
|
+
});
|
|
25
|
+
const userWithRole = {
|
|
26
|
+
...user,
|
|
27
|
+
role: claims.role ?? 'user',
|
|
28
|
+
multiFactorVerified: !!((_user$multiFactor = user.multiFactor) !== null && _user$multiFactor !== void 0 && _user$multiFactor.enrolledFactors.length)
|
|
29
|
+
};
|
|
30
|
+
debugLog('User with role created', {
|
|
31
|
+
uid: userWithRole.uid,
|
|
32
|
+
role: userWithRole.role,
|
|
33
|
+
multiFactorVerified: userWithRole.multiFactorVerified,
|
|
34
|
+
enrolledFactorsCount: ((_user$multiFactor2 = user.multiFactor) === null || _user$multiFactor2 === void 0 ? void 0 : _user$multiFactor2.enrolledFactors.length) || 0
|
|
35
|
+
});
|
|
36
|
+
return userWithRole;
|
|
37
|
+
} catch (error) {
|
|
38
|
+
debugLog('Error getting user with role', error);
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
14
41
|
};
|
|
15
42
|
const toEnrollmentFactor = hint => {
|
|
16
43
|
if (hint.factorId === PhoneMultiFactorGenerator.FACTOR_ID) {
|
|
@@ -53,92 +80,203 @@ const toFirebaseFactor = factor => {
|
|
|
53
80
|
throw new Error(`Unsupported factor type: ${factor.factorId ?? 'Missing factor type'}`);
|
|
54
81
|
};
|
|
55
82
|
const sendMultiFactorCode = async (auth, factor, resolver) => {
|
|
83
|
+
debugLog('Sending multi-factor code', {
|
|
84
|
+
factorType: factor.type,
|
|
85
|
+
factorUid: factor.uid
|
|
86
|
+
});
|
|
56
87
|
const sessionId = resolver.session;
|
|
57
88
|
// const verificationId = await new PhoneAuthProvider(auth).verifyPhoneNumber(phoneSignInFactor, sessionId)
|
|
58
89
|
if (factor.type === 'phone') {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
90
|
+
try {
|
|
91
|
+
const verificationId = await auth.verifyPhoneNumberWithMultiFactorInfo(toFirebaseFactor(factor), sessionId);
|
|
92
|
+
debugLog('Multi-factor code sent successfully', {
|
|
93
|
+
verificationId: verificationId.substring(0, 10) + '...'
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
verificationId,
|
|
97
|
+
factor,
|
|
98
|
+
resolver
|
|
99
|
+
};
|
|
100
|
+
} catch (error) {
|
|
101
|
+
debugLog('Error sending multi-factor code', error);
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
65
104
|
}
|
|
66
105
|
throw new Error(`Unsupported factor type: ${factor.type ?? 'Missing factor type'}`);
|
|
67
106
|
};
|
|
68
107
|
const getEnrolledFactors = async (auth, error) => {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
108
|
+
debugLog('Getting enrolled factors from error', {
|
|
109
|
+
errorCode: error === null || error === void 0 ? void 0 : error.code
|
|
110
|
+
});
|
|
111
|
+
try {
|
|
112
|
+
const resolver = getMultiFactorResolver(auth, error);
|
|
113
|
+
debugLog('Multi-factor resolver created', {
|
|
114
|
+
hintsCount: resolver.hints.length
|
|
115
|
+
});
|
|
116
|
+
if (resolver.hints.length === 0) {
|
|
117
|
+
debugLog('No enrolled factors found');
|
|
118
|
+
throw new Error('No multi-factor verification methods found, please enroll one on the website');
|
|
119
|
+
}
|
|
120
|
+
const enrollmentFactors = resolver.hints.map(toEnrollmentFactor);
|
|
121
|
+
debugLog('Enrollment factors mapped', {
|
|
122
|
+
factors: enrollmentFactors.map(f => ({
|
|
123
|
+
type: f.type,
|
|
124
|
+
uid: f.uid
|
|
125
|
+
}))
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
enrollmentFactors,
|
|
129
|
+
multiFactorResolver: resolver
|
|
130
|
+
};
|
|
131
|
+
} catch (error) {
|
|
132
|
+
debugLog('Error getting enrolled factors', error);
|
|
133
|
+
throw error;
|
|
72
134
|
}
|
|
73
|
-
return {
|
|
74
|
-
enrollmentFactors: resolver.hints.map(toEnrollmentFactor),
|
|
75
|
-
multiFactorResolver: resolver
|
|
76
|
-
};
|
|
77
135
|
};
|
|
78
136
|
const verifyMultiFactor = async (verification, code) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
137
|
+
debugLog('Verifying multi-factor code', {
|
|
138
|
+
factorType: verification.factor.type,
|
|
139
|
+
codeLength: code.length
|
|
140
|
+
});
|
|
141
|
+
try {
|
|
142
|
+
var _userCredential$user;
|
|
143
|
+
const credential = await PhoneAuthProvider.credential(verification.verificationId, code);
|
|
144
|
+
debugLog('Phone credential created');
|
|
145
|
+
const assertion = PhoneMultiFactorGenerator.assertion(credential);
|
|
146
|
+
debugLog('Multi-factor assertion created');
|
|
147
|
+
const resolver = verification.resolver;
|
|
148
|
+
if (!resolver) {
|
|
149
|
+
debugLog('Multi-factor resolver not found');
|
|
150
|
+
throw new Error('Internal error signing in with two factor: resolver not found');
|
|
151
|
+
}
|
|
152
|
+
const userCredential = await resolver.resolveSignIn(assertion);
|
|
153
|
+
debugLog('Multi-factor sign-in resolved', {
|
|
154
|
+
uid: (_userCredential$user = userCredential.user) === null || _userCredential$user === void 0 ? void 0 : _userCredential$user.uid
|
|
155
|
+
});
|
|
156
|
+
const user = userCredential.user;
|
|
157
|
+
if (!user) {
|
|
158
|
+
debugLog('No user found after multi-factor resolution');
|
|
159
|
+
throw new Error('No user found');
|
|
160
|
+
}
|
|
161
|
+
const userWithRole = await getUserWithRole(user);
|
|
162
|
+
debugLog('Multi-factor verification completed successfully');
|
|
163
|
+
return {
|
|
164
|
+
user: userWithRole
|
|
165
|
+
};
|
|
166
|
+
} catch (error) {
|
|
167
|
+
debugLog('Error verifying multi-factor', error);
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
89
170
|
};
|
|
90
171
|
const handleSignInError = async error => {
|
|
172
|
+
debugLog('Handling sign-in error', {
|
|
173
|
+
code: error === null || error === void 0 ? void 0 : error.code,
|
|
174
|
+
message: error === null || error === void 0 ? void 0 : error.message
|
|
175
|
+
});
|
|
91
176
|
if (error.code === 'auth/multi-factor-auth-required') {
|
|
177
|
+
debugLog('Multi-factor authentication required');
|
|
92
178
|
return {
|
|
93
179
|
requestArgs: error
|
|
94
180
|
};
|
|
95
181
|
}
|
|
182
|
+
debugLog('Re-throwing sign-in error');
|
|
96
183
|
throw error;
|
|
97
184
|
};
|
|
98
185
|
const initializeProvider = async provider => {
|
|
99
|
-
|
|
186
|
+
debugLog('Initializing provider', {
|
|
187
|
+
name: provider.name,
|
|
188
|
+
alreadyInitialized: providerInitialized[provider.name]
|
|
189
|
+
});
|
|
190
|
+
if (providerInitialized[provider.name]) {
|
|
191
|
+
debugLog('Provider already initialized, skipping');
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
100
194
|
switch (provider.name) {
|
|
101
195
|
case 'google':
|
|
196
|
+
debugLog('Initializing Google provider', {
|
|
197
|
+
webClientId: !!provider.webClientId
|
|
198
|
+
});
|
|
102
199
|
if (!provider.webClientId) {
|
|
103
|
-
|
|
200
|
+
debugLog('Google web client ID missing');
|
|
201
|
+
throw new Error('Google web client ID is required when using Google Auth. ' + 'Get your webClientId from Firebase Console > Authentication > Sign-in method > Google > Web SDK configuration. ' + 'Then provide it in your GoogleAuthProvider: { name: "google", webClientId: "YOUR_CLIENT_ID" }');
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
await GoogleSignin.hasPlayServices({
|
|
205
|
+
showPlayServicesUpdateDialog: true
|
|
206
|
+
});
|
|
207
|
+
debugLog('Google Play Services available');
|
|
208
|
+
GoogleSignin.configure({
|
|
209
|
+
webClientId: provider.webClientId
|
|
210
|
+
});
|
|
211
|
+
debugLog('Google Sign-In configured successfully');
|
|
212
|
+
} catch (error) {
|
|
213
|
+
debugLog('Error initializing Google provider', error);
|
|
214
|
+
if (error instanceof Error && error.message.includes('UNAVAILABLE')) {
|
|
215
|
+
throw new Error('Google Play Services is not available or needs to be updated. ' + 'Please ensure Google Play Services is installed and up to date on this device.');
|
|
216
|
+
}
|
|
217
|
+
throw error;
|
|
104
218
|
}
|
|
105
|
-
await GoogleSignin.hasPlayServices({
|
|
106
|
-
showPlayServicesUpdateDialog: true
|
|
107
|
-
});
|
|
108
|
-
GoogleSignin.configure({
|
|
109
|
-
webClientId: provider.webClientId
|
|
110
|
-
});
|
|
111
219
|
break;
|
|
112
220
|
case 'email':
|
|
221
|
+
debugLog('Email provider initialization (no special setup required)');
|
|
113
222
|
// Native SDK doesn't need special initialization
|
|
114
223
|
break;
|
|
115
224
|
default:
|
|
225
|
+
debugLog('Unsupported provider', {
|
|
226
|
+
name: provider.name
|
|
227
|
+
});
|
|
116
228
|
throw new Error(`Unsupported provider: ${provider.name}`);
|
|
117
229
|
}
|
|
118
230
|
providerInitialized[provider.name] = true;
|
|
231
|
+
debugLog('Provider initialization completed', {
|
|
232
|
+
name: provider.name
|
|
233
|
+
});
|
|
119
234
|
};
|
|
120
235
|
const handleInitialLogin = async (userCredential, twoFactorRequired) => {
|
|
236
|
+
var _userCredential$user2, _userCredential$user3;
|
|
237
|
+
debugLog('Handling initial login', {
|
|
238
|
+
uid: (_userCredential$user2 = userCredential.user) === null || _userCredential$user2 === void 0 ? void 0 : _userCredential$user2.uid,
|
|
239
|
+
twoFactorRequired,
|
|
240
|
+
enrolledFactorsCount: ((_userCredential$user3 = userCredential.user) === null || _userCredential$user3 === void 0 || (_userCredential$user3 = _userCredential$user3.multiFactor) === null || _userCredential$user3 === void 0 ? void 0 : _userCredential$user3.enrolledFactors.length) || 0
|
|
241
|
+
});
|
|
121
242
|
const user = userCredential.user;
|
|
122
|
-
if (!user)
|
|
243
|
+
if (!user) {
|
|
244
|
+
debugLog('No user found in credential');
|
|
245
|
+
throw new Error('No user found');
|
|
246
|
+
}
|
|
123
247
|
if (twoFactorRequired) {
|
|
248
|
+
debugLog('Two-factor authentication is required but user has no enrolled factors');
|
|
124
249
|
throw new Error('This app requires two factor authentication, please enroll a factor on the website and try again');
|
|
125
250
|
}
|
|
251
|
+
const userWithRole = await getUserWithRole(user);
|
|
252
|
+
debugLog('Initial login completed successfully');
|
|
126
253
|
return {
|
|
127
|
-
user:
|
|
254
|
+
user: userWithRole
|
|
128
255
|
};
|
|
129
256
|
};
|
|
130
257
|
const loginWithGoogle = async (auth, twoFactorRequired) => {
|
|
258
|
+
debugLog('Starting Google sign-in', {
|
|
259
|
+
twoFactorRequired
|
|
260
|
+
});
|
|
131
261
|
try {
|
|
132
|
-
var _signInResult$data;
|
|
262
|
+
var _signInResult$data, _signInResult$data2;
|
|
263
|
+
debugLog('Calling GoogleSignin.signIn()');
|
|
133
264
|
const signInResult = await GoogleSignin.signIn();
|
|
134
|
-
|
|
265
|
+
debugLog('Google sign-in result received', {
|
|
266
|
+
hasIdToken: !!((_signInResult$data = signInResult.data) !== null && _signInResult$data !== void 0 && _signInResult$data.idToken)
|
|
267
|
+
});
|
|
268
|
+
const idToken = (_signInResult$data2 = signInResult.data) === null || _signInResult$data2 === void 0 ? void 0 : _signInResult$data2.idToken;
|
|
135
269
|
if (!idToken) {
|
|
270
|
+
debugLog('No ID token found in Google sign-in result');
|
|
136
271
|
throw new Error('No ID token found');
|
|
137
272
|
}
|
|
273
|
+
debugLog('Creating Google credential');
|
|
138
274
|
const googleCredential = GoogleAuthProvider.credential(idToken);
|
|
275
|
+
debugLog('Signing in with Google credential');
|
|
139
276
|
const userCredential = await signInWithCredential(auth, googleCredential);
|
|
140
277
|
return await handleInitialLogin(userCredential, twoFactorRequired);
|
|
141
278
|
} catch (error) {
|
|
279
|
+
debugLog('Error in Google sign-in', error);
|
|
142
280
|
return await handleSignInError(error);
|
|
143
281
|
}
|
|
144
282
|
};
|
|
@@ -146,69 +284,141 @@ const getLoginWithPassword = (auth, twoFactorRequired) => async (provider, {
|
|
|
146
284
|
email,
|
|
147
285
|
password
|
|
148
286
|
}) => {
|
|
287
|
+
debugLog('Starting email/password sign-in', {
|
|
288
|
+
provider: provider.name,
|
|
289
|
+
email,
|
|
290
|
+
twoFactorRequired
|
|
291
|
+
});
|
|
149
292
|
await initializeProvider(provider);
|
|
150
293
|
try {
|
|
294
|
+
var _userCredential$user4;
|
|
295
|
+
debugLog('Calling signInWithEmailAndPassword');
|
|
151
296
|
const userCredential = await signInWithEmailAndPassword(auth, email, password);
|
|
297
|
+
debugLog('Email/password sign-in successful', {
|
|
298
|
+
uid: (_userCredential$user4 = userCredential.user) === null || _userCredential$user4 === void 0 ? void 0 : _userCredential$user4.uid
|
|
299
|
+
});
|
|
152
300
|
return await handleInitialLogin(userCredential, twoFactorRequired);
|
|
153
301
|
} catch (error) {
|
|
302
|
+
debugLog('Error in email/password sign-in', error);
|
|
154
303
|
return await handleSignInError(error);
|
|
155
304
|
}
|
|
156
305
|
};
|
|
157
306
|
const getLoginWithPopup = (auth, twoFactorRequired) => async provider => {
|
|
307
|
+
debugLog('Starting popup sign-in', {
|
|
308
|
+
provider: provider.name,
|
|
309
|
+
twoFactorRequired
|
|
310
|
+
});
|
|
158
311
|
await initializeProvider(provider);
|
|
159
312
|
switch (provider.name) {
|
|
160
313
|
case 'google':
|
|
161
314
|
return loginWithGoogle(auth, twoFactorRequired);
|
|
162
315
|
default:
|
|
316
|
+
debugLog('Unsupported popup provider', {
|
|
317
|
+
name: provider.name
|
|
318
|
+
});
|
|
163
319
|
throw new Error(`Unsupported provider: ${provider.name}`);
|
|
164
320
|
}
|
|
165
321
|
};
|
|
166
322
|
const getLoginWithToken = (auth, twoFactorRequired) => async (provider, token) => {
|
|
323
|
+
debugLog('Starting token sign-in', {
|
|
324
|
+
provider: provider.name,
|
|
325
|
+
tokenLength: token.length,
|
|
326
|
+
twoFactorRequired
|
|
327
|
+
});
|
|
167
328
|
await initializeProvider(provider);
|
|
168
329
|
try {
|
|
330
|
+
var _userCredential$user5;
|
|
331
|
+
debugLog('Calling signInWithCustomToken');
|
|
169
332
|
const userCredential = await signInWithCustomToken(auth, token);
|
|
333
|
+
debugLog('Token sign-in successful', {
|
|
334
|
+
uid: (_userCredential$user5 = userCredential.user) === null || _userCredential$user5 === void 0 ? void 0 : _userCredential$user5.uid
|
|
335
|
+
});
|
|
170
336
|
return await handleInitialLogin(userCredential, twoFactorRequired);
|
|
171
337
|
} catch (error) {
|
|
338
|
+
debugLog('Error in token sign-in', error);
|
|
172
339
|
return await handleSignInError(error);
|
|
173
340
|
}
|
|
174
341
|
};
|
|
175
342
|
const resetPassword = async (auth, provider, usernameOrEmail) => {
|
|
343
|
+
debugLog('Starting password reset', {
|
|
344
|
+
provider: provider.name,
|
|
345
|
+
email: usernameOrEmail
|
|
346
|
+
});
|
|
176
347
|
await initializeProvider(provider);
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return sendMultiFactorCode(auth, ...args);
|
|
195
|
-
},
|
|
196
|
-
getEnrolledFactors: (...args) => {
|
|
197
|
-
return getEnrolledFactors(auth, ...args);
|
|
198
|
-
},
|
|
199
|
-
logout: async () => {
|
|
200
|
-
await signOut(auth);
|
|
201
|
-
},
|
|
202
|
-
subscribeToUser: callback => {
|
|
203
|
-
return onAuthStateChanged(auth, user => {
|
|
348
|
+
try {
|
|
349
|
+
await sendPasswordResetEmail(auth, usernameOrEmail);
|
|
350
|
+
debugLog('Password reset email sent successfully');
|
|
351
|
+
} catch (error) {
|
|
352
|
+
debugLog('Error sending password reset email', error);
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
export const getFirebaseAuthAdapter = (auth, twoFactorRequired) => {
|
|
357
|
+
debugLog('Creating Firebase Auth Adapter', {
|
|
358
|
+
twoFactorRequired
|
|
359
|
+
});
|
|
360
|
+
return {
|
|
361
|
+
twoFactorRequired,
|
|
362
|
+
getCurrentUser: async () => {
|
|
363
|
+
debugLog('Getting current user');
|
|
364
|
+
const user = auth.currentUser;
|
|
204
365
|
if (!user) {
|
|
205
|
-
|
|
206
|
-
return;
|
|
366
|
+
debugLog('No current user found');
|
|
367
|
+
return null;
|
|
207
368
|
}
|
|
208
|
-
|
|
209
|
-
|
|
369
|
+
debugLog('Current user found', {
|
|
370
|
+
uid: user.uid,
|
|
371
|
+
email: user.email
|
|
210
372
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
373
|
+
return getUserWithRole(user);
|
|
374
|
+
},
|
|
375
|
+
loginWithPassword: getLoginWithPassword(auth, twoFactorRequired),
|
|
376
|
+
loginWithPopup: getLoginWithPopup(auth, twoFactorRequired),
|
|
377
|
+
loginWithToken: getLoginWithToken(auth, twoFactorRequired),
|
|
378
|
+
resetPassword: (...args) => {
|
|
379
|
+
return resetPassword(auth, ...args);
|
|
380
|
+
},
|
|
381
|
+
verifyMultiFactor,
|
|
382
|
+
sendMultiFactorCode: (...args) => {
|
|
383
|
+
return sendMultiFactorCode(auth, ...args);
|
|
384
|
+
},
|
|
385
|
+
getEnrolledFactors: (...args) => {
|
|
386
|
+
return getEnrolledFactors(auth, ...args);
|
|
387
|
+
},
|
|
388
|
+
logout: async () => {
|
|
389
|
+
debugLog('Starting logout');
|
|
390
|
+
try {
|
|
391
|
+
await signOut(auth);
|
|
392
|
+
debugLog('Logout completed successfully');
|
|
393
|
+
} catch (error) {
|
|
394
|
+
debugLog('Error during logout', error);
|
|
395
|
+
throw error;
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
subscribeToUser: callback => {
|
|
399
|
+
debugLog('Setting up user subscription');
|
|
400
|
+
return onAuthStateChanged(auth, user => {
|
|
401
|
+
if (!user) {
|
|
402
|
+
debugLog('User state changed: signed out');
|
|
403
|
+
callback(null);
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
debugLog('User state changed: user signed in', {
|
|
407
|
+
uid: user.uid,
|
|
408
|
+
email: user.email
|
|
409
|
+
});
|
|
410
|
+
getUserWithRole(user).then(result => {
|
|
411
|
+
debugLog('User subscription callback completed', {
|
|
412
|
+
uid: result.uid,
|
|
413
|
+
role: result.role
|
|
414
|
+
});
|
|
415
|
+
callback(result);
|
|
416
|
+
}).catch(error => {
|
|
417
|
+
debugLog('Error in user subscription callback', error);
|
|
418
|
+
callback(null);
|
|
419
|
+
});
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
};
|
|
423
|
+
};
|
|
214
424
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getIdTokenResult","getMultiFactorResolver","GoogleAuthProvider","onAuthStateChanged","PhoneAuthProvider","PhoneMultiFactorGenerator","sendPasswordResetEmail","signInWithCredential","signInWithCustomToken","signInWithEmailAndPassword","signOut","GoogleSignin","providerInitialized","getUserWithRole","user","_user$multiFactor","claims","role","multiFactorVerified","multiFactor","enrolledFactors","length","toEnrollmentFactor","hint","factorId","FACTOR_ID","type","phoneNumber","enrollmentTime","displayName","uid","Error","toFirebaseFactor","factor","sendMultiFactorCode","auth","resolver","sessionId","session","verificationId","verifyPhoneNumberWithMultiFactorInfo","getEnrolledFactors","error","hints","enrollmentFactors","map","multiFactorResolver","verifyMultiFactor","verification","code","credential","assertion","userCredential","resolveSignIn","handleSignInError","requestArgs","initializeProvider","provider","name","webClientId","hasPlayServices","showPlayServicesUpdateDialog","configure","handleInitialLogin","twoFactorRequired","loginWithGoogle","_signInResult$data","signInResult","signIn","idToken","data","googleCredential","getLoginWithPassword","email","password","getLoginWithPopup","getLoginWithToken","token","resetPassword","usernameOrEmail","getFirebaseAuthAdapter","getCurrentUser","currentUser","loginWithPassword","loginWithPopup","loginWithToken","args","logout","subscribeToUser","callback","then","result"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/auth.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getIdTokenResult","getMultiFactorResolver","GoogleAuthProvider","onAuthStateChanged","PhoneAuthProvider","PhoneMultiFactorGenerator","sendPasswordResetEmail","signInWithCredential","signInWithCustomToken","signInWithEmailAndPassword","signOut","GoogleSignin","isDebug","process","_process$env","env","EXPO_PUBLIC_DEBUG","debugLog","message","data","console","log","providerInitialized","getUserWithRole","user","uid","email","_user$multiFactor","_user$multiFactor2","claims","role","customClaims","Object","keys","userWithRole","multiFactorVerified","multiFactor","enrolledFactors","length","enrolledFactorsCount","error","toEnrollmentFactor","hint","factorId","FACTOR_ID","type","phoneNumber","enrollmentTime","displayName","Error","toFirebaseFactor","factor","sendMultiFactorCode","auth","resolver","factorType","factorUid","sessionId","session","verificationId","verifyPhoneNumberWithMultiFactorInfo","substring","getEnrolledFactors","errorCode","code","hintsCount","hints","enrollmentFactors","map","factors","f","multiFactorResolver","verifyMultiFactor","verification","codeLength","_userCredential$user","credential","assertion","userCredential","resolveSignIn","handleSignInError","requestArgs","initializeProvider","provider","name","alreadyInitialized","webClientId","hasPlayServices","showPlayServicesUpdateDialog","configure","includes","handleInitialLogin","twoFactorRequired","_userCredential$user2","_userCredential$user3","loginWithGoogle","_signInResult$data","_signInResult$data2","signInResult","signIn","hasIdToken","idToken","googleCredential","getLoginWithPassword","password","_userCredential$user4","getLoginWithPopup","getLoginWithToken","token","tokenLength","_userCredential$user5","resetPassword","usernameOrEmail","getFirebaseAuthAdapter","getCurrentUser","currentUser","loginWithPassword","loginWithPopup","loginWithToken","args","logout","subscribeToUser","callback","then","result","catch"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/auth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ const GoogleLogin = ({
|
|
|
25
25
|
showError
|
|
26
26
|
} = useToast();
|
|
27
27
|
const handleSignIn = useCallback(() => {
|
|
28
|
-
auth.loginWithPopup(provider).catch(error => {
|
|
28
|
+
return auth.loginWithPopup(provider).catch(error => {
|
|
29
29
|
showError(error instanceof Error ? error.message : 'An unknown error occurred');
|
|
30
30
|
});
|
|
31
31
|
}, [auth, provider, showError]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useBackend","useBorderColor","useToast","LoadingButton","StandaloneInput","Txt","React","useCallback","useState","StyleSheet","View","Divider","SvgGoogle","emailField","_type","type","placeholder","passwordField","GoogleLogin","provider","auth","showError","handleSignIn","loginWithPopup","catch","error","Error","message","createElement","style","styles","row","googleLoginButton","onPress","googleLogin","width","EmailPasswordLogin","email","setEmail","password","setPassword","isLoading","setIsLoading","setError","handleLogin","loginWithPassword","name","column","field","onChange","value","errorText","forgotPassword","textStyle","forgotPasswordButtonText","contentStyle","forgotPasswordButton","console","log","disabled","FirebaseSignIn","googleProvider","borderColor","signInContent","Fragment","backgroundColor","create","container","flex","justifyContent","alignItems","flexDirection","gap","colorModeToggle","paddingVertical","paddingHorizontal","height","borderWidth","fontSize","header","opacity","fontWeight","infoText","textAlign","paddingBottom","logo","resizeMode","link","textDecorationLine","color"],"sourceRoot":"..\\..\\..\\src","sources":["components/FirebaseSignIn.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,UAAU;AAGrC,SAAoBC,cAAc,EAAEC,QAAQ,QAAQ,gBAAgB;AACpE,SAASC,aAAa,EAAEC,eAAe,EAAEC,GAAG,QAAQ,uBAAuB;AAC3E,OAAOC,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,OAAOC,SAAS,MAAM,iBAAiB;AAEvC,MAAMC,UAAqB,GAAG;EAC5BC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,OAAO;EACbC,WAAW,EAAE;AACf,CAAC;AAED,MAAMC,aAAwB,GAAG;EAC/BH,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,UAAU;EAChBC,WAAW,EAAE;AACf,CAAC;AAED,MAAME,WAAW,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EACtE,MAAM;IAAEC;EAAK,CAAC,GAAGpB,UAAU,CAAC,CAAC;EAC7B,MAAM;IAAEqB;EAAU,CAAC,GAAGnB,QAAQ,CAAC,CAAC;EAEhC,MAAMoB,YAAY,GAAGf,WAAW,CAAC,MAAM;
|
|
1
|
+
{"version":3,"names":["useBackend","useBorderColor","useToast","LoadingButton","StandaloneInput","Txt","React","useCallback","useState","StyleSheet","View","Divider","SvgGoogle","emailField","_type","type","placeholder","passwordField","GoogleLogin","provider","auth","showError","handleSignIn","loginWithPopup","catch","error","Error","message","createElement","style","styles","row","googleLoginButton","onPress","googleLogin","width","EmailPasswordLogin","email","setEmail","password","setPassword","isLoading","setIsLoading","setError","handleLogin","loginWithPassword","name","column","field","onChange","value","errorText","forgotPassword","textStyle","forgotPasswordButtonText","contentStyle","forgotPasswordButton","console","log","disabled","FirebaseSignIn","googleProvider","borderColor","signInContent","Fragment","backgroundColor","create","container","flex","justifyContent","alignItems","flexDirection","gap","colorModeToggle","paddingVertical","paddingHorizontal","height","borderWidth","fontSize","header","opacity","fontWeight","infoText","textAlign","paddingBottom","logo","resizeMode","link","textDecorationLine","color"],"sourceRoot":"..\\..\\..\\src","sources":["components/FirebaseSignIn.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,MAAM;AACpB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,MAAM;AACpB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,SAAS;AACvB,cAAc,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates Firebase authentication configuration to help identify common setup issues
|
|
3
|
+
*/
|
|
4
|
+
export const validateAuthConfiguration = providers => {
|
|
5
|
+
var _process$env;
|
|
6
|
+
const errors = [];
|
|
7
|
+
const warnings = [];
|
|
8
|
+
|
|
9
|
+
// Check for Google provider configuration
|
|
10
|
+
const googleProvider = providers.find(p => p.name === 'google');
|
|
11
|
+
if (googleProvider) {
|
|
12
|
+
if (!googleProvider.webClientId) {
|
|
13
|
+
errors.push('Google provider is missing webClientId. ' + 'Get this from Firebase Console > Authentication > Sign-in method > Google > Web SDK configuration');
|
|
14
|
+
} else if (!googleProvider.webClientId.includes('.apps.googleusercontent.com')) {
|
|
15
|
+
warnings.push('Google webClientId format looks incorrect. Expected format: "xxx.apps.googleusercontent.com"');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Check environment
|
|
20
|
+
if (typeof process === 'undefined') {
|
|
21
|
+
warnings.push('Process environment is not available - some features may not work as expected');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Check for Firebase configuration files (platform-specific warnings)
|
|
25
|
+
const isExpo = typeof process !== 'undefined' && ((_process$env = process.env) === null || _process$env === void 0 ? void 0 : _process$env.EXPO_PUBLIC_ENVIRONMENT) !== undefined;
|
|
26
|
+
if (!isExpo) {
|
|
27
|
+
warnings.push('Ensure Firebase configuration files are present:\n' + '- iOS: GoogleService-Info.plist in ios/ directory\n' + '- Android: google-services.json in android/app/ directory');
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
isValid: errors.length === 0,
|
|
31
|
+
errors,
|
|
32
|
+
warnings
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Logs validation results with appropriate console methods
|
|
38
|
+
*/
|
|
39
|
+
export const logValidationResults = (result, packageName = '@chem-po/firebase-native') => {
|
|
40
|
+
if (result.errors.length > 0) {
|
|
41
|
+
console.error(`[${packageName}] Configuration errors found:`);
|
|
42
|
+
result.errors.forEach(error => console.error(` ❌ ${error}`));
|
|
43
|
+
}
|
|
44
|
+
if (result.warnings.length > 0) {
|
|
45
|
+
console.warn(`[${packageName}] Configuration warnings:`);
|
|
46
|
+
result.warnings.forEach(warning => console.warn(` ⚠️ ${warning}`));
|
|
47
|
+
}
|
|
48
|
+
if (result.isValid && result.warnings.length === 0) {
|
|
49
|
+
console.log(`[${packageName}] ✅ Configuration validation passed`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Validates and logs Firebase auth configuration
|
|
55
|
+
* Call this during development to identify setup issues early
|
|
56
|
+
*/
|
|
57
|
+
export const validateAndLogAuthConfig = providers => {
|
|
58
|
+
const result = validateAuthConfiguration(providers);
|
|
59
|
+
logValidationResults(result);
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["validateAuthConfiguration","providers","_process$env","errors","warnings","googleProvider","find","p","name","webClientId","push","includes","process","isExpo","env","EXPO_PUBLIC_ENVIRONMENT","undefined","isValid","length","logValidationResults","result","packageName","console","error","forEach","warn","warning","log","validateAndLogAuthConfig"],"sourceRoot":"..\\..\\..\\src","sources":["utils/validation.ts"],"mappings":"AAQA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAIC,SAA6B,IAAuB;EAAA,IAAAC,YAAA;EAC5F,MAAMC,MAAgB,GAAG,EAAE;EAC3B,MAAMC,QAAkB,GAAG,EAAE;;EAE7B;EACA,MAAMC,cAAc,GAAGJ,SAAS,CAACK,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAmC;EAEjG,IAAIH,cAAc,EAAE;IAClB,IAAI,CAACA,cAAc,CAACI,WAAW,EAAE;MAC/BN,MAAM,CAACO,IAAI,CACT,0CAA0C,GACxC,mGACJ,CAAC;IACH,CAAC,MAAM,IAAI,CAACL,cAAc,CAACI,WAAW,CAACE,QAAQ,CAAC,6BAA6B,CAAC,EAAE;MAC9EP,QAAQ,CAACM,IAAI,CACX,8FACF,CAAC;IACH;EACF;;EAEA;EACA,IAAI,OAAOE,OAAO,KAAK,WAAW,EAAE;IAClCR,QAAQ,CAACM,IAAI,CAAC,+EAA+E,CAAC;EAChG;;EAEA;EACA,MAAMG,MAAM,GACV,OAAOD,OAAO,KAAK,WAAW,IAAI,EAAAV,YAAA,GAAAU,OAAO,CAACE,GAAG,cAAAZ,YAAA,uBAAXA,YAAA,CAAaa,uBAAuB,MAAKC,SAAS;EACtF,IAAI,CAACH,MAAM,EAAE;IACXT,QAAQ,CAACM,IAAI,CACX,oDAAoD,GAClD,qDAAqD,GACrD,2DACJ,CAAC;EACH;EAEA,OAAO;IACLO,OAAO,EAAEd,MAAM,CAACe,MAAM,KAAK,CAAC;IAC5Bf,MAAM;IACNC;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMe,oBAAoB,GAAGA,CAClCC,MAAwB,EACxBC,WAAW,GAAG,0BAA0B,KACrC;EACH,IAAID,MAAM,CAACjB,MAAM,CAACe,MAAM,GAAG,CAAC,EAAE;IAC5BI,OAAO,CAACC,KAAK,CAAC,IAAIF,WAAW,+BAA+B,CAAC;IAC7DD,MAAM,CAACjB,MAAM,CAACqB,OAAO,CAACD,KAAK,IAAID,OAAO,CAACC,KAAK,CAAC,OAAOA,KAAK,EAAE,CAAC,CAAC;EAC/D;EAEA,IAAIH,MAAM,CAAChB,QAAQ,CAACc,MAAM,GAAG,CAAC,EAAE;IAC9BI,OAAO,CAACG,IAAI,CAAC,IAAIJ,WAAW,2BAA2B,CAAC;IACxDD,MAAM,CAAChB,QAAQ,CAACoB,OAAO,CAACE,OAAO,IAAIJ,OAAO,CAACG,IAAI,CAAC,SAASC,OAAO,EAAE,CAAC,CAAC;EACtE;EAEA,IAAIN,MAAM,CAACH,OAAO,IAAIG,MAAM,CAAChB,QAAQ,CAACc,MAAM,KAAK,CAAC,EAAE;IAClDI,OAAO,CAACK,GAAG,CAAC,IAAIN,WAAW,qCAAqC,CAAC;EACnE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMO,wBAAwB,GAAI3B,SAA6B,IAAK;EACzE,MAAMmB,MAAM,GAAGpB,yBAAyB,CAACC,SAAS,CAAC;EACnDkB,oBAAoB,CAACC,MAAM,CAAC;EAC5B,OAAOA,MAAM;AACf,CAAC","ignoreList":[]}
|