@onairos/react-native 3.7.1 → 3.7.3

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 (241) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/assets/icons/spotify.png +0 -0
  3. package/lib/commonjs/assets/images/spotify.png +0 -0
  4. package/lib/commonjs/components/BodyText.js +27 -9
  5. package/lib/commonjs/components/BrandMark.js +111 -10
  6. package/lib/commonjs/components/CodeInput.js +116 -9
  7. package/lib/commonjs/components/EmailInput.js +30 -8
  8. package/lib/commonjs/components/GoogleButton.js +56 -9
  9. package/lib/commonjs/components/HeadingGroup.js +43 -9
  10. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  11. package/lib/commonjs/components/ModalHeader.js +99 -9
  12. package/lib/commonjs/components/ModalSheet.js +47 -9
  13. package/lib/commonjs/components/Onairos.js +380 -14
  14. package/lib/commonjs/components/OnairosButton.js +313 -13
  15. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  16. package/lib/commonjs/components/Overlay.js +465 -13
  17. package/lib/commonjs/components/PersonaImage.js +137 -10
  18. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  19. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  20. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  21. package/lib/commonjs/components/PinInput.js +464 -9
  22. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  23. package/lib/commonjs/components/PlatformList.js +137 -10
  24. package/lib/commonjs/components/PlatformToggle.js +180 -9
  25. package/lib/commonjs/components/PrimaryButton.js +180 -10
  26. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  27. package/lib/commonjs/components/SignInStep.js +345 -12
  28. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  29. package/lib/commonjs/components/VerificationStep.js +176 -11
  30. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  31. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  32. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  33. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  34. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  35. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  36. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  37. package/lib/commonjs/components/icons/EnochE.js +41 -8
  38. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  39. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  40. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  41. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  42. package/lib/commonjs/components/icons/index.js +84 -17
  43. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  44. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  45. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  46. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  47. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  48. package/lib/commonjs/config/api.js +56 -7
  49. package/lib/commonjs/constants/index.js +120 -7
  50. package/lib/commonjs/context/AuthContext.js +345 -10
  51. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  52. package/lib/commonjs/hooks/useConnections.js +102 -8
  53. package/lib/commonjs/hooks/useCredentials.js +178 -10
  54. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  55. package/lib/commonjs/index.js +439 -34
  56. package/lib/commonjs/services/apiClient.js +298 -8
  57. package/lib/commonjs/services/biometricPinService.js +180 -8
  58. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  59. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  60. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  61. package/lib/commonjs/services/claudeConversationService.js +158 -9
  62. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  63. package/lib/commonjs/services/googleAuthService.js +252 -11
  64. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  65. package/lib/commonjs/services/hingeDataService.js +150 -9
  66. package/lib/commonjs/services/imageCompressionService.js +260 -7
  67. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  68. package/lib/commonjs/services/instagramDataService.js +163 -9
  69. package/lib/commonjs/services/jwtStorageService.js +276 -7
  70. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  71. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  72. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  73. package/lib/commonjs/services/llmDataStorage.js +294 -8
  74. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  75. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  76. package/lib/commonjs/services/netflixDataService.js +198 -9
  77. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  78. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  79. package/lib/commonjs/services/platformAuthService.js +1484 -12
  80. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  81. package/lib/commonjs/services/sephoraDataService.js +200 -9
  82. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  83. package/lib/commonjs/services/spotifyDataService.js +241 -9
  84. package/lib/commonjs/services/storageService.js +404 -8
  85. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  86. package/lib/commonjs/services/telegramDataService.js +499 -9
  87. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  88. package/lib/commonjs/services/userConnectionsService.js +340 -10
  89. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  90. package/lib/commonjs/theme/index.js +250 -7
  91. package/lib/commonjs/types/ambient.d.js +2 -1
  92. package/lib/commonjs/types/declarations.d.js +2 -1
  93. package/lib/commonjs/types/index.js +6 -1
  94. package/lib/commonjs/types/node-fix.d.js +2 -1
  95. package/lib/commonjs/types/node-override.d.js +2 -1
  96. package/lib/commonjs/types/opacity.d.js +2 -1
  97. package/lib/commonjs/types.js +14 -1
  98. package/lib/commonjs/utils/Portal.js +98 -8
  99. package/lib/commonjs/utils/api.js +130 -9
  100. package/lib/commonjs/utils/assetRegistry.js +210 -35
  101. package/lib/commonjs/utils/auth.js +112 -9
  102. package/lib/commonjs/utils/connectorTests.js +613 -29
  103. package/lib/commonjs/utils/crypto.js +62 -8
  104. package/lib/commonjs/utils/debugHelper.js +64 -1
  105. package/lib/commonjs/utils/encryption.js +76 -7
  106. package/lib/commonjs/utils/eventUtils.js +288 -1
  107. package/lib/commonjs/utils/haptics.js +66 -9
  108. package/lib/commonjs/utils/imagePreloader.js +6 -1
  109. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  110. package/lib/commonjs/utils/onairosApi.js +350 -9
  111. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  112. package/lib/commonjs/utils/retryHelper.js +220 -1
  113. package/lib/commonjs/utils/secureStorage.js +349 -10
  114. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  115. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  116. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  117. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  118. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  119. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  120. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  121. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  122. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  123. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  124. package/lib/module/api/index.js +211 -1
  125. package/lib/module/assets/icons/spotify.png +0 -0
  126. package/lib/module/assets/images/spotify.png +0 -0
  127. package/lib/module/components/BodyText.js +20 -1
  128. package/lib/module/components/BrandMark.js +104 -1
  129. package/lib/module/components/CodeInput.js +109 -1
  130. package/lib/module/components/EmailInput.js +23 -1
  131. package/lib/module/components/GoogleButton.js +49 -1
  132. package/lib/module/components/HeadingGroup.js +36 -1
  133. package/lib/module/components/LLMDataInputModal.js +656 -7
  134. package/lib/module/components/ModalHeader.js +92 -1
  135. package/lib/module/components/ModalSheet.js +39 -1
  136. package/lib/module/components/Onairos.js +373 -1
  137. package/lib/module/components/OnairosButton.js +305 -1
  138. package/lib/module/components/OnairosSignInButton.js +121 -1
  139. package/lib/module/components/Overlay.js +456 -1
  140. package/lib/module/components/PersonaImage.js +129 -1
  141. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  142. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  143. package/lib/module/components/PinCreationScreen.js +396 -1
  144. package/lib/module/components/PinInput.js +456 -1
  145. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  146. package/lib/module/components/PlatformList.js +129 -1
  147. package/lib/module/components/PlatformToggle.js +173 -1
  148. package/lib/module/components/PrimaryButton.js +172 -1
  149. package/lib/module/components/SignInMatchAnimation.js +189 -1
  150. package/lib/module/components/SignInStep.js +338 -1
  151. package/lib/module/components/UniversalOnboarding.js +2770 -1
  152. package/lib/module/components/VerificationStep.js +168 -1
  153. package/lib/module/components/WelcomeScreen.js +453 -1
  154. package/lib/module/components/icons/Basicproficon.js +30 -1
  155. package/lib/module/components/icons/Basicprofile.js +14 -1
  156. package/lib/module/components/icons/Checkbox.js +14 -1
  157. package/lib/module/components/icons/Checkmark.js +20 -1
  158. package/lib/module/components/icons/Contentanalysis.js +14 -1
  159. package/lib/module/components/icons/Contenticon.js +32 -1
  160. package/lib/module/components/icons/EnochE.js +34 -1
  161. package/lib/module/components/icons/Personalityicon.js +23 -1
  162. package/lib/module/components/icons/Personalityprofile.js +14 -1
  163. package/lib/module/components/icons/Personalitytraits.js +14 -1
  164. package/lib/module/components/icons/Userpreferences.js +14 -1
  165. package/lib/module/components/icons/index.js +13 -1
  166. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  167. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  168. package/lib/module/components/onboarding/PinInput.js +274 -1
  169. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  170. package/lib/module/config/PLATFORM_APIS.md +849 -0
  171. package/lib/module/config/api.js +47 -1
  172. package/lib/module/constants/index.js +114 -1
  173. package/lib/module/context/AuthContext.js +335 -1
  174. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  175. package/lib/module/hooks/useConnections.js +95 -1
  176. package/lib/module/hooks/useCredentials.js +171 -6
  177. package/lib/module/hooks/useUserConnections.js +140 -1
  178. package/lib/module/index.js +172 -1
  179. package/lib/module/services/apiClient.js +295 -1
  180. package/lib/module/services/biometricPinService.js +169 -1
  181. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  182. package/lib/module/services/chatGPTConversationService.js +268 -1
  183. package/lib/module/services/claudeConversationExtractor.js +97 -1
  184. package/lib/module/services/claudeConversationService.js +151 -1
  185. package/lib/module/services/connectedAccountsService.js +293 -1
  186. package/lib/module/services/googleAuthService.js +241 -1
  187. package/lib/module/services/hingeDataExtractor.js +99 -1
  188. package/lib/module/services/hingeDataService.js +143 -1
  189. package/lib/module/services/imageCompressionService.js +250 -1
  190. package/lib/module/services/instagramDataExtractor.js +120 -1
  191. package/lib/module/services/instagramDataService.js +156 -1
  192. package/lib/module/services/jwtStorageService.js +257 -1
  193. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  194. package/lib/module/services/linkedinProfileService.js +210 -1
  195. package/lib/module/services/linkedinScrapingService.js +219 -1
  196. package/lib/module/services/llmDataStorage.js +277 -1
  197. package/lib/module/services/mobileTrainingService.js +173 -1
  198. package/lib/module/services/netflixDataExtractor.js +114 -1
  199. package/lib/module/services/netflixDataService.js +191 -1
  200. package/lib/module/services/pinEncryptionService.js +74 -6
  201. package/lib/module/services/pinStorageUtils.js +93 -1
  202. package/lib/module/services/platformAuthService.js +1461 -1
  203. package/lib/module/services/sephoraDataExtractor.js +134 -1
  204. package/lib/module/services/sephoraDataService.js +193 -1
  205. package/lib/module/services/spotifyDataExtractor.js +142 -1
  206. package/lib/module/services/spotifyDataService.js +234 -1
  207. package/lib/module/services/storageService.js +383 -1
  208. package/lib/module/services/telegramDataExtractor.js +109 -1
  209. package/lib/module/services/telegramDataService.js +493 -1
  210. package/lib/module/services/trainingApiHelpers.js +67 -1
  211. package/lib/module/services/userConnectionsService.js +329 -1
  212. package/lib/module/services/youtubeMigrationService.js +405 -1
  213. package/lib/module/theme/index.js +245 -1
  214. package/lib/module/types.js +10 -1
  215. package/lib/module/utils/Portal.js +90 -1
  216. package/lib/module/utils/api.js +118 -1
  217. package/lib/module/utils/assetRegistry.js +200 -34
  218. package/lib/module/utils/auth.js +100 -1
  219. package/lib/module/utils/connectorTests.js +600 -27
  220. package/lib/module/utils/crypto.js +54 -1
  221. package/lib/module/utils/debugHelper.js +54 -1
  222. package/lib/module/utils/encryption.js +67 -1
  223. package/lib/module/utils/eventUtils.js +270 -1
  224. package/lib/module/utils/haptics.js +59 -8
  225. package/lib/module/utils/imagePreloader.js +3 -1
  226. package/lib/module/utils/networkDiagnostics.js +217 -1
  227. package/lib/module/utils/onairosApi.js +333 -1
  228. package/lib/module/utils/programmaticFlow.js +111 -1
  229. package/lib/module/utils/retryHelper.js +211 -1
  230. package/lib/module/utils/secureStorage.js +330 -6
  231. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  232. package/lib/module/utils/webviewScripts/claude.js +370 -1
  233. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  234. package/lib/module/utils/webviewScripts/index.js +434 -1
  235. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  236. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  237. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  238. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  239. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  240. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  241. package/package.json +2 -2
