@onairos/react-native 3.5.4 → 3.6.0

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 +11 -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 +8 -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';function _0xe7fd(){const _0x28deb2=['0|3|2|1|4','isbwV','details','type','name','ApiError','fetch','tgJHS','No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','store-pin/mobile','KHooQ','network_error','auth_error','gVdLs','User\x20API\x20Request','[REDACTED]','User\x20API\x20Response','validation_error','unknown_error','API\x20request\x20failed','AbortError','Request\x20timed\x20out','timeout_error','User\x20API\x20Error','Unknown\x20error','FGBxR','PlhBp','KFriW','ztxix','WFnaW','No\x20network\x20connection\x20available','zcVPE','EPEFc','IbNqC','message','MRUNU','NegIJ','nTYvR','json','status','KTMlc','jTOms','viFFW','lRRvm','error','GIkak','NRQzn','DCOlu','Fldaf','RwmrW','IxCBF','user/platforms','debug','tKfwf','hEHRb','BrcPT','user/profile','llNLD','foPGn','EhXJy','OCjPA','YtSBX','CXCjj','tNYjt','Developer\x20API\x20Request','YaSjD','GwAnS','qOPqw','Developer\x20API\x20Response','DNeoj','An\x20unexpected\x20error\x20occurred','tCTeS','vtDPu','wrMjt','bltzZ','kpezr','VFPvQ','NFWzq','cVJpx','BAZLf','Hdhxp','vVkuh','eMgSu','stringify','enhTL','XwgXh','WlAFR','xxrDK','jWNIB','rADyK','frChP','vgjcQ','LeLqv','pnOHn','code','mAMyI','FlCmm','DXVlz','vSZWl','DvySH','Developer\x20API\x20Error','dqRZR','auth/validate','jVcoZ','LGlsu','data','qhuNE','BVtSl','auth/register','pSXZs','username','platforms','auth/login','TqOvh','userPin','lgnXu','BXuda','platforms/','/data','ICJDW','uWhhc','uGqcr','zaRgU','qnvHp','odktG','lbOEb','lMUJw','FyniF','GQgPl'];_0xe7fd=function(){return _0x28deb2;};return _0xe7fd();}import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0xacbe58,_0x3220ab,_0xbf331a,_0xa3189f){const _0x42912c={'isbwV':_0x3d6a(0x0)},_0x413c00=_0x42912c[_0x3d6a(0x1)]['split']('|');let _0x4f7d4c=0x0;while(!![]){switch(_0x413c00[_0x4f7d4c++]){case'0':super(_0xacbe58);continue;case'1':this[_0x3d6a(0x2)]=_0xa3189f;continue;case'2':this['code']=_0xbf331a;continue;case'3':this[_0x3d6a(0x3)]=_0x3220ab;continue;case'4':this[_0x3d6a(0x4)]=_0x3d6a(0x5);continue;}break;}}}const checkNetworkConnection=async()=>{const _0x5ba963={'tgJHS':function(_0x3f7113,_0x495945){return _0x3f7113===_0x495945;}},_0x6d60f0=await NetInfo[_0x3d6a(0x6)]();return _0x5ba963[_0x3d6a(0x7)](_0x6d60f0['isConnected'],!![]);},makeUserApiRequest=async(_0xe2a7b9,_0x31917a,_0x312769={})=>{const _0x3cda87={'FGBxR':function(_0x5f0f17){return _0x5f0f17();},'ztxix':_0x3d6a(0x8),'WFnaW':_0x3d6a(0x9),'IxCBF':function(_0x480487,_0x5cfafb,_0x303ee0,_0x359f2f){return _0x480487(_0x5cfafb,_0x303ee0,_0x359f2f);},'BrcPT':function(_0x352f0c,_0x45525a,_0x4de318,_0x1df936){return _0x352f0c(_0x45525a,_0x4de318,_0x1df936);},'PlhBp':function(_0x998d6c,_0x34e21f){return _0x998d6c!==_0x34e21f;},'KFriW':_0x3d6a(0xa),'kBwOQ':_0x3d6a(0xb),'zcVPE':function(_0x17e034){return _0x17e034();},'EPEFc':'User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','KTMlc':_0x3d6a(0xc),'IbNqC':_0x3d6a(0xd),'nTYvR':function(_0x2e0ab3,_0x3d0dba,_0x397569){return _0x2e0ab3(_0x3d0dba,_0x397569);},'MRUNU':_0x3d6a(0xe),'NegIJ':_0x3d6a(0xf),'YtSBX':function(_0x43391e,_0x560f8c,_0x117489){return _0x43391e(_0x560f8c,_0x117489);},'iLmVk':_0x3d6a(0x10),'nXFxi':function(_0x395ce9,_0x5ecae6){return _0x395ce9===_0x5ecae6;},'jTOms':_0x3d6a(0x11),'viFFW':function(_0x513834,_0x46064f){return _0x513834>=_0x46064f;},'lRRvm':'server_error','tNYjt':_0x3d6a(0x12),'GIkak':function(_0x4e31ad,_0x16b1f1){return _0x4e31ad===_0x16b1f1;},'jCMQv':_0x3d6a(0x13),'NRQzn':function(_0x370a0f,_0x37688e){return _0x370a0f===_0x37688e;},'DCOlu':function(_0x29115e,_0x44c22f){return _0x29115e===_0x44c22f;},'Fldaf':function(_0x3363bb,_0xb84880){return _0x3363bb!==_0xb84880;},'RwmrW':'Wyhra','WyBqZ':function(_0x370c8a,_0xbc162c){return _0x370c8a instanceof _0xbc162c;},'tKfwf':function(_0x3460fe,_0x599e4a){return _0x3460fe===_0x599e4a;},'llNLD':function(_0xab0402,_0x310e19){return _0xab0402===_0x310e19;},'foPGn':_0x3d6a(0x14),'EhXJy':_0x3d6a(0x15),'OCjPA':_0x3d6a(0x16),'vFYKJ':_0x3d6a(0x17),'CXCjj':_0x3d6a(0x18)},{data:_0x1e8ac6,headers:headers={},debug:debug=![]}=_0x312769;try{const _0x5c9b8a=await _0x3cda87[_0x3d6a(0x19)](checkNetworkConnection);if(!_0x5c9b8a){if(_0x3cda87[_0x3d6a(0x1a)](_0x3cda87[_0x3d6a(0x1b)],_0x3cda87[_0x3d6a(0x1b)])){const {debug:debug=![],username:_0x52226e}=_0x17a942,_0x516598=_0x52226e||_0x3cda87[_0x3d6a(0x19)](_0x1d21e0);if(!_0x516598)throw new _0x450939(_0x3cda87[_0x3d6a(0x1c)],_0x3d6a(0xc));return _0x26d562(_0x3cda87[_0x3d6a(0x1d)],'POST',{'data':{'username':_0x516598,'pin':_0x2bad2d},'debug':debug});}else throw new ApiError(_0x3d6a(0x1e),_0x3cda87['kBwOQ']);}if(!_0x3cda87[_0x3d6a(0x1f)](isUserAuthenticated))throw new ApiError(_0x3cda87[_0x3d6a(0x20)],_0x3cda87['KTMlc']);if(debug){if(_0x3cda87['PlhBp'](_0x3cda87[_0x3d6a(0x21)],'gVdLs'))return{'isValid':![],'message':_0x27b3b1[_0x3d6a(0x22)]};else _0x3cda87['nTYvR'](logDebug,_0x3cda87[_0x3d6a(0x23)],{'endpoint':_0xe2a7b9,'method':_0x31917a,'headers':{...headers,'Authorization':_0x3cda87[_0x3d6a(0x24)]},'data':_0x1e8ac6||null});}const _0x14cb4d=await _0x3cda87[_0x3d6a(0x25)](makeUserRequest,_0xe2a7b9,{'method':_0x31917a,'headers':headers,..._0x1e8ac6?{'body':JSON['stringify'](_0x1e8ac6)}:{}}),_0x5ed5ef=await _0x14cb4d[_0x3d6a(0x26)]();debug&&_0x3cda87['YtSBX'](logDebug,_0x3cda87['iLmVk'],{'status':_0x14cb4d['status'],'data':_0x5ed5ef});if(!_0x14cb4d['ok']){var _0x30d37d,_0x235f63,_0x1d91bb;const _0x36ee0a=_0x14cb4d['status']===0x191||_0x3cda87['nXFxi'](_0x14cb4d[_0x3d6a(0x27)],0x193)?_0x3cda87[_0x3d6a(0x28)]:_0x14cb4d[_0x3d6a(0x27)]===0x190?_0x3cda87[_0x3d6a(0x29)]:_0x3cda87[_0x3d6a(0x2a)](_0x14cb4d['status'],0x1f4)?_0x3cda87[_0x3d6a(0x2b)]:_0x3cda87['tNYjt'];throw new ApiError(((_0x30d37d=_0x5ed5ef[_0x3d6a(0x2c)])===null||_0x3cda87[_0x3d6a(0x2d)](_0x30d37d,void 0x0)?void 0x0:_0x30d37d[_0x3d6a(0x22)])||_0x3cda87['jCMQv'],_0x36ee0a,_0x3cda87[_0x3d6a(0x2e)](_0x235f63=_0x5ed5ef[_0x3d6a(0x2c)],null)||_0x3cda87[_0x3d6a(0x2e)](_0x235f63,void 0x0)?void 0x0:_0x235f63['code'],_0x3cda87[_0x3d6a(0x2f)](_0x1d91bb=_0x5ed5ef['error'],null)||_0x3cda87['GIkak'](_0x1d91bb,void 0x0)?void 0x0:_0x1d91bb['details']);}return _0x5ed5ef;}catch(_0x300249){if(_0x3cda87[_0x3d6a(0x30)](_0x3cda87[_0x3d6a(0x31)],_0x3cda87['RwmrW']))return _0x3cda87[_0x3d6a(0x32)](_0x25734e,_0x3d6a(0x33),'PUT',{'data':{'platforms':_0xddcd75},'debug':_0x19d614[_0x3d6a(0x34)]});else{if(_0x3cda87['WyBqZ'](_0x300249,ApiError)){if(_0x3cda87[_0x3d6a(0x35)]('hEHRb',_0x3d6a(0x36)))throw _0x300249;else return _0x3cda87[_0x3d6a(0x37)](_0x5bb905,_0x3d6a(0x38),'GET',{'debug':_0x24728c[_0x3d6a(0x34)]});}if(_0x3cda87[_0x3d6a(0x39)](_0x300249['name'],_0x3cda87[_0x3d6a(0x3a)]))throw new ApiError(_0x3cda87[_0x3d6a(0x3b)],_0x3cda87[_0x3d6a(0x3c)]);debug&&_0x3cda87[_0x3d6a(0x3d)](logDebug,_0x3cda87['vFYKJ'],{'endpoint':_0xe2a7b9,'method':_0x31917a,'error':_0x300249['message']||_0x3cda87[_0x3d6a(0x3e)]});throw new ApiError(_0x300249[_0x3d6a(0x22)]||'An\x20unexpected\x20error\x20occurred',_0x3cda87[_0x3d6a(0x3f)]);}}},makeDeveloperApiRequest=async(_0x1c78b5,_0x782ae1,_0x1acb23={})=>{const _0x146723={'vVkuh':_0x3d6a(0x15),'eMgSu':_0x3d6a(0x16),'XwgXh':function(_0x5b3ef3,_0xa78f6e,_0x5244e6){return _0x5b3ef3(_0xa78f6e,_0x5244e6);},'BAZLf':_0x3d6a(0x40),'Hdhxp':_0x3d6a(0xf),'kpezr':_0x3d6a(0xb),'tCTeS':function(_0x31e283){return _0x31e283();},'vtDPu':function(_0xcd5df,_0x2c9662){return _0xcd5df===_0x2c9662;},'wrMjt':_0x3d6a(0x41),'bltzZ':_0x3d6a(0x1e),'VFPvQ':function(_0x435d16,_0x25b9f2){return _0x435d16!==_0x25b9f2;},'adbQh':'SqScq','NFWzq':_0x3d6a(0x42),'cVJpx':function(_0xadf951,_0x2bc3ec,_0x3c7c70){return _0xadf951(_0x2bc3ec,_0x3c7c70);},'enhTL':_0x3d6a(0x43),'WlAFR':_0x3d6a(0x44),'xxrDK':function(_0x2a6655,_0x85dbbb){return _0x2a6655===_0x85dbbb;},'jWNIB':_0x3d6a(0xc),'rADyK':'validation_error','frChP':'server_error','vgjcQ':_0x3d6a(0x12),'LeLqv':'API\x20request\x20failed','pnOHn':function(_0x2b31ba,_0x3fb162){return _0x2b31ba===_0x3fb162;},'oFLMu':function(_0x1c0cf8,_0x232789){return _0x1c0cf8===_0x232789;},'mAMyI':function(_0x5014e2,_0x95a8aa){return _0x5014e2 instanceof _0x95a8aa;},'FlCmm':function(_0x48d29a,_0x23acc8){return _0x48d29a===_0x23acc8;},'Yidhe':_0x3d6a(0x14),'DXVlz':_0x3d6a(0x45),'waPTM':_0x3d6a(0x46)},{data:_0x12f176,headers:headers={},debug:debug=![]}=_0x1acb23;try{const _0x33944c=await _0x146723[_0x3d6a(0x47)](checkNetworkConnection);if(!_0x33944c){if(_0x146723[_0x3d6a(0x48)](_0x146723[_0x3d6a(0x49)],_0x146723[_0x3d6a(0x49)]))throw new ApiError(_0x146723[_0x3d6a(0x4a)],_0x146723[_0x3d6a(0x4b)]);else throw _0x65ac04;}if(debug){if(_0x146723[_0x3d6a(0x4c)](_0x146723['adbQh'],_0x146723[_0x3d6a(0x4d)]))_0x146723[_0x3d6a(0x4e)](logDebug,_0x146723[_0x3d6a(0x4f)],{'endpoint':_0x1c78b5,'method':_0x782ae1,'headers':{...headers,'Authorization':_0x146723[_0x3d6a(0x50)]},'data':_0x12f176||null});else throw new _0x2439a3(_0x146723[_0x3d6a(0x51)],_0x146723[_0x3d6a(0x52)]);}const _0x19218a=await _0x146723['XwgXh'](makeDeveloperRequest,_0x1c78b5,{'method':_0x782ae1,'headers':headers,..._0x12f176?{'body':JSON[_0x3d6a(0x53)](_0x12f176)}:{}}),_0x47f983=await _0x19218a[_0x3d6a(0x26)]();debug&&(_0x146723[_0x3d6a(0x4c)](_0x146723['enhTL'],_0x146723[_0x3d6a(0x54)])?_0x146723[_0x3d6a(0x55)](_0x21bad4,_0x146723[_0x3d6a(0x4f)],{'endpoint':_0x259876,'method':_0x4ec1a2,'headers':{..._0x11a7a6,'Authorization':_0x146723[_0x3d6a(0x50)]},'data':_0x5488b4||null}):_0x146723['cVJpx'](logDebug,_0x146723[_0x3d6a(0x56)],{'status':_0x19218a[_0x3d6a(0x27)],'data':_0x47f983}));if(!_0x19218a['ok']){var _0x4cd4a6,_0x118c5b,_0x4aadfa;const _0x5e66bf=_0x146723[_0x3d6a(0x48)](_0x19218a[_0x3d6a(0x27)],0x191)||_0x146723[_0x3d6a(0x57)](_0x19218a[_0x3d6a(0x27)],0x193)?_0x146723[_0x3d6a(0x58)]:_0x19218a[_0x3d6a(0x27)]===0x190?_0x146723[_0x3d6a(0x59)]:_0x19218a[_0x3d6a(0x27)]>=0x1f4?_0x146723[_0x3d6a(0x5a)]:_0x146723[_0x3d6a(0x5b)];throw new ApiError(((_0x4cd4a6=_0x47f983[_0x3d6a(0x2c)])===null||_0x146723[_0x3d6a(0x48)](_0x4cd4a6,void 0x0)?void 0x0:_0x4cd4a6[_0x3d6a(0x22)])||_0x146723[_0x3d6a(0x5c)],_0x5e66bf,_0x146723[_0x3d6a(0x5d)](_0x118c5b=_0x47f983['error'],null)||_0x146723[_0x3d6a(0x57)](_0x118c5b,void 0x0)?void 0x0:_0x118c5b[_0x3d6a(0x5e)],_0x146723[_0x3d6a(0x5d)](_0x4aadfa=_0x47f983['error'],null)||_0x146723['oFLMu'](_0x4aadfa,void 0x0)?void 0x0:_0x4aadfa[_0x3d6a(0x2)]);}return _0x47f983;}catch(_0x400077){if(_0x146723[_0x3d6a(0x5f)](_0x400077,ApiError))throw _0x400077;if(_0x146723[_0x3d6a(0x60)](_0x400077['name'],_0x146723['Yidhe'])){if(_0x146723[_0x3d6a(0x5d)](_0x146723[_0x3d6a(0x61)],_0x146723['DXVlz']))throw new ApiError(_0x146723[_0x3d6a(0x51)],_0x3d6a(0x16));else throw _0x1a5d02;}if(debug){if(_0x146723[_0x3d6a(0x57)](_0x3d6a(0x62),_0x3d6a(0x63)))throw new _0x256ae5('No\x20network\x20connection\x20available',_0x146723[_0x3d6a(0x4b)]);else _0x146723[_0x3d6a(0x4e)](logDebug,_0x3d6a(0x64),{'endpoint':_0x1c78b5,'method':_0x782ae1,'error':_0x400077['message']||_0x3d6a(0x18)});}throw new ApiError(_0x400077[_0x3d6a(0x22)]||_0x146723['waPTM'],_0x146723[_0x3d6a(0x5b)]);}};export const validateCredentials=async(_0xadc51d,_0x366cb7={'debug':![]})=>{const _0x81976b={'dqRZR':function(_0x2bf36b,_0x257996,_0x5f52ba,_0x132c9a){return _0x2bf36b(_0x257996,_0x5f52ba,_0x132c9a);},'jVcoZ':function(_0x4ddf42,_0x55d5a0){return _0x4ddf42===_0x55d5a0;},'LGlsu':function(_0x2e31cc,_0x665dba){return _0x2e31cc===_0x665dba;},'qhuNE':function(_0x109630,_0xc7b5aa){return _0x109630===_0xc7b5aa;},'BVtSl':function(_0x462ad1,_0x3921bb){return _0x462ad1===_0x3921bb;}};try{var _0x2609d7,_0x5a8664;const _0x1d234b=await _0x81976b[_0x3d6a(0x65)](makeUserApiRequest,_0x3d6a(0x66),'POST',{'data':{'username':_0xadc51d},'debug':_0x366cb7[_0x3d6a(0x34)]});return{'isValid':_0x1d234b['success']&&_0x81976b[_0x3d6a(0x67)](_0x81976b[_0x3d6a(0x68)](_0x2609d7=_0x1d234b[_0x3d6a(0x69)],null)||_0x81976b[_0x3d6a(0x6a)](_0x2609d7,void 0x0)?void 0x0:_0x2609d7['isValid'],!![]),'message':_0x81976b['BVtSl'](_0x5a8664=_0x1d234b[_0x3d6a(0x2c)],null)||_0x81976b[_0x3d6a(0x6b)](_0x5a8664,void 0x0)?void 0x0:_0x5a8664[_0x3d6a(0x22)]};}catch(_0x442793){return{'isValid':![],'message':_0x442793['message']};}};function _0x3d6a(_0xe7fd20,_0x3d6a70){_0xe7fd20=_0xe7fd20-0x0;const _0x37b73a=_0xe7fd();let _0x53dd81=_0x37b73a[_0xe7fd20];return _0x53dd81;}export const createAccount=async(_0xfaf599,_0x23b99f={'debug':![]})=>{const _0x2adc0c={'DZMHR':function(_0x5f3cf8,_0x3b1eb5,_0x212eee,_0x6a17eb){return _0x5f3cf8(_0x3b1eb5,_0x212eee,_0x6a17eb);},'pSXZs':_0x3d6a(0x6c)};return _0x2adc0c['DZMHR'](makeDeveloperApiRequest,_0x2adc0c[_0x3d6a(0x6d)],'POST',{'data':{'username':_0xfaf599[_0x3d6a(0x6e)],'platforms':_0xfaf599[_0x3d6a(0x6f)]},'debug':_0x23b99f[_0x3d6a(0x34)]});};export const authenticate=async(_0x40be55,_0x153bc8={'debug':![]})=>{const _0x33feb5={'TqOvh':_0x3d6a(0x70)};return makeUserApiRequest(_0x33feb5[_0x3d6a(0x71)],'POST',{'data':{'username':_0x40be55[_0x3d6a(0x6e)],'pin':_0x40be55[_0x3d6a(0x72)]},'debug':_0x153bc8['debug']});};export const refreshToken=async(_0x26b5db,_0x3b47a7={'debug':![]})=>{const _0x8d74d8={'lgnXu':function(_0x315317,_0x2dc446,_0x33892b,_0x54a660){return _0x315317(_0x2dc446,_0x33892b,_0x54a660);},'BXuda':'auth/refresh'};return _0x8d74d8[_0x3d6a(0x73)](makeUserApiRequest,_0x8d74d8[_0x3d6a(0x74)],'POST',{'data':{'refreshToken':_0x26b5db},'debug':_0x3b47a7[_0x3d6a(0x34)]});};export const getPlatformData=async(_0x5c8337,_0xe9fb1={'debug':![]})=>{const _0x31967b={'nFuas':function(_0x3c1f2f,_0x4c7356,_0x28c393,_0x588b9a){return _0x3c1f2f(_0x4c7356,_0x28c393,_0x588b9a);}};return _0x31967b['nFuas'](makeUserApiRequest,_0x3d6a(0x75)+_0x5c8337+_0x3d6a(0x76),'GET',{'debug':_0xe9fb1[_0x3d6a(0x34)]});};export const getUserProfile=async(_0x3dd7e5={'debug':![]})=>{return makeUserApiRequest(_0x3d6a(0x38),'GET',{'debug':_0x3dd7e5[_0x3d6a(0x34)]});};export const updatePlatformConnections=async(_0x3ec8d7,_0x39d349={'debug':![]})=>{const _0x480157={'ICJDW':function(_0x152949,_0x31865b,_0x4232d5,_0x2132e5){return _0x152949(_0x31865b,_0x4232d5,_0x2132e5);},'NSZle':_0x3d6a(0x33)};return _0x480157[_0x3d6a(0x77)](makeUserApiRequest,_0x480157['NSZle'],'PUT',{'data':{'platforms':_0x3ec8d7},'debug':_0x39d349['debug']});};export const storePIN=async(_0x32372a,_0x4377c2={})=>{const _0x242ed0={'qnvHp':'User\x20API\x20Request','xPUza':function(_0x4dc3f5,_0x41996f){return _0x4dc3f5||_0x41996f;},'uGqcr':function(_0xcce942){return _0xcce942();},'zauqH':_0x3d6a(0x78),'odktG':_0x3d6a(0x8),'lbOEb':_0x3d6a(0xc),'lMUJw':function(_0x213ad9,_0x15106d,_0x2857d4,_0x4996a4){return _0x213ad9(_0x15106d,_0x2857d4,_0x4996a4);},'FyniF':'store-pin/mobile'},{debug:debug=![],username:_0x5d2707}=_0x4377c2,_0x28cce5=_0x5d2707||_0x242ed0[_0x3d6a(0x79)](extractUsernameFromJWT);if(!_0x28cce5){if(_0x242ed0['zauqH']===_0x3d6a(0x7a))_0xafd7c4(_0x242ed0[_0x3d6a(0x7b)],{'endpoint':_0x490e1f,'method':_0x237c18,'headers':{..._0x272037,'Authorization':'[REDACTED]'},'data':_0x242ed0['xPUza'](_0x3c34d8,null)});else throw new ApiError(_0x242ed0[_0x3d6a(0x7c)],_0x242ed0[_0x3d6a(0x7d)]);}return _0x242ed0[_0x3d6a(0x7e)](makeUserApiRequest,_0x242ed0[_0x3d6a(0x7f)],'POST',{'data':{'username':_0x28cce5,'pin':_0x32372a},'debug':debug});};export const getCurrentUserToken=async()=>{const _0x5e48d8={'GQgPl':function(_0x524d1d){return _0x524d1d();}};return await _0x5e48d8[_0x3d6a(0x80)](getJWT);};export const isCurrentUserAuthenticated=()=>{return 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 _0x40f6(){const _0x57fb0d=['eLoFG','✅\x20Onairos\x20flow\x20completed\x20successfully','fHXrq','VGZEo','twfHC','MyNsE','❌\x20Onairos\x20flow\x20rejected:','📱\x20Onairos\x20modal\x20should\x20be\x20displayed','Onairos\x20flow\x20was\x20rejected','JDyzG','❌\x20Failed\x20to\x20execute\x20Onairos\x20flow:','log','🚀\x20Starting\x20Onairos\x20flow\x20programmatically...','UEadq','../components/UniversalOnboarding','jVFlt','FtuFT','tDVaR','LeMHQ','LHVnw','close','onResolved','OfXtG','onRejection','QslDf','IUaIh','MYGbX','YXqIc','createElement','User\x20closed\x20the\x20modal','AppName','requestData','returnLink','testMode','MkOyl','LLOOh','hzcce','error','iuSFF','QzLnU','Pre-check\x20failed','preCheck','agJCP','bsBeB','nScYs','vFckm'];_0x40f6=function(){return _0x57fb0d;};return _0x40f6();}import{initializePlatformAuthService}from'../services/platformAuthService';export const executeOnairosFlow=async _0xd8295c=>{const _0x2817e2={'LeMHQ':function(_0x1aa5de,_0x415344){return _0x1aa5de===_0x415344;},'LHVnw':_0x243d(0x0),'McaNE':_0x243d(0x1),'OfXtG':_0x243d(0x2),'ImfMl':_0x243d(0x3),'jVFlt':_0x243d(0x4),'FtuFT':_0x243d(0x5),'jDaSo':_0x243d(0x6),'tDVaR':function(_0xf9fb65,_0xdd4971){return _0xf9fb65||_0xdd4971;},'MkOyl':_0x243d(0x7),'QLvuh':function(_0x387aa5,_0x50ddc2){return _0x387aa5||_0x50ddc2;},'hzcce':_0x243d(0x8),'UEadq':function(_0x4f577f){return _0x4f577f();},'dmBVi':_0x243d(0x9),'iuSFF':_0x243d(0xa)};try{console[_0x243d(0xb)](_0x243d(0xc)),await _0x2817e2[_0x243d(0xd)](initializePlatformAuthService);const {UniversalOnboarding:_0x406dc4}=await import(_0x243d(0xe)),React=await import('react');return new Promise((_0x393576,_0x37778e)=>{const _0x2d4456={'IUaIh':'❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','QslDf':_0x2817e2[_0x243d(0xf)],'mxonK':_0x2817e2[_0x243d(0x10)],'VhrIe':_0x2817e2['jDaSo'],'MYGbX':function(_0x2878b1,_0x17e390){return _0x2878b1(_0x17e390);},'YXqIc':function(_0x110328,_0x3b4e09){return _0x2817e2[_0x243d(0x11)](_0x110328,_0x3b4e09);},'BENwZ':_0x243d(0x8)};let _0x58a455=null;const _0x168cfa=(_0x24be6e,_0x55b55c,_0x417dbc)=>{_0x2817e2[_0x243d(0x12)](_0x2817e2[_0x243d(0x13)],_0x243d(0x0))?(console[_0x243d(0xb)](_0x2817e2['McaNE']),_0x58a455&&_0x58a455[_0x243d(0x14)]&&_0x58a455[_0x243d(0x14)](),_0xd8295c[_0x243d(0x15)]&&(_0x2817e2[_0x243d(0x16)]===_0x2817e2['ImfMl']?_0x5a2496[_0x243d(0x14)]():_0xd8295c[_0x243d(0x15)](_0x24be6e,_0x55b55c,_0x417dbc)),_0x393576()):_0x2f5bc5[_0x243d(0x17)](_0x54b55a);},_0x32d1be=_0x837e48=>{if(_0x2d4456[_0x243d(0x18)]===_0x2d4456['mxonK']){_0x390b91[_0x243d(0xb)](_0x2d4456[_0x243d(0x19)]);_0x2d527a[_0x243d(0x17)]&&_0xdaa98e['onRejection']('Pre-check\x20failed');return;}else console[_0x243d(0xb)](_0x2d4456['VhrIe'],_0x837e48),_0x58a455&&_0x58a455[_0x243d(0x14)]&&_0x58a455['close'](),_0xd8295c['onRejection']&&_0xd8295c['onRejection'](_0x837e48),_0x2d4456[_0x243d(0x1a)](_0x37778e,new Error(_0x2d4456[_0x243d(0x1b)](_0x837e48,_0x2d4456['BENwZ'])));},_0x1e33fb=React[_0x243d(0x1c)](_0x406dc4,{'visible':!![],'onClose':()=>_0x32d1be(_0x243d(0x1d)),'AppName':_0xd8295c[_0x243d(0x1e)],'requestData':_0xd8295c[_0x243d(0x1f)],'returnLink':_0xd8295c[_0x243d(0x20)],'onComplete':_0x168cfa,'preferredPlatform':_0xd8295c['preferredPlatform'],'debug':_0xd8295c['debug'],'testMode':_0xd8295c[_0x243d(0x21)]});_0x58a455=_0x1e33fb,console[_0x243d(0xb)](_0x2817e2[_0x243d(0x22)]);});}catch(_0x42e706){if(_0x2817e2[_0x243d(0x12)](_0x2817e2['dmBVi'],_0x243d(0x23)))_0x325dbb[_0x243d(0xb)](_0x243d(0x6),_0xfa3399),_0x48e65c&&_0x1b3aec['close']&&_0x1d895e['close'](),_0x57c0b5[_0x243d(0x17)]&&_0x2e636b[_0x243d(0x17)](_0x16e165),_0x30af26(new _0x211858(_0x2817e2['QLvuh'](_0x4f5bda,_0x2817e2[_0x243d(0x24)])));else{console[_0x243d(0x25)](_0x2817e2[_0x243d(0x26)],_0x42e706);throw _0x42e706;}}};function _0x243d(_0x40f69e,_0x243d71){_0x40f69e=_0x40f69e-0x0;const _0x4b9847=_0x40f6();let _0x4fe31b=_0x4b9847[_0x40f69e];return _0x4fe31b;}export const startOnairosFlow=async _0x530c3c=>{const _0x4080c6={'vabJQ':function(_0x11b2d5,_0x1f5da5){return _0x11b2d5===_0x1f5da5;},'agJCP':_0x243d(0x27),'bsBeB':'❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','nScYs':_0x243d(0x28),'vFckm':function(_0x303376,_0x5e74be){return _0x303376(_0x5e74be);}};if(_0x530c3c[_0x243d(0x29)]){const _0x2cd50f=await _0x530c3c[_0x243d(0x29)]();if(!_0x2cd50f){if(_0x4080c6['vabJQ'](_0x4080c6[_0x243d(0x2a)],_0x4080c6[_0x243d(0x2a)])){console[_0x243d(0xb)](_0x4080c6[_0x243d(0x2b)]);_0x530c3c[_0x243d(0x17)]&&_0x530c3c[_0x243d(0x17)](_0x4080c6[_0x243d(0x2c)]);return;}else _0x49c555[_0x243d(0x15)](_0x4323c7,_0x322030,_0x2478a0);}}return _0x4080c6[_0x243d(0x2d)](executeOnairosFlow,_0x530c3c);};
@@ -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':(_0x45ada6,_0x58cd70)=>{const _0x19a931={'LkuaC':function(_0x3b9612,_0x56e16c){return _0x3b9612>=_0x56e16c;},'XEshN':function(_0xfad7ee,_0x3b744f){return _0xfad7ee<_0x3b744f;},'ddmwO':function(_0x1d57a5,_0x3c2caa){return _0x1d57a5!==_0x3c2caa;},'RteZS':function(_0x99fe85,_0x2ca86e){return _0x99fe85===_0x2ca86e;},'Ivmfx':_0x5083(0x0),'Enmbz':_0x5083(0x1),'fAPwA':_0x5083(0x2),'rVuZF':_0x5083(0x3),'fufXB':_0x5083(0x4)};if(_0x19a931[_0x5083(0x5)](_0x45ada6[_0x5083(0x6)],0x190)&&_0x19a931[_0x5083(0x7)](_0x45ada6[_0x5083(0x6)],0x1f4)&&_0x19a931[_0x5083(0x8)](_0x45ada6[_0x5083(0x6)],0x198)&&_0x45ada6[_0x5083(0x6)]!==0x1ad)return![];if(_0x19a931['RteZS'](_0x45ada6[_0x5083(0x9)],_0x19a931[_0x5083(0xa)])||_0x45ada6['message'][_0x5083(0xb)](_0x19a931[_0x5083(0xc)])||_0x45ada6[_0x5083(0xd)][_0x5083(0xb)](_0x19a931[_0x5083(0xe)])||_0x45ada6[_0x5083(0xd)][_0x5083(0xb)](_0x19a931[_0x5083(0xf)])||_0x45ada6[_0x5083(0xd)]['includes'](_0x19a931[_0x5083(0x10)])||_0x45ada6[_0x5083(0x6)]>=0x1f4)return!![];if(_0x45ada6[_0x5083(0xd)][_0x5083(0xb)](_0x5083(0x11))||_0x45ada6['message'][_0x5083(0xb)](_0x5083(0x12)))return!![];return![];}};export async function withRetry(_0x58826a,_0x1e5242={}){const _0x5620bb={'YvQbj':function(_0x366823,_0x3e2737){return _0x366823+_0x3e2737;},'ftHjr':function(_0x3afd49,_0x37e568){return _0x3afd49===_0x37e568;},'jHGEZ':_0x5083(0x13),'HhDfG':_0x5083(0x14),'Eexgq':function(_0x203666){return _0x203666();},'bvHVs':function(_0x435b4c,_0x48ab01){return _0x435b4c>_0x48ab01;},'fYpMV':function(_0x483687,_0x2ce8f7){return _0x483687*_0x2ce8f7;},'bXQhx':function(_0x515d75,_0x23beb3){return _0x515d75-_0x23beb3;},'qSSvS':function(_0x5266cd,_0x36e190){return _0x5266cd*_0x36e190;},'WbSQH':function(_0x4ae6b3,_0x263cce){return _0x4ae6b3+_0x263cce;},'fXpSN':_0x5083(0x15),'OmPcv':_0x5083(0x16),'wukZo':function(_0x1cd281,_0x25fc72){return _0x1cd281+_0x25fc72;}},_0x426e41={...DEFAULT_RETRY_OPTIONS,..._0x1e5242},_0x45dce4=Date[_0x5083(0x17)]();let _0x340e1b=null;for(let _0xd9046d=0x1;_0xd9046d<=_0x5620bb[_0x5083(0x18)](_0x426e41[_0x5083(0x19)],0x1);_0xd9046d++){if(_0x5620bb['ftHjr'](_0x5620bb[_0x5083(0x1a)],_0x5620bb[_0x5083(0x1b)]))_0x5dcbf1['onRetry'](_0x313f8e,_0x486796,_0x269b1e);else try{_0x426e41[_0x5083(0x1c)]&&_0xd9046d>0x1&&console['log'](_0x5083(0x1d)+_0xd9046d+'/'+(_0x426e41[_0x5083(0x19)]+0x1));const _0x248d45=await _0x5620bb[_0x5083(0x1e)](_0x58826a);return{'success':!![],'data':_0x248d45,'attempts':_0xd9046d,'totalDuration':Date[_0x5083(0x17)]()-_0x45dce4};}catch(_0x4a13b5){_0x340e1b=_0x4a13b5;const _0x38ee3d=_0x426e41[_0x5083(0x1f)]?_0x426e41[_0x5083(0x1f)](_0x4a13b5,_0xd9046d):!![];if(_0x5620bb[_0x5083(0x20)](_0xd9046d,_0x426e41[_0x5083(0x19)])||!_0x38ee3d){_0x426e41[_0x5083(0x1c)]&&console[_0x5083(0x21)](_0x5083(0x22)+_0x4a13b5['message']);break;}let _0xdd2ec3=_0x426e41[_0x5083(0x23)];_0x426e41['exponentialBackoff']&&(_0xdd2ec3=Math[_0x5083(0x24)](_0x5620bb[_0x5083(0x25)](_0x426e41['baseDelay'],Math[_0x5083(0x26)](0x2,_0x5620bb[_0x5083(0x27)](_0xd9046d,0x1))),_0x426e41[_0x5083(0x28)]));const _0xe4bba5=_0x5620bb[_0x5083(0x29)](Math[_0x5083(0x2a)]()*0.1,_0xdd2ec3);_0xdd2ec3=Math[_0x5083(0x2b)](_0x5620bb['WbSQH'](_0xdd2ec3,_0xe4bba5)),_0x426e41['onRetry']&&(_0x5620bb[_0x5083(0x2c)]!==_0x5083(0x2d)?_0x426e41['onRetry'](_0x4a13b5,_0xd9046d,_0xdd2ec3):_0x1c8caf[_0x5083(0x2e)](_0x5083(0x2f)+_0x384037+_0x5083(0x30)+_0xe63736+_0x5083(0x31)+_0x16225f[_0x5083(0xd)])),_0x426e41['enableLogging']&&console[_0x5083(0x32)](_0x5083(0x33)+_0xdd2ec3+_0x5083(0x34)+_0xd9046d+'/'+_0x5620bb['WbSQH'](_0x426e41['maxRetries'],0x1)+')'),await new Promise(_0x1d376f=>setTimeout(()=>_0x1d376f(),_0xdd2ec3));}}return{'success':![],'error':_0x340e1b||new Error(_0x5620bb[_0x5083(0x35)]),'attempts':_0x5620bb[_0x5083(0x36)](_0x426e41[_0x5083(0x19)],0x1),'totalDuration':_0x5620bb[_0x5083(0x27)](Date[_0x5083(0x17)](),_0x45dce4)};}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x720815,_0x30b3f)=>{const _0x36cc92={'jWVfR':function(_0x40cef4,_0x57823d){return _0x40cef4*_0x57823d;},'rHnrI':function(_0x207361,_0x52a9a8){return _0x207361-_0x52a9a8;},'SgbBZ':function(_0x48f5d7,_0x572ab6){return _0x48f5d7===_0x572ab6;},'dHGVh':_0x5083(0x37),'VOaTl':function(_0x209061,_0x390c7f){return _0x209061===_0x390c7f;},'VPvGy':_0x5083(0x38),'lXglG':'SFkEI','qFUhV':function(_0x5debd7,_0x408d57){return _0x5debd7>=_0x408d57;},'UdfhQ':_0x5083(0x0),'KgxCG':_0x5083(0x4),'HBuKB':_0x5083(0x1),'SErZb':'ENOTFOUND','NGHog':_0x5083(0x11),'ZdvhX':function(_0x2d0fd1,_0x405e19){return _0x2d0fd1!==_0x405e19;},'RUddC':_0x5083(0x39),'PmeJl':_0x5083(0x3a)};if(_0x36cc92[_0x5083(0x3b)](_0x720815[_0x5083(0x6)],0x191)||_0x36cc92[_0x5083(0x3b)](_0x720815[_0x5083(0x6)],0x193))return![];if(_0x720815[_0x5083(0x6)]===0x190||_0x36cc92[_0x5083(0x3b)](_0x720815[_0x5083(0x6)],0x194)&&!_0x720815['message'][_0x5083(0xb)](_0x36cc92['dHGVh']))return![];if(_0x36cc92[_0x5083(0x3c)](_0x720815[_0x5083(0x6)],0x1ad)){if(_0x36cc92[_0x5083(0x3d)]===_0x36cc92[_0x5083(0x3e)])_0x2913f2=_0x28f93a['min'](_0x36cc92[_0x5083(0x3f)](_0x526d79['baseDelay'],_0x2d92b3['pow'](0x2,_0x36cc92[_0x5083(0x40)](_0x18e567,0x1))),_0x346242[_0x5083(0x28)]);else return _0x30b3f<=0x2;}if(_0x36cc92[_0x5083(0x41)](_0x720815[_0x5083(0x6)],0x1f4))return!![];if(_0x36cc92['VOaTl'](_0x720815['name'],_0x36cc92['UdfhQ'])||_0x720815[_0x5083(0xd)][_0x5083(0xb)](_0x36cc92[_0x5083(0x42)])||_0x720815[_0x5083(0xd)][_0x5083(0xb)](_0x36cc92[_0x5083(0x43)])||_0x720815['message']['includes'](_0x5083(0x2))||_0x720815[_0x5083(0xd)]['includes'](_0x36cc92[_0x5083(0x44)]))return!![];if(_0x720815['message']['includes'](_0x36cc92[_0x5083(0x45)])||_0x720815[_0x5083(0xd)][_0x5083(0xb)](_0x5083(0x12))||_0x720815[_0x5083(0xd)][_0x5083(0xb)](_0x5083(0x46)))return _0x36cc92[_0x5083(0x47)](_0x36cc92[_0x5083(0x48)],_0x36cc92[_0x5083(0x49)])?!![]:!![];return![];},'onRetry':(_0x23d56b,_0x119f96,_0x1ad09b)=>{console[_0x5083(0x2e)](_0x5083(0x2f)+_0x119f96+'),\x20retrying\x20in\x20'+_0x1ad09b+_0x5083(0x31)+_0x23d56b[_0x5083(0xd)]);}};function _0x45bd(){const _0x5c880f=['AbortError','Network\x20request\x20failed','fetch','ENOTFOUND','timeout','LkuaC','status','XEshN','ddmwO','name','Ivmfx','includes','Enmbz','message','fAPwA','rVuZF','fufXB','JSON\x20Parse\x20error','Unexpected\x20character','bekag','DgWSf','Pwzan','Unknown\x20error','now','YvQbj','maxRetries','jHGEZ','HhDfG','enableLogging','🔄\x20Retry\x20attempt\x20','Eexgq','shouldRetry','bvHVs','error','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','baseDelay','min','fYpMV','pow','bXQhx','maxDelay','qSSvS','random','floor','fXpSN','adxAc','warn','⚠️\x20API\x20call\x20failed\x20(attempt\x20','),\x20retrying\x20in\x20','ms:\x20','log','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','OmPcv','wukZo','validation\x20endpoint','LxFKK','NHEdk','jjRTe','SgbBZ','VOaTl','VPvGy','lXglG','jWVfR','rHnrI','qFUhV','KgxCG','HBuKB','SErZb','NGHog','HTML\x20page\x20instead\x20of\x20JSON','ZdvhX','RUddC','PmeJl','MVVed','DNS','uxoUK','tPbhV','isuoR','data','lkBKZ','OnairosReactNative/HealthCheck','gOXDi','QeZBy','YglgH','abort','signal','DerPq','IGzqc','rEPxJ','Fbeba'];_0x45bd=function(){return _0x5c880f;};return _0x45bd();}export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x11bd5b,_0x33436b)=>{const _0x43f000={'PzQEx':_0x5083(0x1),'MVVed':_0x5083(0x3),'uxoUK':function(_0x5d49f6,_0x2aa283){return _0x5d49f6===_0x2aa283;},'tPbhV':'AbortError'};return _0x11bd5b[_0x5083(0xd)][_0x5083(0xb)](_0x43f000['PzQEx'])||_0x11bd5b[_0x5083(0xd)][_0x5083(0xb)](_0x43f000[_0x5083(0x4a)])||_0x11bd5b['message'][_0x5083(0xb)](_0x5083(0x4b))||_0x43f000[_0x5083(0x4c)](_0x11bd5b['name'],_0x43f000[_0x5083(0x4d)]);}};function _0x5083(_0x45bda2,_0x508355){_0x45bda2=_0x45bda2-0x0;const _0x2e268e=_0x45bd();let _0x4d4ce8=_0x2e268e[_0x45bda2];return _0x4d4ce8;}export async function fetchWithRetry(_0x951ed6,_0x5c3efb={},_0x22480a=API_RETRY_OPTIONS){const _0x134872={'isuoR':function(_0x431d28,_0x35d42d,_0x18b5d5){return _0x431d28(_0x35d42d,_0x18b5d5);}},_0x315a15=await _0x134872[_0x5083(0x4e)](withRetry,()=>fetch(_0x951ed6,_0x5c3efb),_0x22480a);if(!_0x315a15['success'])throw _0x315a15[_0x5083(0x21)];return _0x315a15[_0x5083(0x4f)];}export async function healthCheck(_0x1753b0,_0x1f28b0=0x1388){const _0x273bf6={'gOXDi':function(_0x6d056,_0x21538b){return _0x6d056===_0x21538b;},'QeZBy':_0x5083(0x50),'YglgH':function(_0x3057a9,_0x662ca2,_0x23f346){return _0x3057a9(_0x662ca2,_0x23f346);},'DerPq':_0x5083(0x51),'IGzqc':function(_0x446aef,_0x4cf08b){return _0x446aef(_0x4cf08b);},'rEPxJ':function(_0x3ba8a4,_0x2c9d0f){return _0x3ba8a4-_0x2c9d0f;},'Fbeba':function(_0x398c2a,_0xe6d82f){return _0x398c2a-_0xe6d82f;}},_0x309fe9=Date[_0x5083(0x17)]();try{if(_0x273bf6[_0x5083(0x52)](_0x273bf6['QeZBy'],_0x273bf6[_0x5083(0x53)])){const _0x3078b5=new AbortController(),_0x5d0498=_0x273bf6[_0x5083(0x54)](setTimeout,()=>_0x3078b5[_0x5083(0x55)](),_0x1f28b0),_0x288542=await _0x273bf6['YglgH'](fetch,_0x1753b0,{'method':'GET','signal':_0x3078b5[_0x5083(0x56)],'headers':{'User-Agent':_0x273bf6[_0x5083(0x57)]}});return _0x273bf6[_0x5083(0x58)](clearTimeout,_0x5d0498),{'reachable':!![],'status':_0x288542[_0x5083(0x6)],'duration':_0x273bf6[_0x5083(0x59)](Date[_0x5083(0x17)](),_0x309fe9)};}else _0x1125bf[_0x5083(0x32)](_0x5083(0x33)+_0x498d37+_0x5083(0x34)+_0x5ad18f+'/'+(_0x3d1bd5[_0x5083(0x19)]+0x1)+')');}catch(_0x222c8c){return{'reachable':![],'error':_0x222c8c[_0x5083(0xd)],'duration':_0x273bf6[_0x5083(0x5a)](Date[_0x5083(0x17)](),_0x309fe9)};}}
@@ -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';import{STORAGE_KEYS}from'../constants';function _0x102a(_0x5baebb,_0x102a09){_0x5baebb=_0x5baebb-0x0;const _0x3c6955=_0x5bae();let _0x410d76=_0x3c6955[_0x5baebb];return _0x410d76;}function _0x5bae(){const _0x2589ac=['onairos_jwt_token','warn','mock','default','xUPZi','bWzHg','nEcCW','function','tOgOV','FLGKi','czXoa','service','mvbXb','getGenericPassword','bdNIV','XPQYK','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','lzsqT','AZIuR','Qtpud','ZqdlD','YtZuP','UqaVM','MGMIh','random','toString','substring','dev_','seFdV','gyIfI','yQKsH','GHmFy','Error\x20deleting\x20credentials:','kMvCj','NTDyJ','YRFbt','SmYrO','MZJbL','ifJJP','eOrqV','error','eJgns','BYrVy','ZauAm','DEwLg','length','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','ySbCy','charAt','indexOf','yzvYr','wKzxc','GJaXb','KYzVV','fromCharCode','rgZeZ','mYHQd','yDnlR','UJarX','hOuso','wtQaa','ximyJ','GtiJK','dZHho','Error\x20storing\x20credentials:','HKyCW','ThfOB','createdAt','now','xDjRl','accessControl','ACCESS_CONTROL','BIOMETRY_ANY_OR_DEVICE_PASSCODE','accessible','ACCESSIBLE','WHEN_UNLOCKED','web','ECflH','rtwBD','❌\x20Failed\x20to\x20clear\x20JWT\x20token:','cTgIL','stringify','qmoiy','fNhfE','cAxXt','PQxTQ','kPlul','mgTck','lOoVQ','lJQnq','axYyA','WtzDS','JWBce','HPRxB','YmWXy','parse','BwSDL','rmzpw','Error\x20getting\x20credentials:','bYkdy','YPkkt','Error\x20checking\x20credentials:','ppodA','CLYgT','XhTOu','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','eiCJp','cwLxj','cZWoB','credentials','PcjCj','NRimd','lIPYx','ItLnF','BmZGe','AKvIK','vBPXp','aNjYu','❌\x20Failed\x20to\x20check\x20JWT\x20token:','getItem','fVuWS','numHl','RirVy','tQNtG','removeItem','log','UjOaH','kMTeH','jJyPT','rSici','viqqY','Diblr','KFKOM','ACeey','PdLVk','pMlAR','paYOi','VrQbx','LatVX','❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','cPkBs','split','pBcKt','kNOUd','KuQoJ','❌\x20Failed\x20to\x20check\x20JWT\x20expiration:','RIIVT','sLIoJ','BXBlW','exp','floor','FuyjF','BlReN'];_0x5bae=function(){return _0x2589ac;};return _0x5bae();}import AsyncStorage from'@react-native-async-storage/async-storage';const JWT_TOKEN_KEY=_0x102a(0x0),mockStorage={};let Keychain=null;try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0x1675d5){console[_0x102a(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x102a(0x2)},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x46efe3={'FLGKi':function(_0xf62df5,_0x1b6072){return _0xf62df5===_0x1b6072;},'czXoa':function(_0x4a144f,_0x4692e8){return _0x4a144f===_0x4692e8;},'mvbXb':_0x102a(0x3),'nEcCW':function(_0x546812,_0x52b9b9){return _0x546812===_0x52b9b9;},'tOgOV':_0x102a(0x4),'DQdCO':_0x102a(0x5)};try{return Keychain&&_0x46efe3[_0x102a(0x6)](typeof Keychain['getGenericPassword'],_0x102a(0x7));}catch(_0x4ef598){if(_0x46efe3[_0x102a(0x6)](_0x46efe3[_0x102a(0x8)],_0x46efe3['DQdCO'])){const _0x1ed037=(_0x46efe3[_0x102a(0x9)](_0x1ab855,null)||_0x46efe3[_0x102a(0xa)](_0x392c4f,void 0x0)?void 0x0:_0x8c9e89[_0x102a(0xb)])||_0x46efe3[_0x102a(0xc)];return _0x4b6ade[_0x1ed037]||null;}else return![];}},safeGetGenericPassword=async _0x5b4f6c=>{const _0x1cc1d3={'bdNIV':function(_0x3ddc0e,_0x32f89e){return _0x3ddc0e===_0x32f89e;},'OwieJ':function(_0x103f47,_0x59e050){return _0x103f47===_0x59e050;},'XPQYK':_0x102a(0x3)};try{if(isKeychainAvailable())return await Keychain[_0x102a(0xd)](_0x5b4f6c);else{const _0xe130bd=(_0x1cc1d3[_0x102a(0xe)](_0x5b4f6c,null)||_0x1cc1d3['OwieJ'](_0x5b4f6c,void 0x0)?void 0x0:_0x5b4f6c[_0x102a(0xb)])||_0x1cc1d3[_0x102a(0xf)];return mockStorage[_0xe130bd]||null;}}catch(_0x55270b){console['warn'](_0x102a(0x10),_0x55270b);const _0x5a7016=(_0x5b4f6c===null||_0x1cc1d3['bdNIV'](_0x5b4f6c,void 0x0)?void 0x0:_0x5b4f6c['service'])||_0x1cc1d3[_0x102a(0xf)];return mockStorage[_0x5a7016]||null;}},safeSetGenericPassword=async(_0x3e1e9b,_0x1ac0b6,_0x4f465e)=>{const _0x353431={'YtZuP':_0x102a(0x3),'QHqju':function(_0x48cd66){return _0x48cd66();},'nqsoI':function(_0x896213,_0x4926d1){return _0x896213===_0x4926d1;},'Qtpud':_0x102a(0x11),'UqaVM':function(_0xbb93f8,_0x29f3c4){return _0xbb93f8===_0x29f3c4;},'MGMIh':_0x102a(0x12),'ngFDT':function(_0x184095,_0x3329e2){return _0x184095===_0x3329e2;},'seFdV':function(_0x3a0b3b,_0x542d0f){return _0x3a0b3b!==_0x542d0f;},'gyIfI':'yQKsH','GHmFy':_0x102a(0x10),'cLvKW':function(_0x247346,_0x45b21c){return _0x247346===_0x45b21c;}};try{if(_0x353431['QHqju'](isKeychainAvailable)){if(_0x353431['nqsoI'](_0x353431[_0x102a(0x13)],_0x102a(0x14))){const _0x337efc=(_0x5635bc===null||_0x27443c===void 0x0?void 0x0:_0x12d3e5[_0x102a(0xb)])||_0x353431[_0x102a(0x15)];return delete _0x4ec3bc[_0x337efc],!![];}else return await Keychain['setGenericPassword'](_0x3e1e9b,_0x1ac0b6,_0x4f465e);}else{if(_0x353431[_0x102a(0x16)](_0x353431['MGMIh'],_0x353431[_0x102a(0x17)])){const _0x1a9dbd=(_0x4f465e===null||_0x353431['ngFDT'](_0x4f465e,void 0x0)?void 0x0:_0x4f465e['service'])||_0x102a(0x3);return mockStorage[_0x1a9dbd]={'username':_0x3e1e9b,'password':_0x1ac0b6},!![];}else{const _0x2e9f9f=_0x153bdd[_0x102a(0x18)]()[_0x102a(0x19)](0x24)[_0x102a(0x1a)](0x2,0xa);return _0x102a(0x1b)+_0x2e9f9f;}}}catch(_0x10972b){if(_0x353431[_0x102a(0x1c)](_0x353431[_0x102a(0x1d)],_0x102a(0x1e)))return _0x8bb0f(_0x4941e4);else{console[_0x102a(0x1)](_0x353431[_0x102a(0x1f)],_0x10972b);const _0x312aee=(_0x353431['cLvKW'](_0x4f465e,null)||_0x4f465e===void 0x0?void 0x0:_0x4f465e['service'])||_0x102a(0x3);return mockStorage[_0x312aee]={'username':_0x3e1e9b,'password':_0x1ac0b6},!![];}}},safeResetGenericPassword=async _0x32a95c=>{const _0xa92938={'eJgns':_0x102a(0x20),'DEwLg':function(_0x3f8c75,_0x49092a){return _0x3f8c75%_0x49092a;},'ySbCy':function(_0x32478e,_0x8011e4){return _0x32478e<_0x8011e4;},'yzvYr':function(_0x1dc1a4,_0x3c515a){return _0x1dc1a4+_0x3c515a;},'wKzxc':function(_0x2aa8c6,_0x462640){return _0x2aa8c6|_0x462640;},'GJaXb':function(_0x3434de,_0x1405d9){return _0x3434de|_0x1405d9;},'KYzVV':function(_0x4f5f4e,_0x3b5cf6){return _0x4f5f4e<<_0x3b5cf6;},'rgZeZ':function(_0x460e67,_0x50e0ab){return _0x460e67&_0x50e0ab;},'mYHQd':function(_0x2e09ef,_0xcad491){return _0x2e09ef>>_0xcad491;},'yDnlR':function(_0x5f14e5,_0x4c65d5){return _0x5f14e5!==_0x4c65d5;},'yTHXj':function(_0x2475e6,_0x175991){return _0x2475e6>>_0x175991;},'UJarX':function(_0x53408,_0x1b3f80){return _0x53408&_0x1b3f80;},'MZJbL':function(_0x5d99cc,_0x126aa8){return _0x5d99cc===_0x126aa8;},'ifJJP':_0x102a(0x21),'eOrqV':_0x102a(0x22),'BYrVy':function(_0x8f85e8){return _0x8f85e8();},'DnKfz':function(_0x3dacb6,_0x5e6705){return _0x3dacb6===_0x5e6705;},'ZauAm':_0x102a(0x23),'RUMpP':_0x102a(0x24),'AUyPv':function(_0x52a249,_0x39ed30){return _0x52a249===_0x39ed30;},'hOuso':'default','wtQaa':_0x102a(0x10),'ximyJ':function(_0x3ed6cf,_0x7d91ea){return _0x3ed6cf===_0x7d91ea;}};try{if(_0xa92938[_0x102a(0x25)](_0xa92938[_0x102a(0x26)],_0xa92938[_0x102a(0x27)]))return _0x15e261[_0x102a(0x28)](_0xa92938[_0x102a(0x29)],_0x3ca461),![];else{if(_0xa92938[_0x102a(0x2a)](isKeychainAvailable))return await Keychain['resetGenericPassword'](_0x32a95c);else{if(_0xa92938['DnKfz'](_0xa92938[_0x102a(0x2b)],_0xa92938['RUMpP'])){while(_0xa92938[_0x102a(0x2c)](_0x244c61[_0x102a(0x2d)],0x4)){_0x144e6a+='=';}const _0x3ff91d=_0x102a(0x2e);let _0x5ebbee='';for(let _0x17e4be=0x0;_0xa92938[_0x102a(0x2f)](_0x17e4be,_0x1aecaa[_0x102a(0x2d)]);_0x17e4be+=0x4){const _0x5ec75f=_0x3ff91d['indexOf'](_0x47c33d[_0x102a(0x30)](_0x17e4be)),_0x1f2eb8=_0x3ff91d[_0x102a(0x31)](_0x334499['charAt'](_0xa92938[_0x102a(0x32)](_0x17e4be,0x1))),_0x451d14=_0x3ff91d[_0x102a(0x31)](_0x4d641a[_0x102a(0x30)](_0xa92938['yzvYr'](_0x17e4be,0x2))),_0x325801=_0x3ff91d[_0x102a(0x31)](_0x59c6ea['charAt'](_0xa92938[_0x102a(0x32)](_0x17e4be,0x3))),_0x103e5f=_0xa92938[_0x102a(0x33)](_0xa92938[_0x102a(0x34)](_0x5ec75f<<0x12,_0xa92938['KYzVV'](_0x1f2eb8,0xc))|_0xa92938[_0x102a(0x35)](_0x451d14,0x6),_0x325801);_0x5ebbee+=_0x3c83e8[_0x102a(0x36)](_0xa92938[_0x102a(0x37)](_0xa92938[_0x102a(0x38)](_0x103e5f,0x10),0xff));if(_0xa92938[_0x102a(0x39)](_0x451d14,0x40))_0x5ebbee+=_0x20cc9c[_0x102a(0x36)](_0xa92938['yTHXj'](_0x103e5f,0x8)&0xff);if(_0xa92938[_0x102a(0x39)](_0x325801,0x40))_0x5ebbee+=_0x1c254c['fromCharCode'](_0xa92938[_0x102a(0x3a)](_0x103e5f,0xff));}return _0x5ebbee;}else{const _0x20466f=(_0xa92938['AUyPv'](_0x32a95c,null)||_0x32a95c===void 0x0?void 0x0:_0x32a95c[_0x102a(0xb)])||_0xa92938[_0x102a(0x3b)];return delete mockStorage[_0x20466f],!![];}}}}catch(_0x206790){console[_0x102a(0x1)](_0xa92938[_0x102a(0x3c)],_0x206790);const _0x3b6452=(_0xa92938[_0x102a(0x3d)](_0x32a95c,null)||_0x32a95c===void 0x0?void 0x0:_0x32a95c[_0x102a(0xb)])||_0xa92938['hOuso'];return delete mockStorage[_0x3b6452],!![];}};export const storeCredentials=async _0x501239=>{const _0xc535fc={'cAxXt':function(_0x5720b7,_0x2cbf11){return _0x5720b7+_0x2cbf11;},'PQxTQ':function(_0x5084a8,_0x3bc86f){return _0x5084a8+_0x3bc86f;},'kPlul':function(_0x56403b,_0x22503b){return _0x56403b|_0x22503b;},'mgTck':function(_0x536d97,_0x7fce2f){return _0x536d97<<_0x7fce2f;},'lOoVQ':function(_0x30879e,_0x422afd){return _0x30879e&_0x422afd;},'lJQnq':function(_0x14125f,_0x3d77d2){return _0x14125f>>_0x3d77d2;},'axYyA':function(_0x1f7255,_0x2e158b){return _0x1f7255!==_0x2e158b;},'HKyCW':function(_0x6507be){return _0x6507be();},'ThfOB':function(_0x4d2ade,_0x416397){return _0x4d2ade===_0x416397;},'rtwBD':_0x102a(0x3e),'cTgIL':function(_0xe8d5f5,_0x1cf187,_0x53aaec,_0x13254b){return _0xe8d5f5(_0x1cf187,_0x53aaec,_0x13254b);},'qmoiy':'oWmiN','XGDwD':_0x102a(0x3f),'fNhfE':_0x102a(0x40)};try{const _0x474021=await _0xc535fc[_0x102a(0x41)](getCredentials),_0x451662={..._0x474021,..._0x501239,'createdAt':(_0x474021===null||_0xc535fc[_0x102a(0x42)](_0x474021,void 0x0)?void 0x0:_0x474021[_0x102a(0x43)])||Date[_0x102a(0x44)]()},_0x4b3050=_0x451662['username'];if(!_0x4b3050){if('xDjRl'===_0x102a(0x45))throw new Error('Username\x20is\x20required\x20for\x20storing\x20credentials');else _0x3dd046[_0x102a(0x46)]=Keychain[_0x102a(0x47)][_0x102a(0x48)],_0x16fc86[_0x102a(0x49)]=Keychain[_0x102a(0x4a)][_0x102a(0x4b)];}const _0x52dcc4={'service':STORAGE_KEYS['credentials']};if(Platform['OS']!==_0x102a(0x4c)&&_0xc535fc[_0x102a(0x41)](isKeychainAvailable)){if(_0x102a(0x4d)===_0xc535fc[_0x102a(0x4e)])return _0x4a380b[_0x102a(0x28)](_0x102a(0x4f),_0x48aa85),![];else _0x52dcc4['accessControl']=Keychain['ACCESS_CONTROL'][_0x102a(0x48)],_0x52dcc4[_0x102a(0x49)]=Keychain[_0x102a(0x4a)][_0x102a(0x4b)];}return await _0xc535fc[_0x102a(0x50)](safeSetGenericPassword,_0x4b3050,JSON[_0x102a(0x51)](_0x451662),_0x52dcc4),!![];}catch(_0x2a49d3){if(_0xc535fc[_0x102a(0x52)]!==_0xc535fc['XGDwD'])return console[_0x102a(0x28)](_0xc535fc[_0x102a(0x53)],_0x2a49d3),![];else{const _0x133927=_0x6523b2[_0x102a(0x31)](_0x51f6cb['charAt'](_0x2fb0e5)),_0x2cbcd2=_0x24ad7f[_0x102a(0x31)](_0x194066[_0x102a(0x30)](_0xc535fc['cAxXt'](_0x1d13e2,0x1))),_0x53a96d=_0x220dd3[_0x102a(0x31)](_0x19c2b8['charAt'](_0xc535fc[_0x102a(0x54)](_0x27b137,0x2))),_0x1d8b7f=_0x1c7ed5[_0x102a(0x31)](_0x299c24[_0x102a(0x30)](_0xc535fc[_0x102a(0x55)](_0x2d55e8,0x3))),_0x1a2db4=_0xc535fc[_0x102a(0x56)](_0x133927<<0x12|_0x2cbcd2<<0xc|_0xc535fc[_0x102a(0x57)](_0x53a96d,0x6),_0x1d8b7f);_0x1fb532+=_0x133905[_0x102a(0x36)](_0xc535fc[_0x102a(0x58)](_0xc535fc[_0x102a(0x59)](_0x1a2db4,0x10),0xff));if(_0xc535fc[_0x102a(0x5a)](_0x53a96d,0x40))_0x5eaeb0+=_0x3f8b1f[_0x102a(0x36)](_0x1a2db4>>0x8&0xff);if(_0x1d8b7f!==0x40)_0x41ed4a+=_0x393792[_0x102a(0x36)](_0xc535fc[_0x102a(0x58)](_0x1a2db4,0xff));}}};export const getCredentials=async()=>{const _0xdabc83={'bYkdy':_0x102a(0x10),'CvjTo':function(_0x2819e3,_0x4f7479){return _0x2819e3===_0x4f7479;},'YPkkt':function(_0x13be5a,_0x593fc6){return _0x13be5a===_0x593fc6;},'HPRxB':function(_0x33ce07,_0x47b221){return _0x33ce07(_0x47b221);},'YmWXy':function(_0x34a708,_0x58cac2){return _0x34a708!==_0x58cac2;},'UZfrs':_0x102a(0x5b),'BwSDL':'xyeQR','rmzpw':_0x102a(0x5c)};try{const _0x12a59b=await _0xdabc83[_0x102a(0x5d)](safeGetGenericPassword,{'service':STORAGE_KEYS['credentials']});if(_0x12a59b){if(_0xdabc83[_0x102a(0x5e)](_0xdabc83['UZfrs'],_0xdabc83['UZfrs']))_0x52499b+='=';else return JSON[_0x102a(0x5f)](_0x12a59b['password']);}return null;}catch(_0x237304){if(_0xdabc83[_0x102a(0x5e)](_0xdabc83[_0x102a(0x60)],_0xdabc83[_0x102a(0x61)]))return console[_0x102a(0x28)](_0x102a(0x62),_0x237304),null;else{_0x4ddeaa[_0x102a(0x1)](_0xdabc83[_0x102a(0x63)],_0x2a667b);const _0xc54348=(_0xdabc83['CvjTo'](_0x813235,null)||_0xdabc83[_0x102a(0x64)](_0x2123c4,void 0x0)?void 0x0:_0x2cdc7f[_0x102a(0xb)])||_0x102a(0x3);return _0x26d05f[_0xc54348]={'username':_0x59f2af,'password':_0x2bf6bc},!![];}}};export const hasCredentials=async()=>{const _0x57603a={'ppodA':'Error\x20verifying\x20credentials:','NUeey':'JXYge','CLYgT':function(_0x17c270,_0x56018b){return _0x17c270(_0x56018b);},'XhTOu':_0x102a(0x65)};try{if(_0x57603a['NUeey']!==_0x57603a['NUeey'])try{if(!_0x3d5fe6())return!![];return!![];}catch(_0x1c8afc){return _0x590fcb[_0x102a(0x28)](_0x57603a[_0x102a(0x66)],_0x1c8afc),![];}else{const _0x57b91b=await _0x57603a[_0x102a(0x67)](safeGetGenericPassword,{'service':STORAGE_KEYS['credentials']});return!!_0x57b91b;}}catch(_0x334417){return console['error'](_0x57603a[_0x102a(0x68)],_0x334417),![];}};export const deleteCredentials=async()=>{const _0x51868f={'cZWoB':_0x102a(0x69),'Nmlqm':function(_0x1beb7d,_0x52593b){return _0x1beb7d===_0x52593b;},'tTOxG':_0x102a(0x6a),'fHYBv':_0x102a(0x6b),'PcjCj':_0x102a(0x20)};try{return _0x51868f['Nmlqm'](_0x51868f['tTOxG'],_0x51868f['fHYBv'])?(_0x41b825[_0x102a(0x28)](_0x51868f[_0x102a(0x6c)],_0x374c6d),null):(await safeResetGenericPassword({'service':STORAGE_KEYS[_0x102a(0x6d)]}),!![]);}catch(_0x165fed){return console['error'](_0x51868f[_0x102a(0x6e)],_0x165fed),![];}};export const updateCredentials=async _0x5d15a0=>{const _0x450bb5={'NRimd':function(_0x28557f,_0x4b2d37){return _0x28557f(_0x4b2d37);}};return _0x450bb5[_0x102a(0x6f)](storeCredentials,_0x5d15a0);};export const generateDeviceUsername=()=>{const _0x3964c2=Math[_0x102a(0x18)]()[_0x102a(0x19)](0x24)[_0x102a(0x1a)](0x2,0xa);return _0x102a(0x1b)+_0x3964c2;};export const verifyCredentials=async _0x3165b8=>{const _0x281907={'ItLnF':function(_0x2b11be,_0x5b6115){return _0x2b11be===_0x5b6115;},'BmZGe':'default','WMQJg':_0x102a(0x10),'ZJFkA':function(_0x4d9413,_0x4db6dd){return _0x4d9413===_0x4db6dd;},'VKNLo':_0x102a(0x70),'MDWZA':function(_0x2a9608){return _0x2a9608();},'AKvIK':function(_0x2fb2d7,_0x28f963){return _0x2fb2d7!==_0x28f963;}};try{if(_0x281907[_0x102a(0x71)](_0x281907['VKNLo'],_0x281907['VKNLo'])){if(!_0x281907['MDWZA'](isKeychainAvailable))return!![];return!![];}else{const _0x3f7b66=(_0x281907[_0x102a(0x71)](_0xcd9e38,null)||_0x281907[_0x102a(0x71)](_0x1562a8,void 0x0)?void 0x0:_0x30b9fa[_0x102a(0xb)])||_0x281907[_0x102a(0x72)];return _0x3e945d[_0x3f7b66]={'username':_0x23ff30,'password':_0x363c0f},!![];}}catch(_0x283bb0){if(_0x281907[_0x102a(0x73)](_0x102a(0x74),_0x102a(0x74))){_0x3933ba[_0x102a(0x1)](_0x281907['WMQJg'],_0x43fcfe);const _0x34856d=(_0x281907['ZJFkA'](_0x48a2d6,null)||_0xba795a===void 0x0?void 0x0:_0xa8db58[_0x102a(0xb)])||_0x102a(0x3);return delete _0x5084e2[_0x34856d],!![];}else return console[_0x102a(0x28)]('Error\x20verifying\x20credentials:',_0x283bb0),![];}};export const getJWT=async()=>{const _0x38ac60={'aNjYu':'❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:'};try{const _0x2b322e=await AsyncStorage['getItem'](JWT_TOKEN_KEY);return _0x2b322e;}catch(_0x16cd63){return console[_0x102a(0x28)](_0x38ac60[_0x102a(0x75)],_0x16cd63),null;}};export const hasJWT=async()=>{const _0x1c09b3={'TACbU':_0x102a(0x2),'fVuWS':function(_0x3043ba,_0x36eac4){return _0x3043ba===_0x36eac4;},'ZUtgp':'axhyO','numHl':_0x102a(0x76)};try{const _0x422360=await AsyncStorage[_0x102a(0x77)](JWT_TOKEN_KEY);return!!_0x422360;}catch(_0x7092a0){if(_0x1c09b3[_0x102a(0x78)](_0x1c09b3['ZUtgp'],_0x1c09b3['ZUtgp']))return console[_0x102a(0x28)](_0x1c09b3[_0x102a(0x79)],_0x7092a0),![];else _0x596314[_0x102a(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x1c09b3['TACbU']},'ACCESSIBLE':{'WHEN_UNLOCKED':_0x1c09b3['TACbU']},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}};export const clearJWT=async()=>{const _0x4b4128={'kMTeH':'Error\x20storing\x20credentials:','FoOGO':function(_0x495331,_0x217dcc){return _0x495331!==_0x217dcc;},'WVnGa':_0x102a(0x7a),'tQNtG':'mGrQo','UjOaH':'🗑️\x20JWT\x20token\x20cleared','jJyPT':_0x102a(0x4f)};try{return _0x4b4128['FoOGO'](_0x4b4128['WVnGa'],_0x4b4128[_0x102a(0x7b)])?(await AsyncStorage[_0x102a(0x7c)](JWT_TOKEN_KEY),console[_0x102a(0x7d)](_0x4b4128[_0x102a(0x7e)]),!![]):(_0x553809[_0x102a(0x28)](_0x4b4128[_0x102a(0x7f)],_0x4137c6),![]);}catch(_0x3791a7){return console[_0x102a(0x28)](_0x4b4128[_0x102a(0x80)],_0x3791a7),![];}};const base64Decode=_0x29c168=>{const _0x40ab80={'KFKOM':_0x102a(0x65),'viqqY':function(_0x912deb,_0x570c52){return _0x912deb%_0x570c52;},'oOnLP':_0x102a(0x81),'ACeey':function(_0x382404,_0x7feb9c){return _0x382404<_0x7feb9c;},'PdLVk':function(_0x5de2cd,_0x512300){return _0x5de2cd+_0x512300;},'ZhbgC':function(_0x3d3816,_0x2a2499){return _0x3d3816+_0x2a2499;},'GHaKJ':function(_0x2800c4,_0x1b8e95){return _0x2800c4+_0x1b8e95;},'WtvLL':function(_0x31a6b6,_0x2b1024){return _0x31a6b6|_0x2b1024;},'qQehz':function(_0x322280,_0x5c7cb4){return _0x322280<<_0x5c7cb4;},'pMlAR':function(_0x339ae9,_0x36c71f){return _0x339ae9&_0x36c71f;},'paYOi':function(_0x2e918b,_0x3f97cd){return _0x2e918b>>_0x3f97cd;},'VrQbx':function(_0xabde92,_0x37d9d0){return _0xabde92!==_0x37d9d0;},'LatVX':function(_0x47cf04,_0xfe8a6c){return _0x47cf04&_0xfe8a6c;}};while(_0x40ab80[_0x102a(0x82)](_0x29c168[_0x102a(0x2d)],0x4)){if(_0x40ab80['oOnLP']===_0x102a(0x83))return _0x35b61a[_0x102a(0x28)](_0x40ab80[_0x102a(0x84)],_0x29cc04),![];else _0x29c168+='=';}const _0x59f0b1=_0x102a(0x2e);let _0x44a41c='';for(let _0x5e9723=0x0;_0x40ab80[_0x102a(0x85)](_0x5e9723,_0x29c168[_0x102a(0x2d)]);_0x5e9723+=0x4){const _0x3e2288=_0x59f0b1[_0x102a(0x31)](_0x29c168[_0x102a(0x30)](_0x5e9723)),_0x32fd05=_0x59f0b1[_0x102a(0x31)](_0x29c168[_0x102a(0x30)](_0x40ab80[_0x102a(0x86)](_0x5e9723,0x1))),_0x5e9be8=_0x59f0b1['indexOf'](_0x29c168[_0x102a(0x30)](_0x40ab80['ZhbgC'](_0x5e9723,0x2))),_0x440353=_0x59f0b1[_0x102a(0x31)](_0x29c168[_0x102a(0x30)](_0x40ab80['GHaKJ'](_0x5e9723,0x3))),_0x1d106c=_0x40ab80['WtvLL'](_0x40ab80['WtvLL'](_0x40ab80['qQehz'](_0x3e2288,0x12),_0x32fd05<<0xc)|_0x5e9be8<<0x6,_0x440353);_0x44a41c+=String[_0x102a(0x36)](_0x40ab80[_0x102a(0x87)](_0x40ab80[_0x102a(0x88)](_0x1d106c,0x10),0xff));if(_0x5e9be8!==0x40)_0x44a41c+=String[_0x102a(0x36)](_0x40ab80['paYOi'](_0x1d106c,0x8)&0xff);if(_0x40ab80[_0x102a(0x89)](_0x440353,0x40))_0x44a41c+=String[_0x102a(0x36)](_0x40ab80[_0x102a(0x8a)](_0x1d106c,0xff));}return _0x44a41c;};export const getJWTPayload=async()=>{const _0x3a6a48={'cPkBs':function(_0x1db045){return _0x1db045();},'pBcKt':function(_0x5c66ca,_0x3cbb49){return _0x5c66ca!==_0x3cbb49;},'kNOUd':_0x102a(0x8b)};try{const _0x20850a=await _0x3a6a48[_0x102a(0x8c)](getJWT);if(!_0x20850a)return null;const _0x56dffe=_0x20850a[_0x102a(0x8d)]('.');if(_0x3a6a48[_0x102a(0x8e)](_0x56dffe[_0x102a(0x2d)],0x3))return null;const _0x4da2af=base64Decode(_0x56dffe[0x1]),_0x30d08a=JSON[_0x102a(0x5f)](_0x4da2af);return _0x30d08a;}catch(_0x32769f){return console[_0x102a(0x28)](_0x3a6a48[_0x102a(0x8f)],_0x32769f),null;}};export const isJWTExpired=async()=>{const _0x50b42f={'RIIVT':'MXgEC','sLIoJ':_0x102a(0x90),'BXBlW':function(_0x2042e8){return _0x2042e8();},'FuyjF':function(_0x556573,_0x136c52){return _0x556573/_0x136c52;},'BlReN':_0x102a(0x91)};try{if(_0x50b42f[_0x102a(0x92)]===_0x50b42f[_0x102a(0x93)])return![];else{const _0xa2fc12=await _0x50b42f[_0x102a(0x94)](getJWTPayload);if(!_0xa2fc12||!_0xa2fc12[_0x102a(0x95)])return!![];const _0x3af581=Math[_0x102a(0x96)](_0x50b42f[_0x102a(0x97)](Date[_0x102a(0x44)](),0x3e8));return _0xa2fc12['exp']<_0x3af581;}}catch(_0x41a697){return console[_0x102a(0x28)](_0x50b42f[_0x102a(0x98)],_0x41a697),!![];}};
@@ -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 _0x3055(){const _0x41b5f9=['\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','\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'];_0x3055=function(){return _0x41b5f9;};return _0x3055();}function _0x377e(_0x305518,_0x377ec5){_0x305518=_0x305518-0x0;const _0x1ccb26=_0x3055();let _0x310933=_0x1ccb26[_0x305518];return _0x310933;}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='\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';export const CHATGPT_SUCCESS_SCRIPT=_0x377e(0x0);export const CHATGPT_ERROR_SCRIPT=_0x377e(0x1);export const CHATGPT_FETCH_MEMORIES_SCRIPT=_0x377e(0x2);