@onairos/react-native 3.1.16 → 3.1.18
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 +404 -0
- package/lib/commonjs/assets/images/Checkbox.svg +3 -3
- package/lib/commonjs/assets/images/EnochE.svg +19 -19
- package/lib/commonjs/assets/images/Personalityprofile.svg +3 -3
- package/lib/commonjs/assets/images/Personalitytraits.svg +3 -3
- package/lib/commonjs/assets/images/Userpreferences.svg +3 -3
- package/lib/commonjs/assets/images/arrow.svg +20 -20
- package/lib/commonjs/assets/images/basicproficon.svg +43 -43
- package/lib/commonjs/assets/images/basicprofile.svg +3 -3
- package/lib/commonjs/assets/images/checkmark.svg +4 -4
- package/lib/commonjs/assets/images/contentanalysis.svg +3 -3
- package/lib/commonjs/assets/images/contenticon.svg +23 -23
- package/lib/commonjs/assets/images/personalityicon.svg +18 -18
- package/lib/commonjs/assets/images/x-close.svg +3 -3
- package/lib/commonjs/components/ModalSheet.js +8 -2
- package/lib/commonjs/components/ModalSheet.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +290 -0
- package/lib/commonjs/components/OnairosButton.js.map +1 -0
- package/lib/commonjs/components/OnairosSignInButton.js +32 -8
- package/lib/commonjs/components/OnairosSignInButton.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +4 -4
- package/lib/commonjs/components/WelcomeScreen.js +29 -13
- package/lib/commonjs/components/WelcomeScreen.js.map +1 -1
- package/lib/commonjs/config/api.js +2 -2
- package/lib/commonjs/hooks/useConnections.js +6 -6
- package/lib/commonjs/hooks/useUserConnections.js +10 -10
- package/lib/commonjs/index.js +13 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiClient.js +35 -35
- package/lib/commonjs/services/apiKeyService.js +99 -99
- package/lib/commonjs/services/authService.js +82 -82
- package/lib/commonjs/services/biometricPinService.js +10 -10
- package/lib/commonjs/services/connectedAccountsService.js +32 -32
- package/lib/commonjs/services/googleAuthService.js +15 -15
- package/lib/commonjs/services/imageCompressionService.js +15 -15
- package/lib/commonjs/services/jwtStorageService.js +59 -59
- package/lib/commonjs/services/mobileTrainingService.js +14 -14
- package/lib/commonjs/services/pinEncryptionService.js +10 -10
- package/lib/commonjs/services/pinStorageUtils.js +15 -15
- package/lib/commonjs/services/platformAuthService.js +47 -47
- package/lib/commonjs/services/storageService.js +31 -31
- package/lib/commonjs/services/trainingApiHelpers.js +33 -33
- package/lib/commonjs/services/userConnectionsService.js +24 -24
- package/lib/commonjs/utils/Portal.js +4 -4
- package/lib/commonjs/utils/api.js +24 -24
- package/lib/commonjs/utils/auth.js +18 -18
- package/lib/commonjs/utils/crypto.js +13 -13
- package/lib/commonjs/utils/encryption.js +12 -12
- package/lib/commonjs/utils/eventUtils.js +52 -52
- package/lib/commonjs/utils/programmaticFlow.js +16 -16
- package/lib/commonjs/utils/retryHelper.js +27 -27
- package/lib/module/assets/images/Checkbox.svg +3 -3
- package/lib/module/assets/images/EnochE.svg +19 -19
- package/lib/module/assets/images/Personalityprofile.svg +3 -3
- package/lib/module/assets/images/Personalitytraits.svg +3 -3
- package/lib/module/assets/images/Userpreferences.svg +3 -3
- package/lib/module/assets/images/arrow.svg +20 -20
- package/lib/module/assets/images/basicproficon.svg +43 -43
- package/lib/module/assets/images/basicprofile.svg +3 -3
- package/lib/module/assets/images/checkmark.svg +4 -4
- package/lib/module/assets/images/contentanalysis.svg +3 -3
- package/lib/module/assets/images/contenticon.svg +23 -23
- package/lib/module/assets/images/personalityicon.svg +18 -18
- package/lib/module/assets/images/x-close.svg +3 -3
- package/lib/module/components/ModalSheet.js +7 -2
- package/lib/module/components/ModalSheet.js.map +1 -1
- package/lib/module/components/OnairosButton.js +282 -0
- package/lib/module/components/OnairosButton.js.map +1 -0
- package/lib/module/components/OnairosSignInButton.js +32 -8
- package/lib/module/components/OnairosSignInButton.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +4 -4
- package/lib/module/components/WelcomeScreen.js +25 -10
- package/lib/module/components/WelcomeScreen.js.map +1 -1
- package/lib/module/config/api.js +2 -2
- package/lib/module/hooks/useConnections.js +6 -6
- package/lib/module/hooks/useUserConnections.js +10 -10
- package/lib/module/index.js +11 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiClient.js +35 -35
- package/lib/module/services/apiKeyService.js +99 -99
- package/lib/module/services/authService.js +82 -82
- package/lib/module/services/biometricPinService.js +10 -10
- package/lib/module/services/connectedAccountsService.js +32 -32
- package/lib/module/services/googleAuthService.js +15 -15
- package/lib/module/services/imageCompressionService.js +15 -15
- package/lib/module/services/jwtStorageService.js +59 -59
- package/lib/module/services/mobileTrainingService.js +14 -14
- package/lib/module/services/pinEncryptionService.js +10 -10
- package/lib/module/services/pinStorageUtils.js +15 -15
- package/lib/module/services/platformAuthService.js +47 -47
- package/lib/module/services/storageService.js +31 -31
- package/lib/module/services/trainingApiHelpers.js +33 -33
- package/lib/module/services/userConnectionsService.js +24 -24
- package/lib/module/utils/Portal.js +4 -4
- package/lib/module/utils/api.js +24 -24
- package/lib/module/utils/auth.js +18 -18
- package/lib/module/utils/crypto.js +13 -13
- package/lib/module/utils/encryption.js +12 -12
- package/lib/module/utils/eventUtils.js +52 -52
- package/lib/module/utils/programmaticFlow.js +16 -16
- package/lib/module/utils/retryHelper.js +27 -27
- package/lib/typescript/components/ModalSheet.d.ts.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts +37 -0
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -0
- package/lib/typescript/components/OnairosSignInButton.d.ts.map +1 -1
- package/lib/typescript/components/WelcomeScreen.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +145 -163
- package/src/api/index.ts +151 -151
- package/src/assets/images/Checkbox.svg +3 -3
- package/src/assets/images/EnochE.svg +19 -19
- package/src/assets/images/Personalityprofile.svg +3 -3
- package/src/assets/images/Personalitytraits.svg +3 -3
- package/src/assets/images/Userpreferences.svg +3 -3
- package/src/assets/images/arrow.svg +20 -20
- package/src/assets/images/basicproficon.svg +43 -43
- package/src/assets/images/basicprofile.svg +3 -3
- package/src/assets/images/checkmark.svg +4 -4
- package/src/assets/images/contentanalysis.svg +3 -3
- package/src/assets/images/contenticon.svg +23 -23
- package/src/assets/images/personalityicon.svg +18 -18
- package/src/assets/images/x-close.svg +3 -3
- package/src/components/BodyText.tsx +33 -33
- package/src/components/BrandMark.tsx +62 -62
- package/src/components/CodeInput.tsx +32 -32
- package/src/components/DataRequestScreen.tsx +355 -355
- package/src/components/EmailInput.tsx +31 -31
- package/src/components/EmailVerificationModal.tsx +363 -363
- package/src/components/ExistingUserDataConfirmation.tsx +506 -506
- package/src/components/GoogleButton.tsx +55 -55
- package/src/components/HeadingGroup.tsx +49 -49
- package/src/components/ModalHeader.tsx +125 -125
- package/src/components/ModalSheet.tsx +59 -57
- package/src/components/Onairos.tsx +422 -422
- package/src/components/OnairosButton.tsx +339 -0
- package/src/components/OnairosSignInButton.tsx +31 -9
- package/src/components/Overlay.tsx +506 -506
- package/src/components/PersonaImage.tsx +79 -79
- package/src/components/PersonaLoadingScreen.tsx +201 -201
- package/src/components/PersonalizationConsentScreen.tsx +410 -410
- package/src/components/PinCreationScreen.tsx +492 -492
- package/src/components/PinInput.tsx +555 -555
- package/src/components/PlatformConnectorsStep.tsx +891 -891
- package/src/components/PlatformList.tsx +144 -144
- package/src/components/PlatformToggle.tsx +226 -226
- package/src/components/PrimaryButton.tsx +213 -213
- package/src/components/SignInMatchAnimation.tsx +225 -225
- package/src/components/SignInStep.tsx +217 -217
- package/src/components/TrainingModal.tsx +1047 -1047
- package/src/components/UniversalOnboarding.tsx +2887 -2887
- package/src/components/VerificationStep.tsx +198 -198
- package/src/components/WelcomeScreen.tsx +490 -473
- package/src/components/icons/Basicproficon.tsx +30 -30
- package/src/components/icons/Basicprofile.tsx +17 -17
- package/src/components/icons/Checkbox.tsx +17 -17
- package/src/components/icons/Checkmark.tsx +24 -24
- package/src/components/icons/Contentanalysis.tsx +17 -17
- package/src/components/icons/Contenticon.tsx +30 -30
- package/src/components/icons/EnochE.tsx +39 -39
- package/src/components/icons/Personalityicon.tsx +22 -22
- package/src/components/icons/Personalityprofile.tsx +17 -17
- package/src/components/icons/Personalitytraits.tsx +17 -17
- package/src/components/icons/Userpreferences.tsx +17 -17
- package/src/components/icons/index.ts +12 -12
- package/src/components/onboarding/OAuthWebView.tsx +232 -232
- package/src/config/api.ts +25 -25
- package/src/context/AuthContext.tsx +393 -393
- package/src/hooks/useConnectedAccounts.ts +138 -138
- package/src/hooks/useConnections.ts +161 -161
- package/src/hooks/useCredentials.ts +174 -174
- package/src/hooks/useUserConnections.ts +165 -165
- package/src/index.js +14 -0
- package/src/index.ts +99 -96
- package/src/services/apiClient.ts +336 -336
- package/src/services/apiKeyService.ts +919 -919
- package/src/services/authService.ts +1008 -1008
- package/src/services/biometricPinService.ts +192 -192
- package/src/services/connectedAccountsService.ts +289 -289
- package/src/services/googleAuthService.ts +279 -279
- package/src/services/imageCompressionService.ts +302 -302
- package/src/services/jwtStorageService.ts +256 -256
- package/src/services/mobileTrainingService.ts +203 -203
- package/src/services/pinEncryptionService.ts +75 -75
- package/src/services/pinStorageUtils.ts +96 -96
- package/src/services/platformAuthService.ts +1346 -1346
- package/src/services/storageService.ts +451 -451
- package/src/services/trainingApiHelpers.ts +66 -66
- package/src/services/userConnectionsService.ts +556 -556
- package/src/services/youtubeMigrationService.ts +453 -453
- package/src/theme/index.ts +239 -239
- package/src/types/ambient.d.ts +28 -28
- package/src/types/index.ts +265 -265
- package/src/types/node-fix.d.ts +18 -18
- package/src/types/node-override.d.ts +23 -23
- package/src/types/opacity.d.ts +15 -15
- package/src/types/types.d.ts +17 -17
- package/src/utils/Portal.tsx +82 -82
- package/src/utils/api.js +111 -111
- package/src/utils/auth.js +103 -103
- package/src/utils/crypto.js +59 -59
- package/src/utils/encryption.ts +68 -68
- package/src/utils/eventUtils.ts +302 -302
- package/src/utils/haptics.ts +58 -58
- package/src/utils/imagePreloader.ts +2 -2
- package/src/utils/programmaticFlow.ts +112 -112
- package/src/utils/retryHelper.ts +274 -274
|
@@ -8,27 +8,27 @@ const API_BASE_URL = API_CONFIG.BASE_URL;
|
|
|
8
8
|
|
|
9
9
|
// Interface for Apple authentication payload
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Interface for the timer response from backend
|
|
11
|
+
/**
|
|
12
|
+
* Interface for the timer response from backend
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
* Interface for the profile response from backend
|
|
15
|
+
/**
|
|
16
|
+
* Interface for the profile response from backend
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* Interface for creating/updating user profile
|
|
19
|
+
/**
|
|
20
|
+
* Interface for creating/updating user profile
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* Authenticate with Apple
|
|
25
|
-
* @param appleAuthData Data from Apple authentication
|
|
26
|
-
* @returns Authentication response with token and user data
|
|
23
|
+
/**
|
|
24
|
+
* Authenticate with Apple
|
|
25
|
+
* @param appleAuthData Data from Apple authentication
|
|
26
|
+
* @returns Authentication response with token and user data
|
|
27
27
|
*/
|
|
28
|
-
/**
|
|
29
|
-
* Authenticate with Onairos (similar to Apple authentication)
|
|
30
|
-
* @param onairosAuthData Data from Onairos authentication
|
|
31
|
-
* @returns Authentication response with token and user data
|
|
28
|
+
/**
|
|
29
|
+
* Authenticate with Onairos (similar to Apple authentication)
|
|
30
|
+
* @param onairosAuthData Data from Onairos authentication
|
|
31
|
+
* @returns Authentication response with token and user data
|
|
32
32
|
*/
|
|
33
33
|
export const authenticateWithOnairos = async onairosAuthData => {
|
|
34
34
|
try {
|
|
@@ -78,10 +78,10 @@ export const authenticateWithOnairos = async onairosAuthData => {
|
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
/**
|
|
82
|
-
* Authenticate with Onairos using the standardized /login/signin endpoint
|
|
83
|
-
* @param credentials Email and password for Onairos sign-in
|
|
84
|
-
* @returns Authentication response with token and user data
|
|
81
|
+
/**
|
|
82
|
+
* Authenticate with Onairos using the standardized /login/signin endpoint
|
|
83
|
+
* @param credentials Email and password for Onairos sign-in
|
|
84
|
+
* @returns Authentication response with token and user data
|
|
85
85
|
*/
|
|
86
86
|
export const authenticateWithOnairosSignIn = async credentials => {
|
|
87
87
|
try {
|
|
@@ -262,9 +262,9 @@ export const authenticateWithApple = async appleAuthData => {
|
|
|
262
262
|
}
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
-
/**
|
|
266
|
-
* Save authentication token
|
|
267
|
-
* @param token JWT token
|
|
265
|
+
/**
|
|
266
|
+
* Save authentication token
|
|
267
|
+
* @param token JWT token
|
|
268
268
|
*/
|
|
269
269
|
export const saveAuthToken = async token => {
|
|
270
270
|
try {
|
|
@@ -275,8 +275,8 @@ export const saveAuthToken = async token => {
|
|
|
275
275
|
}
|
|
276
276
|
};
|
|
277
277
|
|
|
278
|
-
/**
|
|
279
|
-
* Debug function to check all auth-related storage
|
|
278
|
+
/**
|
|
279
|
+
* Debug function to check all auth-related storage
|
|
280
280
|
*/
|
|
281
281
|
export const debugAuthStorage = async () => {
|
|
282
282
|
console.log('🔍 [AUTH STORAGE DEBUG] Checking all auth-related storage:');
|
|
@@ -303,8 +303,8 @@ export const debugAuthStorage = async () => {
|
|
|
303
303
|
});
|
|
304
304
|
};
|
|
305
305
|
|
|
306
|
-
/**
|
|
307
|
-
* Clear all auth tokens and start fresh
|
|
306
|
+
/**
|
|
307
|
+
* Clear all auth tokens and start fresh
|
|
308
308
|
*/
|
|
309
309
|
export const clearAllAuthTokens = async () => {
|
|
310
310
|
console.log('🧹 [AUTH DEBUG] Clearing all auth tokens via centralized service...');
|
|
@@ -320,9 +320,9 @@ export const clearAllAuthTokens = async () => {
|
|
|
320
320
|
console.log('✅ [AUTH DEBUG] All auth tokens and data cleared');
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
-
/**
|
|
324
|
-
* Get saved authentication token - CRITICAL FIX: Try all token types
|
|
325
|
-
* @returns Saved JWT token or null if not found
|
|
323
|
+
/**
|
|
324
|
+
* Get saved authentication token - CRITICAL FIX: Try all token types
|
|
325
|
+
* @returns Saved JWT token or null if not found
|
|
326
326
|
*/
|
|
327
327
|
export const getAuthToken = async () => {
|
|
328
328
|
try {
|
|
@@ -362,8 +362,8 @@ export const getAuthToken = async () => {
|
|
|
362
362
|
}
|
|
363
363
|
};
|
|
364
364
|
|
|
365
|
-
/**
|
|
366
|
-
* Remove authentication token (logout)
|
|
365
|
+
/**
|
|
366
|
+
* Remove authentication token (logout)
|
|
367
367
|
*/
|
|
368
368
|
export const removeAuthToken = async () => {
|
|
369
369
|
try {
|
|
@@ -373,9 +373,9 @@ export const removeAuthToken = async () => {
|
|
|
373
373
|
}
|
|
374
374
|
};
|
|
375
375
|
|
|
376
|
-
/**
|
|
377
|
-
* Validate if user is properly authenticated
|
|
378
|
-
* @returns boolean indicating if user has valid authentication
|
|
376
|
+
/**
|
|
377
|
+
* Validate if user is properly authenticated
|
|
378
|
+
* @returns boolean indicating if user has valid authentication
|
|
379
379
|
*/
|
|
380
380
|
export const isAuthenticated = async () => {
|
|
381
381
|
try {
|
|
@@ -387,10 +387,10 @@ export const isAuthenticated = async () => {
|
|
|
387
387
|
}
|
|
388
388
|
};
|
|
389
389
|
|
|
390
|
-
/**
|
|
391
|
-
* Ensure authentication is available before making API calls
|
|
392
|
-
* @param apiName - Name of the API being called (for logging)
|
|
393
|
-
* @returns boolean indicating if authentication is available
|
|
390
|
+
/**
|
|
391
|
+
* Ensure authentication is available before making API calls
|
|
392
|
+
* @param apiName - Name of the API being called (for logging)
|
|
393
|
+
* @returns boolean indicating if authentication is available
|
|
394
394
|
*/
|
|
395
395
|
export const ensureAuthentication = async apiName => {
|
|
396
396
|
const isAuth = await isAuthenticated();
|
|
@@ -402,9 +402,9 @@ export const ensureAuthentication = async apiName => {
|
|
|
402
402
|
return isAuth;
|
|
403
403
|
};
|
|
404
404
|
|
|
405
|
-
/**
|
|
406
|
-
* Get saved Enoch authentication token specifically
|
|
407
|
-
* @returns Saved Enoch JWT token or null if not found
|
|
405
|
+
/**
|
|
406
|
+
* Get saved Enoch authentication token specifically
|
|
407
|
+
* @returns Saved Enoch JWT token or null if not found
|
|
408
408
|
*/
|
|
409
409
|
export const getEnochToken = async () => {
|
|
410
410
|
try {
|
|
@@ -415,9 +415,9 @@ export const getEnochToken = async () => {
|
|
|
415
415
|
}
|
|
416
416
|
};
|
|
417
417
|
|
|
418
|
-
/**
|
|
419
|
-
* Save Enoch authentication token specifically
|
|
420
|
-
* @param token Enoch JWT token
|
|
418
|
+
/**
|
|
419
|
+
* Save Enoch authentication token specifically
|
|
420
|
+
* @param token Enoch JWT token
|
|
421
421
|
*/
|
|
422
422
|
export const saveEnochToken = async token => {
|
|
423
423
|
try {
|
|
@@ -429,9 +429,9 @@ export const saveEnochToken = async token => {
|
|
|
429
429
|
}
|
|
430
430
|
};
|
|
431
431
|
|
|
432
|
-
/**
|
|
433
|
-
* Verify token with backend
|
|
434
|
-
* @returns Boolean indicating if token is valid
|
|
432
|
+
/**
|
|
433
|
+
* Verify token with backend
|
|
434
|
+
* @returns Boolean indicating if token is valid
|
|
435
435
|
*/
|
|
436
436
|
export const verifyToken = async () => {
|
|
437
437
|
try {
|
|
@@ -461,10 +461,10 @@ export const verifyToken = async () => {
|
|
|
461
461
|
}
|
|
462
462
|
};
|
|
463
463
|
|
|
464
|
-
/**
|
|
465
|
-
* Get user profile from backend using stored token
|
|
466
|
-
* Note: This endpoint doesn't exist as GET, so we'll try to fetch via other means
|
|
467
|
-
* @returns User profile data
|
|
464
|
+
/**
|
|
465
|
+
* Get user profile from backend using stored token
|
|
466
|
+
* Note: This endpoint doesn't exist as GET, so we'll try to fetch via other means
|
|
467
|
+
* @returns User profile data
|
|
468
468
|
*/
|
|
469
469
|
export const getUserProfile = async () => {
|
|
470
470
|
try {
|
|
@@ -575,10 +575,10 @@ export const getUserProfile = async () => {
|
|
|
575
575
|
}
|
|
576
576
|
};
|
|
577
577
|
|
|
578
|
-
/**
|
|
579
|
-
* Create or update user profile
|
|
580
|
-
* @param profileData Profile data to create/update
|
|
581
|
-
* @returns Profile response from backend
|
|
578
|
+
/**
|
|
579
|
+
* Create or update user profile
|
|
580
|
+
* @param profileData Profile data to create/update
|
|
581
|
+
* @returns Profile response from backend
|
|
582
582
|
*/
|
|
583
583
|
export const createOrUpdateProfile = async profileData => {
|
|
584
584
|
try {
|
|
@@ -603,9 +603,9 @@ export const createOrUpdateProfile = async profileData => {
|
|
|
603
603
|
}
|
|
604
604
|
};
|
|
605
605
|
|
|
606
|
-
/**
|
|
607
|
-
* Update user's onboarded status
|
|
608
|
-
* @returns Promise that resolves when update is successful
|
|
606
|
+
/**
|
|
607
|
+
* Update user's onboarded status
|
|
608
|
+
* @returns Promise that resolves when update is successful
|
|
609
609
|
*/
|
|
610
610
|
export const updateUserOnboardedStatus = async () => {
|
|
611
611
|
try {
|
|
@@ -629,9 +629,9 @@ export const updateUserOnboardedStatus = async () => {
|
|
|
629
629
|
}
|
|
630
630
|
};
|
|
631
631
|
|
|
632
|
-
/**
|
|
633
|
-
* Fetch the current timer status from the backend
|
|
634
|
-
* @returns Timer information including expiry and duration
|
|
632
|
+
/**
|
|
633
|
+
* Fetch the current timer status from the backend
|
|
634
|
+
* @returns Timer information including expiry and duration
|
|
635
635
|
*/
|
|
636
636
|
export const getEventTimer = async () => {
|
|
637
637
|
try {
|
|
@@ -787,10 +787,10 @@ export const getEventTimer = async () => {
|
|
|
787
787
|
}
|
|
788
788
|
};
|
|
789
789
|
|
|
790
|
-
/**
|
|
791
|
-
* Check if a user email has admin privileges
|
|
792
|
-
* @param email User email to check
|
|
793
|
-
* @returns True if user is an admin
|
|
790
|
+
/**
|
|
791
|
+
* Check if a user email has admin privileges
|
|
792
|
+
* @param email User email to check
|
|
793
|
+
* @returns True if user is an admin
|
|
794
794
|
*/
|
|
795
795
|
export const isAdminEmail = email => {
|
|
796
796
|
if (!email) {
|
|
@@ -807,9 +807,9 @@ export const isAdminEmail = email => {
|
|
|
807
807
|
return isAdmin;
|
|
808
808
|
};
|
|
809
809
|
|
|
810
|
-
/**
|
|
811
|
-
* Get the current admin status from AsyncStorage
|
|
812
|
-
* This could be used for caching admin status between sessions
|
|
810
|
+
/**
|
|
811
|
+
* Get the current admin status from AsyncStorage
|
|
812
|
+
* This could be used for caching admin status between sessions
|
|
813
813
|
*/
|
|
814
814
|
export const getAdminStatus = async () => {
|
|
815
815
|
try {
|
|
@@ -821,9 +821,9 @@ export const getAdminStatus = async () => {
|
|
|
821
821
|
}
|
|
822
822
|
};
|
|
823
823
|
|
|
824
|
-
/**
|
|
825
|
-
* Save admin status to AsyncStorage
|
|
826
|
-
* @param isAdmin Whether the user is an admin
|
|
824
|
+
/**
|
|
825
|
+
* Save admin status to AsyncStorage
|
|
826
|
+
* @param isAdmin Whether the user is an admin
|
|
827
827
|
*/
|
|
828
828
|
export const saveAdminStatus = async isAdmin => {
|
|
829
829
|
try {
|
|
@@ -833,10 +833,10 @@ export const saveAdminStatus = async isAdmin => {
|
|
|
833
833
|
}
|
|
834
834
|
};
|
|
835
835
|
|
|
836
|
-
/**
|
|
837
|
-
* Get stored Onairos username for API calls
|
|
838
|
-
* This is used for data connector APIs (Reddit, etc.) that need the username
|
|
839
|
-
* @returns Stored username or null if not found
|
|
836
|
+
/**
|
|
837
|
+
* Get stored Onairos username for API calls
|
|
838
|
+
* This is used for data connector APIs (Reddit, etc.) that need the username
|
|
839
|
+
* @returns Stored username or null if not found
|
|
840
840
|
*/
|
|
841
841
|
export const getOnairosUsername = async () => {
|
|
842
842
|
try {
|
|
@@ -847,9 +847,9 @@ export const getOnairosUsername = async () => {
|
|
|
847
847
|
}
|
|
848
848
|
};
|
|
849
849
|
|
|
850
|
-
/**
|
|
851
|
-
* Save Onairos username for API calls
|
|
852
|
-
* @param username Username to store
|
|
850
|
+
/**
|
|
851
|
+
* Save Onairos username for API calls
|
|
852
|
+
* @param username Username to store
|
|
853
853
|
*/
|
|
854
854
|
export const saveOnairosUsername = async username => {
|
|
855
855
|
try {
|
|
@@ -859,11 +859,11 @@ export const saveOnairosUsername = async username => {
|
|
|
859
859
|
}
|
|
860
860
|
};
|
|
861
861
|
|
|
862
|
-
/**
|
|
863
|
-
* Check if user has connected Onairos to Enoch before
|
|
864
|
-
* This checks for actual usage/training data, not just account existence
|
|
865
|
-
* @param userIdentifier - Email, username, or user ID to check
|
|
866
|
-
* @returns Promise<boolean> - true if user has connected Onairos features to Enoch
|
|
862
|
+
/**
|
|
863
|
+
* Check if user has connected Onairos to Enoch before
|
|
864
|
+
* This checks for actual usage/training data, not just account existence
|
|
865
|
+
* @param userIdentifier - Email, username, or user ID to check
|
|
866
|
+
* @returns Promise<boolean> - true if user has connected Onairos features to Enoch
|
|
867
867
|
*/
|
|
868
868
|
export const checkEnochOnairosConnection = async userIdentifier => {
|
|
869
869
|
try {
|
|
@@ -4,8 +4,8 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
// Service key for PIN storage
|
|
5
5
|
const PIN_SERVICE_KEY = 'OnairosEventsPIN';
|
|
6
6
|
const PIN_USERNAME = 'user_pin';
|
|
7
|
-
/**
|
|
8
|
-
* Check if biometric authentication is available on the device
|
|
7
|
+
/**
|
|
8
|
+
* Check if biometric authentication is available on the device
|
|
9
9
|
*/
|
|
10
10
|
export const isBiometricAvailable = async () => {
|
|
11
11
|
try {
|
|
@@ -20,8 +20,8 @@ export const isBiometricAvailable = async () => {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* Store PIN with biometric authentication
|
|
23
|
+
/**
|
|
24
|
+
* Store PIN with biometric authentication
|
|
25
25
|
*/
|
|
26
26
|
export const storePinWithBiometric = async pin => {
|
|
27
27
|
try {
|
|
@@ -89,8 +89,8 @@ export const storePinWithBiometric = async pin => {
|
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
-
/**
|
|
93
|
-
* Retrieve PIN with biometric authentication
|
|
92
|
+
/**
|
|
93
|
+
* Retrieve PIN with biometric authentication
|
|
94
94
|
*/
|
|
95
95
|
export const retrievePinWithBiometric = async () => {
|
|
96
96
|
try {
|
|
@@ -121,8 +121,8 @@ export const retrievePinWithBiometric = async () => {
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
/**
|
|
125
|
-
* Check if PIN is stored in secure storage
|
|
124
|
+
/**
|
|
125
|
+
* Check if PIN is stored in secure storage
|
|
126
126
|
*/
|
|
127
127
|
export const isPinStored = async () => {
|
|
128
128
|
try {
|
|
@@ -134,8 +134,8 @@ export const isPinStored = async () => {
|
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
/**
|
|
138
|
-
* Remove PIN from secure storage
|
|
137
|
+
/**
|
|
138
|
+
* Remove PIN from secure storage
|
|
139
139
|
*/
|
|
140
140
|
export const removePinFromStorage = async () => {
|
|
141
141
|
try {
|
|
@@ -6,11 +6,11 @@ const API_BASE_URL = API_CONFIG.BASE_URL;
|
|
|
6
6
|
|
|
7
7
|
// Interface for API response
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* NEW UNIFIED LOOKUP - Get connected accounts using the simplified lookup endpoint
|
|
11
|
-
* This is the preferred method that makes only ONE request to the backend
|
|
12
|
-
* @param userIdentifier - Can be email, username, userId, or any user identifier
|
|
13
|
-
* @returns Promise<ConnectedAccount[]>
|
|
9
|
+
/**
|
|
10
|
+
* NEW UNIFIED LOOKUP - Get connected accounts using the simplified lookup endpoint
|
|
11
|
+
* This is the preferred method that makes only ONE request to the backend
|
|
12
|
+
* @param userIdentifier - Can be email, username, userId, or any user identifier
|
|
13
|
+
* @returns Promise<ConnectedAccount[]>
|
|
14
14
|
*/
|
|
15
15
|
export const getConnectedAccountsLookup = async userIdentifier => {
|
|
16
16
|
try {
|
|
@@ -42,13 +42,13 @@ export const getConnectedAccountsLookup = async userIdentifier => {
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* SMART CONNECTED ACCOUNTS FETCHER - Uses new API with old API fallback
|
|
47
|
-
* This function tries the new unified lookup first, then falls back to old methods if needed
|
|
48
|
-
* @param userEmail - User's email (primary identifier)
|
|
49
|
-
* @param userId - User's ID (fallback)
|
|
50
|
-
* @param username - User's username (fallback)
|
|
51
|
-
* @returns Promise<ConnectedAccount[]>
|
|
45
|
+
/**
|
|
46
|
+
* SMART CONNECTED ACCOUNTS FETCHER - Uses new API with old API fallback
|
|
47
|
+
* This function tries the new unified lookup first, then falls back to old methods if needed
|
|
48
|
+
* @param userEmail - User's email (primary identifier)
|
|
49
|
+
* @param userId - User's ID (fallback)
|
|
50
|
+
* @param username - User's username (fallback)
|
|
51
|
+
* @returns Promise<ConnectedAccount[]>
|
|
52
52
|
*/
|
|
53
53
|
export const getConnectedAccountsSmart = async (userEmail, userId, username) => {
|
|
54
54
|
console.log('🧠 [SMART API] Starting smart connected accounts fetch...');
|
|
@@ -101,10 +101,10 @@ export const getConnectedAccountsSmart = async (userEmail, userId, username) =>
|
|
|
101
101
|
// These will be used as fallbacks if the new unified lookup fails
|
|
102
102
|
// =============================================================================
|
|
103
103
|
|
|
104
|
-
/**
|
|
105
|
-
* Get connected accounts by username
|
|
106
|
-
* @param username - Username to fetch connected accounts for
|
|
107
|
-
* @returns Promise<ConnectedAccount[]>
|
|
104
|
+
/**
|
|
105
|
+
* Get connected accounts by username
|
|
106
|
+
* @param username - Username to fetch connected accounts for
|
|
107
|
+
* @returns Promise<ConnectedAccount[]>
|
|
108
108
|
*/
|
|
109
109
|
export const getConnectedAccountsByUsername = async username => {
|
|
110
110
|
try {
|
|
@@ -129,10 +129,10 @@ export const getConnectedAccountsByUsername = async username => {
|
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
-
/**
|
|
133
|
-
* Get connected accounts by email
|
|
134
|
-
* @param email - Email to fetch connected accounts for
|
|
135
|
-
* @returns Promise<ConnectedAccount[]>
|
|
132
|
+
/**
|
|
133
|
+
* Get connected accounts by email
|
|
134
|
+
* @param email - Email to fetch connected accounts for
|
|
135
|
+
* @returns Promise<ConnectedAccount[]>
|
|
136
136
|
*/
|
|
137
137
|
export const getConnectedAccountsByEmail = async email => {
|
|
138
138
|
try {
|
|
@@ -157,10 +157,10 @@ export const getConnectedAccountsByEmail = async email => {
|
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
159
|
|
|
160
|
-
/**
|
|
161
|
-
* Get connected accounts by user ID
|
|
162
|
-
* @param userId - User ID to fetch connected accounts for
|
|
163
|
-
* @returns Promise<ConnectedAccount[]>
|
|
160
|
+
/**
|
|
161
|
+
* Get connected accounts by user ID
|
|
162
|
+
* @param userId - User ID to fetch connected accounts for
|
|
163
|
+
* @returns Promise<ConnectedAccount[]>
|
|
164
164
|
*/
|
|
165
165
|
export const getConnectedAccountsByUserId = async userId => {
|
|
166
166
|
try {
|
|
@@ -185,10 +185,10 @@ export const getConnectedAccountsByUserId = async userId => {
|
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
|
|
188
|
-
/**
|
|
189
|
-
* Get platform icon based on platform name
|
|
190
|
-
* @param platform - Platform name (case insensitive)
|
|
191
|
-
* @returns Image source for the platform icon
|
|
188
|
+
/**
|
|
189
|
+
* Get platform icon based on platform name
|
|
190
|
+
* @param platform - Platform name (case insensitive)
|
|
191
|
+
* @returns Image source for the platform icon
|
|
192
192
|
*/
|
|
193
193
|
export const getPlatformIcon = platform => {
|
|
194
194
|
const platformLower = platform.toLowerCase();
|
|
@@ -219,10 +219,10 @@ export const getPlatformIcon = platform => {
|
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
221
|
|
|
222
|
-
/**
|
|
223
|
-
* Get platform color based on platform name
|
|
224
|
-
* @param platform - Platform name (case insensitive)
|
|
225
|
-
* @returns Hex color code for the platform
|
|
222
|
+
/**
|
|
223
|
+
* Get platform color based on platform name
|
|
224
|
+
* @param platform - Platform name (case insensitive)
|
|
225
|
+
* @returns Hex color code for the platform
|
|
226
226
|
*/
|
|
227
227
|
export const getPlatformColor = platform => {
|
|
228
228
|
const platformLower = platform.toLowerCase();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Google Authentication Service
|
|
3
|
-
* Handles Google Sign-In for user authentication and account creation
|
|
1
|
+
/**
|
|
2
|
+
* Google Authentication Service
|
|
3
|
+
* Handles Google Sign-In for user authentication and account creation
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { GoogleSignin, statusCodes } from '@react-native-google-signin/google-signin';
|
|
@@ -10,8 +10,8 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
10
10
|
let WEB_CLIENT_ID = '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com';
|
|
11
11
|
let IOS_CLIENT_ID = '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com';
|
|
12
12
|
|
|
13
|
-
/**
|
|
14
|
-
* Update Google OAuth client IDs for custom configurations
|
|
13
|
+
/**
|
|
14
|
+
* Update Google OAuth client IDs for custom configurations
|
|
15
15
|
*/
|
|
16
16
|
export const updateGoogleClientIds = config => {
|
|
17
17
|
if (config.webClientId) {
|
|
@@ -26,8 +26,8 @@ export const updateGoogleClientIds = config => {
|
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* Initialize Google Sign-In for user authentication
|
|
29
|
+
/**
|
|
30
|
+
* Initialize Google Sign-In for user authentication
|
|
31
31
|
*/
|
|
32
32
|
const initializeGoogleAuth = () => {
|
|
33
33
|
GoogleSignin.configure({
|
|
@@ -44,8 +44,8 @@ const initializeGoogleAuth = () => {
|
|
|
44
44
|
});
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
/**
|
|
48
|
-
* Sign in with Google and create/authenticate user account
|
|
47
|
+
/**
|
|
48
|
+
* Sign in with Google and create/authenticate user account
|
|
49
49
|
*/
|
|
50
50
|
export const signInWithGoogle = async () => {
|
|
51
51
|
try {
|
|
@@ -148,8 +148,8 @@ export const signInWithGoogle = async () => {
|
|
|
148
148
|
}
|
|
149
149
|
};
|
|
150
150
|
|
|
151
|
-
/**
|
|
152
|
-
* Create or authenticate user account on backend
|
|
151
|
+
/**
|
|
152
|
+
* Create or authenticate user account on backend
|
|
153
153
|
*/
|
|
154
154
|
const createUserAccount = async userData => {
|
|
155
155
|
try {
|
|
@@ -218,8 +218,8 @@ const createUserAccount = async userData => {
|
|
|
218
218
|
}
|
|
219
219
|
};
|
|
220
220
|
|
|
221
|
-
/**
|
|
222
|
-
* Check if user is already signed in with Google
|
|
221
|
+
/**
|
|
222
|
+
* Check if user is already signed in with Google
|
|
223
223
|
*/
|
|
224
224
|
export const isGoogleSignedIn = async () => {
|
|
225
225
|
try {
|
|
@@ -242,8 +242,8 @@ export const isGoogleSignedIn = async () => {
|
|
|
242
242
|
}
|
|
243
243
|
};
|
|
244
244
|
|
|
245
|
-
/**
|
|
246
|
-
* Sign out from Google
|
|
245
|
+
/**
|
|
246
|
+
* Sign out from Google
|
|
247
247
|
*/
|
|
248
248
|
export const signOutFromGoogle = async () => {
|
|
249
249
|
try {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import ImageResizer from '@bam.tech/react-native-image-resizer';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Comprehensive image compression service for React Native
|
|
5
|
-
* Supports iterative compression to meet specific size targets
|
|
3
|
+
/**
|
|
4
|
+
* Comprehensive image compression service for React Native
|
|
5
|
+
* Supports iterative compression to meet specific size targets
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* Get file size from URI (React Native compatible)
|
|
8
|
+
/**
|
|
9
|
+
* Get file size from URI (React Native compatible)
|
|
10
10
|
*/
|
|
11
11
|
const getFileSizeFromUri = async uri => {
|
|
12
12
|
try {
|
|
@@ -19,8 +19,8 @@ const getFileSizeFromUri = async uri => {
|
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
/**
|
|
23
|
-
* Convert image to base64 string
|
|
22
|
+
/**
|
|
23
|
+
* Convert image to base64 string
|
|
24
24
|
*/
|
|
25
25
|
const imageToBase64 = async uri => {
|
|
26
26
|
try {
|
|
@@ -47,8 +47,8 @@ const imageToBase64 = async uri => {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
/**
|
|
51
|
-
* Compress image with iterative quality reduction to meet size target
|
|
50
|
+
/**
|
|
51
|
+
* Compress image with iterative quality reduction to meet size target
|
|
52
52
|
*/
|
|
53
53
|
export const compressImageToTarget = async (imageUri, options = {}) => {
|
|
54
54
|
const {
|
|
@@ -210,8 +210,8 @@ export const compressImageToTarget = async (imageUri, options = {}) => {
|
|
|
210
210
|
}
|
|
211
211
|
};
|
|
212
212
|
|
|
213
|
-
/**
|
|
214
|
-
* Quick compression for profile pictures (300KB target)
|
|
213
|
+
/**
|
|
214
|
+
* Quick compression for profile pictures (300KB target)
|
|
215
215
|
*/
|
|
216
216
|
export const compressProfilePicture = async imageUri => {
|
|
217
217
|
return compressImageToTarget(imageUri, {
|
|
@@ -223,8 +223,8 @@ export const compressProfilePicture = async imageUri => {
|
|
|
223
223
|
});
|
|
224
224
|
};
|
|
225
225
|
|
|
226
|
-
/**
|
|
227
|
-
* Compress image for upload with custom settings
|
|
226
|
+
/**
|
|
227
|
+
* Compress image for upload with custom settings
|
|
228
228
|
*/
|
|
229
229
|
export const compressForUpload = async (imageUri, maxSizeKB = 300) => {
|
|
230
230
|
return compressImageToTarget(imageUri, {
|
|
@@ -236,8 +236,8 @@ export const compressForUpload = async (imageUri, maxSizeKB = 300) => {
|
|
|
236
236
|
});
|
|
237
237
|
};
|
|
238
238
|
|
|
239
|
-
/**
|
|
240
|
-
* Legacy function for backward compatibility
|
|
239
|
+
/**
|
|
240
|
+
* Legacy function for backward compatibility
|
|
241
241
|
*/
|
|
242
242
|
export const convertImageToOptimizedBase64 = async (imageUri, quality = 0.8) => {
|
|
243
243
|
const result = await compressImageToTarget(imageUri, {
|