@onairos/react-native 3.5.4 → 3.6.1

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 (253) hide show
  1. package/README.md +423 -423
  2. package/lib/commonjs/api/index.js +1 -1
  3. package/lib/commonjs/assets/images/Checkbox.svg +3 -3
  4. package/lib/commonjs/assets/images/EnochE.svg +19 -19
  5. package/lib/commonjs/assets/images/OnairosNewLogo.png +0 -0
  6. package/lib/commonjs/assets/images/Personalityprofile.svg +3 -3
  7. package/lib/commonjs/assets/images/Personalitytraits.svg +3 -3
  8. package/lib/commonjs/assets/images/Userpreferences.svg +3 -3
  9. package/lib/commonjs/assets/images/arrow.svg +20 -20
  10. package/lib/commonjs/assets/images/basicproficon.svg +43 -43
  11. package/lib/commonjs/assets/images/basicprofile.svg +3 -3
  12. package/lib/commonjs/assets/images/checkmark.svg +4 -4
  13. package/lib/commonjs/assets/images/contentanalysis.svg +3 -3
  14. package/lib/commonjs/assets/images/contenticon.svg +23 -23
  15. package/lib/commonjs/assets/images/personalityicon.svg +18 -18
  16. package/lib/commonjs/assets/images/x-close.svg +3 -3
  17. package/lib/commonjs/components/BodyText.js +1 -1
  18. package/lib/commonjs/components/BrandMark.js +1 -1
  19. package/lib/commonjs/components/CodeInput.js +1 -1
  20. package/lib/commonjs/components/EmailInput.js +1 -1
  21. package/lib/commonjs/components/GoogleButton.js +1 -1
  22. package/lib/commonjs/components/HeadingGroup.js +1 -1
  23. package/lib/commonjs/components/LLMDataInputModal.js +1 -1
  24. package/lib/commonjs/components/ModalHeader.js +1 -1
  25. package/lib/commonjs/components/ModalSheet.js +1 -1
  26. package/lib/commonjs/components/Onairos.js +1 -1
  27. package/lib/commonjs/components/OnairosButton.js +1 -1
  28. package/lib/commonjs/components/OnairosSignInButton.js +1 -1
  29. package/lib/commonjs/components/Overlay.js +1 -1
  30. package/lib/commonjs/components/PersonaImage.js +1 -1
  31. package/lib/commonjs/components/PersonaLoadingScreen.js +1 -1
  32. package/lib/commonjs/components/PersonalizationConsentScreen.js +1 -1
  33. package/lib/commonjs/components/PinCreationScreen.js +1 -1
  34. package/lib/commonjs/components/PinInput.js +1 -1
  35. package/lib/commonjs/components/PlatformConnectorsStep.js +3 -2
  36. package/lib/commonjs/components/PlatformList.js +1 -1
  37. package/lib/commonjs/components/PlatformToggle.js +1 -1
  38. package/lib/commonjs/components/PrimaryButton.js +1 -1
  39. package/lib/commonjs/components/SignInMatchAnimation.js +1 -1
  40. package/lib/commonjs/components/SignInStep.js +1 -1
  41. package/lib/commonjs/components/UniversalOnboarding.js +2 -1
  42. package/lib/commonjs/components/VerificationStep.js +1 -1
  43. package/lib/commonjs/components/WelcomeScreen.js +2 -1
  44. package/lib/commonjs/components/icons/Basicproficon.js +1 -1
  45. package/lib/commonjs/components/icons/Basicprofile.js +1 -1
  46. package/lib/commonjs/components/icons/Checkbox.js +1 -1
  47. package/lib/commonjs/components/icons/Checkmark.js +1 -1
  48. package/lib/commonjs/components/icons/Contentanalysis.js +1 -1
  49. package/lib/commonjs/components/icons/Contenticon.js +1 -1
  50. package/lib/commonjs/components/icons/EnochE.js +1 -1
  51. package/lib/commonjs/components/icons/Personalityicon.js +1 -1
  52. package/lib/commonjs/components/icons/Personalityprofile.js +1 -1
  53. package/lib/commonjs/components/icons/Personalitytraits.js +1 -1
  54. package/lib/commonjs/components/icons/Userpreferences.js +1 -1
  55. package/lib/commonjs/components/icons/index.js +1 -1
  56. package/lib/commonjs/components/onboarding/OAuthWebView.js +6 -2
  57. package/lib/commonjs/components/onboarding/OnboardingHeader.js +1 -1
  58. package/lib/commonjs/components/onboarding/PinInput.js +1 -1
  59. package/lib/commonjs/components/onboarding/PlatformConnector.js +1 -1
  60. package/lib/commonjs/config/api.js +1 -1
  61. package/lib/commonjs/constants/index.js +1 -1
  62. package/lib/commonjs/context/AuthContext.js +1 -1
  63. package/lib/commonjs/hooks/useConnectedAccounts.js +1 -1
  64. package/lib/commonjs/hooks/useConnections.js +1 -1
  65. package/lib/commonjs/hooks/useCredentials.js +1 -1
  66. package/lib/commonjs/hooks/useUserConnections.js +1 -1
  67. package/lib/commonjs/index.js +5 -6
  68. package/lib/commonjs/services/SDK_API_KEY_VALIDATION.md +421 -421
  69. package/lib/commonjs/services/apiClient.js +1 -1
  70. package/lib/commonjs/services/apiKeyService.js +1 -1
  71. package/lib/commonjs/services/authService.js +1 -1
  72. package/lib/commonjs/services/biometricPinService.js +1 -1
  73. package/lib/commonjs/services/chatGPTConversationExtractor.js +1 -1
  74. package/lib/commonjs/services/chatGPTConversationService.js +1 -1
  75. package/lib/commonjs/services/claudeConversationExtractor.js +1 -1
  76. package/lib/commonjs/services/claudeConversationService.js +1 -1
  77. package/lib/commonjs/services/connectedAccountsService.js +1 -1
  78. package/lib/commonjs/services/googleAuthService.js +1 -1
  79. package/lib/commonjs/services/hingeDataExtractor.js +8 -0
  80. package/lib/commonjs/services/hingeDataService.js +9 -0
  81. package/lib/commonjs/services/imageCompressionService.js +1 -1
  82. package/lib/commonjs/services/instagramDataExtractor.js +8 -0
  83. package/lib/commonjs/services/instagramDataService.js +9 -0
  84. package/lib/commonjs/services/jwtStorageService.js +1 -1
  85. package/lib/commonjs/services/linkedinDOMExtractor.js +1 -1
  86. package/lib/commonjs/services/linkedinProfileService.js +1 -1
  87. package/lib/commonjs/services/linkedinScrapingService.js +1 -1
  88. package/lib/commonjs/services/llmDataStorage.js +1 -1
  89. package/lib/commonjs/services/mobileTrainingService.js +1 -1
  90. package/lib/commonjs/services/oauthService.js +1 -1
  91. package/lib/commonjs/services/pinEncryptionService.js +1 -1
  92. package/lib/commonjs/services/pinStorageUtils.js +1 -1
  93. package/lib/commonjs/services/platformAuthService.js +1 -1
  94. package/lib/commonjs/services/sephoraDataExtractor.js +8 -0
  95. package/lib/commonjs/services/sephoraDataService.js +9 -0
  96. package/lib/commonjs/services/storageService.js +1 -1
  97. package/lib/commonjs/services/telegramDataExtractor.js +8 -0
  98. package/lib/commonjs/services/telegramDataService.js +9 -0
  99. package/lib/commonjs/services/trainingApiHelpers.js +1 -1
  100. package/lib/commonjs/services/userConnectionsService.js +1 -1
  101. package/lib/commonjs/services/youtubeMigrationService.js +1 -1
  102. package/lib/commonjs/theme/index.js +1 -1
  103. package/lib/commonjs/types/index.js +1 -1
  104. package/lib/commonjs/types.js +1 -1
  105. package/lib/commonjs/utils/Portal.js +1 -1
  106. package/lib/commonjs/utils/api.js +1 -1
  107. package/lib/commonjs/utils/assetRegistry.js +2 -2
  108. package/lib/commonjs/utils/auth.js +1 -1
  109. package/lib/commonjs/utils/connectorTests.js +29 -0
  110. package/lib/commonjs/utils/crypto.js +1 -1
  111. package/lib/commonjs/utils/debugHelper.js +1 -1
  112. package/lib/commonjs/utils/encryption.js +1 -1
  113. package/lib/commonjs/utils/eventUtils.js +1 -1
  114. package/lib/commonjs/utils/haptics.js +1 -1
  115. package/lib/commonjs/utils/imagePreloader.js +1 -1
  116. package/lib/commonjs/utils/networkDiagnostics.js +1 -1
  117. package/lib/commonjs/utils/onairosApi.js +1 -1
  118. package/lib/commonjs/utils/programmaticFlow.js +1 -1
  119. package/lib/commonjs/utils/retryHelper.js +1 -1
  120. package/lib/commonjs/utils/secureStorage.js +1 -1
  121. package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -1
  122. package/lib/commonjs/utils/webviewScripts/claude.js +1 -1
  123. package/lib/commonjs/utils/webviewScripts/hinge.js +1 -0
  124. package/lib/commonjs/utils/webviewScripts/index.js +6 -2
  125. package/lib/commonjs/utils/webviewScripts/instagram.js +1 -0
  126. package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -1
  127. package/lib/commonjs/utils/webviewScripts/sephora.js +1 -0
  128. package/lib/commonjs/utils/webviewScripts/telegram.js +1 -0
  129. package/lib/module/api/index.js +1 -1
  130. package/lib/module/assets/images/Checkbox.svg +3 -3
  131. package/lib/module/assets/images/EnochE.svg +19 -19
  132. package/lib/module/assets/images/OnairosNewLogo.png +0 -0
  133. package/lib/module/assets/images/Personalityprofile.svg +3 -3
  134. package/lib/module/assets/images/Personalitytraits.svg +3 -3
  135. package/lib/module/assets/images/Userpreferences.svg +3 -3
  136. package/lib/module/assets/images/arrow.svg +20 -20
  137. package/lib/module/assets/images/basicproficon.svg +43 -43
  138. package/lib/module/assets/images/basicprofile.svg +3 -3
  139. package/lib/module/assets/images/checkmark.svg +4 -4
  140. package/lib/module/assets/images/contentanalysis.svg +3 -3
  141. package/lib/module/assets/images/contenticon.svg +23 -23
  142. package/lib/module/assets/images/personalityicon.svg +18 -18
  143. package/lib/module/assets/images/x-close.svg +3 -3
  144. package/lib/module/components/BodyText.js +1 -1
  145. package/lib/module/components/BrandMark.js +1 -1
  146. package/lib/module/components/CodeInput.js +1 -1
  147. package/lib/module/components/EmailInput.js +1 -1
  148. package/lib/module/components/GoogleButton.js +1 -1
  149. package/lib/module/components/HeadingGroup.js +1 -1
  150. package/lib/module/components/LLMDataInputModal.js +1 -1
  151. package/lib/module/components/ModalHeader.js +1 -1
  152. package/lib/module/components/ModalSheet.js +1 -1
  153. package/lib/module/components/Onairos.js +1 -1
  154. package/lib/module/components/OnairosButton.js +1 -1
  155. package/lib/module/components/OnairosSignInButton.js +1 -1
  156. package/lib/module/components/Overlay.js +1 -1
  157. package/lib/module/components/PersonaImage.js +1 -1
  158. package/lib/module/components/PersonaLoadingScreen.js +1 -1
  159. package/lib/module/components/PersonalizationConsentScreen.js +1 -1
  160. package/lib/module/components/PinCreationScreen.js +1 -1
  161. package/lib/module/components/PinInput.js +1 -1
  162. package/lib/module/components/PlatformConnectorsStep.js +7 -1
  163. package/lib/module/components/PlatformList.js +1 -1
  164. package/lib/module/components/PlatformToggle.js +1 -1
  165. package/lib/module/components/PrimaryButton.js +1 -1
  166. package/lib/module/components/SignInMatchAnimation.js +1 -1
  167. package/lib/module/components/SignInStep.js +1 -1
  168. package/lib/module/components/UniversalOnboarding.js +1 -1
  169. package/lib/module/components/VerificationStep.js +1 -1
  170. package/lib/module/components/WelcomeScreen.js +1 -1
  171. package/lib/module/components/icons/Basicproficon.js +1 -1
  172. package/lib/module/components/icons/Basicprofile.js +1 -1
  173. package/lib/module/components/icons/Checkbox.js +1 -1
  174. package/lib/module/components/icons/Checkmark.js +1 -1
  175. package/lib/module/components/icons/Contentanalysis.js +1 -1
  176. package/lib/module/components/icons/Contenticon.js +1 -1
  177. package/lib/module/components/icons/EnochE.js +1 -1
  178. package/lib/module/components/icons/Personalityicon.js +1 -1
  179. package/lib/module/components/icons/Personalityprofile.js +1 -1
  180. package/lib/module/components/icons/Personalitytraits.js +1 -1
  181. package/lib/module/components/icons/Userpreferences.js +1 -1
  182. package/lib/module/components/onboarding/OAuthWebView.js +1 -1
  183. package/lib/module/components/onboarding/OnboardingHeader.js +1 -1
  184. package/lib/module/components/onboarding/PinInput.js +1 -1
  185. package/lib/module/components/onboarding/PlatformConnector.js +1 -1
  186. package/lib/module/config/api.js +1 -1
  187. package/lib/module/constants/index.js +1 -1
  188. package/lib/module/context/AuthContext.js +1 -1
  189. package/lib/module/hooks/useConnectedAccounts.js +1 -1
  190. package/lib/module/hooks/useConnections.js +1 -1
  191. package/lib/module/hooks/useCredentials.js +1 -1
  192. package/lib/module/hooks/useUserConnections.js +1 -1
  193. package/lib/module/index.js +1 -1
  194. package/lib/module/services/SDK_API_KEY_VALIDATION.md +421 -421
  195. package/lib/module/services/apiClient.js +1 -1
  196. package/lib/module/services/apiKeyService.js +1 -1
  197. package/lib/module/services/authService.js +1 -1
  198. package/lib/module/services/biometricPinService.js +1 -1
  199. package/lib/module/services/chatGPTConversationExtractor.js +1 -1
  200. package/lib/module/services/chatGPTConversationService.js +1 -1
  201. package/lib/module/services/claudeConversationExtractor.js +1 -1
  202. package/lib/module/services/claudeConversationService.js +1 -1
  203. package/lib/module/services/connectedAccountsService.js +1 -1
  204. package/lib/module/services/googleAuthService.js +1 -1
  205. package/lib/module/services/hingeDataExtractor.js +1 -0
  206. package/lib/module/services/hingeDataService.js +1 -0
  207. package/lib/module/services/imageCompressionService.js +1 -1
  208. package/lib/module/services/instagramDataExtractor.js +1 -0
  209. package/lib/module/services/instagramDataService.js +1 -0
  210. package/lib/module/services/jwtStorageService.js +1 -1
  211. package/lib/module/services/linkedinDOMExtractor.js +1 -1
  212. package/lib/module/services/linkedinProfileService.js +1 -1
  213. package/lib/module/services/linkedinScrapingService.js +1 -1
  214. package/lib/module/services/llmDataStorage.js +1 -1
  215. package/lib/module/services/mobileTrainingService.js +1 -1
  216. package/lib/module/services/oauthService.js +1 -1
  217. package/lib/module/services/pinEncryptionService.js +1 -1
  218. package/lib/module/services/pinStorageUtils.js +1 -1
  219. package/lib/module/services/platformAuthService.js +1 -1
  220. package/lib/module/services/sephoraDataExtractor.js +1 -0
  221. package/lib/module/services/sephoraDataService.js +1 -0
  222. package/lib/module/services/storageService.js +1 -1
  223. package/lib/module/services/telegramDataExtractor.js +1 -0
  224. package/lib/module/services/telegramDataService.js +1 -0
  225. package/lib/module/services/trainingApiHelpers.js +1 -1
  226. package/lib/module/services/userConnectionsService.js +1 -1
  227. package/lib/module/services/youtubeMigrationService.js +1 -1
  228. package/lib/module/theme/index.js +1 -1
  229. package/lib/module/types.js +1 -1
  230. package/lib/module/utils/Portal.js +1 -1
  231. package/lib/module/utils/api.js +1 -1
  232. package/lib/module/utils/assetRegistry.js +2 -2
  233. package/lib/module/utils/auth.js +1 -1
  234. package/lib/module/utils/connectorTests.js +28 -0
  235. package/lib/module/utils/crypto.js +1 -1
  236. package/lib/module/utils/debugHelper.js +1 -1
  237. package/lib/module/utils/encryption.js +1 -1
  238. package/lib/module/utils/eventUtils.js +1 -1
  239. package/lib/module/utils/haptics.js +1 -1
  240. package/lib/module/utils/networkDiagnostics.js +1 -1
  241. package/lib/module/utils/onairosApi.js +1 -1
  242. package/lib/module/utils/programmaticFlow.js +1 -1
  243. package/lib/module/utils/retryHelper.js +1 -1
  244. package/lib/module/utils/secureStorage.js +1 -1
  245. package/lib/module/utils/webviewScripts/chatgpt.js +1 -1
  246. package/lib/module/utils/webviewScripts/claude.js +1 -1
  247. package/lib/module/utils/webviewScripts/hinge.js +1 -0
  248. package/lib/module/utils/webviewScripts/index.js +1 -1
  249. package/lib/module/utils/webviewScripts/instagram.js +1 -0
  250. package/lib/module/utils/webviewScripts/linkedin.js +1 -1
  251. package/lib/module/utils/webviewScripts/sephora.js +1 -0
  252. package/lib/module/utils/webviewScripts/telegram.js +1 -0
  253. package/package.json +1 -1
