@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
|
@@ -35,8 +35,8 @@ export const STORAGE_KEYS = {
|
|
|
35
35
|
|
|
36
36
|
// Authentication state
|
|
37
37
|
|
|
38
|
-
/**
|
|
39
|
-
* Save user progress to track where they left off
|
|
38
|
+
/**
|
|
39
|
+
* Save user progress to track where they left off
|
|
40
40
|
*/
|
|
41
41
|
export const saveUserProgress = async progress => {
|
|
42
42
|
try {
|
|
@@ -53,8 +53,8 @@ export const saveUserProgress = async progress => {
|
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
/**
|
|
57
|
-
* Get user progress to determine where to resume
|
|
56
|
+
/**
|
|
57
|
+
* Get user progress to determine where to resume
|
|
58
58
|
*/
|
|
59
59
|
export const getUserProgress = async () => {
|
|
60
60
|
try {
|
|
@@ -82,8 +82,8 @@ export const getUserProgress = async () => {
|
|
|
82
82
|
};
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
/**
|
|
86
|
-
* Save authentication state
|
|
85
|
+
/**
|
|
86
|
+
* Save authentication state
|
|
87
87
|
*/
|
|
88
88
|
export const saveAuthState = async authState => {
|
|
89
89
|
try {
|
|
@@ -103,8 +103,8 @@ export const saveAuthState = async authState => {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
/**
|
|
107
|
-
* Get authentication state
|
|
106
|
+
/**
|
|
107
|
+
* Get authentication state
|
|
108
108
|
*/
|
|
109
109
|
export const getAuthState = async () => {
|
|
110
110
|
try {
|
|
@@ -125,8 +125,8 @@ export const getAuthState = async () => {
|
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
-
/**
|
|
129
|
-
* Clear all user data (for logout)
|
|
128
|
+
/**
|
|
129
|
+
* Clear all user data (for logout)
|
|
130
130
|
*/
|
|
131
131
|
export const clearUserData = async () => {
|
|
132
132
|
try {
|
|
@@ -148,8 +148,8 @@ export const clearUserData = async () => {
|
|
|
148
148
|
}
|
|
149
149
|
};
|
|
150
150
|
|
|
151
|
-
/**
|
|
152
|
-
* Get resume navigation target based on user progress
|
|
151
|
+
/**
|
|
152
|
+
* Get resume navigation target based on user progress
|
|
153
153
|
*/
|
|
154
154
|
export const getResumeTarget = async () => {
|
|
155
155
|
try {
|
|
@@ -233,8 +233,8 @@ export const getResumeTarget = async () => {
|
|
|
233
233
|
}
|
|
234
234
|
};
|
|
235
235
|
|
|
236
|
-
/**
|
|
237
|
-
* Check if user has completed onboarding flow
|
|
236
|
+
/**
|
|
237
|
+
* Check if user has completed onboarding flow
|
|
238
238
|
*/
|
|
239
239
|
export const hasCompletedOnboarding = async () => {
|
|
240
240
|
try {
|
|
@@ -246,9 +246,9 @@ export const hasCompletedOnboarding = async () => {
|
|
|
246
246
|
}
|
|
247
247
|
};
|
|
248
248
|
|
|
249
|
-
/**
|
|
250
|
-
* Mark user as having reached the event page (completed full onboarding)
|
|
251
|
-
* This creates the token that ensures they always return to Results
|
|
249
|
+
/**
|
|
250
|
+
* Mark user as having reached the event page (completed full onboarding)
|
|
251
|
+
* This creates the token that ensures they always return to Results
|
|
252
252
|
*/
|
|
253
253
|
export const markEventPageReached = async eventData => {
|
|
254
254
|
try {
|
|
@@ -277,8 +277,8 @@ export const markEventPageReached = async eventData => {
|
|
|
277
277
|
}
|
|
278
278
|
};
|
|
279
279
|
|
|
280
|
-
/**
|
|
281
|
-
* Check if user has the event access token (completed onboarding)
|
|
280
|
+
/**
|
|
281
|
+
* Check if user has the event access token (completed onboarding)
|
|
282
282
|
*/
|
|
283
283
|
export const hasEventAccessToken = async () => {
|
|
284
284
|
try {
|
|
@@ -291,8 +291,8 @@ export const hasEventAccessToken = async () => {
|
|
|
291
291
|
}
|
|
292
292
|
};
|
|
293
293
|
|
|
294
|
-
/**
|
|
295
|
-
* Mark a step as completed
|
|
294
|
+
/**
|
|
295
|
+
* Mark a step as completed
|
|
296
296
|
*/
|
|
297
297
|
export const markStepCompleted = async step => {
|
|
298
298
|
try {
|
|
@@ -306,8 +306,8 @@ export const markStepCompleted = async step => {
|
|
|
306
306
|
}
|
|
307
307
|
};
|
|
308
308
|
|
|
309
|
-
/**
|
|
310
|
-
* Update user's last screen
|
|
309
|
+
/**
|
|
310
|
+
* Update user's last screen
|
|
311
311
|
*/
|
|
312
312
|
export const updateLastScreen = async (screen, params) => {
|
|
313
313
|
try {
|
|
@@ -320,8 +320,8 @@ export const updateLastScreen = async (screen, params) => {
|
|
|
320
320
|
}
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
-
/**
|
|
324
|
-
* Check if this is a returning user with existing progress
|
|
323
|
+
/**
|
|
324
|
+
* Check if this is a returning user with existing progress
|
|
325
325
|
*/
|
|
326
326
|
export const isReturningUser = async () => {
|
|
327
327
|
try {
|
|
@@ -334,8 +334,8 @@ export const isReturningUser = async () => {
|
|
|
334
334
|
}
|
|
335
335
|
};
|
|
336
336
|
|
|
337
|
-
/**
|
|
338
|
-
* Mark app as active (call this when app becomes active)
|
|
337
|
+
/**
|
|
338
|
+
* Mark app as active (call this when app becomes active)
|
|
339
339
|
*/
|
|
340
340
|
export const markAppActive = async () => {
|
|
341
341
|
try {
|
|
@@ -348,8 +348,8 @@ export const markAppActive = async () => {
|
|
|
348
348
|
}
|
|
349
349
|
};
|
|
350
350
|
|
|
351
|
-
/**
|
|
352
|
-
* Development utility: Get all stored progress data for debugging
|
|
351
|
+
/**
|
|
352
|
+
* Development utility: Get all stored progress data for debugging
|
|
353
353
|
*/
|
|
354
354
|
export const getDebugStorageInfo = async () => {
|
|
355
355
|
try {
|
|
@@ -369,8 +369,8 @@ export const getDebugStorageInfo = async () => {
|
|
|
369
369
|
}
|
|
370
370
|
};
|
|
371
371
|
|
|
372
|
-
/**
|
|
373
|
-
* Development utility: Clear all progress (for testing)
|
|
372
|
+
/**
|
|
373
|
+
* Development utility: Clear all progress (for testing)
|
|
374
374
|
*/
|
|
375
375
|
export const clearAllProgress = async () => {
|
|
376
376
|
try {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getEncryptedPinForAPI } from './pinEncryptionService';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Helper functions for training API modifications
|
|
3
|
+
/**
|
|
4
|
+
* Helper functions for training API modifications
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* Add encrypted PIN to training data if available
|
|
7
|
+
/**
|
|
8
|
+
* Add encrypted PIN to training data if available
|
|
9
9
|
*/
|
|
10
10
|
export const addEncryptedPinToTrainingData = async trainingData => {
|
|
11
11
|
try {
|
|
@@ -34,34 +34,34 @@ export const addEncryptedPinToTrainingData = async trainingData => {
|
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
/**
|
|
38
|
-
* Example of how to modify the training API call to include PIN
|
|
39
|
-
*
|
|
40
|
-
* Usage in UniversalOnboarding.tsx:
|
|
41
|
-
*
|
|
42
|
-
* ```typescript
|
|
43
|
-
* // Before sending to API
|
|
44
|
-
* const trainingData = {
|
|
45
|
-
* socketId,
|
|
46
|
-
* username: finalUsername,
|
|
47
|
-
* email: userInfo?.email || null,
|
|
48
|
-
* modelKey: null,
|
|
49
|
-
* connectedPlatforms: platformsList,
|
|
50
|
-
* platformConnections: connections
|
|
51
|
-
* };
|
|
52
|
-
*
|
|
53
|
-
* // Add encrypted PIN if needed
|
|
54
|
-
* const trainingDataWithPin = await addEncryptedPinToTrainingData(trainingData);
|
|
55
|
-
*
|
|
56
|
-
* // Send to API
|
|
57
|
-
* const response = await fetch('https://api2.onairos.uk/mobile-training/enoch', {
|
|
58
|
-
* method: 'POST',
|
|
59
|
-
* headers: {
|
|
60
|
-
* 'Content-Type': 'application/json',
|
|
61
|
-
* 'Authorization': `Bearer ${token}`
|
|
62
|
-
* },
|
|
63
|
-
* body: JSON.stringify(trainingDataWithPin)
|
|
64
|
-
* });
|
|
65
|
-
* ```
|
|
37
|
+
/**
|
|
38
|
+
* Example of how to modify the training API call to include PIN
|
|
39
|
+
*
|
|
40
|
+
* Usage in UniversalOnboarding.tsx:
|
|
41
|
+
*
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Before sending to API
|
|
44
|
+
* const trainingData = {
|
|
45
|
+
* socketId,
|
|
46
|
+
* username: finalUsername,
|
|
47
|
+
* email: userInfo?.email || null,
|
|
48
|
+
* modelKey: null,
|
|
49
|
+
* connectedPlatforms: platformsList,
|
|
50
|
+
* platformConnections: connections
|
|
51
|
+
* };
|
|
52
|
+
*
|
|
53
|
+
* // Add encrypted PIN if needed
|
|
54
|
+
* const trainingDataWithPin = await addEncryptedPinToTrainingData(trainingData);
|
|
55
|
+
*
|
|
56
|
+
* // Send to API
|
|
57
|
+
* const response = await fetch('https://api2.onairos.uk/mobile-training/enoch', {
|
|
58
|
+
* method: 'POST',
|
|
59
|
+
* headers: {
|
|
60
|
+
* 'Content-Type': 'application/json',
|
|
61
|
+
* 'Authorization': `Bearer ${token}`
|
|
62
|
+
* },
|
|
63
|
+
* body: JSON.stringify(trainingDataWithPin)
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
66
|
*/
|
|
67
67
|
//# sourceMappingURL=trainingApiHelpers.js.map
|
|
@@ -3,10 +3,10 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
3
3
|
import { compressProfilePicture } from './imageCompressionService';
|
|
4
4
|
import { API_CONFIG, getAuthHeaders } from '../config/api';
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* Get user identifier (ID or username) using multiple fallback methods
|
|
8
|
-
* Backend now supports both user IDs and usernames for profile picture uploads
|
|
9
|
-
* @returns Promise<string | null>
|
|
6
|
+
/**
|
|
7
|
+
* Get user identifier (ID or username) using multiple fallback methods
|
|
8
|
+
* Backend now supports both user IDs and usernames for profile picture uploads
|
|
9
|
+
* @returns Promise<string | null>
|
|
10
10
|
*/
|
|
11
11
|
const getUserIdWithFallbacks = async () => {
|
|
12
12
|
try {
|
|
@@ -84,8 +84,8 @@ const API_BASE_URL = API_CONFIG.BASE_URL;
|
|
|
84
84
|
|
|
85
85
|
// Interface for the transformed connection used by UI
|
|
86
86
|
|
|
87
|
-
/**
|
|
88
|
-
* Transform API connection to UI connection format
|
|
87
|
+
/**
|
|
88
|
+
* Transform API connection to UI connection format
|
|
89
89
|
*/
|
|
90
90
|
const transformAPIConnection = apiConnection => {
|
|
91
91
|
var _apiConnection$photo, _apiConnection$mutual;
|
|
@@ -126,10 +126,10 @@ const transformAPIConnection = apiConnection => {
|
|
|
126
126
|
};
|
|
127
127
|
};
|
|
128
128
|
|
|
129
|
-
/**
|
|
130
|
-
* Get user connections by username
|
|
131
|
-
* @param username - Username to fetch connections for
|
|
132
|
-
* @returns Promise<Connection[]>
|
|
129
|
+
/**
|
|
130
|
+
* Get user connections by username
|
|
131
|
+
* @param username - Username to fetch connections for
|
|
132
|
+
* @returns Promise<Connection[]>
|
|
133
133
|
*/
|
|
134
134
|
export const getUserConnectionsByUsername = async username => {
|
|
135
135
|
try {
|
|
@@ -176,10 +176,10 @@ export const getUserConnectionsByUsername = async username => {
|
|
|
176
176
|
}
|
|
177
177
|
};
|
|
178
178
|
|
|
179
|
-
/**
|
|
180
|
-
* Get user connections by user ID
|
|
181
|
-
* @param userId - User ID to fetch connections for
|
|
182
|
-
* @returns Promise<Connection[]>
|
|
179
|
+
/**
|
|
180
|
+
* Get user connections by user ID
|
|
181
|
+
* @param userId - User ID to fetch connections for
|
|
182
|
+
* @returns Promise<Connection[]>
|
|
183
183
|
*/
|
|
184
184
|
export const getUserConnectionsByUserId = async userId => {
|
|
185
185
|
try {
|
|
@@ -223,10 +223,10 @@ export const getUserConnectionsByUserId = async userId => {
|
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
|
|
226
|
-
/**
|
|
227
|
-
* Get user connections with automatic detection of user info
|
|
228
|
-
* PRIORITIZES the working email/username endpoint over the failing user ID endpoint
|
|
229
|
-
* @returns Promise<Connection[]>
|
|
226
|
+
/**
|
|
227
|
+
* Get user connections with automatic detection of user info
|
|
228
|
+
* PRIORITIZES the working email/username endpoint over the failing user ID endpoint
|
|
229
|
+
* @returns Promise<Connection[]>
|
|
230
230
|
*/
|
|
231
231
|
export const getUserConnections = async () => {
|
|
232
232
|
try {
|
|
@@ -309,12 +309,12 @@ export const getUserConnections = async () => {
|
|
|
309
309
|
}
|
|
310
310
|
};
|
|
311
311
|
|
|
312
|
-
/**
|
|
313
|
-
* Upload profile picture using base64 data with compression
|
|
314
|
-
* The backend identifies the user from the JWT token, no need for user ID in URL
|
|
315
|
-
* @param imageUri - Image URI (file:// or base64)
|
|
316
|
-
* @param fileType - File type (jpg, png) - optional, will be extracted from imageUri if not provided
|
|
317
|
-
* @returns Promise<{ success: boolean; photoUrl?: string; error?: string }>
|
|
312
|
+
/**
|
|
313
|
+
* Upload profile picture using base64 data with compression
|
|
314
|
+
* The backend identifies the user from the JWT token, no need for user ID in URL
|
|
315
|
+
* @param imageUri - Image URI (file:// or base64)
|
|
316
|
+
* @param fileType - File type (jpg, png) - optional, will be extracted from imageUri if not provided
|
|
317
|
+
* @returns Promise<{ success: boolean; photoUrl?: string; error?: string }>
|
|
318
318
|
*/
|
|
319
319
|
export const uploadProfilePicture = async (imageUri, fileType) => {
|
|
320
320
|
try {
|
|
@@ -12,8 +12,8 @@ const PortalContext = /*#__PURE__*/React.createContext({
|
|
|
12
12
|
unmount: () => {}
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
* Portal Host component - place this at the root of your app
|
|
15
|
+
/**
|
|
16
|
+
* Portal Host component - place this at the root of your app
|
|
17
17
|
*/
|
|
18
18
|
export const PortalHost = ({
|
|
19
19
|
children
|
|
@@ -61,8 +61,8 @@ export const PortalHost = ({
|
|
|
61
61
|
}, portals[Number(key)])));
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
/**
|
|
65
|
-
* Portal component - renders children into the PortalHost
|
|
64
|
+
/**
|
|
65
|
+
* Portal component - renders children into the PortalHost
|
|
66
66
|
*/
|
|
67
67
|
export const Portal = ({
|
|
68
68
|
children
|
package/lib/module/utils/api.js
CHANGED
|
@@ -2,9 +2,9 @@ import axios from 'axios';
|
|
|
2
2
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
3
3
|
const API_URL = 'https://api2.onairos.uk';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Create an API instance with authorization headers
|
|
7
|
-
* @returns {Promise<Object>} - The axios instance
|
|
5
|
+
/**
|
|
6
|
+
* Create an API instance with authorization headers
|
|
7
|
+
* @returns {Promise<Object>} - The axios instance
|
|
8
8
|
*/
|
|
9
9
|
export const createApiInstance = async () => {
|
|
10
10
|
const token = await AsyncStorage.getItem('onairosToken');
|
|
@@ -19,9 +19,9 @@ export const createApiInstance = async () => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
/**
|
|
23
|
-
* Validate the domain with the Onairos API
|
|
24
|
-
* @returns {Promise<Object>} - The validation response
|
|
22
|
+
/**
|
|
23
|
+
* Validate the domain with the Onairos API
|
|
24
|
+
* @returns {Promise<Object>} - The validation response
|
|
25
25
|
*/
|
|
26
26
|
export const validateDomain = async () => {
|
|
27
27
|
try {
|
|
@@ -36,11 +36,11 @@ export const validateDomain = async () => {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
/**
|
|
40
|
-
* Fetch account information
|
|
41
|
-
* @param {string} identifier - The username or email
|
|
42
|
-
* @param {boolean} isEmail - Whether the identifier is an email
|
|
43
|
-
* @returns {Promise<Object>} - The account information
|
|
39
|
+
/**
|
|
40
|
+
* Fetch account information
|
|
41
|
+
* @param {string} identifier - The username or email
|
|
42
|
+
* @param {boolean} isEmail - Whether the identifier is an email
|
|
43
|
+
* @returns {Promise<Object>} - The account information
|
|
44
44
|
*/
|
|
45
45
|
export const fetchAccountInfo = async (identifier, isEmail = false) => {
|
|
46
46
|
try {
|
|
@@ -63,12 +63,12 @@ export const fetchAccountInfo = async (identifier, isEmail = false) => {
|
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
/**
|
|
67
|
-
* Get API URL for data requests
|
|
68
|
-
* @param {Array} approvedRequests - The approved data requests
|
|
69
|
-
* @param {string} pin - The encrypted PIN
|
|
70
|
-
* @param {string} othentSub - The hashed Othent sub
|
|
71
|
-
* @returns {Promise<Object>} - The API URL response
|
|
66
|
+
/**
|
|
67
|
+
* Get API URL for data requests
|
|
68
|
+
* @param {Array} approvedRequests - The approved data requests
|
|
69
|
+
* @param {string} pin - The encrypted PIN
|
|
70
|
+
* @param {string} othentSub - The hashed Othent sub
|
|
71
|
+
* @returns {Promise<Object>} - The API URL response
|
|
72
72
|
*/
|
|
73
73
|
export const getApiUrl = async (approvedRequests, pin, othentSub) => {
|
|
74
74
|
try {
|
|
@@ -91,13 +91,13 @@ export const getApiUrl = async (approvedRequests, pin, othentSub) => {
|
|
|
91
91
|
}
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
-
/**
|
|
95
|
-
* Create a new user account
|
|
96
|
-
* @param {string} othentSub - The hashed Othent sub
|
|
97
|
-
* @param {string} pin - The PIN
|
|
98
|
-
* @param {Array} socialAccounts - The selected social accounts
|
|
99
|
-
* @param {string} email - The user's email
|
|
100
|
-
* @returns {Promise<Object>} - The account creation response
|
|
94
|
+
/**
|
|
95
|
+
* Create a new user account
|
|
96
|
+
* @param {string} othentSub - The hashed Othent sub
|
|
97
|
+
* @param {string} pin - The PIN
|
|
98
|
+
* @param {Array} socialAccounts - The selected social accounts
|
|
99
|
+
* @param {string} email - The user's email
|
|
100
|
+
* @returns {Promise<Object>} - The account creation response
|
|
101
101
|
*/
|
|
102
102
|
export const createAccount = async (othentSub, pin, socialAccounts, email) => {
|
|
103
103
|
try {
|
package/lib/module/utils/auth.js
CHANGED
|
@@ -2,10 +2,10 @@ import axios from 'axios';
|
|
|
2
2
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
3
3
|
const API_URL = 'https://api2.onairos.uk';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Get the encrypted PIN for a user
|
|
7
|
-
* @param {string} hashedOthentSub - The hashed Othent sub
|
|
8
|
-
* @returns {Promise<Object>} - The response containing the encrypted PIN
|
|
5
|
+
/**
|
|
6
|
+
* Get the encrypted PIN for a user
|
|
7
|
+
* @param {string} hashedOthentSub - The hashed Othent sub
|
|
8
|
+
* @returns {Promise<Object>} - The response containing the encrypted PIN
|
|
9
9
|
*/
|
|
10
10
|
export const getPin = async hashedOthentSub => {
|
|
11
11
|
try {
|
|
@@ -19,10 +19,10 @@ export const getPin = async hashedOthentSub => {
|
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
/**
|
|
23
|
-
* Verify a token with the Onairos API
|
|
24
|
-
* @param {string} token - The token to verify
|
|
25
|
-
* @returns {Promise<boolean>} - Whether the token is valid
|
|
22
|
+
/**
|
|
23
|
+
* Verify a token with the Onairos API
|
|
24
|
+
* @param {string} token - The token to verify
|
|
25
|
+
* @returns {Promise<boolean>} - Whether the token is valid
|
|
26
26
|
*/
|
|
27
27
|
export const verifyToken = async token => {
|
|
28
28
|
try {
|
|
@@ -38,11 +38,11 @@ export const verifyToken = async token => {
|
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
* Store authentication data
|
|
43
|
-
* @param {string} token - The authentication token
|
|
44
|
-
* @param {string} username - The username
|
|
45
|
-
* @param {Object} othentData - The Othent user data
|
|
41
|
+
/**
|
|
42
|
+
* Store authentication data
|
|
43
|
+
* @param {string} token - The authentication token
|
|
44
|
+
* @param {string} username - The username
|
|
45
|
+
* @param {Object} othentData - The Othent user data
|
|
46
46
|
*/
|
|
47
47
|
export const storeAuthData = async (token, username = null, othentData = null) => {
|
|
48
48
|
try {
|
|
@@ -59,8 +59,8 @@ export const storeAuthData = async (token, username = null, othentData = null) =
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
-
/**
|
|
63
|
-
* Clear authentication data
|
|
62
|
+
/**
|
|
63
|
+
* Clear authentication data
|
|
64
64
|
*/
|
|
65
65
|
export const clearAuthData = async () => {
|
|
66
66
|
try {
|
|
@@ -73,9 +73,9 @@ export const clearAuthData = async () => {
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
/**
|
|
77
|
-
* Get stored authentication data
|
|
78
|
-
* @returns {Promise<Object>} - The stored authentication data
|
|
76
|
+
/**
|
|
77
|
+
* Get stored authentication data
|
|
78
|
+
* @returns {Promise<Object>} - The stored authentication data
|
|
79
79
|
*/
|
|
80
80
|
export const getStoredAuthData = async () => {
|
|
81
81
|
try {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { RSA } from 'react-native-rsa-native';
|
|
2
2
|
import { sha256 as cryptoSha256 } from 'react-native-crypto-js';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Encrypt data using RSA
|
|
6
|
-
* @param {string} publicKey - The RSA public key
|
|
7
|
-
* @param {string} data - The data to encrypt
|
|
8
|
-
* @returns {Promise<string>} - The encrypted data
|
|
4
|
+
/**
|
|
5
|
+
* Encrypt data using RSA
|
|
6
|
+
* @param {string} publicKey - The RSA public key
|
|
7
|
+
* @param {string} data - The data to encrypt
|
|
8
|
+
* @returns {Promise<string>} - The encrypted data
|
|
9
9
|
*/
|
|
10
10
|
export const rsaEncrypt = async (publicKey, data) => {
|
|
11
11
|
try {
|
|
@@ -24,19 +24,19 @@ export const rsaEncrypt = async (publicKey, data) => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Hash data using SHA-256
|
|
29
|
-
* @param {string} data - The data to hash
|
|
30
|
-
* @returns {string} - The hashed data
|
|
27
|
+
/**
|
|
28
|
+
* Hash data using SHA-256
|
|
29
|
+
* @param {string} data - The data to hash
|
|
30
|
+
* @returns {string} - The hashed data
|
|
31
31
|
*/
|
|
32
32
|
export const sha256 = data => {
|
|
33
33
|
return cryptoSha256(data).toString();
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
/**
|
|
37
|
-
* Convert a base64 string to a buffer
|
|
38
|
-
* @param {string} base64String - The base64 string to convert
|
|
39
|
-
* @returns {ArrayBuffer} - The converted buffer
|
|
36
|
+
/**
|
|
37
|
+
* Convert a base64 string to a buffer
|
|
38
|
+
* @param {string} base64String - The base64 string to convert
|
|
39
|
+
* @returns {ArrayBuffer} - The converted buffer
|
|
40
40
|
*/
|
|
41
41
|
export const base64ToBuffer = base64String => {
|
|
42
42
|
try {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { onairosApi } from '../api';
|
|
2
|
-
/**
|
|
3
|
-
* Encrypt a model key using RSA with a public key
|
|
4
|
-
* @param publicKey The public key to encrypt with
|
|
5
|
-
* @param modelKey The model key to encrypt
|
|
6
|
-
* @returns The encrypted model key
|
|
2
|
+
/**
|
|
3
|
+
* Encrypt a model key using RSA with a public key
|
|
4
|
+
* @param publicKey The public key to encrypt with
|
|
5
|
+
* @param modelKey The model key to encrypt
|
|
6
|
+
* @returns The encrypted model key
|
|
7
7
|
*/
|
|
8
8
|
export const encryptModelKey = (publicKey, modelKey) => {
|
|
9
9
|
try {
|
|
@@ -24,9 +24,9 @@ export const encryptModelKey = (publicKey, modelKey) => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Get the server's public key
|
|
29
|
-
* @returns The server's public key
|
|
27
|
+
/**
|
|
28
|
+
* Get the server's public key
|
|
29
|
+
* @returns The server's public key
|
|
30
30
|
*/
|
|
31
31
|
export const getServerPublicKey = async () => {
|
|
32
32
|
try {
|
|
@@ -49,10 +49,10 @@ export const getServerPublicKey = async () => {
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* Hash a string using SHA-256
|
|
54
|
-
* @param input The string to hash
|
|
55
|
-
* @returns The hashed string
|
|
52
|
+
/**
|
|
53
|
+
* Hash a string using SHA-256
|
|
54
|
+
* @param input The string to hash
|
|
55
|
+
* @returns The hashed string
|
|
56
56
|
*/
|
|
57
57
|
export const hashString = async input => {
|
|
58
58
|
try {
|