@chem-po/firebase-native 0.0.16 → 0.0.17

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 (204) hide show
  1. package/lib/commonjs/adapter/auth.js +221 -0
  2. package/lib/commonjs/adapter/auth.js.map +1 -0
  3. package/lib/commonjs/adapter/db.js +103 -0
  4. package/lib/commonjs/adapter/db.js.map +1 -0
  5. package/lib/commonjs/adapter/index.js +16 -0
  6. package/lib/commonjs/adapter/index.js.map +1 -0
  7. package/lib/commonjs/adapter/storage.js +52 -0
  8. package/lib/commonjs/adapter/storage.js.map +1 -0
  9. package/lib/commonjs/auth/functions.js +11 -0
  10. package/lib/commonjs/auth/functions.js.map +1 -0
  11. package/lib/commonjs/auth/index.js +17 -0
  12. package/lib/commonjs/auth/index.js.map +1 -0
  13. package/lib/commonjs/components/AuthenticatorVerify.js +90 -0
  14. package/lib/commonjs/components/AuthenticatorVerify.js.map +1 -0
  15. package/lib/commonjs/components/FirebaseSignIn.js +196 -0
  16. package/lib/commonjs/components/FirebaseSignIn.js.map +1 -0
  17. package/lib/commonjs/components/PhoneVerify.js +123 -0
  18. package/lib/commonjs/components/PhoneVerify.js.map +1 -0
  19. package/lib/commonjs/components/TwoFactorAuthModal.js +118 -0
  20. package/lib/commonjs/components/TwoFactorAuthModal.js.map +1 -0
  21. package/lib/commonjs/components/index.js +28 -0
  22. package/lib/commonjs/components/index.js.map +1 -0
  23. package/lib/commonjs/contexts/FirebaseContext.js +48 -0
  24. package/lib/commonjs/contexts/FirebaseContext.js.map +1 -0
  25. package/lib/commonjs/contexts/index.js +17 -0
  26. package/lib/commonjs/contexts/index.js.map +1 -0
  27. package/lib/commonjs/db/index.js +17 -0
  28. package/lib/commonjs/db/index.js.map +1 -0
  29. package/lib/commonjs/db/utils.js +120 -0
  30. package/lib/commonjs/db/utils.js.map +1 -0
  31. package/lib/commonjs/hooks/backend.js +12 -0
  32. package/lib/commonjs/hooks/backend.js.map +1 -0
  33. package/lib/commonjs/hooks/index.js +17 -0
  34. package/lib/commonjs/hooks/index.js.map +1 -0
  35. package/lib/commonjs/hooks/useAuthenticatorVerify.js +52 -0
  36. package/lib/commonjs/hooks/useAuthenticatorVerify.js.map +1 -0
  37. package/lib/commonjs/hooks/usePhoneVerify.js +83 -0
  38. package/lib/commonjs/hooks/usePhoneVerify.js.map +1 -0
  39. package/lib/commonjs/icons/Google.js +29 -0
  40. package/lib/commonjs/icons/Google.js.map +1 -0
  41. package/lib/commonjs/index.js +94 -0
  42. package/lib/commonjs/index.js.map +1 -0
  43. package/lib/commonjs/storage/index.js +17 -0
  44. package/lib/commonjs/storage/index.js.map +1 -0
  45. package/lib/commonjs/storage/utils.js +37 -0
  46. package/lib/commonjs/storage/utils.js.map +1 -0
  47. package/lib/commonjs/types/adapter.js +6 -0
  48. package/lib/commonjs/types/adapter.js.map +1 -0
  49. package/lib/commonjs/types/auth.js +6 -0
  50. package/lib/commonjs/types/auth.js.map +1 -0
  51. package/lib/commonjs/types/db.js +6 -0
  52. package/lib/commonjs/types/db.js.map +1 -0
  53. package/lib/commonjs/types/functions.js +6 -0
  54. package/lib/commonjs/types/functions.js.map +1 -0
  55. package/lib/commonjs/types/index.js +6 -0
  56. package/lib/commonjs/types/index.js.map +1 -0
  57. package/lib/commonjs/types/storage.js +6 -0
  58. package/lib/commonjs/types/storage.js.map +1 -0
  59. package/lib/module/adapter/auth.js +214 -0
  60. package/lib/module/adapter/auth.js.map +1 -0
  61. package/lib/module/adapter/db.js +96 -0
  62. package/lib/module/adapter/db.js.map +1 -0
  63. package/lib/module/adapter/index.js +9 -0
  64. package/lib/module/adapter/index.js.map +1 -0
  65. package/lib/module/adapter/storage.js +45 -0
  66. package/lib/module/adapter/storage.js.map +1 -0
  67. package/lib/module/auth/functions.js +3 -0
  68. package/lib/module/auth/functions.js.map +1 -0
  69. package/lib/module/auth/index.js +2 -0
  70. package/lib/module/auth/index.js.map +1 -0
  71. package/lib/module/components/AuthenticatorVerify.js +82 -0
  72. package/lib/module/components/AuthenticatorVerify.js.map +1 -0
  73. package/lib/module/components/FirebaseSignIn.js +187 -0
  74. package/lib/module/components/FirebaseSignIn.js.map +1 -0
  75. package/lib/module/components/PhoneVerify.js +116 -0
  76. package/lib/module/components/PhoneVerify.js.map +1 -0
  77. package/lib/module/components/TwoFactorAuthModal.js +110 -0
  78. package/lib/module/components/TwoFactorAuthModal.js.map +1 -0
  79. package/lib/module/components/index.js +3 -0
  80. package/lib/module/components/index.js.map +1 -0
  81. package/lib/module/contexts/FirebaseContext.js +39 -0
  82. package/lib/module/contexts/FirebaseContext.js.map +1 -0
  83. package/lib/module/contexts/index.js +2 -0
  84. package/lib/module/contexts/index.js.map +1 -0
  85. package/lib/module/db/index.js +2 -0
  86. package/lib/module/db/index.js.map +1 -0
  87. package/lib/module/db/utils.js +111 -0
  88. package/lib/module/db/utils.js.map +1 -0
  89. package/lib/module/hooks/backend.js +5 -0
  90. package/lib/module/hooks/backend.js.map +1 -0
  91. package/lib/module/hooks/index.js +2 -0
  92. package/lib/module/hooks/index.js.map +1 -0
  93. package/lib/module/hooks/useAuthenticatorVerify.js +45 -0
  94. package/lib/module/hooks/useAuthenticatorVerify.js.map +1 -0
  95. package/lib/module/hooks/usePhoneVerify.js +76 -0
  96. package/lib/module/hooks/usePhoneVerify.js.map +1 -0
  97. package/lib/module/icons/Google.js +22 -0
  98. package/lib/module/icons/Google.js.map +1 -0
  99. package/lib/module/index.js +9 -0
  100. package/lib/module/index.js.map +1 -0
  101. package/lib/module/storage/index.js +2 -0
  102. package/lib/module/storage/index.js.map +1 -0
  103. package/lib/module/storage/utils.js +30 -0
  104. package/lib/module/storage/utils.js.map +1 -0
  105. package/lib/module/types/adapter.js +2 -0
  106. package/lib/module/types/adapter.js.map +1 -0
  107. package/lib/module/types/auth.js +2 -0
  108. package/lib/module/types/auth.js.map +1 -0
  109. package/lib/module/types/db.js +2 -0
  110. package/lib/module/types/db.js.map +1 -0
  111. package/lib/module/types/functions.js +2 -0
  112. package/lib/module/types/functions.js.map +1 -0
  113. package/lib/module/types/index.js +2 -0
  114. package/lib/module/types/index.js.map +1 -0
  115. package/lib/module/types/storage.js +2 -0
  116. package/lib/module/types/storage.js.map +1 -0
  117. package/lib/typescript/adapter/auth.d.ts +7 -0
  118. package/lib/typescript/adapter/auth.d.ts.map +1 -0
  119. package/lib/typescript/adapter/db.d.ts +5 -0
  120. package/lib/typescript/adapter/db.d.ts.map +1 -0
  121. package/lib/typescript/adapter/index.d.ts +9 -0
  122. package/lib/typescript/adapter/index.d.ts.map +1 -0
  123. package/lib/typescript/adapter/storage.d.ts +4 -0
  124. package/lib/typescript/adapter/storage.d.ts.map +1 -0
  125. package/lib/typescript/auth/functions.d.ts +4 -0
  126. package/lib/typescript/auth/functions.d.ts.map +1 -0
  127. package/lib/typescript/auth/index.d.ts +2 -0
  128. package/lib/typescript/auth/index.d.ts.map +1 -0
  129. package/lib/typescript/components/AuthenticatorVerify.d.ts +3 -0
  130. package/lib/typescript/components/AuthenticatorVerify.d.ts.map +1 -0
  131. package/lib/typescript/components/FirebaseSignIn.d.ts +6 -0
  132. package/lib/typescript/components/FirebaseSignIn.d.ts.map +1 -0
  133. package/lib/typescript/components/PhoneVerify.d.ts +6 -0
  134. package/lib/typescript/components/PhoneVerify.d.ts.map +1 -0
  135. package/lib/typescript/components/TwoFactorAuthModal.d.ts +3 -0
  136. package/lib/typescript/components/TwoFactorAuthModal.d.ts.map +1 -0
  137. package/lib/typescript/components/index.d.ts +3 -0
  138. package/lib/typescript/components/index.d.ts.map +1 -0
  139. package/lib/typescript/contexts/FirebaseContext.d.ts +9 -0
  140. package/lib/typescript/contexts/FirebaseContext.d.ts.map +1 -0
  141. package/lib/typescript/contexts/index.d.ts +2 -0
  142. package/lib/typescript/contexts/index.d.ts.map +1 -0
  143. package/lib/typescript/db/index.d.ts +2 -0
  144. package/lib/typescript/db/index.d.ts.map +1 -0
  145. package/lib/typescript/db/utils.d.ts +6 -0
  146. package/lib/typescript/db/utils.d.ts.map +1 -0
  147. package/lib/typescript/hooks/backend.d.ts +2 -0
  148. package/lib/typescript/hooks/backend.d.ts.map +1 -0
  149. package/lib/typescript/hooks/index.d.ts +2 -0
  150. package/lib/typescript/hooks/index.d.ts.map +1 -0
  151. package/lib/typescript/hooks/useAuthenticatorVerify.d.ts +8 -0
  152. package/lib/typescript/hooks/useAuthenticatorVerify.d.ts.map +1 -0
  153. package/lib/typescript/hooks/usePhoneVerify.d.ts +9 -0
  154. package/lib/typescript/hooks/usePhoneVerify.d.ts.map +1 -0
  155. package/lib/typescript/icons/Google.d.ts +5 -0
  156. package/lib/typescript/icons/Google.d.ts.map +1 -0
  157. package/lib/typescript/index.d.ts +9 -0
  158. package/lib/typescript/index.d.ts.map +1 -0
  159. package/lib/typescript/storage/index.d.ts +2 -0
  160. package/lib/typescript/storage/index.d.ts.map +1 -0
  161. package/lib/typescript/storage/utils.d.ts +4 -0
  162. package/lib/typescript/storage/utils.d.ts.map +1 -0
  163. package/lib/typescript/types/adapter.d.ts +6 -0
  164. package/lib/typescript/types/adapter.d.ts.map +1 -0
  165. package/lib/typescript/types/auth.d.ts +12 -0
  166. package/lib/typescript/types/auth.d.ts.map +1 -0
  167. package/lib/typescript/types/db.d.ts +8 -0
  168. package/lib/typescript/types/db.d.ts.map +1 -0
  169. package/lib/typescript/types/functions.d.ts +3 -0
  170. package/lib/typescript/types/functions.d.ts.map +1 -0
  171. package/lib/typescript/types/index.d.ts +24 -0
  172. package/lib/typescript/types/index.d.ts.map +1 -0
  173. package/lib/typescript/types/storage.d.ts +3 -0
  174. package/lib/typescript/types/storage.d.ts.map +1 -0
  175. package/package.json +29 -12
  176. package/src/adapter/auth.ts +281 -0
  177. package/src/adapter/db.ts +146 -0
  178. package/src/adapter/index.ts +30 -0
  179. package/src/adapter/storage.ts +58 -0
  180. package/src/auth/functions.ts +7 -0
  181. package/src/auth/index.ts +1 -0
  182. package/src/components/AuthenticatorVerify.tsx +75 -0
  183. package/src/components/FirebaseSignIn.tsx +187 -0
  184. package/src/components/PhoneVerify.tsx +102 -0
  185. package/src/components/TwoFactorAuthModal.tsx +133 -0
  186. package/src/components/index.ts +2 -0
  187. package/src/contexts/FirebaseContext.tsx +54 -0
  188. package/src/contexts/index.ts +1 -0
  189. package/src/db/index.ts +1 -0
  190. package/src/db/utils.ts +142 -0
  191. package/src/hooks/backend.ts +4 -0
  192. package/src/hooks/index.ts +1 -0
  193. package/src/hooks/useAuthenticatorVerify.ts +45 -0
  194. package/src/hooks/usePhoneVerify.ts +76 -0
  195. package/src/icons/Google.tsx +24 -0
  196. package/src/index.ts +8 -0
  197. package/src/storage/index.ts +1 -0
  198. package/src/storage/utils.ts +29 -0
  199. package/src/types/adapter.ts +13 -0
  200. package/src/types/auth.ts +13 -0
  201. package/src/types/db.ts +10 -0
  202. package/src/types/functions.ts +3 -0
  203. package/src/types/index.ts +26 -0
  204. package/src/types/storage.ts +3 -0
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirebaseAuthAdapter = void 0;
7
+ var _auth = require("@react-native-firebase/auth");
8
+ var _googleSignin = require("@react-native-google-signin/google-signin");
9
+ const providerInitialized = {};
10
+ const getUserWithRole = async user => {
11
+ var _user$multiFactor;
12
+ const {
13
+ claims
14
+ } = await (0, _auth.getIdTokenResult)(user);
15
+ return {
16
+ ...user,
17
+ role: claims.role ?? 'user',
18
+ multiFactorVerified: !!((_user$multiFactor = user.multiFactor) !== null && _user$multiFactor !== void 0 && _user$multiFactor.enrolledFactors.length)
19
+ };
20
+ };
21
+ const toEnrollmentFactor = hint => {
22
+ if (hint.factorId === _auth.PhoneMultiFactorGenerator.FACTOR_ID) {
23
+ return {
24
+ type: 'phone',
25
+ phoneNumber: hint.phoneNumber,
26
+ enrollmentTime: hint.enrollmentTime,
27
+ displayName: hint.displayName,
28
+ uid: hint.uid
29
+ };
30
+ }
31
+ if (hint.factorId === 'totp') {
32
+ return {
33
+ type: 'totp',
34
+ enrollmentTime: hint.enrollmentTime,
35
+ displayName: hint.displayName,
36
+ uid: hint.uid
37
+ };
38
+ }
39
+ throw new Error('Unsupported factor type: ' + hint.factorId);
40
+ };
41
+ const toFirebaseFactor = factor => {
42
+ if (factor.type === 'phone') {
43
+ return {
44
+ factorId: _auth.PhoneMultiFactorGenerator.FACTOR_ID,
45
+ phoneNumber: factor.phoneNumber,
46
+ enrollmentTime: factor.enrollmentTime,
47
+ uid: factor.uid,
48
+ displayName: factor.displayName
49
+ };
50
+ }
51
+ if (factor.type === 'totp') {
52
+ return {
53
+ factorId: 'totp',
54
+ enrollmentTime: factor.enrollmentTime,
55
+ uid: factor.uid,
56
+ displayName: factor.displayName
57
+ };
58
+ }
59
+ throw new Error(`Unsupported factor type: ${factor.factorId ?? 'Missing factor type'}`);
60
+ };
61
+ const sendMultiFactorCode = async (auth, factor, resolver) => {
62
+ const sessionId = resolver.session;
63
+ // const verificationId = await new PhoneAuthProvider(auth).verifyPhoneNumber(phoneSignInFactor, sessionId)
64
+ if (factor.type === 'phone') {
65
+ const verificationId = await auth.verifyPhoneNumberWithMultiFactorInfo(toFirebaseFactor(factor), sessionId);
66
+ return {
67
+ verificationId,
68
+ factor,
69
+ resolver
70
+ };
71
+ }
72
+ throw new Error(`Unsupported factor type: ${factor.type ?? 'Missing factor type'}`);
73
+ };
74
+ const getEnrolledFactors = async (auth, error) => {
75
+ const resolver = (0, _auth.getMultiFactorResolver)(auth, error);
76
+ if (resolver.hints.length === 0) {
77
+ throw new Error('No multi-factor verification methods found, please enroll one on the website');
78
+ }
79
+ return {
80
+ enrollmentFactors: resolver.hints.map(toEnrollmentFactor),
81
+ multiFactorResolver: resolver
82
+ };
83
+ };
84
+ const verifyMultiFactor = async (verification, code) => {
85
+ const credential = await _auth.PhoneAuthProvider.credential(verification.verificationId, code);
86
+ const assertion = _auth.PhoneMultiFactorGenerator.assertion(credential);
87
+ const resolver = verification.resolver;
88
+ if (!resolver) throw new Error('Internal error signing in with two factor: resolver not found');
89
+ const userCredential = await resolver.resolveSignIn(assertion);
90
+ const user = userCredential.user;
91
+ if (!user) throw new Error('No user found');
92
+ return {
93
+ user: await getUserWithRole(user)
94
+ };
95
+ };
96
+ const handleSignInError = async error => {
97
+ if (error.code === 'auth/multi-factor-auth-required') {
98
+ return {
99
+ requestArgs: error
100
+ };
101
+ }
102
+ throw error;
103
+ };
104
+ const initializeProvider = async provider => {
105
+ if (providerInitialized[provider.name]) return;
106
+ switch (provider.name) {
107
+ case 'google':
108
+ if (!provider.webClientId) {
109
+ throw new Error('Google web client ID is required when using Google Auth. Refer to react native firebase docs for more information.');
110
+ }
111
+ await _googleSignin.GoogleSignin.hasPlayServices({
112
+ showPlayServicesUpdateDialog: true
113
+ });
114
+ _googleSignin.GoogleSignin.configure({
115
+ webClientId: provider.webClientId
116
+ });
117
+ break;
118
+ case 'email':
119
+ // Native SDK doesn't need special initialization
120
+ break;
121
+ default:
122
+ throw new Error(`Unsupported provider: ${provider.name}`);
123
+ }
124
+ providerInitialized[provider.name] = true;
125
+ };
126
+ const handleInitialLogin = async (userCredential, twoFactorRequired) => {
127
+ const user = userCredential.user;
128
+ if (!user) throw new Error('No user found');
129
+ if (twoFactorRequired) {
130
+ throw new Error('This app requires two factor authentication, please enroll a factor on the website and try again');
131
+ }
132
+ return {
133
+ user: await getUserWithRole(user)
134
+ };
135
+ };
136
+ const loginWithGoogle = async (auth, twoFactorRequired) => {
137
+ try {
138
+ var _signInResult$data;
139
+ const signInResult = await _googleSignin.GoogleSignin.signIn();
140
+ const idToken = (_signInResult$data = signInResult.data) === null || _signInResult$data === void 0 ? void 0 : _signInResult$data.idToken;
141
+ if (!idToken) {
142
+ throw new Error('No ID token found');
143
+ }
144
+ const googleCredential = _auth.GoogleAuthProvider.credential(idToken);
145
+ const userCredential = await (0, _auth.signInWithCredential)(auth, googleCredential);
146
+ return await handleInitialLogin(userCredential, twoFactorRequired);
147
+ } catch (error) {
148
+ return await handleSignInError(error);
149
+ }
150
+ };
151
+ const getLoginWithPassword = (auth, twoFactorRequired) => async (provider, {
152
+ email,
153
+ password
154
+ }) => {
155
+ await initializeProvider(provider);
156
+ try {
157
+ const userCredential = await (0, _auth.signInWithEmailAndPassword)(auth, email, password);
158
+ return await handleInitialLogin(userCredential, twoFactorRequired);
159
+ } catch (error) {
160
+ return await handleSignInError(error);
161
+ }
162
+ };
163
+ const getLoginWithPopup = (auth, twoFactorRequired) => async provider => {
164
+ await initializeProvider(provider);
165
+ switch (provider.name) {
166
+ case 'google':
167
+ return loginWithGoogle(auth, twoFactorRequired);
168
+ default:
169
+ throw new Error(`Unsupported provider: ${provider.name}`);
170
+ }
171
+ };
172
+ const getLoginWithToken = (auth, twoFactorRequired) => async (provider, token) => {
173
+ await initializeProvider(provider);
174
+ try {
175
+ const userCredential = await (0, _auth.signInWithCustomToken)(auth, token);
176
+ return await handleInitialLogin(userCredential, twoFactorRequired);
177
+ } catch (error) {
178
+ return await handleSignInError(error);
179
+ }
180
+ };
181
+ const resetPassword = async (auth, provider, usernameOrEmail) => {
182
+ await initializeProvider(provider);
183
+ await (0, _auth.sendPasswordResetEmail)(auth, usernameOrEmail);
184
+ };
185
+ const getFirebaseAuthAdapter = (auth, twoFactorRequired) => ({
186
+ twoFactorRequired,
187
+ getCurrentUser: async () => {
188
+ const user = auth.currentUser;
189
+ if (!user) return null;
190
+ return getUserWithRole(user);
191
+ },
192
+ loginWithPassword: getLoginWithPassword(auth, twoFactorRequired),
193
+ loginWithPopup: getLoginWithPopup(auth, twoFactorRequired),
194
+ loginWithToken: getLoginWithToken(auth, twoFactorRequired),
195
+ resetPassword: (...args) => {
196
+ return resetPassword(auth, ...args);
197
+ },
198
+ verifyMultiFactor,
199
+ sendMultiFactorCode: (...args) => {
200
+ return sendMultiFactorCode(auth, ...args);
201
+ },
202
+ getEnrolledFactors: (...args) => {
203
+ return getEnrolledFactors(auth, ...args);
204
+ },
205
+ logout: async () => {
206
+ await (0, _auth.signOut)(auth);
207
+ },
208
+ subscribeToUser: callback => {
209
+ return (0, _auth.onAuthStateChanged)(auth, user => {
210
+ if (!user) {
211
+ callback(null);
212
+ return;
213
+ }
214
+ getUserWithRole(user).then(result => {
215
+ callback(result);
216
+ });
217
+ });
218
+ }
219
+ });
220
+ exports.getFirebaseAuthAdapter = getFirebaseAuthAdapter;
221
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_auth","require","_googleSignin","providerInitialized","getUserWithRole","user","_user$multiFactor","claims","getIdTokenResult","role","multiFactorVerified","multiFactor","enrolledFactors","length","toEnrollmentFactor","hint","factorId","PhoneMultiFactorGenerator","FACTOR_ID","type","phoneNumber","enrollmentTime","displayName","uid","Error","toFirebaseFactor","factor","sendMultiFactorCode","auth","resolver","sessionId","session","verificationId","verifyPhoneNumberWithMultiFactorInfo","getEnrolledFactors","error","getMultiFactorResolver","hints","enrollmentFactors","map","multiFactorResolver","verifyMultiFactor","verification","code","credential","PhoneAuthProvider","assertion","userCredential","resolveSignIn","handleSignInError","requestArgs","initializeProvider","provider","name","webClientId","GoogleSignin","hasPlayServices","showPlayServicesUpdateDialog","configure","handleInitialLogin","twoFactorRequired","loginWithGoogle","_signInResult$data","signInResult","signIn","idToken","data","googleCredential","GoogleAuthProvider","signInWithCredential","getLoginWithPassword","email","password","signInWithEmailAndPassword","getLoginWithPopup","getLoginWithToken","token","signInWithCustomToken","resetPassword","usernameOrEmail","sendPasswordResetEmail","getFirebaseAuthAdapter","getCurrentUser","currentUser","loginWithPassword","loginWithPopup","loginWithToken","args","logout","signOut","subscribeToUser","callback","onAuthStateChanged","then","result","exports"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/auth.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirebaseDatabaseAdapter = void 0;
7
+ var _core = require("@chem-po/core");
8
+ var _react = require("@chem-po/react");
9
+ var _firestore = require("@react-native-firebase/firestore");
10
+ var _functions = require("@react-native-firebase/functions");
11
+ var _utils = require("../db/utils");
12
+ // import { BaseQuery, FirestoreCursor } from '../types/db'
13
+
14
+ const handleFirestoreError = error => ({
15
+ code: (error === null || error === void 0 ? void 0 : error.code) ?? 'unknown',
16
+ message: (error === null || error === void 0 ? void 0 : error.name) ?? 'Unknown Error',
17
+ description: (error === null || error === void 0 ? void 0 : error.message) ?? 'An unknown error occurred'
18
+ });
19
+ const toDBItem = doc => ({
20
+ ...doc.data(),
21
+ id: doc.id
22
+ });
23
+ const getSubscribeToQuery = db => (baseQuery, onData, onError) => {
24
+ const q = (0, _utils.toFirestoreQuery)(db, baseQuery);
25
+ return (0, _firestore.onSnapshot)(q, snapshot => {
26
+ const items = snapshot.docs.map(doc => toDBItem(doc));
27
+ onData(items, snapshot.docs[snapshot.docs.length - 1]);
28
+ }, error => onError(handleFirestoreError(error)));
29
+ };
30
+ const getFetchNextCursor = db => async baseQuery => {
31
+ const {
32
+ cursor
33
+ } = baseQuery;
34
+ const cursorDoc = cursor ? await (0, _firestore.getDoc)((0, _firestore.doc)(db, baseQuery.collection, cursor.id)) : null;
35
+ const q = (0, _utils.toCursorQuery)(db, baseQuery, cursorDoc);
36
+ const snapshot = await (0, _firestore.getDocs)(q);
37
+ return snapshot.docs[0] ?? null;
38
+ };
39
+ const getFetchCount = functions => async baseQuery => {
40
+ const fetchCountFunc = (0, _functions.httpsCallable)(functions, 'getQueryCount');
41
+ const {
42
+ data
43
+ } = await fetchCountFunc(baseQuery);
44
+ return data.count;
45
+ };
46
+ const getFetchItem = db => async path => {
47
+ const docRef = (0, _firestore.doc)(db, path);
48
+ const docSnap = await (0, _firestore.getDoc)(docRef);
49
+ const data = docSnap.data();
50
+ return data ? {
51
+ ...data,
52
+ id: docSnap.id
53
+ } : null;
54
+ };
55
+ const getFetchItems = db => async baseQuery => {
56
+ const q = (0, _utils.toFirestoreQuery)(db, baseQuery);
57
+ const snapshot = await (0, _firestore.getDocs)(q);
58
+ return snapshot.docs.map(doc => ({
59
+ ...doc.data(),
60
+ id: doc.id
61
+ }));
62
+ };
63
+ const getCreateItem = db => async (path, item) => {
64
+ const docRef = (0, _firestore.doc)(db, path);
65
+ const data = (0, _core.addMetadata)(_react.useAuth.getState().user, item, true);
66
+ await (0, _firestore.setDoc)(docRef, data, {
67
+ merge: true
68
+ });
69
+ return docRef.id;
70
+ };
71
+ const getDeleteItem = db => async path => {
72
+ const docRef = (0, _firestore.doc)(db, path);
73
+ await (0, _firestore.deleteDoc)(docRef);
74
+ };
75
+ const getUpdateItem = db => async (path, item) => {
76
+ const docRef = (0, _firestore.doc)(db, path);
77
+ await (0, _firestore.setDoc)(docRef, item, {
78
+ merge: true
79
+ });
80
+ };
81
+ const getSubscribeToItem = db => (path, onData, onError) => {
82
+ const docRef = (0, _firestore.doc)(db, path);
83
+ return (0, _firestore.onSnapshot)(docRef, snapshot => {
84
+ const data = snapshot.data();
85
+ onData(data ? {
86
+ ...data,
87
+ id: snapshot.id
88
+ } : null);
89
+ }, error => onError(handleFirestoreError(error)));
90
+ };
91
+ const getFirebaseDatabaseAdapter = (db, functions) => ({
92
+ fetchNextCursor: getFetchNextCursor(db),
93
+ fetchCount: getFetchCount(functions),
94
+ fetchItem: getFetchItem(db),
95
+ fetchItems: getFetchItems(db),
96
+ createItem: getCreateItem(db),
97
+ deleteItem: getDeleteItem(db),
98
+ updateItem: getUpdateItem(db),
99
+ subscribeToItem: getSubscribeToItem(db),
100
+ subscribeToQuery: getSubscribeToQuery(db)
101
+ });
102
+ exports.getFirebaseDatabaseAdapter = getFirebaseDatabaseAdapter;
103
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_core","require","_react","_firestore","_functions","_utils","handleFirestoreError","error","code","message","name","description","toDBItem","doc","data","id","getSubscribeToQuery","db","baseQuery","onData","onError","q","toFirestoreQuery","onSnapshot","snapshot","items","docs","map","length","getFetchNextCursor","cursor","cursorDoc","getDoc","collection","toCursorQuery","getDocs","getFetchCount","functions","fetchCountFunc","httpsCallable","count","getFetchItem","path","docRef","docSnap","getFetchItems","getCreateItem","item","addMetadata","useAuth","getState","user","setDoc","merge","getDeleteItem","deleteDoc","getUpdateItem","getSubscribeToItem","getFirebaseDatabaseAdapter","fetchNextCursor","fetchCount","fetchItem","fetchItems","createItem","deleteItem","updateItem","subscribeToItem","subscribeToQuery","exports"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/db.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirebaseAdapter = void 0;
7
+ var _auth = require("./auth");
8
+ var _db = require("./db");
9
+ var _storage = require("./storage");
10
+ const getFirebaseAdapter = (auth, db, storage, functions, twoFactorRequired) => ({
11
+ auth: (0, _auth.getFirebaseAuthAdapter)(auth, twoFactorRequired),
12
+ db: (0, _db.getFirebaseDatabaseAdapter)(db, functions),
13
+ storage: (0, _storage.getFirebaseStorageAdapter)(storage)
14
+ });
15
+ exports.getFirebaseAdapter = getFirebaseAdapter;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_auth","require","_db","_storage","getFirebaseAdapter","auth","db","storage","functions","twoFactorRequired","getFirebaseAuthAdapter","getFirebaseDatabaseAdapter","getFirebaseStorageAdapter","exports"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/index.ts"],"mappings":";;;;;;AAMA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAWO,MAAMG,kBAAkB,GAAGA,CAChCC,IAAU,EACVC,EAAa,EACbC,OAAgB,EAChBC,SAAoB,EACpBC,iBAA0B,MACS;EACnCJ,IAAI,EAAE,IAAAK,4BAAsB,EAACL,IAAI,EAAEI,iBAAiB,CAAC;EACrDH,EAAE,EAAE,IAAAK,8BAA0B,EAACL,EAAE,EAAEE,SAAS,CAAC;EAC7CD,OAAO,EAAE,IAAAK,kCAAyB,EAACL,OAAO;AAC5C,CAAC,CAAC;AAAAM,OAAA,CAAAT,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFirebaseStorageAdapter = void 0;
7
+ var _storage = require("@react-native-firebase/storage");
8
+ const getFirebaseStorageAdapter = storage => ({
9
+ delete: async path => {
10
+ const storageRef = (0, _storage.ref)(storage, path);
11
+ await (0, _storage.deleteObject)(storageRef);
12
+ },
13
+ fetchObject: async path => {
14
+ const storageRef = (0, _storage.ref)(storage, path);
15
+ const url = await (0, _storage.getDownloadURL)(storageRef);
16
+ const response = await fetch(url);
17
+ return await response.blob();
18
+ },
19
+ fetchMetadata: async path => {
20
+ const storageRef = (0, _storage.ref)(storage, path);
21
+ return await (0, _storage.getMetadata)(storageRef);
22
+ },
23
+ getObjectUrl: async path => {
24
+ const storageRef = (0, _storage.ref)(storage, path);
25
+ return await (0, _storage.getDownloadURL)(storageRef);
26
+ },
27
+ upload: async (path, data, onUploadProgress) => {
28
+ const storageRef = (0, _storage.ref)(storage, path);
29
+ // Convert dataUrl to Blob
30
+ const blob = await fetch(data.dataUrl).then(res => res.blob());
31
+ const uploadTask = (0, _storage.uploadBytesResumable)(storageRef, blob);
32
+ return new Promise((resolve, reject) => {
33
+ uploadTask.on('state_changed', snapshot => {
34
+ const progress = snapshot.bytesTransferred / snapshot.totalBytes * 100;
35
+ onUploadProgress({
36
+ loaded: snapshot.bytesTransferred,
37
+ total: snapshot.totalBytes,
38
+ percent: progress
39
+ });
40
+ }, error => reject(error), () => {
41
+ const fileValue = {
42
+ filename: data.filename,
43
+ type: data.type,
44
+ storagePath: path
45
+ };
46
+ resolve(fileValue);
47
+ });
48
+ });
49
+ }
50
+ });
51
+ exports.getFirebaseStorageAdapter = getFirebaseStorageAdapter;
52
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_storage","require","getFirebaseStorageAdapter","storage","delete","path","storageRef","ref","deleteObject","fetchObject","url","getDownloadURL","response","fetch","blob","fetchMetadata","getMetadata","getObjectUrl","upload","data","onUploadProgress","dataUrl","then","res","uploadTask","uploadBytesResumable","Promise","resolve","reject","on","snapshot","progress","bytesTransferred","totalBytes","loaded","total","percent","error","fileValue","filename","type","storagePath","exports"],"sourceRoot":"..\\..\\..\\src","sources":["adapter/storage.ts"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AASO,MAAMC,yBAAyB,GAAIC,OAAgB,KAAiC;EACzFC,MAAM,EAAE,MAAMC,IAAI,IAAI;IACpB,MAAMC,UAAU,GAAG,IAAAC,YAAG,EAACJ,OAAO,EAAEE,IAAI,CAAC;IACrC,MAAM,IAAAG,qBAAY,EAACF,UAAU,CAAC;EAChC,CAAC;EACDG,WAAW,EAAE,MAAMJ,IAAI,IAAI;IACzB,MAAMC,UAAU,GAAG,IAAAC,YAAG,EAACJ,OAAO,EAAEE,IAAI,CAAC;IACrC,MAAMK,GAAG,GAAG,MAAM,IAAAC,uBAAc,EAACL,UAAU,CAAC;IAC5C,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACH,GAAG,CAAC;IACjC,OAAO,MAAME,QAAQ,CAACE,IAAI,CAAC,CAAC;EAC9B,CAAC;EACDC,aAAa,EAAE,MAAMV,IAAI,IAAI;IAC3B,MAAMC,UAAU,GAAG,IAAAC,YAAG,EAACJ,OAAO,EAAEE,IAAI,CAAC;IACrC,OAAO,MAAM,IAAAW,oBAAW,EAACV,UAAU,CAAC;EACtC,CAAC;EACDW,YAAY,EAAE,MAAMZ,IAAI,IAAI;IAC1B,MAAMC,UAAU,GAAG,IAAAC,YAAG,EAACJ,OAAO,EAAEE,IAAI,CAAC;IACrC,OAAO,MAAM,IAAAM,uBAAc,EAACL,UAAU,CAAC;EACzC,CAAC;EACDY,MAAM,EAAE,MAAAA,CAAOb,IAAI,EAAEc,IAAI,EAAEC,gBAAgB,KAAK;IAC9C,MAAMd,UAAU,GAAG,IAAAC,YAAG,EAACJ,OAAO,EAAEE,IAAI,CAAC;IACrC;IACA,MAAMS,IAAI,GAAG,MAAMD,KAAK,CAACM,IAAI,CAACE,OAAO,CAAC,CAACC,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAMU,UAAU,GAAG,IAAAC,6BAAoB,EAACnB,UAAU,EAAEQ,IAAI,CAAC;IACzD,OAAO,IAAIY,OAAO,CAAoB,CAACC,OAAO,EAAEC,MAAM,KAAK;MACzDJ,UAAU,CAACK,EAAE,CACX,eAAe,EACfC,QAAQ,IAAI;QACV,MAAMC,QAAQ,GAAID,QAAQ,CAACE,gBAAgB,GAAGF,QAAQ,CAACG,UAAU,GAAI,GAAG;QACxEb,gBAAgB,CAAC;UACfc,MAAM,EAAEJ,QAAQ,CAACE,gBAAgB;UACjCG,KAAK,EAAEL,QAAQ,CAACG,UAAU;UAC1BG,OAAO,EAAEL;QACX,CAAC,CAAC;MACJ,CAAC,EACDM,KAAK,IAAIT,MAAM,CAACS,KAAK,CAAC,EACtB,MAAM;QACJ,MAAMC,SAA4B,GAAG;UACnCC,QAAQ,EAAEpB,IAAI,CAACoB,QAAQ;UACvBC,IAAI,EAAErB,IAAI,CAACqB,IAAI;UACfC,WAAW,EAAEpC;QACf,CAAC;QACDsB,OAAO,CAACW,SAAS,CAAC;MACpB,CACF,CAAC;IACH,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAAI,OAAA,CAAAxC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getThirdPartyAuthUrl = exports.getThirdPartyAuthToken = void 0;
7
+ const getThirdPartyAuthUrl = functions => functions.httpsCallable('getThirdPartyAuthUrl');
8
+ exports.getThirdPartyAuthUrl = getThirdPartyAuthUrl;
9
+ const getThirdPartyAuthToken = functions => functions.httpsCallable('getThirdPartyAuthToken');
10
+ exports.getThirdPartyAuthToken = getThirdPartyAuthToken;
11
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getThirdPartyAuthUrl","functions","httpsCallable","exports","getThirdPartyAuthToken"],"sourceRoot":"..\\..\\..\\src","sources":["auth/functions.ts"],"mappings":";;;;;;AAEO,MAAMA,oBAAoB,GAAIC,SAAwC,IAC3EA,SAAS,CAACC,aAAa,CAAC,sBAAsB,CAAC;AAAAC,OAAA,CAAAH,oBAAA,GAAAA,oBAAA;AAE1C,MAAMI,sBAAsB,GAAIH,SAAwC,IAC7EA,SAAS,CAACC,aAAa,CAAC,wBAAwB,CAAC;AAAAC,OAAA,CAAAC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _functions = require("./functions");
7
+ Object.keys(_functions).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _functions[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _functions[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_functions","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"..\\..\\..\\src","sources":["auth/index.ts"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AuthenticatorVerify = void 0;
7
+ var _reactNative = require("@chem-po/react-native");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactNative2 = require("react-native");
10
+ var _useAuthenticatorVerify = require("../hooks/useAuthenticatorVerify");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const AuthenticatorVerify = () => {
13
+ const {
14
+ code,
15
+ setCode,
16
+ verifying,
17
+ error,
18
+ handleVerify
19
+ } = (0, _useAuthenticatorVerify.useAuthenticatorVerify)();
20
+ return /*#__PURE__*/_react.default.createElement(_reactNative2.View, {
21
+ style: styles.wrapper
22
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.View, {
23
+ style: styles.container
24
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Txt, {
25
+ style: styles.text
26
+ }, "Enter the code on your authenticator app:"), /*#__PURE__*/_react.default.createElement(_reactNative2.TextInput, {
27
+ style: styles.input,
28
+ value: code,
29
+ onChangeText: setCode,
30
+ placeholder: "Verification Code",
31
+ keyboardType: "number-pad",
32
+ maxLength: 6,
33
+ autoFocus: true
34
+ }), error ? /*#__PURE__*/_react.default.createElement(_reactNative.Txt, {
35
+ style: styles.errorText
36
+ }, error) : null, /*#__PURE__*/_react.default.createElement(_reactNative.LoadingButton, {
37
+ style: styles.button,
38
+ onPress: handleVerify,
39
+ disabled: verifying
40
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Txt, {
41
+ style: styles.buttonText
42
+ }, verifying ? 'Verifying...' : 'Verify'))));
43
+ };
44
+ exports.AuthenticatorVerify = AuthenticatorVerify;
45
+ const styles = _reactNative2.StyleSheet.create({
46
+ wrapper: {
47
+ flex: 1,
48
+ padding: 16
49
+ },
50
+ container: {
51
+ flex: 1,
52
+ alignItems: 'center',
53
+ justifyContent: 'center',
54
+ gap: 16
55
+ },
56
+ text: {
57
+ fontSize: 16,
58
+ textAlign: 'center',
59
+ marginBottom: 8
60
+ },
61
+ input: {
62
+ width: '100%',
63
+ height: 48,
64
+ borderWidth: 1,
65
+ borderColor: '#ccc',
66
+ borderRadius: 8,
67
+ paddingHorizontal: 16,
68
+ fontSize: 16,
69
+ marginBottom: 8
70
+ },
71
+ button: {
72
+ backgroundColor: '#007AFF',
73
+ paddingHorizontal: 24,
74
+ paddingVertical: 12,
75
+ borderRadius: 8,
76
+ minWidth: 200,
77
+ alignItems: 'center'
78
+ },
79
+ buttonText: {
80
+ color: 'white',
81
+ fontSize: 16,
82
+ fontWeight: '600'
83
+ },
84
+ errorText: {
85
+ color: 'red',
86
+ fontSize: 14,
87
+ marginBottom: 8
88
+ }
89
+ });
90
+ //# sourceMappingURL=AuthenticatorVerify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","_reactNative2","_useAuthenticatorVerify","e","__esModule","default","AuthenticatorVerify","code","setCode","verifying","error","handleVerify","useAuthenticatorVerify","createElement","View","style","styles","wrapper","container","Txt","text","TextInput","input","value","onChangeText","placeholder","keyboardType","maxLength","autoFocus","errorText","LoadingButton","button","onPress","disabled","buttonText","exports","StyleSheet","create","flex","padding","alignItems","justifyContent","gap","fontSize","textAlign","marginBottom","width","height","borderWidth","borderColor","borderRadius","paddingHorizontal","backgroundColor","paddingVertical","minWidth","color","fontWeight"],"sourceRoot":"..\\..\\..\\src","sources":["components/AuthenticatorVerify.tsx"],"mappings":"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","ignoreList":[]}