@onairos/react-native 3.1.15 → 3.1.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 (191) hide show
  1. package/README.md +404 -0
  2. package/lib/commonjs/assets/images/Checkbox.svg +3 -3
  3. package/lib/commonjs/assets/images/EnochE.svg +19 -19
  4. package/lib/commonjs/assets/images/Personalityprofile.svg +3 -3
  5. package/lib/commonjs/assets/images/Personalitytraits.svg +3 -3
  6. package/lib/commonjs/assets/images/Userpreferences.svg +3 -3
  7. package/lib/commonjs/assets/images/arrow.svg +20 -20
  8. package/lib/commonjs/assets/images/basicproficon.svg +43 -43
  9. package/lib/commonjs/assets/images/basicprofile.svg +3 -3
  10. package/lib/commonjs/assets/images/checkmark.svg +4 -4
  11. package/lib/commonjs/assets/images/contentanalysis.svg +3 -3
  12. package/lib/commonjs/assets/images/contenticon.svg +23 -23
  13. package/lib/commonjs/assets/images/personalityicon.svg +18 -18
  14. package/lib/commonjs/assets/images/x-close.svg +3 -3
  15. package/lib/commonjs/components/OnairosSignInButton.js +32 -74
  16. package/lib/commonjs/components/OnairosSignInButton.js.map +1 -1
  17. package/lib/commonjs/components/UniversalOnboarding.js +4 -4
  18. package/lib/commonjs/config/api.js +2 -2
  19. package/lib/commonjs/hooks/useConnections.js +6 -6
  20. package/lib/commonjs/hooks/useUserConnections.js +10 -10
  21. package/lib/commonjs/index.js +5 -12
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/services/apiClient.js +35 -35
  24. package/lib/commonjs/services/apiKeyService.js +99 -99
  25. package/lib/commonjs/services/authService.js +82 -82
  26. package/lib/commonjs/services/biometricPinService.js +10 -10
  27. package/lib/commonjs/services/connectedAccountsService.js +32 -32
  28. package/lib/commonjs/services/googleAuthService.js +15 -15
  29. package/lib/commonjs/services/imageCompressionService.js +15 -15
  30. package/lib/commonjs/services/jwtStorageService.js +59 -59
  31. package/lib/commonjs/services/mobileTrainingService.js +14 -14
  32. package/lib/commonjs/services/pinEncryptionService.js +10 -10
  33. package/lib/commonjs/services/pinStorageUtils.js +15 -15
  34. package/lib/commonjs/services/platformAuthService.js +47 -47
  35. package/lib/commonjs/services/storageService.js +31 -31
  36. package/lib/commonjs/services/trainingApiHelpers.js +33 -33
  37. package/lib/commonjs/services/userConnectionsService.js +24 -24
  38. package/lib/commonjs/utils/Portal.js +4 -4
  39. package/lib/commonjs/utils/api.js +24 -24
  40. package/lib/commonjs/utils/auth.js +18 -18
  41. package/lib/commonjs/utils/crypto.js +13 -13
  42. package/lib/commonjs/utils/encryption.js +12 -12
  43. package/lib/commonjs/utils/eventUtils.js +52 -52
  44. package/lib/commonjs/utils/programmaticFlow.js +16 -16
  45. package/lib/commonjs/utils/retryHelper.js +27 -27
  46. package/lib/module/assets/images/Checkbox.svg +3 -3
  47. package/lib/module/assets/images/EnochE.svg +19 -19
  48. package/lib/module/assets/images/Personalityprofile.svg +3 -3
  49. package/lib/module/assets/images/Personalitytraits.svg +3 -3
  50. package/lib/module/assets/images/Userpreferences.svg +3 -3
  51. package/lib/module/assets/images/arrow.svg +20 -20
  52. package/lib/module/assets/images/basicproficon.svg +43 -43
  53. package/lib/module/assets/images/basicprofile.svg +3 -3
  54. package/lib/module/assets/images/checkmark.svg +4 -4
  55. package/lib/module/assets/images/contentanalysis.svg +3 -3
  56. package/lib/module/assets/images/contenticon.svg +23 -23
  57. package/lib/module/assets/images/personalityicon.svg +18 -18
  58. package/lib/module/assets/images/x-close.svg +3 -3
  59. package/lib/module/components/OnairosSignInButton.js +32 -74
  60. package/lib/module/components/OnairosSignInButton.js.map +1 -1
  61. package/lib/module/components/UniversalOnboarding.js +4 -4
  62. package/lib/module/config/api.js +2 -2
  63. package/lib/module/hooks/useConnections.js +6 -6
  64. package/lib/module/hooks/useUserConnections.js +10 -10
  65. package/lib/module/index.js +5 -6
  66. package/lib/module/index.js.map +1 -1
  67. package/lib/module/services/apiClient.js +35 -35
  68. package/lib/module/services/apiKeyService.js +99 -99
  69. package/lib/module/services/authService.js +82 -82
  70. package/lib/module/services/biometricPinService.js +10 -10
  71. package/lib/module/services/connectedAccountsService.js +32 -32
  72. package/lib/module/services/googleAuthService.js +15 -15
  73. package/lib/module/services/imageCompressionService.js +15 -15
  74. package/lib/module/services/jwtStorageService.js +59 -59
  75. package/lib/module/services/mobileTrainingService.js +14 -14
  76. package/lib/module/services/pinEncryptionService.js +10 -10
  77. package/lib/module/services/pinStorageUtils.js +15 -15
  78. package/lib/module/services/platformAuthService.js +47 -47
  79. package/lib/module/services/storageService.js +31 -31
  80. package/lib/module/services/trainingApiHelpers.js +33 -33
  81. package/lib/module/services/userConnectionsService.js +24 -24
  82. package/lib/module/utils/Portal.js +4 -4
  83. package/lib/module/utils/api.js +24 -24
  84. package/lib/module/utils/auth.js +18 -18
  85. package/lib/module/utils/crypto.js +13 -13
  86. package/lib/module/utils/encryption.js +12 -12
  87. package/lib/module/utils/eventUtils.js +52 -52
  88. package/lib/module/utils/programmaticFlow.js +16 -16
  89. package/lib/module/utils/retryHelper.js +27 -27
  90. package/lib/typescript/components/OnairosSignInButton.d.ts.map +1 -1
  91. package/lib/typescript/index.d.ts +0 -1
  92. package/lib/typescript/index.d.ts.map +1 -1
  93. package/package.json +163 -163
  94. package/src/api/index.ts +151 -151
  95. package/src/assets/images/Checkbox.svg +3 -3
  96. package/src/assets/images/EnochE.svg +19 -19
  97. package/src/assets/images/Personalityprofile.svg +3 -3
  98. package/src/assets/images/Personalitytraits.svg +3 -3
  99. package/src/assets/images/Userpreferences.svg +3 -3
  100. package/src/assets/images/arrow.svg +20 -20
  101. package/src/assets/images/basicproficon.svg +43 -43
  102. package/src/assets/images/basicprofile.svg +3 -3
  103. package/src/assets/images/checkmark.svg +4 -4
  104. package/src/assets/images/contentanalysis.svg +3 -3
  105. package/src/assets/images/contenticon.svg +23 -23
  106. package/src/assets/images/personalityicon.svg +18 -18
  107. package/src/assets/images/x-close.svg +3 -3
  108. package/src/components/BodyText.tsx +33 -33
  109. package/src/components/BrandMark.tsx +62 -62
  110. package/src/components/CodeInput.tsx +32 -32
  111. package/src/components/DataRequestScreen.tsx +355 -355
  112. package/src/components/EmailInput.tsx +31 -31
  113. package/src/components/EmailVerificationModal.tsx +363 -363
  114. package/src/components/ExistingUserDataConfirmation.tsx +506 -506
  115. package/src/components/GoogleButton.tsx +55 -55
  116. package/src/components/HeadingGroup.tsx +49 -49
  117. package/src/components/ModalHeader.tsx +125 -125
  118. package/src/components/ModalSheet.tsx +57 -57
  119. package/src/components/Onairos.tsx +422 -422
  120. package/src/components/OnairosButton.tsx +339 -339
  121. package/src/components/OnairosSignInButton.tsx +130 -166
  122. package/src/components/Overlay.tsx +506 -506
  123. package/src/components/PersonaImage.tsx +79 -79
  124. package/src/components/PersonaLoadingScreen.tsx +201 -201
  125. package/src/components/PersonalizationConsentScreen.tsx +410 -410
  126. package/src/components/PinCreationScreen.tsx +492 -492
  127. package/src/components/PinInput.tsx +555 -555
  128. package/src/components/PlatformConnectorsStep.tsx +891 -891
  129. package/src/components/PlatformList.tsx +144 -144
  130. package/src/components/PlatformToggle.tsx +226 -226
  131. package/src/components/PrimaryButton.tsx +213 -213
  132. package/src/components/SignInMatchAnimation.tsx +225 -225
  133. package/src/components/SignInStep.tsx +217 -217
  134. package/src/components/TrainingModal.tsx +1047 -1047
  135. package/src/components/UniversalOnboarding.tsx +2887 -2887
  136. package/src/components/VerificationStep.tsx +198 -198
  137. package/src/components/WelcomeScreen.tsx +473 -473
  138. package/src/components/icons/Basicproficon.tsx +30 -30
  139. package/src/components/icons/Basicprofile.tsx +17 -17
  140. package/src/components/icons/Checkbox.tsx +17 -17
  141. package/src/components/icons/Checkmark.tsx +24 -24
  142. package/src/components/icons/Contentanalysis.tsx +17 -17
  143. package/src/components/icons/Contenticon.tsx +30 -30
  144. package/src/components/icons/EnochE.tsx +39 -39
  145. package/src/components/icons/Personalityicon.tsx +22 -22
  146. package/src/components/icons/Personalityprofile.tsx +17 -17
  147. package/src/components/icons/Personalitytraits.tsx +17 -17
  148. package/src/components/icons/Userpreferences.tsx +17 -17
  149. package/src/components/icons/index.ts +12 -12
  150. package/src/components/onboarding/OAuthWebView.tsx +232 -232
  151. package/src/config/api.ts +25 -25
  152. package/src/context/AuthContext.tsx +393 -393
  153. package/src/hooks/useConnectedAccounts.ts +138 -138
  154. package/src/hooks/useConnections.ts +161 -161
  155. package/src/hooks/useCredentials.ts +174 -174
  156. package/src/hooks/useUserConnections.ts +165 -165
  157. package/src/index.js +14 -14
  158. package/src/index.ts +94 -95
  159. package/src/services/apiClient.ts +336 -336
  160. package/src/services/apiKeyService.ts +919 -919
  161. package/src/services/authService.ts +1008 -1008
  162. package/src/services/biometricPinService.ts +192 -192
  163. package/src/services/connectedAccountsService.ts +289 -289
  164. package/src/services/googleAuthService.ts +279 -279
  165. package/src/services/imageCompressionService.ts +302 -302
  166. package/src/services/jwtStorageService.ts +256 -256
  167. package/src/services/mobileTrainingService.ts +203 -203
  168. package/src/services/pinEncryptionService.ts +75 -75
  169. package/src/services/pinStorageUtils.ts +96 -96
  170. package/src/services/platformAuthService.ts +1346 -1346
  171. package/src/services/storageService.ts +451 -451
  172. package/src/services/trainingApiHelpers.ts +66 -66
  173. package/src/services/userConnectionsService.ts +556 -556
  174. package/src/services/youtubeMigrationService.ts +453 -453
  175. package/src/theme/index.ts +239 -239
  176. package/src/types/ambient.d.ts +28 -28
  177. package/src/types/index.ts +265 -265
  178. package/src/types/node-fix.d.ts +18 -18
  179. package/src/types/node-override.d.ts +23 -23
  180. package/src/types/opacity.d.ts +15 -15
  181. package/src/types/types.d.ts +17 -17
  182. package/src/utils/Portal.tsx +82 -82
  183. package/src/utils/api.js +111 -111
  184. package/src/utils/auth.js +103 -103
  185. package/src/utils/crypto.js +59 -59
  186. package/src/utils/encryption.ts +68 -68
  187. package/src/utils/eventUtils.ts +302 -302
  188. package/src/utils/haptics.ts +58 -58
  189. package/src/utils/imagePreloader.ts +2 -2
  190. package/src/utils/programmaticFlow.ts +112 -112
  191. package/src/utils/retryHelper.ts +274 -274
