@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,8 +1,226 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("react-native"),
5
- require("../config/api")
6
- ];
7
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
8
- function _0x6cf4(_0x52384c,_0x6cf4a7){_0x52384c=_0x52384c-0x0;const _0x1ae1f2=_0x5238();let _0x193a18=_0x1ae1f2[_0x52384c];return _0x193a18;}Object[_0x6cf4(0x0)](exports,_0x6cf4(0x1),{'value':!![]}),exports['runFullDiagnostics']=exports[_0x6cf4(0x2)]=exports[_0x6cf4(0x3)]=void 0x0;var _reactNative=__ONAIROS_REQ_FUNC__(0x0),_api=__ONAIROS_REQ_FUNC__(0x1);const runFullDiagnostics=async()=>{const _0x1cebaa={'mndEZ':_0x6cf4(0x4),'fcnLm':'Internet\x20works\x20but\x20API\x20blocked.\x20Check:\x20VPN,\x20Firewall,\x20iOS\x20ATS\x20settings','MkcDO':_0x6cf4(0x5),'RqiNd':_0x6cf4(0x6),'qKNnc':_0x6cf4(0x7),'CkGQa':_0x6cf4(0x8),'KGkbB':_0x6cf4(0x9),'jqFGL':'───────────────────────────────────────────','VekcC':_0x6cf4(0xa),'UOPpH':function(_0x5c0000,_0x2376a0){return _0x5c0000===_0x2376a0;},'ejDXb':function(_0x316fbc,_0x336cfd,_0x10f4c6){return _0x316fbc(_0x336cfd,_0x10f4c6);},'OVVIA':_0x6cf4(0xb),'PoVPa':_0x6cf4(0xc),'kaWeW':_0x6cf4(0xd),'puJhU':_0x6cf4(0xe),'tDugf':function(_0x1f0742,_0x746de1){return _0x1f0742!==_0x746de1;},'mEpje':'XdVXr','FLedA':_0x6cf4(0xf),'QUJpX':_0x6cf4(0x10),'ZglDG':_0x6cf4(0x11),'cxaRC':'tBLrM','DVeVm':function(_0x4f5418,_0x4c4c81,_0x14937e){return _0x4f5418(_0x4c4c81,_0x14937e);},'bNCSM':'youtube','CrvLa':_0x6cf4(0x12),'KxOhY':function(_0x4bdcd9,_0x3410b9){return _0x4bdcd9!==_0x3410b9;},'wTOEl':_0x6cf4(0x13),'ZThVs':_0x6cf4(0x14),'NSbhX':function(_0x4e664d,_0x1f22ae){return _0x4e664d===_0x1f22ae;},'OErwi':_0x6cf4(0x15),'oppTc':_0x6cf4(0x16),'JAMrd':_0x6cf4(0x17),'roiiW':'\x0a═══════════════════════════════════════════','QuYvi':_0x6cf4(0x18)};console[_0x6cf4(0x19)](_0x6cf4(0x9)),console[_0x6cf4(0x19)](_0x1cebaa['CkGQa']),console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x1a)]);const _0x29c1e1={'timestamp':new Date()[_0x6cf4(0x1b)](),'platform':_reactNative['Platform']['OS'],'platformVersion':_reactNative[_0x6cf4(0x1c)][_0x6cf4(0x1d)],'tests':{'googleReachable':![],'apiReachable':![],'apiPostWorks':![],'youtubeOAuthWorks':![]},'errors':[],'recommendations':[],'rawResults':{}};console[_0x6cf4(0x19)]('📱\x20Platform:\x20'+_reactNative[_0x6cf4(0x1c)]['OS']+'\x20'+_reactNative[_0x6cf4(0x1c)]['Version']),console[_0x6cf4(0x19)](_0x1cebaa['jqFGL']),console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x1e)]);try{if(_0x1cebaa[_0x6cf4(0x1f)](_0x6cf4(0x20),_0x6cf4(0x20))){const _0x15b675=Date[_0x6cf4(0x21)](),_0x101071=await _0x1cebaa[_0x6cf4(0x22)](fetch,_0x1cebaa[_0x6cf4(0x23)],{'method':_0x6cf4(0x24)}),_0x3aeb09=Date[_0x6cf4(0x21)]()-_0x15b675;_0x29c1e1['tests']['googleReachable']=!![],_0x29c1e1['rawResults']['google']={'status':_0x101071[_0x6cf4(0x25)],'time':_0x3aeb09},console[_0x6cf4(0x19)](_0x6cf4(0x26)+_0x3aeb09+'ms)');}else{const _0x39aa7c=_0x180557['parse'](_0x3f688f);_0x39aa7c[_0x6cf4(0x27)]&&(_0x5911c7[_0x6cf4(0x28)][_0x6cf4(0x29)]=!![],_0x3e695e[_0x6cf4(0x19)](_0x6cf4(0x2a)));}}catch(_0x95cb30){const _0x12fe8a=_0x1cebaa[_0x6cf4(0x2b)][_0x6cf4(0x2c)]('|');let _0x4552cf=0x0;while(!![]){switch(_0x12fe8a[_0x4552cf++]){case'0':_0x29c1e1[_0x6cf4(0x2d)]['google']={'error':_0x95cb30[_0x6cf4(0x2e)]};continue;case'1':_0x29c1e1[_0x6cf4(0x2f)][_0x6cf4(0x30)](_0x6cf4(0x31)+_0x95cb30[_0x6cf4(0x2e)]);continue;case'2':_0x29c1e1['recommendations'][_0x6cf4(0x30)](_0x1cebaa[_0x6cf4(0x32)]);continue;case'3':console['log'](_0x6cf4(0x33)+_0x95cb30[_0x6cf4(0x2e)]);continue;case'4':_0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x34)]=![];continue;}break;}}console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x35)]);try{const _0xc02bbf=Date[_0x6cf4(0x21)](),_0x3abb57=await fetch(_api[_0x6cf4(0x36)][_0x6cf4(0x37)]+_0x6cf4(0x38),{'method':'GET','headers':{'Accept':'application/json'}}),_0x142cc7=Date['now']()-_0xc02bbf,_0x51346a=await _0x3abb57[_0x6cf4(0x39)]()[_0x6cf4(0x3a)](()=>_0x6cf4(0x3b));_0x29c1e1['tests'][_0x6cf4(0x3c)]=_0x3abb57['ok'],_0x29c1e1[_0x6cf4(0x2d)]['apiHealth']={'status':_0x3abb57[_0x6cf4(0x25)],'time':_0x142cc7,'body':_0x51346a[_0x6cf4(0x3d)](0x0,0xc8)};if(_0x3abb57['ok'])console[_0x6cf4(0x19)](_0x6cf4(0x3e)+_0x142cc7+_0x6cf4(0x3f));else{if(_0x1cebaa['tDugf'](_0x1cebaa[_0x6cf4(0x40)],_0x1cebaa[_0x6cf4(0x41)]))console[_0x6cf4(0x19)](_0x6cf4(0x42)+_0x3abb57[_0x6cf4(0x25)]),_0x29c1e1[_0x6cf4(0x2f)]['push'](_0x6cf4(0x43)+_0x3abb57[_0x6cf4(0x25)]);else{const _0x2d51ed=_0x1cebaa['mndEZ'][_0x6cf4(0x2c)]('|');let _0x1e2e58=0x0;while(!![]){switch(_0x2d51ed[_0x1e2e58++]){case'0':_0x599988[_0x6cf4(0x2f)]['push'](_0x6cf4(0x44)+_0x1f9e5e[_0x6cf4(0x2e)]);continue;case'1':_0x2be6fa['tests'][_0x6cf4(0x34)]&&_0x377dd7[_0x6cf4(0x45)][_0x6cf4(0x30)](_0x1cebaa[_0x6cf4(0x46)]);continue;case'2':_0x502919[_0x6cf4(0x28)][_0x6cf4(0x3c)]=![];continue;case'3':_0x500d6f[_0x6cf4(0x19)](_0x6cf4(0x33)+_0xf77f8a[_0x6cf4(0x2e)]);continue;case'4':_0x3bdbc8[_0x6cf4(0x2d)][_0x6cf4(0x47)]={'error':_0x29f76c[_0x6cf4(0x2e)]};continue;}break;}}}}catch(_0x251538){if(_0x1cebaa[_0x6cf4(0x48)](_0x1cebaa[_0x6cf4(0x49)],_0x6cf4(0x10)))return _0x1cebaa[_0x6cf4(0x4a)];else _0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x3c)]=![],_0x29c1e1[_0x6cf4(0x2f)][_0x6cf4(0x30)](_0x6cf4(0x44)+_0x251538[_0x6cf4(0x2e)]),_0x29c1e1['rawResults'][_0x6cf4(0x47)]={'error':_0x251538[_0x6cf4(0x2e)]},console[_0x6cf4(0x19)](_0x6cf4(0x33)+_0x251538[_0x6cf4(0x2e)]),_0x29c1e1['tests'][_0x6cf4(0x34)]&&(_0x1cebaa[_0x6cf4(0x48)](_0x6cf4(0x4b),_0x1cebaa[_0x6cf4(0x4c)])?_0x29c1e1[_0x6cf4(0x45)][_0x6cf4(0x30)](_0x6cf4(0x4d)):_0x2e87ca[_0x6cf4(0x45)]['push'](_0x1cebaa[_0x6cf4(0x4e)],_0x1cebaa['qKNnc']));}console[_0x6cf4(0x19)]('\n\uD83E\uDDEA Test 3: POST Request (OAuth simulation)');try{if(_0x1cebaa['tDugf'](_0x1cebaa[_0x6cf4(0x4f)],_0x1cebaa[_0x6cf4(0x4f)]))_0x5595a8[_0x6cf4(0x19)](_0x6cf4(0x42)+_0x30132e[_0x6cf4(0x25)]),_0x586322[_0x6cf4(0x2f)][_0x6cf4(0x30)](_0x6cf4(0x43)+_0x4b54a3['status']);else{const _0x1430ae=Date[_0x6cf4(0x21)](),_0x4d7c3e=await _0x1cebaa[_0x6cf4(0x50)](fetch,_api['API_CONFIG'][_0x6cf4(0x37)]+_0x6cf4(0x51),{'method':'POST','headers':{'Content-Type':'application/json','Accept':'application/json'},'body':JSON[_0x6cf4(0x52)]({'session':{'username':_0x6cf4(0x53),'platform':_0x1cebaa[_0x6cf4(0x54)],'timestamp':new Date()['toISOString']()}})}),_0x20239e=Date[_0x6cf4(0x21)]()-_0x1430ae,_0x5ac8ce=await _0x4d7c3e['text']()[_0x6cf4(0x3a)](()=>_0x6cf4(0x3b));_0x29c1e1[_0x6cf4(0x2d)][_0x6cf4(0x55)]={'status':_0x4d7c3e[_0x6cf4(0x25)],'time':_0x20239e,'body':_0x5ac8ce[_0x6cf4(0x3d)](0x0,0x1f4)},_0x29c1e1['tests'][_0x6cf4(0x56)]=!![],console[_0x6cf4(0x19)](_0x6cf4(0x57)+_0x4d7c3e[_0x6cf4(0x25)]+'\x20('+_0x20239e+'ms)');try{const _0x39254b=JSON[_0x6cf4(0x58)](_0x5ac8ce);_0x39254b[_0x6cf4(0x27)]&&(_0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x29)]=!![],console[_0x6cf4(0x19)](_0x6cf4(0x2a)));}catch{}}}catch(_0x598f8c){const _0x516de9=_0x1cebaa[_0x6cf4(0x59)]['split']('|');let _0x1eb199=0x0;while(!![]){switch(_0x516de9[_0x1eb199++]){case'0':console[_0x6cf4(0x19)](_0x6cf4(0x33)+_0x598f8c[_0x6cf4(0x2e)]);continue;case'1':_0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x56)]=![];continue;case'2':_0x29c1e1[_0x6cf4(0x45)][_0x6cf4(0x30)]('POST requests failing. This is the exact issue affecting OAuth.');continue;case'3':_0x29c1e1[_0x6cf4(0x2d)][_0x6cf4(0x55)]={'error':_0x598f8c[_0x6cf4(0x2e)]};continue;case'4':_0x29c1e1[_0x6cf4(0x2f)][_0x6cf4(0x30)](_0x6cf4(0x5a)+_0x598f8c[_0x6cf4(0x2e)]);continue;}break;}}console[_0x6cf4(0x19)](_0x6cf4(0x5b)),console[_0x6cf4(0x19)](_0x6cf4(0x5c)),console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x5d)]);const _0x3b1030=Object[_0x6cf4(0x5e)](_0x29c1e1[_0x6cf4(0x28)])['filter'](Boolean)[_0x6cf4(0x5f)],_0x2cfba4=Object[_0x6cf4(0x60)](_0x29c1e1[_0x6cf4(0x28)])[_0x6cf4(0x5f)];console['log'](_0x6cf4(0x61)+_0x3b1030+'/'+_0x2cfba4);if(_0x3b1030===_0x2cfba4)console['log']('\x0a✅\x20ALL\x20TESTS\x20PASSED\x20-\x20SDK\x20should\x20work\x20correctly');else{if(_0x1cebaa[_0x6cf4(0x62)](_0x1cebaa['wTOEl'],'hVRei'))return _0x6cf4(0x63);else{const _0xccf4cc=_0x1cebaa[_0x6cf4(0x64)][_0x6cf4(0x2c)]('|');let _0x129f4f=0x0;while(!![]){switch(_0xccf4cc[_0x129f4f++]){case'0':_0x29c1e1[_0x6cf4(0x45)][_0x6cf4(0x65)]((_0x180399,_0x51b26d)=>{console['log'](_0x6cf4(0x66)+(_0x51b26d+0x1)+'.\x20'+_0x180399);});continue;case'1':_0x1cebaa[_0x6cf4(0x67)](_reactNative['Platform']['OS'],'ios')&&!_0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x3c)]&&_0x29c1e1[_0x6cf4(0x45)][_0x6cf4(0x30)]('iOS:\x20Add\x20NSAppTransportSecurity\x20to\x20Info.plist',_0x1cebaa[_0x6cf4(0x68)]);continue;case'2':console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x69)]);continue;case'3':!_0x29c1e1[_0x6cf4(0x28)][_0x6cf4(0x34)]&&_0x29c1e1[_0x6cf4(0x45)][_0x6cf4(0x30)](_0x1cebaa[_0x6cf4(0x6a)]);continue;case'4':console['log'](_0x1cebaa['JAMrd']);continue;}break;}}}return console[_0x6cf4(0x19)](_0x1cebaa['roiiW']),console[_0x6cf4(0x19)](_0x1cebaa[_0x6cf4(0x6b)]),console[_0x6cf4(0x19)](JSON[_0x6cf4(0x52)](_0x29c1e1,null,0x2)),_0x29c1e1;};exports[_0x6cf4(0x6c)]=runFullDiagnostics;const isApiReachable=async()=>{const _0x4343e2={'lVaLU':function(_0x30e761,_0x287e26){return _0x30e761!==_0x287e26;},'hvLLC':_0x6cf4(0x6d),'rfdht':function(_0x555e49,_0x2e891b,_0x488367){return _0x555e49(_0x2e891b,_0x488367);}};try{if(_0x4343e2[_0x6cf4(0x6e)]('NgrWL',_0x4343e2[_0x6cf4(0x6f)]))_0x4591e2[_0x6cf4(0x19)]('\x20\x20\x20✅\x20PASS\x20-\x20API\x20reachable\x20('+_0x4bf2e5+_0x6cf4(0x3f));else{const _0x3bea43=await _0x4343e2[_0x6cf4(0x70)](fetch,_api[_0x6cf4(0x36)][_0x6cf4(0x37)]+_0x6cf4(0x38),{'method':'GET'});return _0x3bea43['ok'];}}catch{return![];}};exports[_0x6cf4(0x2)]=isApiReachable;const getNetworkStatus=async()=>{const _0x47504c={'LdTbE':function(_0x3a27a7,_0x35d7cb){return _0x3a27a7+_0x35d7cb;},'BIqSV':_0x6cf4(0x15),'PGHrF':function(_0x3970e9,_0x515102){return _0x3970e9===_0x515102;},'bQJlx':_0x6cf4(0x6),'AMXWe':_0x6cf4(0x7),'zZmDG':_0x6cf4(0x16),'skhBE':_0x6cf4(0x17),'AulYl':function(_0x28d8c8,_0x2b47b7,_0x4bca13){return _0x28d8c8(_0x2b47b7,_0x4bca13);},'lmFon':_0x6cf4(0xb),'giJiG':_0x6cf4(0x24),'zIexp':function(_0xad0ab5,_0x588cf5){return _0xad0ab5(_0x588cf5);},'nrigi':function(_0xa9e1af,_0x2b4635){return _0xa9e1af!==_0x2b4635;},'YNGvi':_0x6cf4(0x71),'lvCds':_0x6cf4(0x72),'NBfVV':_0x6cf4(0x5)};try{await _0x47504c[_0x6cf4(0x73)](fetch,_0x47504c[_0x6cf4(0x74)],{'method':_0x47504c[_0x6cf4(0x75)]});const _0x134dce=await _0x47504c['zIexp'](fetch,_api['API_CONFIG']['BASE_URL']+_0x6cf4(0x38));if(_0x134dce['ok']){if(_0x47504c[_0x6cf4(0x76)](_0x47504c[_0x6cf4(0x77)],_0x6cf4(0x71))){const _0x523127={'WFQym':function(_0x537cbc,_0x52ecc9){return _0x47504c[_0x6cf4(0x78)](_0x537cbc,_0x52ecc9);}};_0x4fa470[_0x6cf4(0x19)](_0x47504c[_0x6cf4(0x79)]),_0x47504c[_0x6cf4(0x7a)](_0x2f69c4['Platform']['OS'],_0x6cf4(0x7b))&&!_0x2b6fa7[_0x6cf4(0x28)][_0x6cf4(0x3c)]&&_0x1811cf[_0x6cf4(0x45)][_0x6cf4(0x30)](_0x47504c['bQJlx'],_0x47504c[_0x6cf4(0x7c)]),!_0x35db87[_0x6cf4(0x28)][_0x6cf4(0x34)]&&_0x53bb7f[_0x6cf4(0x45)][_0x6cf4(0x30)](_0x47504c[_0x6cf4(0x7d)]),_0x5a83a9[_0x6cf4(0x19)](_0x47504c[_0x6cf4(0x7e)]),_0x3a7fd9['recommendations'][_0x6cf4(0x65)]((_0x1f3be7,_0x5aa0a7)=>{_0x5c73f3[_0x6cf4(0x19)](_0x6cf4(0x66)+_0x523127[_0x6cf4(0x7f)](_0x5aa0a7,0x1)+'.\x20'+_0x1f3be7);});}else return _0x47504c['lvCds'];}else return _0x6cf4(0x63);}catch{return _0x47504c[_0x6cf4(0x80)];}};exports[_0x6cf4(0x3)]=getNetworkStatus;function _0x5238(){const _0xe0e2c3=['defineProperty','__esModule','isApiReachable','getNetworkStatus','2|0|4|3|1','offline','iOS:\x20Add\x20NSAppTransportSecurity\x20to\x20Info.plist','iOS:\x20Try\x20on\x20physical\x20device\x20instead\x20of\x20simulator','🔍\x20ONAIROS\x20SDK\x20NETWORK\x20DIAGNOSTICS','═══════════════════════════════════════════','\x0a🧪\x20Test\x201:\x20Internet\x20Connectivity\x20(google.com)','https://www.google.com','4|1|0|3|2','Check\x20internet\x20connection\x20on\x20device','\x0a🧪\x20Test\x202:\x20API\x20Reachability\x20(API\x20server/health)','vRUjO','WAVBF','NFKcm','1|4|3|0|2','hVRei','2|1|3|4|0','\x0a⚠️\x20SOME\x20TESTS\x20FAILED\x20-\x20See\x20recommendations\x20below:','Device\x20has\x20no\x20internet\x20-\x20check\x20WiFi/cellular','\x0a📌\x20RECOMMENDATIONS:','Full\x20results\x20object\x20logged\x20below\x20for\x20debugging:','log','KGkbB','toISOString','Platform','Version','VekcC','UOPpH','olrAn','now','ejDXb','OVVIA','HEAD','status','\x20\x20\x20✅\x20PASS\x20-\x20Google\x20reachable\x20(','youtubeURL','tests','youtubeOAuthWorks','\x20\x20\x20✅\x20BONUS\x20-\x20Got\x20YouTube\x20OAuth\x20URL!','PoVPa','split','rawResults','message','errors','push','Google\x20unreachable:\x20','kaWeW','\x20\x20\x20❌\x20FAIL\x20-\x20','googleReachable','puJhU','API_CONFIG','BASE_URL','/health','text','catch','Unable\x20to\x20read','apiReachable','substring','\x20\x20\x20✅\x20PASS\x20-\x20API\x20reachable\x20(','ms)','mEpje','FLedA','\x20\x20\x20⚠️\x20PARTIAL\x20-\x20API\x20responded\x20with\x20','API\x20returned\x20status\x20','API\x20unreachable:\x20','recommendations','fcnLm','apiHealth','tDugf','QUJpX','MkcDO','WhxNN','ZglDG','Internet\x20works\x20but\x20API\x20blocked.\x20Check:\x20VPN,\x20Firewall,\x20iOS\x20ATS\x20settings','RqiNd','cxaRC','DVeVm','/youtube/authorize','stringify','diagnostic_test','bNCSM','apiPost','apiPostWorks','\x20\x20\x20✅\x20PASS\x20-\x20POST\x20request\x20succeeded,\x20status:\x20','parse','CrvLa','POST\x20request\x20failed:\x20','\x0a───────────────────────────────────────────','📋\x20SUMMARY','jqFGL','values','length','keys','\x0aTests\x20Passed:\x20','KxOhY','api_unreachable','ZThVs','forEach','\x20\x20\x20','NSbhX','qKNnc','OErwi','oppTc','QuYvi','runFullDiagnostics','NgrWL','lVaLU','hvLLC','rfdht','UwDja','online','AulYl','lmFon','giJiG','nrigi','YNGvi','LdTbE','BIqSV','PGHrF','ios','AMXWe','zZmDG','skhBE','WFQym','NBfVV'];_0x5238=function(){return _0xe0e2c3;};return _0x5238();}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runFullDiagnostics = exports.isApiReachable = exports.getNetworkStatus = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _api = require("../config/api");
9
+ /**
10
+ * Network Diagnostics Utility for Onairos SDK
11
+ *
12
+ * Use this to diagnose network issues with OAuth flows.
13
+ *
14
+ * Usage:
15
+ * ```typescript
16
+ * import { runFullDiagnostics } from '@onairos/react-native';
17
+ *
18
+ * const results = await runFullDiagnostics();
19
+ * console.log(results);
20
+ * ```
21
+ */
22
+
23
+ /**
24
+ * Run comprehensive network diagnostics
25
+ * Call this to test if the SDK can connect to required services
26
+ */
27
+ const runFullDiagnostics = async () => {
28
+ console.log('═══════════════════════════════════════════');
29
+ console.log('🔍 ONAIROS SDK NETWORK DIAGNOSTICS');
30
+ console.log('═══════════════════════════════════════════');
31
+ const result = {
32
+ timestamp: new Date().toISOString(),
33
+ platform: _reactNative.Platform.OS,
34
+ platformVersion: _reactNative.Platform.Version,
35
+ tests: {
36
+ googleReachable: false,
37
+ apiReachable: false,
38
+ apiPostWorks: false,
39
+ youtubeOAuthWorks: false
40
+ },
41
+ errors: [],
42
+ recommendations: [],
43
+ rawResults: {}
44
+ };
45
+ console.log(`📱 Platform: ${_reactNative.Platform.OS} ${_reactNative.Platform.Version}`);
46
+ console.log('───────────────────────────────────────────');
47
+
48
+ // Test 1: Can we reach the internet at all? (Google)
49
+ console.log('\n🧪 Test 1: Internet Connectivity (google.com)');
50
+ try {
51
+ const googleStart = Date.now();
52
+ const googleRes = await fetch('https://www.google.com', {
53
+ method: 'HEAD'
54
+ });
55
+ const googleTime = Date.now() - googleStart;
56
+ result.tests.googleReachable = true;
57
+ result.rawResults.google = {
58
+ status: googleRes.status,
59
+ time: googleTime
60
+ };
61
+ console.log(` ✅ PASS - Google reachable (${googleTime}ms)`);
62
+ } catch (error) {
63
+ result.tests.googleReachable = false;
64
+ result.errors.push(`Google unreachable: ${error.message}`);
65
+ result.rawResults.google = {
66
+ error: error.message
67
+ };
68
+ console.log(` ❌ FAIL - ${error.message}`);
69
+ result.recommendations.push('Check internet connection on device');
70
+ }
71
+
72
+ // Test 2: Can we reach API server?
73
+ console.log('\n🧪 Test 2: API Reachability (API server/health)');
74
+ try {
75
+ const apiStart = Date.now();
76
+ const apiRes = await fetch(`${_api.API_CONFIG.BASE_URL}/health`, {
77
+ method: 'GET',
78
+ headers: {
79
+ 'Accept': 'application/json'
80
+ }
81
+ });
82
+ const apiTime = Date.now() - apiStart;
83
+ const apiBody = await apiRes.text().catch(() => 'Unable to read');
84
+ result.tests.apiReachable = apiRes.ok;
85
+ result.rawResults.apiHealth = {
86
+ status: apiRes.status,
87
+ time: apiTime,
88
+ body: apiBody.substring(0, 200)
89
+ };
90
+ if (apiRes.ok) {
91
+ console.log(` ✅ PASS - API reachable (${apiTime}ms)`);
92
+ } else {
93
+ console.log(` ⚠️ PARTIAL - API responded with ${apiRes.status}`);
94
+ result.errors.push(`API returned status ${apiRes.status}`);
95
+ }
96
+ } catch (error) {
97
+ result.tests.apiReachable = false;
98
+ result.errors.push(`API unreachable: ${error.message}`);
99
+ result.rawResults.apiHealth = {
100
+ error: error.message
101
+ };
102
+ console.log(` ❌ FAIL - ${error.message}`);
103
+ if (result.tests.googleReachable) {
104
+ result.recommendations.push('Internet works but API blocked. Check: VPN, Firewall, iOS ATS settings');
105
+ }
106
+ }
107
+
108
+ // Test 3: Can we make POST requests?
109
+ console.log('\n🧪 Test 3: POST Request (OAuth simulation)');
110
+ try {
111
+ const postStart = Date.now();
112
+ const postRes = await fetch(`${_api.API_CONFIG.BASE_URL}/youtube/authorize`, {
113
+ method: 'POST',
114
+ headers: {
115
+ 'Content-Type': 'application/json',
116
+ 'Accept': 'application/json'
117
+ },
118
+ body: JSON.stringify({
119
+ session: {
120
+ username: 'diagnostic_test',
121
+ platform: 'youtube',
122
+ timestamp: new Date().toISOString()
123
+ }
124
+ })
125
+ });
126
+ const postTime = Date.now() - postStart;
127
+ const postBody = await postRes.text().catch(() => 'Unable to read');
128
+ result.rawResults.apiPost = {
129
+ status: postRes.status,
130
+ time: postTime,
131
+ body: postBody.substring(0, 500)
132
+ };
133
+
134
+ // Any response is good - we're testing if the request gets through
135
+ result.tests.apiPostWorks = true;
136
+ console.log(` ✅ PASS - POST request succeeded, status: ${postRes.status} (${postTime}ms)`);
137
+
138
+ // Check if we got an OAuth URL back
139
+ try {
140
+ const data = JSON.parse(postBody);
141
+ if (data.youtubeURL) {
142
+ result.tests.youtubeOAuthWorks = true;
143
+ console.log(` ✅ BONUS - Got YouTube OAuth URL!`);
144
+ }
145
+ } catch {
146
+ // Not JSON or no URL - that's fine for this test
147
+ }
148
+ } catch (error) {
149
+ result.tests.apiPostWorks = false;
150
+ result.errors.push(`POST request failed: ${error.message}`);
151
+ result.rawResults.apiPost = {
152
+ error: error.message
153
+ };
154
+ console.log(` ❌ FAIL - ${error.message}`);
155
+ result.recommendations.push('POST requests failing. This is the exact issue affecting OAuth.');
156
+ }
157
+
158
+ // Generate recommendations
159
+ console.log('\n───────────────────────────────────────────');
160
+ console.log('📋 SUMMARY');
161
+ console.log('───────────────────────────────────────────');
162
+ const passCount = Object.values(result.tests).filter(Boolean).length;
163
+ const totalTests = Object.keys(result.tests).length;
164
+ console.log(`\nTests Passed: ${passCount}/${totalTests}`);
165
+ if (passCount === totalTests) {
166
+ console.log('\n✅ ALL TESTS PASSED - SDK should work correctly');
167
+ } else {
168
+ console.log('\n⚠️ SOME TESTS FAILED - See recommendations below:');
169
+
170
+ // Add platform-specific recommendations
171
+ if (_reactNative.Platform.OS === 'ios' && !result.tests.apiReachable) {
172
+ result.recommendations.push('iOS: Add NSAppTransportSecurity to Info.plist', 'iOS: Try on physical device instead of simulator');
173
+ }
174
+ if (!result.tests.googleReachable) {
175
+ result.recommendations.push('Device has no internet - check WiFi/cellular');
176
+ }
177
+ console.log('\n📌 RECOMMENDATIONS:');
178
+ result.recommendations.forEach((rec, i) => {
179
+ console.log(` ${i + 1}. ${rec}`);
180
+ });
181
+ }
182
+ console.log('\n═══════════════════════════════════════════');
183
+ console.log('Full results object logged below for debugging:');
184
+ console.log(JSON.stringify(result, null, 2));
185
+ return result;
186
+ };
187
+
188
+ /**
189
+ * Quick connectivity check - returns true if API is reachable
190
+ */
191
+ exports.runFullDiagnostics = runFullDiagnostics;
192
+ const isApiReachable = async () => {
193
+ try {
194
+ const response = await fetch(`${_api.API_CONFIG.BASE_URL}/health`, {
195
+ method: 'GET'
196
+ });
197
+ return response.ok;
198
+ } catch {
199
+ return false;
200
+ }
201
+ };
202
+
203
+ /**
204
+ * Get a simple status string for display to users
205
+ */
206
+ exports.isApiReachable = isApiReachable;
207
+ const getNetworkStatus = async () => {
208
+ try {
209
+ // Check Google first
210
+ await fetch('https://www.google.com', {
211
+ method: 'HEAD'
212
+ });
213
+
214
+ // Check our API
215
+ const apiRes = await fetch(`${_api.API_CONFIG.BASE_URL}/health`);
216
+ if (apiRes.ok) {
217
+ return 'online';
218
+ } else {
219
+ return 'api_unreachable';
220
+ }
221
+ } catch {
222
+ return 'offline';
223
+ }
224
+ };
225
+ exports.getNetworkStatus = getNetworkStatus;
226
+ //# sourceMappingURL=networkDiagnostics.js.map
@@ -1,9 +1,350 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("@react-native-community/netinfo"),
5
- require("./debugHelper"),
6
- require("../services/apiKeyService")
7
- ];
8
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
9
- function _0x5332(){const _0x221f49=['defineProperty','__esModule','validateCredentials','updatePlatformConnections','storePIN','refreshToken','isCurrentUserAuthenticated','getUserProfile','getCurrentUserToken','createAccount','authenticate','ApiError','code','details','name','WluXT','default','fetch','ndTSG','timeout_error','oSPpF','nDNJq','User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','wEYVs','validation_error','server_error','unknown_error','ZwnbZ','ewkIx','RYFLd','User\x20API\x20Error','bdXZp','dHKqH','rpWLB','weiIo','cUTPU','Developer\x20API\x20Error','message','IBatZ','An\x20unexpected\x20error\x20occurred','nTAFy','fifXY','ezslW','fmjqx','xQhoj','logDebug','nikrj','YJqgz','makeUserRequest','json','User\x20API\x20Response','status','auth_error','pliVL','LVogH','gurPE','PGodf','API\x20request\x20failed','error','hbdgA','VswyE','OlxVp','ZwDsK','MhxjD','[REDACTED]','ntAUS','OPsfg','aZFcR','kuIOy','aDxQp','user/profile','network_error','Developer\x20API\x20Request','fCTuP','Developer\x20API\x20Response','vspTw','Request\x20timed\x20out','Unknown\x20error','rzddB','kSIRR','PqvOn','dUnxx','CWYGl','makeDeveloperRequest','stringify','ubVWR','platforms/','/data','debug','sNCFy','gMQqk','Rqsvu','wEQpk','RdoSm','tBdWW','asdka','KBIYC','NjTyi','ZthUq','fbqiY','HjrUV','YahmG','Jefrj','waXtT','HLVKI','hXjrZ','UgZhy','Wxqeg','yaieM','CqnJr','XcHgO','NVkaB','auth/login','auth/validate','AQkES','HcPIE','success','data','lTPWI','isValid','rJftS','fbctX','nYbMU','VrpuF','username','userPin','auth/register','ZjvtM','CVpjt','platforms','BRxZK','auth/refresh','ZVBpo','getPlatformData','WMxFv','SbITZ','user/platforms','store-pin/mobile','extractUsernameFromJWT','qqNvD','fGsJO','lZSex','getJWT','isUserAuthenticated'];_0x5332=function(){return _0x221f49;};return _0x5332();}function _0x3dcb(_0x533296,_0x3dcb9a){_0x533296=_0x533296-0x0;const _0xcbd5b9=_0x5332();let _0x412a3e=_0xcbd5b9[_0x533296];return _0x412a3e;}Object[_0x3dcb(0x0)](exports,_0x3dcb(0x1),{'value':!![]}),exports[_0x3dcb(0x2)]=exports[_0x3dcb(0x3)]=exports[_0x3dcb(0x4)]=exports[_0x3dcb(0x5)]=exports[_0x3dcb(0x6)]=exports[_0x3dcb(0x7)]=exports['getPlatformData']=exports[_0x3dcb(0x8)]=exports[_0x3dcb(0x9)]=exports[_0x3dcb(0xa)]=exports[_0x3dcb(0xb)]=void 0x0;var _netinfo=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x0)),_debugHelper=__ONAIROS_REQ_FUNC__(0x1),_apiKeyService=__ONAIROS_REQ_FUNC__(0x2);function _interopRequireDefault(_0x28d0ac){return _0x28d0ac&&_0x28d0ac[_0x3dcb(0x1)]?_0x28d0ac:{'default':_0x28d0ac};}class ApiError extends Error{constructor(_0x23e3a0,_0x3825be,_0x17d6ee,_0x234920){const _0x38e854={'WluXT':_0x3dcb(0xb)};super(_0x23e3a0),this['type']=_0x3825be,this[_0x3dcb(0xc)]=_0x17d6ee,this[_0x3dcb(0xd)]=_0x234920,this[_0x3dcb(0xe)]=_0x38e854[_0x3dcb(0xf)];}}exports['ApiError']=ApiError;const checkNetworkConnection=async()=>{const _0x244f8f={'ndTSG':function(_0x3273d5,_0x2d1d08){return _0x3273d5===_0x2d1d08;}},_0x42455f=await _netinfo[_0x3dcb(0x10)][_0x3dcb(0x11)]();return _0x244f8f[_0x3dcb(0x12)](_0x42455f['isConnected'],!![]);},makeUserApiRequest=async(_0x498875,_0x58e066,_0x4f2d86={})=>{const _0x5660cc={'dHKqH':function(_0x11a41c,_0x55b2ee){return _0x11a41c instanceof _0x55b2ee;},'rpWLB':'AbortError','weiIo':'Request\x20timed\x20out','cUTPU':_0x3dcb(0x13),'IBatZ':'Unknown\x20error','nikrj':'User\x20API\x20Request','uqgEc':_0x3dcb(0x14),'bdXZp':_0x3dcb(0x15),'YyBUq':function(_0xe18873){return _0xe18873();},'mdOgK':'No\x20network\x20connection\x20available','nTAFy':'network_error','fifXY':_0x3dcb(0x16),'ezslW':'auth_error','fmjqx':function(_0x42b254,_0x372c4f){return _0x42b254===_0x372c4f;},'xQhoj':_0x3dcb(0x17),'YJqgz':'[REDACTED]','PGodf':function(_0x125f82,_0x1a669e){return _0x125f82===_0x1a669e;},'ksPoL':_0x3dcb(0x18),'pliVL':function(_0x138927,_0x3518f6){return _0x138927>=_0x3518f6;},'LVogH':_0x3dcb(0x19),'gurPE':_0x3dcb(0x1a),'hbdgA':function(_0x1bd635,_0x2d49fd){return _0x1bd635===_0x2d49fd;},'VswyE':function(_0x5e8e8a,_0x540442){return _0x5e8e8a instanceof _0x540442;},'OlxVp':function(_0x582d62,_0x3d8779){return _0x582d62===_0x3d8779;},'MhxjD':_0x3dcb(0x1b),'ieiic':function(_0x377573,_0x4fd766){return _0x377573===_0x4fd766;},'ntAUS':function(_0x1d0c18,_0x4ab91f){return _0x1d0c18===_0x4ab91f;},'OPsfg':_0x3dcb(0x1c),'aZFcR':_0x3dcb(0x1d),'kuIOy':_0x3dcb(0x1e),'aDxQp':'An\x20unexpected\x20error\x20occurred'},{data:_0x3735e9,headers:headers={},debug:debug=![]}=_0x4f2d86;try{if(_0x5660cc['uqgEc']===_0x5660cc[_0x3dcb(0x1f)]){if(_0x5660cc[_0x3dcb(0x20)](_0xbb07b1,_0x439656))throw _0x3267bb;if(_0x3e993e[_0x3dcb(0xe)]===_0x5660cc[_0x3dcb(0x21)])throw new _0x2b474e(_0x5660cc[_0x3dcb(0x22)],_0x5660cc[_0x3dcb(0x23)]);_0x158ea5&&(0x0,_0xb4172a['logDebug'])(_0x3dcb(0x24),{'endpoint':_0x2ce79d,'method':_0x1660d0,'error':_0x54b314[_0x3dcb(0x25)]||_0x5660cc[_0x3dcb(0x26)]});throw new _0x1b2b19(_0x3026db[_0x3dcb(0x25)]||_0x3dcb(0x27),_0x3dcb(0x1a));}else{const _0x2e7965=await _0x5660cc['YyBUq'](checkNetworkConnection);if(!_0x2e7965)throw new ApiError(_0x5660cc['mdOgK'],_0x5660cc[_0x3dcb(0x28)]);if(!(0x0,_apiKeyService['isUserAuthenticated'])())throw new ApiError(_0x5660cc[_0x3dcb(0x29)],_0x5660cc[_0x3dcb(0x2a)]);if(debug){if(_0x5660cc[_0x3dcb(0x2b)](_0x5660cc['xQhoj'],_0x5660cc[_0x3dcb(0x2c)]))(0x0,_debugHelper[_0x3dcb(0x2d)])(_0x5660cc[_0x3dcb(0x2e)],{'endpoint':_0x498875,'method':_0x58e066,'headers':{...headers,'Authorization':_0x5660cc[_0x3dcb(0x2f)]},'data':_0x3735e9||null});else throw _0x29f4ce;}const _0x5e3a45=await(0x0,_apiKeyService[_0x3dcb(0x30)])(_0x498875,{'method':_0x58e066,'headers':headers,..._0x3735e9?{'body':JSON['stringify'](_0x3735e9)}:{}}),_0x4fb430=await _0x5e3a45[_0x3dcb(0x31)]();debug&&(0x0,_debugHelper[_0x3dcb(0x2d)])(_0x3dcb(0x32),{'status':_0x5e3a45[_0x3dcb(0x33)],'data':_0x4fb430});if(!_0x5e3a45['ok']){var _0x3bb08d,_0x309578,_0x5e3c55;const _0x56edda=_0x5660cc[_0x3dcb(0x2b)](_0x5e3a45[_0x3dcb(0x33)],0x191)||_0x5660cc['PGodf'](_0x5e3a45['status'],0x193)?_0x3dcb(0x34):_0x5660cc[_0x3dcb(0x2b)](_0x5e3a45[_0x3dcb(0x33)],0x190)?_0x5660cc['ksPoL']:_0x5660cc[_0x3dcb(0x35)](_0x5e3a45[_0x3dcb(0x33)],0x1f4)?_0x5660cc[_0x3dcb(0x36)]:_0x5660cc[_0x3dcb(0x37)];throw new ApiError(((_0x3bb08d=_0x4fb430['error'])===null||_0x5660cc[_0x3dcb(0x38)](_0x3bb08d,void 0x0)?void 0x0:_0x3bb08d[_0x3dcb(0x25)])||_0x3dcb(0x39),_0x56edda,_0x5660cc[_0x3dcb(0x2b)](_0x309578=_0x4fb430[_0x3dcb(0x3a)],null)||_0x5660cc[_0x3dcb(0x38)](_0x309578,void 0x0)?void 0x0:_0x309578[_0x3dcb(0xc)],(_0x5e3c55=_0x4fb430[_0x3dcb(0x3a)])===null||_0x5660cc[_0x3dcb(0x3b)](_0x5e3c55,void 0x0)?void 0x0:_0x5e3c55[_0x3dcb(0xd)]);}return _0x4fb430;}}catch(_0x387f06){if(_0x5660cc[_0x3dcb(0x3c)](_0x387f06,ApiError)){if(_0x5660cc[_0x3dcb(0x3d)](_0x3dcb(0x3e),_0x5660cc[_0x3dcb(0x3f)]))(0x0,_0x2a4ee3[_0x3dcb(0x2d)])(_0x5660cc['nikrj'],{'endpoint':_0x126499,'method':_0x5567c3,'headers':{..._0x507cb7,'Authorization':_0x3dcb(0x40)},'data':_0x11caa8||null});else throw _0x387f06;}if(_0x5660cc['ieiic'](_0x387f06[_0x3dcb(0xe)],_0x5660cc[_0x3dcb(0x21)])){if(_0x5660cc[_0x3dcb(0x41)](_0x5660cc[_0x3dcb(0x42)],_0x5660cc[_0x3dcb(0x43)]))return _0x1867da&&_0x5439fb['__esModule']?_0x3cdf86:{'default':_0x333364};else throw new ApiError(_0x5660cc[_0x3dcb(0x22)],_0x5660cc[_0x3dcb(0x23)]);}debug&&(0x0,_debugHelper['logDebug'])(_0x5660cc[_0x3dcb(0x44)],{'endpoint':_0x498875,'method':_0x58e066,'error':_0x387f06[_0x3dcb(0x25)]||_0x5660cc[_0x3dcb(0x26)]});throw new ApiError(_0x387f06[_0x3dcb(0x25)]||_0x5660cc[_0x3dcb(0x45)],_0x5660cc[_0x3dcb(0x37)]);}},makeDeveloperApiRequest=async(_0x540339,_0x4afc85,_0x180862={})=>{const _0xef2d32={'hzoox':_0x3dcb(0x32),'XcHgO':function(_0x376926,_0x5b17ab,_0x2d608f,_0x4abe17){return _0x376926(_0x5b17ab,_0x2d608f,_0x4abe17);},'sNCFy':function(_0x2d7dd2,_0x502da7){return _0x2d7dd2===_0x502da7;},'gMQqk':'auth_error','HLVKI':function(_0x33c67d,_0x4caeb1){return _0x33c67d===_0x4caeb1;},'wEQpk':'validation_error','RdoSm':function(_0x3a4f34,_0x3c26c9){return _0x3a4f34>=_0x3c26c9;},'govse':_0x3dcb(0x19),'hXjrZ':_0x3dcb(0x1a),'rKolM':function(_0x9f93ba,_0xdbb12b){return _0x9f93ba===_0xdbb12b;},'UgZhy':_0x3dcb(0x39),'Wxqeg':function(_0x5e5d1c,_0xb81205){return _0x5e5d1c===_0xb81205;},'NVkaB':_0x3dcb(0x46),'rzddB':function(_0x1f9ac0){return _0x1f9ac0();},'PqvOn':'eeLJK','CngQp':_0x3dcb(0x47),'tCSyD':_0x3dcb(0x48),'dUnxx':_0x3dcb(0x40),'CWYGl':function(_0x2e86ef,_0x4edb0e){return _0x2e86ef||_0x4edb0e;},'ubVWR':function(_0x147a78,_0x23eb32){return _0x147a78!==_0x23eb32;},'VOwWI':_0x3dcb(0x49),'pbRGJ':_0x3dcb(0x4a),'Rqsvu':function(_0x593df6,_0x41fe89){return _0x593df6===_0x41fe89;},'tBdWW':function(_0x3c7f78,_0x5ee021){return _0x3c7f78===_0x5ee021;},'asdka':function(_0x152248,_0x54307c){return _0x152248===_0x54307c;},'KBIYC':function(_0x705add,_0x484fab){return _0x705add===_0x484fab;},'XkpNd':function(_0x952a47,_0x33b847){return _0x952a47===_0x33b847;},'NjTyi':function(_0x1ddd49,_0x47039c){return _0x1ddd49===_0x47039c;},'ZthUq':_0x3dcb(0x4b),'fbqiY':function(_0x35a8ae,_0x530b5d){return _0x35a8ae===_0x530b5d;},'HjrUV':'AbortError','YahmG':_0x3dcb(0x4c),'Jefrj':_0x3dcb(0x13),'yaieM':_0x3dcb(0x4d),'CqnJr':'An\x20unexpected\x20error\x20occurred'},{data:_0x5b562d,headers:headers={},debug:debug=![]}=_0x180862;try{const _0x39de44=await _0xef2d32[_0x3dcb(0x4e)](checkNetworkConnection);if(!_0x39de44){if(_0x3dcb(0x4f)===_0xef2d32[_0x3dcb(0x50)])(0x0,_0x122fa3[_0x3dcb(0x2d)])(_0xef2d32['hzoox'],{'status':_0x4b00b6['status'],'data':_0x38374a});else throw new ApiError('No\x20network\x20connection\x20available',_0xef2d32['CngQp']);}debug&&(0x0,_debugHelper[_0x3dcb(0x2d)])(_0xef2d32['tCSyD'],{'endpoint':_0x540339,'method':_0x4afc85,'headers':{...headers,'Authorization':_0xef2d32[_0x3dcb(0x51)]},'data':_0xef2d32[_0x3dcb(0x52)](_0x5b562d,null)});const _0x43ff75=await(0x0,_apiKeyService[_0x3dcb(0x53)])(_0x540339,{'method':_0x4afc85,'headers':headers,..._0x5b562d?{'body':JSON[_0x3dcb(0x54)](_0x5b562d)}:{}}),_0x225aa0=await _0x43ff75[_0x3dcb(0x31)]();if(debug){if(_0xef2d32[_0x3dcb(0x55)](_0x3dcb(0x49),_0xef2d32['VOwWI']))return _0xef2d32['XcHgO'](_0x387437,_0x3dcb(0x56)+_0x374b9e+_0x3dcb(0x57),'GET',{'debug':_0x2a768e[_0x3dcb(0x58)]});else(0x0,_debugHelper[_0x3dcb(0x2d)])(_0xef2d32['pbRGJ'],{'status':_0x43ff75[_0x3dcb(0x33)],'data':_0x225aa0});}if(!_0x43ff75['ok']){var _0x3e358b,_0x5d8aae,_0x715af9;const _0x1cd319=_0x43ff75['status']===0x191||_0xef2d32[_0x3dcb(0x59)](_0x43ff75[_0x3dcb(0x33)],0x193)?_0xef2d32[_0x3dcb(0x5a)]:_0xef2d32[_0x3dcb(0x5b)](_0x43ff75[_0x3dcb(0x33)],0x190)?_0xef2d32[_0x3dcb(0x5c)]:_0xef2d32[_0x3dcb(0x5d)](_0x43ff75[_0x3dcb(0x33)],0x1f4)?_0x3dcb(0x19):_0x3dcb(0x1a);throw new ApiError((_0xef2d32[_0x3dcb(0x5e)](_0x3e358b=_0x225aa0[_0x3dcb(0x3a)],null)||_0xef2d32[_0x3dcb(0x5f)](_0x3e358b,void 0x0)?void 0x0:_0x3e358b['message'])||'API\x20request\x20failed',_0x1cd319,(_0x5d8aae=_0x225aa0['error'])===null||_0xef2d32[_0x3dcb(0x60)](_0x5d8aae,void 0x0)?void 0x0:_0x5d8aae[_0x3dcb(0xc)],_0xef2d32['XkpNd'](_0x715af9=_0x225aa0['error'],null)||_0xef2d32[_0x3dcb(0x61)](_0x715af9,void 0x0)?void 0x0:_0x715af9[_0x3dcb(0xd)]);}return _0x225aa0;}catch(_0x434646){if(_0xef2d32[_0x3dcb(0x62)]===_0x3dcb(0x4b)){if(_0x434646 instanceof ApiError)throw _0x434646;if(_0xef2d32[_0x3dcb(0x63)](_0x434646['name'],_0xef2d32[_0x3dcb(0x64)]))throw new ApiError(_0xef2d32[_0x3dcb(0x65)],_0xef2d32[_0x3dcb(0x66)]);if(debug){if(_0xef2d32[_0x3dcb(0x55)](_0x3dcb(0x67),_0x3dcb(0x67))){var _0x2df567,_0x4e24a8,_0x201226;const _0x3ff302=_0xef2d32[_0x3dcb(0x59)](_0x89f4ee[_0x3dcb(0x33)],0x191)||_0xef2d32[_0x3dcb(0x59)](_0x4bd8b6[_0x3dcb(0x33)],0x193)?_0xef2d32[_0x3dcb(0x5a)]:_0xef2d32[_0x3dcb(0x68)](_0x35a724['status'],0x190)?_0xef2d32[_0x3dcb(0x5c)]:_0xef2d32[_0x3dcb(0x5d)](_0x1c1f7d[_0x3dcb(0x33)],0x1f4)?_0xef2d32['govse']:_0xef2d32[_0x3dcb(0x69)];throw new _0x456035((_0xef2d32['rKolM'](_0x2df567=_0x3acb7d['error'],null)||_0x2df567===void 0x0?void 0x0:_0x2df567[_0x3dcb(0x25)])||_0xef2d32[_0x3dcb(0x6a)],_0x3ff302,(_0x4e24a8=_0x5f3027[_0x3dcb(0x3a)])===null||_0x4e24a8===void 0x0?void 0x0:_0x4e24a8['code'],(_0x201226=_0x36f285[_0x3dcb(0x3a)])===null||_0xef2d32[_0x3dcb(0x6b)](_0x201226,void 0x0)?void 0x0:_0x201226[_0x3dcb(0xd)]);}else(0x0,_debugHelper['logDebug'])(_0x3dcb(0x24),{'endpoint':_0x540339,'method':_0x4afc85,'error':_0x434646['message']||_0xef2d32[_0x3dcb(0x6c)]});}throw new ApiError(_0x434646[_0x3dcb(0x25)]||_0xef2d32[_0x3dcb(0x6d)],_0xef2d32[_0x3dcb(0x69)]);}else return _0xef2d32[_0x3dcb(0x6e)](_0x15292e,_0xef2d32[_0x3dcb(0x6f)],'GET',{'debug':_0x22c0ee[_0x3dcb(0x58)]});}},validateCredentials=async(_0x4c526b,_0x3f93c9={'debug':![]})=>{const _0x24907c={'nYbMU':function(_0x1591f8,_0xe70396,_0x5949ea,_0x4911de){return _0x1591f8(_0xe70396,_0x5949ea,_0x4911de);},'VrpuF':_0x3dcb(0x70),'HcPIE':_0x3dcb(0x71),'lTPWI':function(_0x2017a8,_0x2fe113){return _0x2017a8===_0x2fe113;},'rJftS':function(_0x1f4a06,_0x3dda25){return _0x1f4a06===_0x3dda25;},'fbctX':_0x3dcb(0x72)};try{var _0x2a92b9,_0x54f6b5;const _0x30d78b=await makeUserApiRequest(_0x24907c[_0x3dcb(0x73)],'POST',{'data':{'username':_0x4c526b},'debug':_0x3f93c9[_0x3dcb(0x58)]});return{'isValid':_0x30d78b[_0x3dcb(0x74)]&&_0x24907c['lTPWI']((_0x2a92b9=_0x30d78b[_0x3dcb(0x75)])===null||_0x24907c[_0x3dcb(0x76)](_0x2a92b9,void 0x0)?void 0x0:_0x2a92b9[_0x3dcb(0x77)],!![]),'message':_0x24907c[_0x3dcb(0x76)](_0x54f6b5=_0x30d78b[_0x3dcb(0x3a)],null)||_0x24907c[_0x3dcb(0x78)](_0x54f6b5,void 0x0)?void 0x0:_0x54f6b5[_0x3dcb(0x25)]};}catch(_0x44c101){return _0x24907c[_0x3dcb(0x78)](_0x24907c[_0x3dcb(0x79)],_0x24907c[_0x3dcb(0x79)])?{'isValid':![],'message':_0x44c101[_0x3dcb(0x25)]}:_0x24907c[_0x3dcb(0x7a)](_0x5281f9,_0x24907c[_0x3dcb(0x7b)],'POST',{'data':{'username':_0x59af50[_0x3dcb(0x7c)],'pin':_0x5ee1e8[_0x3dcb(0x7d)]},'debug':_0x11ad98[_0x3dcb(0x58)]});}};exports[_0x3dcb(0x2)]=validateCredentials;const createAccount=async(_0x52318a,_0x58ecfa={'debug':![]})=>{const _0x916930={'ZjvtM':function(_0xaffbb5,_0x13b415,_0x6a46c9,_0x2ea25a){return _0xaffbb5(_0x13b415,_0x6a46c9,_0x2ea25a);},'CVpjt':_0x3dcb(0x7e)};return _0x916930[_0x3dcb(0x7f)](makeDeveloperApiRequest,_0x916930[_0x3dcb(0x80)],'POST',{'data':{'username':_0x52318a['username'],'platforms':_0x52318a[_0x3dcb(0x81)]},'debug':_0x58ecfa[_0x3dcb(0x58)]});};exports['createAccount']=createAccount;const authenticate=async(_0x27ec57,_0x2483e6={'debug':![]})=>{const _0x42a276={'sEFht':function(_0x2b7c3d,_0x320a20,_0x481cde,_0x36b63a){return _0x2b7c3d(_0x320a20,_0x481cde,_0x36b63a);},'BRxZK':'auth/login'};return _0x42a276['sEFht'](makeUserApiRequest,_0x42a276[_0x3dcb(0x82)],'POST',{'data':{'username':_0x27ec57[_0x3dcb(0x7c)],'pin':_0x27ec57[_0x3dcb(0x7d)]},'debug':_0x2483e6[_0x3dcb(0x58)]});};exports[_0x3dcb(0xa)]=authenticate;const refreshToken=async(_0x265743,_0x1c53f6={'debug':![]})=>{const _0x5afc14={'ojnWT':function(_0x541731,_0x4fb47d,_0x253f46,_0x1f7207){return _0x541731(_0x4fb47d,_0x253f46,_0x1f7207);}};return _0x5afc14['ojnWT'](makeUserApiRequest,_0x3dcb(0x83),'POST',{'data':{'refreshToken':_0x265743},'debug':_0x1c53f6[_0x3dcb(0x58)]});};exports[_0x3dcb(0x5)]=refreshToken;const getPlatformData=async(_0x4df4b5,_0x4100ee={'debug':![]})=>{const _0x5be494={'ZVBpo':function(_0x4168d0,_0x4c3adf,_0x28782d,_0x4a8faf){return _0x4168d0(_0x4c3adf,_0x28782d,_0x4a8faf);}};return _0x5be494[_0x3dcb(0x84)](makeUserApiRequest,_0x3dcb(0x56)+_0x4df4b5+'/data','GET',{'debug':_0x4100ee[_0x3dcb(0x58)]});};exports[_0x3dcb(0x85)]=getPlatformData;const getUserProfile=async(_0x4dfea5={'debug':![]})=>{const _0x1045f0={'WMxFv':function(_0x1b6fe4,_0x201905,_0x16f92a,_0x563102){return _0x1b6fe4(_0x201905,_0x16f92a,_0x563102);},'SbITZ':_0x3dcb(0x46)};return _0x1045f0[_0x3dcb(0x86)](makeUserApiRequest,_0x1045f0[_0x3dcb(0x87)],'GET',{'debug':_0x4dfea5['debug']});};exports[_0x3dcb(0x7)]=getUserProfile;const updatePlatformConnections=async(_0x149b6f,_0x4b5217={'debug':![]})=>{const _0x36e414={'ISMvh':function(_0x409a18,_0x5114c0,_0x2d2546,_0x15c4db){return _0x409a18(_0x5114c0,_0x2d2546,_0x15c4db);}};return _0x36e414['ISMvh'](makeUserApiRequest,_0x3dcb(0x88),'PUT',{'data':{'platforms':_0x149b6f},'debug':_0x4b5217[_0x3dcb(0x58)]});};exports[_0x3dcb(0x3)]=updatePlatformConnections;const storePIN=async(_0x2234af,_0x546a69={})=>{const _0x274085={'qqNvD':'No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','fGsJO':_0x3dcb(0x34),'lZSex':_0x3dcb(0x89)},{debug:debug=![],username:_0x2d3bd0}=_0x546a69,_0x33b07a=_0x2d3bd0||(0x0,_apiKeyService[_0x3dcb(0x8a)])();if(!_0x33b07a)throw new ApiError(_0x274085[_0x3dcb(0x8b)],_0x274085[_0x3dcb(0x8c)]);return makeUserApiRequest(_0x274085[_0x3dcb(0x8d)],'POST',{'data':{'username':_0x33b07a,'pin':_0x2234af},'debug':debug});};exports[_0x3dcb(0x4)]=storePIN;const getCurrentUserToken=async()=>{return await(0x0,_apiKeyService[_0x3dcb(0x8e)])();};exports['getCurrentUserToken']=getCurrentUserToken;const isCurrentUserAuthenticated=()=>{return(0x0,_apiKeyService[_0x3dcb(0x8f)])();};exports['isCurrentUserAuthenticated']=isCurrentUserAuthenticated;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateCredentials = exports.updatePlatformConnections = exports.storePIN = exports.refreshToken = exports.isCurrentUserAuthenticated = exports.getUserProfile = exports.getPlatformData = exports.getCurrentUserToken = exports.createAccount = exports.authenticate = exports.ApiError = void 0;
7
+ var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
8
+ var _debugHelper = require("./debugHelper");
9
+ var _apiKeyService = require("../services/apiKeyService");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // API response types
12
+
13
+ // Error types
14
+
15
+ // API error structure
16
+ class ApiError extends Error {
17
+ constructor(message, type, code, details) {
18
+ super(message);
19
+ this.type = type;
20
+ this.code = code;
21
+ this.details = details;
22
+ this.name = 'ApiError';
23
+ }
24
+ }
25
+
26
+ /**
27
+ * Check if the device has an active network connection
28
+ */
29
+ exports.ApiError = ApiError;
30
+ const checkNetworkConnection = async () => {
31
+ const networkState = await _netinfo.default.fetch();
32
+ return networkState.isConnected === true;
33
+ };
34
+
35
+ /**
36
+ * Make user-authenticated API request using JWT token
37
+ */
38
+ const makeUserApiRequest = async (endpoint, method, options = {}) => {
39
+ const {
40
+ data,
41
+ headers = {},
42
+ debug = false
43
+ } = options;
44
+ try {
45
+ // Check for network connectivity
46
+ const isConnected = await checkNetworkConnection();
47
+ if (!isConnected) {
48
+ throw new ApiError('No network connection available', 'network_error');
49
+ }
50
+
51
+ // Check if user is authenticated
52
+ if (!(0, _apiKeyService.isUserAuthenticated)()) {
53
+ throw new ApiError('User not authenticated. Please verify email first.', 'auth_error');
54
+ }
55
+
56
+ // Log request information if debug mode is enabled
57
+ if (debug) {
58
+ (0, _debugHelper.logDebug)('User API Request', {
59
+ endpoint,
60
+ method,
61
+ headers: {
62
+ ...headers,
63
+ Authorization: '[REDACTED]'
64
+ },
65
+ data: data || null
66
+ });
67
+ }
68
+
69
+ // Make authenticated request using JWT token
70
+ const response = await (0, _apiKeyService.makeUserRequest)(endpoint, {
71
+ method,
72
+ headers,
73
+ ...(data ? {
74
+ body: JSON.stringify(data)
75
+ } : {})
76
+ });
77
+
78
+ // Parse response as JSON
79
+ const responseData = await response.json();
80
+
81
+ // Log response if debug mode is enabled
82
+ if (debug) {
83
+ (0, _debugHelper.logDebug)('User API Response', {
84
+ status: response.status,
85
+ data: responseData
86
+ });
87
+ }
88
+
89
+ // Handle API error responses
90
+ if (!response.ok) {
91
+ var _responseData$error, _responseData$error2, _responseData$error3;
92
+ const errorType = response.status === 401 || response.status === 403 ? 'auth_error' : response.status === 400 ? 'validation_error' : response.status >= 500 ? 'server_error' : 'unknown_error';
93
+ throw new ApiError(((_responseData$error = responseData.error) === null || _responseData$error === void 0 ? void 0 : _responseData$error.message) || 'API request failed', errorType, (_responseData$error2 = responseData.error) === null || _responseData$error2 === void 0 ? void 0 : _responseData$error2.code, (_responseData$error3 = responseData.error) === null || _responseData$error3 === void 0 ? void 0 : _responseData$error3.details);
94
+ }
95
+ return responseData;
96
+ } catch (error) {
97
+ // Handle specific error types
98
+ if (error instanceof ApiError) {
99
+ throw error;
100
+ }
101
+ if (error.name === 'AbortError') {
102
+ throw new ApiError('Request timed out', 'timeout_error');
103
+ }
104
+
105
+ // Log error if debug mode is enabled
106
+ if (debug) {
107
+ (0, _debugHelper.logDebug)('User API Error', {
108
+ endpoint,
109
+ method,
110
+ error: error.message || 'Unknown error'
111
+ });
112
+ }
113
+
114
+ // Return a generic error for all other cases
115
+ throw new ApiError(error.message || 'An unexpected error occurred', 'unknown_error');
116
+ }
117
+ };
118
+
119
+ /**
120
+ * Make developer-authenticated API request using API key
121
+ */
122
+ const makeDeveloperApiRequest = async (endpoint, method, options = {}) => {
123
+ const {
124
+ data,
125
+ headers = {},
126
+ debug = false
127
+ } = options;
128
+ try {
129
+ // Check for network connectivity
130
+ const isConnected = await checkNetworkConnection();
131
+ if (!isConnected) {
132
+ throw new ApiError('No network connection available', 'network_error');
133
+ }
134
+
135
+ // Log request information if debug mode is enabled
136
+ if (debug) {
137
+ (0, _debugHelper.logDebug)('Developer API Request', {
138
+ endpoint,
139
+ method,
140
+ headers: {
141
+ ...headers,
142
+ Authorization: '[REDACTED]'
143
+ },
144
+ data: data || null
145
+ });
146
+ }
147
+
148
+ // Make authenticated request using developer API key
149
+ const response = await (0, _apiKeyService.makeDeveloperRequest)(endpoint, {
150
+ method,
151
+ headers,
152
+ ...(data ? {
153
+ body: JSON.stringify(data)
154
+ } : {})
155
+ });
156
+
157
+ // Parse response as JSON
158
+ const responseData = await response.json();
159
+
160
+ // Log response if debug mode is enabled
161
+ if (debug) {
162
+ (0, _debugHelper.logDebug)('Developer API Response', {
163
+ status: response.status,
164
+ data: responseData
165
+ });
166
+ }
167
+
168
+ // Handle API error responses
169
+ if (!response.ok) {
170
+ var _responseData$error4, _responseData$error5, _responseData$error6;
171
+ const errorType = response.status === 401 || response.status === 403 ? 'auth_error' : response.status === 400 ? 'validation_error' : response.status >= 500 ? 'server_error' : 'unknown_error';
172
+ throw new ApiError(((_responseData$error4 = responseData.error) === null || _responseData$error4 === void 0 ? void 0 : _responseData$error4.message) || 'API request failed', errorType, (_responseData$error5 = responseData.error) === null || _responseData$error5 === void 0 ? void 0 : _responseData$error5.code, (_responseData$error6 = responseData.error) === null || _responseData$error6 === void 0 ? void 0 : _responseData$error6.details);
173
+ }
174
+ return responseData;
175
+ } catch (error) {
176
+ // Handle specific error types
177
+ if (error instanceof ApiError) {
178
+ throw error;
179
+ }
180
+ if (error.name === 'AbortError') {
181
+ throw new ApiError('Request timed out', 'timeout_error');
182
+ }
183
+
184
+ // Log error if debug mode is enabled
185
+ if (debug) {
186
+ (0, _debugHelper.logDebug)('Developer API Error', {
187
+ endpoint,
188
+ method,
189
+ error: error.message || 'Unknown error'
190
+ });
191
+ }
192
+
193
+ // Return a generic error for all other cases
194
+ throw new ApiError(error.message || 'An unexpected error occurred', 'unknown_error');
195
+ }
196
+ };
197
+
198
+ /**
199
+ * Validate user credentials with the API (uses JWT)
200
+ */
201
+ const validateCredentials = async (username, options = {
202
+ debug: false
203
+ }) => {
204
+ try {
205
+ var _response$data, _response$error;
206
+ const response = await makeUserApiRequest('auth/validate', 'POST', {
207
+ data: {
208
+ username
209
+ },
210
+ debug: options.debug
211
+ });
212
+ return {
213
+ isValid: response.success && ((_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.isValid) === true,
214
+ message: (_response$error = response.error) === null || _response$error === void 0 ? void 0 : _response$error.message
215
+ };
216
+ } catch (error) {
217
+ return {
218
+ isValid: false,
219
+ message: error.message
220
+ };
221
+ }
222
+ };
223
+
224
+ /**
225
+ * Create a new user account (uses developer API key)
226
+ */
227
+ exports.validateCredentials = validateCredentials;
228
+ const createAccount = async (credentials, options = {
229
+ debug: false
230
+ }) => {
231
+ return makeDeveloperApiRequest('auth/register', 'POST', {
232
+ data: {
233
+ username: credentials.username,
234
+ platforms: credentials.platforms
235
+ },
236
+ debug: options.debug
237
+ });
238
+ };
239
+
240
+ /**
241
+ * Authenticate with the API using credentials (uses JWT)
242
+ */
243
+ exports.createAccount = createAccount;
244
+ const authenticate = async (credentials, options = {
245
+ debug: false
246
+ }) => {
247
+ return makeUserApiRequest('auth/login', 'POST', {
248
+ data: {
249
+ username: credentials.username,
250
+ pin: credentials.userPin
251
+ },
252
+ debug: options.debug
253
+ });
254
+ };
255
+
256
+ /**
257
+ * Refresh authentication token (uses JWT)
258
+ */
259
+ exports.authenticate = authenticate;
260
+ const refreshToken = async (refreshToken, options = {
261
+ debug: false
262
+ }) => {
263
+ return makeUserApiRequest('auth/refresh', 'POST', {
264
+ data: {
265
+ refreshToken
266
+ },
267
+ debug: options.debug
268
+ });
269
+ };
270
+
271
+ /**
272
+ * Get user's connected platform data (uses JWT)
273
+ */
274
+ exports.refreshToken = refreshToken;
275
+ const getPlatformData = async (platform, options = {
276
+ debug: false
277
+ }) => {
278
+ return makeUserApiRequest(`platforms/${platform}/data`, 'GET', {
279
+ debug: options.debug
280
+ });
281
+ };
282
+
283
+ /**
284
+ * Get user profile information (uses JWT)
285
+ */
286
+ exports.getPlatformData = getPlatformData;
287
+ const getUserProfile = async (options = {
288
+ debug: false
289
+ }) => {
290
+ return makeUserApiRequest('user/profile', 'GET', {
291
+ debug: options.debug
292
+ });
293
+ };
294
+
295
+ /**
296
+ * Update user platform connections (uses JWT)
297
+ */
298
+ exports.getUserProfile = getUserProfile;
299
+ const updatePlatformConnections = async (platforms, options = {
300
+ debug: false
301
+ }) => {
302
+ return makeUserApiRequest('user/platforms', 'PUT', {
303
+ data: {
304
+ platforms
305
+ },
306
+ debug: options.debug
307
+ });
308
+ };
309
+
310
+ /**
311
+ * Store user PIN (uses JWT and extracts username from JWT)
312
+ */
313
+ exports.updatePlatformConnections = updatePlatformConnections;
314
+ const storePIN = async (pin, options = {}) => {
315
+ const {
316
+ debug = false,
317
+ username
318
+ } = options;
319
+
320
+ // Extract username from JWT if not provided
321
+ const userToStore = username || (0, _apiKeyService.extractUsernameFromJWT)();
322
+ if (!userToStore) {
323
+ throw new ApiError('No username available - either provide username or ensure JWT token is valid', 'auth_error');
324
+ }
325
+ return makeUserApiRequest('store-pin/mobile', 'POST', {
326
+ data: {
327
+ username: userToStore,
328
+ pin
329
+ },
330
+ debug
331
+ });
332
+ };
333
+
334
+ /**
335
+ * Get current JWT token
336
+ */
337
+ exports.storePIN = storePIN;
338
+ const getCurrentUserToken = async () => {
339
+ return await (0, _apiKeyService.getJWT)();
340
+ };
341
+
342
+ /**
343
+ * Check if user is authenticated with JWT
344
+ */
345
+ exports.getCurrentUserToken = getCurrentUserToken;
346
+ const isCurrentUserAuthenticated = () => {
347
+ return (0, _apiKeyService.isUserAuthenticated)();
348
+ };
349
+ exports.isCurrentUserAuthenticated = isCurrentUserAuthenticated;
350
+ //# sourceMappingURL=onairosApi.js.map