@@ -1 +1 @@
1
- import NetInfo from'@react-native-community/netinfo';import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0x5ea7e4,_0x3fcbe3,_0x10a920,_0x2ecf5d){const _0x3d1187={'zvTYX':'3|2|0|1|4','wxflU':_0x138c(0x0)},_0x408110=_0x3d1187['zvTYX'][_0x138c(0x1)]('|');let _0x3f230c=0x0;while(!![]){switch(_0x408110[_0x3f230c++]){case'0':this[_0x138c(0x2)]=_0x10a920;continue;case'1':this[_0x138c(0x3)]=_0x2ecf5d;continue;case'2':this[_0x138c(0x4)]=_0x3fcbe3;continue;case'3':super(_0x5ea7e4);continue;case'4':this['name']=_0x3d1187[_0x138c(0x5)];continue;}break;}}}const checkNetworkConnection=async()=>{const _0x16f326={'faZss':function(_0x3ee73a,_0x5ad466){return _0x3ee73a===_0x5ad466;}},_0x4e5b04=await NetInfo[_0x138c(0x6)]();return _0x16f326[_0x138c(0x7)](_0x4e5b04['isConnected'],!![]);},makeUserApiRequest=async(_0x1eace6,_0x2ff246,_0x4d1ebb={})=>{const _0x454f86={'MQZUu':function(_0x3b9f94,_0x16bd56,_0x154fc0,_0x5b9926){return _0x3b9f94(_0x16bd56,_0x154fc0,_0x5b9926);},'KlrWR':function(_0x955de6,_0x2573a6){return _0x955de6===_0x2573a6;},'QDjCB':_0x138c(0x8),'gpEkY':_0x138c(0x9),'lmCeI':function(_0x255f88,_0x41401c){return _0x255f88>=_0x41401c;},'NukmG':_0x138c(0xa),'Zflmr':_0x138c(0xb),'ERBOD':function(_0x5d9385,_0x1c1a07){return _0x5d9385===_0x1c1a07;},'uLWeS':function(_0x1283db){return _0x1283db();},'QnOyk':_0x138c(0xc),'iCEYx':_0x138c(0xd),'cfeSI':_0x138c(0xe),'Anqtt':'User\x20API\x20Request','VJElx':_0x138c(0xf),'CHwdD':function(_0x28b7ae,_0x57d49d){return _0x28b7ae||_0x57d49d;},'BkHpX':function(_0x3ee272,_0xa1c6cb,_0x5c3702){return _0x3ee272(_0xa1c6cb,_0x5c3702);},'ebGyw':_0x138c(0x10),'mlmqt':_0x138c(0x11),'vSnAn':_0x138c(0x12),'pWYQT':function(_0x582f1f,_0x2fbdc4){return _0x582f1f===_0x2fbdc4;},'NHGHJ':_0x138c(0x13),'ANMzc':function(_0x16824a,_0x3add3d){return _0x16824a===_0x3add3d;},'jzJkD':function(_0x3d3a14,_0x2fc5f9){return _0x3d3a14===_0x2fc5f9;},'iIUvf':function(_0x423e41,_0x576d9a){return _0x423e41===_0x576d9a;},'kZDKE':_0x138c(0x14),'ZmNQq':function(_0x1c5fb8,_0x3b1673){return _0x1c5fb8 instanceof _0x3b1673;},'nJgSl':function(_0x4b7c59,_0x5ebd13){return _0x4b7c59===_0x5ebd13;},'EXPGM':_0x138c(0x15),'rWPHg':_0x138c(0x16),'OWnGQ':_0x138c(0x17),'tRfte':function(_0x16a915,_0x5b12c1,_0x3c65c2){return _0x16a915(_0x5b12c1,_0x3c65c2);},'PSsAl':'User\x20API\x20Error','FhZsz':_0x138c(0x18),'qMaVQ':_0x138c(0x19)},{data:_0x18c8e8,headers:headers={},debug:debug=![]}=_0x4d1ebb;try{const _0x185299=await _0x454f86[_0x138c(0x1a)](checkNetworkConnection);if(!_0x185299)throw new ApiError(_0x454f86[_0x138c(0x1b)],_0x454f86[_0x138c(0x1c)]);if(!_0x454f86[_0x138c(0x1a)](isUserAuthenticated))throw new ApiError(_0x454f86[_0x138c(0x1d)],_0x454f86[_0x138c(0x1e)]);debug&&logDebug(_0x454f86[_0x138c(0x1f)],{'endpoint':_0x1eace6,'method':_0x2ff246,'headers':{...headers,'Authorization':_0x454f86[_0x138c(0x20)]},'data':_0x454f86[_0x138c(0x21)](_0x18c8e8,null)});const _0x4fd65d=await _0x454f86[_0x138c(0x22)](makeUserRequest,_0x1eace6,{'method':_0x2ff246,'headers':headers,..._0x18c8e8?{'body':JSON[_0x138c(0x23)](_0x18c8e8)}:{}}),_0x584af5=await _0x4fd65d[_0x138c(0x24)]();if(debug){if(_0x454f86[_0x138c(0x25)](_0x454f86['ebGyw'],_0x454f86['mlmqt']))return _0x454f86['MQZUu'](_0x45e054,_0x138c(0x26)+_0x8a5840+_0x138c(0x27),'GET',{'debug':_0x12d159[_0x138c(0x28)]});else _0x454f86[_0x138c(0x22)](logDebug,_0x454f86[_0x138c(0x29)],{'status':_0x4fd65d['status'],'data':_0x584af5});}if(!_0x4fd65d['ok']){if(_0x454f86['pWYQT'](_0x454f86['NHGHJ'],_0x454f86['NHGHJ'])){var _0x3dde6a,_0x4d6658,_0x53473f;const _0xb8a14a=_0x454f86[_0x138c(0x2a)](_0x4fd65d[_0x138c(0x2b)],0x191)||_0x454f86['jzJkD'](_0x4fd65d[_0x138c(0x2b)],0x193)?_0x454f86[_0x138c(0x1e)]:_0x454f86['iIUvf'](_0x4fd65d[_0x138c(0x2b)],0x190)?_0x454f86[_0x138c(0x2c)]:_0x454f86[_0x138c(0x2d)](_0x4fd65d[_0x138c(0x2b)],0x1f4)?_0x454f86['kZDKE']:_0x138c(0xa);throw new ApiError(((_0x3dde6a=_0x584af5[_0x138c(0x2e)])===null||_0x454f86['ANMzc'](_0x3dde6a,void 0x0)?void 0x0:_0x3dde6a[_0x138c(0x2f)])||_0x138c(0xb),_0xb8a14a,_0x454f86[_0x138c(0x2a)](_0x4d6658=_0x584af5['error'],null)||_0x454f86[_0x138c(0x30)](_0x4d6658,void 0x0)?void 0x0:_0x4d6658['code'],_0x454f86['ANMzc'](_0x53473f=_0x584af5[_0x138c(0x2e)],null)||_0x454f86[_0x138c(0x2a)](_0x53473f,void 0x0)?void 0x0:_0x53473f[_0x138c(0x3)]);}else{var _0x2d0f8e,_0x2e4a9f,_0x32e0de;const _0x59306d=_0x233143['status']===0x191||_0x454f86['KlrWR'](_0x3128ed[_0x138c(0x2b)],0x193)?_0x454f86['QDjCB']:_0x38100e[_0x138c(0x2b)]===0x190?_0x454f86[_0x138c(0x2c)]:_0x454f86[_0x138c(0x2d)](_0x2eb262['status'],0x1f4)?_0x138c(0x14):_0x454f86[_0x138c(0x31)];throw new _0x3e80ec(((_0x2d0f8e=_0x41f240[_0x138c(0x2e)])===null||_0x454f86['KlrWR'](_0x2d0f8e,void 0x0)?void 0x0:_0x2d0f8e[_0x138c(0x2f)])||_0x454f86[_0x138c(0x32)],_0x59306d,_0x454f86[_0x138c(0x30)](_0x2e4a9f=_0x19693d[_0x138c(0x2e)],null)||_0x2e4a9f===void 0x0?void 0x0:_0x2e4a9f[_0x138c(0x2)],_0x454f86[_0x138c(0x25)](_0x32e0de=_0x177e74[_0x138c(0x2e)],null)||_0x454f86[_0x138c(0x25)](_0x32e0de,void 0x0)?void 0x0:_0x32e0de['details']);}}return _0x584af5;}catch(_0x532bfc){if(_0x454f86['ZmNQq'](_0x532bfc,ApiError))throw _0x532bfc;if(_0x454f86[_0x138c(0x33)](_0x532bfc[_0x138c(0x34)],_0x454f86[_0x138c(0x35)]))throw new ApiError(_0x454f86['rWPHg'],_0x454f86[_0x138c(0x36)]);debug&&_0x454f86[_0x138c(0x37)](logDebug,_0x454f86[_0x138c(0x38)],{'endpoint':_0x1eace6,'method':_0x2ff246,'error':_0x532bfc[_0x138c(0x2f)]||_0x454f86[_0x138c(0x39)]});throw new ApiError(_0x532bfc[_0x138c(0x2f)]||_0x454f86['qMaVQ'],_0x454f86[_0x138c(0x31)]);}},makeDeveloperApiRequest=async(_0x1e837f,_0x26bd8f,_0x2d81ea={})=>{const _0x4452c8={'qrGOr':_0x138c(0xc),'Wcrma':_0x138c(0xd),'giSRP':function(_0x2ae637,_0xf09c4c,_0x5f0ea4){return _0x2ae637(_0xf09c4c,_0x5f0ea4);},'ktcYc':_0x138c(0x3a),'OzeWg':'[REDACTED]','cFqQn':function(_0x55aa31,_0x3f2a77){return _0x55aa31||_0x3f2a77;},'xeNCY':_0x138c(0x3b),'ETbUG':function(_0x521ccf,_0x50b8be,_0x2a6045,_0x373517){return _0x521ccf(_0x50b8be,_0x2a6045,_0x373517);},'FmDiR':function(_0x57ffb3){return _0x57ffb3();},'CBWWf':function(_0x46b97c,_0x1c5021){return _0x46b97c||_0x1c5021;},'eGZCp':function(_0x445ff5,_0x572a4a,_0x59f8a5){return _0x445ff5(_0x572a4a,_0x59f8a5);},'zCiiF':function(_0x246872,_0x2e222b){return _0x246872!==_0x2e222b;},'lnYCM':_0x138c(0x3c),'cUFBY':'fyQYe','JmNzM':_0x138c(0x8),'OTYzA':_0x138c(0x9),'Vbrud':function(_0x461427,_0x46066d){return _0x461427>=_0x46066d;},'PHxgN':_0x138c(0xa),'PBUbj':function(_0x34d644,_0x24ed14){return _0x34d644===_0x24ed14;},'ruLuJ':function(_0x1e9537,_0x437b4b){return _0x1e9537===_0x437b4b;},'xZkRe':function(_0x16412a,_0x2f621c){return _0x16412a!==_0x2f621c;},'riGiD':'jbavF','fVQdQ':_0x138c(0x15),'eauLJ':_0x138c(0x16),'eLlgi':'timeout_error','tbIJc':_0x138c(0x3d),'HfNzz':_0x138c(0x3e),'llDvM':_0x138c(0x18),'PQEgR':'An\x20unexpected\x20error\x20occurred'},{data:_0x252548,headers:headers={},debug:debug=![]}=_0x2d81ea;try{const _0x1c192f=await _0x4452c8[_0x138c(0x3f)](checkNetworkConnection);if(!_0x1c192f)throw new ApiError(_0x4452c8[_0x138c(0x40)],_0x4452c8[_0x138c(0x41)]);debug&&logDebug(_0x4452c8[_0x138c(0x42)],{'endpoint':_0x1e837f,'method':_0x26bd8f,'headers':{...headers,'Authorization':_0x4452c8[_0x138c(0x43)]},'data':_0x4452c8[_0x138c(0x44)](_0x252548,null)});const _0x3467bc=await _0x4452c8['eGZCp'](makeDeveloperRequest,_0x1e837f,{'method':_0x26bd8f,'headers':headers,..._0x252548?{'body':JSON[_0x138c(0x23)](_0x252548)}:{}}),_0x39e9ad=await _0x3467bc[_0x138c(0x24)]();if(debug){if(_0x4452c8[_0x138c(0x45)]('ASRuG',_0x138c(0x46)))throw new _0x54dd8a(_0x4452c8[_0x138c(0x40)],_0x4452c8[_0x138c(0x41)]);else logDebug(_0x4452c8['lnYCM'],{'status':_0x3467bc[_0x138c(0x2b)],'data':_0x39e9ad});}if(!_0x3467bc['ok']){if(_0x4452c8[_0x138c(0x47)]===_0x4452c8[_0x138c(0x47)]){var _0xda0b2a,_0x377206,_0x4381e4;const _0xf8b06=_0x3467bc['status']===0x191||_0x3467bc[_0x138c(0x2b)]===0x193?_0x4452c8[_0x138c(0x48)]:_0x3467bc[_0x138c(0x2b)]===0x190?_0x4452c8[_0x138c(0x49)]:_0x4452c8[_0x138c(0x4a)](_0x3467bc['status'],0x1f4)?_0x138c(0x14):_0x4452c8[_0x138c(0x4b)];throw new ApiError((_0x4452c8[_0x138c(0x4c)](_0xda0b2a=_0x39e9ad[_0x138c(0x2e)],null)||_0x4452c8[_0x138c(0x4c)](_0xda0b2a,void 0x0)?void 0x0:_0xda0b2a[_0x138c(0x2f)])||_0x138c(0xb),_0xf8b06,_0x4452c8['PBUbj'](_0x377206=_0x39e9ad[_0x138c(0x2e)],null)||_0x4452c8[_0x138c(0x4d)](_0x377206,void 0x0)?void 0x0:_0x377206[_0x138c(0x2)],(_0x4381e4=_0x39e9ad[_0x138c(0x2e)])===null||_0x4381e4===void 0x0?void 0x0:_0x4381e4[_0x138c(0x3)]);}else _0x4452c8['giSRP'](_0x473a49,_0x4452c8['ktcYc'],{'endpoint':_0x1cbc12,'method':_0x36e9fe,'headers':{..._0x1a9d47,'Authorization':_0x4452c8[_0x138c(0x43)]},'data':_0x4452c8[_0x138c(0x4e)](_0x3a1910,null)});}return _0x39e9ad;}catch(_0x15b983){if(_0x4452c8[_0x138c(0x4f)](_0x4452c8[_0x138c(0x50)],_0x4452c8['riGiD']))_0x4452c8['giSRP'](_0x53e18d,_0x4452c8[_0x138c(0x42)],{'endpoint':_0x4d4c48,'method':_0x40d713,'headers':{..._0x48775d,'Authorization':_0x4452c8[_0x138c(0x43)]},'data':_0x4452c8[_0x138c(0x4e)](_0x7a967d,null)});else{if(_0x15b983 instanceof ApiError)throw _0x15b983;if(_0x4452c8['ruLuJ'](_0x15b983[_0x138c(0x34)],_0x4452c8[_0x138c(0x51)]))throw new ApiError(_0x4452c8[_0x138c(0x52)],_0x4452c8[_0x138c(0x53)]);if(debug){if(_0x4452c8[_0x138c(0x45)](_0x4452c8[_0x138c(0x54)],'eeXTI'))return _0x4452c8[_0x138c(0x55)](_0x27f91b,_0x138c(0x56),'POST',{'data':{'username':_0x12abf4[_0x138c(0x57)],'pin':_0x9c6234[_0x138c(0x58)]},'debug':_0x4ac92a[_0x138c(0x28)]});else logDebug(_0x4452c8[_0x138c(0x59)],{'endpoint':_0x1e837f,'method':_0x26bd8f,'error':_0x15b983[_0x138c(0x2f)]||_0x4452c8[_0x138c(0x5a)]});}throw new ApiError(_0x15b983[_0x138c(0x2f)]||_0x4452c8[_0x138c(0x5b)],_0x4452c8[_0x138c(0x4b)]);}}};export const validateCredentials=async(_0x31f9bd,_0x4938ce={'debug':![]})=>{const _0x34cd06={'FufvK':function(_0x1c50ec,_0x25f504,_0xee6fbc,_0xeb9404){return _0x1c50ec(_0x25f504,_0xee6fbc,_0xeb9404);},'JqnRF':_0x138c(0x5c),'UUHZt':function(_0x1f2255,_0x3dfa90){return _0x1f2255===_0x3dfa90;},'Soaxx':function(_0x233e52,_0x513f70){return _0x233e52===_0x513f70;}};try{var _0x113c00,_0x3552e9;const _0x1ca5d3=await _0x34cd06['FufvK'](makeUserApiRequest,_0x34cd06[_0x138c(0x5d)],'POST',{'data':{'username':_0x31f9bd},'debug':_0x4938ce[_0x138c(0x28)]});return{'isValid':_0x1ca5d3[_0x138c(0x5e)]&&_0x34cd06[_0x138c(0x5f)]((_0x113c00=_0x1ca5d3['data'])===null||_0x113c00===void 0x0?void 0x0:_0x113c00[_0x138c(0x60)],!![]),'message':_0x34cd06['Soaxx'](_0x3552e9=_0x1ca5d3[_0x138c(0x2e)],null)||_0x3552e9===void 0x0?void 0x0:_0x3552e9['message']};}catch(_0x62cb87){return{'isValid':![],'message':_0x62cb87[_0x138c(0x2f)]};}};export const createAccount=async(_0x1d621e,_0x21a132={'debug':![]})=>{const _0x3969c6={'bPfYM':function(_0x2015b1,_0x19c3c1,_0x1d8668,_0x2286af){return _0x2015b1(_0x19c3c1,_0x1d8668,_0x2286af);},'uLvif':_0x138c(0x61)};return _0x3969c6[_0x138c(0x62)](makeDeveloperApiRequest,_0x3969c6['uLvif'],'POST',{'data':{'username':_0x1d621e[_0x138c(0x57)],'platforms':_0x1d621e['platforms']},'debug':_0x21a132[_0x138c(0x28)]});};export const authenticate=async(_0x3a6fa8,_0x69e075={'debug':![]})=>{const _0x536218={'eziXI':function(_0x3fd02e,_0x4a6584,_0xf48d4a,_0x4767c5){return _0x3fd02e(_0x4a6584,_0xf48d4a,_0x4767c5);},'VLxkA':_0x138c(0x56)};return _0x536218[_0x138c(0x63)](makeUserApiRequest,_0x536218[_0x138c(0x64)],'POST',{'data':{'username':_0x3a6fa8[_0x138c(0x57)],'pin':_0x3a6fa8[_0x138c(0x58)]},'debug':_0x69e075[_0x138c(0x28)]});};export const refreshToken=async(_0x3f4cbe,_0xa2f413={'debug':![]})=>{const _0x17bf98={'euiyy':_0x138c(0x65)};return makeUserApiRequest(_0x17bf98[_0x138c(0x66)],'POST',{'data':{'refreshToken':_0x3f4cbe},'debug':_0xa2f413[_0x138c(0x28)]});};export const getPlatformData=async(_0x53538e,_0x1b7b89={'debug':![]})=>{const _0x144069={'EMoXS':function(_0x2722c9,_0x545a25,_0x1d3d49,_0xefb5d5){return _0x2722c9(_0x545a25,_0x1d3d49,_0xefb5d5);}};return _0x144069[_0x138c(0x67)](makeUserApiRequest,_0x138c(0x26)+_0x53538e+'/data','GET',{'debug':_0x1b7b89['debug']});};export const getUserProfile=async(_0x5edb67={'debug':![]})=>{const _0x410631={'mJbFx':_0x138c(0x68)};return makeUserApiRequest(_0x410631[_0x138c(0x69)],'GET',{'debug':_0x5edb67['debug']});};function _0x50a8(){const _0x5ac197=['ApiError','split','code','details','type','wxflU','fetch','faZss','auth_error','validation_error','unknown_error','API\x20request\x20failed','No\x20network\x20connection\x20available','network_error','User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','[REDACTED]','MywCF','ezeOK','User\x20API\x20Response','paEuQ','server_error','AbortError','Request\x20timed\x20out','timeout_error','Unknown\x20error','An\x20unexpected\x20error\x20occurred','uLWeS','QnOyk','iCEYx','cfeSI','QDjCB','Anqtt','VJElx','CHwdD','BkHpX','stringify','json','KlrWR','platforms/','/data','debug','vSnAn','ANMzc','status','gpEkY','lmCeI','error','message','ERBOD','NukmG','Zflmr','nJgSl','name','EXPGM','OWnGQ','tRfte','PSsAl','FhZsz','User\x20API\x20Request','Developer\x20API\x20Request','Developer\x20API\x20Response','eeXTI','Developer\x20API\x20Error','FmDiR','qrGOr','Wcrma','xeNCY','OzeWg','CBWWf','zCiiF','ASRuG','cUFBY','JmNzM','OTYzA','Vbrud','PHxgN','PBUbj','ruLuJ','cFqQn','xZkRe','riGiD','fVQdQ','eauLJ','eLlgi','tbIJc','ETbUG','auth/login','username','userPin','HfNzz','llDvM','PQEgR','auth/validate','JqnRF','success','UUHZt','isValid','auth/register','bPfYM','eziXI','VLxkA','auth/refresh','euiyy','EMoXS','user/profile','mJbFx','user/platforms','store-pin/mobile','sGlZJ','eOFdS','eICVM','platforms','zkvUD','onJQC','NUOOr','WXvml','KTuWP'];_0x50a8=function(){return _0x5ac197;};return _0x50a8();}export const updatePlatformConnections=async(_0x183711,_0x434e68={'debug':![]})=>{const _0x498d42={'MdZsF':function(_0x118f7f,_0x4b646b,_0x4b8fd7,_0xc085ef){return _0x118f7f(_0x4b646b,_0x4b8fd7,_0xc085ef);},'Nobqk':_0x138c(0x6a)};return _0x498d42['MdZsF'](makeUserApiRequest,_0x498d42['Nobqk'],'PUT',{'data':{'platforms':_0x183711},'debug':_0x434e68[_0x138c(0x28)]});};export const storePIN=async(_0x217f72,_0x51885d={})=>{const _0x8151ea={'eICVM':function(_0x585eb4,_0x41beef,_0x380cd2,_0x3bb81e){return _0x585eb4(_0x41beef,_0x380cd2,_0x3bb81e);},'WaHzd':_0x138c(0x61),'sGlZJ':function(_0x2f73ea,_0x557187){return _0x2f73ea!==_0x557187;},'eOFdS':'EYkqV','zkvUD':'No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','onJQC':'auth_error','NUOOr':_0x138c(0x6b)},{debug:debug=![],username:_0xb6ac4f}=_0x51885d,_0x541406=_0xb6ac4f||extractUsernameFromJWT();if(!_0x541406){if(_0x8151ea[_0x138c(0x6c)](_0x8151ea[_0x138c(0x6d)],_0x8151ea[_0x138c(0x6d)]))return _0x8151ea[_0x138c(0x6e)](_0x3309a1,_0x8151ea['WaHzd'],'POST',{'data':{'username':_0x4d2f9c['username'],'platforms':_0x285f31[_0x138c(0x6f)]},'debug':_0x2a8dfd['debug']});else throw new ApiError(_0x8151ea[_0x138c(0x70)],_0x8151ea[_0x138c(0x71)]);}return _0x8151ea[_0x138c(0x6e)](makeUserApiRequest,_0x8151ea[_0x138c(0x72)],'POST',{'data':{'username':_0x541406,'pin':_0x217f72},'debug':debug});};function _0x138c(_0x50a824,_0x138c54){_0x50a824=_0x50a824-0x0;const _0x1a0aa4=_0x50a8();let _0x24816c=_0x1a0aa4[_0x50a824];return _0x24816c;}export const getCurrentUserToken=async()=>{const _0x244812={'WXvml':function(_0x328cd5){return _0x328cd5();}};return await _0x244812[_0x138c(0x73)](getJWT);};export const isCurrentUserAuthenticated=()=>{const _0x3adb21={'KTuWP':function(_0x5df0d0){return _0x5df0d0();}};return _0x3adb21[_0x138c(0x74)](isUserAuthenticated);};
1
+ import NetInfo from'@react-native-community/netinfo';import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0x1912e8,_0x32fdc4,_0x57bacc,_0x4b802e){const _0x4970c7={'tunda':_0xca4c(0x0)};super(_0x1912e8),this[_0xca4c(0x1)]=_0x32fdc4,this[_0xca4c(0x2)]=_0x57bacc,this[_0xca4c(0x3)]=_0x4b802e,this[_0xca4c(0x4)]=_0x4970c7[_0xca4c(0x5)];}}const checkNetworkConnection=async()=>{const _0x2ca116=await NetInfo[_0xca4c(0x6)]();return _0x2ca116[_0xca4c(0x7)]===!![];},makeUserApiRequest=async(_0x2511ff,_0xed7da4,_0x38902d={})=>{const _0x1f5a69={'alKHu':'Request\x20timed\x20out','moImU':_0xca4c(0x8),'GYMNX':function(_0x4cb2e5,_0x48899d,_0x386700,_0x1a2c00){return _0x4cb2e5(_0x48899d,_0x386700,_0x1a2c00);},'kldBA':_0xca4c(0x9),'YmALc':function(_0x3adc17,_0x5d7048,_0x51b0b){return _0x3adc17(_0x5d7048,_0x51b0b);},'NVwZm':_0xca4c(0xa),'hlHsF':_0xca4c(0xb),'PApKq':function(_0x36cc09,_0xee0149){return _0x36cc09===_0xee0149;},'TOQFG':_0xca4c(0xc),'wQHfk':_0xca4c(0xd),'gTdEd':function(_0x46e01e,_0x2e7789){return _0x46e01e===_0x2e7789;},'bmTvY':function(_0x2f161e,_0xdae037){return _0x2f161e===_0xdae037;},'sFKCB':'JIOrd','laiRf':function(_0x2ca444){return _0x2ca444();},'zaOTU':_0xca4c(0xe),'VGdYX':_0xca4c(0xf),'bLswB':function(_0xbe1487){return _0xbe1487();},'XdgKB':_0xca4c(0x10),'flONZ':_0xca4c(0x11),'rQYSG':_0xca4c(0x12),'zpqXf':function(_0x531c7f,_0x3a1b2e,_0x43db42){return _0x531c7f(_0x3a1b2e,_0x43db42);},'nhAjH':function(_0x134505,_0x423f3f){return _0x134505!==_0x423f3f;},'YYfLv':_0xca4c(0x13),'xqMSv':'User\x20API\x20Response','zIduU':function(_0x613681,_0x16bb3c){return _0x613681>=_0x16bb3c;},'MuRhf':_0xca4c(0x14),'ZQzYW':function(_0x5b45ca,_0xdcfc1b){return _0x5b45ca===_0xdcfc1b;},'nzISN':_0xca4c(0x15),'EfQsC':function(_0x4d02a9,_0x1f2c82){return _0x4d02a9 instanceof _0x1f2c82;},'aQxre':'AbortError','UFkfy':function(_0x4d1e68,_0x7f89cc){return _0x4d1e68===_0x7f89cc;},'DHkQo':_0xca4c(0x16),'zFQMl':function(_0x4279b5,_0x173c5f){return _0x4279b5===_0x173c5f;},'Qgyqu':_0xca4c(0x17),'bYJJW':function(_0x35bc29,_0x206b9a,_0x4e15bb){return _0x35bc29(_0x206b9a,_0x4e15bb);},'mNLXp':_0xca4c(0x18),'aKitH':'An\x20unexpected\x20error\x20occurred'},{data:_0xb9fd5d,headers:headers={},debug:debug=![]}=_0x38902d;try{if(_0xca4c(0x19)!==_0x1f5a69[_0xca4c(0x1a)]){const _0x4526f6=await _0x1f5a69[_0xca4c(0x1b)](checkNetworkConnection);if(!_0x4526f6)throw new ApiError(_0x1f5a69[_0xca4c(0x1c)],_0x1f5a69[_0xca4c(0x1d)]);if(!_0x1f5a69[_0xca4c(0x1e)](isUserAuthenticated))throw new ApiError(_0x1f5a69[_0xca4c(0x1f)],_0x1f5a69[_0xca4c(0x20)]);debug&&logDebug(_0x1f5a69[_0xca4c(0x21)],{'endpoint':_0x2511ff,'method':_0xed7da4,'headers':{...headers,'Authorization':_0x1f5a69[_0xca4c(0x22)]},'data':_0xb9fd5d||null});const _0xf71b3=await _0x1f5a69[_0xca4c(0x23)](makeUserRequest,_0x2511ff,{'method':_0xed7da4,'headers':headers,..._0xb9fd5d?{'body':JSON['stringify'](_0xb9fd5d)}:{}}),_0x59f878=await _0xf71b3[_0xca4c(0x24)]();if(debug){if(_0x1f5a69['nhAjH'](_0xca4c(0x13),_0x1f5a69[_0xca4c(0x25)]))throw new _0x4bb474(_0x1f5a69[_0xca4c(0x26)],_0x1f5a69[_0xca4c(0x27)]);else logDebug(_0x1f5a69[_0xca4c(0x28)],{'status':_0xf71b3[_0xca4c(0x29)],'data':_0x59f878});}if(!_0xf71b3['ok']){var _0x2f72e4,_0xe96a56,_0x1db268;const _0x21f605=_0x1f5a69[_0xca4c(0x2a)](_0xf71b3[_0xca4c(0x29)],0x191)||_0xf71b3[_0xca4c(0x29)]===0x193?_0x1f5a69[_0xca4c(0x20)]:_0xf71b3[_0xca4c(0x29)]===0x190?_0xca4c(0x2b):_0x1f5a69[_0xca4c(0x2c)](_0xf71b3['status'],0x1f4)?_0x1f5a69['MuRhf']:_0x1f5a69[_0xca4c(0x2d)];throw new ApiError((_0x1f5a69[_0xca4c(0x2e)](_0x2f72e4=_0x59f878['error'],null)||_0x2f72e4===void 0x0?void 0x0:_0x2f72e4[_0xca4c(0x2f)])||_0xca4c(0x30),_0x21f605,_0x1f5a69[_0xca4c(0x2a)](_0xe96a56=_0x59f878[_0xca4c(0x31)],null)||_0x1f5a69[_0xca4c(0x32)](_0xe96a56,void 0x0)?void 0x0:_0xe96a56[_0xca4c(0x2)],(_0x1db268=_0x59f878[_0xca4c(0x31)])===null||_0x1f5a69[_0xca4c(0x2e)](_0x1db268,void 0x0)?void 0x0:_0x1db268[_0xca4c(0x3)]);}return _0x59f878;}else return _0x1f5a69[_0xca4c(0x33)](_0x14c8bf,_0x1f5a69[_0xca4c(0x34)],'GET',{'debug':_0x32fc08[_0xca4c(0x35)]});}catch(_0x38315b){if(_0x1f5a69[_0xca4c(0x36)](_0x1f5a69[_0xca4c(0x37)],_0x1f5a69[_0xca4c(0x37)]))throw _0x11538e;else{if(_0x1f5a69[_0xca4c(0x38)](_0x38315b,ApiError))throw _0x38315b;if(_0x1f5a69[_0xca4c(0x2e)](_0x38315b[_0xca4c(0x4)],_0x1f5a69[_0xca4c(0x39)])){if(_0x1f5a69['UFkfy'](_0x1f5a69['DHkQo'],_0x1f5a69[_0xca4c(0x3a)]))throw new ApiError(_0x1f5a69[_0xca4c(0x26)],_0x1f5a69[_0xca4c(0x27)]);else _0x1f5a69[_0xca4c(0x3b)](_0x449587,_0x1f5a69[_0xca4c(0x3c)],{'endpoint':_0x585544,'method':_0x34a5cd,'error':_0x2dee18[_0xca4c(0x2f)]||_0x1f5a69[_0xca4c(0x3d)]});}if(debug){if(_0x1f5a69[_0xca4c(0x3e)](_0xca4c(0x17),_0x1f5a69[_0xca4c(0x3f)]))_0x1f5a69['bYJJW'](logDebug,_0x1f5a69[_0xca4c(0x40)],{'endpoint':_0x2511ff,'method':_0xed7da4,'error':_0x38315b[_0xca4c(0x2f)]||_0x1f5a69[_0xca4c(0x3d)]});else{var _0x2ff5c3,_0x5e9dc6,_0x35f4e4;const _0x186209=_0x1f5a69['PApKq'](_0x15a3f6[_0xca4c(0x29)],0x191)||_0x416089[_0xca4c(0x29)]===0x193?_0x1f5a69[_0xca4c(0x20)]:_0x1f5a69['PApKq'](_0x19069e[_0xca4c(0x29)],0x190)?_0xca4c(0x2b):_0x3010af[_0xca4c(0x29)]>=0x1f4?_0xca4c(0x14):_0x1f5a69[_0xca4c(0x2d)];throw new _0x3a7965((_0x1f5a69[_0xca4c(0x2a)](_0x2ff5c3=_0x2574e5[_0xca4c(0x31)],null)||_0x1f5a69[_0xca4c(0x32)](_0x2ff5c3,void 0x0)?void 0x0:_0x2ff5c3[_0xca4c(0x2f)])||_0xca4c(0x30),_0x186209,(_0x5e9dc6=_0x1a2706[_0xca4c(0x31)])===null||_0x1f5a69[_0xca4c(0x41)](_0x5e9dc6,void 0x0)?void 0x0:_0x5e9dc6[_0xca4c(0x2)],(_0x35f4e4=_0x387d9e[_0xca4c(0x31)])===null||_0x1f5a69[_0xca4c(0x32)](_0x35f4e4,void 0x0)?void 0x0:_0x35f4e4[_0xca4c(0x3)]);}}throw new ApiError(_0x38315b[_0xca4c(0x2f)]||_0x1f5a69[_0xca4c(0x42)],_0x1f5a69[_0xca4c(0x2d)]);}}},makeDeveloperApiRequest=async(_0x37dd1f,_0x12f93a,_0x11d958={})=>{const _0x5a7227={'IwsvM':function(_0x481bbc,_0x15d661,_0x56b311,_0x5a9932){return _0x481bbc(_0x15d661,_0x56b311,_0x5a9932);},'hVrlw':function(_0x391c0d){return _0x391c0d();},'ZGENy':'No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','fRdZP':function(_0x32f7df,_0x6e19fc,_0x3348aa,_0x1cbd25){return _0x32f7df(_0x6e19fc,_0x3348aa,_0x1cbd25);},'kZYpP':'store-pin/mobile','uMpUp':'User\x20API\x20Request','MGmYL':_0xca4c(0x12),'sHMRK':function(_0x27a2ea,_0x3ce979){return _0x27a2ea||_0x3ce979;},'qDxQK':_0xca4c(0xf),'hTAem':function(_0x1d1bd6,_0x353ae5){return _0x1d1bd6!==_0x353ae5;},'kwKgf':_0xca4c(0x43),'msenX':'NExZm','JYGpn':function(_0x1b6e14,_0x1cdd03,_0x25dfe5){return _0x1b6e14(_0x1cdd03,_0x25dfe5);},'MVIfn':_0xca4c(0x44),'SUmdl':function(_0x272441,_0x3faf97,_0x4c4695){return _0x272441(_0x3faf97,_0x4c4695);},'jWJDR':_0xca4c(0x45),'GPBfV':function(_0x130cee,_0x42c83b){return _0x130cee===_0x42c83b;},'TnIuG':'auth_error','bGzhs':function(_0x4a0bce,_0x2bea53){return _0x4a0bce===_0x2bea53;},'PmTtB':_0xca4c(0x2b),'dXlSZ':function(_0x3709ce,_0x462122){return _0x3709ce===_0x462122;},'qAecX':function(_0x3113a8,_0xd48c99){return _0x3113a8===_0xd48c99;},'ChflD':function(_0x57afd4,_0x7e806b){return _0x57afd4===_0x7e806b;},'GGzye':function(_0x3d3f70,_0x480de4){return _0x3d3f70===_0x480de4;},'qqJlT':_0xca4c(0x46),'GEVVo':'aVmSU','QfQsu':function(_0xcdf4bf,_0x6962c2){return _0xcdf4bf instanceof _0x6962c2;},'ezLQQ':_0xca4c(0x47),'HbMFO':'Request\x20timed\x20out','xpXvJ':'timeout_error','IjJIu':function(_0x2f744f,_0x26b888){return _0x2f744f!==_0x26b888;},'YFoQV':'CjewU','DauWg':'Developer\x20API\x20Error','SOPlJ':'Unknown\x20error','olKxe':_0xca4c(0xd)},{data:_0x618fec,headers:headers={},debug:debug=![]}=_0x11d958;try{const _0x171dad=await _0x5a7227[_0xca4c(0x48)](checkNetworkConnection);if(!_0x171dad)throw new ApiError(_0xca4c(0xe),_0x5a7227[_0xca4c(0x49)]);if(debug){if(_0x5a7227[_0xca4c(0x4a)](_0x5a7227['kwKgf'],_0x5a7227[_0xca4c(0x4b)]))_0x5a7227[_0xca4c(0x4c)](logDebug,_0x5a7227['MVIfn'],{'endpoint':_0x37dd1f,'method':_0x12f93a,'headers':{...headers,'Authorization':_0x5a7227[_0xca4c(0x4d)]},'data':_0x5a7227[_0xca4c(0x4e)](_0x618fec,null)});else return _0x5a7227[_0xca4c(0x4f)](_0x3327e2,_0xca4c(0x50),'PUT',{'data':{'platforms':_0x13b4b6},'debug':_0x16148d[_0xca4c(0x35)]});}const _0x2aef84=await _0x5a7227[_0xca4c(0x51)](makeDeveloperRequest,_0x37dd1f,{'method':_0x12f93a,'headers':headers,..._0x618fec?{'body':JSON[_0xca4c(0x52)](_0x618fec)}:{}}),_0x61de05=await _0x2aef84[_0xca4c(0x24)]();debug&&_0x5a7227[_0xca4c(0x4c)](logDebug,_0x5a7227[_0xca4c(0x53)],{'status':_0x2aef84['status'],'data':_0x61de05});if(!_0x2aef84['ok']){var _0x317177,_0x55f035,_0x547feb;const _0x2bb089=_0x5a7227[_0xca4c(0x54)](_0x2aef84[_0xca4c(0x29)],0x191)||_0x2aef84['status']===0x193?_0x5a7227[_0xca4c(0x55)]:_0x5a7227['bGzhs'](_0x2aef84['status'],0x190)?_0x5a7227[_0xca4c(0x56)]:_0x2aef84[_0xca4c(0x29)]>=0x1f4?_0xca4c(0x14):'unknown_error';throw new ApiError((_0x5a7227[_0xca4c(0x57)](_0x317177=_0x61de05[_0xca4c(0x31)],null)||_0x5a7227[_0xca4c(0x54)](_0x317177,void 0x0)?void 0x0:_0x317177[_0xca4c(0x2f)])||_0xca4c(0x30),_0x2bb089,_0x5a7227[_0xca4c(0x58)](_0x55f035=_0x61de05[_0xca4c(0x31)],null)||_0x5a7227[_0xca4c(0x59)](_0x55f035,void 0x0)?void 0x0:_0x55f035['code'],(_0x547feb=_0x61de05['error'])===null||_0x5a7227[_0xca4c(0x5a)](_0x547feb,void 0x0)?void 0x0:_0x547feb[_0xca4c(0x3)]);}return _0x61de05;}catch(_0xf5cb9a){if(_0x5a7227['qqJlT']===_0x5a7227[_0xca4c(0x5b)]){const {debug:debug=![],username:_0x5b26ef}=_0x50f605,_0x3cc924=_0x5b26ef||_0x5a7227[_0xca4c(0x48)](_0x5f4258);if(!_0x3cc924)throw new _0x5d1f36(_0x5a7227[_0xca4c(0x5c)],_0xca4c(0xc));return _0x5a7227[_0xca4c(0x5d)](_0x1d2f46,_0x5a7227[_0xca4c(0x5e)],'POST',{'data':{'username':_0x3cc924,'pin':_0x5a24fd},'debug':debug});}else{if(_0x5a7227[_0xca4c(0x5f)](_0xf5cb9a,ApiError))throw _0xf5cb9a;if(_0xf5cb9a['name']===_0x5a7227[_0xca4c(0x60)])throw new ApiError(_0x5a7227['HbMFO'],_0x5a7227[_0xca4c(0x61)]);debug&&(_0x5a7227[_0xca4c(0x62)](_0x5a7227[_0xca4c(0x63)],_0x5a7227[_0xca4c(0x63)])?_0x2d9120(_0x5a7227['uMpUp'],{'endpoint':_0x1e1305,'method':_0x1b1429,'headers':{..._0xd696f5,'Authorization':_0x5a7227[_0xca4c(0x4d)]},'data':_0x5a7227['sHMRK'](_0x56d218,null)}):logDebug(_0x5a7227['DauWg'],{'endpoint':_0x37dd1f,'method':_0x12f93a,'error':_0xf5cb9a[_0xca4c(0x2f)]||_0x5a7227[_0xca4c(0x64)]}));throw new ApiError(_0xf5cb9a[_0xca4c(0x2f)]||_0xca4c(0x65),_0x5a7227['olKxe']);}}};export const validateCredentials=async(_0x3dcb07,_0x9f80a3={'debug':![]})=>{const _0x21fd80={'TysYc':_0xca4c(0x66),'iJHgX':function(_0xd68526,_0x4455fe){return _0xd68526!==_0x4455fe;},'ZmzVc':_0xca4c(0x67),'mXdEJ':function(_0x58bc7b,_0x23dd5c,_0x295ba9,_0x5448ec){return _0x58bc7b(_0x23dd5c,_0x295ba9,_0x5448ec);},'hGyWt':'auth/validate','oihAd':function(_0x3e9baf,_0x4217db){return _0x3e9baf===_0x4217db;},'jVxOO':function(_0x511bef,_0x1f5591){return _0x511bef===_0x1f5591;},'mDOrN':function(_0x31129f,_0x4c73a5){return _0x31129f===_0x4c73a5;}};try{if(_0x21fd80[_0xca4c(0x68)](_0x21fd80[_0xca4c(0x69)],_0x21fd80[_0xca4c(0x69)]))return _0xc5ffa4(_0x21fd80[_0xca4c(0x6a)],'POST',{'data':{'username':_0x127608[_0xca4c(0x6b)],'platforms':_0x41e882[_0xca4c(0x6c)]},'debug':_0x4bc5fc[_0xca4c(0x35)]});else{var _0x4fad07,_0x14e7fc;const _0x4a8b42=await _0x21fd80[_0xca4c(0x6d)](makeUserApiRequest,_0x21fd80['hGyWt'],'POST',{'data':{'username':_0x3dcb07},'debug':_0x9f80a3['debug']});return{'isValid':_0x4a8b42[_0xca4c(0x6e)]&&(_0x21fd80[_0xca4c(0x6f)](_0x4fad07=_0x4a8b42['data'],null)||_0x21fd80[_0xca4c(0x70)](_0x4fad07,void 0x0)?void 0x0:_0x4fad07['isValid'])===!![],'message':_0x21fd80['mDOrN'](_0x14e7fc=_0x4a8b42[_0xca4c(0x31)],null)||_0x21fd80[_0xca4c(0x6f)](_0x14e7fc,void 0x0)?void 0x0:_0x14e7fc[_0xca4c(0x2f)]};}}catch(_0x5bfe4b){return{'isValid':![],'message':_0x5bfe4b[_0xca4c(0x2f)]};}};function _0xca4c(_0x1e6f3a,_0xca4cbf){_0x1e6f3a=_0x1e6f3a-0x0;const _0x4baac0=_0x1e6f();let _0x325250=_0x4baac0[_0x1e6f3a];return _0x325250;}export const createAccount=async(_0x3411ea,_0x218ac0={'debug':![]})=>{const _0x4fe607={'Oplux':function(_0x4510ad,_0x262efe,_0x4d1b1f,_0x69c739){return _0x4510ad(_0x262efe,_0x4d1b1f,_0x69c739);},'GQLRM':'auth/register'};return _0x4fe607[_0xca4c(0x71)](makeDeveloperApiRequest,_0x4fe607['GQLRM'],'POST',{'data':{'username':_0x3411ea[_0xca4c(0x6b)],'platforms':_0x3411ea['platforms']},'debug':_0x218ac0[_0xca4c(0x35)]});};export const authenticate=async(_0x46d9d1,_0x2fe8f1={'debug':![]})=>{const _0x4f1ebd={'ggUMK':function(_0x4d3408,_0x50509c,_0x4c3e65,_0xa0f4a3){return _0x4d3408(_0x50509c,_0x4c3e65,_0xa0f4a3);},'vOQyW':_0xca4c(0x72)};return _0x4f1ebd[_0xca4c(0x73)](makeUserApiRequest,_0x4f1ebd[_0xca4c(0x74)],'POST',{'data':{'username':_0x46d9d1[_0xca4c(0x6b)],'pin':_0x46d9d1[_0xca4c(0x75)]},'debug':_0x2fe8f1[_0xca4c(0x35)]});};export const refreshToken=async(_0x2a2872,_0x367949={'debug':![]})=>{const _0x3fb22f={'XFcyQ':function(_0x9c90f0,_0x476a95,_0x208ead,_0x437f72){return _0x9c90f0(_0x476a95,_0x208ead,_0x437f72);}};return _0x3fb22f[_0xca4c(0x76)](makeUserApiRequest,_0xca4c(0x77),'POST',{'data':{'refreshToken':_0x2a2872},'debug':_0x367949[_0xca4c(0x35)]});};export const getPlatformData=async(_0x1fd5fb,_0x13f58e={'debug':![]})=>{const _0x34623f={'PyJDe':function(_0x1e2e40,_0x6005d8,_0x5ab134,_0x1b4358){return _0x1e2e40(_0x6005d8,_0x5ab134,_0x1b4358);}};return _0x34623f[_0xca4c(0x78)](makeUserApiRequest,_0xca4c(0x79)+_0x1fd5fb+_0xca4c(0x7a),'GET',{'debug':_0x13f58e[_0xca4c(0x35)]});};export const getUserProfile=async(_0x44bff6={'debug':![]})=>{const _0x3efd5c={'dmSwv':function(_0x4cf54b,_0x193656,_0x4424c2,_0x4f1ce9){return _0x4cf54b(_0x193656,_0x4424c2,_0x4f1ce9);},'lRZrh':'user/profile'};return _0x3efd5c[_0xca4c(0x7b)](makeUserApiRequest,_0x3efd5c[_0xca4c(0x7c)],'GET',{'debug':_0x44bff6['debug']});};export const updatePlatformConnections=async(_0x254eca,_0x3dbbbc={'debug':![]})=>{const _0x5eba09={'dpqDo':function(_0x2e7dc1,_0x45538e,_0x2d8d3f,_0x221e9d){return _0x2e7dc1(_0x45538e,_0x2d8d3f,_0x221e9d);},'hxrmD':_0xca4c(0x50)};return _0x5eba09[_0xca4c(0x7d)](makeUserApiRequest,_0x5eba09['hxrmD'],'PUT',{'data':{'platforms':_0x254eca},'debug':_0x3dbbbc['debug']});};export const storePIN=async(_0xd41a3b,_0x267eb6={})=>{const _0x1e7814={'MyOCj':function(_0x4d5b50,_0x4c6024){return _0x4d5b50===_0x4c6024;},'LphVc':function(_0x5915cd,_0x256718){return _0x5915cd===_0x256718;},'YQaND':_0xca4c(0xc),'MnNwt':'validation_error','fMxtQ':'unknown_error','LDnhd':function(_0xc099a6,_0x244f00){return _0xc099a6===_0x244f00;},'btxQC':function(_0xb9d96d,_0x4c9587){return _0xb9d96d===_0x4c9587;},'wxxuS':_0xca4c(0x30),'svbQR':function(_0x1cb921,_0x3cbf0b){return _0x1cb921===_0x3cbf0b;},'cNIKb':function(_0x1bf7b5,_0x4a2849){return _0x1bf7b5===_0x4a2849;},'zGDDv':function(_0x42ca8a){return _0x42ca8a();},'Nmbof':_0xca4c(0x7e),'DHMLA':_0xca4c(0x7f)},{debug:debug=![],username:_0x3a2153}=_0x267eb6,_0x36314f=_0x3a2153||_0x1e7814[_0xca4c(0x80)](extractUsernameFromJWT);if(!_0x36314f){if(_0x1e7814['Nmbof']===_0xca4c(0x81)){var _0xe5ab36,_0x4b840d,_0x2eb37b;const _0x199a61=_0x1e7814[_0xca4c(0x82)](_0x46c679[_0xca4c(0x29)],0x191)||_0x1e7814['LphVc'](_0x134960[_0xca4c(0x29)],0x193)?_0x1e7814[_0xca4c(0x83)]:_0x1e7814['MyOCj'](_0xa569e2['status'],0x190)?_0x1e7814[_0xca4c(0x84)]:_0x9611f6[_0xca4c(0x29)]>=0x1f4?_0xca4c(0x14):_0x1e7814[_0xca4c(0x85)];throw new _0x36ab41((_0x1e7814['LDnhd'](_0xe5ab36=_0x1ae35f[_0xca4c(0x31)],null)||_0x1e7814[_0xca4c(0x86)](_0xe5ab36,void 0x0)?void 0x0:_0xe5ab36[_0xca4c(0x2f)])||_0x1e7814[_0xca4c(0x87)],_0x199a61,_0x1e7814[_0xca4c(0x88)](_0x4b840d=_0x1c6dad['error'],null)||_0x1e7814[_0xca4c(0x89)](_0x4b840d,void 0x0)?void 0x0:_0x4b840d[_0xca4c(0x2)],(_0x2eb37b=_0x35c768[_0xca4c(0x31)])===null||_0x1e7814[_0xca4c(0x8a)](_0x2eb37b,void 0x0)?void 0x0:_0x2eb37b[_0xca4c(0x3)]);}else throw new ApiError(_0x1e7814[_0xca4c(0x8b)],_0x1e7814[_0xca4c(0x83)]);}return makeUserApiRequest(_0xca4c(0x8c),'POST',{'data':{'username':_0x36314f,'pin':_0xd41a3b},'debug':debug});};function _0x1e6f(){const _0x50fff5=['ApiError','type','code','details','name','tunda','fetch','isConnected','timeout_error','user/profile','Developer\x20API\x20Error','Unknown\x20error','auth_error','unknown_error','No\x20network\x20connection\x20available','network_error','User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','User\x20API\x20Request','[REDACTED]','xzJIT','server_error','jzEBm','hWVFy','YONNz','User\x20API\x20Error','YomAV','sFKCB','laiRf','zaOTU','VGdYX','bLswB','XdgKB','TOQFG','flONZ','rQYSG','zpqXf','json','YYfLv','alKHu','moImU','xqMSv','status','gTdEd','validation_error','zIduU','wQHfk','ZQzYW','message','API\x20request\x20failed','error','bmTvY','GYMNX','kldBA','debug','nhAjH','nzISN','EfQsC','aQxre','DHkQo','YmALc','NVwZm','hlHsF','zFQMl','Qgyqu','mNLXp','PApKq','aKitH','pppxs','Developer\x20API\x20Request','Developer\x20API\x20Response','AicxU','AbortError','hVrlw','qDxQK','hTAem','msenX','JYGpn','MGmYL','sHMRK','IwsvM','user/platforms','SUmdl','stringify','jWJDR','GPBfV','TnIuG','PmTtB','dXlSZ','qAecX','ChflD','GGzye','GEVVo','ZGENy','fRdZP','kZYpP','QfQsu','ezLQQ','xpXvJ','IjJIu','YFoQV','SOPlJ','An\x20unexpected\x20error\x20occurred','auth/register','UhjXx','iJHgX','ZmzVc','TysYc','username','platforms','mXdEJ','success','oihAd','jVxOO','Oplux','auth/login','ggUMK','vOQyW','userPin','XFcyQ','auth/refresh','PyJDe','platforms/','/data','dmSwv','lRZrh','dpqDo','pGjjO','No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','zGDDv','UbTdJ','MyOCj','YQaND','MnNwt','fMxtQ','btxQC','wxxuS','svbQR','cNIKb','LphVc','DHMLA','store-pin/mobile','UGLRD'];_0x1e6f=function(){return _0x50fff5;};return _0x1e6f();}export const getCurrentUserToken=async()=>{const _0x42ebbc={'SEeHe':function(_0x5bd389){return _0x5bd389();}};return await _0x42ebbc['SEeHe'](getJWT);};export const isCurrentUserAuthenticated=()=>{const _0x714b3e={'UGLRD':function(_0x1cab3a){return _0x1cab3a();}};return _0x714b3e[_0xca4c(0x8d)](isUserAuthenticated);};
@@ -1 +1 @@
1
- import{initializePlatformAuthService}from'../services/platformAuthService';export const executeOnairosFlow=async _0x2b6069=>{const _0x4b5306={'BJqrp':'❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','DEUsW':_0x587f(0x0),'hslnB':function(_0x28e6a5){return _0x28e6a5();},'wdViw':'❌\x20Failed\x20to\x20execute\x20Onairos\x20flow:','voCrq':'❌\x20Onairos\x20flow\x20rejected:','QGFxn':'kbYTz','pVcyb':function(_0x1f6e0d,_0xb2cfa3){return _0x1f6e0d(_0xb2cfa3);},'sgpyq':function(_0x592517,_0x56094c){return _0x592517||_0x56094c;},'SYIsw':_0x587f(0x1),'TNyOa':_0x587f(0x2),'Coqcc':function(_0xca7b2d,_0x445ff5){return _0xca7b2d!==_0x445ff5;},'BwkfG':_0x587f(0x3),'cmguN':_0x587f(0x4),'JxFuK':_0x587f(0x5)};try{if(_0x4b5306['Coqcc'](_0x587f(0x3),_0x4b5306[_0x587f(0x6)])){_0x4b7937[_0x587f(0x7)](_0x4b5306[_0x587f(0x8)]);_0xc7d378['onRejection']&&_0x1ca5f7['onRejection']('Pre-check\x20failed');return;}else{console['log'](_0x4b5306[_0x587f(0x9)]),await initializePlatformAuthService();const {UniversalOnboarding:_0x13b46b}=await import(_0x4b5306[_0x587f(0xa)]),React=await import('react');return new Promise((_0x55d6e3,_0x243e34)=>{const _0x514209={'nCawV':_0x4b5306['DEUsW'],'HulGt':function(_0x494b90){return _0x4b5306[_0x587f(0xb)](_0x494b90);},'BGdRI':_0x4b5306['wdViw'],'ErByr':_0x4b5306[_0x587f(0xc)],'KKBqN':function(_0x565580,_0x189fa0){return _0x565580!==_0x189fa0;},'NuEwJ':_0x4b5306[_0x587f(0xd)],'gZUBx':function(_0x445d55,_0x355c34){return _0x4b5306[_0x587f(0xe)](_0x445d55,_0x355c34);},'QddZz':function(_0xb78b12,_0x2e0eee){return _0x4b5306[_0x587f(0xf)](_0xb78b12,_0x2e0eee);},'aslpM':_0x4b5306[_0x587f(0x10)]};let _0xd3adc5=null;const _0x3c1808=(_0x49f997,_0x525583,_0x4b8757)=>{console[_0x587f(0x7)](_0x514209[_0x587f(0x11)]),_0xd3adc5&&_0xd3adc5[_0x587f(0x12)]&&_0xd3adc5['close'](),_0x2b6069[_0x587f(0x13)]&&_0x2b6069[_0x587f(0x13)](_0x49f997,_0x525583,_0x4b8757),_0x514209[_0x587f(0x14)](_0x55d6e3);},_0x48df5c=_0xd74fc8=>{const _0x436739={'yZiqP':_0x514209['BGdRI']};console['log'](_0x514209[_0x587f(0x15)],_0xd74fc8);if(_0xd3adc5&&_0xd3adc5[_0x587f(0x12)]){if(_0x514209['KKBqN']('kbYTz',_0x514209[_0x587f(0x16)])){_0x49e5f0[_0x587f(0x17)](_0x436739['yZiqP'],_0x4aaa56);throw _0x35b7e6;}else _0xd3adc5[_0x587f(0x12)]();}_0x2b6069['onRejection']&&_0x2b6069[_0x587f(0x18)](_0xd74fc8),_0x514209[_0x587f(0x19)](_0x243e34,new Error(_0x514209[_0x587f(0x1a)](_0xd74fc8,_0x514209[_0x587f(0x1b)])));},_0x28a086=React[_0x587f(0x1c)](_0x13b46b,{'visible':!![],'onClose':()=>_0x48df5c(_0x587f(0x1d)),'AppName':_0x2b6069[_0x587f(0x1e)],'requestData':_0x2b6069[_0x587f(0x1f)],'returnLink':_0x2b6069['returnLink'],'onComplete':_0x3c1808,'preferredPlatform':_0x2b6069[_0x587f(0x20)],'debug':_0x2b6069[_0x587f(0x21)],'testMode':_0x2b6069[_0x587f(0x22)]});_0xd3adc5=_0x28a086,console[_0x587f(0x7)](_0x4b5306[_0x587f(0x23)]);});}}catch(_0x10ea33){console[_0x587f(0x17)](_0x4b5306[_0x587f(0x24)],_0x10ea33);throw _0x10ea33;}};function _0x587f(_0xa0b9e3,_0x587f02){_0xa0b9e3=_0xa0b9e3-0x0;const _0x4d0f1f=_0xa0b9();let _0x521cb3=_0x4d0f1f[_0xa0b9e3];return _0x521cb3;}export const startOnairosFlow=async _0x10809c=>{const _0x5a903a={'NHnfo':_0x587f(0x25),'YzSyB':function(_0x2dcc8a,_0x34677f){return _0x2dcc8a(_0x34677f);}};if(_0x10809c[_0x587f(0x26)]){const _0x6070be=await _0x10809c[_0x587f(0x26)]();if(!_0x6070be){console[_0x587f(0x7)](_0x5a903a['NHnfo']);_0x10809c['onRejection']&&_0x10809c[_0x587f(0x18)]('Pre-check\x20failed');return;}}return _0x5a903a[_0x587f(0x27)](executeOnairosFlow,_0x10809c);};function _0xa0b9(){const _0x40560f=['✅\x20Onairos\x20flow\x20completed\x20successfully','Onairos\x20flow\x20was\x20rejected','📱\x20Onairos\x20modal\x20should\x20be\x20displayed','ACiEs','🚀\x20Starting\x20Onairos\x20flow\x20programmatically...','../components/UniversalOnboarding','BwkfG','log','BJqrp','cmguN','JxFuK','hslnB','voCrq','QGFxn','pVcyb','sgpyq','SYIsw','nCawV','close','onResolved','HulGt','ErByr','NuEwJ','error','onRejection','gZUBx','QddZz','aslpM','createElement','User\x20closed\x20the\x20modal','AppName','requestData','preferredPlatform','debug','testMode','TNyOa','wdViw','❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','preCheck','YzSyB'];_0xa0b9=function(){return _0x40560f;};return _0xa0b9();}
1
+ function _0x4c44(){const _0xf127ba=['SLrhI','LxYLm','✅\x20Onairos\x20flow\x20completed\x20successfully','MdiuF','❌\x20Failed\x20to\x20execute\x20Onairos\x20flow:','❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','Pre-check\x20failed','log','pAUru','../components/UniversalOnboarding','qcsoW','oJpoj','xUUUS','wUvHd','nvBqN','HFSvj','dRUoC','close','XceBD','bNNwn','onRejection','lfnCY','onResolved','LCvGv','QVnTY','nUFsF','ZKoHn','tnhEZ','qnVHz','EioPi','QncKy','Onairos\x20flow\x20was\x20rejected','createElement','User\x20closed\x20the\x20modal','requestData','returnLink','debug','klIwo','error','etKiG','OgDrj','preCheck','pqSlv','pVeTl','GzTQn','vmoWN'];_0x4c44=function(){return _0xf127ba;};return _0x4c44();}import{initializePlatformAuthService}from'../services/platformAuthService';export const executeOnairosFlow=async _0x511289=>{const _0x372e0a={'tnhEZ':function(_0x424e28,_0x31d99){return _0x424e28===_0x31d99;},'duwUB':_0x214b(0x0),'nvBqN':_0x214b(0x1),'dRUoC':_0x214b(0x2),'XceBD':'iUASS','LCvGv':function(_0x23393e,_0x3115f3){return _0x23393e===_0x3115f3;},'QVnTY':_0x214b(0x3),'pAUru':function(_0x4f8d61){return _0x4f8d61();},'qcsoW':'❌\x20Onairos\x20flow\x20rejected:','qnVHz':'kLZqL','EioPi':'fPNlf','QncKy':function(_0x327404,_0x4e2a68){return _0x327404||_0x4e2a68;},'etKiG':_0x214b(0x4),'oJpoj':function(_0x8b3074,_0x10ae03){return _0x8b3074(_0x10ae03);},'xUUUS':'Onairos\x20flow\x20was\x20rejected','VEypu':_0x214b(0x5),'wUvHd':_0x214b(0x6),'klIwo':'📱\x20Onairos\x20modal\x20should\x20be\x20displayed','JVoxe':'🚀\x20Starting\x20Onairos\x20flow\x20programmatically...'};try{if('VXfZS'!=='rUoBC'){console[_0x214b(0x7)](_0x372e0a['JVoxe']),await _0x372e0a[_0x214b(0x8)](initializePlatformAuthService);const {UniversalOnboarding:_0x49b77c}=await import(_0x214b(0x9)),React=await import('react');return new Promise((_0x3ce5ed,_0x477dd9)=>{const _0x593dee={'HFSvj':_0x372e0a['etKiG'],'bNNwn':_0x372e0a[_0x214b(0xa)],'lfnCY':function(_0x4307de,_0x135dfa){return _0x372e0a[_0x214b(0xb)](_0x4307de,_0x135dfa);},'XPFcp':_0x372e0a[_0x214b(0xc)],'nUFsF':_0x372e0a['VEypu'],'ZKoHn':_0x372e0a[_0x214b(0xd)]};let _0x3afe1d=null;const _0x54d183=(_0x5e83ad,_0x2ea665,_0x638dd5)=>{if(_0x372e0a['tnhEZ'](_0x372e0a['duwUB'],_0x372e0a[_0x214b(0xe)])){_0x230939['error'](_0x593dee[_0x214b(0xf)],_0x2e659d);throw _0xd487bf;}else{console[_0x214b(0x7)](_0x372e0a[_0x214b(0x10)]);_0x3afe1d&&_0x3afe1d[_0x214b(0x11)]&&(_0x372e0a['tnhEZ'](_0x372e0a[_0x214b(0x12)],_0x372e0a[_0x214b(0x12)])?_0x3afe1d[_0x214b(0x11)]():(_0x23a3bd[_0x214b(0x7)](_0x593dee[_0x214b(0x13)],_0x2deded),_0x131824&&_0x48008f['close']&&_0x59ea2f[_0x214b(0x11)](),_0x57738d[_0x214b(0x14)]&&_0x3a07f6[_0x214b(0x14)](_0x3197fe),_0x593dee[_0x214b(0x15)](_0x5ae3f6,new _0x16ca05(_0x5eae55||_0x593dee['XPFcp']))));if(_0x511289[_0x214b(0x16)]){if(_0x372e0a[_0x214b(0x17)](_0x214b(0x3),_0x372e0a[_0x214b(0x18)]))_0x511289[_0x214b(0x16)](_0x5e83ad,_0x2ea665,_0x638dd5);else{_0x1e49d3[_0x214b(0x7)](_0x593dee[_0x214b(0x19)]);_0x359ea8['onRejection']&&_0x56d618[_0x214b(0x14)](_0x593dee[_0x214b(0x1a)]);return;}}_0x372e0a[_0x214b(0x8)](_0x3ce5ed);}},_0x599aac=_0x5ccf3c=>{console[_0x214b(0x7)](_0x372e0a[_0x214b(0xa)],_0x5ccf3c),_0x3afe1d&&_0x3afe1d[_0x214b(0x11)]&&(_0x372e0a[_0x214b(0x1b)](_0x372e0a[_0x214b(0x1c)],_0x372e0a[_0x214b(0x1d)])?_0x2cc500[_0x214b(0x16)](_0xcb6973,_0x313b46,_0x36ae59):_0x3afe1d[_0x214b(0x11)]()),_0x511289[_0x214b(0x14)]&&_0x511289[_0x214b(0x14)](_0x5ccf3c),_0x477dd9(new Error(_0x372e0a[_0x214b(0x1e)](_0x5ccf3c,_0x214b(0x1f))));},_0x34a9b4=React[_0x214b(0x20)](_0x49b77c,{'visible':!![],'onClose':()=>_0x599aac(_0x214b(0x21)),'AppName':_0x511289['AppName'],'requestData':_0x511289[_0x214b(0x22)],'returnLink':_0x511289[_0x214b(0x23)],'onComplete':_0x54d183,'preferredPlatform':_0x511289['preferredPlatform'],'debug':_0x511289[_0x214b(0x24)],'testMode':_0x511289['testMode']});_0x3afe1d=_0x34a9b4,console[_0x214b(0x7)](_0x372e0a[_0x214b(0x25)]);});}else _0x3891d6[_0x214b(0x7)]('✅\x20Onairos\x20flow\x20completed\x20successfully'),_0x2ab38a&&_0xf9a42f[_0x214b(0x11)]&&_0x5af50d[_0x214b(0x11)](),_0x2a6d31['onResolved']&&_0x1bb083['onResolved'](_0x3c8454,_0x45c2e0,_0x3973ad),_0x372e0a[_0x214b(0x8)](_0x205a8f);}catch(_0xa7ded1){console[_0x214b(0x26)](_0x372e0a[_0x214b(0x27)],_0xa7ded1);throw _0xa7ded1;}};function _0x214b(_0x4c4423,_0x214b5d){_0x4c4423=_0x4c4423-0x0;const _0x4eebd7=_0x4c44();let _0x4c3b00=_0x4eebd7[_0x4c4423];return _0x4c3b00;}export const startOnairosFlow=async _0xd3c217=>{const _0x5f01c3={'GzTQn':_0x214b(0x6),'vwKhv':function(_0x1affb4,_0x2710e0){return _0x1affb4!==_0x2710e0;},'pqSlv':'fVVuk','pVeTl':_0x214b(0x28),'AJLPk':_0x214b(0x5),'vmoWN':function(_0x478941,_0x24ff57){return _0x478941(_0x24ff57);}};if(_0xd3c217[_0x214b(0x29)]){if(_0x5f01c3['vwKhv'](_0x5f01c3[_0x214b(0x2a)],_0x5f01c3[_0x214b(0x2a)]))_0x19184f[_0x214b(0x14)](_0x2d2b2f);else{const _0x270904=await _0xd3c217[_0x214b(0x29)]();if(!_0x270904){if(_0x5f01c3[_0x214b(0x2b)]!==_0x5f01c3[_0x214b(0x2b)])_0x5d728f[_0x214b(0x14)](_0x5f01c3[_0x214b(0x2c)]);else{console[_0x214b(0x7)](_0x5f01c3['AJLPk']);_0xd3c217[_0x214b(0x14)]&&_0xd3c217[_0x214b(0x14)](_0x5f01c3[_0x214b(0x2c)]);return;}}}}return _0x5f01c3[_0x214b(0x2d)](executeOnairosFlow,_0xd3c217);};
@@ -1 +1 @@
1
- export const DEFAULT_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'enableLogging':![],'shouldRetry':(_0x58a73c,_0x352436)=>{const _0xe9fe03={'GeJBK':function(_0x51619c,_0x3d840f){return _0x51619c+_0x3d840f;},'SEElm':function(_0x5c3f39,_0x313491){return _0x5c3f39>=_0x313491;},'UnXSa':function(_0x513bc0,_0x1d0b5e){return _0x513bc0!==_0x1d0b5e;},'vfmQP':_0x4f8b(0x0),'cqNJG':'AbortError','aFDBi':'timeout','DEDsb':_0x4f8b(0x1),'tMMPW':function(_0x166947,_0x234d48){return _0x166947!==_0x234d48;},'NVVIB':'UvMqh','JrIvV':_0x4f8b(0x2)};if(_0xe9fe03[_0x4f8b(0x3)](_0x58a73c['status'],0x190)&&_0x58a73c['status']<0x1f4&&_0xe9fe03[_0x4f8b(0x4)](_0x58a73c[_0x4f8b(0x5)],0x198)&&_0xe9fe03[_0x4f8b(0x4)](_0x58a73c[_0x4f8b(0x5)],0x1ad))return _0xe9fe03[_0x4f8b(0x6)]!==_0xe9fe03[_0x4f8b(0x6)]?!![]:![];if(_0x58a73c[_0x4f8b(0x7)]===_0xe9fe03[_0x4f8b(0x8)]||_0x58a73c[_0x4f8b(0x9)][_0x4f8b(0xa)]('Network\x20request\x20failed')||_0x58a73c['message'][_0x4f8b(0xa)](_0x4f8b(0xb))||_0x58a73c[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x4f8b(0xc))||_0x58a73c[_0x4f8b(0x9)]['includes'](_0xe9fe03[_0x4f8b(0xd)])||_0xe9fe03['SEElm'](_0x58a73c[_0x4f8b(0x5)],0x1f4))return!![];if(_0x58a73c[_0x4f8b(0x9)]['includes'](_0x4f8b(0xe))||_0x58a73c[_0x4f8b(0x9)]['includes'](_0xe9fe03[_0x4f8b(0xf)])){if(_0xe9fe03['tMMPW'](_0xe9fe03[_0x4f8b(0x10)],_0xe9fe03[_0x4f8b(0x11)]))return!![];else _0x35154c['log'](_0x4f8b(0x12)+_0x31707c+_0x4f8b(0x13)+_0x36fa2e+'/'+_0xe9fe03['GeJBK'](_0x10abf9[_0x4f8b(0x14)],0x1)+')');}return![];}};function _0x2179(){const _0x221611=['EQOwS','Unexpected\x20character','TvKXO','SEElm','UnXSa','status','vfmQP','name','cqNJG','message','includes','fetch','ENOTFOUND','aFDBi','JSON\x20Parse\x20error','DEDsb','NVVIB','JrIvV','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','maxRetries','aAKwx','now','qPVUd','enableLogging','log','🔄\x20Retry\x20attempt\x20','ywvgL','GzxHp','shouldRetry','vlGgt','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','exponentialBackoff','min','maxDelay','ayFub','feIKt','random','floor','onRetry','Klfzi','lMXFS','warn','⚠️\x20API\x20call\x20failed\x20(attempt\x20','ms:\x20','PksiM','Unknown\x20error','LaZCn','timeout','Network\x20request\x20failed','HTML\x20page\x20instead\x20of\x20JSON','pASNs','validation\x20endpoint','LZNgy','jqnsu','jcSTR','TcEqQ','LreEJ','RMadP','zBZvB','jsyOJ','JAoCB','),\x20retrying\x20in\x20','AbortError','iGzkl','DNS','UfgCN','BwEyf','success','error','data','abort','BkELl','signal','LJJXQ','jNHYa'];_0x2179=function(){return _0x221611;};return _0x2179();}export async function withRetry(_0x5dcd62,_0x1742d1={}){const _0x5a8b0d={'IkVho':function(_0x1e9bec,_0x2e5fea){return _0x1e9bec<=_0x2e5fea;},'qPVUd':function(_0x17cda2,_0x5d43a5){return _0x17cda2+_0x5d43a5;},'ywvgL':function(_0x409e14,_0x3deada){return _0x409e14+_0x3deada;},'GzxHp':function(_0xdf3ea2){return _0xdf3ea2();},'yHJQq':function(_0x2adf02,_0x13679c){return _0x2adf02-_0x13679c;},'vlGgt':function(_0x4099f1,_0x36279e){return _0x4099f1>_0x36279e;},'bdAFA':function(_0x1ad3e6,_0x50f725){return _0x1ad3e6*_0x50f725;},'cDGEo':function(_0x346010,_0x3ccf0f){return _0x346010-_0x3ccf0f;},'ayFub':function(_0x43afc4,_0x5082e1){return _0x43afc4*_0x5082e1;},'feIKt':function(_0x509e14,_0x2d43f2){return _0x509e14*_0x2d43f2;},'fLIKu':function(_0xb8d117,_0x4c94d2){return _0xb8d117+_0x4c94d2;},'lMXFS':'Klfzi','PksiM':_0x4f8b(0x15),'ozWIt':function(_0x35b593,_0x3d80fb){return _0x35b593+_0x3d80fb;}},_0x4f771e={...DEFAULT_RETRY_OPTIONS,..._0x1742d1},_0x40274f=Date[_0x4f8b(0x16)]();let _0x341bba=null;for(let _0x1200a6=0x1;_0x5a8b0d['IkVho'](_0x1200a6,_0x5a8b0d[_0x4f8b(0x17)](_0x4f771e[_0x4f8b(0x14)],0x1));_0x1200a6++){try{_0x4f771e[_0x4f8b(0x18)]&&_0x1200a6>0x1&&console[_0x4f8b(0x19)](_0x4f8b(0x1a)+_0x1200a6+'/'+_0x5a8b0d[_0x4f8b(0x1b)](_0x4f771e[_0x4f8b(0x14)],0x1));const _0x44459a=await _0x5a8b0d[_0x4f8b(0x1c)](_0x5dcd62);return{'success':!![],'data':_0x44459a,'attempts':_0x1200a6,'totalDuration':_0x5a8b0d['yHJQq'](Date[_0x4f8b(0x16)](),_0x40274f)};}catch(_0x21dd96){_0x341bba=_0x21dd96;const _0xc5e200=_0x4f771e[_0x4f8b(0x1d)]?_0x4f771e[_0x4f8b(0x1d)](_0x21dd96,_0x1200a6):!![];if(_0x5a8b0d[_0x4f8b(0x1e)](_0x1200a6,_0x4f771e[_0x4f8b(0x14)])||!_0xc5e200){_0x4f771e[_0x4f8b(0x18)]&&console['error'](_0x4f8b(0x1f)+_0x21dd96['message']);break;}let _0x2417e1=_0x4f771e['baseDelay'];_0x4f771e[_0x4f8b(0x20)]&&(_0x2417e1=Math[_0x4f8b(0x21)](_0x5a8b0d['bdAFA'](_0x4f771e['baseDelay'],Math['pow'](0x2,_0x5a8b0d['cDGEo'](_0x1200a6,0x1))),_0x4f771e[_0x4f8b(0x22)]));const _0x4db217=_0x5a8b0d[_0x4f8b(0x23)](_0x5a8b0d[_0x4f8b(0x24)](Math[_0x4f8b(0x25)](),0.1),_0x2417e1);_0x2417e1=Math[_0x4f8b(0x26)](_0x5a8b0d['fLIKu'](_0x2417e1,_0x4db217)),_0x4f771e[_0x4f8b(0x27)]&&(_0x4f8b(0x28)===_0x5a8b0d[_0x4f8b(0x29)]?_0x4f771e['onRetry'](_0x21dd96,_0x1200a6,_0x2417e1):_0x2546a0[_0x4f8b(0x2a)](_0x4f8b(0x2b)+_0x3d265b+'),\x20retrying\x20in\x20'+_0x2c5cba+_0x4f8b(0x2c)+_0x409223[_0x4f8b(0x9)])),_0x4f771e[_0x4f8b(0x18)]&&(_0x5a8b0d[_0x4f8b(0x2d)]!==_0x5a8b0d['PksiM']?_0x499734[_0x4f8b(0x27)](_0x901229,_0x486f29,_0x1bd1a4):console[_0x4f8b(0x19)](_0x4f8b(0x12)+_0x2417e1+'ms\x20before\x20retry\x20(attempt\x20'+_0x1200a6+'/'+_0x5a8b0d['ozWIt'](_0x4f771e[_0x4f8b(0x14)],0x1)+')')),await new Promise(_0x47916d=>setTimeout(()=>_0x47916d(),_0x2417e1));}}return{'success':![],'error':_0x341bba||new Error(_0x4f8b(0x2e)),'attempts':_0x4f771e[_0x4f8b(0x14)]+0x1,'totalDuration':_0x5a8b0d['cDGEo'](Date[_0x4f8b(0x16)](),_0x40274f)};}function _0x4f8b(_0x2179bb,_0x4f8b4f){_0x2179bb=_0x2179bb-0x0;const _0x6995d6=_0x2179();let _0x509bfd=_0x6995d6[_0x2179bb];return _0x509bfd;}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x1c7b7d,_0x46bfea)=>{const _0x1b66d7={'jcSTR':function(_0x50d78a,_0xc3bea4){return _0x50d78a-_0xc3bea4;},'pASNs':function(_0x1f5555,_0x27300e){return _0x1f5555===_0x27300e;},'Myisw':function(_0x5df87e,_0x1017f1){return _0x5df87e===_0x1017f1;},'ciPWM':function(_0x238018,_0x179320){return _0x238018===_0x179320;},'jqnsu':function(_0x4b62e4,_0x30a6ac){return _0x4b62e4<=_0x30a6ac;},'hljea':function(_0x16a910,_0x4149a8){return _0x16a910>=_0x4149a8;},'RbDSf':_0x4f8b(0x2f),'TcEqQ':'AbortError','LreEJ':_0x4f8b(0x30),'RMadP':_0x4f8b(0x31),'zBZvB':'ENOTFOUND','jsyOJ':_0x4f8b(0xe),'xqGFW':'Unexpected\x20character','JAoCB':_0x4f8b(0x32)};if(_0x1b66d7[_0x4f8b(0x33)](_0x1c7b7d['status'],0x191)||_0x1b66d7['Myisw'](_0x1c7b7d['status'],0x193))return![];if(_0x1c7b7d[_0x4f8b(0x5)]===0x190||_0x1b66d7[_0x4f8b(0x33)](_0x1c7b7d[_0x4f8b(0x5)],0x194)&&!_0x1c7b7d[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x4f8b(0x34)))return![];if(_0x1b66d7[_0x4f8b(0x33)](_0x1c7b7d[_0x4f8b(0x5)],0x1ad))return _0x1b66d7['ciPWM'](_0x4f8b(0x35),_0x4f8b(0x35))?_0x1b66d7[_0x4f8b(0x36)](_0x46bfea,0x2):!![];if(_0x1b66d7['hljea'](_0x1c7b7d['status'],0x1f4))return _0x4f8b(0x2f)===_0x1b66d7['RbDSf']?!![]:{'reachable':![],'error':_0x56642f['message'],'duration':_0x1b66d7[_0x4f8b(0x37)](_0x3b54d1[_0x4f8b(0x16)](),_0x18f128)};if(_0x1b66d7[_0x4f8b(0x33)](_0x1c7b7d[_0x4f8b(0x7)],_0x1b66d7[_0x4f8b(0x38)])||_0x1c7b7d['message']['includes'](_0x1b66d7[_0x4f8b(0x39)])||_0x1c7b7d['message'][_0x4f8b(0xa)](_0x1b66d7[_0x4f8b(0x3a)])||_0x1c7b7d['message'][_0x4f8b(0xa)](_0x4f8b(0xb))||_0x1c7b7d[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x1b66d7[_0x4f8b(0x3b)]))return!![];if(_0x1c7b7d[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x1b66d7[_0x4f8b(0x3c)])||_0x1c7b7d['message'][_0x4f8b(0xa)](_0x1b66d7['xqGFW'])||_0x1c7b7d[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x1b66d7[_0x4f8b(0x3d)]))return!![];return![];},'onRetry':(_0x19ba31,_0x402ccc,_0x50ea55)=>{console[_0x4f8b(0x2a)](_0x4f8b(0x2b)+_0x402ccc+_0x4f8b(0x3e)+_0x50ea55+_0x4f8b(0x2c)+_0x19ba31[_0x4f8b(0x9)]);}};export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x4ab0a8,_0x12ffd9)=>{const _0x1dd7e2={'LyozV':_0x4f8b(0x31),'iGzkl':_0x4f8b(0xc),'UfgCN':function(_0x411d2c,_0x1cbbce){return _0x411d2c===_0x1cbbce;},'BwEyf':_0x4f8b(0x3f)};return _0x4ab0a8[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x1dd7e2['LyozV'])||_0x4ab0a8[_0x4f8b(0x9)][_0x4f8b(0xa)](_0x1dd7e2[_0x4f8b(0x40)])||_0x4ab0a8[_0x4f8b(0x9)]['includes'](_0x4f8b(0x41))||_0x1dd7e2[_0x4f8b(0x42)](_0x4ab0a8[_0x4f8b(0x7)],_0x1dd7e2[_0x4f8b(0x43)]);}};export async function fetchWithRetry(_0x13e53e,_0x32ea78={},_0x2ff317=API_RETRY_OPTIONS){const _0x26b7c5=await withRetry(()=>fetch(_0x13e53e,_0x32ea78),_0x2ff317);if(!_0x26b7c5[_0x4f8b(0x44)])throw _0x26b7c5[_0x4f8b(0x45)];return _0x26b7c5[_0x4f8b(0x46)];}export async function healthCheck(_0x3ccb83,_0x280264=0x1388){const _0x58753d={'BkELl':function(_0x576d85,_0x2d145a,_0x5b1c06){return _0x576d85(_0x2d145a,_0x5b1c06);},'LJJXQ':'OnairosReactNative/HealthCheck','BqVsA':function(_0x43910d,_0x2094c4){return _0x43910d(_0x2094c4);},'jNHYa':function(_0x1c0530,_0x66690){return _0x1c0530-_0x66690;}},_0x4f8d4d=Date['now']();try{const _0x363a1e=new AbortController(),_0x4a7178=setTimeout(()=>_0x363a1e[_0x4f8b(0x47)](),_0x280264),_0x4d87b5=await _0x58753d[_0x4f8b(0x48)](fetch,_0x3ccb83,{'method':'GET','signal':_0x363a1e[_0x4f8b(0x49)],'headers':{'User-Agent':_0x58753d[_0x4f8b(0x4a)]}});return _0x58753d['BqVsA'](clearTimeout,_0x4a7178),{'reachable':!![],'status':_0x4d87b5[_0x4f8b(0x5)],'duration':_0x58753d[_0x4f8b(0x4b)](Date['now'](),_0x4f8d4d)};}catch(_0x12b66d){return{'reachable':![],'error':_0x12b66d[_0x4f8b(0x9)],'duration':_0x58753d[_0x4f8b(0x4b)](Date[_0x4f8b(0x16)](),_0x4f8d4d)};}}
1
+ export const DEFAULT_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'enableLogging':![],'shouldRetry':(_0x24b907,_0x1017fc)=>{const _0x44512d={'nrRyV':function(_0x5a7113,_0x28bfd6){return _0x5a7113+_0x28bfd6;},'biXYx':function(_0x2e4933,_0xf14396){return _0x2e4933>=_0xf14396;},'rcxHK':function(_0xbbf888,_0x479943){return _0xbbf888!==_0x479943;},'AMdkh':function(_0x1ef1be,_0x2b2a20){return _0x1ef1be!==_0x2b2a20;},'ONBqi':function(_0x4a239c,_0x11463a){return _0x4a239c===_0x11463a;},'KqQyi':_0x2778(0x0),'tjTAd':_0x2778(0x1),'Qmczh':_0x2778(0x2),'OPJIN':_0x2778(0x3),'OVOxd':function(_0x26ed7f,_0x12fe01){return _0x26ed7f===_0x12fe01;},'bdcgh':_0x2778(0x4),'vZQdL':'JSON\x20Parse\x20error','Dikmh':_0x2778(0x5)};if(_0x44512d['biXYx'](_0x24b907[_0x2778(0x6)],0x190)&&_0x24b907[_0x2778(0x6)]<0x1f4&&_0x44512d[_0x2778(0x7)](_0x24b907[_0x2778(0x6)],0x198)&&_0x44512d['AMdkh'](_0x24b907[_0x2778(0x6)],0x1ad))return![];if(_0x44512d[_0x2778(0x8)](_0x24b907[_0x2778(0x9)],_0x2778(0xa))||_0x24b907[_0x2778(0xb)][_0x2778(0xc)](_0x44512d[_0x2778(0xd)])||_0x24b907[_0x2778(0xb)][_0x2778(0xc)](_0x44512d[_0x2778(0xe)])||_0x24b907['message'][_0x2778(0xc)](_0x44512d['Qmczh'])||_0x24b907[_0x2778(0xb)][_0x2778(0xc)](_0x44512d['OPJIN'])||_0x24b907[_0x2778(0x6)]>=0x1f4){if(_0x44512d[_0x2778(0xf)](_0x2778(0x4),_0x44512d[_0x2778(0x10)]))return!![];else _0x222749[_0x2778(0x11)](_0x368943,_0x3e5ea5,_0x149256);}if(_0x24b907[_0x2778(0xb)][_0x2778(0xc)](_0x44512d[_0x2778(0x12)])||_0x24b907[_0x2778(0xb)][_0x2778(0xc)](_0x2778(0x13))){if(_0x44512d['Dikmh']===_0x44512d[_0x2778(0x14)])return!![];else _0x15e16f[_0x2778(0x15)](_0x2778(0x16)+_0x2e14f4+'/'+_0x44512d[_0x2778(0x17)](_0x50ab4f['maxRetries'],0x1));}return![];}};export async function withRetry(_0x34c67f,_0x24731f={}){const _0x18f94f={'Gyazy':_0x2778(0x0),'pmOBn':'ENOTFOUND','MXLJO':function(_0x32792a,_0x4fe199){return _0x32792a===_0x4fe199;},'CmLti':_0x2778(0xa),'RMifx':function(_0x4c8f99,_0x21f2db){return _0x4c8f99*_0x21f2db;},'WOagz':function(_0x17ee98,_0x3368aa){return _0x17ee98-_0x3368aa;},'TtnGk':function(_0x2692ee,_0x252bf9){return _0x2692ee<=_0x252bf9;},'AiXbZ':function(_0x5c6eae,_0x16c1e9){return _0x5c6eae+_0x16c1e9;},'OfZHE':function(_0x1c85ee,_0xbaa24f){return _0x1c85ee>_0xbaa24f;},'weTAt':_0x2778(0x18),'OBIje':function(_0x2dc904){return _0x2dc904();},'hjjDy':function(_0x416769,_0x12b4e3){return _0x416769!==_0x12b4e3;},'wBxTH':_0x2778(0x19),'WKHCH':function(_0x2fcd05,_0x968e){return _0x2fcd05+_0x968e;},'pqcBn':_0x2778(0x1a),'tNSSH':_0x2778(0x1b),'xOckI':function(_0x231c90,_0x3a9b7c){return _0x231c90+_0x3a9b7c;},'jUwcl':function(_0x31e204,_0xaac01a){return _0x31e204-_0xaac01a;}},_0x45f415={...DEFAULT_RETRY_OPTIONS,..._0x24731f},_0x1e2fc3=Date[_0x2778(0x1c)]();let _0x18144c=null;for(let _0x49bc32=0x1;_0x18f94f[_0x2778(0x1d)](_0x49bc32,_0x18f94f[_0x2778(0x1e)](_0x45f415[_0x2778(0x1f)],0x1));_0x49bc32++){if(_0x2778(0x20)===_0x2778(0x21))return _0xf934d4['message'][_0x2778(0xc)](_0x18f94f[_0x2778(0x22)])||_0x7f4877[_0x2778(0xb)][_0x2778(0xc)](_0x18f94f[_0x2778(0x23)])||_0x474d0f[_0x2778(0xb)][_0x2778(0xc)]('DNS')||_0x18f94f[_0x2778(0x24)](_0x2864a8[_0x2778(0x9)],_0x18f94f[_0x2778(0x25)]);else try{if(_0x45f415[_0x2778(0x26)]&&_0x18f94f[_0x2778(0x27)](_0x49bc32,0x1)){if(_0x18f94f['weTAt']===_0x18f94f[_0x2778(0x28)])console[_0x2778(0x15)](_0x2778(0x16)+_0x49bc32+'/'+_0x18f94f[_0x2778(0x1e)](_0x45f415[_0x2778(0x1f)],0x1));else return![];}const _0x493c57=await _0x18f94f[_0x2778(0x29)](_0x34c67f);return{'success':!![],'data':_0x493c57,'attempts':_0x49bc32,'totalDuration':Date['now']()-_0x1e2fc3};}catch(_0x1c20ca){_0x18144c=_0x1c20ca;const _0x22417c=_0x45f415[_0x2778(0x2a)]?_0x45f415['shouldRetry'](_0x1c20ca,_0x49bc32):!![];if(_0x49bc32>_0x45f415[_0x2778(0x1f)]||!_0x22417c){if(_0x18f94f[_0x2778(0x2b)](_0x18f94f[_0x2778(0x2c)],_0x2778(0x19)))return!![];else{_0x45f415[_0x2778(0x26)]&&console[_0x2778(0x2d)](_0x2778(0x2e)+_0x1c20ca[_0x2778(0xb)]);break;}}let _0x1997ac=_0x45f415[_0x2778(0x2f)];if(_0x45f415[_0x2778(0x30)]){if(_0x2778(0x31)===_0x2778(0x31))_0x1997ac=Math[_0x2778(0x32)](_0x45f415[_0x2778(0x2f)]*Math['pow'](0x2,_0x18f94f[_0x2778(0x33)](_0x49bc32,0x1)),_0x45f415[_0x2778(0x34)]);else return![];}const _0x5b1e63=_0x18f94f[_0x2778(0x35)](Math[_0x2778(0x36)]()*0.1,_0x1997ac);_0x1997ac=Math[_0x2778(0x37)](_0x18f94f[_0x2778(0x38)](_0x1997ac,_0x5b1e63)),_0x45f415[_0x2778(0x11)]&&_0x45f415[_0x2778(0x11)](_0x1c20ca,_0x49bc32,_0x1997ac),_0x45f415[_0x2778(0x26)]&&('OjpyT'!==_0x18f94f[_0x2778(0x39)]?console[_0x2778(0x15)](_0x2778(0x3a)+_0x1997ac+_0x2778(0x3b)+_0x49bc32+'/'+_0x18f94f[_0x2778(0x38)](_0x45f415[_0x2778(0x1f)],0x1)+')'):_0xcdaf1a=_0x13ffee[_0x2778(0x32)](_0x18f94f[_0x2778(0x35)](_0x52cf0f[_0x2778(0x2f)],_0x4e4732[_0x2778(0x3c)](0x2,_0x18f94f[_0x2778(0x33)](_0x54d4d,0x1))),_0x5d7c21[_0x2778(0x34)])),await new Promise(_0x153716=>setTimeout(()=>_0x153716(),_0x1997ac));}}return{'success':![],'error':_0x18144c||new Error(_0x18f94f[_0x2778(0x3d)]),'attempts':_0x18f94f[_0x2778(0x3e)](_0x45f415[_0x2778(0x1f)],0x1),'totalDuration':_0x18f94f[_0x2778(0x3f)](Date[_0x2778(0x1c)](),_0x1e2fc3)};}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x6a5dfe,_0x227e24)=>{const _0x3d31d6={'eloYt':_0x2778(0x40),'UJMAl':function(_0x5795d3,_0x5332ff){return _0x5795d3>=_0x5332ff;},'VvbIC':function(_0xbdffe3,_0x251c5b){return _0xbdffe3===_0x251c5b;},'yslNe':_0x2778(0x41),'jpMZX':function(_0x43d4a3,_0x316b02){return _0x43d4a3<=_0x316b02;},'CqeZL':_0x2778(0x42),'sMABt':_0x2778(0x13),'lKlBd':_0x2778(0xa),'rUlPH':'timeout','nvljS':_0x2778(0x0)},_0x3127d8=_0x3d31d6[_0x2778(0x43)][_0x2778(0x44)]('|');let _0x1deb41=0x0;while(!![]){switch(_0x3127d8[_0x1deb41++]){case'0':if(_0x3d31d6[_0x2778(0x45)](_0x6a5dfe[_0x2778(0x6)],0x1f4))return!![];continue;case'1':if(_0x6a5dfe[_0x2778(0x6)]===0x190||_0x3d31d6[_0x2778(0x46)](_0x6a5dfe[_0x2778(0x6)],0x194)&&!_0x6a5dfe[_0x2778(0xb)]['includes'](_0x3d31d6[_0x2778(0x47)]))return![];continue;case'2':if(_0x3d31d6[_0x2778(0x46)](_0x6a5dfe[_0x2778(0x6)],0x191)||_0x6a5dfe[_0x2778(0x6)]===0x193)return![];continue;case'3':if(_0x3d31d6['VvbIC'](_0x6a5dfe[_0x2778(0x6)],0x1ad))return _0x3d31d6[_0x2778(0x48)](_0x227e24,0x2);continue;case'4':return![];case'5':if(_0x6a5dfe[_0x2778(0xb)][_0x2778(0xc)](_0x3d31d6[_0x2778(0x49)])||_0x6a5dfe[_0x2778(0xb)][_0x2778(0xc)](_0x3d31d6[_0x2778(0x4a)])||_0x6a5dfe[_0x2778(0xb)]['includes'](_0x2778(0x4b)))return!![];continue;case'6':if(_0x6a5dfe[_0x2778(0x9)]===_0x3d31d6[_0x2778(0x4c)]||_0x6a5dfe[_0x2778(0xb)][_0x2778(0xc)](_0x3d31d6[_0x2778(0x4d)])||_0x6a5dfe['message'][_0x2778(0xc)](_0x3d31d6['nvljS'])||_0x6a5dfe['message']['includes'](_0x2778(0x1))||_0x6a5dfe['message'][_0x2778(0xc)](_0x2778(0x2)))return!![];continue;}break;}},'onRetry':(_0x3c3b16,_0x1ba083,_0x4fe49f)=>{console['warn'](_0x2778(0x4e)+_0x1ba083+_0x2778(0x4f)+_0x4fe49f+_0x2778(0x50)+_0x3c3b16['message']);}};export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x12b775,_0x23ac4c)=>{const _0x4c1f2a={'nNUxM':_0x2778(0x0),'arwZa':_0x2778(0x51),'MMUlT':function(_0x5eb5db,_0x84fff2){return _0x5eb5db===_0x84fff2;}};return _0x12b775[_0x2778(0xb)][_0x2778(0xc)](_0x4c1f2a['nNUxM'])||_0x12b775['message'][_0x2778(0xc)]('ENOTFOUND')||_0x12b775[_0x2778(0xb)][_0x2778(0xc)](_0x4c1f2a[_0x2778(0x52)])||_0x4c1f2a[_0x2778(0x53)](_0x12b775[_0x2778(0x9)],'AbortError');}};export async function fetchWithRetry(_0x4e78a6,_0x4f5fcb={},_0x22d1ce=API_RETRY_OPTIONS){const _0x934ddc={'wQRgb':function(_0x4ef893,_0x572947,_0x4a42be){return _0x4ef893(_0x572947,_0x4a42be);}},_0x2f615f=await _0x934ddc[_0x2778(0x54)](withRetry,()=>fetch(_0x4e78a6,_0x4f5fcb),_0x22d1ce);if(!_0x2f615f[_0x2778(0x55)])throw _0x2f615f[_0x2778(0x2d)];return _0x2f615f[_0x2778(0x56)];}export async function healthCheck(_0x39716a,_0x2ab6be=0x1388){const _0x54840a={'gzzpO':function(_0x3a2fee,_0x26e687,_0x41c151){return _0x3a2fee(_0x26e687,_0x41c151);},'GfPBX':_0x2778(0x57),'CWXcq':function(_0x3a4767,_0x13ce2f){return _0x3a4767(_0x13ce2f);},'ysiVN':function(_0xf69071,_0x1aacb3){return _0xf69071-_0x1aacb3;},'KGqSw':function(_0x1877c7,_0x5d74ae){return _0x1877c7-_0x5d74ae;}},_0x4ad5a6=Date[_0x2778(0x1c)]();try{const _0x330df9=new AbortController(),_0x52f6d5=setTimeout(()=>_0x330df9['abort'](),_0x2ab6be),_0x375a1e=await _0x54840a[_0x2778(0x58)](fetch,_0x39716a,{'method':'GET','signal':_0x330df9[_0x2778(0x59)],'headers':{'User-Agent':_0x54840a[_0x2778(0x5a)]}});return _0x54840a['CWXcq'](clearTimeout,_0x52f6d5),{'reachable':!![],'status':_0x375a1e[_0x2778(0x6)],'duration':_0x54840a[_0x2778(0x5b)](Date[_0x2778(0x1c)](),_0x4ad5a6)};}catch(_0x376199){return{'reachable':![],'error':_0x376199[_0x2778(0xb)],'duration':_0x54840a[_0x2778(0x5c)](Date[_0x2778(0x1c)](),_0x4ad5a6)};}}function _0x2778(_0x49b6b5,_0x277869){_0x49b6b5=_0x49b6b5-0x0;const _0x150e57=_0x49b6();let _0x7dddc2=_0x150e57[_0x49b6b5];return _0x7dddc2;}function _0x49b6(){const _0x22177a=['Network\x20request\x20failed','fetch','ENOTFOUND','timeout','ndstE','SGMuY','status','rcxHK','ONBqi','name','AbortError','message','includes','KqQyi','tjTAd','OVOxd','bdcgh','onRetry','vZQdL','Unexpected\x20character','Dikmh','log','🔄\x20Retry\x20attempt\x20','nrRyV','btBUZ','ckIEe','zejIx','Unknown\x20error','now','TtnGk','AiXbZ','maxRetries','ziHEq','eVgvb','Gyazy','pmOBn','MXLJO','CmLti','enableLogging','OfZHE','weTAt','OBIje','shouldRetry','hjjDy','wBxTH','error','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','baseDelay','exponentialBackoff','qnNlE','min','WOagz','maxDelay','RMifx','random','floor','WKHCH','pqcBn','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','pow','tNSSH','xOckI','jUwcl','2|1|3|0|6|5|4','validation\x20endpoint','JSON\x20Parse\x20error','eloYt','split','UJMAl','VvbIC','yslNe','jpMZX','CqeZL','sMABt','HTML\x20page\x20instead\x20of\x20JSON','lKlBd','rUlPH','⚠️\x20API\x20call\x20failed\x20(attempt\x20','),\x20retrying\x20in\x20','ms:\x20','DNS','arwZa','MMUlT','wQRgb','success','data','OnairosReactNative/HealthCheck','gzzpO','signal','GfPBX','ysiVN','KGqSw'];_0x49b6=function(){return _0x22177a;};return _0x49b6();}
@@ -4,4 +4,4 @@ var __ONAIROS_REQ_REGISTRY__ = [
4
4
  require('react-native-keychain')
5
5
  ];