@@ -1,7 +1,56 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("../services/authService")
5
- ];
6
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
7
- Object[_0x9cc5(0x0)](exports,'__esModule',{'value':!![]}),exports[_0x9cc5(0x1)]=exports[_0x9cc5(0x2)]=exports[_0x9cc5(0x3)]=exports['API_CONFIG']=void 0x0;var _authService=__ONAIROS_REQ_FUNC__(0x0);const API_CONFIG=exports[_0x9cc5(0x4)]={'BASE_URL':'https://api2.onairos.uk','ENDPOINTS':{'AUTH':_0x9cc5(0x5),'USER':_0x9cc5(0x6),'CONNECTIONS':'/connections','TRAINING':_0x9cc5(0x7),'OAUTH':'/oauth'},'TIMEOUT':0x7530},getApiHeaders=()=>({'Content-Type':'application/json','Accept':'application/json'});exports[_0x9cc5(0x3)]=getApiHeaders;const getAuthHeaders=_0x3e7e28=>({...getApiHeaders(),..._0x3e7e28&&{'Authorization':_0x9cc5(0x8)+_0x3e7e28}});exports[_0x9cc5(0x2)]=getAuthHeaders;function _0x2308(){const _0x280276=['defineProperty','getUserAuthHeaders','getAuthHeaders','getApiHeaders','API_CONFIG','/auth','/user','/training','Bearer\x20','User\x20not\x20authenticated\x20-\x20no\x20JWT\x20token\x20found','getAuthToken','hKcuu','VcoQP'];_0x2308=function(){return _0x280276;};return _0x2308();}function _0x9cc5(_0x23089d,_0x9cc5d8){_0x23089d=_0x23089d-0x0;const _0x316084=_0x2308();let _0x108ed1=_0x316084[_0x23089d];return _0x108ed1;}const getUserAuthHeaders=async()=>{const _0x477279={'hKcuu':_0x9cc5(0x9),'VcoQP':function(_0x5cb938){return _0x5cb938();}},_0x425909=await(0x0,_authService[_0x9cc5(0xa)])();if(!_0x425909)throw new Error(_0x477279[_0x9cc5(0xb)]);return{..._0x477279[_0x9cc5(0xc)](getApiHeaders),'Authorization':_0x9cc5(0x8)+_0x425909};};exports[_0x9cc5(0x1)]=getUserAuthHeaders;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getUserAuthHeaders = exports.getAuthHeaders = exports.getApiHeaders = exports.API_CONFIG = void 0;
7
+ var _authService = require("../services/authService");
8
+ /**
9
+ * API Configuration for Onairos SDK
10
+ *
11
+ * IMPORTANT: This is the single source of truth for the API base URL.
12
+ * All files should import API_CONFIG.BASE_URL instead of hardcoding URLs.
13
+ */
14
+
15
+ const API_CONFIG = exports.API_CONFIG = {
16
+ BASE_URL: 'https://api2.onairos.uk',
17
+ ENDPOINTS: {
18
+ AUTH: '/auth',
19
+ USER: '/user',
20
+ CONNECTIONS: '/connections',
21
+ TRAINING: '/training',
22
+ OAUTH: '/oauth'
23
+ },
24
+ TIMEOUT: 30000
25
+ };
26
+ const getApiHeaders = () => ({
27
+ 'Content-Type': 'application/json',
28
+ 'Accept': 'application/json'
29
+ });
30
+ exports.getApiHeaders = getApiHeaders;
31
+ const getAuthHeaders = token => ({
32
+ ...getApiHeaders(),
33
+ ...(token && {
34
+ 'Authorization': `Bearer ${token}`
35
+ })
36
+ });
37
+
38
+ /**
39
+ * Get headers with User JWT for authenticated requests
40
+ * Use this for all post-login API calls (platform connects, etc.)
41
+ *
42
+ * TIER 2 Authentication: User must be logged in
43
+ */
44
+ exports.getAuthHeaders = getAuthHeaders;
45
+ const getUserAuthHeaders = async () => {
46
+ const token = await (0, _authService.getAuthToken)();
47
+ if (!token) {
48
+ throw new Error('User not authenticated - no JWT token found');
49
+ }
50
+ return {
51
+ ...getApiHeaders(),
52
+ 'Authorization': `Bearer ${token}`
53
+ };
54
+ };
55
+ exports.getUserAuthHeaders = getUserAuthHeaders;
56
+ //# sourceMappingURL=api.js.map
@@ -1,7 +1,120 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("../config/api")
5
- ];
6
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
7
- function _0x5956(){const _0x492511=['__esModule','STORAGE_KEYS','PLATFORMS','PIN_REQUIREMENTS','API_ENDPOINTS','#1BA9D4','#F8F9FA','#000000','#34C759','#FF3B30','#FF4500','#FF0000','#10A37F','#1DB954','#FFFFFF','#666666','Instagram','instagram','Connect\x20your\x20Instagram\x20account\x20to\x20train\x20your\x20AI\x20model','Pinterest','pinterest','Use\x20your\x20Pinterest\x20boards\x20for\x20AI\x20training','Reddit','reddit','YouTube','youtube','Use\x20YouTube\x20data\x20to\x20improve\x20AI\x20recommendations','ChatGPT','chatgpt','Connect\x20your\x20ChatGPT\x20conversations\x20for\x20AI\x20insights','LLM\x20Data','netflix','Spotify','spotify','Connect\x20your\x20Spotify\x20listening\x20data\x20for\x20music\x20preferences','API_CONFIG','BASE_URL','/instagram/auth','/pinterest/auth','/reddit/auth','/youtube/auth','/chatgpt/auth','/youtube/callback','/chatgpt/callback','/llmdata','onairos_credentials','onairos_connections','authenticate','onairosanime://auth/'];_0x5956=function(){return _0x492511;};return _0x5956();}function _0x3c73(_0x595629,_0x3c7391){_0x595629=_0x595629-0x0;const _0x137e94=_0x5956();let _0x57cb5e=_0x137e94[_0x595629];return _0x57cb5e;}Object['defineProperty'](exports,_0x3c73(0x0),{'value':!![]}),exports[_0x3c73(0x1)]=exports[_0x3c73(0x2)]=exports[_0x3c73(0x3)]=exports['DEEP_LINK_CONFIG']=exports['COLORS']=exports[_0x3c73(0x4)]=void 0x0;var _api=__ONAIROS_REQ_FUNC__(0x0);const COLORS=exports['COLORS']={'primary':_0x3c73(0x5),'headerBg':_0x3c73(0x6),'text':{'primary':_0x3c73(0x7),'secondary':'#666666'},'border':'#E5E5E5','success':_0x3c73(0x8),'error':_0x3c73(0x9),'instagram':'#E1306C','pinterest':'#E60023','reddit':_0x3c73(0xa),'youtube':_0x3c73(0xb),'chatgpt':'#10A37F','llm':_0x3c73(0xc),'netflix':'#E50914','spotify':_0x3c73(0xd),'white':_0x3c73(0xe),'black':'#000000','gray':_0x3c73(0xf),'lightGray':'#E5E5E5'},PLATFORMS=exports[_0x3c73(0x2)]={'instagram':{'name':_0x3c73(0x10),'icon':_0x3c73(0x11),'color':COLORS['instagram'],'description':_0x3c73(0x12)},'pinterest':{'name':_0x3c73(0x13),'icon':_0x3c73(0x14),'color':COLORS['pinterest'],'description':_0x3c73(0x15)},'reddit':{'name':_0x3c73(0x16),'icon':_0x3c73(0x17),'color':COLORS[_0x3c73(0x17)],'description':'Connect\x20Reddit\x20to\x20enhance\x20your\x20AI\x20model'},'youtube':{'name':_0x3c73(0x18),'icon':'youtube','color':COLORS[_0x3c73(0x19)],'description':_0x3c73(0x1a)},'chatgpt':{'name':_0x3c73(0x1b),'icon':'chat','color':COLORS[_0x3c73(0x1c)],'description':_0x3c73(0x1d)},'llm':{'name':_0x3c73(0x1e),'icon':'psychology','color':COLORS['llm'],'description':'Connect\x20your\x20AI\x20conversation\x20data'},'netflix':{'name':'Netflix','icon':_0x3c73(0x1f),'color':COLORS[_0x3c73(0x1f)],'description':'Connect\x20your\x20Netflix\x20viewing\x20history\x20for\x20personalized\x20insights'},'spotify':{'name':_0x3c73(0x20),'icon':_0x3c73(0x21),'color':COLORS[_0x3c73(0x21)],'description':_0x3c73(0x22)}},API_ENDPOINTS=exports[_0x3c73(0x4)]={'base':_api[_0x3c73(0x23)][_0x3c73(0x24)],'oauth':{'instagram':_0x3c73(0x25),'pinterest':_0x3c73(0x26),'reddit':_0x3c73(0x27),'youtube':_0x3c73(0x28),'chatgpt':'/chatgpt/auth','llm':_0x3c73(0x29)},'callback':{'instagram':'/instagram/callback','pinterest':'/pinterest/callback','reddit':'/reddit/callback','youtube':_0x3c73(0x2a),'chatgpt':_0x3c73(0x2b),'llm':_0x3c73(0x2b)},'llm':{'dataIngest':_0x3c73(0x2c),'dataRequest':'/llmdata/request'}},STORAGE_KEYS=exports[_0x3c73(0x1)]={'credentials':_0x3c73(0x2d),'connections':_0x3c73(0x2e)},PIN_REQUIREMENTS=exports['PIN_REQUIREMENTS']={'minLength':0x8,'requireUppercase':!![],'requireLowercase':!![],'requireNumber':!![],'requireSpecialChar':!![]},DEEP_LINK_CONFIG=exports['DEEP_LINK_CONFIG']={'scheme':'onairosanime','host':_0x3c73(0x2f),'redirectUri':_0x3c73(0x30)};
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.STORAGE_KEYS = exports.PLATFORMS = exports.PIN_REQUIREMENTS = exports.DEEP_LINK_CONFIG = exports.COLORS = exports.API_ENDPOINTS = void 0;
7
+ var _api = require("../config/api");
8
+ const COLORS = exports.COLORS = {
9
+ primary: '#1BA9D4',
10
+ headerBg: '#F8F9FA',
11
+ text: {
12
+ primary: '#000000',
13
+ secondary: '#666666'
14
+ },
15
+ border: '#E5E5E5',
16
+ success: '#34C759',
17
+ error: '#FF3B30',
18
+ instagram: '#E1306C',
19
+ pinterest: '#E60023',
20
+ reddit: '#FF4500',
21
+ youtube: '#FF0000',
22
+ chatgpt: '#10A37F',
23
+ llm: '#10A37F',
24
+ netflix: '#E50914',
25
+ spotify: '#1DB954',
26
+ white: '#FFFFFF',
27
+ black: '#000000',
28
+ gray: '#666666',
29
+ lightGray: '#E5E5E5'
30
+ };
31
+ const PLATFORMS = exports.PLATFORMS = {
32
+ instagram: {
33
+ name: 'Instagram',
34
+ icon: 'instagram',
35
+ color: COLORS.instagram,
36
+ description: 'Connect your Instagram account to train your AI model'
37
+ },
38
+ pinterest: {
39
+ name: 'Pinterest',
40
+ icon: 'pinterest',
41
+ color: COLORS.pinterest,
42
+ description: 'Use your Pinterest boards for AI training'
43
+ },
44
+ reddit: {
45
+ name: 'Reddit',
46
+ icon: 'reddit',
47
+ color: COLORS.reddit,
48
+ description: 'Connect Reddit to enhance your AI model'
49
+ },
50
+ youtube: {
51
+ name: 'YouTube',
52
+ icon: 'youtube',
53
+ color: COLORS.youtube,
54
+ description: 'Use YouTube data to improve AI recommendations'
55
+ },
56
+ chatgpt: {
57
+ name: 'ChatGPT',
58
+ icon: 'chat',
59
+ color: COLORS.chatgpt,
60
+ description: 'Connect your ChatGPT conversations for AI insights'
61
+ },
62
+ llm: {
63
+ name: 'LLM Data',
64
+ icon: 'psychology',
65
+ color: COLORS.llm,
66
+ description: 'Connect your AI conversation data'
67
+ },
68
+ netflix: {
69
+ name: 'Netflix',
70
+ icon: 'netflix',
71
+ color: COLORS.netflix,
72
+ description: 'Connect your Netflix viewing history for personalized insights'
73
+ },
74
+ spotify: {
75
+ name: 'Spotify',
76
+ icon: 'spotify',
77
+ color: COLORS.spotify,
78
+ description: 'Connect your Spotify listening data for music preferences'
79
+ }
80
+ };
81
+ const API_ENDPOINTS = exports.API_ENDPOINTS = {
82
+ base: _api.API_CONFIG.BASE_URL,
83
+ oauth: {
84
+ instagram: '/instagram/auth',
85
+ pinterest: '/pinterest/auth',
86
+ reddit: '/reddit/auth',
87
+ youtube: '/youtube/auth',
88
+ chatgpt: '/chatgpt/auth',
89
+ llm: '/chatgpt/auth'
90
+ },
91
+ callback: {
92
+ instagram: '/instagram/callback',
93
+ pinterest: '/pinterest/callback',
94
+ reddit: '/reddit/callback',
95
+ youtube: '/youtube/callback',
96
+ chatgpt: '/chatgpt/callback',
97
+ llm: '/chatgpt/callback'
98
+ },
99
+ llm: {
100
+ dataIngest: '/llmdata',
101
+ dataRequest: '/llmdata/request'
102
+ }
103
+ };
104
+ const STORAGE_KEYS = exports.STORAGE_KEYS = {
105
+ credentials: 'onairos_credentials',
106
+ connections: 'onairos_connections'
107
+ };
108
+ const PIN_REQUIREMENTS = exports.PIN_REQUIREMENTS = {
109
+ minLength: 8,
110
+ requireUppercase: true,
111
+ requireLowercase: true,
112
+ requireNumber: true,
113
+ requireSpecialChar: true
114
+ };
115
+ const DEEP_LINK_CONFIG = exports.DEEP_LINK_CONFIG = {
116
+ scheme: 'onairosanime',
117
+ host: 'authenticate',
118
+ redirectUri: 'onairosanime://auth/'
119
+ };
120
+ //# sourceMappingURL=index.js.map
@@ -1,10 +1,345 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react"),
5
- require("@react-native-async-storage/async-storage"),
6
- require("../services/authService"),
7
- require("../services/storageService")
8
- ];
9
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
10
- Object[_0x51c5(0x0)](exports,_0x51c5(0x1),{'value':!![]}),exports[_0x51c5(0x2)]=exports[_0x51c5(0x3)]=void 0x0;var _react=_interopRequireWildcard(__ONAIROS_REQ_FUNC__(0x0)),_asyncStorage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x1)),_authService=__ONAIROS_REQ_FUNC__(0x2),_storageService=__ONAIROS_REQ_FUNC__(0x3);function _interopRequireDefault(_0x4c96ec){return _0x4c96ec&&_0x4c96ec[_0x51c5(0x1)]?_0x4c96ec:{'default':_0x4c96ec};}function _interopRequireWildcard(_0x444500,_0x5e9a52){const _0x313904={'WSLKf':function(_0x20cd19,_0x1ad3a6){return _0x20cd19(_0x1ad3a6);},'iLUXA':function(_0x5e52a4,_0xea8311){return _0x5e52a4!==_0xea8311;},'WkQQH':_0x51c5(0x4),'XIeee':function(_0x37238e,_0xe10e3e){return _0x37238e&&_0xe10e3e;},'rfWSN':function(_0xc1c83,_0x2b7883){return _0xc1c83===_0x2b7883;},'lxZIC':function(_0x42a9ec,_0x52d289){return _0x42a9ec!=_0x52d289;},'BOqMv':_0x51c5(0x5),'MMCBY':function(_0x444ffb,_0x39fa6a){return _0x444ffb!==_0x39fa6a;},'hqywq':_0x51c5(0x6),'dsSmp':function(_0x1aeae8,_0x5ee690,_0x4fec00,_0x2e9ed2){return _0x1aeae8(_0x5ee690,_0x4fec00,_0x2e9ed2);},'LdEMK':function(_0x405223,_0xce4802){return _0x405223==_0xce4802;},'EejfK':'function'};if(_0x313904['LdEMK'](_0x313904[_0x51c5(0x7)],typeof WeakMap))var _0x112e4b=new WeakMap(),_0xc27858=new WeakMap();return(_interopRequireWildcard=function(_0x438d1d,_0x29cfb2){const _0x3cbe0e={'Xregs':function(_0x991524,_0x1ce75b){return _0x313904[_0x51c5(0x8)](_0x991524,_0x1ce75b);}};if(_0x313904['iLUXA'](_0x313904[_0x51c5(0x9)],_0x313904[_0x51c5(0x9)]))_0x3cbe0e['Xregs'](_0x37d1c1,!![]);else{if(_0x313904['XIeee'](!_0x29cfb2,_0x438d1d)&&_0x438d1d['__esModule'])return _0x438d1d;var _0x12162c,_0x5f36a1,_0xd9ae18={'__proto__':null,'default':_0x438d1d};if(_0x313904['rfWSN'](null,_0x438d1d)||_0x313904[_0x51c5(0xa)](_0x313904[_0x51c5(0xb)],typeof _0x438d1d)&&_0x313904[_0x51c5(0xa)](_0x51c5(0xc),typeof _0x438d1d))return _0xd9ae18;if(_0x12162c=_0x29cfb2?_0xc27858:_0x112e4b){if(_0x12162c[_0x51c5(0xd)](_0x438d1d))return _0x12162c['get'](_0x438d1d);_0x12162c[_0x51c5(0xe)](_0x438d1d,_0xd9ae18);}for(const _0x587c05 in _0x438d1d)_0x313904[_0x51c5(0xf)](_0x313904['hqywq'],_0x587c05)&&{}[_0x51c5(0x10)][_0x51c5(0x11)](_0x438d1d,_0x587c05)&&((_0x5f36a1=(_0x12162c=Object[_0x51c5(0x0)])&&Object[_0x51c5(0x12)](_0x438d1d,_0x587c05))&&(_0x5f36a1['get']||_0x5f36a1[_0x51c5(0xe)])?_0x313904[_0x51c5(0x13)](_0x12162c,_0xd9ae18,_0x587c05,_0x5f36a1):_0xd9ae18[_0x587c05]=_0x438d1d[_0x587c05]);return _0xd9ae18;}})(_0x444500,_0x5e9a52);}function _0xf62e(){const _0x1c0e18=['defineProperty','__esModule','useAuth','AuthProvider','SfrAJ','object','default','EejfK','WSLKf','WkQQH','lxZIC','BOqMv','function','has','set','MMCBY','hasOwnProperty','call','getOwnPropertyDescriptor','dsSmp','createContext','KMubx','cPlRQ','MSIqy','hjghn','user','Failed\x20to\x20fetch\x20user\x20profile:','403','🌐\x20Profile\x20fetch\x20failed\x20(likely\x20network),\x20keeping\x20authentication\x20state','Onairos\x20User','eHcXf','onboardingCompleted','true','zVQwn','QoZEm','Failed\x20to\x20load\x20authentication\x20state:','💾\x20Network\x20unreachable,\x20trusting\x20local\x20authentication\x20state','Failed\x20to\x20update\x20user\x20data:','viQRj','jgDoh','apple','authentication','User\x20logged\x20in\x20with\x20onboarded=false:','twRrX','FhacU','auth_method','ZDRJD','gWEnH','BYIPH','onairosUserId','YvhgX','lastConnectedAt','false','xZXSW','xfabM','yGLPv','Onairos\x20sign-in\x20failed:','Osyty','SFLpa','aWeHu','qiXKz','pyIMM','zRftI','Failed\x20to\x20update\x20onboarded\x20status:','TUgmN','LXujU','ERmJH','useState','useEffect','WoytF','Failed\x20to\x20delete\x20account:','hasEventAccessToken','BvWOI','reujR','glvdB','useContext','VKlce','log','Ktpxy','parse','dFLmP','getAuthToken','verifyToken','vnBmx','warn','🌐\x20Network\x20verification\x20failed,\x20using\x20local\x20token\x20validation:','gWErm','WcFBz','WUuxL','error','wgkyN','getUserProfile','setItem','XfADa','wtQqG','WsWEG','AXtXH','UawFJ','includes','401','xxQpm','removeAuthToken','hVuZA','stringify','AKqpI','zfcBn','svKst','ttXTV','rDHGs','YLnaV','aDvGD','KQcxP','HedGD','VefCG','UALtV','get','ZPzBN','NrDNW','pgCQS','VxRHH','omFSz','SBRzE','yXNaE','dRhTG','PQaHq','eBHBp','BeDCs','VaRMY','lAPpg','txxCy','saveAuthState','email','HFZUZ','vdylF','name','markStepCompleted','imsQe','gdgSH','ZAkOo','yEvoa','Failed\x20to\x20save\x20user\x20data:','tnUnZ','SUjyj','QuyTe','Drbhj','saveAuthToken','token','GxUOR','rldNI','ORsAZ','hasConnectedOnairos','toString','onairos','TJMmc','ZpyVn','aHRUZ','AEHvw','fTpxW','FvGjd','🔗\x20Stored\x20Onairos\x20connection\x20status:','TBdiO','cOaoZ','SJxum','profilePicture','ErHny','🍎\x20Apple\x20sign-in\x20completed\x20-\x20auth_method\x20set\x20to\x20\x22apple\x22','JiDeP','FFaGh','ohpYx','UVjhB','CJdzM','OIjNz','LloPg','authenticateWithOnairos','iIiua','TKtWk','rRsVu','zwNMj','rSbUI','zoMyH','aeqAT','OEWlC','DbPDU','FFuCN','ftHSu','rEaOP','clearUserData','GgRoR','WdpjZ','ffdKI','Failed\x20to\x20complete\x20onboarding:','pVkvq','SUdEX','VMRiy','rYmWd','WsuOl','QKJev','tNDJE','mofyb','yqohf','qFndW','MmEiy','iTpam','YEIrw','ZuJxc','LvIJI','CduLn','bVofd','Fkczb','SpQdP','DNTaG','oAoZV','oSscY','updateUserOnboardedStatus','xjojt','aUhwU','zwXRQ','NfHwW','pXhox','BbwFg','5|1|3|0|2|4|6','split','ehyIL','removeItem','createElement','Provider','getResumeTarget','updateLastScreen','markEventPageReached','hVBMX','sKCyz'];_0xf62e=function(){return _0x1c0e18;};return _0xf62e();}function _0x51c5(_0xf62e55,_0x51c542){_0xf62e55=_0xf62e55-0x0;const _0x31050b=_0xf62e();let _0x272b2b=_0x31050b[_0xf62e55];return _0x272b2b;}const AuthContext=(0x0,_react[_0x51c5(0x14)])(undefined),AuthProvider=({children:_0x2d3245})=>{const _0x4de4a2={'BvWOI':function(_0x5ad734,_0xe56219){return _0x5ad734&&_0xe56219;},'VxRHH':function(_0x3a2b67,_0x21e491){return _0x3a2b67===_0x21e491;},'reujR':_0x51c5(0x15),'glvdB':_0x51c5(0x16),'Ktpxy':'🎯\x20Found\x20event\x20access\x20token\x20-\x20user\x20has\x20completed\x20onboarding,\x20authentication\x20confirmed','dFLmP':function(_0x4bc75e,_0x2565e5){return _0x4bc75e(_0x2565e5);},'Drbhj':function(_0x5877ad,_0x4e84f6){return _0x5877ad===_0x4e84f6;},'vnBmx':'ISgot','gWErm':function(_0x3f4da6,_0x4f83cb){return _0x3f4da6!==_0x4f83cb;},'WcFBz':_0x51c5(0x17),'WUuxL':_0x51c5(0x18),'XfADa':_0x51c5(0x19),'wtQqG':function(_0x2b807a,_0x23bd1b){return _0x2b807a(_0x23bd1b);},'WsWEG':function(_0x209799,_0xb98f36){return _0x209799(_0xb98f36);},'AXtXH':_0x51c5(0x1a),'UawFJ':function(_0x2d8f5b,_0x28c00d){return _0x2d8f5b instanceof _0x28c00d;},'xxQpm':_0x51c5(0x1b),'hVuZA':_0x51c5(0x1c),'SJxum':_0x51c5(0x1d),'mqRAU':'user@onairos.com','AKqpI':function(_0x17ebe2,_0x2aa5c7){return _0x17ebe2(_0x2aa5c7);},'zfcBn':function(_0xa74de2,_0x4c7bae){return _0xa74de2(_0x4c7bae);},'SUdEX':function(_0x4024fa,_0xeb228e){return _0x4024fa===_0xeb228e;},'ttXTV':_0x51c5(0x1e),'pgCQS':_0x51c5(0x1f),'CpGYV':_0x51c5(0x20),'omFSz':_0x51c5(0x21),'SBRzE':_0x51c5(0x22),'yXNaE':_0x51c5(0x23),'PQaHq':function(_0x149e44,_0x28febc){return _0x149e44(_0x28febc);},'PsTiH':'useAuth\x20must\x20be\x20used\x20within\x20an\x20AuthProvider','VMRiy':function(_0xa57679,_0x1fbfac){return _0xa57679!=_0x1fbfac;},'WoytF':_0x51c5(0xc),'SUjyj':_0x51c5(0x24),'wdRlh':function(_0x4bd2c4){return _0x4bd2c4();},'eBHBp':_0x51c5(0x25),'BeDCs':_0x51c5(0x26),'lAPpg':_0x51c5(0x27),'HFZUZ':_0x51c5(0x28),'vdylF':'onairos','imsQe':_0x51c5(0x29),'mMrOj':_0x51c5(0x2a),'gdgSH':function(_0x23b73a,_0x322400){return _0x23b73a!==_0x322400;},'ZAkOo':_0x51c5(0x2b),'tnUnZ':'🌐\x20Network\x20verification\x20failed,\x20using\x20local\x20token\x20validation:','QuyTe':'Apple\x20sign-in\x20failed:','fBRCd':_0x51c5(0x2c),'GxUOR':_0x51c5(0x2d),'rldNI':_0x51c5(0x2e),'TJMmc':function(_0x3955cf,_0x157e02){return _0x3955cf!==_0x157e02;},'ZpyVn':_0x51c5(0x2f),'aHRUZ':_0x51c5(0x30),'AEHvw':_0x51c5(0x31),'fTpxW':_0x51c5(0x32),'Hvwle':_0x51c5(0x33),'TBdiO':_0x51c5(0x34),'cOaoZ':'🔗\x20No\x20Onairos\x20connection\x20info\x20from\x20backend,\x20defaulting\x20to\x20false','ErHny':function(_0x3e2af5,_0x14b6e9){return _0x3e2af5(_0x14b6e9);},'FtHHK':function(_0x4d9f4b,_0x247832){return _0x4d9f4b!==_0x247832;},'FFaGh':_0x51c5(0x35),'ohpYx':_0x51c5(0x36),'UVjhB':function(_0x3e7a75,_0x1e8835){return _0x3e7a75(_0x1e8835);},'LloPg':function(_0x31f9b7,_0x5082b8){return _0x31f9b7(_0x5082b8);},'CJdzM':function(_0x166e37,_0x46f0fa){return _0x166e37(_0x46f0fa);},'OIjNz':_0x51c5(0x37),'iIiua':'🔑\x20Onairos\x20sign-in\x20completed\x20-\x20auth_method\x20set\x20to\x20\x22onairos\x22','rRsVu':'Jlisu','IBbXn':_0x51c5(0x38),'aeqAT':_0x51c5(0x39),'OEWlC':_0x51c5(0x3a),'DbPDU':'Failed\x20to\x20remove\x20user\x20data:','FFuCN':function(_0x1c50f2,_0xc3e0a7){return _0x1c50f2===_0xc3e0a7;},'rEaOP':_0x51c5(0x3b),'ehyIL':function(_0x49ed1d,_0x4d0e73){return _0x49ed1d(_0x4d0e73);},'CZJli':function(_0x5ca9f7,_0x5debe2){return _0x5ca9f7(_0x5debe2);},'GgRoR':function(_0x4ef31b,_0x24ba5d){return _0x4ef31b===_0x24ba5d;},'WdpjZ':_0x51c5(0x3c),'pVkvq':function(_0x1c30d7,_0xb2f60e){return _0x1c30d7&&_0xb2f60e;},'rYmWd':'default','WsuOl':function(_0x1e95fc,_0x589d15,_0x4832c9,_0x435bde){return _0x1e95fc(_0x589d15,_0x4832c9,_0x435bde);},'QKJev':function(_0x3b8338,_0x12389e){return _0x3b8338===_0x12389e;},'yqohf':function(_0x46e75f,_0x5cc8aa){return _0x46e75f(_0x5cc8aa);},'qFndW':_0x51c5(0x3d),'MmEiy':_0x51c5(0x3e),'SpQdP':_0x51c5(0x3f),'DNTaG':'zBOiO','oAoZV':_0x51c5(0x40),'oSscY':function(_0xb8e04c,_0x1cb4fd){return _0xb8e04c(_0x1cb4fd);},'xjojt':function(_0x39362b,_0x5c7767){return _0x39362b!==_0x5c7767;},'aUhwU':_0x51c5(0x41),'zwXRQ':'VzZzJ','qdClC':function(_0x53f97c,_0x462eba){return _0x53f97c!==_0x462eba;},'BbwFg':_0x51c5(0x42)},[_0x57553f,_0x6a9c4a]=(0x0,_react[_0x51c5(0x43)])(null),[_0x3b0de4,_0x290a82]=(0x0,_react[_0x51c5(0x43)])(!![]),[_0x29c73d,_0x59491b]=(0x0,_react[_0x51c5(0x43)])(![]),[_0x26f855,_0xfb9953]=(0x0,_react[_0x51c5(0x43)])(![]);(0x0,_react[_0x51c5(0x44)])(()=>{const _0x1feb46={'VKlce':_0x4de4a2['PsTiH'],'wgkyN':function(_0x5a0d8e,_0x1ea6d4){return _0x5a0d8e(_0x1ea6d4);},'rDHGs':function(_0x13ad8e,_0x32b019){return _0x4de4a2['VMRiy'](_0x13ad8e,_0x32b019);},'YLnaV':_0x51c5(0x6),'aDvGD':function(_0x43c6e3,_0x43f30a,_0x1e1e0d,_0x53bb5b){return _0x43c6e3(_0x43f30a,_0x1e1e0d,_0x53bb5b);},'sIuxA':function(_0x1fe183,_0x47b7c3){return _0x1fe183==_0x47b7c3;},'KQcxP':_0x4de4a2[_0x51c5(0x45)],'dRhTG':_0x4de4a2['SUjyj']},_0x49f03a=async()=>{const _0x3e7c4e={'kIgdy':_0x51c5(0x46)};try{const _0x17192b=await(0x0,_storageService[_0x51c5(0x47)])(),_0x742203=await _asyncStorage[_0x51c5(0x6)]['getItem']('user');if(_0x4de4a2[_0x51c5(0x48)](_0x17192b,_0x742203)){if(_0x4de4a2['VxRHH'](_0x4de4a2[_0x51c5(0x49)],_0x4de4a2[_0x51c5(0x4a)])){const _0x5ebd7f=(0x0,_0x399999[_0x51c5(0x4b)])(_0x49f18f);if(_0x5ebd7f===_0x144a2f)throw new _0x2a07d6(_0x1feb46[_0x51c5(0x4c)]);return _0x5ebd7f;}else{console[_0x51c5(0x4d)](_0x4de4a2[_0x51c5(0x4e)]),_0x4de4a2['dFLmP'](_0x6a9c4a,JSON[_0x51c5(0x4f)](_0x742203)),_0x4de4a2[_0x51c5(0x50)](_0xfb9953,!![]),_0x59491b(!![]),_0x290a82(![]);return;}}const _0x1544c8=await(0x0,_authService[_0x51c5(0x51)])();if(_0x1544c8){let _0x6ae19d=![];try{_0x6ae19d=await(0x0,_authService[_0x51c5(0x52)])();}catch(_0x15810e){if(_0x4de4a2['Drbhj'](_0x4de4a2['vnBmx'],_0x4de4a2[_0x51c5(0x53)])){console[_0x51c5(0x54)](_0x51c5(0x55),_0x15810e);if(_0x742203){if(_0x4de4a2[_0x51c5(0x56)](_0x4de4a2[_0x51c5(0x57)],_0x4de4a2[_0x51c5(0x58)]))console['log'](_0x51c5(0x24)),_0x6ae19d=!![];else{_0x156ff7[_0x51c5(0x59)](_0x3e7c4e['kIgdy'],_0x360bbf);throw _0x38b2c1;}}}else _0x1feb46[_0x51c5(0x5a)](_0x1c8672,![]);}if(_0x6ae19d){if(_0x742203)_0x4de4a2['dFLmP'](_0x6a9c4a,JSON[_0x51c5(0x4f)](_0x742203)),_0x4de4a2['dFLmP'](_0xfb9953,!![]);else try{const _0x82bc80=await(0x0,_authService[_0x51c5(0x5b)])();await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x4de4a2[_0x51c5(0x5d)],JSON['stringify'](_0x82bc80)),_0x4de4a2[_0x51c5(0x5e)](_0x6a9c4a,_0x82bc80),_0x4de4a2[_0x51c5(0x5f)](_0xfb9953,!![]);}catch(_0x42ca9d){console['error'](_0x4de4a2[_0x51c5(0x60)],_0x42ca9d);const _0x34e6a6=_0x4de4a2[_0x51c5(0x61)](_0x42ca9d,Error)?_0x42ca9d['message']:_0x4de4a2[_0x51c5(0x50)](String,_0x42ca9d);if(_0x34e6a6[_0x51c5(0x62)](_0x51c5(0x63))||_0x34e6a6[_0x51c5(0x62)](_0x4de4a2[_0x51c5(0x64)]))await(0x0,_authService[_0x51c5(0x65)])();else{console[_0x51c5(0x4d)](_0x4de4a2[_0x51c5(0x66)]);if(_0x1544c8){const _0x41a25f={'id':'offline_user','name':_0x4de4a2['SJxum'],'email':_0x4de4a2['mqRAU'],'onboarded':![]};await _asyncStorage[_0x51c5(0x6)]['setItem'](_0x4de4a2[_0x51c5(0x5d)],JSON[_0x51c5(0x67)](_0x41a25f)),_0x4de4a2[_0x51c5(0x68)](_0x6a9c4a,_0x41a25f),_0x4de4a2[_0x51c5(0x69)](_0xfb9953,!![]);}}}}else{if(_0x4de4a2['SUdEX'](_0x51c5(0x6a),_0x4de4a2[_0x51c5(0x6b)])){const _0x117282={'HedGD':function(_0x178db1,_0x2e008c){return _0x178db1&&_0x2e008c;},'BnjGY':function(_0x101a31,_0x274edd){return _0x101a31===_0x274edd;},'VefCG':function(_0x54670d,_0x1e61ff){return _0x1feb46[_0x51c5(0x6c)](_0x54670d,_0x1e61ff);},'UALtV':'function','ZPzBN':_0x1feb46[_0x51c5(0x6d)],'NrDNW':function(_0x23d38e,_0x24d403,_0x13d183,_0x14e071){return _0x1feb46[_0x51c5(0x6e)](_0x23d38e,_0x24d403,_0x13d183,_0x14e071);}};if(_0x1feb46['sIuxA'](_0x1feb46[_0x51c5(0x6f)],typeof _0x483003))var _0x163e74=new _0x3882a4(),_0x16bbbc=new _0x4ab743();return(_0x3a4ba0=function(_0x4a85ab,_0x5d9b0b){if(_0x117282[_0x51c5(0x70)](!_0x5d9b0b,_0x4a85ab)&&_0x4a85ab[_0x51c5(0x1)])return _0x4a85ab;var _0x4d4d74,_0x3f989c,_0x184939={'__proto__':null,'default':_0x4a85ab};if(_0x117282['BnjGY'](null,_0x4a85ab)||_0x117282[_0x51c5(0x71)]('object',typeof _0x4a85ab)&&_0x117282[_0x51c5(0x71)](_0x117282[_0x51c5(0x72)],typeof _0x4a85ab))return _0x184939;if(_0x4d4d74=_0x5d9b0b?_0x16bbbc:_0x163e74){if(_0x4d4d74[_0x51c5(0xd)](_0x4a85ab))return _0x4d4d74[_0x51c5(0x73)](_0x4a85ab);_0x4d4d74['set'](_0x4a85ab,_0x184939);}for(const _0xcfb890 in _0x4a85ab)_0x117282[_0x51c5(0x74)]!==_0xcfb890&&{}[_0x51c5(0x10)]['call'](_0x4a85ab,_0xcfb890)&&((_0x3f989c=(_0x4d4d74=_0x293229[_0x51c5(0x0)])&&_0x566cd8['getOwnPropertyDescriptor'](_0x4a85ab,_0xcfb890))&&(_0x3f989c[_0x51c5(0x73)]||_0x3f989c[_0x51c5(0xe)])?_0x117282[_0x51c5(0x75)](_0x4d4d74,_0x184939,_0xcfb890,_0x3f989c):_0x184939[_0xcfb890]=_0x4a85ab[_0xcfb890]);return _0x184939;})(_0x5dc2fe,_0x348da4);}else await(0x0,_authService[_0x51c5(0x65)])();}}const _0x51ac24=await _asyncStorage[_0x51c5(0x6)]['getItem'](_0x4de4a2[_0x51c5(0x76)]);_0x4de4a2[_0x51c5(0x77)](_0x51ac24,_0x4de4a2['CpGYV'])&&_0x4de4a2[_0x51c5(0x50)](_0x59491b,!![]);}catch(_0x40cda9){_0x4de4a2[_0x51c5(0x78)]!==_0x4de4a2[_0x51c5(0x79)]?console[_0x51c5(0x59)](_0x4de4a2[_0x51c5(0x7a)],_0x40cda9):(_0x139f36[_0x51c5(0x4d)](_0x1feb46[_0x51c5(0x7b)]),_0x2895f7=!![]);}finally{_0x4de4a2[_0x51c5(0x7c)](_0x290a82,![]);}};_0x4de4a2['wdRlh'](_0x49f03a);},[]);const _0x17eb35=async _0x351868=>{const _0x3429d3={'txxCy':_0x4de4a2[_0x51c5(0x7d)],'yEvoa':function(_0x24fa2d,_0xff7f9c){return _0x4de4a2[_0x51c5(0x7c)](_0x24fa2d,_0xff7f9c);}};if(_0x4de4a2[_0x51c5(0x7e)]!==_0x51c5(0x7f))try{if(_0x4de4a2[_0x51c5(0x80)]!==_0x4de4a2['lAPpg'])_0x54a032['error'](_0x3429d3[_0x51c5(0x81)],_0x2d94ac);else{var _0x1d833c;const _0x1f93af={..._0x351868,'onboarded':![]};await _asyncStorage['default'][_0x51c5(0x5c)](_0x51c5(0x19),JSON[_0x51c5(0x67)](_0x1f93af)),_0x4de4a2['PQaHq'](_0x6a9c4a,_0x1f93af),_0x4de4a2[_0x51c5(0x5f)](_0xfb9953,!![]),await(0x0,_storageService[_0x51c5(0x82)])({'isAuthenticated':!![],'authMethod':_0x4de4a2[_0x51c5(0x56)](_0x1d833c=_0x351868[_0x51c5(0x83)],null)&&_0x1d833c!==void 0x0&&_0x1d833c[_0x51c5(0x62)](_0x4de4a2[_0x51c5(0x84)])?_0x4de4a2['HFZUZ']:_0x4de4a2[_0x51c5(0x85)],'hasValidToken':!![],'userEmail':_0x351868['email'],'userName':_0x351868[_0x51c5(0x86)]}),await(0x0,_storageService[_0x51c5(0x87)])(_0x4de4a2[_0x51c5(0x88)]),console['log'](_0x4de4a2['mMrOj'],_0x1f93af);}}catch(_0x59860a){_0x4de4a2[_0x51c5(0x89)]('twRrX',_0x4de4a2[_0x51c5(0x8a)])?_0x3429d3[_0x51c5(0x8b)](_0x48889a,![]):console[_0x51c5(0x59)](_0x51c5(0x8c),_0x59860a);}else _0x2adead[_0x51c5(0x59)](_0x4de4a2['yXNaE'],_0x446c11);},_0x4ce45c=async _0x492116=>{const _0x239c2f={'ORsAZ':_0x4de4a2[_0x51c5(0x8d)],'ayIVB':_0x4de4a2[_0x51c5(0x8e)],'JiDeP':_0x4de4a2[_0x51c5(0x8f)]};try{if(_0x4de4a2[_0x51c5(0x90)](_0x4de4a2['fBRCd'],'FhacU')){_0x4de4a2[_0x51c5(0x5e)](_0x290a82,!![]);const _0x455323=await(0x0,_authService['authenticateWithApple'])(_0x492116);await(0x0,_authService[_0x51c5(0x91)])(_0x455323[_0x51c5(0x92)]),await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x4de4a2[_0x51c5(0x93)],'apple');if(_0x455323['onairos']){if(_0x4de4a2['gdgSH'](_0x4de4a2[_0x51c5(0x94)],_0x4de4a2['rldNI']))_0x920939['warn'](_0x239c2f[_0x51c5(0x95)],_0x136102),_0x12f296&&(_0x591a24['log'](_0x239c2f['ayIVB']),_0x579cbe=!![]);else{await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x51c5(0x96),_0x455323['onairos'][_0x51c5(0x96)][_0x51c5(0x97)]());if(_0x455323[_0x51c5(0x98)]['onairosUserId']){if(_0x4de4a2[_0x51c5(0x99)](_0x4de4a2[_0x51c5(0x9a)],_0x4de4a2[_0x51c5(0x9b)]))await _asyncStorage['default'][_0x51c5(0x5c)](_0x4de4a2[_0x51c5(0x9c)],_0x455323[_0x51c5(0x98)][_0x51c5(0x31)]);else throw new _0x1ac425(_0x4de4a2['PsTiH']);}_0x455323[_0x51c5(0x98)][_0x51c5(0x33)]&&(_0x4de4a2[_0x51c5(0x90)](_0x4de4a2[_0x51c5(0x9d)],_0x51c5(0x9e))?_0x451c18(![]):await _asyncStorage['default'][_0x51c5(0x5c)](_0x4de4a2['Hvwle'],_0x455323['onairos'][_0x51c5(0x33)])),console[_0x51c5(0x4d)](_0x51c5(0x9f),_0x455323[_0x51c5(0x98)]['hasConnectedOnairos']);}}else await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x51c5(0x96),_0x4de4a2[_0x51c5(0xa0)]),console[_0x51c5(0x4d)](_0x4de4a2[_0x51c5(0xa1)]);const _0x3c4ad5={'id':_0x455323[_0x51c5(0x19)]['id'],'name':_0x455323[_0x51c5(0x19)][_0x51c5(0x86)]||_0x4de4a2[_0x51c5(0xa2)],'email':_0x455323[_0x51c5(0x19)]['email'],'profilePicture':_0x455323['user'][_0x51c5(0xa3)],'onboarded':![]};return await _asyncStorage['default']['setItem'](_0x4de4a2[_0x51c5(0x5d)],JSON[_0x51c5(0x67)](_0x3c4ad5)),_0x6a9c4a(_0x3c4ad5),_0x4de4a2[_0x51c5(0xa4)](_0xfb9953,!![]),console[_0x51c5(0x4d)](_0x51c5(0xa5)),_0x3c4ad5;}else{_0xb85bba[_0x51c5(0x59)](_0x239c2f[_0x51c5(0xa6)],_0x210d02);throw _0x45f37e;}}catch(_0x18d390){if(_0x4de4a2['FtHHK'](_0x4de4a2[_0x51c5(0xa7)],_0x4de4a2[_0x51c5(0xa8)])){console[_0x51c5(0x59)](_0x4de4a2[_0x51c5(0x8f)],_0x18d390);throw _0x18d390;}else _0x19b62b[_0x51c5(0x59)](_0x51c5(0x8c),_0x4c1647);}finally{_0x4de4a2[_0x51c5(0xa9)](_0x290a82,![]);}},_0x3ee1c5=async _0x3ce34e=>{const _0x4a322f={'zwNMj':_0x4de4a2[_0x51c5(0x4e)],'rSbUI':function(_0x5a82c7,_0xa44460){return _0x4de4a2[_0x51c5(0xaa)](_0x5a82c7,_0xa44460);},'KAXhV':function(_0x439ffe,_0x54c818){return _0x4de4a2['UVjhB'](_0x439ffe,_0x54c818);},'zoMyH':function(_0x439419,_0x100615){return _0x4de4a2['LloPg'](_0x439419,_0x100615);}};try{if(_0x4de4a2['OIjNz']!==_0x4de4a2[_0x51c5(0xab)])_0x4de4a2[_0x51c5(0xac)](_0x5a790c,![]);else{_0x290a82(!![]);const _0x38dd66=await(0x0,_authService[_0x51c5(0xad)])(_0x3ce34e);await(0x0,_authService[_0x51c5(0x91)])(_0x38dd66[_0x51c5(0x92)]),await _asyncStorage[_0x51c5(0x6)]['setItem'](_0x4de4a2['GxUOR'],_0x51c5(0x98));const _0xb37537={'id':_0x38dd66[_0x51c5(0x19)]['id'],'name':_0x38dd66[_0x51c5(0x19)][_0x51c5(0x86)]||_0x4de4a2[_0x51c5(0xa2)],'email':_0x38dd66['user'][_0x51c5(0x83)],'profilePicture':_0x38dd66['user'][_0x51c5(0xa3)],'onboarded':![]};return await _asyncStorage['default'][_0x51c5(0x5c)](_0x4de4a2[_0x51c5(0x5d)],JSON['stringify'](_0xb37537)),_0x4de4a2[_0x51c5(0x69)](_0x6a9c4a,_0xb37537),_0x4de4a2[_0x51c5(0x68)](_0xfb9953,!![]),console['log'](_0x4de4a2[_0x51c5(0xae)]),_0xb37537;}}catch(_0x5a338b){if(_0x4de4a2['gdgSH'](_0x51c5(0xaf),_0x4de4a2[_0x51c5(0xb0)])){console['error'](_0x4de4a2['IBbXn'],_0x5a338b);throw _0x5a338b;}else{_0x499d13[_0x51c5(0x4d)](_0x4a322f[_0x51c5(0xb1)]),_0x4a322f[_0x51c5(0xb2)](_0x4d4f3d,_0x1b7f7e['parse'](_0x1fc2a0)),_0x3cdfea(!![]),_0x4a322f['KAXhV'](_0x35f865,!![]),_0x4a322f[_0x51c5(0xb3)](_0x5108cc,![]);return;}}finally{if(_0x4de4a2[_0x51c5(0x89)](_0x4de4a2[_0x51c5(0xb4)],_0x4de4a2[_0x51c5(0xb5)]))_0x290a82(![]);else return _0x34b9bf&&_0x1eed69['__esModule']?_0x415411:{'default':_0x5be63b};}},_0x39ab32=async()=>{const _0x2be4f0={'ffdKI':_0x4de4a2[_0x51c5(0xb6)]};if(_0x4de4a2[_0x51c5(0xb7)](_0x51c5(0xb8),_0x4de4a2[_0x51c5(0xb9)])){_0x52f178['error']('Failed\x20to\x20complete\x20onboarding:',_0x19f89a);throw _0x1151f1;}else try{await(0x0,_storageService[_0x51c5(0xba)])(),_0x4de4a2['ehyIL'](_0x6a9c4a,null),_0x4de4a2['CZJli'](_0xfb9953,![]);}catch(_0x38e8ad){_0x4de4a2[_0x51c5(0xbb)](_0x4de4a2['WdpjZ'],_0x4de4a2[_0x51c5(0xbc)])?console['error'](_0x4de4a2[_0x51c5(0xb6)],_0x38e8ad):_0x5b3131[_0x51c5(0x59)](_0x2be4f0[_0x51c5(0xbd)],_0x1645f2);}},_0x2f9461=async _0x206579=>{try{const _0x3b8169={..._0x57553f,..._0x206579};await _asyncStorage['default']['setItem'](_0x4de4a2[_0x51c5(0x5d)],JSON[_0x51c5(0x67)](_0x3b8169)),_0x6a9c4a(_0x3b8169),await _0x466fff();}catch(_0x3f7ed0){console[_0x51c5(0x59)](_0x51c5(0xbe),_0x3f7ed0);throw _0x3f7ed0;}},_0x4fcd81=async _0x31bc60=>{const _0x9921ff={'iTpam':function(_0x39f31b,_0x2b80e9){return _0x4de4a2[_0x51c5(0xbf)](_0x39f31b,_0x2b80e9);},'YEIrw':function(_0x123a1a,_0x2750ea){return _0x4de4a2[_0x51c5(0xc0)](_0x123a1a,_0x2750ea);},'ZuJxc':function(_0x12ecc0,_0x30d66b){return _0x4de4a2[_0x51c5(0xc1)](_0x12ecc0,_0x30d66b);},'LvIJI':'object','CduLn':_0x4de4a2['WoytF'],'bVofd':function(_0x330779,_0x2f6878){return _0x4de4a2['gWErm'](_0x330779,_0x2f6878);},'Fkczb':_0x4de4a2[_0x51c5(0xc2)],'lXLeB':function(_0x5bb347,_0x337f50,_0x455b0a,_0x27e0c3){return _0x4de4a2[_0x51c5(0xc3)](_0x5bb347,_0x337f50,_0x455b0a,_0x27e0c3);}};try{if(_0x4de4a2[_0x51c5(0xc4)](_0x51c5(0xc5),_0x51c5(0xc6))){_0x5dec34['error']('Onairos\x20sign-in\x20failed:',_0x5aba07);throw _0x498439;}else{if(!_0x57553f)return;const _0x25ebb6={..._0x57553f,..._0x31bc60};await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x4de4a2[_0x51c5(0x5d)],JSON[_0x51c5(0x67)](_0x25ebb6)),_0x4de4a2[_0x51c5(0xc7)](_0x6a9c4a,_0x25ebb6);}}catch(_0x3c1996){if(_0x4de4a2[_0x51c5(0x77)](_0x4de4a2[_0x51c5(0xc8)],_0x4de4a2[_0x51c5(0xc9)])){if(_0x9921ff[_0x51c5(0xca)](!_0x27d562,_0x579f1d)&&_0x69c6ac[_0x51c5(0x1)])return _0x106cc7;var _0x44e86b,_0x11fddc,_0x1dadbf={'__proto__':null,'default':_0x1e5f02};if(_0x9921ff[_0x51c5(0xcb)](null,_0x450885)||_0x9921ff[_0x51c5(0xcc)](_0x9921ff[_0x51c5(0xcd)],typeof _0x2f9d5c)&&_0x9921ff[_0x51c5(0xce)]!=typeof _0x47fde7)return _0x1dadbf;if(_0x44e86b=_0x3279c7?_0x597fbe:_0x3c12a2){if(_0x44e86b[_0x51c5(0xd)](_0x42d905))return _0x44e86b[_0x51c5(0x73)](_0x30b9c2);_0x44e86b[_0x51c5(0xe)](_0x27e896,_0x1dadbf);}for(const _0x1c9ac5 in _0x21b358)_0x9921ff[_0x51c5(0xcf)](_0x9921ff[_0x51c5(0xd0)],_0x1c9ac5)&&{}['hasOwnProperty']['call'](_0x1f3525,_0x1c9ac5)&&((_0x11fddc=(_0x44e86b=_0x12c29e['defineProperty'])&&_0x1a52a9['getOwnPropertyDescriptor'](_0x36b685,_0x1c9ac5))&&(_0x11fddc[_0x51c5(0x73)]||_0x11fddc['set'])?_0x9921ff['lXLeB'](_0x44e86b,_0x1dadbf,_0x1c9ac5,_0x11fddc):_0x1dadbf[_0x1c9ac5]=_0x55c6ff[_0x1c9ac5]);return _0x1dadbf;}else console['error'](_0x4de4a2['eBHBp'],_0x3c1996);}},_0x466fff=async()=>{const _0x383672={'NfHwW':_0x4de4a2[_0x51c5(0xd1)]};if(_0x4de4a2[_0x51c5(0x89)](_0x4de4a2[_0x51c5(0xd2)],_0x4de4a2[_0x51c5(0xd3)]))try{_0x4de4a2[_0x51c5(0xd4)](_0x290a82,!![]),await(0x0,_authService[_0x51c5(0xd5)])();if(_0x57553f){if(_0x4de4a2[_0x51c5(0xd6)](_0x4de4a2[_0x51c5(0xd7)],_0x4de4a2[_0x51c5(0xd8)])){const _0x480ade={..._0x57553f,'onboarded':!![]};await _asyncStorage[_0x51c5(0x6)][_0x51c5(0x5c)](_0x4de4a2['XfADa'],JSON[_0x51c5(0x67)](_0x480ade)),_0x6a9c4a(_0x480ade);}else{_0x4523f6[_0x51c5(0x59)](_0x383672[_0x51c5(0xd9)],_0x550618);throw _0x3704dd;}}}catch(_0xa49918){if(_0x4de4a2['qdClC'](_0x51c5(0xda),_0x4de4a2[_0x51c5(0xdb)])){console[_0x51c5(0x59)](_0x4de4a2[_0x51c5(0xd1)],_0xa49918);throw _0xa49918;}else{if(_0x53aff0[_0x51c5(0xd)](_0x4e694a))return _0x52fdeb['get'](_0x5f3b56);_0x5599a4[_0x51c5(0xe)](_0xe6b860,_0x95932);}}finally{_0x4de4a2[_0x51c5(0xa4)](_0x290a82,![]);}else _0x3eaee1(_0x24775a[_0x51c5(0x4f)](_0x170f27)),_0x570dbc(!![]);},_0x21075e=async()=>{try{const _0x2dc882=_0x51c5(0xdc)[_0x51c5(0xdd)]('|');let _0x3798ce=0x0;while(!![]){switch(_0x2dc882[_0x3798ce++]){case'0':_0x4de4a2[_0x51c5(0xde)](_0x6a9c4a,null);continue;case'1':await(0x0,_authService[_0x51c5(0x65)])();continue;case'2':_0x4de4a2[_0x51c5(0x5e)](_0xfb9953,![]);continue;case'3':await _asyncStorage[_0x51c5(0x6)]['removeItem'](_0x4de4a2[_0x51c5(0x76)]);continue;case'4':_0x4de4a2[_0x51c5(0x5e)](_0x59491b,![]);continue;case'5':await _asyncStorage[_0x51c5(0x6)][_0x51c5(0xdf)](_0x51c5(0x19));continue;case'6':console[_0x51c5(0x4d)]('Account\x20deleted\x20successfully');continue;}break;}}catch(_0x295903){console[_0x51c5(0x59)]('Failed\x20to\x20delete\x20account:',_0x295903);throw _0x295903;}};return _react[_0x51c5(0x6)][_0x51c5(0xe0)](AuthContext[_0x51c5(0xe1)],{'value':{'user':_0x57553f,'isLoading':_0x3b0de4,'hasCompletedOnboarding':_0x29c73d,'login':_0x17eb35,'logout':_0x39ab32,'deleteAccount':_0x21075e,'completeOnboarding':_0x2f9461,'updateUser':_0x4fcd81,'appleSignIn':_0x4ce45c,'onairosSignIn':_0x3ee1c5,'isAuthenticated':_0x26f855,'updateOnboardedStatus':_0x466fff,'getResumeTarget':_storageService[_0x51c5(0xe2)],'markStepCompleted':_storageService[_0x51c5(0x87)],'updateLastScreen':_storageService[_0x51c5(0xe3)],'isReturningUser':_storageService['isReturningUser'],'markEventPageReached':_storageService[_0x51c5(0xe4)],'hasEventAccessToken':_storageService[_0x51c5(0x47)]}},_0x2d3245);};exports[_0x51c5(0x3)]=AuthProvider;const useAuth=()=>{const _0x1e02a2={'hVBMX':function(_0x15752e,_0x37b49d){return _0x15752e===_0x37b49d;},'sKCyz':'useAuth\x20must\x20be\x20used\x20within\x20an\x20AuthProvider'},_0x305ad0=(0x0,_react[_0x51c5(0x4b)])(AuthContext);if(_0x1e02a2[_0x51c5(0xe5)](_0x305ad0,undefined))throw new Error(_0x1e02a2[_0x51c5(0xe6)]);return _0x305ad0;};exports['useAuth']=useAuth;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAuth = exports.AuthProvider = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
9
+ var _authService = require("../services/authService");
10
+ var _storageService = require("../services/storageService");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const AuthContext = /*#__PURE__*/(0, _react.createContext)(undefined);
14
+ const AuthProvider = ({
15
+ children
16
+ }) => {
17
+ const [user, setUser] = (0, _react.useState)(null);
18
+ const [isLoading, setIsLoading] = (0, _react.useState)(true);
19
+ const [hasCompletedOnboarding, setHasCompletedOnboarding] = (0, _react.useState)(false);
20
+ const [isAuthenticated, setIsAuthenticated] = (0, _react.useState)(false);
21
+ (0, _react.useEffect)(() => {
22
+ // Check if user is already logged in
23
+ const loadStoredUser = async () => {
24
+ try {
25
+ // PRIORITY 1: Check if user has completed onboarding (for release mode reliability)
26
+ const hasEventToken = await (0, _storageService.hasEventAccessToken)();
27
+ const storedUser = await _asyncStorage.default.getItem('user');
28
+ if (hasEventToken && storedUser) {
29
+ console.log('🎯 Found event access token - user has completed onboarding, authentication confirmed');
30
+ setUser(JSON.parse(storedUser));
31
+ setIsAuthenticated(true);
32
+ setHasCompletedOnboarding(true);
33
+ setIsLoading(false);
34
+ return; // Skip network verification for completed users
35
+ }
36
+
37
+ // PRIORITY 2: Check if we have a JWT token for users still in onboarding
38
+ const token = await (0, _authService.getAuthToken)();
39
+ if (token) {
40
+ // For users with tokens but no completion token, try network verification
41
+ // but don't fail if network is unreachable (important for release mode)
42
+ let isValid = false;
43
+ try {
44
+ isValid = await (0, _authService.verifyToken)();
45
+ } catch (networkError) {
46
+ console.warn('🌐 Network verification failed, using local token validation:', networkError);
47
+ // In release mode, network might be slow/unreliable
48
+ // If we have a token and stored user, trust the local state
49
+ if (storedUser) {
50
+ console.log('💾 Network unreachable, trusting local authentication state');
51
+ isValid = true; // Trust local state when network fails
52
+ }
53
+ }
54
+ if (isValid) {
55
+ // Token is valid (or we're trusting local state), get user data
56
+ if (storedUser) {
57
+ setUser(JSON.parse(storedUser));
58
+ setIsAuthenticated(true);
59
+ } else {
60
+ // If user data is not in AsyncStorage, try to fetch it
61
+ try {
62
+ const userData = await (0, _authService.getUserProfile)();
63
+ await _asyncStorage.default.setItem('user', JSON.stringify(userData));
64
+ setUser(userData);
65
+ setIsAuthenticated(true);
66
+ } catch (profileError) {
67
+ console.error('Failed to fetch user profile:', profileError);
68
+ // Only remove token if we're sure it's invalid (not just network issues)
69
+ const errorMessage = profileError instanceof Error ? profileError.message : String(profileError);
70
+ if (errorMessage.includes('401') || errorMessage.includes('403')) {
71
+ await (0, _authService.removeAuthToken)();
72
+ } else {
73
+ console.log('🌐 Profile fetch failed (likely network), keeping authentication state');
74
+ // Create fallback user for offline scenarios
75
+ if (token) {
76
+ const fallbackUser = {
77
+ id: 'offline_user',
78
+ name: 'Onairos User',
79
+ email: 'user@onairos.com',
80
+ onboarded: false
81
+ };
82
+ await _asyncStorage.default.setItem('user', JSON.stringify(fallbackUser));
83
+ setUser(fallbackUser);
84
+ setIsAuthenticated(true);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ } else {
90
+ // Token verification definitely failed - remove it
91
+ await (0, _authService.removeAuthToken)();
92
+ }
93
+ }
94
+ const onboardingCompleted = await _asyncStorage.default.getItem('onboardingCompleted');
95
+ if (onboardingCompleted === 'true') {
96
+ setHasCompletedOnboarding(true);
97
+ }
98
+ } catch (error) {
99
+ console.error('Failed to load authentication state:', error);
100
+ } finally {
101
+ setIsLoading(false);
102
+ }
103
+ };
104
+ loadStoredUser();
105
+ }, []);
106
+ const login = async userData => {
107
+ try {
108
+ var _userData$email;
109
+ // Ensure onboarded is set to false for new users
110
+ const userWithOnboarded = {
111
+ ...userData,
112
+ onboarded: false // Always force camera flow for new logins
113
+ };
114
+ await _asyncStorage.default.setItem('user', JSON.stringify(userWithOnboarded));
115
+ setUser(userWithOnboarded);
116
+ setIsAuthenticated(true);
117
+
118
+ // Save auth state and mark authentication step as completed
119
+ await (0, _storageService.saveAuthState)({
120
+ isAuthenticated: true,
121
+ authMethod: (_userData$email = userData.email) !== null && _userData$email !== void 0 && _userData$email.includes('apple') ? 'apple' : 'onairos',
122
+ hasValidToken: true,
123
+ userEmail: userData.email,
124
+ userName: userData.name
125
+ });
126
+ await (0, _storageService.markStepCompleted)('authentication');
127
+ console.log('User logged in with onboarded=false:', userWithOnboarded);
128
+ } catch (error) {
129
+ console.error('Failed to save user data:', error);
130
+ }
131
+ };
132
+
133
+ // Handle Apple Sign-In
134
+ const appleSignIn = async appleAuthData => {
135
+ try {
136
+ setIsLoading(true);
137
+
138
+ // Call the API to authenticate with Apple
139
+ const authResponse = await (0, _authService.authenticateWithApple)(appleAuthData);
140
+
141
+ // Save the JWT token
142
+ await (0, _authService.saveAuthToken)(authResponse.token);
143
+
144
+ // CRITICAL: Save auth method as 'apple' for proper button logic
145
+ await _asyncStorage.default.setItem('auth_method', 'apple');
146
+
147
+ // Save Onairos connection status from backend response
148
+ if (authResponse.onairos) {
149
+ await _asyncStorage.default.setItem('hasConnectedOnairos', authResponse.onairos.hasConnectedOnairos.toString());
150
+ if (authResponse.onairos.onairosUserId) {
151
+ await _asyncStorage.default.setItem('onairosUserId', authResponse.onairos.onairosUserId);
152
+ }
153
+ if (authResponse.onairos.lastConnectedAt) {
154
+ await _asyncStorage.default.setItem('lastConnectedAt', authResponse.onairos.lastConnectedAt);
155
+ }
156
+ console.log('🔗 Stored Onairos connection status:', authResponse.onairos.hasConnectedOnairos);
157
+ } else {
158
+ // Default to false if no Onairos info provided
159
+ await _asyncStorage.default.setItem('hasConnectedOnairos', 'false');
160
+ console.log('🔗 No Onairos connection info from backend, defaulting to false');
161
+ }
162
+
163
+ // Create user object from response
164
+ const userData = {
165
+ id: authResponse.user.id,
166
+ name: authResponse.user.name || 'Onairos User',
167
+ email: authResponse.user.email,
168
+ profilePicture: authResponse.user.profilePicture,
169
+ onboarded: false // Default to false for new Apple sign-ins
170
+ };
171
+
172
+ // Save user data to AsyncStorage and update state
173
+ await _asyncStorage.default.setItem('user', JSON.stringify(userData));
174
+ setUser(userData);
175
+ setIsAuthenticated(true);
176
+ console.log('🍎 Apple sign-in completed - auth_method set to "apple"');
177
+ return userData;
178
+ } catch (error) {
179
+ console.error('Apple sign-in failed:', error);
180
+ throw error;
181
+ } finally {
182
+ setIsLoading(false);
183
+ }
184
+ };
185
+
186
+ // Handle Onairos Sign-In (similar to Apple)
187
+ const onairosSignIn = async onairosAuthData => {
188
+ try {
189
+ setIsLoading(true);
190
+
191
+ // Call the API to authenticate with Onairos
192
+ const authResponse = await (0, _authService.authenticateWithOnairos)(onairosAuthData);
193
+
194
+ // Save the JWT token
195
+ await (0, _authService.saveAuthToken)(authResponse.token);
196
+
197
+ // CRITICAL: Save auth method as 'onairos' for proper button logic
198
+ await _asyncStorage.default.setItem('auth_method', 'onairos');
199
+
200
+ // Create user object from response
201
+ const userData = {
202
+ id: authResponse.user.id,
203
+ name: authResponse.user.name || 'Onairos User',
204
+ email: authResponse.user.email,
205
+ profilePicture: authResponse.user.profilePicture,
206
+ onboarded: false // Default to false for new Onairos sign-ins
207
+ };
208
+
209
+ // Save user data to AsyncStorage and update state
210
+ await _asyncStorage.default.setItem('user', JSON.stringify(userData));
211
+ setUser(userData);
212
+ setIsAuthenticated(true);
213
+ console.log('🔑 Onairos sign-in completed - auth_method set to "onairos"');
214
+ return userData;
215
+ } catch (error) {
216
+ console.error('Onairos sign-in failed:', error);
217
+ throw error;
218
+ } finally {
219
+ setIsLoading(false);
220
+ }
221
+ };
222
+ const logout = async () => {
223
+ try {
224
+ // Clear all user data using the new storage service
225
+ await (0, _storageService.clearUserData)();
226
+ setUser(null);
227
+ setIsAuthenticated(false);
228
+ } catch (error) {
229
+ console.error('Failed to remove user data:', error);
230
+ }
231
+ };
232
+ const completeOnboarding = async userData => {
233
+ try {
234
+ // Update user data
235
+ const updatedUser = {
236
+ ...user,
237
+ ...userData
238
+ };
239
+ await _asyncStorage.default.setItem('user', JSON.stringify(updatedUser));
240
+ setUser(updatedUser);
241
+
242
+ // Update onboarded status on backend
243
+ await updateOnboardedStatus();
244
+ } catch (error) {
245
+ console.error('Failed to complete onboarding:', error);
246
+ throw error;
247
+ }
248
+ };
249
+ const updateUser = async userData => {
250
+ try {
251
+ if (!user) return;
252
+ const updatedUser = {
253
+ ...user,
254
+ ...userData
255
+ };
256
+ await _asyncStorage.default.setItem('user', JSON.stringify(updatedUser));
257
+ setUser(updatedUser);
258
+ } catch (error) {
259
+ console.error('Failed to update user data:', error);
260
+ }
261
+ };
262
+
263
+ // Update user onboarded status
264
+ const updateOnboardedStatus = async () => {
265
+ try {
266
+ setIsLoading(true);
267
+
268
+ // Call the API to update onboarded status
269
+ await (0, _authService.updateUserOnboardedStatus)();
270
+
271
+ // Update local user data
272
+ if (user) {
273
+ const updatedUser = {
274
+ ...user,
275
+ onboarded: true
276
+ };
277
+ await _asyncStorage.default.setItem('user', JSON.stringify(updatedUser));
278
+ setUser(updatedUser);
279
+ }
280
+ } catch (error) {
281
+ console.error('Failed to update onboarded status:', error);
282
+ throw error;
283
+ } finally {
284
+ setIsLoading(false);
285
+ }
286
+ };
287
+ const deleteAccount = async () => {
288
+ try {
289
+ // In a real app, you would make an API call to delete the user account on the server
290
+ // For example: await api.deleteUser(user.id);
291
+
292
+ // Remove user data from AsyncStorage
293
+ await _asyncStorage.default.removeItem('user');
294
+
295
+ // Remove JWT token
296
+ await (0, _authService.removeAuthToken)();
297
+
298
+ // Clear any other user-related data from AsyncStorage
299
+ await _asyncStorage.default.removeItem('onboardingCompleted');
300
+
301
+ // Update state
302
+ setUser(null);
303
+ setIsAuthenticated(false);
304
+ setHasCompletedOnboarding(false);
305
+ console.log('Account deleted successfully');
306
+ } catch (error) {
307
+ console.error('Failed to delete account:', error);
308
+ throw error;
309
+ }
310
+ };
311
+ return /*#__PURE__*/_react.default.createElement(AuthContext.Provider, {
312
+ value: {
313
+ user,
314
+ isLoading,
315
+ hasCompletedOnboarding,
316
+ login,
317
+ logout,
318
+ deleteAccount,
319
+ completeOnboarding,
320
+ updateUser,
321
+ appleSignIn,
322
+ onairosSignIn,
323
+ isAuthenticated,
324
+ updateOnboardedStatus,
325
+ // Progress tracking methods
326
+ getResumeTarget: _storageService.getResumeTarget,
327
+ markStepCompleted: _storageService.markStepCompleted,
328
+ updateLastScreen: _storageService.updateLastScreen,
329
+ isReturningUser: _storageService.isReturningUser,
330
+ // Event access token methods
331
+ markEventPageReached: _storageService.markEventPageReached,
332
+ hasEventAccessToken: _storageService.hasEventAccessToken
333
+ }
334
+ }, children);
335
+ };
336
+ exports.AuthProvider = AuthProvider;
337
+ const useAuth = () => {
338
+ const context = (0, _react.useContext)(AuthContext);
339
+ if (context === undefined) {
340
+ throw new Error('useAuth must be used within an AuthProvider');
341
+ }
342
+ return context;
343
+ };
344
+ exports.useAuth = useAuth;
345
+ //# sourceMappingURL=AuthContext.js.map