@@ -1,12 +1,12 @@
1
1
  import { biometricPinService } from './biometricPinService';
2
2
 
3
- /**
4
- * Utility functions for PIN storage management
3
+ /**
4
+ * Utility functions for PIN storage management
5
5
  */
6
6
 
7
- /**
8
- * Get the stored PIN for training/authentication purposes
9
- * This will prompt for biometric authentication
7
+ /**
8
+ * Get the stored PIN for training/authentication purposes
9
+ * This will prompt for biometric authentication
10
10
  */
11
11
  export const getStoredPinForTraining = async () => {
12
12
  try {
@@ -34,8 +34,8 @@ export const getStoredPinForTraining = async () => {
34
34
  }
35
35
  };
36
36
 
37
- /**
38
- * Check if user has a PIN stored securely
37
+ /**
38
+ * Check if user has a PIN stored securely
39
39
  */
40
40
  export const hasStoredPin = async () => {
41
41
  try {
@@ -46,8 +46,8 @@ export const hasStoredPin = async () => {
46
46
  }
47
47
  };
48
48
 
49
- /**
50
- * Remove stored PIN (for logout/reset purposes)
49
+ /**
50
+ * Remove stored PIN (for logout/reset purposes)
51
51
  */
52
52
  export const clearStoredPin = async () => {
53
53
  try {
@@ -59,9 +59,9 @@ export const clearStoredPin = async () => {
59
59
  }
60
60
  };
61
61
 
62
- /**
63
- * Get PIN for passing to training component
64
- * This function can be called from the onboarding flow
62
+ /**
63
+ * Get PIN for passing to training component
64
+ * This function can be called from the onboarding flow
65
65
  */
66
66
  export const getPinForTraining = async tempPin => {
67
67
  // If a temporary PIN is provided (from the PIN input), use it
@@ -74,9 +74,9 @@ export const getPinForTraining = async tempPin => {
74
74
  return await getStoredPinForTraining();
75
75
  };
76
76
 
77
- /**
78
- * Store PIN temporarily in memory for training component
79
- * This is used when PIN is entered but not yet stored biometrically
77
+ /**
78
+ * Store PIN temporarily in memory for training component
79
+ * This is used when PIN is entered but not yet stored biometrically
80
80
  */
81
81
  let temporaryPin = null;
82
82
  export const setTemporaryPin = pin => {
@@ -1,6 +1,6 @@
1
- /**
2
- * Platform Authentication Service
3
- * Handles OAuth flows for different platforms
1
+ /**
2
+ * Platform Authentication Service
3
+ * Handles OAuth flows for different platforms
4
4
  */
5
5
 
6
6
  import { GoogleSignin, statusCodes } from '@react-native-google-signin/google-signin';
@@ -86,16 +86,16 @@ const OAUTH_CONFIG = {
86
86
  }
87
87
  };
88
88
 
89
- /**
90
- * Check if the platform has a native SDK
89
+ /**
90
+ * Check if the platform has a native SDK
91
91
  */
92
92
  export const hasNativeSDK = platform => {
93
93
  var _OAUTH_CONFIG$platfor;
94
94
  return ((_OAUTH_CONFIG$platfor = OAUTH_CONFIG[platform]) === null || _OAUTH_CONFIG$platfor === void 0 ? void 0 : _OAUTH_CONFIG$platfor.hasNativeSDK) || false;
95
95
  };
96
96
 
97
- /**
98
- * Initiate OAuth flow for a platform
97
+ /**
98
+ * Initiate OAuth flow for a platform
99
99
  */
100
100
  export const initiateOAuth = async (platform, username) => {
101
101
  try {
@@ -153,9 +153,9 @@ export const initiateOAuth = async (platform, username) => {
153
153
  }
154
154
  };
155
155
 
156
- /**
157
- * Initialize Google Sign-In configuration with enhanced refresh token support
158
- * Updated with CRITICAL parameters for refresh token generation
156
+ /**
157
+ * Initialize Google Sign-In configuration with enhanced refresh token support
158
+ * Updated with CRITICAL parameters for refresh token generation
159
159
  */
160
160
  const initializeGoogleSignIn = () => {
161
161
  GoogleSignin.configure({
@@ -178,9 +178,9 @@ const initializeGoogleSignIn = () => {
178
178
  });
179
179
  };
180
180
 
181
- /**
182
- * Force YouTube reconnection with consent screen to get refresh tokens
183
- * This is the key function to fix YouTube token expiry issues
181
+ /**
182
+ * Force YouTube reconnection with consent screen to get refresh tokens
183
+ * This is the key function to fix YouTube token expiry issues
184
184
  */
185
185
  export const forceYouTubeReconnectionWithConsent = async username => {
186
186
  try {
@@ -465,8 +465,8 @@ export const forceYouTubeReconnectionWithConsent = async username => {
465
465
  }
466
466
  };
467
467
 
468
- /**
469
- * Alternative method: Force consent by revoking existing permissions
468
+ /**
469
+ * Alternative method: Force consent by revoking existing permissions
470
470
  */
471
471
  export const forceYouTubeReconnectionWithRevoke = async username => {
472
472
  try {
@@ -516,8 +516,8 @@ export const forceYouTubeReconnectionWithRevoke = async username => {
516
516
  }
517
517
  };
518
518
 
519
- /**
520
- * Fix YouTube connection for a specific user (like nicholase50)
519
+ /**
520
+ * Fix YouTube connection for a specific user (like nicholase50)
521
521
  */
522
522
  export const fixUserYouTubeConnection = async username => {
523
523
  console.log(`🔧 Fixing YouTube connection for user: ${username}`);
@@ -541,8 +541,8 @@ export const fixUserYouTubeConnection = async username => {
541
541
  return false;
542
542
  };
543
543
 
544
- /**
545
- * Get fresh tokens using refresh token
544
+ /**
545
+ * Get fresh tokens using refresh token
546
546
  */
547
547
  const refreshGoogleTokens = async () => {
548
548
  try {
@@ -582,8 +582,8 @@ const refreshGoogleTokens = async () => {
582
582
  }
583
583
  };
584
584
 
585
- /**
586
- * Debug YouTube tokens to verify refresh token availability
585
+ /**
586
+ * Debug YouTube tokens to verify refresh token availability
587
587
  */
588
588
  const debugYouTubeTokens = async () => {
589
589
  try {
@@ -609,8 +609,8 @@ const debugYouTubeTokens = async () => {
609
609
  }
610
610
  };
611
611
 
612
- /**
613
- * Force fresh YouTube reconnection with proper refresh token
612
+ /**
613
+ * Force fresh YouTube reconnection with proper refresh token
614
614
  */
615
615
  export const reconnectYouTube = async username => {
616
616
  try {
@@ -658,8 +658,8 @@ export const reconnectYouTube = async username => {
658
658
  }
659
659
  };
660
660
 
661
- /**
662
- * Initiate native authentication for platforms with SDKs
661
+ /**
662
+ * Initiate native authentication for platforms with SDKs
663
663
  */
664
664
  export const initiateNativeAuth = async (platform, username) => {
665
665
  if (platform === 'youtube') {
@@ -991,16 +991,16 @@ export const initiateNativeAuth = async (platform, username) => {
991
991
  return false;
992
992
  };
993
993
 
994
- /**
995
- * Check if a URL is an OAuth callback
994
+ /**
995
+ * Check if a URL is an OAuth callback
996
996
  */
997
997
  export const isOAuthCallback = url => {
998
998
  return url.includes('auth/callback') || url.includes('code=');
999
999
  };
1000
1000
 
1001
- /**
1002
- * Exchange authorization code for access token
1003
- * This would typically be done on a server, but we're simulating it here
1001
+ /**
1002
+ * Exchange authorization code for access token
1003
+ * This would typically be done on a server, but we're simulating it here
1004
1004
  */
1005
1005
  export const exchangeCodeForToken = async (code, platform) => {
1006
1006
  console.log(`Exchanging code for token for platform: ${platform}`);
@@ -1039,9 +1039,9 @@ export const exchangeCodeForToken = async (code, platform) => {
1039
1039
  }
1040
1040
  };
1041
1041
 
1042
- /**
1043
- * Refresh YouTube tokens when they expire
1044
- * This should be called when the backend reports token expiry
1042
+ /**
1043
+ * Refresh YouTube tokens when they expire
1044
+ * This should be called when the backend reports token expiry
1045
1045
  */
1046
1046
  export const refreshYouTubeTokens = async () => {
1047
1047
  try {
@@ -1101,9 +1101,9 @@ export const refreshYouTubeTokens = async () => {
1101
1101
  }
1102
1102
  };
1103
1103
 
1104
- /**
1105
- * Trigger training restart after YouTube re-authentication
1106
- * This signals the backend to restart training with the new refresh token
1104
+ /**
1105
+ * Trigger training restart after YouTube re-authentication
1106
+ * This signals the backend to restart training with the new refresh token
1107
1107
  */
1108
1108
  const triggerTrainingRestart = async (username, authToken) => {
1109
1109
  try {
@@ -1136,9 +1136,9 @@ const triggerTrainingRestart = async (username, authToken) => {
1136
1136
  }
1137
1137
  };
1138
1138
 
1139
- /**
1140
- * Test function to verify YouTube refresh token functionality
1141
- * Call this in your app to test the YouTube connection
1139
+ /**
1140
+ * Test function to verify YouTube refresh token functionality
1141
+ * Call this in your app to test the YouTube connection
1142
1142
  */
1143
1143
  export const testYouTubeRefreshToken = async username => {
1144
1144
  console.log('🧪 Testing YouTube refresh token functionality...');
@@ -1165,8 +1165,8 @@ export const testYouTubeRefreshToken = async username => {
1165
1165
  }
1166
1166
  };
1167
1167
 
1168
- /**
1169
- * Request email verification code
1168
+ /**
1169
+ * Request email verification code
1170
1170
  */
1171
1171
  export const requestEmailVerification = async (email, testMode = false) => {
1172
1172
  try {
@@ -1201,8 +1201,8 @@ export const requestEmailVerification = async (email, testMode = false) => {
1201
1201
  }
1202
1202
  };
1203
1203
 
1204
- /**
1205
- * Verify email code
1204
+ /**
1205
+ * Verify email code
1206
1206
  */
1207
1207
  export const verifyEmailCode = async (email, code, testMode = false) => {
1208
1208
  try {
@@ -1240,8 +1240,8 @@ export const verifyEmailCode = async (email, code, testMode = false) => {
1240
1240
  }
1241
1241
  };
1242
1242
 
1243
- /**
1244
- * Check email verification status
1243
+ /**
1244
+ * Check email verification status
1245
1245
  */
1246
1246
  export const checkEmailVerificationStatus = async (email, testMode = false) => {
1247
1247
  try {
@@ -1269,8 +1269,8 @@ export const checkEmailVerificationStatus = async (email, testMode = false) => {
1269
1269
  }
1270
1270
  };
1271
1271
 
1272
- /**
1273
- * Initialize platform auth service
1272
+ /**
1273
+ * Initialize platform auth service
1274
1274
  */
1275
1275
  export const initializePlatformAuthService = () => {
1276
1276
  console.log('🔧 Platform auth service initialized');
@@ -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