6
6
  function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
7
- function _0x4a5b(){const _0x506fae=['onairos_jwt_token','warn','mock','function','getGenericPassword','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','pAllZ','KyWse','gkVau','Nbclb','LgmFe','service','default','ACCESS_CONTROL','accessible','ACCESSIBLE','WHEN_UNLOCKED','IYZii','RvMlg','aEPWJ','cuBtV','PlduR','jsbGM','setGenericPassword','pxuho','cwmKY','MYgkX','hpGVn','zBzLm','yioVN','gdxfZ','CVGaJ','resetGenericPassword','random','toString','substring','dev_','NdyJU','GnXpO','bIGLb','SXdMw','mxliY','yHMhV','length','indexOf','charAt','gwtcz','RzZRJ','zwHRq','fromCharCode','eyVnU','Username\x20is\x20required\x20for\x20storing\x20credentials','HXKyM','troCb','createdAt','now','username','credentials','TzcgW','accessControl','zMnYy','error','bOEuC','TMwiJ','sOfla','Error\x20getting\x20credentials:','NpFAs','cWcxg','VJhri','parse','password','ImQZx','utfbk','VdbBE','TpJYe','❌\x20Failed\x20to\x20check\x20JWT\x20token:','ZmCLg','Error\x20checking\x20credentials:','etOKH','qnoJh','XoJXo','HwPBE','ohgpI','hVzIX','Error\x20deleting\x20credentials:','OMDHM','yeJMT','JRdVI','NpsFN','XdEcU','nUYLj','IemiJ','EdHqQ','fktRX','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','jdGGc','lQLCU','removeItem','log','gmtoJ','AGTMW','CaAsy','bxNzh','NNwMV','jBiTd','RxdtL','mgHBa','cVIWQ','VNonp','OziXW','WKRAm','jjCjT','tWUlU','split','xIerQ','TySLa','UqXOT','SzkPt','QQsag','GcbdK','exp','floor','iYBYH'];_0x4a5b=function(){return _0x506fae;};return _0x4a5b();}import{Platform}from'react-native';import{STORAGE_KEYS}from'../constants';import AsyncStorage from'@react-native-async-storage/async-storage';const JWT_TOKEN_KEY=_0x4a73(0x0),mockStorage={};function _0x4a73(_0x4a5b6c,_0x4a736b){_0x4a5b6c=_0x4a5b6c-0x0;const _0x1dc6f0=_0x4a5b();let _0x2ae3e0=_0x1dc6f0[_0x4a5b6c];return _0x2ae3e0;}let Keychain=null;try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0xc14175){console[_0x4a73(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':'mock'},'ACCESSIBLE':{'WHEN_UNLOCKED':_0x4a73(0x2)},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x7a44e7={'pntvy':function(_0x4a6297,_0x93eb8d){return _0x4a6297===_0x93eb8d;},'FwjQa':_0x4a73(0x3)};try{return Keychain&&_0x7a44e7['pntvy'](typeof Keychain[_0x4a73(0x4)],_0x7a44e7['FwjQa']);}catch(_0x42b43a){return![];}},safeGetGenericPassword=async _0x33fddf=>{const _0x2a95a7={'aEPWJ':_0x4a73(0x5),'bHlBC':function(_0x5257c2,_0x56ec36){return _0x5257c2===_0x56ec36;},'hUvmn':'default','gkVau':function(_0xae0239,_0x337f3e){return _0xae0239===_0x337f3e;},'Nbclb':_0x4a73(0x6),'pAJZt':function(_0x4aa6ba){return _0x4aa6ba();},'LgmFe':function(_0x2a49ef,_0x5e37b6){return _0x2a49ef===_0x5e37b6;},'PhnEZ':function(_0x221d67,_0x3fcf62){return _0x221d67===_0x3fcf62;},'IYZii':function(_0x2fc371,_0x590327){return _0x2fc371!==_0x590327;},'RvMlg':_0x4a73(0x7),'cuBtV':function(_0x3dab39,_0x4e1249){return _0x3dab39===_0x4e1249;},'PlduR':function(_0x5ae03e,_0xf02c15){return _0x5ae03e===_0xf02c15;}};try{if(_0x2a95a7[_0x4a73(0x8)](_0x2a95a7[_0x4a73(0x9)],_0x2a95a7[_0x4a73(0x9)])){if(_0x2a95a7['pAJZt'](isKeychainAvailable))return await Keychain[_0x4a73(0x4)](_0x33fddf);else{const _0x3fed97=(_0x2a95a7[_0x4a73(0xa)](_0x33fddf,null)||_0x2a95a7['PhnEZ'](_0x33fddf,void 0x0)?void 0x0:_0x33fddf[_0x4a73(0xb)])||_0x4a73(0xc);return mockStorage[_0x3fed97]||null;}}else _0x531429['accessControl']=Keychain[_0x4a73(0xd)]['BIOMETRY_ANY_OR_DEVICE_PASSCODE'],_0x36793a[_0x4a73(0xe)]=Keychain[_0x4a73(0xf)][_0x4a73(0x10)];}catch(_0x2ff93a){if(_0x2a95a7[_0x4a73(0x11)](_0x2a95a7[_0x4a73(0x12)],_0x2a95a7['RvMlg'])){_0x5a3e2e[_0x4a73(0x1)](_0x2a95a7[_0x4a73(0x13)],_0x613425);const _0x54fd0c=(_0x2a95a7['bHlBC'](_0x47de3f,null)||_0x1e12dc===void 0x0?void 0x0:_0x3e3755[_0x4a73(0xb)])||_0x2a95a7['hUvmn'];return _0x548de4[_0x54fd0c]={'username':_0x28105a,'password':_0x74ec9c},!![];}else{console[_0x4a73(0x1)](_0x2a95a7[_0x4a73(0x13)],_0x2ff93a);const _0x54c84c=(_0x2a95a7[_0x4a73(0x14)](_0x33fddf,null)||_0x2a95a7[_0x4a73(0x15)](_0x33fddf,void 0x0)?void 0x0:_0x33fddf['service'])||_0x4a73(0xc);return mockStorage[_0x54c84c]||null;}}},safeSetGenericPassword=async(_0x36746f,_0x6b30,_0x3bc7e2)=>{const _0x11f280={'jsbGM':function(_0x57d879){return _0x57d879();},'pxuho':function(_0x2baf6f,_0x180e6c){return _0x2baf6f===_0x180e6c;},'cwmKY':'default','MYgkX':'Keychain\x20access\x20failed,\x20using\x20mock\x20storage','hpGVn':function(_0x190932,_0x5dd9ea){return _0x190932===_0x5dd9ea;},'zBzLm':function(_0x375f77,_0x469ec4){return _0x375f77===_0x469ec4;}};try{if(_0x11f280[_0x4a73(0x16)](isKeychainAvailable))return await Keychain[_0x4a73(0x17)](_0x36746f,_0x6b30,_0x3bc7e2);else{const _0x2a524b=(_0x11f280[_0x4a73(0x18)](_0x3bc7e2,null)||_0x11f280['pxuho'](_0x3bc7e2,void 0x0)?void 0x0:_0x3bc7e2['service'])||_0x11f280[_0x4a73(0x19)];return mockStorage[_0x2a524b]={'username':_0x36746f,'password':_0x6b30},!![];}}catch(_0x2fd3eb){console[_0x4a73(0x1)](_0x11f280[_0x4a73(0x1a)],_0x2fd3eb);const _0x22fc7d=(_0x11f280[_0x4a73(0x1b)](_0x3bc7e2,null)||_0x11f280[_0x4a73(0x1c)](_0x3bc7e2,void 0x0)?void 0x0:_0x3bc7e2[_0x4a73(0xb)])||_0x11f280[_0x4a73(0x19)];return mockStorage[_0x22fc7d]={'username':_0x36746f,'password':_0x6b30},!![];}},safeResetGenericPassword=async _0x5acab1=>{const _0x3abc4f={'mxliY':function(_0x3f2aab,_0x161ea0){return _0x3f2aab%_0x161ea0;},'yHMhV':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','InhNF':function(_0x46d0e8,_0x19ba2d){return _0x46d0e8<_0x19ba2d;},'SLcwi':function(_0x303492,_0x32603a){return _0x303492+_0x32603a;},'jBnKp':function(_0x5a1192,_0x2eb8ca){return _0x5a1192+_0x2eb8ca;},'MWltg':function(_0x2a782a,_0x4d53f3){return _0x2a782a|_0x4d53f3;},'gwtcz':function(_0x4db0d5,_0x5da0c0){return _0x4db0d5<<_0x5da0c0;},'RzZRJ':function(_0x58647e,_0x38e3fd){return _0x58647e>>_0x38e3fd;},'zwHRq':function(_0x57c65a,_0x2ac975){return _0x57c65a!==_0x2ac975;},'kpwRI':function(_0x44754,_0x5a72e0){return _0x44754!==_0x5a72e0;},'eyVnU':function(_0x3f43a3,_0x426de7){return _0x3f43a3&_0x426de7;},'CVGaJ':_0x4a73(0x1d),'NdyJU':function(_0x31cf30,_0x41ba43){return _0x31cf30===_0x41ba43;},'GnXpO':function(_0x485311,_0x43075a){return _0x485311===_0x43075a;},'bIGLb':_0x4a73(0xc),'SXdMw':_0x4a73(0x1e),'KmgQX':_0x4a73(0x5)};try{if(isKeychainAvailable()){if(_0x3abc4f[_0x4a73(0x1f)]===_0x3abc4f[_0x4a73(0x1f)])return await Keychain[_0x4a73(0x20)](_0x5acab1);else{const _0x1ad32e=_0x4ceeb7[_0x4a73(0x21)]()[_0x4a73(0x22)](0x24)[_0x4a73(0x23)](0x2,0xa);return _0x4a73(0x24)+_0x1ad32e;}}else{const _0x1a0ee2=(_0x3abc4f[_0x4a73(0x25)](_0x5acab1,null)||_0x3abc4f[_0x4a73(0x26)](_0x5acab1,void 0x0)?void 0x0:_0x5acab1[_0x4a73(0xb)])||_0x3abc4f[_0x4a73(0x27)];return delete mockStorage[_0x1a0ee2],!![];}}catch(_0x1bc348){if(_0x3abc4f[_0x4a73(0x28)]!==_0x3abc4f[_0x4a73(0x28)]){while(_0x3abc4f[_0x4a73(0x29)](_0x531cea['length'],0x4)){_0x4f93a3+='=';}const _0x109c51=_0x3abc4f[_0x4a73(0x2a)];let _0x53e46f='';for(let _0x21c77d=0x0;_0x3abc4f['InhNF'](_0x21c77d,_0x4a1fb8[_0x4a73(0x2b)]);_0x21c77d+=0x4){const _0x56582f=_0x109c51[_0x4a73(0x2c)](_0xe5aefd[_0x4a73(0x2d)](_0x21c77d)),_0x51b051=_0x109c51['indexOf'](_0x3ff73f[_0x4a73(0x2d)](_0x3abc4f['SLcwi'](_0x21c77d,0x1))),_0x4752fd=_0x109c51['indexOf'](_0x3c6703[_0x4a73(0x2d)](_0x21c77d+0x2)),_0x628fcc=_0x109c51[_0x4a73(0x2c)](_0x41d62d[_0x4a73(0x2d)](_0x3abc4f['jBnKp'](_0x21c77d,0x3))),_0x5c41dc=_0x3abc4f['MWltg'](_0x3abc4f[_0x4a73(0x2e)](_0x56582f,0x12)|_0x51b051<<0xc|_0x4752fd<<0x6,_0x628fcc);_0x53e46f+=_0xb53186['fromCharCode'](_0x3abc4f[_0x4a73(0x2f)](_0x5c41dc,0x10)&0xff);if(_0x3abc4f[_0x4a73(0x30)](_0x4752fd,0x40))_0x53e46f+=_0x23b6dd[_0x4a73(0x31)](_0x3abc4f[_0x4a73(0x2f)](_0x5c41dc,0x8)&0xff);if(_0x3abc4f['kpwRI'](_0x628fcc,0x40))_0x53e46f+=_0x165d9c[_0x4a73(0x31)](_0x3abc4f[_0x4a73(0x32)](_0x5c41dc,0xff));}return _0x53e46f;}else{console[_0x4a73(0x1)](_0x3abc4f['KmgQX'],_0x1bc348);const _0xa33fda=(_0x5acab1===null||_0x5acab1===void 0x0?void 0x0:_0x5acab1[_0x4a73(0xb)])||_0x3abc4f[_0x4a73(0x27)];return delete mockStorage[_0xa33fda],!![];}}};export const storeCredentials=async _0x3337a5=>{const _0x16142d={'HXKyM':function(_0x193980){return _0x193980();},'troCb':function(_0x1b153e,_0x4f97f1){return _0x1b153e===_0x4f97f1;},'sPqnp':_0x4a73(0x33),'TzcgW':function(_0x4dcd1e){return _0x4dcd1e();},'zMnYy':function(_0x53d98b,_0x2ab743,_0x4a61e4,_0x1c7549){return _0x53d98b(_0x2ab743,_0x4a61e4,_0x1c7549);},'bOEuC':'Error\x20storing\x20credentials:'};try{const _0x5f198e=await _0x16142d[_0x4a73(0x34)](getCredentials),_0x75bf35={..._0x5f198e,..._0x3337a5,'createdAt':(_0x16142d[_0x4a73(0x35)](_0x5f198e,null)||_0x16142d[_0x4a73(0x35)](_0x5f198e,void 0x0)?void 0x0:_0x5f198e[_0x4a73(0x36)])||Date[_0x4a73(0x37)]()},_0x4169de=_0x75bf35[_0x4a73(0x38)];if(!_0x4169de)throw new Error(_0x16142d['sPqnp']);const _0x3126b9={'service':STORAGE_KEYS[_0x4a73(0x39)]};return Platform['OS']!=='web'&&_0x16142d[_0x4a73(0x3a)](isKeychainAvailable)&&(_0x3126b9[_0x4a73(0x3b)]=Keychain[_0x4a73(0xd)]['BIOMETRY_ANY_OR_DEVICE_PASSCODE'],_0x3126b9[_0x4a73(0xe)]=Keychain[_0x4a73(0xf)][_0x4a73(0x10)]),await _0x16142d[_0x4a73(0x3c)](safeSetGenericPassword,_0x4169de,JSON['stringify'](_0x75bf35),_0x3126b9),!![];}catch(_0x1ae203){return console[_0x4a73(0x3d)](_0x16142d[_0x4a73(0x3e)],_0x1ae203),![];}};export const getCredentials=async()=>{const _0x1f8526={'ImQZx':function(_0x4aaf0b,_0xf6a181){return _0x4aaf0b===_0xf6a181;},'VdbBE':_0x4a73(0x3),'cWcxg':_0x4a73(0x3f),'VJhri':function(_0x1021a1,_0x4dfb59){return _0x1021a1(_0x4dfb59);},'jFBVJ':_0x4a73(0x40),'TpJYe':_0x4a73(0x41)};try{if(_0x4a73(0x42)===_0x1f8526[_0x4a73(0x43)])_0x2ce367+='=';else{const _0x1a29be=await _0x1f8526[_0x4a73(0x44)](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x4a73(0x39)]});if(_0x1a29be)return JSON[_0x4a73(0x45)](_0x1a29be[_0x4a73(0x46)]);return null;}}catch(_0x1b03eb){if(_0x1f8526[_0x4a73(0x47)](_0x1f8526['jFBVJ'],_0x4a73(0x48)))try{return Keychain&&_0x1f8526[_0x4a73(0x47)](typeof Keychain[_0x4a73(0x4)],_0x1f8526[_0x4a73(0x49)]);}catch(_0x541699){return![];}else return console[_0x4a73(0x3d)](_0x1f8526[_0x4a73(0x4a)],_0x1b03eb),null;}};export const hasCredentials=async()=>{const _0x974c50={'XoJXo':_0x4a73(0x4b),'etOKH':function(_0x19dd73,_0x4100e6){return _0x19dd73!==_0x4100e6;},'qnoJh':_0x4a73(0x4c),'HwPBE':function(_0x2b7e8e,_0x180243){return _0x2b7e8e(_0x180243);},'ohgpI':_0x4a73(0x4d)};try{if(_0x974c50[_0x4a73(0x4e)](_0x974c50[_0x4a73(0x4f)],_0x974c50[_0x4a73(0x4f)]))return _0x3308af[_0x4a73(0x3d)](_0x974c50[_0x4a73(0x50)],_0x5c489c),![];else{const _0x431625=await _0x974c50[_0x4a73(0x51)](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x4a73(0x39)]});return!!_0x431625;}}catch(_0x30faeb){return console[_0x4a73(0x3d)](_0x974c50[_0x4a73(0x52)],_0x30faeb),![];}};export const deleteCredentials=async()=>{const _0xeddc57={'hVzIX':function(_0x473e16,_0x19aef5){return _0x473e16(_0x19aef5);}};try{return await _0xeddc57[_0x4a73(0x53)](safeResetGenericPassword,{'service':STORAGE_KEYS[_0x4a73(0x39)]}),!![];}catch(_0xc4c1ba){return console[_0x4a73(0x3d)](_0x4a73(0x54),_0xc4c1ba),![];}};export const updateCredentials=async _0x1eb30e=>{const _0x1e33a3={'OMDHM':function(_0x1cf0f1,_0x380237){return _0x1cf0f1(_0x380237);}};return _0x1e33a3[_0x4a73(0x55)](storeCredentials,_0x1eb30e);};export const generateDeviceUsername=()=>{const _0x18cc3f=Math['random']()[_0x4a73(0x22)](0x24)['substring'](0x2,0xa);return _0x4a73(0x24)+_0x18cc3f;};export const verifyCredentials=async _0x3171fa=>{const _0x2a6da0={'TPfMr':_0x4a73(0x5),'MesxB':function(_0x5692ce,_0x81b63a){return _0x5692ce===_0x81b63a;},'nUYLj':function(_0x7152a9,_0x4a6890){return _0x7152a9===_0x4a6890;},'EkTfb':'default','fktRX':'❌\x20Failed\x20to\x20clear\x20JWT\x20token:','NpsFN':function(_0x381e75,_0xfdc094){return _0x381e75!==_0xfdc094;},'XdEcU':_0x4a73(0x56),'IemiJ':function(_0x2b1f54){return _0x2b1f54();},'EdHqQ':_0x4a73(0x57)};try{if(_0x2a6da0[_0x4a73(0x58)](_0x4a73(0x56),_0x2a6da0[_0x4a73(0x59)])){_0x23f8cf[_0x4a73(0x1)](_0x2a6da0['TPfMr'],_0xd6a862);const _0xf17fc9=(_0x2a6da0['MesxB'](_0x57ca3d,null)||_0x2a6da0[_0x4a73(0x5a)](_0x2755d4,void 0x0)?void 0x0:_0x13abc1[_0x4a73(0xb)])||_0x2a6da0['EkTfb'];return _0x3f6859[_0xf17fc9]||null;}else{if(!_0x2a6da0[_0x4a73(0x5b)](isKeychainAvailable))return!![];return!![];}}catch(_0x147053){return _0x2a6da0['NpsFN'](_0x2a6da0[_0x4a73(0x5c)],_0x2a6da0[_0x4a73(0x5c)])?(_0x471f85[_0x4a73(0x3d)](_0x2a6da0[_0x4a73(0x5d)],_0x28098e),![]):(console['error']('Error\x20verifying\x20credentials:',_0x147053),![]);}};export const getJWT=async()=>{try{const _0xe20c7e=await AsyncStorage['getItem'](JWT_TOKEN_KEY);return _0xe20c7e;}catch(_0x351d2f){return console[_0x4a73(0x3d)](_0x4a73(0x5e),_0x351d2f),null;}};export const hasJWT=async()=>{const _0x10aa2c={'jdGGc':_0x4a73(0x4b)};try{const _0x11b683=await AsyncStorage['getItem'](JWT_TOKEN_KEY);return!!_0x11b683;}catch(_0x687c20){return console[_0x4a73(0x3d)](_0x10aa2c[_0x4a73(0x5f)],_0x687c20),![];}};export const clearJWT=async()=>{const _0x401538={'PeCCE':function(_0x2342eb,_0x7a0493){return _0x2342eb!==_0x7a0493;},'gmtoJ':_0x4a73(0x60),'mXaWE':'❌\x20Failed\x20to\x20clear\x20JWT\x20token:'};try{return await AsyncStorage[_0x4a73(0x61)](JWT_TOKEN_KEY),console[_0x4a73(0x62)]('🗑️\x20JWT\x20token\x20cleared'),!![];}catch(_0x3ec2b2){return _0x401538['PeCCE'](_0x4a73(0x60),_0x401538[_0x4a73(0x63)])?_0x3c03d7['parse'](_0x10151b['password']):(console[_0x4a73(0x3d)](_0x401538['mXaWE'],_0x3ec2b2),![]);}};const base64Decode=_0x302399=>{const _0x1b9bb1={'NNwMV':function(_0xc23e76,_0x1e9a93){return _0xc23e76===_0x1e9a93;},'QBOzQ':function(_0x509b60,_0x4154e0){return _0x509b60===_0x4154e0;},'jBiTd':'default','CaAsy':function(_0x4409cf,_0x1df8be){return _0x4409cf%_0x1df8be;},'vXqZP':function(_0x507438,_0x54c671){return _0x507438===_0x54c671;},'bxNzh':_0x4a73(0x64),'RxdtL':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','mgHBa':function(_0x18dfdf,_0x1105b4){return _0x18dfdf<_0x1105b4;},'fyFnA':function(_0x44061e,_0x71ed86){return _0x44061e+_0x71ed86;},'cVIWQ':function(_0x346b1c,_0x4443f3){return _0x346b1c+_0x4443f3;},'VNonp':function(_0x3d79c6,_0x381254){return _0x3d79c6|_0x381254;},'OziXW':function(_0x2501eb,_0x21e5c0){return _0x2501eb<<_0x21e5c0;},'WKRAm':function(_0x574d72,_0x2adf2d){return _0x574d72&_0x2adf2d;},'BBwQe':function(_0x549cea,_0xfa339a){return _0x549cea>>_0xfa339a;},'BCTeC':function(_0x24add9,_0x5c7a89){return _0x24add9!==_0x5c7a89;},'jjCjT':function(_0x213e64,_0x5d4c6b){return _0x213e64>>_0x5d4c6b;}};while(_0x1b9bb1[_0x4a73(0x65)](_0x302399[_0x4a73(0x2b)],0x4)){if(_0x1b9bb1['vXqZP'](_0x1b9bb1['bxNzh'],_0x1b9bb1[_0x4a73(0x66)]))_0x302399+='=';else{const _0x40d813=(_0x1b9bb1[_0x4a73(0x67)](_0x56d7aa,null)||_0x1b9bb1['QBOzQ'](_0x22eae3,void 0x0)?void 0x0:_0x25c134[_0x4a73(0xb)])||_0x1b9bb1[_0x4a73(0x68)];return _0x5a41bb[_0x40d813]||null;}}const _0x5da3f8=_0x1b9bb1[_0x4a73(0x69)];let _0x3670a9='';for(let _0x16a400=0x0;_0x1b9bb1[_0x4a73(0x6a)](_0x16a400,_0x302399['length']);_0x16a400+=0x4){const _0x1edd94=_0x5da3f8['indexOf'](_0x302399['charAt'](_0x16a400)),_0xf28cec=_0x5da3f8[_0x4a73(0x2c)](_0x302399['charAt'](_0x1b9bb1['fyFnA'](_0x16a400,0x1))),_0x5a16c3=_0x5da3f8[_0x4a73(0x2c)](_0x302399[_0x4a73(0x2d)](_0x16a400+0x2)),_0x269292=_0x5da3f8[_0x4a73(0x2c)](_0x302399[_0x4a73(0x2d)](_0x1b9bb1[_0x4a73(0x6b)](_0x16a400,0x3))),_0x2e3532=_0x1b9bb1[_0x4a73(0x6c)](_0x1b9bb1[_0x4a73(0x6d)](_0x1edd94,0x12)|_0x1b9bb1[_0x4a73(0x6d)](_0xf28cec,0xc)|_0x1b9bb1['OziXW'](_0x5a16c3,0x6),_0x269292);_0x3670a9+=String[_0x4a73(0x31)](_0x1b9bb1[_0x4a73(0x6e)](_0x1b9bb1['BBwQe'](_0x2e3532,0x10),0xff));if(_0x1b9bb1['BCTeC'](_0x5a16c3,0x40))_0x3670a9+=String[_0x4a73(0x31)](_0x1b9bb1[_0x4a73(0x6f)](_0x2e3532,0x8)&0xff);if(_0x1b9bb1['BCTeC'](_0x269292,0x40))_0x3670a9+=String[_0x4a73(0x31)](_0x1b9bb1[_0x4a73(0x6e)](_0x2e3532,0xff));}return _0x3670a9;};export const getJWTPayload=async()=>{const _0x3dd8a={'tWUlU':function(_0x53411f){return _0x53411f();},'jDNfp':function(_0x437db5,_0x375375){return _0x437db5!==_0x375375;},'xIerQ':function(_0x48ba0a,_0x591e96){return _0x48ba0a(_0x591e96);}};try{const _0x2df544=await _0x3dd8a[_0x4a73(0x70)](getJWT);if(!_0x2df544)return null;const _0x1905e1=_0x2df544[_0x4a73(0x71)]('.');if(_0x3dd8a['jDNfp'](_0x1905e1[_0x4a73(0x2b)],0x3))return null;const _0x2f8a34=_0x3dd8a[_0x4a73(0x72)](base64Decode,_0x1905e1[0x1]),_0x5aa092=JSON[_0x4a73(0x45)](_0x2f8a34);return _0x5aa092;}catch(_0x428046){return console[_0x4a73(0x3d)]('❌\x20Failed\x20to\x20decode\x20JWT\x20payload:',_0x428046),null;}};export const isJWTExpired=async()=>{const _0x1f8b3e={'GcbdK':_0x4a73(0x33),'SzkPt':function(_0x55aa5e,_0x3959ef){return _0x55aa5e===_0x3959ef;},'QQsag':_0x4a73(0x73),'tDcQR':_0x4a73(0x74),'xkhlF':function(_0x22f252){return _0x22f252();},'iYBYH':function(_0x4506d7,_0x11d87d){return _0x4506d7/_0x11d87d;},'DlKnU':function(_0xca28d0,_0x3e0ffb){return _0xca28d0<_0x3e0ffb;}};try{if(_0x1f8b3e[_0x4a73(0x75)](_0x1f8b3e[_0x4a73(0x76)],_0x1f8b3e['tDcQR']))throw new _0x58ee18(_0x1f8b3e[_0x4a73(0x77)]);else{const _0x2d22f9=await _0x1f8b3e['xkhlF'](getJWTPayload);if(!_0x2d22f9||!_0x2d22f9[_0x4a73(0x78)])return!![];const _0x53ee26=Math[_0x4a73(0x79)](_0x1f8b3e[_0x4a73(0x7a)](Date[_0x4a73(0x37)](),0x3e8));return _0x1f8b3e['DlKnU'](_0x2d22f9[_0x4a73(0x78)],_0x53ee26);}}catch(_0x9b9bca){return console[_0x4a73(0x3d)]('❌\x20Failed\x20to\x20check\x20JWT\x20expiration:',_0x9b9bca),!![];}};
7
+ import{Platform}from'react-native';function _0x34f3(_0x144df9,_0x34f31b){_0x144df9=_0x144df9-0x0;const _0x54604b=_0x144d();let _0x20cf3f=_0x54604b[_0x144df9];return _0x20cf3f;}import{STORAGE_KEYS}from'../constants';import AsyncStorage from'@react-native-async-storage/async-storage';const JWT_TOKEN_KEY=_0x34f3(0x0),mockStorage={};let Keychain=null;function _0x144d(){const _0x1fd360=['onairos_jwt_token','warn','mock','Username\x20is\x20required\x20for\x20storing\x20credentials','function','LwYUl','kEiyu','vAMHF','default','hnQNP','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','qpqNX','getGenericPassword','UioiQ','service','POHyJ','CqsGF','YZyVG','ZvIqQ','jrWGZ','APMTw','bPsKR','ZLUpI','sKVWL','random','toString','dev_','cwBNQ','rRVwc','ICkFu','resetGenericPassword','AdEsQ','xgXcV','vImNu','HIVFa','JXNRa','rxhuP','oJJtF','❌\x20Failed\x20to\x20check\x20JWT\x20token:','xbvgc','GEgRg','web','GJDHi','Error\x20storing\x20credentials:','EfTqD','error','bOHIV','CMGXO','RPnSD','vQPVJ','createdAt','username','XlDST','QzGEQ','diHwI','XosWg','credentials','UyRQo','lxYOX','accessControl','ACCESS_CONTROL','BIOMETRY_ANY_OR_DEVICE_PASSCODE','accessible','sLUcM','KoIuJ','tPrcQ','xPpCU','GHQRv','MBGLP','Error\x20getting\x20credentials:','vGcEM','pTlyq','VPeCP','parse','password','YsZln','IIBdi','FnSLo','xEibJ','tCrYR','dUpIq','crpQm','TUzBP','Error\x20deleting\x20credentials:','FaSIv','substring','CDvRQ','sWRLw','jVNbm','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','fPWRA','getItem','PqPhd','❌\x20Failed\x20to\x20clear\x20JWT\x20token:','removeItem','log','🗑️\x20JWT\x20token\x20cleared','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','bmwJp','YoXEG','oNGTC','length','MOlKq','VBQiU','indexOf','charAt','BLfCh','NfKdb','ubnCq','XDXnX','WSUnb','WpRZY','fromCharCode','dmDIE','ZMpch','jYYWX','EnONE','Lamxa','TpOlN','QIcYk','azwht','PtqLZ','ieUiw','mUFXl','haCZE','PbNKd','UsMLf','SyjxC','ehcnL','❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','split','ThyNg','VqkDo','❌\x20Failed\x20to\x20check\x20JWT\x20expiration:','exp','floor','DvetS','now','gkkdb'];_0x144d=function(){return _0x1fd360;};return _0x144d();}try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0x145745){console[_0x34f3(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x34f3(0x2)},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x58c4c9={'kEiyu':_0x34f3(0x3),'sXAUK':function(_0x393121,_0x780cdf){return _0x393121!==_0x780cdf;},'kEbtN':function(_0x4b0fec,_0x316343){return _0x4b0fec===_0x316343;},'vAMHF':_0x34f3(0x4)};try{if(_0x58c4c9['sXAUK'](_0x34f3(0x5),_0x34f3(0x5)))throw new _0x297f84(_0x58c4c9[_0x34f3(0x6)]);else return Keychain&&_0x58c4c9['kEbtN'](typeof Keychain['getGenericPassword'],_0x58c4c9[_0x34f3(0x7)]);}catch(_0x30409b){return![];}},safeGetGenericPassword=async _0x57bb1b=>{const _0x551cf1={'UioiQ':function(_0x25b65b,_0x2b3d12){return _0x25b65b===_0x2b3d12;},'POHyJ':_0x34f3(0x8),'qpqNX':function(_0x1f69eb){return _0x1f69eb();},'CqsGF':function(_0x49917d,_0xe6b486){return _0x49917d!==_0xe6b486;},'YZyVG':_0x34f3(0x9),'qWIqT':_0x34f3(0xa),'SVtLO':function(_0x218c8c,_0x4ee4ad){return _0x218c8c===_0x4ee4ad;},'ZvIqQ':function(_0x36330c,_0x110bb9){return _0x36330c===_0x110bb9;}};try{if(_0x551cf1[_0x34f3(0xb)](isKeychainAvailable))return await Keychain[_0x34f3(0xc)](_0x57bb1b);else{const _0x22864f=(_0x57bb1b===null||_0x551cf1[_0x34f3(0xd)](_0x57bb1b,void 0x0)?void 0x0:_0x57bb1b[_0x34f3(0xe)])||_0x551cf1[_0x34f3(0xf)];return mockStorage[_0x22864f]||null;}}catch(_0x3e2a97){if(_0x551cf1[_0x34f3(0x10)](_0x551cf1[_0x34f3(0x11)],_0x551cf1['YZyVG'])){const _0x105906=(_0x3bb301===null||_0x551cf1[_0x34f3(0xd)](_0x4263e1,void 0x0)?void 0x0:_0x2dda40[_0x34f3(0xe)])||_0x551cf1[_0x34f3(0xf)];return _0x2f5057[_0x105906]={'username':_0x537010,'password':_0x3a7bb6},!![];}else{console['warn'](_0x551cf1['qWIqT'],_0x3e2a97);const _0xa1611b=(_0x551cf1['SVtLO'](_0x57bb1b,null)||_0x551cf1[_0x34f3(0x12)](_0x57bb1b,void 0x0)?void 0x0:_0x57bb1b['service'])||_0x551cf1['POHyJ'];return mockStorage[_0xa1611b]||null;}}},safeSetGenericPassword=async(_0x233f75,_0x36ad9e,_0x2d8ca4)=>{const _0xabebaf={'APMTw':function(_0x2449d5){return _0x2449d5();},'bPsKR':function(_0x2f75b9,_0x1c2ce6){return _0x2f75b9===_0x1c2ce6;},'sKVWL':_0x34f3(0x13),'tWVSi':_0x34f3(0xa)};try{if(_0xabebaf[_0x34f3(0x14)](isKeychainAvailable))return await Keychain['setGenericPassword'](_0x233f75,_0x36ad9e,_0x2d8ca4);else{if(_0xabebaf[_0x34f3(0x15)](_0x34f3(0x16),_0xabebaf[_0x34f3(0x17)])){const _0xfb7fbe=_0x43079d[_0x34f3(0x18)]()[_0x34f3(0x19)](0x24)['substring'](0x2,0xa);return _0x34f3(0x1a)+_0xfb7fbe;}else{const _0x2348fb=(_0x2d8ca4===null||_0x2d8ca4===void 0x0?void 0x0:_0x2d8ca4[_0x34f3(0xe)])||_0x34f3(0x8);return mockStorage[_0x2348fb]={'username':_0x233f75,'password':_0x36ad9e},!![];}}}catch(_0x5b9464){console['warn'](_0xabebaf['tWVSi'],_0x5b9464);const _0x2f4e4d=(_0x2d8ca4===null||_0x2d8ca4===void 0x0?void 0x0:_0x2d8ca4[_0x34f3(0xe)])||'default';return mockStorage[_0x2f4e4d]={'username':_0x233f75,'password':_0x36ad9e},!![];}},safeResetGenericPassword=async _0x5744c0=>{const _0x32bd79={'xgXcV':'❌\x20Failed\x20to\x20clear\x20JWT\x20token:','iCuCp':_0x34f3(0x1b),'AdEsQ':_0x34f3(0x1c),'vImNu':function(_0x39af15,_0x4ba83d){return _0x39af15===_0x4ba83d;},'GYhvF':function(_0x3e7321,_0x3c1fd2){return _0x3e7321===_0x3c1fd2;},'HIVFa':_0x34f3(0x8),'JXNRa':_0x34f3(0x1d),'rxhuP':_0x34f3(0xa),'oJJtF':function(_0x3f18ac,_0x3a69ed){return _0x3f18ac===_0x3a69ed;}};try{if(isKeychainAvailable())return await Keychain[_0x34f3(0x1e)](_0x5744c0);else{if(_0x32bd79['iCuCp']===_0x32bd79[_0x34f3(0x1f)])return _0x35e479['error'](_0x32bd79[_0x34f3(0x20)],_0x113950),![];else{const _0x29b22e=(_0x32bd79[_0x34f3(0x21)](_0x5744c0,null)||_0x32bd79['GYhvF'](_0x5744c0,void 0x0)?void 0x0:_0x5744c0['service'])||_0x32bd79[_0x34f3(0x22)];return delete mockStorage[_0x29b22e],!![];}}}catch(_0x1dd423){if(_0x34f3(0x1d)===_0x32bd79[_0x34f3(0x23)]){console[_0x34f3(0x1)](_0x32bd79[_0x34f3(0x24)],_0x1dd423);const _0x40ab03=(_0x32bd79[_0x34f3(0x21)](_0x5744c0,null)||_0x32bd79[_0x34f3(0x25)](_0x5744c0,void 0x0)?void 0x0:_0x5744c0[_0x34f3(0xe)])||_0x34f3(0x8);return delete mockStorage[_0x40ab03],!![];}else _0x57537d+='=';}};export const storeCredentials=async _0x3eef05=>{const _0x326753={'EfTqD':function(_0x5d2212){return _0x5d2212();},'bOHIV':'Error\x20verifying\x20credentials:','XosWg':_0x34f3(0x26),'sLUcM':_0x34f3(0x2),'xPpCU':function(_0x2c2e1a,_0x2d2f98){return _0x2c2e1a===_0x2d2f98;},'sNmfK':function(_0x4b48dd,_0x3963f9){return _0x4b48dd===_0x3963f9;},'cnEHq':_0x34f3(0x27),'CMGXO':function(_0x1723c1){return _0x1723c1();},'RPnSD':function(_0x2ab4ef,_0x40fd49){return _0x2ab4ef===_0x40fd49;},'vQPVJ':function(_0x4389d0,_0x5784b5){return _0x4389d0===_0x5784b5;},'XlDST':function(_0x5d55c6,_0x411851){return _0x5d55c6!==_0x411851;},'JRlbk':'OrFHJ','QzGEQ':_0x34f3(0x28),'diHwI':'Username\x20is\x20required\x20for\x20storing\x20credentials','UyRQo':function(_0x13c80c,_0x1e98c){return _0x13c80c!==_0x1e98c;},'yVXJV':_0x34f3(0x29),'lxYOX':'vknbL','KoIuJ':_0x34f3(0x2a),'tPrcQ':_0x34f3(0x2b)};try{if(_0x326753['sNmfK'](_0x326753['cnEHq'],'hRKjC'))try{if(!_0x326753[_0x34f3(0x2c)](_0x1cd3c0))return!![];return!![];}catch(_0x298d6d){return _0x1c725[_0x34f3(0x2d)](_0x326753[_0x34f3(0x2e)],_0x298d6d),![];}else{const _0x496738=await _0x326753[_0x34f3(0x2f)](getCredentials),_0x316488={..._0x496738,..._0x3eef05,'createdAt':(_0x326753[_0x34f3(0x30)](_0x496738,null)||_0x326753[_0x34f3(0x31)](_0x496738,void 0x0)?void 0x0:_0x496738[_0x34f3(0x32)])||Date['now']()},_0x4f6bce=_0x316488[_0x34f3(0x33)];if(!_0x4f6bce){if(_0x326753[_0x34f3(0x34)](_0x326753['JRlbk'],_0x326753[_0x34f3(0x35)]))throw new Error(_0x326753[_0x34f3(0x36)]);else return _0x3df210[_0x34f3(0x2d)](_0x326753[_0x34f3(0x37)],_0x5b241c),![];}const _0x44be08={'service':STORAGE_KEYS[_0x34f3(0x38)]};return _0x326753[_0x34f3(0x39)](Platform['OS'],_0x326753['yVXJV'])&&isKeychainAvailable()&&(_0x326753[_0x34f3(0x30)](_0x326753['lxYOX'],_0x326753[_0x34f3(0x3a)])?(_0x44be08[_0x34f3(0x3b)]=Keychain[_0x34f3(0x3c)][_0x34f3(0x3d)],_0x44be08[_0x34f3(0x3e)]=Keychain['ACCESSIBLE']['WHEN_UNLOCKED']):(_0x121fd0['warn']('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x326753[_0x34f3(0x3f)]},'ACCESSIBLE':{'WHEN_UNLOCKED':_0x326753[_0x34f3(0x3f)]},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]})),await safeSetGenericPassword(_0x4f6bce,JSON['stringify'](_0x316488),_0x44be08),!![];}}catch(_0x345462){return _0x326753['sNmfK'](_0x326753['KoIuJ'],_0x326753[_0x34f3(0x40)])?(console[_0x34f3(0x2d)](_0x326753[_0x34f3(0x41)],_0x345462),![]):Keychain&&_0x326753[_0x34f3(0x42)](typeof Keychain[_0x34f3(0xc)],_0x34f3(0x4));}};export const getCredentials=async()=>{const _0x4988e4={'iiqVB':_0x34f3(0xa),'YsZln':function(_0x44f85a,_0x318a18){return _0x44f85a===_0x318a18;},'IIBdi':function(_0x20bcb4,_0x331801){return _0x20bcb4===_0x331801;},'NkdOb':_0x34f3(0x8),'FnSLo':'function','vGcEM':function(_0x2b7483,_0x322576){return _0x2b7483!==_0x322576;},'PNILg':_0x34f3(0x43),'LDlBd':function(_0x37c4ab,_0x2948cd){return _0x37c4ab(_0x2948cd);},'Tpgvk':function(_0x1b7f04,_0xa6eec8){return _0x1b7f04===_0xa6eec8;},'VPeCP':_0x34f3(0x44),'IXsWW':_0x34f3(0x45)};try{if(_0x4988e4[_0x34f3(0x46)](_0x34f3(0x47),_0x4988e4['PNILg'])){const _0x30b772=await _0x4988e4['LDlBd'](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x34f3(0x38)]});if(_0x30b772){if(_0x4988e4['Tpgvk'](_0x34f3(0x44),_0x4988e4[_0x34f3(0x48)]))return JSON[_0x34f3(0x49)](_0x30b772[_0x34f3(0x4a)]);else{_0x399c10['warn'](_0x4988e4['iiqVB'],_0x4ed182);const _0x48ea19=(_0x4988e4[_0x34f3(0x4b)](_0x3cb63d,null)||_0x4988e4[_0x34f3(0x4c)](_0x23fa33,void 0x0)?void 0x0:_0x5025bd[_0x34f3(0xe)])||_0x4988e4['NkdOb'];return _0x5eb570[_0x48ea19]={'username':_0x3b32d2,'password':_0x3332ec},!![];}}return null;}else try{return Keychain&&_0x4988e4[_0x34f3(0x4c)](typeof Keychain['getGenericPassword'],_0x4988e4[_0x34f3(0x4d)]);}catch(_0xa59c8d){return![];}}catch(_0x300418){return console[_0x34f3(0x2d)](_0x4988e4['IXsWW'],_0x300418),null;}};export const hasCredentials=async()=>{const _0x499a4a={'xEibJ':'Error\x20checking\x20credentials:'};try{const _0x33983a=await safeGetGenericPassword({'service':STORAGE_KEYS[_0x34f3(0x38)]});return!!_0x33983a;}catch(_0x563546){return console[_0x34f3(0x2d)](_0x499a4a[_0x34f3(0x4e)],_0x563546),![];}};export const deleteCredentials=async()=>{const _0x1f1ce={'hlAuD':function(_0x1e1fc9,_0x47b731){return _0x1e1fc9(_0x47b731);},'crpQm':function(_0x542c66,_0x50a498){return _0x542c66===_0x50a498;},'TUzBP':_0x34f3(0x4f),'ltzfo':_0x34f3(0x50)};try{return await safeResetGenericPassword({'service':STORAGE_KEYS[_0x34f3(0x38)]}),!![];}catch(_0x117d1a){if(_0x1f1ce[_0x34f3(0x51)](_0x1f1ce[_0x34f3(0x52)],_0x1f1ce['ltzfo']))Keychain=_0x1f1ce['hlAuD'](_0x5a1460,0x0);else return console[_0x34f3(0x2d)](_0x34f3(0x53),_0x117d1a),![];}};export const updateCredentials=async _0x5b33fa=>{const _0x25bc62={'FaSIv':function(_0x5e32d8,_0x54e452){return _0x5e32d8(_0x54e452);}};return _0x25bc62[_0x34f3(0x54)](storeCredentials,_0x5b33fa);};export const generateDeviceUsername=()=>{const _0x41bcb3=Math['random']()['toString'](0x24)[_0x34f3(0x55)](0x2,0xa);return'dev_'+_0x41bcb3;};export const verifyCredentials=async _0x53fb31=>{const _0x481c93={'CDvRQ':function(_0x30380f){return _0x30380f();},'sWRLw':'Error\x20verifying\x20credentials:'};try{if(!_0x481c93[_0x34f3(0x56)](isKeychainAvailable))return!![];return!![];}catch(_0x8a2e0b){return console['error'](_0x481c93[_0x34f3(0x57)],_0x8a2e0b),![];}};export const getJWT=async()=>{const _0x89c6e={'fPWRA':_0x34f3(0x58),'PqPhd':_0x34f3(0x59)};try{if(_0x89c6e[_0x34f3(0x5a)]!==_0x89c6e[_0x34f3(0x5a)])return _0x187924['error'](_0x34f3(0x45),_0x3ff22b),null;else{const _0x135229=await AsyncStorage[_0x34f3(0x5b)](JWT_TOKEN_KEY);return _0x135229;}}catch(_0xc4b12){return console[_0x34f3(0x2d)](_0x89c6e[_0x34f3(0x5c)],_0xc4b12),null;}};export const hasJWT=async()=>{const _0x263e20={'VBjAh':_0x34f3(0x26)};try{const _0x427a12=await AsyncStorage[_0x34f3(0x5b)](JWT_TOKEN_KEY);return!!_0x427a12;}catch(_0x3238ce){return console[_0x34f3(0x2d)](_0x263e20['VBjAh'],_0x3238ce),![];}};export const clearJWT=async()=>{const _0x3d18c7={'luyVV':_0x34f3(0x5d)};try{return await AsyncStorage[_0x34f3(0x5e)](JWT_TOKEN_KEY),console[_0x34f3(0x5f)](_0x34f3(0x60)),!![];}catch(_0x234114){return console[_0x34f3(0x2d)](_0x3d18c7['luyVV'],_0x234114),![];}};const base64Decode=_0x1b0701=>{const _0x550735={'BLfCh':function(_0xe75019,_0x28b035){return _0xe75019+_0x28b035;},'NfKdb':function(_0x34c53c,_0x8e1ef8){return _0x34c53c|_0x8e1ef8;},'ubnCq':function(_0x1746f4,_0x5a5b21){return _0x1746f4|_0x5a5b21;},'XDXnX':function(_0x183d39,_0x155299){return _0x183d39<<_0x155299;},'WSUnb':function(_0x48245d,_0x19ebbb){return _0x48245d<<_0x19ebbb;},'WpRZY':function(_0x1aa00f,_0x142190){return _0x1aa00f<<_0x142190;},'ieUiw':function(_0x3f7580,_0x49bd49){return _0x3f7580&_0x49bd49;},'dBxqz':function(_0x4cc7f0,_0x1f60f0){return _0x4cc7f0!==_0x1f60f0;},'dmDIE':function(_0x45a0d4,_0x54abec){return _0x45a0d4>>_0x54abec;},'ZMpch':function(_0x42a01b,_0x410031){return _0x42a01b&_0x410031;},'Lamxa':function(_0x336593,_0x3bee46){return _0x336593%_0x3bee46;},'TpOlN':_0x34f3(0x61),'QIcYk':function(_0x2a83be,_0x470fdf){return _0x2a83be<_0x470fdf;},'azwht':function(_0x1ac728,_0x42f8c2){return _0x1ac728+_0x42f8c2;},'PtqLZ':function(_0x3d1451,_0x1d9bdd){return _0x3d1451|_0x1d9bdd;},'mUFXl':function(_0x25d747,_0x5359b0){return _0x25d747>>_0x5359b0;},'haCZE':function(_0x244d32,_0x352ba4){return _0x244d32!==_0x352ba4;},'PbNKd':function(_0x48a6ae,_0x574baa){return _0x48a6ae>>_0x574baa;},'MOlKq':function(_0x29d531,_0x3faf75){return _0x29d531===_0x3faf75;},'VBQiU':_0x34f3(0x62),'AFxBr':function(_0x51e868,_0x189064){return _0x51e868<_0x189064;},'jYYWX':_0x34f3(0x63),'EnONE':_0x34f3(0x64),'UsMLf':function(_0x25d9f8,_0x52d43b){return _0x25d9f8+_0x52d43b;},'jwrpN':function(_0x20f0bf,_0x4abd86){return _0x20f0bf|_0x4abd86;},'SyjxC':function(_0x5b5dc6,_0x740d8c){return _0x5b5dc6>>_0x740d8c;},'YtsDh':function(_0x1c3197,_0x2d3ce7){return _0x1c3197&_0x2d3ce7;},'ehcnL':function(_0x30a929,_0x537b8){return _0x30a929&_0x537b8;}};while(_0x1b0701[_0x34f3(0x65)]%0x4){if(_0x550735[_0x34f3(0x66)](_0x550735['VBQiU'],_0x550735[_0x34f3(0x67)]))_0x1b0701+='=';else{const _0x23581e=_0x116841[_0x34f3(0x68)](_0x2fe565[_0x34f3(0x69)](_0x39e49d)),_0x5e32fc=_0x957332[_0x34f3(0x68)](_0x3b7973['charAt'](_0x304e80+0x1)),_0x2e9a5a=_0x4ddeca[_0x34f3(0x68)](_0x3b8f4c[_0x34f3(0x69)](_0x50276c+0x2)),_0x3fc714=_0x194c4c[_0x34f3(0x68)](_0x5d4205[_0x34f3(0x69)](_0x550735[_0x34f3(0x6a)](_0x599ad4,0x3))),_0xbb1783=_0x550735[_0x34f3(0x6b)](_0x550735['ubnCq'](_0x550735[_0x34f3(0x6c)](_0x550735[_0x34f3(0x6d)](_0x23581e,0x12),_0x550735[_0x34f3(0x6e)](_0x5e32fc,0xc)),_0x550735[_0x34f3(0x6f)](_0x2e9a5a,0x6)),_0x3fc714);_0x58551c+=_0x273d1a['fromCharCode'](_0x550735['ieUiw'](_0xbb1783>>0x10,0xff));if(_0x550735['dBxqz'](_0x2e9a5a,0x40))_0x1477c0+=_0x5ed205[_0x34f3(0x70)](_0x550735[_0x34f3(0x71)](_0xbb1783,0x8)&0xff);if(_0x3fc714!==0x40)_0x27fd6a+=_0x5ecad5[_0x34f3(0x70)](_0x550735[_0x34f3(0x72)](_0xbb1783,0xff));}}const _0x514142=_0x550735['TpOlN'];let _0x174fc1='';for(let _0x7578a4=0x0;_0x550735['AFxBr'](_0x7578a4,_0x1b0701['length']);_0x7578a4+=0x4){if(_0x550735[_0x34f3(0x73)]===_0x550735[_0x34f3(0x74)]){while(_0x550735[_0x34f3(0x75)](_0x3166cd[_0x34f3(0x65)],0x4)){_0x3f391c+='=';}const _0x5cc54e=_0x550735[_0x34f3(0x76)];let _0x3e4f73='';for(let _0x235d09=0x0;_0x550735[_0x34f3(0x77)](_0x235d09,_0x2f84b3[_0x34f3(0x65)]);_0x235d09+=0x4){const _0x8e3c1e=_0x5cc54e['indexOf'](_0x2aef58['charAt'](_0x235d09)),_0x5c4201=_0x5cc54e[_0x34f3(0x68)](_0x21cd66['charAt'](_0x550735['BLfCh'](_0x235d09,0x1))),_0x3dd3dc=_0x5cc54e[_0x34f3(0x68)](_0x5ec6f7[_0x34f3(0x69)](_0x550735['BLfCh'](_0x235d09,0x2))),_0x5dc52e=_0x5cc54e['indexOf'](_0x167d10[_0x34f3(0x69)](_0x550735[_0x34f3(0x78)](_0x235d09,0x3))),_0x2ce8af=_0x550735[_0x34f3(0x79)](_0x8e3c1e<<0x12|_0x5c4201<<0xc,_0x550735[_0x34f3(0x6f)](_0x3dd3dc,0x6))|_0x5dc52e;_0x3e4f73+=_0x4c6f77['fromCharCode'](_0x550735[_0x34f3(0x7a)](_0x550735[_0x34f3(0x7b)](_0x2ce8af,0x10),0xff));if(_0x550735[_0x34f3(0x7c)](_0x3dd3dc,0x40))_0x3e4f73+=_0x1d933f['fromCharCode'](_0x550735[_0x34f3(0x7a)](_0x550735[_0x34f3(0x7d)](_0x2ce8af,0x8),0xff));if(_0x5dc52e!==0x40)_0x3e4f73+=_0x237033[_0x34f3(0x70)](_0x550735['ZMpch'](_0x2ce8af,0xff));}return _0x3e4f73;}else{const _0x6cce29=_0x514142[_0x34f3(0x68)](_0x1b0701[_0x34f3(0x69)](_0x7578a4)),_0xe4b40c=_0x514142[_0x34f3(0x68)](_0x1b0701[_0x34f3(0x69)](_0x7578a4+0x1)),_0x1d4677=_0x514142['indexOf'](_0x1b0701[_0x34f3(0x69)](_0x550735[_0x34f3(0x7e)](_0x7578a4,0x2))),_0x29fc5e=_0x514142[_0x34f3(0x68)](_0x1b0701[_0x34f3(0x69)](_0x550735[_0x34f3(0x6a)](_0x7578a4,0x3))),_0x516cbe=_0x550735['jwrpN'](_0x6cce29<<0x12,_0x550735[_0x34f3(0x6f)](_0xe4b40c,0xc))|_0x1d4677<<0x6|_0x29fc5e;_0x174fc1+=String[_0x34f3(0x70)](_0x550735[_0x34f3(0x7f)](_0x516cbe,0x10)&0xff);if(_0x1d4677!==0x40)_0x174fc1+=String['fromCharCode'](_0x550735['YtsDh'](_0x550735[_0x34f3(0x7b)](_0x516cbe,0x8),0xff));if(_0x29fc5e!==0x40)_0x174fc1+=String[_0x34f3(0x70)](_0x550735[_0x34f3(0x80)](_0x516cbe,0xff));}}return _0x174fc1;};export const getJWTPayload=async()=>{const _0x506d35={'ThyNg':function(_0x4a9285,_0x81e14){return _0x4a9285(_0x81e14);},'VqkDo':_0x34f3(0x81)};try{const _0x48f81e=await getJWT();if(!_0x48f81e)return null;const _0x44b2f9=_0x48f81e[_0x34f3(0x82)]('.');if(_0x44b2f9['length']!==0x3)return null;const _0x4957f2=_0x506d35[_0x34f3(0x83)](base64Decode,_0x44b2f9[0x1]),_0x4c33f7=JSON[_0x34f3(0x49)](_0x4957f2);return _0x4c33f7;}catch(_0x731825){return console['error'](_0x506d35[_0x34f3(0x84)],_0x731825),null;}};export const isJWTExpired=async()=>{const _0x53390f={'DvetS':function(_0x15f19d,_0x89888a){return _0x15f19d/_0x89888a;},'gkkdb':_0x34f3(0x85)};try{const _0x194615=await getJWTPayload();if(!_0x194615||!_0x194615[_0x34f3(0x86)])return!![];const _0x749b50=Math[_0x34f3(0x87)](_0x53390f[_0x34f3(0x88)](Date[_0x34f3(0x89)](),0x3e8));return _0x194615[_0x34f3(0x86)]<_0x749b50;}catch(_0x5ee728){return console['error'](_0x53390f[_0x34f3(0x8a)],_0x5ee728),!![];}};
@@ -1 +1 @@
1
- function _0x5453(_0x2d8068,_0x545384){_0x2d8068=_0x2d8068-0x0;const _0x50f6fa=_0x2d80();let _0x453a5d=_0x50f6fa[_0x2d8068];return _0x453a5d;}export const CHATGPT_CONSENT_POPUP_SCRIPT='\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>🤖</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#1a1a1a;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Export\x20Conversations?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#666;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20export\x20your\x20top\x2010\x20ChatGPT\x20conversations\x20for\x20analysis?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20#667eea\x200%,\x20#764ba2\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).innerHTML\x20=\x20\x27⏳\x20Starting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a';export const CHATGPT_EXPORT_SCRIPT=_0x5453(0x0);function _0x2d80(){const _0x139af7=['\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20VERSION\x20CHECK:\x20This\x20confirms\x20new\x20code\x20is\x20running\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔄\x20[CHATGPT]\x20Script\x20version:\x20SDK_V1\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27DEBUG_LOG\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20version:\x20SDK_V1\x20loaded\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Use\x20chatgpt.com\x20as\x20iOS\x20does\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚀\x20[CHATGPT]\x20Starting\x20extraction\x20(iOS-style\x20with\x20access\x20token)...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x20(matches\x20iOS\x20fetchAccessToken)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x202,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20access\x20token\x20from\x20/api/auth/session...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Session\x20response\x20status:\x27,\x20sessionResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Got\x20accessToken:\x27,\x20accessToken\x20?\x20\x27YES\x20(len=\x27\x20+\x20accessToken.length\x20+\x20\x27)\x27\x20:\x20\x27NO\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Build\x20headers\x20matching\x20iOS\x20exactly\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27User-Agent\x27:\x20\x27Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2017_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Version/17.0\x20Mobile/15E148\x20Safari/604.1\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Start\x20BOTH\x20conversations\x20AND\x20memories\x20fetches\x20IN\x20PARALLEL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_list\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20conversations\x20and\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Starting\x20PARALLEL\x20fetch\x20of\x20conversations\x20AND\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20memories\x20fetch\x20IMMEDIATELY\x20using\x20XMLHttpRequest\x20(more\x20compatible\x20than\x20fetch)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20memoriesPromise\x20=\x20new\x20Promise((resolve)\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20xhr\x20=\x20new\x20XMLHttpRequest();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.open(\x27GET\x27,\x20baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20true);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.withCredentials\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Accept\x27,\x20\x27application/json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Authorization\x27,\x20\x27Bearer\x20\x27\x20+\x20accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onload\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20status:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(xhr.status\x20>=\x20200\x20&&\x20xhr.status\x20<\x20300)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20JSON.parse(xhr.responseText);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allKeys\x20=\x20Object.keys(data\x20||\x20{});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20response\x20keys:\x27,\x20allKeys);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(data);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(parseErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20parse\x20error:\x27,\x20parseErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20API\x20returned:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onerror\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20error\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.send();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20request\x20sent\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(xhrErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20exception:\x27,\x20xhrErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20conversations\x20fetch\x20(in\x20parallel\x20with\x20memories)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20conversations\x20with\x20auth:\x27,\x20!!accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversations?limit=10\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Conversations\x20response:\x27,\x20listResponse.status);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!listResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20listResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20conversations\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listData\x20=\x20await\x20listResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conversations\x20=\x20listData.items\x20||\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Found\x27,\x20conversations.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(conversations.length\x20===\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Still\x20wait\x20for\x20memories\x20even\x20if\x20no\x20conversations\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20No\x20conversations,\x20waiting\x20for\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesItemsCount\x20=\x20noConvMemoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesEntriesCount\x20=\x20noConvMemoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20[],\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories:\x20noConvMemoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20noConvMemoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20noConvMemoriesEntriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Connected!\x20No\x20conversations\x20found.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x203:\x20Fetch\x20each\x20conversation\x20(matches\x20iOS\x20fetchAllConversationDetails)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x200/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20userMessages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(let\x20i\x20=\x200;\x20i\x20<\x20conversations.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conv\x20=\x20conversations[i];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20progressPercent\x20=\x2010\x20+\x20((i\x20/\x20conversations.length)\x20*\x2080);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27processing_conversation\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20current:\x20i\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total:\x20conversations.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x20Math.round(progressPercent),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x20\x27\x20+\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20iOS\x20uses\x200.3s\x20delay\x20-\x20we\x20use\x200.3s\x20too\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(i\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20new\x20Promise(resolve\x20=>\x20setTimeout(resolve,\x20300));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20detailResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversation/\x27\x20+\x20conv.id,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(detailResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20convData\x20=\x20await\x20detailResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20messages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Extract\x20user\x20messages\x20from\x20mapping\x20(same\x20as\x20iOS)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20nodeId\x20in\x20convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20node\x20=\x20convData.mapping[nodeId];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.message\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author.role\x20===\x20\x27user\x27\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20part\x20of\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(typeof\x20part\x20===\x20\x27string\x27\x20&&\x20part.trim())\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20messages.push(part.trim());\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(messages.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20userMessages.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversation_id:\x20conv.id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title:\x20conv.title\x20||\x20\x27Untitled\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_messages:\x20messages\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20✅\x20Conversation\x27,\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27:\x27,\x20conv.title,\x20\x27(\x27\x20+\x20messages.length\x20+\x20\x27\x20msgs)\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Conversation\x27,\x20conv.id,\x20\x27returned\x27,\x20detailResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(convError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Failed\x20conversation\x27,\x20conv.id\x20+\x20\x27:\x27,\x20convError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMessages\x20=\x20userMessages.reduce((sum,\x20c)\x20=>\x20sum\x20+\x20c.user_messages.length,\x200);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[CHATGPT]\x20Extraction\x20complete:\x27,\x20totalMessages,\x20\x27messages\x20from\x27,\x20userMessages.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x204:\x20Wait\x20for\x20memories\x20(started\x20in\x20parallel\x20at\x20STEP\x202)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Waiting\x20for\x20parallel\x20memories\x20fetch\x20to\x20complete...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20possible\x20field\x20names\x20(API\x20structure\x20varies)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesItemsCount\x20=\x20memoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesEntriesCount\x20=\x20memoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesArrayCount\x20=\x20memoriesData?.memories?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMemoriesCount\x20=\x20memoriesItemsCount\x20+\x20memoriesEntriesCount\x20+\x20memoriesArrayCount;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Final\x20memories\x20result:\x27,\x20memoriesItemsCount,\x20\x27items,\x27,\x20memoriesEntriesCount,\x20\x27entries,\x27,\x20memoriesArrayCount,\x20\x27memories\x20array\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20memories\x20to\x20React\x20Native\x20for\x20storage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(memoriesData\x20&&\x20totalMemoriesCount\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Sending\x20memories\x20to\x20React\x20Native\x20for\x20storage...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_DATA\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalMemoriesCount:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20conversation\x20data\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20userMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x20userMessages.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x20totalMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20memoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20memoriesEntriesCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_array_count:\x20memoriesArrayCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_memories_count:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Export\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20ChatGPT\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Starting\x20memories\x20extraction...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Fetch\x20memories\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_memories\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20ChatGPT\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!memoriesResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20memoriesResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20memories\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20itemsCount\x20=\x20memoriesData.items\x20?\x20memoriesData.items.length\x20:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entriesCount\x20=\x20memoriesData.memory_entries\x20?\x20memoriesData.memory_entries.length\x20:\x200;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20itemsCount:\x20itemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20entriesCount:\x20entriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20fetch\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Memories\x20fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a'];_0x2d80=function(){return _0x139af7;};return _0x2d80();}export const CHATGPT_SUCCESS_SCRIPT=_0x5453(0x1);export const CHATGPT_ERROR_SCRIPT='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20ChatGPT\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a';export const CHATGPT_FETCH_MEMORIES_SCRIPT=_0x5453(0x2);
1
+ function _0xded6(){const _0x32ebe1=['\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20VERSION\x20CHECK:\x20This\x20confirms\x20new\x20code\x20is\x20running\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔄\x20[CHATGPT]\x20Script\x20version:\x20SDK_V1\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27DEBUG_LOG\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20version:\x20SDK_V1\x20loaded\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Use\x20chatgpt.com\x20as\x20iOS\x20does\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚀\x20[CHATGPT]\x20Starting\x20extraction\x20(iOS-style\x20with\x20access\x20token)...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x20(matches\x20iOS\x20fetchAccessToken)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x202,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20access\x20token\x20from\x20/api/auth/session...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Session\x20response\x20status:\x27,\x20sessionResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Got\x20accessToken:\x27,\x20accessToken\x20?\x20\x27YES\x20(len=\x27\x20+\x20accessToken.length\x20+\x20\x27)\x27\x20:\x20\x27NO\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Build\x20headers\x20matching\x20iOS\x20exactly\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27User-Agent\x27:\x20\x27Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2017_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Version/17.0\x20Mobile/15E148\x20Safari/604.1\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Start\x20BOTH\x20conversations\x20AND\x20memories\x20fetches\x20IN\x20PARALLEL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_list\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20conversations\x20and\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Starting\x20PARALLEL\x20fetch\x20of\x20conversations\x20AND\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20memories\x20fetch\x20IMMEDIATELY\x20using\x20XMLHttpRequest\x20(more\x20compatible\x20than\x20fetch)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20memoriesPromise\x20=\x20new\x20Promise((resolve)\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20xhr\x20=\x20new\x20XMLHttpRequest();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.open(\x27GET\x27,\x20baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20true);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.withCredentials\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Accept\x27,\x20\x27application/json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Authorization\x27,\x20\x27Bearer\x20\x27\x20+\x20accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onload\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20status:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(xhr.status\x20>=\x20200\x20&&\x20xhr.status\x20<\x20300)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20JSON.parse(xhr.responseText);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allKeys\x20=\x20Object.keys(data\x20||\x20{});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20response\x20keys:\x27,\x20allKeys);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(data);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(parseErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20parse\x20error:\x27,\x20parseErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20API\x20returned:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onerror\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20error\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.send();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20request\x20sent\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(xhrErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20exception:\x27,\x20xhrErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20conversations\x20fetch\x20(in\x20parallel\x20with\x20memories)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20conversations\x20with\x20auth:\x27,\x20!!accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversations?limit=10\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Conversations\x20response:\x27,\x20listResponse.status);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!listResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20listResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20conversations\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listData\x20=\x20await\x20listResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conversations\x20=\x20listData.items\x20||\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Found\x27,\x20conversations.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(conversations.length\x20===\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Still\x20wait\x20for\x20memories\x20even\x20if\x20no\x20conversations\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20No\x20conversations,\x20waiting\x20for\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesItemsCount\x20=\x20noConvMemoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesEntriesCount\x20=\x20noConvMemoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20[],\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories:\x20noConvMemoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20noConvMemoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20noConvMemoriesEntriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Connected!\x20No\x20conversations\x20found.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x203:\x20Fetch\x20each\x20conversation\x20(matches\x20iOS\x20fetchAllConversationDetails)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x200/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20userMessages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(let\x20i\x20=\x200;\x20i\x20<\x20conversations.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conv\x20=\x20conversations[i];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20progressPercent\x20=\x2010\x20+\x20((i\x20/\x20conversations.length)\x20*\x2080);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27processing_conversation\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20current:\x20i\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total:\x20conversations.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x20Math.round(progressPercent),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x20\x27\x20+\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20iOS\x20uses\x200.3s\x20delay\x20-\x20we\x20use\x200.3s\x20too\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(i\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20new\x20Promise(resolve\x20=>\x20setTimeout(resolve,\x20300));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20detailResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversation/\x27\x20+\x20conv.id,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(detailResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20convData\x20=\x20await\x20detailResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20messages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Extract\x20user\x20messages\x20from\x20mapping\x20(same\x20as\x20iOS)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20nodeId\x20in\x20convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20node\x20=\x20convData.mapping[nodeId];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.message\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author.role\x20===\x20\x27user\x27\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20part\x20of\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(typeof\x20part\x20===\x20\x27string\x27\x20&&\x20part.trim())\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20messages.push(part.trim());\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(messages.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20userMessages.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversation_id:\x20conv.id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title:\x20conv.title\x20||\x20\x27Untitled\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_messages:\x20messages\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20✅\x20Conversation\x27,\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27:\x27,\x20conv.title,\x20\x27(\x27\x20+\x20messages.length\x20+\x20\x27\x20msgs)\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Conversation\x27,\x20conv.id,\x20\x27returned\x27,\x20detailResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(convError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Failed\x20conversation\x27,\x20conv.id\x20+\x20\x27:\x27,\x20convError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMessages\x20=\x20userMessages.reduce((sum,\x20c)\x20=>\x20sum\x20+\x20c.user_messages.length,\x200);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[CHATGPT]\x20Extraction\x20complete:\x27,\x20totalMessages,\x20\x27messages\x20from\x27,\x20userMessages.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x204:\x20Wait\x20for\x20memories\x20(started\x20in\x20parallel\x20at\x20STEP\x202)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Waiting\x20for\x20parallel\x20memories\x20fetch\x20to\x20complete...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20possible\x20field\x20names\x20(API\x20structure\x20varies)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesItemsCount\x20=\x20memoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesEntriesCount\x20=\x20memoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesArrayCount\x20=\x20memoriesData?.memories?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMemoriesCount\x20=\x20memoriesItemsCount\x20+\x20memoriesEntriesCount\x20+\x20memoriesArrayCount;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Final\x20memories\x20result:\x27,\x20memoriesItemsCount,\x20\x27items,\x27,\x20memoriesEntriesCount,\x20\x27entries,\x27,\x20memoriesArrayCount,\x20\x27memories\x20array\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20memories\x20to\x20React\x20Native\x20for\x20storage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(memoriesData\x20&&\x20totalMemoriesCount\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Sending\x20memories\x20to\x20React\x20Native\x20for\x20storage...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_DATA\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalMemoriesCount:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20conversation\x20data\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20userMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x20userMessages.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x20totalMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20memoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20memoriesEntriesCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_array_count:\x20memoriesArrayCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_memories_count:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Export\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20ChatGPT\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20ChatGPT\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a'];_0xded6=function(){return _0x32ebe1;};return _0xded6();}function _0x5bdb(_0xded68e,_0x5bdb13){_0xded68e=_0xded68e-0x0;const _0x3edf70=_0xded6();let _0xf09aca=_0x3edf70[_0xded68e];return _0xf09aca;}export const CHATGPT_CONSENT_POPUP_SCRIPT='\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>🤖</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#1a1a1a;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Export\x20Conversations?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#666;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20export\x20your\x20top\x2010\x20ChatGPT\x20conversations\x20for\x20analysis?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20#667eea\x200%,\x20#764ba2\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).innerHTML\x20=\x20\x27⏳\x20Starting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CHATGPT_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a';export const CHATGPT_EXPORT_SCRIPT=_0x5bdb(0x0);export const CHATGPT_SUCCESS_SCRIPT=_0x5bdb(0x1);export const CHATGPT_ERROR_SCRIPT=_0x5bdb(0x2);export const CHATGPT_FETCH_MEMORIES_SCRIPT='\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Starting\x20memories\x20extraction...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Fetch\x20memories\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_memories\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20ChatGPT\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!memoriesResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20memoriesResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20memories\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20itemsCount\x20=\x20memoriesData.items\x20?\x20memoriesData.items.length\x20:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entriesCount\x20=\x20memoriesData.memory_entries\x20?\x20memoriesData.memory_entries.length\x20:\x200;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20itemsCount:\x20itemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20entriesCount:\x20entriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20fetch\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Memories\x20fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a';