@onairos/react-native 3.6.6 → 3.6.8

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 (216) hide show
  1. package/lib/commonjs/api/index.js +1 -1
  2. package/lib/commonjs/components/BodyText.js +1 -1
  3. package/lib/commonjs/components/BrandMark.js +1 -1
  4. package/lib/commonjs/components/CodeInput.js +1 -1
  5. package/lib/commonjs/components/EmailInput.js +1 -1
  6. package/lib/commonjs/components/GoogleButton.js +1 -1
  7. package/lib/commonjs/components/HeadingGroup.js +1 -1
  8. package/lib/commonjs/components/LLMDataInputModal.js +1 -1
  9. package/lib/commonjs/components/ModalHeader.js +1 -1
  10. package/lib/commonjs/components/ModalSheet.js +1 -1
  11. package/lib/commonjs/components/Onairos.js +1 -1
  12. package/lib/commonjs/components/OnairosButton.js +1 -1
  13. package/lib/commonjs/components/OnairosSignInButton.js +1 -1
  14. package/lib/commonjs/components/Overlay.js +1 -1
  15. package/lib/commonjs/components/PersonaImage.js +1 -1
  16. package/lib/commonjs/components/PersonaLoadingScreen.js +1 -1
  17. package/lib/commonjs/components/PersonalizationConsentScreen.js +1 -1
  18. package/lib/commonjs/components/PinCreationScreen.js +1 -1
  19. package/lib/commonjs/components/PinInput.js +1 -1
  20. package/lib/commonjs/components/PlatformConnectorsStep.js +1 -1
  21. package/lib/commonjs/components/PlatformList.js +1 -1
  22. package/lib/commonjs/components/PlatformToggle.js +1 -1
  23. package/lib/commonjs/components/PrimaryButton.js +1 -1
  24. package/lib/commonjs/components/SignInMatchAnimation.js +1 -1
  25. package/lib/commonjs/components/SignInStep.js +1 -1
  26. package/lib/commonjs/components/UniversalOnboarding.js +1 -1
  27. package/lib/commonjs/components/VerificationStep.js +1 -1
  28. package/lib/commonjs/components/WelcomeScreen.js +1 -1
  29. package/lib/commonjs/components/icons/Basicproficon.js +1 -1
  30. package/lib/commonjs/components/icons/Basicprofile.js +1 -1
  31. package/lib/commonjs/components/icons/Checkbox.js +1 -1
  32. package/lib/commonjs/components/icons/Checkmark.js +1 -1
  33. package/lib/commonjs/components/icons/Contentanalysis.js +1 -1
  34. package/lib/commonjs/components/icons/Contenticon.js +1 -1
  35. package/lib/commonjs/components/icons/EnochE.js +1 -1
  36. package/lib/commonjs/components/icons/Personalityicon.js +1 -1
  37. package/lib/commonjs/components/icons/Personalityprofile.js +1 -1
  38. package/lib/commonjs/components/icons/Personalitytraits.js +1 -1
  39. package/lib/commonjs/components/icons/Userpreferences.js +1 -1
  40. package/lib/commonjs/components/icons/index.js +1 -1
  41. package/lib/commonjs/components/onboarding/OAuthWebView.js +1 -1
  42. package/lib/commonjs/components/onboarding/OnboardingHeader.js +1 -1
  43. package/lib/commonjs/components/onboarding/PinInput.js +1 -1
  44. package/lib/commonjs/components/onboarding/PlatformConnector.js +1 -1
  45. package/lib/commonjs/config/api.js +1 -1
  46. package/lib/commonjs/constants/index.js +1 -1
  47. package/lib/commonjs/context/AuthContext.js +1 -1
  48. package/lib/commonjs/hooks/useConnectedAccounts.js +1 -1
  49. package/lib/commonjs/hooks/useConnections.js +1 -1
  50. package/lib/commonjs/hooks/useCredentials.js +1 -1
  51. package/lib/commonjs/hooks/useUserConnections.js +1 -1
  52. package/lib/commonjs/index.js +1 -1
  53. package/lib/commonjs/services/apiClient.js +1 -1
  54. package/lib/commonjs/services/biometricPinService.js +1 -1
  55. package/lib/commonjs/services/chatGPTConversationExtractor.js +1 -1
  56. package/lib/commonjs/services/chatGPTConversationService.js +1 -1
  57. package/lib/commonjs/services/claudeConversationExtractor.js +1 -1
  58. package/lib/commonjs/services/claudeConversationService.js +1 -1
  59. package/lib/commonjs/services/connectedAccountsService.js +1 -1
  60. package/lib/commonjs/services/googleAuthService.js +1 -1
  61. package/lib/commonjs/services/hingeDataExtractor.js +1 -1
  62. package/lib/commonjs/services/hingeDataService.js +1 -1
  63. package/lib/commonjs/services/imageCompressionService.js +1 -1
  64. package/lib/commonjs/services/instagramDataExtractor.js +1 -1
  65. package/lib/commonjs/services/instagramDataService.js +1 -1
  66. package/lib/commonjs/services/jwtStorageService.js +1 -1
  67. package/lib/commonjs/services/linkedinDOMExtractor.js +1 -1
  68. package/lib/commonjs/services/linkedinProfileService.js +1 -1
  69. package/lib/commonjs/services/linkedinScrapingService.js +1 -1
  70. package/lib/commonjs/services/llmDataStorage.js +1 -1
  71. package/lib/commonjs/services/mobileTrainingService.js +1 -1
  72. package/lib/commonjs/services/pinEncryptionService.js +1 -1
  73. package/lib/commonjs/services/pinStorageUtils.js +1 -1
  74. package/lib/commonjs/services/platformAuthService.js +1 -1
  75. package/lib/commonjs/services/sephoraDataExtractor.js +1 -1
  76. package/lib/commonjs/services/sephoraDataService.js +1 -1
  77. package/lib/commonjs/services/storageService.js +1 -1
  78. package/lib/commonjs/services/telegramDataExtractor.js +1 -1
  79. package/lib/commonjs/services/telegramDataService.js +1 -1
  80. package/lib/commonjs/services/trainingApiHelpers.js +1 -1
  81. package/lib/commonjs/services/userConnectionsService.js +1 -1
  82. package/lib/commonjs/services/youtubeMigrationService.js +1 -1
  83. package/lib/commonjs/theme/index.js +1 -1
  84. package/lib/commonjs/types/index.js +1 -1
  85. package/lib/commonjs/types.js +1 -1
  86. package/lib/commonjs/utils/Portal.js +1 -1
  87. package/lib/commonjs/utils/api.js +1 -1
  88. package/lib/commonjs/utils/assetRegistry.js +1 -1
  89. package/lib/commonjs/utils/auth.js +1 -1
  90. package/lib/commonjs/utils/connectorTests.js +1 -1
  91. package/lib/commonjs/utils/crypto.js +1 -1
  92. package/lib/commonjs/utils/debugHelper.js +1 -1
  93. package/lib/commonjs/utils/encryption.js +1 -1
  94. package/lib/commonjs/utils/eventUtils.js +1 -1
  95. package/lib/commonjs/utils/haptics.js +1 -1
  96. package/lib/commonjs/utils/imagePreloader.js +1 -1
  97. package/lib/commonjs/utils/networkDiagnostics.js +1 -1
  98. package/lib/commonjs/utils/onairosApi.js +1 -1
  99. package/lib/commonjs/utils/programmaticFlow.js +1 -1
  100. package/lib/commonjs/utils/retryHelper.js +1 -1
  101. package/lib/commonjs/utils/secureStorage.js +1 -1
  102. package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -1
  103. package/lib/commonjs/utils/webviewScripts/claude.js +1 -1
  104. package/lib/commonjs/utils/webviewScripts/hinge.js +1 -1
  105. package/lib/commonjs/utils/webviewScripts/index.js +1 -1
  106. package/lib/commonjs/utils/webviewScripts/instagram.js +1 -1
  107. package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -1
  108. package/lib/commonjs/utils/webviewScripts/sephora.js +1 -1
  109. package/lib/commonjs/utils/webviewScripts/telegram.js +1 -1
  110. package/lib/module/api/index.js +1 -1
  111. package/lib/module/components/BodyText.js +1 -1
  112. package/lib/module/components/BrandMark.js +1 -1
  113. package/lib/module/components/CodeInput.js +1 -1
  114. package/lib/module/components/EmailInput.js +1 -1
  115. package/lib/module/components/GoogleButton.js +1 -1
  116. package/lib/module/components/HeadingGroup.js +1 -1
  117. package/lib/module/components/LLMDataInputModal.js +1 -1
  118. package/lib/module/components/ModalHeader.js +1 -1
  119. package/lib/module/components/ModalSheet.js +1 -1
  120. package/lib/module/components/Onairos.js +1 -1
  121. package/lib/module/components/OnairosButton.js +1 -1
  122. package/lib/module/components/OnairosSignInButton.js +1 -1
  123. package/lib/module/components/Overlay.js +1 -1
  124. package/lib/module/components/PersonaImage.js +1 -1
  125. package/lib/module/components/PersonaLoadingScreen.js +1 -1
  126. package/lib/module/components/PersonalizationConsentScreen.js +1 -1
  127. package/lib/module/components/PinCreationScreen.js +1 -1
  128. package/lib/module/components/PinInput.js +1 -1
  129. package/lib/module/components/PlatformConnectorsStep.js +1 -1
  130. package/lib/module/components/PlatformList.js +1 -1
  131. package/lib/module/components/PlatformToggle.js +1 -1
  132. package/lib/module/components/PrimaryButton.js +1 -1
  133. package/lib/module/components/SignInMatchAnimation.js +1 -1
  134. package/lib/module/components/SignInStep.js +1 -1
  135. package/lib/module/components/UniversalOnboarding.js +1 -1
  136. package/lib/module/components/VerificationStep.js +1 -1
  137. package/lib/module/components/WelcomeScreen.js +1 -1
  138. package/lib/module/components/icons/Basicproficon.js +1 -1
  139. package/lib/module/components/icons/Basicprofile.js +1 -1
  140. package/lib/module/components/icons/Checkbox.js +1 -1
  141. package/lib/module/components/icons/Checkmark.js +1 -1
  142. package/lib/module/components/icons/Contentanalysis.js +1 -1
  143. package/lib/module/components/icons/Contenticon.js +1 -1
  144. package/lib/module/components/icons/EnochE.js +1 -1
  145. package/lib/module/components/icons/Personalityicon.js +1 -1
  146. package/lib/module/components/icons/Personalityprofile.js +1 -1
  147. package/lib/module/components/icons/Personalitytraits.js +1 -1
  148. package/lib/module/components/icons/Userpreferences.js +1 -1
  149. package/lib/module/components/onboarding/OAuthWebView.js +1 -1
  150. package/lib/module/components/onboarding/OnboardingHeader.js +1 -1
  151. package/lib/module/components/onboarding/PinInput.js +1 -1
  152. package/lib/module/components/onboarding/PlatformConnector.js +1 -1
  153. package/lib/module/config/api.js +1 -1
  154. package/lib/module/constants/index.js +1 -1
  155. package/lib/module/context/AuthContext.js +1 -1
  156. package/lib/module/hooks/useConnectedAccounts.js +1 -1
  157. package/lib/module/hooks/useConnections.js +1 -1
  158. package/lib/module/hooks/useCredentials.js +1 -1
  159. package/lib/module/hooks/useUserConnections.js +1 -1
  160. package/lib/module/index.js +1 -1
  161. package/lib/module/services/apiClient.js +1 -1
  162. package/lib/module/services/biometricPinService.js +1 -1
  163. package/lib/module/services/chatGPTConversationExtractor.js +1 -1
  164. package/lib/module/services/chatGPTConversationService.js +1 -1
  165. package/lib/module/services/claudeConversationExtractor.js +1 -1
  166. package/lib/module/services/claudeConversationService.js +1 -1
  167. package/lib/module/services/connectedAccountsService.js +1 -1
  168. package/lib/module/services/googleAuthService.js +1 -1
  169. package/lib/module/services/hingeDataExtractor.js +1 -1
  170. package/lib/module/services/hingeDataService.js +1 -1
  171. package/lib/module/services/imageCompressionService.js +1 -1
  172. package/lib/module/services/instagramDataExtractor.js +1 -1
  173. package/lib/module/services/instagramDataService.js +1 -1
  174. package/lib/module/services/jwtStorageService.js +1 -1
  175. package/lib/module/services/linkedinDOMExtractor.js +1 -1
  176. package/lib/module/services/linkedinProfileService.js +1 -1
  177. package/lib/module/services/linkedinScrapingService.js +1 -1
  178. package/lib/module/services/llmDataStorage.js +1 -1
  179. package/lib/module/services/mobileTrainingService.js +1 -1
  180. package/lib/module/services/pinEncryptionService.js +1 -1
  181. package/lib/module/services/pinStorageUtils.js +1 -1
  182. package/lib/module/services/platformAuthService.js +1 -1
  183. package/lib/module/services/sephoraDataExtractor.js +1 -1
  184. package/lib/module/services/sephoraDataService.js +1 -1
  185. package/lib/module/services/storageService.js +1 -1
  186. package/lib/module/services/telegramDataExtractor.js +1 -1
  187. package/lib/module/services/telegramDataService.js +1 -1
  188. package/lib/module/services/trainingApiHelpers.js +1 -1
  189. package/lib/module/services/userConnectionsService.js +1 -1
  190. package/lib/module/services/youtubeMigrationService.js +1 -1
  191. package/lib/module/theme/index.js +1 -1
  192. package/lib/module/types.js +1 -1
  193. package/lib/module/utils/Portal.js +1 -1
  194. package/lib/module/utils/api.js +1 -1
  195. package/lib/module/utils/assetRegistry.js +1 -1
  196. package/lib/module/utils/auth.js +1 -1
  197. package/lib/module/utils/connectorTests.js +1 -1
  198. package/lib/module/utils/crypto.js +1 -1
  199. package/lib/module/utils/debugHelper.js +1 -1
  200. package/lib/module/utils/encryption.js +1 -1
  201. package/lib/module/utils/eventUtils.js +1 -1
  202. package/lib/module/utils/haptics.js +1 -1
  203. package/lib/module/utils/networkDiagnostics.js +1 -1
  204. package/lib/module/utils/onairosApi.js +1 -1
  205. package/lib/module/utils/programmaticFlow.js +1 -1
  206. package/lib/module/utils/retryHelper.js +1 -1
  207. package/lib/module/utils/secureStorage.js +1 -1
  208. package/lib/module/utils/webviewScripts/chatgpt.js +1 -1
  209. package/lib/module/utils/webviewScripts/claude.js +1 -1
  210. package/lib/module/utils/webviewScripts/hinge.js +1 -1
  211. package/lib/module/utils/webviewScripts/index.js +1 -1
  212. package/lib/module/utils/webviewScripts/instagram.js +1 -1
  213. package/lib/module/utils/webviewScripts/linkedin.js +1 -1
  214. package/lib/module/utils/webviewScripts/sephora.js +1 -1
  215. package/lib/module/utils/webviewScripts/telegram.js +1 -1
  216. package/package.json +1 -1
@@ -1 +1 @@
1
- import NetInfo from'@react-native-community/netinfo';function _0x1e29(_0x4052f3,_0x1e293f){_0x4052f3=_0x4052f3-0x0;const _0x515341=_0x4052();let _0x26da51=_0x515341[_0x4052f3];return _0x26da51;}import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0x5a0696,_0x3dc9f2,_0x26db4e,_0x19247e){const _0x69fa35={'mUKRT':_0x1e29(0x0)},_0x272c84=_0x69fa35[_0x1e29(0x1)][_0x1e29(0x2)]('|');let _0x5a138f=0x0;while(!![]){switch(_0x272c84[_0x5a138f++]){case'0':this[_0x1e29(0x3)]=_0x3dc9f2;continue;case'1':this['details']=_0x19247e;continue;case'2':super(_0x5a0696);continue;case'3':this[_0x1e29(0x4)]=_0x1e29(0x5);continue;case'4':this[_0x1e29(0x6)]=_0x26db4e;continue;}break;}}}const checkNetworkConnection=async()=>{const _0x5f04f9=await NetInfo[_0x1e29(0x7)]();return _0x5f04f9['isConnected']===!![];},makeUserApiRequest=async(_0x3683fa,_0x304c50,_0x52adfe={})=>{const _0x34a163={'oSkzz':_0x1e29(0x8),'CzRWI':function(_0x18d4ca,_0x2bfab0){return _0x18d4ca instanceof _0x2bfab0;},'UPADr':function(_0x260553,_0x373f75){return _0x260553===_0x373f75;},'cAnSd':_0x1e29(0x9),'OtLrS':'timeout_error','imOTJ':function(_0x4923ed,_0x1b689b,_0x17ae97){return _0x4923ed(_0x1b689b,_0x17ae97);},'BrwfP':'User\x20API\x20Error','MZRpP':_0x1e29(0xa),'lpkhE':_0x1e29(0xb),'MQERF':function(_0x3d33a0,_0x1a115e,_0x12d182){return _0x3d33a0(_0x1a115e,_0x12d182);},'tYidh':_0x1e29(0xc),'scmck':'WipmY','XKPIf':_0x1e29(0xd),'ldFwL':function(_0x3f76be){return _0x3f76be();},'ksUuS':'User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','UtvhS':'User\x20API\x20Request','BMjbr':'[REDACTED]','OjEUy':function(_0xf837ad,_0x1a78f5){return _0xf837ad||_0x1a78f5;},'XWJRj':'CSqLv','BmERl':_0x1e29(0xe),'fIuHK':function(_0x43603c,_0x5748f7){return _0x43603c>=_0x5748f7;},'dfioI':_0x1e29(0xf),'OCXnb':'unknown_error','FycRL':function(_0x55a3ff,_0xf4510e){return _0x55a3ff===_0xf4510e;},'lBPNC':function(_0x24c1c8,_0x3ca839){return _0x24c1c8===_0x3ca839;},'zRQHn':function(_0x247de4,_0x4fef35){return _0x247de4===_0x4fef35;},'DTkGr':function(_0x11e5b7,_0x276e95){return _0x11e5b7===_0x276e95;},'SxPeK':'wlcmy','HOlEF':_0x1e29(0x10),'yLIhQ':function(_0x2f1755,_0xae758a,_0x10647b){return _0x2f1755(_0xae758a,_0x10647b);},'CoSmA':_0x1e29(0x11)},{data:_0x5ea24a,headers:headers={},debug:debug=![]}=_0x52adfe;try{if(_0x34a163[_0x1e29(0x12)](_0x1e29(0x13),_0x34a163['scmck']))throw new _0x58bfb2(_0x1e29(0x14),_0x34a163[_0x1e29(0x15)]);else{const _0x5131cc=await checkNetworkConnection();if(!_0x5131cc){if(_0x34a163[_0x1e29(0x12)](_0x34a163[_0x1e29(0x16)],_0x34a163[_0x1e29(0x16)]))throw new ApiError(_0x1e29(0xa),_0x34a163['lpkhE']);else{if(_0x34a163[_0x1e29(0x17)](_0x5ea433,_0x41990d))throw _0x508f07;if(_0x34a163['UPADr'](_0x38da1c[_0x1e29(0x4)],_0x1e29(0x10)))throw new _0x2fd403(_0x34a163['cAnSd'],_0x34a163['OtLrS']);_0x17bc70&&_0x34a163[_0x1e29(0x18)](_0x221b01,_0x34a163[_0x1e29(0x19)],{'endpoint':_0x29b7d6,'method':_0x144303,'error':_0x510e55[_0x1e29(0x1a)]||_0x1e29(0x1b)});throw new _0x2d896e(_0x5698b2[_0x1e29(0x1a)]||_0x1e29(0x11),_0x1e29(0x1c));}}if(!_0x34a163['ldFwL'](isUserAuthenticated))throw new ApiError(_0x34a163[_0x1e29(0x1d)],_0x34a163[_0x1e29(0x15)]);debug&&_0x34a163[_0x1e29(0x1e)](logDebug,_0x34a163['UtvhS'],{'endpoint':_0x3683fa,'method':_0x304c50,'headers':{...headers,'Authorization':_0x34a163['BMjbr']},'data':_0x34a163['OjEUy'](_0x5ea24a,null)});const _0x4687c8=await makeUserRequest(_0x3683fa,{'method':_0x304c50,'headers':headers,..._0x5ea24a?{'body':JSON[_0x1e29(0x1f)](_0x5ea24a)}:{}}),_0x4e8c32=await _0x4687c8[_0x1e29(0x20)]();if(debug){if(_0x34a163['XWJRj']!==_0x1e29(0x21))_0x34a163['imOTJ'](logDebug,_0x34a163[_0x1e29(0x22)],{'status':_0x4687c8['status'],'data':_0x4e8c32});else throw new _0xe5aeb7(_0x34a163['MZRpP'],_0x34a163['lpkhE']);}if(!_0x4687c8['ok']){var _0x37f82d,_0x261286,_0x5dc9f0;const _0xb41b88=_0x4687c8[_0x1e29(0x23)]===0x191||_0x4687c8[_0x1e29(0x23)]===0x193?'auth_error':_0x4687c8['status']===0x190?_0x34a163[_0x1e29(0x24)]:_0x34a163[_0x1e29(0x25)](_0x4687c8['status'],0x1f4)?_0x34a163['dfioI']:_0x34a163['OCXnb'];throw new ApiError((_0x34a163[_0x1e29(0x12)](_0x37f82d=_0x4e8c32[_0x1e29(0x26)],null)||_0x34a163[_0x1e29(0x27)](_0x37f82d,void 0x0)?void 0x0:_0x37f82d[_0x1e29(0x1a)])||_0x1e29(0x28),_0xb41b88,_0x34a163[_0x1e29(0x29)](_0x261286=_0x4e8c32[_0x1e29(0x26)],null)||_0x261286===void 0x0?void 0x0:_0x261286[_0x1e29(0x6)],_0x34a163[_0x1e29(0x2a)](_0x5dc9f0=_0x4e8c32[_0x1e29(0x26)],null)||_0x34a163[_0x1e29(0x2b)](_0x5dc9f0,void 0x0)?void 0x0:_0x5dc9f0[_0x1e29(0x2c)]);}return _0x4e8c32;}}catch(_0x1f8e94){if(_0x34a163[_0x1e29(0x2d)]!==_0x1e29(0x2e)){if(_0x1f8e94 instanceof ApiError)throw _0x1f8e94;if(_0x1f8e94[_0x1e29(0x4)]===_0x34a163['HOlEF'])throw new ApiError(_0x34a163[_0x1e29(0x2f)],_0x34a163['OtLrS']);debug&&_0x34a163[_0x1e29(0x30)](logDebug,_0x34a163[_0x1e29(0x19)],{'endpoint':_0x3683fa,'method':_0x304c50,'error':_0x1f8e94[_0x1e29(0x1a)]||_0x1e29(0x1b)});throw new ApiError(_0x1f8e94[_0x1e29(0x1a)]||_0x34a163[_0x1e29(0x31)],_0x34a163[_0x1e29(0x32)]);}else _0x34a163[_0x1e29(0x1e)](_0x5db240,_0x34a163['tYidh'],{'status':_0x5cc316[_0x1e29(0x23)],'data':_0x58d58a});}},makeDeveloperApiRequest=async(_0xbd78da,_0x507ded,_0x2cf390={})=>{const _0x3b7efc={'ullFm':_0x1e29(0xa),'NfVTo':_0x1e29(0xb),'WcBmj':function(_0x21f59f,_0x211207,_0x31e10e){return _0x21f59f(_0x211207,_0x31e10e);},'JFbIz':_0x1e29(0x33),'bGSNP':_0x1e29(0x34),'BmdNs':function(_0x556905,_0x4e6c11){return _0x556905||_0x4e6c11;},'EZWJW':function(_0x4fb0d5){return _0x4fb0d5();},'xqmiO':function(_0x2c3460,_0x235fdf){return _0x2c3460||_0x235fdf;},'gURQy':function(_0x46a882,_0x1814a6,_0x567785){return _0x46a882(_0x1814a6,_0x567785);},'MqtfO':function(_0x183201,_0xe0f90b){return _0x183201===_0xe0f90b;},'rHXSf':'auth_error','QYTzT':function(_0x1c9f2a,_0x43ec24){return _0x1c9f2a===_0x43ec24;},'Eodug':_0x1e29(0xe),'KZFDX':_0x1e29(0xf),'mjfFz':function(_0x28bb48,_0x1fec81){return _0x28bb48===_0x1fec81;},'NuhfO':_0x1e29(0x35),'mFhsH':_0x1e29(0x36),'Rrbgu':function(_0x5caed4,_0x475346){return _0x5caed4===_0x475346;},'jrPaF':_0x1e29(0x37),'tNPUS':'Request\x20timed\x20out','UtTQs':'timeout_error','tcaFc':function(_0x1a98d8,_0x4e700b){return _0x1a98d8!==_0x4e700b;},'NRMeQ':_0x1e29(0x38),'gYOPZ':_0x1e29(0x39),'sdMsQ':_0x1e29(0x1b),'yoZnu':_0x1e29(0x1c)},{data:_0x579f19,headers:headers={},debug:debug=![]}=_0x2cf390;try{const _0x36c6a6=await _0x3b7efc[_0x1e29(0x3a)](checkNetworkConnection);if(!_0x36c6a6)throw new ApiError(_0x1e29(0xa),_0x1e29(0xb));debug&&logDebug(_0x1e29(0x33),{'endpoint':_0xbd78da,'method':_0x507ded,'headers':{...headers,'Authorization':_0x3b7efc[_0x1e29(0x3b)]},'data':_0x3b7efc['xqmiO'](_0x579f19,null)});const _0x173311=await makeDeveloperRequest(_0xbd78da,{'method':_0x507ded,'headers':headers,..._0x579f19?{'body':JSON[_0x1e29(0x1f)](_0x579f19)}:{}}),_0x3cdffc=await _0x173311[_0x1e29(0x20)]();debug&&_0x3b7efc[_0x1e29(0x3c)](logDebug,_0x1e29(0x3d),{'status':_0x173311[_0x1e29(0x23)],'data':_0x3cdffc});if(!_0x173311['ok']){var _0x5b93ba,_0x150633,_0x43de5c;const _0x51bbf1=_0x3b7efc[_0x1e29(0x3e)](_0x173311[_0x1e29(0x23)],0x191)||_0x173311['status']===0x193?_0x3b7efc['rHXSf']:_0x3b7efc['QYTzT'](_0x173311[_0x1e29(0x23)],0x190)?_0x3b7efc['Eodug']:_0x173311[_0x1e29(0x23)]>=0x1f4?_0x3b7efc[_0x1e29(0x3f)]:'unknown_error';throw new ApiError((_0x3b7efc[_0x1e29(0x3e)](_0x5b93ba=_0x3cdffc[_0x1e29(0x26)],null)||_0x3b7efc[_0x1e29(0x3e)](_0x5b93ba,void 0x0)?void 0x0:_0x5b93ba[_0x1e29(0x1a)])||_0x1e29(0x28),_0x51bbf1,_0x3b7efc[_0x1e29(0x40)](_0x150633=_0x3cdffc[_0x1e29(0x26)],null)||_0x3b7efc['QYTzT'](_0x150633,void 0x0)?void 0x0:_0x150633[_0x1e29(0x6)],(_0x43de5c=_0x3cdffc[_0x1e29(0x26)])===null||_0x3b7efc[_0x1e29(0x3e)](_0x43de5c,void 0x0)?void 0x0:_0x43de5c['details']);}return _0x3cdffc;}catch(_0x329faa){if(_0x3b7efc[_0x1e29(0x41)]===_0x3b7efc['mFhsH'])throw new _0x143683(_0x3b7efc[_0x1e29(0x42)],_0x3b7efc[_0x1e29(0x43)]);else{if(_0x329faa instanceof ApiError){if(_0x3b7efc[_0x1e29(0x44)](_0x3b7efc[_0x1e29(0x45)],_0x1e29(0x37)))throw _0x329faa;else return{'isValid':![],'message':_0x5e2909[_0x1e29(0x1a)]};}if(_0x3b7efc[_0x1e29(0x40)](_0x329faa['name'],'AbortError'))throw new ApiError(_0x3b7efc[_0x1e29(0x46)],_0x3b7efc[_0x1e29(0x47)]);debug&&(_0x3b7efc['tcaFc']('PlIRV',_0x3b7efc[_0x1e29(0x48)])?_0x3b7efc[_0x1e29(0x49)](_0xfa262a,_0x3b7efc['JFbIz'],{'endpoint':_0x251e97,'method':_0x2a9952,'headers':{..._0xa2bbab,'Authorization':_0x3b7efc[_0x1e29(0x3b)]},'data':_0x3b7efc[_0x1e29(0x4a)](_0x39cdac,null)}):_0x3b7efc[_0x1e29(0x3c)](logDebug,_0x3b7efc[_0x1e29(0x4b)],{'endpoint':_0xbd78da,'method':_0x507ded,'error':_0x329faa[_0x1e29(0x1a)]||_0x3b7efc[_0x1e29(0x4c)]}));throw new ApiError(_0x329faa[_0x1e29(0x1a)]||'An\x20unexpected\x20error\x20occurred',_0x3b7efc[_0x1e29(0x4d)]);}}};export const validateCredentials=async(_0x1ccfe7,_0x224e2e={'debug':![]})=>{const _0x5187e6={'MFmna':function(_0x4fe2b4,_0x11268b){return _0x4fe2b4===_0x11268b;},'UMYGB':_0x1e29(0x4e),'ziZlt':_0x1e29(0x4f),'AkOyt':function(_0x350ffb,_0x59d813){return _0x350ffb===_0x59d813;}};try{if(_0x5187e6[_0x1e29(0x50)](_0x1e29(0x4e),_0x5187e6[_0x1e29(0x51)])){var _0x2b017d,_0x5d642e;const _0x39a614=await makeUserApiRequest(_0x5187e6['ziZlt'],'POST',{'data':{'username':_0x1ccfe7},'debug':_0x224e2e[_0x1e29(0x52)]});return{'isValid':_0x39a614[_0x1e29(0x53)]&&_0x5187e6[_0x1e29(0x54)](_0x5187e6[_0x1e29(0x50)](_0x2b017d=_0x39a614[_0x1e29(0x55)],null)||_0x2b017d===void 0x0?void 0x0:_0x2b017d[_0x1e29(0x56)],!![]),'message':(_0x5d642e=_0x39a614[_0x1e29(0x26)])===null||_0x5187e6['AkOyt'](_0x5d642e,void 0x0)?void 0x0:_0x5d642e[_0x1e29(0x1a)]};}else throw _0x16864d;}catch(_0x464a29){return{'isValid':![],'message':_0x464a29[_0x1e29(0x1a)]};}};export const createAccount=async(_0x3abf86,_0x5ceca7={'debug':![]})=>{const _0x2a44f0={'gIWWU':_0x1e29(0x57)};return makeDeveloperApiRequest(_0x2a44f0[_0x1e29(0x58)],'POST',{'data':{'username':_0x3abf86[_0x1e29(0x59)],'platforms':_0x3abf86[_0x1e29(0x5a)]},'debug':_0x5ceca7['debug']});};export const authenticate=async(_0xb76e5f,_0x292ec9={'debug':![]})=>{const _0x316faa={'DeRHg':function(_0x512e6a,_0x380557,_0x3d2269,_0x4b762a){return _0x512e6a(_0x380557,_0x3d2269,_0x4b762a);}};return _0x316faa[_0x1e29(0x5b)](makeUserApiRequest,_0x1e29(0x5c),'POST',{'data':{'username':_0xb76e5f[_0x1e29(0x59)],'pin':_0xb76e5f[_0x1e29(0x5d)]},'debug':_0x292ec9['debug']});};function _0x4052(){const _0x3b424b=['2|0|4|1|3','mUKRT','split','type','name','ApiError','code','fetch','auth_error','Request\x20timed\x20out','No\x20network\x20connection\x20available','network_error','User\x20API\x20Response','twQEw','validation_error','server_error','AbortError','An\x20unexpected\x20error\x20occurred','UPADr','HlzRH','No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','oSkzz','XKPIf','CzRWI','imOTJ','BrwfP','message','Unknown\x20error','unknown_error','ksUuS','MQERF','stringify','json','kEQUj','tYidh','status','BmERl','fIuHK','error','FycRL','API\x20request\x20failed','lBPNC','zRQHn','DTkGr','details','SxPeK','xPSyM','cAnSd','yLIhQ','CoSmA','OCXnb','Developer\x20API\x20Request','[REDACTED]','AfRzE','GufFE','GTxVg','PlIRV','Developer\x20API\x20Error','EZWJW','bGSNP','gURQy','Developer\x20API\x20Response','MqtfO','KZFDX','mjfFz','NuhfO','ullFm','NfVTo','Rrbgu','jrPaF','tNPUS','UtTQs','NRMeQ','WcBmj','BmdNs','gYOPZ','sdMsQ','yoZnu','yvnvX','auth/validate','MFmna','UMYGB','debug','success','AkOyt','data','isValid','auth/register','gIWWU','username','platforms','DeRHg','auth/login','userPin','auth/refresh','jqfOS','platforms/','/data','wloRy','user/platforms','store-pin/mobile','qtXoM','OYEdD','CbYEF'];_0x4052=function(){return _0x3b424b;};return _0x4052();}export const refreshToken=async(_0x20c760,_0x3cc0a4={'debug':![]})=>{const _0x1b2f3c={'jqfOS':function(_0xd13a97,_0x16c0d6,_0x2042f2,_0x65c30c){return _0xd13a97(_0x16c0d6,_0x2042f2,_0x65c30c);},'guSue':_0x1e29(0x5e)};return _0x1b2f3c[_0x1e29(0x5f)](makeUserApiRequest,_0x1b2f3c['guSue'],'POST',{'data':{'refreshToken':_0x20c760},'debug':_0x3cc0a4['debug']});};export const getPlatformData=async(_0x3db17a,_0x3cf9cc={'debug':![]})=>{const _0x8a726f={'daixk':function(_0x5b9d41,_0x156a2b,_0x5ba76c,_0x4406c8){return _0x5b9d41(_0x156a2b,_0x5ba76c,_0x4406c8);}};return _0x8a726f['daixk'](makeUserApiRequest,_0x1e29(0x60)+_0x3db17a+_0x1e29(0x61),'GET',{'debug':_0x3cf9cc[_0x1e29(0x52)]});};export const getUserProfile=async(_0x34f5b3={'debug':![]})=>{const _0x45c173={'wloRy':function(_0x2ad07a,_0x3fea1f,_0x53591e,_0xb0f416){return _0x2ad07a(_0x3fea1f,_0x53591e,_0xb0f416);}};return _0x45c173[_0x1e29(0x62)](makeUserApiRequest,'user/profile','GET',{'debug':_0x34f5b3[_0x1e29(0x52)]});};export const updatePlatformConnections=async(_0x22b120,_0x412c0c={'debug':![]})=>{const _0x26fc01={'BXeRB':function(_0x4e7a00,_0x5a2a4d,_0x14139c,_0x729c60){return _0x4e7a00(_0x5a2a4d,_0x14139c,_0x729c60);}};return _0x26fc01['BXeRB'](makeUserApiRequest,_0x1e29(0x63),'PUT',{'data':{'platforms':_0x22b120},'debug':_0x412c0c[_0x1e29(0x52)]});};export const storePIN=async(_0x3d6c09,_0x1b590f={})=>{const _0x3a291c={'qtXoM':function(_0x4d0d8a){return _0x4d0d8a();},'wKsfp':_0x1e29(0x64)},{debug:debug=![],username:_0x2eae3d}=_0x1b590f,_0x37b75f=_0x2eae3d||_0x3a291c[_0x1e29(0x65)](extractUsernameFromJWT);if(!_0x37b75f)throw new ApiError(_0x1e29(0x14),'auth_error');return makeUserApiRequest(_0x3a291c['wKsfp'],'POST',{'data':{'username':_0x37b75f,'pin':_0x3d6c09},'debug':debug});};export const getCurrentUserToken=async()=>{const _0x51bee7={'OYEdD':function(_0x35fce1){return _0x35fce1();}};return await _0x51bee7[_0x1e29(0x66)](getJWT);};export const isCurrentUserAuthenticated=()=>{const _0x4b9314={'CbYEF':function(_0x265a74){return _0x265a74();}};return _0x4b9314[_0x1e29(0x67)](isUserAuthenticated);};
1
+ import NetInfo from'@react-native-community/netinfo';import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0x6afbd4,_0x53988f,_0x2afcbc,_0x5063fb){const _0x58ae0e={'aVKgg':_0x31bb(0x0),'EDsOp':_0x31bb(0x1)},_0x8547af=_0x58ae0e[_0x31bb(0x2)]['split']('|');let _0x5c97bc=0x0;while(!![]){switch(_0x8547af[_0x5c97bc++]){case'0':this[_0x31bb(0x3)]=_0x2afcbc;continue;case'1':this['type']=_0x53988f;continue;case'2':super(_0x6afbd4);continue;case'3':this[_0x31bb(0x4)]=_0x58ae0e[_0x31bb(0x5)];continue;case'4':this['details']=_0x5063fb;continue;}break;}}}const checkNetworkConnection=async()=>{const _0x5c6947={'cftYg':function(_0x1d91be,_0x173ede){return _0x1d91be===_0x173ede;}},_0x3c78c6=await NetInfo[_0x31bb(0x6)]();return _0x5c6947['cftYg'](_0x3c78c6['isConnected'],!![]);},makeUserApiRequest=async(_0x308c18,_0x56c6ff,_0x32ab3c={})=>{const _0x34b48c={'PZTIc':function(_0x56fe12,_0x25216c){return _0x56fe12===_0x25216c;},'yAolD':'validation_error','GbOma':function(_0x53c450,_0x293d45){return _0x53c450>=_0x293d45;},'ZixcG':_0x31bb(0x7),'wNGaj':_0x31bb(0x8),'ENgUl':function(_0x22f28a,_0x251a64){return _0x22f28a===_0x251a64;},'tqlrf':function(_0x126017,_0x4e91c4){return _0x126017===_0x4e91c4;},'OnmlM':function(_0x2b7f30,_0x2a487d){return _0x2b7f30!==_0x2a487d;},'msHNd':_0x31bb(0x9),'AHJbA':function(_0x227d42){return _0x227d42();},'fIthp':_0x31bb(0xa),'reDYq':_0x31bb(0xb),'YeGna':_0x31bb(0xc),'Llmjf':function(_0x39cb97,_0x42cfe1){return _0x39cb97||_0x42cfe1;},'csFTD':function(_0x4dd6f5,_0x1cc017,_0x89bdff){return _0x4dd6f5(_0x1cc017,_0x89bdff);},'Ylaqi':function(_0x3df693,_0x48e591){return _0x3df693===_0x48e591;},'JMLrO':_0x31bb(0xd),'dhhCh':function(_0x49d73d,_0x56e79d){return _0x49d73d===_0x56e79d;},'XWQxV':function(_0x892b9b,_0x37f4d6){return _0x892b9b===_0x37f4d6;},'LqfWa':'AbortError','csCPA':_0x31bb(0xe),'AeeLK':_0x31bb(0xf),'wbweo':function(_0x25d833,_0x5732ff,_0x47387b){return _0x25d833(_0x5732ff,_0x47387b);},'ltdVg':_0x31bb(0x10),'RRvkU':'Unknown\x20error','qgmbB':_0x31bb(0x11)},{data:_0x3e55d9,headers:headers={},debug:debug=![]}=_0x32ab3c;try{if(_0x34b48c[_0x31bb(0x12)](_0x34b48c['msHNd'],_0x34b48c[_0x31bb(0x13)])){var _0x184e90,_0xe15f88,_0x299c8f;const _0x3adc24=_0x34b48c['PZTIc'](_0xa2788a['status'],0x191)||_0x1499dc['status']===0x193?'auth_error':_0x5e6f32['status']===0x190?_0x34b48c[_0x31bb(0x14)]:_0x34b48c[_0x31bb(0x15)](_0x3ab512[_0x31bb(0x16)],0x1f4)?_0x34b48c[_0x31bb(0x17)]:_0x31bb(0xd);throw new _0x16e537((_0x34b48c[_0x31bb(0x18)](_0x184e90=_0x146760[_0x31bb(0x19)],null)||_0x184e90===void 0x0?void 0x0:_0x184e90[_0x31bb(0x1a)])||_0x34b48c[_0x31bb(0x1b)],_0x3adc24,_0x34b48c['ENgUl'](_0xe15f88=_0xa33f4d['error'],null)||_0x34b48c[_0x31bb(0x1c)](_0xe15f88,void 0x0)?void 0x0:_0xe15f88[_0x31bb(0x3)],(_0x299c8f=_0x28e1eb[_0x31bb(0x19)])===null||_0x299c8f===void 0x0?void 0x0:_0x299c8f[_0x31bb(0x1d)]);}else{const _0x45a231=await _0x34b48c[_0x31bb(0x1e)](checkNetworkConnection);if(!_0x45a231)throw new ApiError(_0x31bb(0x1f),_0x34b48c[_0x31bb(0x20)]);if(!isUserAuthenticated())throw new ApiError(_0x34b48c[_0x31bb(0x21)],_0x34b48c['YeGna']);debug&&logDebug(_0x31bb(0x22),{'endpoint':_0x308c18,'method':_0x56c6ff,'headers':{...headers,'Authorization':_0x31bb(0x23)},'data':_0x34b48c['Llmjf'](_0x3e55d9,null)});const _0x38deec=await _0x34b48c[_0x31bb(0x24)](makeUserRequest,_0x308c18,{'method':_0x56c6ff,'headers':headers,..._0x3e55d9?{'body':JSON[_0x31bb(0x25)](_0x3e55d9)}:{}}),_0x16c348=await _0x38deec[_0x31bb(0x26)]();debug&&logDebug(_0x31bb(0x27),{'status':_0x38deec[_0x31bb(0x16)],'data':_0x16c348});if(!_0x38deec['ok']){var _0x3973de,_0x2c7e11,_0x417884;const _0x546471=_0x34b48c['Ylaqi'](_0x38deec[_0x31bb(0x16)],0x191)||_0x34b48c[_0x31bb(0x28)](_0x38deec[_0x31bb(0x16)],0x193)?_0x31bb(0xc):_0x38deec['status']===0x190?_0x31bb(0x29):_0x34b48c[_0x31bb(0x15)](_0x38deec[_0x31bb(0x16)],0x1f4)?_0x34b48c[_0x31bb(0x17)]:_0x34b48c['JMLrO'];throw new ApiError((_0x34b48c[_0x31bb(0x28)](_0x3973de=_0x16c348[_0x31bb(0x19)],null)||_0x34b48c[_0x31bb(0x2a)](_0x3973de,void 0x0)?void 0x0:_0x3973de[_0x31bb(0x1a)])||_0x34b48c['wNGaj'],_0x546471,_0x34b48c[_0x31bb(0x2a)](_0x2c7e11=_0x16c348[_0x31bb(0x19)],null)||_0x2c7e11===void 0x0?void 0x0:_0x2c7e11[_0x31bb(0x3)],_0x34b48c[_0x31bb(0x2a)](_0x417884=_0x16c348['error'],null)||_0x34b48c[_0x31bb(0x2a)](_0x417884,void 0x0)?void 0x0:_0x417884[_0x31bb(0x1d)]);}return _0x16c348;}}catch(_0x346e88){if(_0x346e88 instanceof ApiError)throw _0x346e88;if(_0x34b48c[_0x31bb(0x2b)](_0x346e88[_0x31bb(0x4)],_0x34b48c[_0x31bb(0x2c)]))throw new ApiError(_0x34b48c[_0x31bb(0x2d)],_0x34b48c[_0x31bb(0x2e)]);debug&&_0x34b48c[_0x31bb(0x2f)](logDebug,_0x34b48c['ltdVg'],{'endpoint':_0x308c18,'method':_0x56c6ff,'error':_0x346e88[_0x31bb(0x1a)]||_0x34b48c['RRvkU']});throw new ApiError(_0x346e88[_0x31bb(0x1a)]||_0x34b48c['qgmbB'],_0x34b48c[_0x31bb(0x30)]);}},makeDeveloperApiRequest=async(_0x13431a,_0x56f294,_0x368edc={})=>{const _0x1de533={'uyZLm':_0x31bb(0xb),'TlTih':_0x31bb(0xc),'MxSlg':function(_0xa4705){return _0xa4705();},'UxXGN':_0x31bb(0x31),'TqibN':'store-pin/mobile','wkUiy':function(_0x558554,_0x2e48c5,_0x1590b9,_0x35e078){return _0x558554(_0x2e48c5,_0x1590b9,_0x35e078);},'lAzzS':_0x31bb(0x32),'MVthi':_0x31bb(0x1f),'ZMtCW':_0x31bb(0xa),'iGNND':function(_0x5cc3ae,_0x2515da){return _0x5cc3ae!==_0x2515da;},'kyJML':_0x31bb(0x33),'wryCx':function(_0x1ebfcd,_0x340836,_0x23241d){return _0x1ebfcd(_0x340836,_0x23241d);},'MsalT':_0x31bb(0x34),'mLSZz':function(_0x1ebb26,_0x5d4e45,_0x4f04ef){return _0x1ebb26(_0x5d4e45,_0x4f04ef);},'xUISb':'eRPCG','PHtpP':_0x31bb(0x35),'uIjrj':function(_0x11dd60,_0x545607){return _0x11dd60===_0x545607;},'bzVid':function(_0x47674d,_0xa157c){return _0x47674d===_0xa157c;},'XSQAX':_0x31bb(0x29),'WTDIr':function(_0x326441,_0x4ac6e5){return _0x326441>=_0x4ac6e5;},'NInjL':_0x31bb(0x7),'IuKhr':_0x31bb(0xd),'GVPhw':function(_0x4d3760,_0x42a880){return _0x4d3760===_0x42a880;},'SOPvx':function(_0xcf3ce8,_0x23c0ae){return _0xcf3ce8===_0x23c0ae;},'fKQaj':_0x31bb(0x36),'HNExe':function(_0x170586,_0x4c7cc6){return _0x170586 instanceof _0x4c7cc6;},'nImNH':'nTFqV','JmLAO':'AbortError','KFVRi':_0x31bb(0xe),'FUUzs':_0x31bb(0x37),'ITmuX':_0x31bb(0x38)},{data:_0x224b89,headers:headers={},debug:debug=![]}=_0x368edc;try{const _0xda5ee4=await _0x1de533[_0x31bb(0x39)](checkNetworkConnection);if(!_0xda5ee4){if(_0x1de533[_0x31bb(0x3a)]===_0x1de533[_0x31bb(0x3a)])throw new ApiError(_0x1de533[_0x31bb(0x3b)],_0x1de533['ZMtCW']);else throw new _0x53d116(_0x1de533[_0x31bb(0x3c)],_0x1de533[_0x31bb(0x3d)]);}if(debug){if(_0x1de533[_0x31bb(0x3e)](_0x1de533[_0x31bb(0x3f)],_0x1de533[_0x31bb(0x3f)]))throw new _0x4eaf27(_0x31bb(0xe),'timeout_error');else _0x1de533['wryCx'](logDebug,_0x1de533['MsalT'],{'endpoint':_0x13431a,'method':_0x56f294,'headers':{...headers,'Authorization':_0x31bb(0x23)},'data':_0x224b89||null});}const _0x53b3f5=await _0x1de533[_0x31bb(0x40)](makeDeveloperRequest,_0x13431a,{'method':_0x56f294,'headers':headers,..._0x224b89?{'body':JSON[_0x31bb(0x25)](_0x224b89)}:{}}),_0x3fbe57=await _0x53b3f5['json']();if(debug){if(_0x1de533[_0x31bb(0x3e)](_0x1de533[_0x31bb(0x41)],_0x1de533[_0x31bb(0x42)]))logDebug(_0x31bb(0x43),{'status':_0x53b3f5[_0x31bb(0x16)],'data':_0x3fbe57});else{const {debug:debug=![],username:_0x204d49}=_0x87a3aa,_0xcf7964=_0x204d49||_0x1de533[_0x31bb(0x39)](_0x1efb34);if(!_0xcf7964)throw new _0x1fa555(_0x1de533[_0x31bb(0x44)],_0x1de533[_0x31bb(0x3d)]);return _0x1c181e(_0x1de533['TqibN'],'POST',{'data':{'username':_0xcf7964,'pin':_0x47b40c},'debug':debug});}}if(!_0x53b3f5['ok']){var _0x5bbf27,_0x1a977e,_0x49a06d;const _0x26e605=_0x1de533[_0x31bb(0x45)](_0x53b3f5[_0x31bb(0x16)],0x191)||_0x1de533[_0x31bb(0x46)](_0x53b3f5[_0x31bb(0x16)],0x193)?_0x1de533[_0x31bb(0x3d)]:_0x1de533[_0x31bb(0x46)](_0x53b3f5[_0x31bb(0x16)],0x190)?_0x1de533[_0x31bb(0x47)]:_0x1de533[_0x31bb(0x48)](_0x53b3f5[_0x31bb(0x16)],0x1f4)?_0x1de533[_0x31bb(0x49)]:_0x1de533[_0x31bb(0x4a)];throw new ApiError((_0x1de533[_0x31bb(0x4b)](_0x5bbf27=_0x3fbe57[_0x31bb(0x19)],null)||_0x5bbf27===void 0x0?void 0x0:_0x5bbf27[_0x31bb(0x1a)])||'API\x20request\x20failed',_0x26e605,_0x1de533['uIjrj'](_0x1a977e=_0x3fbe57['error'],null)||_0x1de533[_0x31bb(0x4c)](_0x1a977e,void 0x0)?void 0x0:_0x1a977e[_0x31bb(0x3)],_0x1de533[_0x31bb(0x4c)](_0x49a06d=_0x3fbe57[_0x31bb(0x19)],null)||_0x49a06d===void 0x0?void 0x0:_0x49a06d[_0x31bb(0x1d)]);}return _0x3fbe57;}catch(_0x402af7){if(_0x1de533['bzVid'](_0x1de533[_0x31bb(0x4d)],_0x1de533['fKQaj'])){if(_0x1de533[_0x31bb(0x4e)](_0x402af7,ApiError)){if(_0x1de533[_0x31bb(0x46)](_0x1de533[_0x31bb(0x4f)],_0x31bb(0x50)))throw _0x1c853f;else throw _0x402af7;}if(_0x1de533[_0x31bb(0x45)](_0x402af7['name'],_0x1de533['JmLAO']))throw new ApiError(_0x1de533[_0x31bb(0x51)],'timeout_error');debug&&_0x1de533[_0x31bb(0x40)](logDebug,_0x1de533[_0x31bb(0x52)],{'endpoint':_0x13431a,'method':_0x56f294,'error':_0x402af7[_0x31bb(0x1a)]||_0x1de533[_0x31bb(0x53)]});throw new ApiError(_0x402af7['message']||'An\x20unexpected\x20error\x20occurred',_0x1de533[_0x31bb(0x4a)]);}else return _0x1de533['wkUiy'](_0x3d9001,'auth/register','POST',{'data':{'username':_0x7f070d['username'],'platforms':_0xa0ba8c['platforms']},'debug':_0x2e4d77[_0x31bb(0x54)]});}};export const validateCredentials=async(_0x369fb1,_0x36a2b3={'debug':![]})=>{const _0x2496b7={'vMFwV':function(_0x21a2db,_0x299464,_0x548fea,_0x566c42){return _0x21a2db(_0x299464,_0x548fea,_0x566c42);},'ZgUNI':function(_0x72b070,_0x4e1e8d){return _0x72b070===_0x4e1e8d;},'Izbaw':function(_0xc69f89,_0x2a15de){return _0xc69f89===_0x2a15de;}};try{var _0x14b4a9,_0x39f54a;const _0x5237f0=await _0x2496b7[_0x31bb(0x55)](makeUserApiRequest,'auth/validate','POST',{'data':{'username':_0x369fb1},'debug':_0x36a2b3['debug']});return{'isValid':_0x5237f0['success']&&_0x2496b7['ZgUNI']((_0x14b4a9=_0x5237f0[_0x31bb(0x56)])===null||_0x14b4a9===void 0x0?void 0x0:_0x14b4a9[_0x31bb(0x57)],!![]),'message':_0x2496b7[_0x31bb(0x58)](_0x39f54a=_0x5237f0[_0x31bb(0x19)],null)||_0x39f54a===void 0x0?void 0x0:_0x39f54a['message']};}catch(_0x32f503){return{'isValid':![],'message':_0x32f503[_0x31bb(0x1a)]};}};export const createAccount=async(_0x13700e,_0x6322b={'debug':![]})=>{const _0x364a6a={'qFUue':_0x31bb(0x59)};return makeDeveloperApiRequest(_0x364a6a[_0x31bb(0x5a)],'POST',{'data':{'username':_0x13700e['username'],'platforms':_0x13700e[_0x31bb(0x5b)]},'debug':_0x6322b[_0x31bb(0x54)]});};export const authenticate=async(_0x45c5b2,_0x4f7043={'debug':![]})=>{const _0x5a8a47={'qLZiB':function(_0x57a5dd,_0x367bf2,_0x2b6a17,_0x2919e5){return _0x57a5dd(_0x367bf2,_0x2b6a17,_0x2919e5);},'NKOAZ':_0x31bb(0x5c)};return _0x5a8a47[_0x31bb(0x5d)](makeUserApiRequest,_0x5a8a47[_0x31bb(0x5e)],'POST',{'data':{'username':_0x45c5b2[_0x31bb(0x5f)],'pin':_0x45c5b2['userPin']},'debug':_0x4f7043['debug']});};export const refreshToken=async(_0x858b64,_0x86bbcb={'debug':![]})=>{const _0x5f1eca={'OTrcM':function(_0x13cd01,_0x3897fa,_0x4b8dd4,_0x398b48){return _0x13cd01(_0x3897fa,_0x4b8dd4,_0x398b48);},'SedVP':_0x31bb(0x60)};return _0x5f1eca[_0x31bb(0x61)](makeUserApiRequest,_0x5f1eca[_0x31bb(0x62)],'POST',{'data':{'refreshToken':_0x858b64},'debug':_0x86bbcb['debug']});};export const getPlatformData=async(_0xce8e24,_0x2e216d={'debug':![]})=>{return makeUserApiRequest(_0x31bb(0x63)+_0xce8e24+_0x31bb(0x64),'GET',{'debug':_0x2e216d[_0x31bb(0x54)]});};function _0x354f(){const _0x41f793=['2|1|0|4|3','ApiError','aVKgg','code','name','EDsOp','fetch','server_error','API\x20request\x20failed','oLZKj','network_error','User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','auth_error','unknown_error','Request\x20timed\x20out','timeout_error','User\x20API\x20Error','An\x20unexpected\x20error\x20occurred','OnmlM','msHNd','yAolD','GbOma','status','ZixcG','PZTIc','error','message','wNGaj','tqlrf','details','AHJbA','No\x20network\x20connection\x20available','fIthp','reDYq','User\x20API\x20Request','[REDACTED]','csFTD','stringify','json','User\x20API\x20Response','ENgUl','validation_error','dhhCh','XWQxV','LqfWa','csCPA','AeeLK','wbweo','JMLrO','No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','VprwZ','MpmXK','Developer\x20API\x20Request','ThBsD','ZsCdD','Developer\x20API\x20Error','Unknown\x20error','MxSlg','lAzzS','MVthi','uyZLm','TlTih','iGNND','kyJML','mLSZz','xUISb','PHtpP','Developer\x20API\x20Response','UxXGN','uIjrj','bzVid','XSQAX','WTDIr','NInjL','IuKhr','GVPhw','SOPvx','fKQaj','HNExe','nImNH','TMuBN','KFVRi','FUUzs','ITmuX','debug','vMFwV','data','isValid','Izbaw','auth/register','qFUue','platforms','auth/login','qLZiB','NKOAZ','username','auth/refresh','OTrcM','SedVP','platforms/','/data','eJtRM','BeVmA','user/platforms','gfATf','rUSyE','bwtkX','DGwMr','ypQJf','UWGot'];_0x354f=function(){return _0x41f793;};return _0x354f();}export const getUserProfile=async(_0x3a9d76={'debug':![]})=>{const _0x406d94={'eJtRM':function(_0x3df2af,_0x5bd694,_0x17ab4c,_0x419887){return _0x3df2af(_0x5bd694,_0x17ab4c,_0x419887);},'BeVmA':'user/profile'};return _0x406d94[_0x31bb(0x65)](makeUserApiRequest,_0x406d94[_0x31bb(0x66)],'GET',{'debug':_0x3a9d76[_0x31bb(0x54)]});};export const updatePlatformConnections=async(_0x4d88d9,_0x534c5e={'debug':![]})=>{const _0x7f61f={'gfATf':function(_0x4da9ad,_0x377d6e,_0x18ff0c,_0xced3cc){return _0x4da9ad(_0x377d6e,_0x18ff0c,_0xced3cc);},'rUSyE':_0x31bb(0x67)};return _0x7f61f[_0x31bb(0x68)](makeUserApiRequest,_0x7f61f[_0x31bb(0x69)],'PUT',{'data':{'platforms':_0x4d88d9},'debug':_0x534c5e[_0x31bb(0x54)]});};export const storePIN=async(_0x406936,_0x431847={})=>{const _0x8e0ad1={'bwtkX':function(_0x3bcaaa){return _0x3bcaaa();},'vMwtP':_0x31bb(0x31),'RznAP':_0x31bb(0xc),'DPyWe':function(_0x10ac30,_0x40d184,_0x5eb65d,_0x3ca750){return _0x10ac30(_0x40d184,_0x5eb65d,_0x3ca750);},'DGwMr':'store-pin/mobile'},{debug:debug=![],username:_0x3b7a8e}=_0x431847,_0x5d3d1f=_0x3b7a8e||_0x8e0ad1[_0x31bb(0x6a)](extractUsernameFromJWT);if(!_0x5d3d1f)throw new ApiError(_0x8e0ad1['vMwtP'],_0x8e0ad1['RznAP']);return _0x8e0ad1['DPyWe'](makeUserApiRequest,_0x8e0ad1[_0x31bb(0x6b)],'POST',{'data':{'username':_0x5d3d1f,'pin':_0x406936},'debug':debug});};export const getCurrentUserToken=async()=>{const _0xd2324c={'ypQJf':function(_0x2f383e){return _0x2f383e();}};return await _0xd2324c[_0x31bb(0x6c)](getJWT);};function _0x31bb(_0x354f0d,_0x31bb94){_0x354f0d=_0x354f0d-0x0;const _0xf3ba0b=_0x354f();let _0x41c8c5=_0xf3ba0b[_0x354f0d];return _0x41c8c5;}export const isCurrentUserAuthenticated=()=>{const _0x20a821={'UWGot':function(_0x1e4bc7){return _0x1e4bc7();}};return _0x20a821[_0x31bb(0x6d)](isUserAuthenticated);};
@@ -1 +1 @@
1
- function _0x1d3a(){const _0x4b48a9=['❌\x20Onairos\x20flow\x20rejected:','Onairos\x20flow\x20was\x20rejected','✅\x20Onairos\x20flow\x20completed\x20successfully','WSJXQ','Pre-check\x20failed','pnBqc','📱\x20Onairos\x20modal\x20should\x20be\x20displayed','🚀\x20Starting\x20Onairos\x20flow\x20programmatically...','../components/UniversalOnboarding','❌\x20Failed\x20to\x20execute\x20Onairos\x20flow:','log','XbKOi','ehcSz','gmPUL','❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','cxaVQ','fDChP','qvTYh','TRUwG','EVgxy','close','onResolved','gmhED','onRejection','DvdnH','ehnef','VziLk','dmARy','KuAXK','GClfI','User\x20closed\x20the\x20modal','requestData','preferredPlatform','debug','testMode','ftBnN','error','ngBlk','YvJDS','GCbOS','IOoso','qlhuG','APKkO','preCheck','ztJjp','QNlmK','WzPtD','yjxTn','XIhuZ','cSUlF','dfrdK','aspfv','qaIKv'];_0x1d3a=function(){return _0x4b48a9;};return _0x1d3a();}function _0x5e32(_0x1d3a17,_0x5e324c){_0x1d3a17=_0x1d3a17-0x0;const _0xb11e70=_0x1d3a();let _0x2a9a99=_0xb11e70[_0x1d3a17];return _0x2a9a99;}import{initializePlatformAuthService}from'../services/platformAuthService';export const executeOnairosFlow=async _0xec3087=>{const _0x631a71={'KuAXK':_0x5e32(0x0),'GClfI':function(_0x377b72,_0x57701e){return _0x377b72||_0x57701e;},'gmPUL':_0x5e32(0x1),'xACAn':_0x5e32(0x2),'bXlnL':function(_0x5ef07d,_0x2f8d02){return _0x5ef07d!==_0x2f8d02;},'kjpQl':_0x5e32(0x3),'cxaVQ':_0x5e32(0x4),'fDChP':function(_0x4dcbaa,_0x247f96){return _0x4dcbaa===_0x247f96;},'qvTYh':_0x5e32(0x5),'TRUwG':'JptnA','ftBnN':_0x5e32(0x6),'XbKOi':_0x5e32(0x7),'ehcSz':function(_0x1d9f9e){return _0x1d9f9e();},'mqMzd':_0x5e32(0x8),'ngBlk':_0x5e32(0x9)};try{console[_0x5e32(0xa)](_0x631a71[_0x5e32(0xb)]),await _0x631a71[_0x5e32(0xc)](initializePlatformAuthService);const {UniversalOnboarding:_0x18b733}=await import(_0x631a71['mqMzd']),React=await import('react');return new Promise((_0x1e772d,_0xf54957)=>{const _0x5a67d6={'DvdnH':_0x631a71[_0x5e32(0xd)],'EVgxy':_0x631a71['xACAn'],'fIlZe':function(_0x4da428,_0x5dc9ae){return _0x631a71['bXlnL'](_0x4da428,_0x5dc9ae);},'Phdlb':_0x631a71['kjpQl'],'VziLk':_0x5e32(0xe),'dmARy':_0x631a71[_0x5e32(0xf)]};if(_0x631a71[_0x5e32(0x10)](_0x631a71[_0x5e32(0x11)],_0x631a71[_0x5e32(0x12)]))_0x53ca7c['onRejection'](_0x5e32(0x4));else{let _0x46b56f=null;const _0x41ec8b=(_0x47ec01,_0x4c9bd4,_0x42be00)=>{console[_0x5e32(0xa)](_0x5a67d6[_0x5e32(0x13)]),_0x46b56f&&_0x46b56f[_0x5e32(0x14)]&&_0x46b56f[_0x5e32(0x14)](),_0xec3087[_0x5e32(0x15)]&&(_0x5a67d6['fIlZe'](_0x5a67d6['Phdlb'],_0x5e32(0x16))?_0xec3087[_0x5e32(0x15)](_0x47ec01,_0x4c9bd4,_0x42be00):(_0x59a751[_0x5e32(0xa)](_0x5e32(0x0),_0x17add3),_0x32ec3d&&_0x40a8f8[_0x5e32(0x14)]&&_0x1e78ec[_0x5e32(0x14)](),_0x2a5d6e[_0x5e32(0x17)]&&_0x5119ea[_0x5e32(0x17)](_0x3ba0a5),_0x3ff7d6(new _0x1d6c15(_0x1fa2e4||_0x5a67d6[_0x5e32(0x18)])))),_0x1e772d();},_0x43cbb5=_0x2861ab=>{if(_0x5e32(0x19)!==_0x5e32(0x19)){_0x4bbade[_0x5e32(0xa)](_0x5a67d6[_0x5e32(0x1a)]);_0x233521[_0x5e32(0x17)]&&_0x2045b7[_0x5e32(0x17)](_0x5a67d6[_0x5e32(0x1b)]);return;}else console[_0x5e32(0xa)](_0x631a71[_0x5e32(0x1c)],_0x2861ab),_0x46b56f&&_0x46b56f[_0x5e32(0x14)]&&_0x46b56f[_0x5e32(0x14)](),_0xec3087['onRejection']&&_0xec3087[_0x5e32(0x17)](_0x2861ab),_0xf54957(new Error(_0x631a71[_0x5e32(0x1d)](_0x2861ab,_0x631a71['gmPUL'])));},_0x31a1c4=React['createElement'](_0x18b733,{'visible':!![],'onClose':()=>_0x43cbb5(_0x5e32(0x1e)),'AppName':_0xec3087['AppName'],'requestData':_0xec3087[_0x5e32(0x1f)],'returnLink':_0xec3087['returnLink'],'onComplete':_0x41ec8b,'preferredPlatform':_0xec3087[_0x5e32(0x20)],'debug':_0xec3087[_0x5e32(0x21)],'testMode':_0xec3087[_0x5e32(0x22)]});_0x46b56f=_0x31a1c4,console[_0x5e32(0xa)](_0x631a71[_0x5e32(0x23)]);}});}catch(_0x353cb5){console[_0x5e32(0x24)](_0x631a71[_0x5e32(0x25)],_0x353cb5);throw _0x353cb5;}};export const startOnairosFlow=async _0x40ea0f=>{const _0x5da398={'aspfv':_0x5e32(0x9),'ztJjp':function(_0x9b96d0,_0x2c318c){return _0x9b96d0!==_0x2c318c;},'QNlmK':_0x5e32(0x26),'WzPtD':_0x5e32(0x27),'yjxTn':_0x5e32(0x28),'cSUlF':_0x5e32(0xe),'dfrdK':_0x5e32(0x29),'ZIKUv':_0x5e32(0x2a),'qaIKv':function(_0x5818c8,_0x2dfc63){return _0x5818c8(_0x2dfc63);}};if(_0x40ea0f[_0x5e32(0x2b)]){if(_0x5da398[_0x5e32(0x2c)](_0x5da398[_0x5e32(0x2d)],_0x5da398[_0x5e32(0x2e)])){const _0x18f208=await _0x40ea0f[_0x5e32(0x2b)]();if(!_0x18f208){if(_0x5da398[_0x5e32(0x2c)](_0x5da398[_0x5e32(0x2f)],_0x5e32(0x30))){console[_0x5e32(0xa)](_0x5da398[_0x5e32(0x31)]);if(_0x40ea0f[_0x5e32(0x17)]){if(_0x5da398['ztJjp'](_0x5da398[_0x5e32(0x32)],_0x5da398['ZIKUv']))_0x40ea0f['onRejection'](_0x5e32(0x4));else{_0x2862cb['error'](_0x5da398[_0x5e32(0x33)],_0x2c8b3a);throw _0x223f10;}}return;}else _0x44bf6d['onRejection'](_0x14eaf3);}}else _0x207a15[_0x5e32(0x15)](_0x3f87c4,_0x4bee61,_0x2b750b);}return _0x5da398[_0x5e32(0x34)](executeOnairosFlow,_0x40ea0f);};
1
+ import{initializePlatformAuthService}from'../services/platformAuthService';function _0x1543(){const _0x437099=['✅\x20Onairos\x20flow\x20completed\x20successfully','UPcxr','GqCpG','Onairos\x20flow\x20was\x20rejected','❌\x20Onairos\x20flow\x20rejected:','📱\x20Onairos\x20modal\x20should\x20be\x20displayed','../components/UniversalOnboarding','❌\x20Failed\x20to\x20execute\x20Onairos\x20flow:','Ptrnf','ZIipC','JUWQv','ntJzJ','vJJgH','wxHqf','EjIvS','TByuG','vlvSN','qxIUm','close','onResolved','log','QEcsm','onRejection','nKtKj','ivTBV','gMILQ','GGDaJ','rprdN','createElement','User\x20closed\x20the\x20modal','AppName','requestData','returnLink','preferredPlatform','debug','SrhQL','lLWhz','preCheck','aqFZR','vHUGG','JGZOp','hWdwh'];_0x1543=function(){return _0x437099;};return _0x1543();}export const executeOnairosFlow=async _0x277695=>{const _0x2be438={'EjIvS':function(_0x35277e,_0x39a4f1){return _0x35277e===_0x39a4f1;},'vlvSN':'TByuG','qxIUm':_0x8021(0x0),'ZIipC':function(_0xd068bc){return _0xd068bc();},'ivTBV':_0x8021(0x1),'gMILQ':_0x8021(0x2),'GGDaJ':function(_0x797d46,_0x4fecd9){return _0x797d46(_0x4fecd9);},'rprdN':function(_0x1c9a34,_0x4794c9){return _0x1c9a34||_0x4794c9;},'wxHqf':_0x8021(0x3),'ntJzJ':_0x8021(0x4),'vJJgH':function(_0x341623,_0xcaadbe){return _0x341623(_0xcaadbe);},'VbeDT':function(_0x27506d,_0x40c146){return _0x27506d||_0x40c146;},'SrhQL':_0x8021(0x5),'Ptrnf':'🚀\x20Starting\x20Onairos\x20flow\x20programmatically...','JUWQv':_0x8021(0x6),'rcoFl':_0x8021(0x7)};try{console['log'](_0x2be438[_0x8021(0x8)]),await _0x2be438[_0x8021(0x9)](initializePlatformAuthService);const {UniversalOnboarding:_0x217830}=await import(_0x2be438[_0x8021(0xa)]),React=await import('react');return new Promise((_0x20f91c,_0x937bc)=>{const _0x1cd9c4={'QEcsm':_0x2be438[_0x8021(0xb)],'EahpY':function(_0xcf6d12,_0x41da05){return _0x2be438[_0x8021(0xc)](_0xcf6d12,_0x41da05);},'nKtKj':function(_0xd0ce9d,_0x2e459b){return _0x2be438['VbeDT'](_0xd0ce9d,_0x2e459b);},'htVPd':_0x2be438[_0x8021(0xd)]};let _0x106e31=null;const _0x41c678=(_0x58de8e,_0x2e26c8,_0x26b13a)=>{_0x2be438[_0x8021(0xe)](_0x8021(0xf),_0x2be438[_0x8021(0x10)])?(console['log'](_0x2be438[_0x8021(0x11)]),_0x106e31&&_0x106e31[_0x8021(0x12)]&&_0x106e31['close'](),_0x277695[_0x8021(0x13)]&&_0x277695[_0x8021(0x13)](_0x58de8e,_0x2e26c8,_0x26b13a),_0x2be438[_0x8021(0x9)](_0x20f91c)):(_0x23c548[_0x8021(0x14)](_0x1cd9c4[_0x8021(0x15)],_0x588320),_0x169c4f&&_0x1579db[_0x8021(0x12)]&&_0x17d870['close'](),_0xe2057b[_0x8021(0x16)]&&_0x2c1e9f['onRejection'](_0x2adb53),_0x1cd9c4['EahpY'](_0x10e7c8,new _0x20b9b4(_0x1cd9c4[_0x8021(0x17)](_0x4face6,_0x1cd9c4['htVPd']))));},_0x5d067a=_0x3a3371=>{console[_0x8021(0x14)](_0x8021(0x4),_0x3a3371),_0x106e31&&_0x106e31[_0x8021(0x12)]&&_0x106e31[_0x8021(0x12)](),_0x277695[_0x8021(0x16)]&&(_0x2be438[_0x8021(0x18)]===_0x2be438[_0x8021(0x19)]?_0x5e9005[_0x8021(0x12)]():_0x277695[_0x8021(0x16)](_0x3a3371)),_0x2be438[_0x8021(0x1a)](_0x937bc,new Error(_0x2be438[_0x8021(0x1b)](_0x3a3371,_0x2be438[_0x8021(0xd)])));},_0x5400da=React[_0x8021(0x1c)](_0x217830,{'visible':!![],'onClose':()=>_0x5d067a(_0x8021(0x1d)),'AppName':_0x277695[_0x8021(0x1e)],'requestData':_0x277695[_0x8021(0x1f)],'returnLink':_0x277695[_0x8021(0x20)],'onComplete':_0x41c678,'preferredPlatform':_0x277695[_0x8021(0x21)],'debug':_0x277695[_0x8021(0x22)],'testMode':_0x277695['testMode']});_0x106e31=_0x5400da,console[_0x8021(0x14)](_0x2be438[_0x8021(0x23)]);});}catch(_0x2089b3){console['error'](_0x2be438['rcoFl'],_0x2089b3);throw _0x2089b3;}};function _0x8021(_0x1543bc,_0x80211e){_0x1543bc=_0x1543bc-0x0;const _0xa9c011=_0x1543();let _0x4c2073=_0xa9c011[_0x1543bc];return _0x4c2073;}export const startOnairosFlow=async _0x5a9df2=>{const _0x4569df={'aqFZR':function(_0x5af2a3,_0x12e322){return _0x5af2a3!==_0x12e322;},'vHUGG':_0x8021(0x24),'JnFXE':'❌\x20Pre-check\x20failed,\x20not\x20starting\x20Onairos\x20flow','JGZOp':'Pre-check\x20failed','hWdwh':function(_0x3e379e,_0x466c56){return _0x3e379e(_0x466c56);}};if(_0x5a9df2[_0x8021(0x25)]){const _0x5a935c=await _0x5a9df2[_0x8021(0x25)]();if(!_0x5a935c){if(_0x4569df[_0x8021(0x26)](_0x4569df[_0x8021(0x27)],_0x4569df[_0x8021(0x27)]))_0x5ea0d7['onResolved'](_0x3f3e61,_0xb460c0,_0xdd85c7);else{console[_0x8021(0x14)](_0x4569df['JnFXE']);_0x5a9df2[_0x8021(0x16)]&&_0x5a9df2[_0x8021(0x16)](_0x4569df[_0x8021(0x28)]);return;}}}return _0x4569df[_0x8021(0x29)](executeOnairosFlow,_0x5a9df2);};
@@ -1 +1 @@
1
- export const DEFAULT_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'enableLogging':![],'shouldRetry':(_0x16e4cb,_0x5c6f1d)=>{const _0x44f8c6={'EzffH':function(_0x110923,_0x4b434f){return _0x110923>=_0x4b434f;},'jpbMa':function(_0x27c5c4,_0xabf296){return _0x27c5c4<_0xabf296;},'vcLDR':function(_0x563e9c,_0x2f9a74){return _0x563e9c!==_0x2f9a74;},'JGqcC':function(_0x89b817,_0x3e53e7){return _0x89b817===_0x3e53e7;},'QyOBF':_0x3bd3(0x0),'Vqccq':'Network\x20request\x20failed','oqrrj':_0x3bd3(0x1),'UcscI':_0x3bd3(0x2),'XDNZc':'timeout','JdfNL':_0x3bd3(0x3),'aPwrc':function(_0x2b96ce,_0x2dafa8){return _0x2b96ce===_0x2dafa8;},'JBLmK':'cwbxU'};if(_0x44f8c6[_0x3bd3(0x4)](_0x16e4cb['status'],0x190)&&_0x44f8c6[_0x3bd3(0x5)](_0x16e4cb['status'],0x1f4)&&_0x44f8c6[_0x3bd3(0x6)](_0x16e4cb['status'],0x198)&&_0x44f8c6[_0x3bd3(0x6)](_0x16e4cb[_0x3bd3(0x7)],0x1ad))return![];if(_0x44f8c6[_0x3bd3(0x8)](_0x16e4cb['name'],_0x44f8c6[_0x3bd3(0x9)])||_0x16e4cb[_0x3bd3(0xa)]['includes'](_0x44f8c6[_0x3bd3(0xb)])||_0x16e4cb['message'][_0x3bd3(0xc)](_0x44f8c6[_0x3bd3(0xd)])||_0x16e4cb[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x44f8c6['UcscI'])||_0x16e4cb[_0x3bd3(0xa)]['includes'](_0x44f8c6[_0x3bd3(0xe)])||_0x44f8c6[_0x3bd3(0x4)](_0x16e4cb[_0x3bd3(0x7)],0x1f4))return!![];if(_0x16e4cb[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x44f8c6[_0x3bd3(0xf)])||_0x16e4cb[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x3bd3(0x10)))return _0x44f8c6['aPwrc'](_0x44f8c6[_0x3bd3(0x11)],_0x3bd3(0x12))?!![]:![];return![];}};export async function withRetry(_0x38aa1c,_0x2ab284={}){const _0x467748={'JhFBO':_0x3bd3(0x13),'KsGBp':'ENOTFOUND','gKUna':_0x3bd3(0x14),'lMJiP':function(_0x48421d,_0x335eaf){return _0x48421d===_0x335eaf;},'fdsTy':_0x3bd3(0x0),'lEXEa':function(_0x28a95d,_0xba3033){return _0x28a95d<=_0xba3033;},'wJOmZ':function(_0x1e3848,_0x26de5b){return _0x1e3848===_0x26de5b;},'ijGOF':_0x3bd3(0x15),'hVvMw':_0x3bd3(0x16),'sKDTK':function(_0x29fa48,_0x5e3277){return _0x29fa48+_0x5e3277;},'VCzWw':function(_0x10af99){return _0x10af99();},'joGmb':function(_0x4191bd,_0xff0d2f){return _0x4191bd-_0xff0d2f;},'Gmohr':'IKxuC','gGmxL':_0x3bd3(0x17),'VovhX':_0x3bd3(0x18),'EAKmK':function(_0x4a5019,_0x5a1c45){return _0x4a5019*_0x5a1c45;},'ZfVlZ':_0x3bd3(0x19),'hJMuv':function(_0x440181,_0x205a7b){return _0x440181+_0x205a7b;}},_0x3712a1={...DEFAULT_RETRY_OPTIONS,..._0x2ab284},_0x37acc8=Date[_0x3bd3(0x1a)]();let _0x8b5df8=null;for(let _0x3d53f9=0x1;_0x467748['lEXEa'](_0x3d53f9,_0x3712a1['maxRetries']+0x1);_0x3d53f9++){try{if(_0x3712a1[_0x3bd3(0x1b)]&&_0x3d53f9>0x1){if(_0x467748['wJOmZ'](_0x467748[_0x3bd3(0x1c)],_0x467748['hVvMw']))return![];else console[_0x3bd3(0x1d)](_0x3bd3(0x1e)+_0x3d53f9+'/'+_0x467748['sKDTK'](_0x3712a1['maxRetries'],0x1));}const _0x4e3a0c=await _0x467748[_0x3bd3(0x1f)](_0x38aa1c);return{'success':!![],'data':_0x4e3a0c,'attempts':_0x3d53f9,'totalDuration':_0x467748[_0x3bd3(0x20)](Date[_0x3bd3(0x1a)](),_0x37acc8)};}catch(_0x42fc1d){_0x8b5df8=_0x42fc1d;const _0x4cee7f=_0x3712a1[_0x3bd3(0x21)]?_0x3712a1[_0x3bd3(0x21)](_0x42fc1d,_0x3d53f9):!![];if(_0x3d53f9>_0x3712a1[_0x3bd3(0x22)]||!_0x4cee7f){if(_0x467748[_0x3bd3(0x23)](_0x467748[_0x3bd3(0x24)],_0x467748[_0x3bd3(0x24)])){_0x3712a1[_0x3bd3(0x1b)]&&(_0x467748[_0x3bd3(0x25)]!==_0x467748[_0x3bd3(0x25)]?_0x46b51b[_0x3bd3(0x26)]('⚠️\x20API\x20call\x20failed\x20(attempt\x20'+_0x47f8ba+_0x3bd3(0x27)+_0x223bc7+_0x3bd3(0x28)+_0x5c3fdb[_0x3bd3(0xa)]):console[_0x3bd3(0x29)](_0x3bd3(0x2a)+_0x42fc1d[_0x3bd3(0xa)]));break;}else return _0x28844a['message'][_0x3bd3(0xc)](_0x467748['JhFBO'])||_0x5e6db0[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x467748['KsGBp'])||_0x137b37['message'][_0x3bd3(0xc)](_0x467748[_0x3bd3(0x2b)])||_0x467748[_0x3bd3(0x23)](_0x29f594[_0x3bd3(0x2c)],_0x467748['fdsTy']);}let _0x214db1=_0x3712a1[_0x3bd3(0x2d)];_0x3712a1[_0x3bd3(0x2e)]&&(_0x467748['VovhX']===_0x3bd3(0x18)?_0x214db1=Math[_0x3bd3(0x2f)](_0x467748['EAKmK'](_0x3712a1[_0x3bd3(0x2d)],Math[_0x3bd3(0x30)](0x2,_0x467748[_0x3bd3(0x20)](_0x3d53f9,0x1))),_0x3712a1['maxDelay']):_0x23b80a[_0x3bd3(0x1d)](_0x3bd3(0x31)+_0x3aaac5+_0x3bd3(0x32)+_0x25443d+'/'+(_0x16ece1[_0x3bd3(0x22)]+0x1)+')'));const _0x568106=Math[_0x3bd3(0x33)]()*0.1*_0x214db1;_0x214db1=Math[_0x3bd3(0x34)](_0x467748[_0x3bd3(0x35)](_0x214db1,_0x568106)),_0x3712a1[_0x3bd3(0x36)]&&_0x3712a1[_0x3bd3(0x36)](_0x42fc1d,_0x3d53f9,_0x214db1),_0x3712a1[_0x3bd3(0x1b)]&&console[_0x3bd3(0x1d)]('⏳\x20Waiting\x20'+_0x214db1+_0x3bd3(0x32)+_0x3d53f9+'/'+_0x467748[_0x3bd3(0x35)](_0x3712a1[_0x3bd3(0x22)],0x1)+')'),await new Promise(_0x1e468c=>setTimeout(()=>_0x1e468c(),_0x214db1));}}return{'success':![],'error':_0x8b5df8||new Error(_0x467748[_0x3bd3(0x37)]),'attempts':_0x467748[_0x3bd3(0x38)](_0x3712a1[_0x3bd3(0x22)],0x1),'totalDuration':_0x467748[_0x3bd3(0x20)](Date[_0x3bd3(0x1a)](),_0x37acc8)};}function _0x3bd3(_0x13bb69,_0x3bd3e6){_0x13bb69=_0x13bb69-0x0;const _0x29f504=_0x13bb();let _0x22578b=_0x29f504[_0x13bb69];return _0x22578b;}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x1e3f46,_0x352941)=>{const _0x24ce0e={'dVBol':function(_0x477490,_0x2440b1){return _0x477490-_0x2440b1;},'SsCOV':function(_0x8e8c40,_0x381f8d){return _0x8e8c40+_0x381f8d;},'lYFBG':function(_0x4339e9,_0x5b6a36){return _0x4339e9===_0x5b6a36;},'CpDlH':'gBZuL','xHfPE':function(_0x2a80c9,_0x186b05){return _0x2a80c9===_0x186b05;},'pwOdp':_0x3bd3(0x39),'MDJbK':'xcUsQ','uFPSt':_0x3bd3(0x3a),'yizKc':function(_0x32d562,_0x17c4e8){return _0x32d562<=_0x17c4e8;},'DofvD':'MBQnk','xqgnk':function(_0x205fbb,_0xdfbab3){return _0x205fbb===_0xdfbab3;},'YVWEU':'AbortError','slkAz':_0x3bd3(0x13),'vEfUP':_0x3bd3(0x1),'LuoUV':_0x3bd3(0x2),'BpWfL':function(_0x3b3921,_0x2c7f37){return _0x3b3921!==_0x2c7f37;},'xysEu':_0x3bd3(0x3b),'SmnmN':_0x3bd3(0x3),'VOXed':_0x3bd3(0x10),'Nbkbx':_0x3bd3(0x3c)};if(_0x24ce0e[_0x3bd3(0x3d)](_0x1e3f46[_0x3bd3(0x7)],0x191)||_0x24ce0e[_0x3bd3(0x3d)](_0x1e3f46[_0x3bd3(0x7)],0x193))return _0x24ce0e[_0x3bd3(0x3e)]===_0x24ce0e['CpDlH']?![]:!![];if(_0x1e3f46[_0x3bd3(0x7)]===0x190||_0x24ce0e[_0x3bd3(0x3f)](_0x1e3f46[_0x3bd3(0x7)],0x194)&&!_0x1e3f46[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x24ce0e[_0x3bd3(0x40)]))return![];if(_0x24ce0e[_0x3bd3(0x3f)](_0x1e3f46[_0x3bd3(0x7)],0x1ad))return _0x24ce0e[_0x3bd3(0x3f)](_0x24ce0e[_0x3bd3(0x41)],_0x24ce0e['uFPSt'])?!![]:_0x24ce0e[_0x3bd3(0x42)](_0x352941,0x2);if(_0x1e3f46[_0x3bd3(0x7)]>=0x1f4)return _0x24ce0e[_0x3bd3(0x3d)](_0x24ce0e[_0x3bd3(0x43)],_0x24ce0e[_0x3bd3(0x43)])?!![]:{'reachable':![],'error':_0x1dc7b7[_0x3bd3(0xa)],'duration':_0x24ce0e[_0x3bd3(0x44)](_0x2f0bee['now'](),_0xb9fb19)};if(_0x24ce0e[_0x3bd3(0x45)](_0x1e3f46[_0x3bd3(0x2c)],_0x24ce0e[_0x3bd3(0x46)])||_0x1e3f46['message'][_0x3bd3(0xc)](_0x3bd3(0x47))||_0x1e3f46[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x24ce0e[_0x3bd3(0x48)])||_0x1e3f46[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x24ce0e[_0x3bd3(0x49)])||_0x1e3f46[_0x3bd3(0xa)]['includes'](_0x24ce0e['LuoUV'])){if(_0x24ce0e[_0x3bd3(0x4a)](_0x24ce0e[_0x3bd3(0x4b)],_0x24ce0e[_0x3bd3(0x4b)]))_0x2dc98b[_0x3bd3(0x1d)]('🔄\x20Retry\x20attempt\x20'+_0xa92d15+'/'+_0x24ce0e[_0x3bd3(0x4c)](_0x1d6aa0['maxRetries'],0x1));else return!![];}if(_0x1e3f46[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x24ce0e[_0x3bd3(0x4d)])||_0x1e3f46[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x24ce0e[_0x3bd3(0x4e)])||_0x1e3f46[_0x3bd3(0xa)]['includes'](_0x24ce0e[_0x3bd3(0x4f)]))return!![];return![];},'onRetry':(_0x43e910,_0x2cc577,_0x3d9a9e)=>{console[_0x3bd3(0x26)](_0x3bd3(0x50)+_0x2cc577+_0x3bd3(0x27)+_0x3d9a9e+_0x3bd3(0x28)+_0x43e910[_0x3bd3(0xa)]);}};export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x49bbbb,_0x38045c)=>{const _0x1ff547={'qygpe':_0x3bd3(0x13),'UBoiv':_0x3bd3(0x2),'qyiaS':_0x3bd3(0x14),'UXNPG':function(_0x383262,_0x58b0c){return _0x383262===_0x58b0c;},'gNQNx':_0x3bd3(0x0)};return _0x49bbbb[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x1ff547[_0x3bd3(0x51)])||_0x49bbbb[_0x3bd3(0xa)][_0x3bd3(0xc)](_0x1ff547[_0x3bd3(0x52)])||_0x49bbbb[_0x3bd3(0xa)]['includes'](_0x1ff547[_0x3bd3(0x53)])||_0x1ff547['UXNPG'](_0x49bbbb[_0x3bd3(0x2c)],_0x1ff547[_0x3bd3(0x54)]);}};export async function fetchWithRetry(_0xcc2751,_0x1fec5d={},_0x330a4f=API_RETRY_OPTIONS){const _0x1a3faf={'gpcbx':function(_0x4700ca,_0x378974,_0x57c640){return _0x4700ca(_0x378974,_0x57c640);}},_0x1f9a60=await _0x1a3faf['gpcbx'](withRetry,()=>fetch(_0xcc2751,_0x1fec5d),_0x330a4f);if(!_0x1f9a60[_0x3bd3(0x55)])throw _0x1f9a60[_0x3bd3(0x29)];return _0x1f9a60['data'];}function _0x13bb(){const _0x3fcdbd=['AbortError','fetch','ENOTFOUND','JSON\x20Parse\x20error','EzffH','jpbMa','vcLDR','status','JGqcC','QyOBF','message','Vqccq','includes','oqrrj','XDNZc','JdfNL','Unexpected\x20character','JBLmK','cwbxU','Network\x20request\x20failed','DNS','hodMX','XWCJd','fLHnJ','nsMjO','Unknown\x20error','now','enableLogging','ijGOF','log','🔄\x20Retry\x20attempt\x20','VCzWw','joGmb','shouldRetry','maxRetries','lMJiP','Gmohr','gGmxL','warn','),\x20retrying\x20in\x20','ms:\x20','error','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','gKUna','name','baseDelay','exponentialBackoff','min','pow','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','random','floor','sKDTK','onRetry','ZfVlZ','hJMuv','validation\x20endpoint','DbZzg','JeGVf','HTML\x20page\x20instead\x20of\x20JSON','lYFBG','CpDlH','xHfPE','pwOdp','MDJbK','yizKc','DofvD','dVBol','xqgnk','YVWEU','timeout','slkAz','vEfUP','BpWfL','xysEu','SsCOV','SmnmN','VOXed','Nbkbx','⚠️\x20API\x20call\x20failed\x20(attempt\x20','qygpe','UBoiv','qyiaS','gNQNx','success','yyVSW','abort','signal','vuLGZ','uwMUE'];_0x13bb=function(){return _0x3fcdbd;};return _0x13bb();}export async function healthCheck(_0x136073,_0x123ba0=0x1388){const _0x504e22={'yyVSW':function(_0x1b4cb2,_0x5e1ec4,_0x3fade0){return _0x1b4cb2(_0x5e1ec4,_0x3fade0);},'vuLGZ':'OnairosReactNative/HealthCheck','uwMUE':function(_0x3242dd,_0x3e9dab){return _0x3242dd(_0x3e9dab);},'BDjAX':function(_0x4c2e33,_0x55beb5){return _0x4c2e33-_0x55beb5;}},_0x4d8f3c=Date[_0x3bd3(0x1a)]();try{const _0x4bed25=new AbortController(),_0xe4c3d1=_0x504e22[_0x3bd3(0x56)](setTimeout,()=>_0x4bed25[_0x3bd3(0x57)](),_0x123ba0),_0x5978e6=await _0x504e22[_0x3bd3(0x56)](fetch,_0x136073,{'method':'GET','signal':_0x4bed25[_0x3bd3(0x58)],'headers':{'User-Agent':_0x504e22[_0x3bd3(0x59)]}});return _0x504e22[_0x3bd3(0x5a)](clearTimeout,_0xe4c3d1),{'reachable':!![],'status':_0x5978e6[_0x3bd3(0x7)],'duration':_0x504e22['BDjAX'](Date[_0x3bd3(0x1a)](),_0x4d8f3c)};}catch(_0x4f11d0){return{'reachable':![],'error':_0x4f11d0['message'],'duration':Date[_0x3bd3(0x1a)]()-_0x4d8f3c};}}
1
+ export const DEFAULT_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'enableLogging':![],'shouldRetry':(_0x416cf8,_0x115cca)=>{const _0x2b0c93={'MCfpT':function(_0x488fd5,_0x589c69){return _0x488fd5<=_0x589c69;},'tWdMS':function(_0x2e9222,_0x42ee27){return _0x2e9222===_0x42ee27;},'wcviV':_0x185b(0x0),'mZEYC':_0x185b(0x1),'vTIKz':_0x185b(0x2),'qBZIL':_0x185b(0x3),'SprNG':function(_0x581bdd,_0x21b0f5){return _0x581bdd!==_0x21b0f5;},'HiKWt':_0x185b(0x4),'AjBTE':'jxhmJ','EWSFP':'JSON\x20Parse\x20error'};if(_0x416cf8[_0x185b(0x5)]>=0x190&&_0x416cf8[_0x185b(0x5)]<0x1f4&&_0x416cf8['status']!==0x198&&_0x416cf8['status']!==0x1ad)return _0x2b0c93[_0x185b(0x6)](_0x185b(0x7),_0x2b0c93[_0x185b(0x8)])?!![]:![];if(_0x416cf8['name']===_0x2b0c93[_0x185b(0x9)]||_0x416cf8[_0x185b(0xa)][_0x185b(0xb)](_0x185b(0xc))||_0x416cf8[_0x185b(0xa)]['includes'](_0x2b0c93[_0x185b(0xd)])||_0x416cf8['message'][_0x185b(0xb)]('ENOTFOUND')||_0x416cf8[_0x185b(0xa)][_0x185b(0xb)](_0x2b0c93['qBZIL'])||_0x416cf8[_0x185b(0x5)]>=0x1f4)return _0x2b0c93[_0x185b(0xe)](_0x2b0c93[_0x185b(0xf)],_0x2b0c93[_0x185b(0x10)])?!![]:_0x2b0c93['MCfpT'](_0x4eb5e9,0x2);if(_0x416cf8['message'][_0x185b(0xb)](_0x2b0c93[_0x185b(0x11)])||_0x416cf8['message']['includes'](_0x185b(0x12)))return!![];return![];}};function _0x2012(){const _0x36d0cf=['eJwNG','AbortError','fetch','timeout','OQxyC','status','tWdMS','NXvPG','wcviV','mZEYC','message','includes','Network\x20request\x20failed','vTIKz','SprNG','HiKWt','AjBTE','EWSFP','Unexpected\x20character','lRDCf','OwpVD','VNUBQ','oWRkR','now','UUMRa','YbcLF','APnEX','zgXCA','sNPIL','TBbBR','log','maxRetries','shouldRetry','enableLogging','error','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','min','jEAWh','baseDelay','pow','WpuyK','maxDelay','random','onRetry','SlxDV','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','iNIQf','cbivI','validation\x20endpoint','Haqsn','ENOTFOUND','EklbG','JSON\x20Parse\x20error','OItzd','jzQQB','cZfla','Hwggh','jYtgk','tERTF','nhQAS','OiZMv','ENFZq','name','WITir','SBzMX','CKbTX','hYWAk','UalcQ','SZuVn','SZiEI','HTML\x20page\x20instead\x20of\x20JSON','),\x20retrying\x20in\x20','ms:\x20','DNS','yWwXi','wdbhj','jKJJx','tnnjd','xKmww','success','data','OnairosReactNative/HealthCheck','BGJRF','FsNTd','signal','xYcjE','kknBC','ftOTD'];_0x2012=function(){return _0x36d0cf;};return _0x2012();}export async function withRetry(_0x14c1d0,_0x243c88={}){const _0x59de5e={'YbcLF':function(_0x418ead,_0x56d008){return _0x418ead+_0x56d008;},'UUMRa':function(_0x3f5cfb,_0x3cadd1){return _0x3f5cfb<=_0x3cadd1;},'APnEX':_0x185b(0x13),'HUaSW':_0x185b(0x14),'zgXCA':function(_0x13da16,_0xf0c47){return _0x13da16>_0xf0c47;},'sNPIL':_0x185b(0x15),'WpuyK':function(_0x4017a0,_0x20e0e4){return _0x4017a0-_0x20e0e4;},'jEAWh':function(_0x51dd04,_0x3f3e73){return _0x51dd04*_0x3f3e73;},'GExHl':function(_0x115b47,_0x41c770){return _0x115b47===_0x41c770;},'SlxDV':_0x185b(0x16),'iNIQf':'Unknown\x20error'},_0x47e555={...DEFAULT_RETRY_OPTIONS,..._0x243c88},_0x51f046=Date[_0x185b(0x17)]();let _0x4e8303=null;for(let _0x51d978=0x1;_0x59de5e[_0x185b(0x18)](_0x51d978,_0x59de5e[_0x185b(0x19)](_0x47e555['maxRetries'],0x1));_0x51d978++){if(_0x59de5e[_0x185b(0x1a)]===_0x59de5e['HUaSW'])return![];else try{if(_0x47e555['enableLogging']&&_0x59de5e[_0x185b(0x1b)](_0x51d978,0x1)){if(_0x59de5e[_0x185b(0x1c)]===_0x185b(0x1d))return!![];else console[_0x185b(0x1e)]('🔄\x20Retry\x20attempt\x20'+_0x51d978+'/'+(_0x47e555[_0x185b(0x1f)]+0x1));}const _0x359fac=await _0x14c1d0();return{'success':!![],'data':_0x359fac,'attempts':_0x51d978,'totalDuration':_0x59de5e['WpuyK'](Date[_0x185b(0x17)](),_0x51f046)};}catch(_0x59fa84){_0x4e8303=_0x59fa84;const _0x4dc3ff=_0x47e555[_0x185b(0x20)]?_0x47e555['shouldRetry'](_0x59fa84,_0x51d978):!![];if(_0x59de5e[_0x185b(0x1b)](_0x51d978,_0x47e555[_0x185b(0x1f)])||!_0x4dc3ff){_0x47e555[_0x185b(0x21)]&&console[_0x185b(0x22)](_0x185b(0x23)+_0x59fa84[_0x185b(0xa)]);break;}let _0x5a65cc=_0x47e555['baseDelay'];_0x47e555['exponentialBackoff']&&(_0x5a65cc=Math[_0x185b(0x24)](_0x59de5e[_0x185b(0x25)](_0x47e555[_0x185b(0x26)],Math[_0x185b(0x27)](0x2,_0x59de5e[_0x185b(0x28)](_0x51d978,0x1))),_0x47e555[_0x185b(0x29)]));const _0x5ae9ef=Math[_0x185b(0x2a)]()*0.1*_0x5a65cc;_0x5a65cc=Math['floor'](_0x59de5e[_0x185b(0x19)](_0x5a65cc,_0x5ae9ef)),_0x47e555[_0x185b(0x2b)]&&(_0x59de5e['GExHl']('oWRkR',_0x59de5e[_0x185b(0x2c)])?_0x47e555[_0x185b(0x2b)](_0x59fa84,_0x51d978,_0x5a65cc):_0x44516c['log'](_0x185b(0x2d)+_0x5d3088+_0x185b(0x2e)+_0x3772e4+'/'+_0x59de5e[_0x185b(0x19)](_0x2e3ed9[_0x185b(0x1f)],0x1)+')')),_0x47e555['enableLogging']&&console[_0x185b(0x1e)](_0x185b(0x2d)+_0x5a65cc+_0x185b(0x2e)+_0x51d978+'/'+_0x59de5e[_0x185b(0x19)](_0x47e555[_0x185b(0x1f)],0x1)+')'),await new Promise(_0xcd422e=>setTimeout(()=>_0xcd422e(),_0x5a65cc));}}return{'success':![],'error':_0x4e8303||new Error(_0x59de5e[_0x185b(0x2f)]),'attempts':_0x59de5e[_0x185b(0x19)](_0x47e555[_0x185b(0x1f)],0x1),'totalDuration':Date[_0x185b(0x17)]()-_0x51f046};}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x2ca7d7,_0xa8fa79)=>{const _0x1dbae9={'UalcQ':function(_0x547864,_0x3f433a){return _0x547864*_0x3f433a;},'SZuVn':function(_0x1f447a,_0x467d0c){return _0x1f447a-_0x467d0c;},'OItzd':function(_0x52c140,_0x56be65){return _0x52c140===_0x56be65;},'jzQQB':_0x185b(0x30),'cZfla':'oibvT','Hwggh':function(_0x195bcd,_0x3c21e7){return _0x195bcd===_0x3c21e7;},'jYtgk':function(_0x2c6648,_0x1b2539){return _0x2c6648===_0x1b2539;},'tERTF':_0x185b(0x31),'nhQAS':function(_0xbbccd6,_0x1ffc5e){return _0xbbccd6<=_0x1ffc5e;},'OiZMv':function(_0x7b0a07,_0x1510bb){return _0x7b0a07>=_0x1510bb;},'TRemA':_0x185b(0x32),'ENFZq':function(_0x1b9d96,_0x1e254b){return _0x1b9d96===_0x1e254b;},'WITir':'AbortError','SBzMX':_0x185b(0x3),'CKbTX':_0x185b(0xc),'Gmmbl':_0x185b(0x33),'hYWAk':_0x185b(0x34),'aaBsS':'kYeqH','SZiEI':_0x185b(0x35)};if(_0x2ca7d7[_0x185b(0x5)]===0x191||_0x1dbae9[_0x185b(0x36)](_0x2ca7d7[_0x185b(0x5)],0x193)){if(_0x1dbae9[_0x185b(0x37)]===_0x1dbae9[_0x185b(0x38)])_0xae543['error'](_0x185b(0x23)+_0x1d2bdb[_0x185b(0xa)]);else return![];}if(_0x1dbae9[_0x185b(0x39)](_0x2ca7d7[_0x185b(0x5)],0x190)||_0x1dbae9[_0x185b(0x3a)](_0x2ca7d7[_0x185b(0x5)],0x194)&&!_0x2ca7d7[_0x185b(0xa)]['includes'](_0x1dbae9[_0x185b(0x3b)]))return![];if(_0x1dbae9['OItzd'](_0x2ca7d7[_0x185b(0x5)],0x1ad))return _0x1dbae9[_0x185b(0x3c)](_0xa8fa79,0x2);if(_0x1dbae9[_0x185b(0x3d)](_0x2ca7d7[_0x185b(0x5)],0x1f4)){if(_0x185b(0x32)===_0x1dbae9['TRemA'])return!![];else _0x524087[_0x185b(0x2b)](_0x170566,_0x1b6fd0,_0x5426b4);}if(_0x1dbae9[_0x185b(0x3e)](_0x2ca7d7[_0x185b(0x3f)],_0x1dbae9[_0x185b(0x40)])||_0x2ca7d7[_0x185b(0xa)][_0x185b(0xb)](_0x1dbae9[_0x185b(0x41)])||_0x2ca7d7[_0x185b(0xa)][_0x185b(0xb)](_0x1dbae9[_0x185b(0x42)])||_0x2ca7d7[_0x185b(0xa)]['includes'](_0x185b(0x2))||_0x2ca7d7[_0x185b(0xa)][_0x185b(0xb)](_0x1dbae9['Gmmbl'])){if(_0x1dbae9[_0x185b(0x43)]!==_0x1dbae9['aaBsS'])return!![];else _0x3274cd=_0x4dab0a[_0x185b(0x24)](_0x1dbae9[_0x185b(0x44)](_0x463f42['baseDelay'],_0x54021e[_0x185b(0x27)](0x2,_0x1dbae9[_0x185b(0x45)](_0x18821b,0x1))),_0x34764b[_0x185b(0x29)]);}if(_0x2ca7d7['message'][_0x185b(0xb)](_0x1dbae9[_0x185b(0x46)])||_0x2ca7d7[_0x185b(0xa)]['includes'](_0x185b(0x12))||_0x2ca7d7['message'][_0x185b(0xb)](_0x185b(0x47)))return!![];return![];},'onRetry':(_0x383828,_0x4e6586,_0x134bf8)=>{console['warn']('⚠️\x20API\x20call\x20failed\x20(attempt\x20'+_0x4e6586+_0x185b(0x48)+_0x134bf8+_0x185b(0x49)+_0x383828[_0x185b(0xa)]);}};function _0x185b(_0x201228,_0x185b19){_0x201228=_0x201228-0x0;const _0xa7553b=_0x2012();let _0x4e465c=_0xa7553b[_0x201228];return _0x4e465c;}export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x229bc4,_0xd29033)=>{const _0x4f74e3={'yWwXi':_0x185b(0xc),'wdbhj':'ENOTFOUND','rJMeH':_0x185b(0x4a),'jKJJx':function(_0x1309c9,_0x49b6c1){return _0x1309c9===_0x49b6c1;},'tnnjd':_0x185b(0x1)};return _0x229bc4[_0x185b(0xa)][_0x185b(0xb)](_0x4f74e3[_0x185b(0x4b)])||_0x229bc4['message'][_0x185b(0xb)](_0x4f74e3[_0x185b(0x4c)])||_0x229bc4[_0x185b(0xa)][_0x185b(0xb)](_0x4f74e3['rJMeH'])||_0x4f74e3[_0x185b(0x4d)](_0x229bc4[_0x185b(0x3f)],_0x4f74e3[_0x185b(0x4e)]);}};export async function fetchWithRetry(_0x3b78f5,_0x37d84d={},_0x3fc282=API_RETRY_OPTIONS){const _0x6b1477={'xKmww':function(_0x1a2014,_0xd0da67,_0x2973b7){return _0x1a2014(_0xd0da67,_0x2973b7);}},_0x5a6c05=await _0x6b1477[_0x185b(0x4f)](withRetry,()=>fetch(_0x3b78f5,_0x37d84d),_0x3fc282);if(!_0x5a6c05[_0x185b(0x50)])throw _0x5a6c05['error'];return _0x5a6c05[_0x185b(0x51)];}export async function healthCheck(_0x42698e,_0x444128=0x1388){const _0x4968c1={'BGJRF':function(_0x2f060e,_0x2474e9,_0x1f5a38){return _0x2f060e(_0x2474e9,_0x1f5a38);},'FsNTd':function(_0x3f8644,_0x3595d4,_0x8ec20a){return _0x3f8644(_0x3595d4,_0x8ec20a);},'xYcjE':_0x185b(0x52),'kknBC':function(_0x5e3944,_0x97426b){return _0x5e3944(_0x97426b);},'ftOTD':function(_0x431fdb,_0x43388b){return _0x431fdb-_0x43388b;}},_0x25a7e5=Date[_0x185b(0x17)]();try{const _0x2cc0cd=new AbortController(),_0x322532=_0x4968c1[_0x185b(0x53)](setTimeout,()=>_0x2cc0cd['abort'](),_0x444128),_0x1b645d=await _0x4968c1[_0x185b(0x54)](fetch,_0x42698e,{'method':'GET','signal':_0x2cc0cd[_0x185b(0x55)],'headers':{'User-Agent':_0x4968c1[_0x185b(0x56)]}});return _0x4968c1[_0x185b(0x57)](clearTimeout,_0x322532),{'reachable':!![],'status':_0x1b645d['status'],'duration':_0x4968c1[_0x185b(0x58)](Date[_0x185b(0x17)](),_0x25a7e5)};}catch(_0x5b7f3f){return{'reachable':![],'error':_0x5b7f3f[_0x185b(0xa)],'duration':Date[_0x185b(0x17)]()-_0x25a7e5};}}
@@ -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
- import{Platform}from'react-native';import{STORAGE_KEYS}from'../constants';import AsyncStorage from'@react-native-async-storage/async-storage';const JWT_TOKEN_KEY=_0x4f71(0x0),mockStorage={};let Keychain=null;try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0x57d1dc){console[_0x4f71(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x4f71(0x2)},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x484eb6={'mERKm':'❌\x20Failed\x20to\x20clear\x20JWT\x20token:','PTytm':function(_0x5a9093,_0x5f48ed){return _0x5a9093!==_0x5f48ed;},'PBBZN':_0x4f71(0x3),'UeFdQ':function(_0x1e952b,_0xbab767){return _0x1e952b===_0xbab767;},'ryxeZ':_0x4f71(0x4)};try{return _0x484eb6[_0x4f71(0x5)](_0x484eb6[_0x4f71(0x6)],_0x484eb6[_0x4f71(0x6)])?(_0x26eb36[_0x4f71(0x7)](_0x484eb6[_0x4f71(0x8)],_0x4f2b47),![]):Keychain&&_0x484eb6[_0x4f71(0x9)](typeof Keychain[_0x4f71(0xa)],_0x484eb6[_0x4f71(0xb)]);}catch(_0x524bce){return![];}},safeGetGenericPassword=async _0x268916=>{const _0x22c236={'OOSkF':function(_0x244990,_0x4615fa){return _0x244990===_0x4615fa;},'WvAyx':_0x4f71(0xc),'cFDyU':'❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','DWTSl':function(_0x2fb0a4){return _0x2fb0a4();},'HLTMp':_0x4f71(0xd),'xCdOr':function(_0x32092a,_0x42fcf9){return _0x32092a===_0x42fcf9;},'JSnyn':'pdwfP','TdWaW':'LuBPn','oAsGH':'Keychain\x20access\x20failed,\x20using\x20mock\x20storage','XAYnH':function(_0x3b9611,_0x19c53a){return _0x3b9611===_0x19c53a;}};try{if(_0x22c236[_0x4f71(0xe)](isKeychainAvailable))return await Keychain[_0x4f71(0xa)](_0x268916);else{if(_0x22c236['HLTMp']===_0x22c236[_0x4f71(0xf)]){const _0x546678=(_0x22c236['xCdOr'](_0x268916,null)||_0x268916===void 0x0?void 0x0:_0x268916['service'])||_0x22c236[_0x4f71(0x10)];return mockStorage[_0x546678]||null;}else{const _0x29d53d=(_0x22c236[_0x4f71(0x11)](_0x4998b1,null)||_0x22c236[_0x4f71(0x11)](_0x514743,void 0x0)?void 0x0:_0x6acb23[_0x4f71(0x12)])||_0x22c236[_0x4f71(0x10)];return _0x16c2a1[_0x29d53d]||null;}}}catch(_0x549c7f){if(_0x22c236['OOSkF'](_0x22c236['JSnyn'],_0x22c236['TdWaW']))return _0x44661a[_0x4f71(0x7)](_0x22c236[_0x4f71(0x13)],_0x522d8d),null;else{console[_0x4f71(0x1)](_0x22c236[_0x4f71(0x14)],_0x549c7f);const _0x4a84c8=(_0x22c236[_0x4f71(0x15)](_0x268916,null)||_0x268916===void 0x0?void 0x0:_0x268916['service'])||_0x22c236['WvAyx'];return mockStorage[_0x4a84c8]||null;}}},safeSetGenericPassword=async(_0x58b242,_0x40dac2,_0x44fa9f)=>{const _0x126457={'auALY':function(_0x14fed0,_0x39856d){return _0x14fed0===_0x39856d;},'Nvjum':'default','BrPKx':function(_0x485c67,_0x46c680){return _0x485c67===_0x46c680;},'IvDCx':function(_0x1cb5f3){return _0x1cb5f3();},'iFVaC':function(_0x85cd04,_0x3920b9){return _0x85cd04===_0x3920b9;},'SgRbm':_0x4f71(0x16),'Zhclz':function(_0x7c94be,_0x3c1897){return _0x7c94be===_0x3c1897;}};try{if(_0x126457[_0x4f71(0x17)](_0x4f71(0x18),_0x4f71(0x18))){if(_0x126457[_0x4f71(0x19)](isKeychainAvailable))return await Keychain['setGenericPassword'](_0x58b242,_0x40dac2,_0x44fa9f);else{const _0x2f6c13=(_0x126457[_0x4f71(0x1a)](_0x44fa9f,null)||_0x44fa9f===void 0x0?void 0x0:_0x44fa9f[_0x4f71(0x12)])||_0x126457[_0x4f71(0x1b)];return mockStorage[_0x2f6c13]={'username':_0x58b242,'password':_0x40dac2},!![];}}else{const _0x2eeb3f=(_0x126457[_0x4f71(0x1c)](_0x3e2272,null)||_0xd42695===void 0x0?void 0x0:_0xc13429['service'])||_0x126457[_0x4f71(0x1b)];return _0x4c6c06[_0x2eeb3f]={'username':_0x36628a,'password':_0x2b9c64},!![];}}catch(_0x121e00){console['warn'](_0x126457[_0x4f71(0x1d)],_0x121e00);const _0x4f0530=(_0x126457[_0x4f71(0x17)](_0x44fa9f,null)||_0x126457[_0x4f71(0x1e)](_0x44fa9f,void 0x0)?void 0x0:_0x44fa9f[_0x4f71(0x12)])||_0x126457[_0x4f71(0x1b)];return mockStorage[_0x4f0530]={'username':_0x58b242,'password':_0x40dac2},!![];}},safeResetGenericPassword=async _0xfdd1ac=>{const _0x58221b={'xXGUr':'function','iHnpr':_0x4f71(0x16),'PKLaS':function(_0x5bef2d,_0x3b3b8e){return _0x5bef2d===_0x3b3b8e;},'MdFOc':_0x4f71(0xc),'vMhol':function(_0x30ca6c,_0x4cbf8b){return _0x30ca6c%_0x4cbf8b;},'NvYun':'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','TTyRw':function(_0x5c5b07,_0x4ad6b2){return _0x5c5b07<_0x4ad6b2;},'MQktU':function(_0xabce2c,_0x2ce66e){return _0xabce2c+_0x2ce66e;},'CXANf':function(_0x20c4aa,_0x4e8db8){return _0x20c4aa|_0x4e8db8;},'hNJtD':function(_0x167917,_0xad3df0){return _0x167917|_0xad3df0;},'KAygV':function(_0x283dd6,_0x111d9b){return _0x283dd6<<_0x111d9b;},'mrfLg':function(_0x693594,_0x2510c7){return _0x693594<<_0x2510c7;},'MgzTs':function(_0x42ac0a,_0x4fa12a){return _0x42ac0a&_0x4fa12a;},'bswGD':function(_0x27e350,_0x234f1c){return _0x27e350!==_0x234f1c;},'pWitW':function(_0x232cf7,_0x48aa64){return _0x232cf7>>_0x48aa64;},'HsDKQ':function(_0x3f85c0,_0x50a87f){return _0x3f85c0!==_0x50a87f;},'vzNzF':function(_0x243e58,_0x4ffb21){return _0x243e58&_0x4ffb21;},'QMIeh':function(_0x10a439,_0xe83aea){return _0x10a439+_0xe83aea;},'zdwJe':function(_0x29927f,_0x24cd8a){return _0x29927f+_0x24cd8a;},'jdKTD':function(_0x26594d,_0x5c53bc){return _0x26594d|_0x5c53bc;},'Tjhhj':function(_0x375a8a,_0x5b654e){return _0x375a8a|_0x5b654e;},'YUrHL':function(_0x1348af,_0x3ce2a9){return _0x1348af<<_0x3ce2a9;},'aONPg':function(_0x2209d9,_0x39afbb){return _0x2209d9&_0x39afbb;},'xOdwz':function(_0x5de48a,_0x3ed5e0){return _0x5de48a&_0x3ed5e0;},'hvGsL':function(_0x188a35,_0x59a946){return _0x188a35===_0x59a946;},'ETJWz':'srblN','jGsJx':function(_0xa7e1f8){return _0xa7e1f8();},'qKAGr':_0x4f71(0x1f),'hdOJw':_0x4f71(0x20),'DMSAf':function(_0x5b80ec,_0x1d0be4){return _0x5b80ec===_0x1d0be4;},'rcDZu':'LGgjl','FxDrn':function(_0x310879,_0x98600a){return _0x310879===_0x98600a;},'yILdt':_0x4f71(0x21),'HCNfv':function(_0x32f9b9,_0x199c34){return _0x32f9b9===_0x199c34;}};try{if(_0x58221b[_0x4f71(0x22)]('srblN',_0x58221b[_0x4f71(0x23)])){if(_0x58221b['jGsJx'](isKeychainAvailable))return _0x58221b['bswGD'](_0x58221b[_0x4f71(0x24)],_0x58221b['hdOJw'])?await Keychain['resetGenericPassword'](_0xfdd1ac):Keychain&&typeof Keychain[_0x4f71(0xa)]===_0x58221b[_0x4f71(0x25)];else{if(_0x58221b[_0x4f71(0x26)](_0x58221b[_0x4f71(0x27)],'PNwGY')){_0x11cb64[_0x4f71(0x1)](_0x58221b[_0x4f71(0x28)],_0xe8fa8);const _0x5b1ab4=(_0xdcedb6===null||_0x58221b[_0x4f71(0x29)](_0x1aaebc,void 0x0)?void 0x0:_0x1863ff[_0x4f71(0x12)])||_0x58221b[_0x4f71(0x2a)];return delete _0x3fb274[_0x5b1ab4],!![];}else{const _0x53d13a=(_0x58221b[_0x4f71(0x22)](_0xfdd1ac,null)||_0x58221b[_0x4f71(0x26)](_0xfdd1ac,void 0x0)?void 0x0:_0xfdd1ac[_0x4f71(0x12)])||_0x58221b['MdFOc'];return delete mockStorage[_0x53d13a],!![];}}}else{while(_0x58221b[_0x4f71(0x2b)](_0x8f0afe[_0x4f71(0x2c)],0x4)){_0x14c5fa+='=';}const _0x1ff2a4=_0x58221b['NvYun'];let _0x23bbad='';for(let _0x1aec13=0x0;_0x58221b[_0x4f71(0x2d)](_0x1aec13,_0x59d826[_0x4f71(0x2c)]);_0x1aec13+=0x4){const _0x94c6aa=_0x1ff2a4[_0x4f71(0x2e)](_0x38abfc[_0x4f71(0x2f)](_0x1aec13)),_0x3f46db=_0x1ff2a4[_0x4f71(0x2e)](_0x6116f6[_0x4f71(0x2f)](_0x58221b[_0x4f71(0x30)](_0x1aec13,0x1))),_0x485879=_0x1ff2a4[_0x4f71(0x2e)](_0x4b97e6[_0x4f71(0x2f)](_0x58221b[_0x4f71(0x30)](_0x1aec13,0x2))),_0x191abf=_0x1ff2a4[_0x4f71(0x2e)](_0x1552e9[_0x4f71(0x2f)](_0x58221b['MQktU'](_0x1aec13,0x3))),_0x49144a=_0x58221b[_0x4f71(0x31)](_0x58221b[_0x4f71(0x31)](_0x58221b['hNJtD'](_0x58221b[_0x4f71(0x32)](_0x94c6aa,0x12),_0x58221b['KAygV'](_0x3f46db,0xc)),_0x58221b[_0x4f71(0x33)](_0x485879,0x6)),_0x191abf);_0x23bbad+=_0x1f7001[_0x4f71(0x34)](_0x58221b[_0x4f71(0x35)](_0x49144a>>0x10,0xff));if(_0x58221b['bswGD'](_0x485879,0x40))_0x23bbad+=_0x57f8a1[_0x4f71(0x34)](_0x58221b[_0x4f71(0x35)](_0x58221b[_0x4f71(0x36)](_0x49144a,0x8),0xff));if(_0x58221b['HsDKQ'](_0x191abf,0x40))_0x23bbad+=_0x5030f6[_0x4f71(0x34)](_0x58221b[_0x4f71(0x37)](_0x49144a,0xff));}return _0x23bbad;}}catch(_0x206594){if(_0x58221b['FxDrn'](_0x4f71(0x21),_0x58221b['yILdt'])){console[_0x4f71(0x1)](_0x4f71(0x16),_0x206594);const _0x5cbb8b=(_0x58221b[_0x4f71(0x29)](_0xfdd1ac,null)||_0x58221b[_0x4f71(0x38)](_0xfdd1ac,void 0x0)?void 0x0:_0xfdd1ac['service'])||_0x4f71(0xc);return delete mockStorage[_0x5cbb8b],!![];}else{const _0x1a9082=_0x46e7ee['indexOf'](_0x399768[_0x4f71(0x2f)](_0x5dabc7)),_0x18eb78=_0x5a015b[_0x4f71(0x2e)](_0x5f4678[_0x4f71(0x2f)](_0x58221b[_0x4f71(0x39)](_0x335f24,0x1))),_0xb568f5=_0x26783a['indexOf'](_0x4dcccb[_0x4f71(0x2f)](_0x58221b[_0x4f71(0x30)](_0x21d7b8,0x2))),_0x248198=_0x546d47[_0x4f71(0x2e)](_0x519f09[_0x4f71(0x2f)](_0x58221b[_0x4f71(0x3a)](_0xfb5fe2,0x3))),_0x2a5e75=_0x58221b[_0x4f71(0x3b)](_0x58221b[_0x4f71(0x31)](_0x58221b[_0x4f71(0x3c)](_0x1a9082<<0x12,_0x58221b[_0x4f71(0x33)](_0x18eb78,0xc)),_0x58221b[_0x4f71(0x3d)](_0xb568f5,0x6)),_0x248198);_0x5aeab8+=_0x382eab[_0x4f71(0x34)](_0x58221b['aONPg'](_0x2a5e75>>0x10,0xff));if(_0x58221b[_0x4f71(0x3e)](_0xb568f5,0x40))_0x22e968+=_0x4dcc6e[_0x4f71(0x34)](_0x58221b[_0x4f71(0x3f)](_0x58221b[_0x4f71(0x36)](_0x2a5e75,0x8),0xff));if(_0x58221b[_0x4f71(0x40)](_0x248198,0x40))_0x3efe8d+=_0x51f1fa[_0x4f71(0x34)](_0x2a5e75&0xff);}}};export const storeCredentials=async _0x15ccc0=>{const _0x141b60={'hkVQF':function(_0x1f22eb,_0x1457b1){return _0x1f22eb(_0x1457b1);},'vADdH':function(_0x48b9fb){return _0x48b9fb();},'FgGaK':function(_0x39b373,_0x3d915c){return _0x39b373===_0x3d915c;},'fyHaC':function(_0x310e89,_0x332a19){return _0x310e89===_0x332a19;},'ZHEyA':_0x4f71(0x41),'KQSuW':'Username\x20is\x20required\x20for\x20storing\x20credentials','REJdw':_0x4f71(0x42),'hgTAx':function(_0x413612){return _0x413612();},'TnzqA':_0x4f71(0x43),'jmpHT':_0x4f71(0x44),'dnlRT':function(_0x2736d2,_0x30c364,_0x27e6ac,_0x1ad43a){return _0x2736d2(_0x30c364,_0x27e6ac,_0x1ad43a);},'mjJUQ':function(_0x3124dc,_0x13b5b1){return _0x3124dc!==_0x13b5b1;},'InWjd':'jafuy','orfsr':_0x4f71(0x45)};try{const _0x241661=await _0x141b60[_0x4f71(0x46)](getCredentials),_0x4c07f5={..._0x241661,..._0x15ccc0,'createdAt':(_0x241661===null||_0x141b60['FgGaK'](_0x241661,void 0x0)?void 0x0:_0x241661['createdAt'])||Date[_0x4f71(0x47)]()},_0x193c8f=_0x4c07f5['username'];if(!_0x193c8f){if(_0x141b60[_0x4f71(0x48)](_0x141b60['ZHEyA'],'qXscC')){const _0x50fa8=_0xae9d8b[_0x4f71(0x49)]()[_0x4f71(0x4a)](0x24)[_0x4f71(0x4b)](0x2,0xa);return _0x4f71(0x4c)+_0x50fa8;}else throw new Error(_0x141b60[_0x4f71(0x4d)]);}const _0x4de2ad={'service':STORAGE_KEYS['credentials']};if(Platform['OS']!==_0x141b60['REJdw']&&_0x141b60[_0x4f71(0x4e)](isKeychainAvailable)){if(_0x141b60[_0x4f71(0x4f)]===_0x141b60[_0x4f71(0x50)])return!![];else _0x4de2ad[_0x4f71(0x51)]=Keychain[_0x4f71(0x52)]['BIOMETRY_ANY_OR_DEVICE_PASSCODE'],_0x4de2ad['accessible']=Keychain[_0x4f71(0x53)][_0x4f71(0x54)];}return await _0x141b60['dnlRT'](safeSetGenericPassword,_0x193c8f,JSON[_0x4f71(0x55)](_0x4c07f5),_0x4de2ad),!![];}catch(_0x3bc3fb){return _0x141b60[_0x4f71(0x56)](_0x4f71(0x57),_0x141b60[_0x4f71(0x58)])?(console[_0x4f71(0x7)](_0x141b60[_0x4f71(0x59)],_0x3bc3fb),![]):_0x141b60['hkVQF'](_0x3d1a28,_0x437de0);}};export const getCredentials=async()=>{const _0x5d4c82={'namRd':function(_0x5d4eaa,_0x551b1a){return _0x5d4eaa===_0x551b1a;},'WqdiC':_0x4f71(0x5a),'roEeU':'kjKLl','HGUdA':function(_0x145059,_0x2b5939){return _0x145059(_0x2b5939);},'ljsnr':_0x4f71(0x5b)};try{if(_0x5d4c82[_0x4f71(0x5c)](_0x5d4c82[_0x4f71(0x5d)],_0x5d4c82[_0x4f71(0x5e)]))_0x568926[_0x4f71(0x51)]=Keychain['ACCESS_CONTROL'][_0x4f71(0x5f)],_0x370fb1['accessible']=Keychain[_0x4f71(0x53)]['WHEN_UNLOCKED'];else{const _0x34965d=await _0x5d4c82[_0x4f71(0x60)](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x4f71(0x61)]});if(_0x34965d)return JSON[_0x4f71(0x62)](_0x34965d['password']);return null;}}catch(_0x23447e){return console[_0x4f71(0x7)](_0x5d4c82['ljsnr'],_0x23447e),null;}};export const hasCredentials=async()=>{const _0x44d2af={'iSpWq':function(_0x14831f,_0x59fce4){return _0x14831f(_0x59fce4);},'TMBco':'Error\x20checking\x20credentials:'};try{const _0x3f726b=await _0x44d2af[_0x4f71(0x63)](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x4f71(0x61)]});return!!_0x3f726b;}catch(_0x41251a){return console['error'](_0x44d2af[_0x4f71(0x64)],_0x41251a),![];}};function _0x4f71(_0x329a38,_0x4f7171){_0x329a38=_0x329a38-0x0;const _0x43c0a=_0x329a();let _0x597fb4=_0x43c0a[_0x329a38];return _0x597fb4;}export const deleteCredentials=async()=>{const _0x1b3aab={'BMSiV':_0x4f71(0x45),'pWFlN':function(_0x508787,_0x509b18){return _0x508787!==_0x509b18;},'aBPkz':'larDX','fMvss':_0x4f71(0x65),'LNswP':function(_0x7284f2,_0x387333){return _0x7284f2(_0x387333);},'DgbCQ':_0x4f71(0x66)};try{return _0x1b3aab['pWFlN'](_0x1b3aab[_0x4f71(0x67)],_0x1b3aab[_0x4f71(0x68)])?(await _0x1b3aab['LNswP'](safeResetGenericPassword,{'service':STORAGE_KEYS[_0x4f71(0x61)]}),!![]):(_0x24a068[_0x4f71(0x7)](_0x1b3aab[_0x4f71(0x69)],_0x22af1c),![]);}catch(_0x2a8590){return console[_0x4f71(0x7)](_0x1b3aab[_0x4f71(0x6a)],_0x2a8590),![];}};export const updateCredentials=async _0x3db6f5=>{return storeCredentials(_0x3db6f5);};export const generateDeviceUsername=()=>{const _0x4292bb=Math[_0x4f71(0x49)]()['toString'](0x24)[_0x4f71(0x4b)](0x2,0xa);return'dev_'+_0x4292bb;};export const verifyCredentials=async _0x1a3ad6=>{const _0x2106c3={'FnUQY':function(_0x255651){return _0x255651();}};try{if(!_0x2106c3['FnUQY'](isKeychainAvailable))return!![];return!![];}catch(_0x532bed){return console[_0x4f71(0x7)](_0x4f71(0x6b),_0x532bed),![];}};export const getJWT=async()=>{const _0x32b90e={'cxsdD':function(_0x10742d,_0x18ed90){return _0x10742d===_0x18ed90;},'FtbeR':function(_0x123b7a,_0xfc3175){return _0x123b7a===_0xfc3175;},'ODOaD':_0x4f71(0x6c)};try{const _0x3a321a=await AsyncStorage[_0x4f71(0x6d)](JWT_TOKEN_KEY);return _0x3a321a;}catch(_0x207040){if(_0x32b90e[_0x4f71(0x6e)](_0x32b90e[_0x4f71(0x6f)],_0x32b90e[_0x4f71(0x6f)]))return console[_0x4f71(0x7)](_0x4f71(0x70),_0x207040),null;else{_0x31d308[_0x4f71(0x1)](_0x4f71(0x16),_0x5f5d37);const _0xf2f1bc=(_0x32b90e[_0x4f71(0x71)](_0x1a9a12,null)||_0x32b90e['FtbeR'](_0x4c008f,void 0x0)?void 0x0:_0x11b365[_0x4f71(0x12)])||_0x4f71(0xc);return _0x17ed5f[_0xf2f1bc]||null;}}};function _0x329a(){const _0x1b6a05=['onairos_jwt_token','warn','mock','DBZTx','function','PTytm','PBBZN','error','mERKm','UeFdQ','getGenericPassword','ryxeZ','default','lxuQY','DWTSl','HLTMp','WvAyx','OOSkF','service','cFDyU','oAsGH','XAYnH','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','BrPKx','lFcPl','IvDCx','iFVaC','Nvjum','auALY','SgRbm','Zhclz','uqxWn','buVWx','cucdm','hvGsL','ETJWz','qKAGr','xXGUr','DMSAf','rcDZu','iHnpr','PKLaS','MdFOc','vMhol','length','TTyRw','indexOf','charAt','MQktU','CXANf','KAygV','mrfLg','fromCharCode','MgzTs','pWitW','vzNzF','HCNfv','QMIeh','zdwJe','jdKTD','Tjhhj','YUrHL','HsDKQ','xOdwz','bswGD','tpmvN','web','qPUKJ','ZDEAy','Error\x20storing\x20credentials:','vADdH','now','fyHaC','random','toString','substring','dev_','KQSuW','hgTAx','TnzqA','jmpHT','accessControl','ACCESS_CONTROL','ACCESSIBLE','WHEN_UNLOCKED','stringify','mjJUQ','nUnhm','InWjd','orfsr','aQQTV','Error\x20getting\x20credentials:','namRd','WqdiC','roEeU','BIOMETRY_ANY_OR_DEVICE_PASSCODE','HGUdA','credentials','parse','iSpWq','TMBco','SBCCl','Error\x20deleting\x20credentials:','aBPkz','fMvss','BMSiV','DgbCQ','Error\x20verifying\x20credentials:','PZyFM','getItem','FtbeR','ODOaD','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','cxsdD','❌\x20Failed\x20to\x20check\x20JWT\x20token:','sFKqT','zGRRM','CZeen','🗑️\x20JWT\x20token\x20cleared','DPKDF','❌\x20Failed\x20to\x20clear\x20JWT\x20token:','removeItem','oGwXB','SZOJa','cZOSI','oMPhs','eCipn','sMEpG','iTXCP','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','FxUrV','KRFlZ','GnasO','sQOOr','lBKhd','xFEFh','Flyft','xzTgP','mSFoB','split','qKrBa','CroAr','EDNzf','UFWzc','zReaq','kkJZj','UzWnO','pssGo','floor','oMlGd','vQQdM','OpFlX','BZcpa'];_0x329a=function(){return _0x1b6a05;};return _0x329a();}export const hasJWT=async()=>{const _0x3212dc={'zGRRM':_0x4f71(0x2),'sFKqT':'bijEU','CZeen':_0x4f71(0x72)};try{if(_0x3212dc[_0x4f71(0x73)]!==_0x3212dc[_0x4f71(0x73)])_0x31a0c1[_0x4f71(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x3212dc[_0x4f71(0x74)]},'ACCESSIBLE':{'WHEN_UNLOCKED':_0x4f71(0x2)},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};else{const _0x5cbda1=await AsyncStorage[_0x4f71(0x6d)](JWT_TOKEN_KEY);return!!_0x5cbda1;}}catch(_0x19ba19){return console[_0x4f71(0x7)](_0x3212dc[_0x4f71(0x75)],_0x19ba19),![];}};export const clearJWT=async()=>{const _0x590f17={'PZuXI':_0x4f71(0x70),'oGwXB':_0x4f71(0x76),'SZOJa':function(_0x541001,_0x4701bb){return _0x541001===_0x4701bb;},'cZOSI':_0x4f71(0x77),'oMPhs':_0x4f71(0x78)};try{return await AsyncStorage[_0x4f71(0x79)](JWT_TOKEN_KEY),console['log'](_0x590f17[_0x4f71(0x7a)]),!![];}catch(_0x3d13d7){return _0x590f17[_0x4f71(0x7b)](_0x590f17[_0x4f71(0x7c)],_0x590f17[_0x4f71(0x7c)])?(console[_0x4f71(0x7)](_0x590f17[_0x4f71(0x7d)],_0x3d13d7),![]):(_0x171466[_0x4f71(0x7)](_0x590f17['PZuXI'],_0x5ab1ce),null);}};const base64Decode=_0x546342=>{const _0x10993f={'iTXCP':'Username\x20is\x20required\x20for\x20storing\x20credentials','eCipn':'cNblS','FxUrV':function(_0x2a42ed,_0x2ea027){return _0x2a42ed<_0x2ea027;},'KRFlZ':function(_0x558a0f,_0x14b4c3){return _0x558a0f+_0x14b4c3;},'GnasO':function(_0x31c201,_0x148b8a){return _0x31c201|_0x148b8a;},'sQOOr':function(_0x41d31f,_0x1aed12){return _0x41d31f|_0x1aed12;},'lBKhd':function(_0x34c8fb,_0x388c8e){return _0x34c8fb|_0x388c8e;},'xFEFh':function(_0x3734c6,_0x552181){return _0x3734c6<<_0x552181;},'Flyft':function(_0x546e77,_0x62eae0){return _0x546e77<<_0x62eae0;},'osfDd':function(_0x477553,_0x944d3e){return _0x477553&_0x944d3e;},'xzTgP':function(_0x3cdbf3,_0x4687e9){return _0x3cdbf3!==_0x4687e9;},'mSFoB':function(_0x412f87,_0x15113f){return _0x412f87&_0x15113f;}};while(_0x546342[_0x4f71(0x2c)]%0x4){if(_0x10993f[_0x4f71(0x7e)]!==_0x4f71(0x7f))_0x546342+='=';else throw new _0x3ed4bb(_0x10993f[_0x4f71(0x80)]);}const _0x3b7f10=_0x4f71(0x81);let _0x1b30af='';for(let _0x2dc537=0x0;_0x10993f[_0x4f71(0x82)](_0x2dc537,_0x546342[_0x4f71(0x2c)]);_0x2dc537+=0x4){const _0x470cf9=_0x3b7f10[_0x4f71(0x2e)](_0x546342['charAt'](_0x2dc537)),_0x23641d=_0x3b7f10[_0x4f71(0x2e)](_0x546342['charAt'](_0x2dc537+0x1)),_0x135cd7=_0x3b7f10[_0x4f71(0x2e)](_0x546342[_0x4f71(0x2f)](_0x10993f[_0x4f71(0x83)](_0x2dc537,0x2))),_0x2ad873=_0x3b7f10['indexOf'](_0x546342[_0x4f71(0x2f)](_0x2dc537+0x3)),_0x3134b6=_0x10993f[_0x4f71(0x84)](_0x10993f[_0x4f71(0x85)](_0x10993f[_0x4f71(0x86)](_0x10993f[_0x4f71(0x87)](_0x470cf9,0x12),_0x10993f[_0x4f71(0x88)](_0x23641d,0xc)),_0x10993f[_0x4f71(0x88)](_0x135cd7,0x6)),_0x2ad873);_0x1b30af+=String[_0x4f71(0x34)](_0x10993f['osfDd'](_0x3134b6>>0x10,0xff));if(_0x10993f[_0x4f71(0x89)](_0x135cd7,0x40))_0x1b30af+=String[_0x4f71(0x34)](_0x3134b6>>0x8&0xff);if(_0x2ad873!==0x40)_0x1b30af+=String[_0x4f71(0x34)](_0x10993f[_0x4f71(0x8a)](_0x3134b6,0xff));}return _0x1b30af;};export const getJWTPayload=async()=>{const _0x4272f7={'IjwNR':function(_0x447cfa){return _0x447cfa();},'qKrBa':function(_0x4e0af8,_0x13cd66){return _0x4e0af8!==_0x13cd66;},'CroAr':function(_0x1f9793,_0x14b492){return _0x1f9793(_0x14b492);},'EDNzf':'❌\x20Failed\x20to\x20decode\x20JWT\x20payload:'};try{const _0x5cb063=await _0x4272f7['IjwNR'](getJWT);if(!_0x5cb063)return null;const _0x525330=_0x5cb063[_0x4f71(0x8b)]('.');if(_0x4272f7[_0x4f71(0x8c)](_0x525330['length'],0x3))return null;const _0x2e2fb0=_0x4272f7[_0x4f71(0x8d)](base64Decode,_0x525330[0x1]),_0x2d9488=JSON[_0x4f71(0x62)](_0x2e2fb0);return _0x2d9488;}catch(_0x53202f){return console['error'](_0x4272f7[_0x4f71(0x8e)],_0x53202f),null;}};export const isJWTExpired=async()=>{const _0x5bd8b9={'pssGo':_0x4f71(0x72),'BZcpa':_0x4f71(0x66),'RcmxJ':_0x4f71(0x8f),'UzWnO':_0x4f71(0x90),'oMlGd':function(_0x55bf00,_0xb4d1b1){return _0x55bf00/_0xb4d1b1;},'ZIcXb':function(_0x177ffb,_0x2a4757){return _0x177ffb<_0x2a4757;},'aJbwZ':function(_0x47e361,_0x4f06fb){return _0x47e361!==_0x4f06fb;},'vQQdM':'BaBwn','OpFlX':_0x4f71(0x91)};try{if(_0x5bd8b9['RcmxJ']===_0x5bd8b9[_0x4f71(0x92)])return _0x57e8ce[_0x4f71(0x7)](_0x5bd8b9[_0x4f71(0x93)],_0x325872),![];else{const _0x549c40=await getJWTPayload();if(!_0x549c40||!_0x549c40['exp'])return!![];const _0xee5ac7=Math[_0x4f71(0x94)](_0x5bd8b9[_0x4f71(0x95)](Date[_0x4f71(0x47)](),0x3e8));return _0x5bd8b9['ZIcXb'](_0x549c40['exp'],_0xee5ac7);}}catch(_0x5357fb){return _0x5bd8b9['aJbwZ'](_0x5bd8b9[_0x4f71(0x96)],_0x5bd8b9[_0x4f71(0x97)])?(console[_0x4f71(0x7)]('❌\x20Failed\x20to\x20check\x20JWT\x20expiration:',_0x5357fb),!![]):(_0x22a21b[_0x4f71(0x7)](_0x5bd8b9[_0x4f71(0x98)],_0x40dac5),![]);}};
7
+ import{Platform}from'react-native';import{STORAGE_KEYS}from'../constants';import AsyncStorage from'@react-native-async-storage/async-storage';const JWT_TOKEN_KEY=_0xdb77(0x0),mockStorage={};function _0x4c22(){const _0x385751=['onairos_jwt_token','mock','function','jdPse','getGenericPassword','yiLUd','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','PaxpK','PVHYu','sJDzJ','service','default','vCEcs','APumh','lMAjd','indexOf','charAt','KGrWo','TMUAp','BTXwR','Mqtbm','WxAJi','JoYZb','cAMgP','VZJho','fromCharCode','PGXzu','XtLfz','warn','aFdXx','JlbkK','xgMYo','setGenericPassword','hueyH','jhGMr','cRdtm','PWIQO','kVxRq','ChxTu','cYsJw','DvWhi','YhTcP','Error\x20storing\x20credentials:','OndYD','zxqtE','createdAt','credentials','pKhkk','web','ACCESSIBLE','gLsYB','stringify','error','❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','kwCYN','lzglw','YBELd','PbzeU','Error\x20checking\x20credentials:','imrke','fPXVj','uqEsU','hVAxZ','CkJeZ','ECLPi','KzZmY','YIxOU','Error\x20verifying\x20credentials:','random','toString','substring','❌\x20Failed\x20to\x20check\x20JWT\x20token:','BekqG','GEoXD','oTSxk','OIkZv','rcHeP','OonWS','TXuRG','dev_','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','Username\x20is\x20required\x20for\x20storing\x20credentials','bOsMP','CBvfn','iuQfZ','ihnhC','zpeIf','fcZUm','getItem','ydEKY','xczxV','qjfat','IgUVF','zeBzL','removeItem','log','OyVfD','jmwLY','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','VqsLs','DZkwS','bmPJY','TlOSb','length','MDlov','IWjXG','sYOlV','EtCfD','AyrYU','WrxDP','mUQZN','FHuZL','OoeSN','yWiXw','BLRiK','RGLld','YsJPB','FiNzV','TOzHA','split','AbDrw','MGDxK','parse','sjUDo','ucAIj','hFmyQ','geUUO','❌\x20Failed\x20to\x20check\x20JWT\x20expiration:','lxEKg','lYOKn','NdWdO','exp','floor','GwzZV','RvaNR','WqWfF'];_0x4c22=function(){return _0x385751;};return _0x4c22();}let Keychain=null;try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0x1f847e){console['warn']('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0xdb77(0x1)},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x58ccaf={'jdPse':function(_0x1037f6,_0x3d17d1){return _0x1037f6===_0x3d17d1;},'yiLUd':_0xdb77(0x2)};try{return Keychain&&_0x58ccaf[_0xdb77(0x3)](typeof Keychain[_0xdb77(0x4)],_0x58ccaf[_0xdb77(0x5)]);}catch(_0xf4dad8){return![];}},safeGetGenericPassword=async _0x30f998=>{const _0x6b871c={'vCEcs':function(_0x3113bc,_0x5eeff8){return _0x3113bc===_0x5eeff8;},'APumh':'default','KGrWo':function(_0x4e7bea,_0x39b645){return _0x4e7bea+_0x39b645;},'TMUAp':function(_0x47fc75,_0x156fb1){return _0x47fc75+_0x156fb1;},'BTXwR':function(_0x462567,_0x575eba){return _0x462567|_0x575eba;},'Mqtbm':function(_0x2b98c5,_0x1d05b9){return _0x2b98c5|_0x1d05b9;},'WxAJi':function(_0xbf27b9,_0x261f08){return _0xbf27b9<<_0x261f08;},'mBBWL':function(_0x16850d,_0x59b693){return _0x16850d<<_0x59b693;},'JoYZb':function(_0x40dbaf,_0x121220){return _0x40dbaf<<_0x121220;},'cAMgP':function(_0x1ffd12,_0x42f28a){return _0x1ffd12&_0x42f28a;},'VZJho':function(_0x53fe83,_0x5c8575){return _0x53fe83>>_0x5c8575;},'eQaOx':function(_0x23c093,_0x4fbbc5){return _0x23c093!==_0x4fbbc5;},'PGXzu':function(_0x1e66a4,_0x167b84){return _0x1e66a4&_0x167b84;},'XtLfz':function(_0x3dbc99,_0x2d0571){return _0x3dbc99!==_0x2d0571;},'NeUFx':function(_0x5f13d,_0x3f6328){return _0x5f13d&_0x3f6328;},'PaxpK':function(_0x316e4a,_0x38aab0){return _0x316e4a!==_0x38aab0;},'PVHYu':'aHRXs','sJDzJ':'UIdNU','QEEJE':function(_0x10bc73){return _0x10bc73();},'apETn':_0xdb77(0x6),'aFdXx':function(_0x9a1ebb,_0x206744){return _0x9a1ebb===_0x206744;},'JlbkK':function(_0x29c181,_0x378c35){return _0x29c181===_0x378c35;}};try{if(_0x6b871c[_0xdb77(0x7)](_0x6b871c[_0xdb77(0x8)],_0x6b871c[_0xdb77(0x9)])){if(_0x6b871c['QEEJE'](isKeychainAvailable))return await Keychain[_0xdb77(0x4)](_0x30f998);else{const _0x1ec91d=(_0x30f998===null||_0x30f998===void 0x0?void 0x0:_0x30f998[_0xdb77(0xa)])||_0xdb77(0xb);return mockStorage[_0x1ec91d]||null;}}else{const _0x426c55=(_0x6b871c[_0xdb77(0xc)](_0x1adc47,null)||_0x6b871c[_0xdb77(0xc)](_0x5c1731,void 0x0)?void 0x0:_0x52baa5[_0xdb77(0xa)])||_0x6b871c[_0xdb77(0xd)];return delete _0x96134a[_0x426c55],!![];}}catch(_0x5ebbfd){if(_0x6b871c[_0xdb77(0x7)](_0xdb77(0xe),_0xdb77(0xe))){const _0x58e48e=_0x1e88be[_0xdb77(0xf)](_0x376d5b[_0xdb77(0x10)](_0x4db630)),_0x51f7c0=_0x559973['indexOf'](_0x171e6f[_0xdb77(0x10)](_0x6b871c['KGrWo'](_0x31bff8,0x1))),_0x43cd2e=_0xc852a0[_0xdb77(0xf)](_0x3d190e[_0xdb77(0x10)](_0x6b871c[_0xdb77(0x11)](_0x4ad5fe,0x2))),_0x5334a2=_0x247d92[_0xdb77(0xf)](_0x11c240[_0xdb77(0x10)](_0x6b871c[_0xdb77(0x12)](_0x2e4d32,0x3))),_0x275437=_0x6b871c[_0xdb77(0x13)](_0x6b871c[_0xdb77(0x14)](_0x6b871c[_0xdb77(0x15)](_0x58e48e,0x12),_0x6b871c['mBBWL'](_0x51f7c0,0xc)),_0x6b871c[_0xdb77(0x16)](_0x43cd2e,0x6))|_0x5334a2;_0x1222d5+=_0x4e809a['fromCharCode'](_0x6b871c[_0xdb77(0x17)](_0x6b871c[_0xdb77(0x18)](_0x275437,0x10),0xff));if(_0x6b871c['eQaOx'](_0x43cd2e,0x40))_0x182ed7+=_0x4a7e67[_0xdb77(0x19)](_0x6b871c[_0xdb77(0x1a)](_0x6b871c[_0xdb77(0x18)](_0x275437,0x8),0xff));if(_0x6b871c[_0xdb77(0x1b)](_0x5334a2,0x40))_0xd2a7cb+=_0x1c1d00[_0xdb77(0x19)](_0x6b871c['NeUFx'](_0x275437,0xff));}else{console[_0xdb77(0x1c)](_0x6b871c['apETn'],_0x5ebbfd);const _0x8736de=(_0x6b871c[_0xdb77(0x1d)](_0x30f998,null)||_0x6b871c[_0xdb77(0x1e)](_0x30f998,void 0x0)?void 0x0:_0x30f998[_0xdb77(0xa)])||_0x6b871c[_0xdb77(0xd)];return mockStorage[_0x8736de]||null;}}},safeSetGenericPassword=async(_0x11da0b,_0x4b41ee,_0x40180d)=>{const _0x399dfa={'WwwUZ':function(_0x15b704,_0x4538d2){return _0x15b704===_0x4538d2;},'Ylmqt':function(_0x3d6fec,_0x56bdc5){return _0x3d6fec===_0x56bdc5;},'hueyH':_0xdb77(0xb),'jhGMr':_0xdb77(0x1f),'cRdtm':function(_0x23eee9,_0x47fcc0){return _0x23eee9===_0x47fcc0;}};try{if(isKeychainAvailable())return await Keychain[_0xdb77(0x20)](_0x11da0b,_0x4b41ee,_0x40180d);else{const _0xb0d72d=(_0x399dfa['WwwUZ'](_0x40180d,null)||_0x399dfa['Ylmqt'](_0x40180d,void 0x0)?void 0x0:_0x40180d[_0xdb77(0xa)])||_0x399dfa[_0xdb77(0x21)];return mockStorage[_0xb0d72d]={'username':_0x11da0b,'password':_0x4b41ee},!![];}}catch(_0x14f2a8){if(_0x399dfa['WwwUZ'](_0x399dfa[_0xdb77(0x22)],'xgMYo')){console[_0xdb77(0x1c)](_0xdb77(0x6),_0x14f2a8);const _0x495342=(_0x40180d===null||_0x399dfa[_0xdb77(0x23)](_0x40180d,void 0x0)?void 0x0:_0x40180d[_0xdb77(0xa)])||_0x399dfa['hueyH'];return mockStorage[_0x495342]={'username':_0x11da0b,'password':_0x4b41ee},!![];}else return![];}},safeResetGenericPassword=async _0x6991cc=>{const _0x3490fe={'ChxTu':function(_0x4d821a,_0x4148fc){return _0x4d821a===_0x4148fc;},'cYsJw':function(_0x23afb4,_0x40fdef){return _0x23afb4===_0x40fdef;},'kVxRq':_0xdb77(0x24),'DvWhi':_0xdb77(0x6),'YhTcP':_0xdb77(0xb)};try{if(isKeychainAvailable())return await Keychain['resetGenericPassword'](_0x6991cc);else{if(_0x3490fe[_0xdb77(0x25)]!=='WbIOm'){const _0x245ed8=(_0x3490fe[_0xdb77(0x26)](_0x6991cc,null)||_0x3490fe[_0xdb77(0x26)](_0x6991cc,void 0x0)?void 0x0:_0x6991cc['service'])||_0xdb77(0xb);return delete mockStorage[_0x245ed8],!![];}else{const _0x33eabc=(_0x3490fe[_0xdb77(0x26)](_0x1606b6,null)||_0x3490fe[_0xdb77(0x27)](_0x480bd6,void 0x0)?void 0x0:_0x29fec4[_0xdb77(0xa)])||_0xdb77(0xb);return _0x26ebdb[_0x33eabc]={'username':_0x37262e,'password':_0x4e7e9b},!![];}}}catch(_0x4ec999){console[_0xdb77(0x1c)](_0x3490fe[_0xdb77(0x28)],_0x4ec999);const _0x47b9de=(_0x3490fe[_0xdb77(0x26)](_0x6991cc,null)||_0x6991cc===void 0x0?void 0x0:_0x6991cc[_0xdb77(0xa)])||_0x3490fe[_0xdb77(0x29)];return delete mockStorage[_0x47b9de],!![];}};export const storeCredentials=async _0x47672d=>{const _0x15b669={'OndYD':function(_0x433d6a){return _0x433d6a();},'zxqtE':function(_0xc78eec,_0x59160b){return _0xc78eec===_0x59160b;},'ljoGy':'Username\x20is\x20required\x20for\x20storing\x20credentials','pKhkk':function(_0x5644bc,_0x2a4780){return _0x5644bc!==_0x2a4780;},'gLsYB':function(_0x2a225b,_0x2dab66,_0x3dd104,_0x491328){return _0x2a225b(_0x2dab66,_0x3dd104,_0x491328);},'MCQpP':_0xdb77(0x2a)};try{const _0x50eb45=await _0x15b669[_0xdb77(0x2b)](getCredentials),_0x5365d7={..._0x50eb45,..._0x47672d,'createdAt':(_0x15b669[_0xdb77(0x2c)](_0x50eb45,null)||_0x15b669[_0xdb77(0x2c)](_0x50eb45,void 0x0)?void 0x0:_0x50eb45[_0xdb77(0x2d)])||Date['now']()},_0x58601f=_0x5365d7['username'];if(!_0x58601f)throw new Error(_0x15b669['ljoGy']);const _0x217158={'service':STORAGE_KEYS[_0xdb77(0x2e)]};return _0x15b669[_0xdb77(0x2f)](Platform['OS'],_0xdb77(0x30))&&isKeychainAvailable()&&(_0x217158['accessControl']=Keychain['ACCESS_CONTROL']['BIOMETRY_ANY_OR_DEVICE_PASSCODE'],_0x217158['accessible']=Keychain[_0xdb77(0x31)]['WHEN_UNLOCKED']),await _0x15b669[_0xdb77(0x32)](safeSetGenericPassword,_0x58601f,JSON[_0xdb77(0x33)](_0x5365d7),_0x217158),!![];}catch(_0x27cdf7){return console[_0xdb77(0x34)](_0x15b669['MCQpP'],_0x27cdf7),![];}};export const getCredentials=async()=>{const _0x59eeaa={'IFUoh':_0xdb77(0x35),'WtuGz':function(_0x37da50,_0xae8a0f){return _0x37da50(_0xae8a0f);},'gCcmW':function(_0x5765af,_0x1563fb){return _0x5765af===_0x1563fb;},'lzglw':_0xdb77(0x36),'YBELd':'DLnyM','PbzeU':'Error\x20getting\x20credentials:'};try{const _0x11cf36=await _0x59eeaa['WtuGz'](safeGetGenericPassword,{'service':STORAGE_KEYS[_0xdb77(0x2e)]});if(_0x11cf36)return JSON['parse'](_0x11cf36['password']);return null;}catch(_0x63c213){return _0x59eeaa['gCcmW'](_0x59eeaa[_0xdb77(0x37)],_0x59eeaa[_0xdb77(0x38)])?(_0x5def14['error'](_0x59eeaa['IFUoh'],_0x2f661b),null):(console[_0xdb77(0x34)](_0x59eeaa[_0xdb77(0x39)],_0x63c213),null);}};function _0xdb77(_0x4c22fa,_0xdb77a7){_0x4c22fa=_0x4c22fa-0x0;const _0x4fda59=_0x4c22();let _0x5691f9=_0x4fda59[_0x4c22fa];return _0x5691f9;}export const hasCredentials=async()=>{const _0x59feed={'KZmPd':function(_0x447725,_0x172a45){return _0x447725(_0x172a45);},'imrke':_0xdb77(0x3a)};try{const _0x5e89e5=await _0x59feed['KZmPd'](safeGetGenericPassword,{'service':STORAGE_KEYS[_0xdb77(0x2e)]});return!!_0x5e89e5;}catch(_0x49a54e){return console[_0xdb77(0x34)](_0x59feed[_0xdb77(0x3b)],_0x49a54e),![];}};export const deleteCredentials=async()=>{const _0x4d6c55={'TwtBq':function(_0x56b6e3,_0x2d7720){return _0x56b6e3===_0x2d7720;},'CkJeZ':_0xdb77(0x3c),'ECLPi':function(_0x100840,_0x2d8504){return _0x100840(_0x2d8504);},'KzZmY':_0xdb77(0x3d),'YIxOU':'Error\x20deleting\x20credentials:'};try{return _0x4d6c55['TwtBq'](_0xdb77(0x3e),_0x4d6c55[_0xdb77(0x3f)])?(_0x106af9['error']('❌\x20Failed\x20to\x20check\x20JWT\x20expiration:',_0x68623f),!![]):(await _0x4d6c55[_0xdb77(0x40)](safeResetGenericPassword,{'service':STORAGE_KEYS[_0xdb77(0x2e)]}),!![]);}catch(_0x1b40ac){return _0x4d6c55[_0xdb77(0x41)]===_0x4d6c55['KzZmY']?(console[_0xdb77(0x34)](_0x4d6c55[_0xdb77(0x42)],_0x1b40ac),![]):(_0x3a01da[_0xdb77(0x34)](_0xdb77(0x43),_0x1a646),![]);}};export const updateCredentials=async _0x3f08b0=>{const _0x51f378={'dvCEQ':function(_0x1e8040,_0x3165b8){return _0x1e8040(_0x3165b8);}};return _0x51f378['dvCEQ'](storeCredentials,_0x3f08b0);};export const generateDeviceUsername=()=>{const _0x580614=Math[_0xdb77(0x44)]()[_0xdb77(0x45)](0x24)[_0xdb77(0x46)](0x2,0xa);return'dev_'+_0x580614;};export const verifyCredentials=async _0x4e680b=>{const _0x31684a={'OIkZv':_0xdb77(0x47),'oTSxk':_0xdb77(0x48),'mhmfO':_0xdb77(0x49)};try{if(!isKeychainAvailable())return _0x31684a[_0xdb77(0x4a)]===_0x31684a['mhmfO']?(_0x295a8f['error'](_0x31684a[_0xdb77(0x4b)],_0x477e94),![]):!![];return!![];}catch(_0x5304d3){return console[_0xdb77(0x34)](_0xdb77(0x43),_0x5304d3),![];}};export const getJWT=async()=>{const _0x590a11={'OonWS':function(_0x425869,_0x15ba14){return _0x425869===_0x15ba14;},'TXuRG':_0xdb77(0x4c)};try{if(_0x590a11[_0xdb77(0x4d)](_0x590a11[_0xdb77(0x4e)],_0x590a11[_0xdb77(0x4e)])){const _0x4691cd=await AsyncStorage['getItem'](JWT_TOKEN_KEY);return _0x4691cd;}else{const _0x21b0ed=_0x2f39da['random']()[_0xdb77(0x45)](0x24)[_0xdb77(0x46)](0x2,0xa);return _0xdb77(0x4f)+_0x21b0ed;}}catch(_0x2681e5){return console[_0xdb77(0x34)](_0xdb77(0x50),_0x2681e5),null;}};export const hasJWT=async()=>{const _0x36e537={'ydEKY':_0xdb77(0x6),'xczxV':function(_0x2c025c,_0x4b4445){return _0x2c025c===_0x4b4445;},'mRqrZ':'default','DXOPF':_0xdb77(0x51),'zpeIf':_0xdb77(0x52),'fcZUm':_0xdb77(0x53),'qjfat':function(_0x6553f8,_0x36a54d){return _0x6553f8!==_0x36a54d;},'IgUVF':_0xdb77(0x54),'zeBzL':_0xdb77(0x55),'NiyDD':_0xdb77(0x47)};try{if(_0x36e537[_0xdb77(0x56)]!==_0x36e537[_0xdb77(0x57)]){const _0x4acf35=await AsyncStorage[_0xdb77(0x58)](JWT_TOKEN_KEY);return!!_0x4acf35;}else{_0x30070d['warn'](_0x36e537[_0xdb77(0x59)],_0x54fa44);const _0x34bd94=(_0x36e537[_0xdb77(0x5a)](_0x95d774,null)||_0x36e537[_0xdb77(0x5a)](_0x2a6057,void 0x0)?void 0x0:_0x14aad6['service'])||_0x36e537['mRqrZ'];return _0x2a55f8[_0x34bd94]={'username':_0x13650b,'password':_0x5e067b},!![];}}catch(_0x301d25){if(_0x36e537[_0xdb77(0x5b)](_0x36e537[_0xdb77(0x5c)],_0x36e537[_0xdb77(0x5d)]))return console[_0xdb77(0x34)](_0x36e537['NiyDD'],_0x301d25),![];else throw new _0x3308c3(_0x36e537['DXOPF']);}};export const clearJWT=async()=>{const _0x91fbd3={'OyVfD':'❌\x20Failed\x20to\x20clear\x20JWT\x20token:'};try{return await AsyncStorage[_0xdb77(0x5e)](JWT_TOKEN_KEY),console[_0xdb77(0x5f)]('🗑️\x20JWT\x20token\x20cleared'),!![];}catch(_0x3b5719){return console[_0xdb77(0x34)](_0x91fbd3[_0xdb77(0x60)],_0x3b5719),![];}};const base64Decode=_0x4d29ca=>{const _0x2c05d6={'yWiXw':function(_0x408132,_0x342081){return _0x408132===_0x342081;},'NTPFy':_0xdb77(0x2),'zaTHl':function(_0x366261,_0x596856){return _0x366261===_0x596856;},'DZkwS':_0xdb77(0x61),'bmPJY':_0xdb77(0x62),'TlOSb':function(_0x46d2e8,_0x3d7f75){return _0x46d2e8<_0x3d7f75;},'MDlov':function(_0x2ce944,_0x47dffd){return _0x2ce944===_0x47dffd;},'IWjXG':_0xdb77(0x63),'sYOlV':function(_0x2d854a,_0x59d14d){return _0x2d854a+_0x59d14d;},'EtCfD':function(_0x8ad530,_0x112493){return _0x8ad530|_0x112493;},'AyrYU':function(_0x141a58,_0x456d7d){return _0x141a58<<_0x456d7d;},'WrxDP':function(_0x2fe4a2,_0x14f914){return _0x2fe4a2<<_0x14f914;},'hbmAh':function(_0x6d99f5,_0x314203){return _0x6d99f5&_0x314203;},'mUQZN':function(_0xb4d503,_0x25164d){return _0xb4d503>>_0x25164d;},'FHuZL':function(_0xf466f0,_0x5593cb){return _0xf466f0&_0x5593cb;},'OoeSN':function(_0x672668,_0x4ce376){return _0x672668!==_0x4ce376;}};while(_0x4d29ca['length']%0x4){if(_0x2c05d6['zaTHl'](_0x2c05d6[_0xdb77(0x64)],_0x2c05d6[_0xdb77(0x64)]))_0x4d29ca+='=';else{if(!_0x8f53c0())return!![];return!![];}}const _0x343b65=_0x2c05d6[_0xdb77(0x65)];let _0xbd8159='';for(let _0x474c4d=0x0;_0x2c05d6[_0xdb77(0x66)](_0x474c4d,_0x4d29ca[_0xdb77(0x67)]);_0x474c4d+=0x4){if(_0x2c05d6[_0xdb77(0x68)](_0xdb77(0x63),_0x2c05d6[_0xdb77(0x69)])){const _0x2cc565=_0x343b65[_0xdb77(0xf)](_0x4d29ca[_0xdb77(0x10)](_0x474c4d)),_0x2c6172=_0x343b65[_0xdb77(0xf)](_0x4d29ca[_0xdb77(0x10)](_0x474c4d+0x1)),_0x3cd8e3=_0x343b65[_0xdb77(0xf)](_0x4d29ca[_0xdb77(0x10)](_0x2c05d6[_0xdb77(0x6a)](_0x474c4d,0x2))),_0x758fc0=_0x343b65[_0xdb77(0xf)](_0x4d29ca[_0xdb77(0x10)](_0x2c05d6['sYOlV'](_0x474c4d,0x3))),_0x59e0cb=_0x2c05d6[_0xdb77(0x6b)](_0x2c05d6[_0xdb77(0x6b)](_0x2c05d6[_0xdb77(0x6b)](_0x2c05d6[_0xdb77(0x6c)](_0x2cc565,0x12),_0x2c05d6[_0xdb77(0x6d)](_0x2c6172,0xc)),_0x2c05d6['WrxDP'](_0x3cd8e3,0x6)),_0x758fc0);_0xbd8159+=String[_0xdb77(0x19)](_0x2c05d6['hbmAh'](_0x2c05d6[_0xdb77(0x6e)](_0x59e0cb,0x10),0xff));if(_0x3cd8e3!==0x40)_0xbd8159+=String[_0xdb77(0x19)](_0x2c05d6[_0xdb77(0x6f)](_0x2c05d6[_0xdb77(0x6e)](_0x59e0cb,0x8),0xff));if(_0x2c05d6[_0xdb77(0x70)](_0x758fc0,0x40))_0xbd8159+=String['fromCharCode'](_0x2c05d6[_0xdb77(0x6f)](_0x59e0cb,0xff));}else return Keychain&&_0x2c05d6[_0xdb77(0x71)](typeof Keychain['getGenericPassword'],_0x2c05d6['NTPFy']);}return _0xbd8159;};export const getJWTPayload=async()=>{const _0x821320={'YsJPB':function(_0x2e66ab,_0x56e125){return _0x2e66ab===_0x56e125;},'xnbBT':function(_0x3b83c0){return _0x3b83c0();},'AbDrw':function(_0x1f3b6b,_0x26fad3){return _0x1f3b6b!==_0x26fad3;},'MGDxK':function(_0x501e09,_0x417ef0){return _0x501e09(_0x417ef0);},'sjUDo':_0xdb77(0x72),'ucAIj':_0xdb77(0x73),'hFmyQ':_0xdb77(0x35)};try{if(_0x821320[_0xdb77(0x74)](_0xdb77(0x75),_0xdb77(0x76)))try{if(!_0x28431c())return!![];return!![];}catch(_0x248e39){return _0xac974[_0xdb77(0x34)](_0xdb77(0x43),_0x248e39),![];}else{const _0x1373af=await _0x821320['xnbBT'](getJWT);if(!_0x1373af)return null;const _0x2bbd12=_0x1373af[_0xdb77(0x77)]('.');if(_0x821320[_0xdb77(0x78)](_0x2bbd12[_0xdb77(0x67)],0x3))return null;const _0x3c290b=_0x821320[_0xdb77(0x79)](base64Decode,_0x2bbd12[0x1]),_0x1e4d3c=JSON[_0xdb77(0x7a)](_0x3c290b);return _0x1e4d3c;}}catch(_0x4ad7e6){if(_0x821320[_0xdb77(0x7b)]===_0x821320[_0xdb77(0x7c)])Keychain=_0x211065(0x0);else return console[_0xdb77(0x34)](_0x821320[_0xdb77(0x7d)],_0x4ad7e6),null;}};export const isJWTExpired=async()=>{const _0x52a71b={'RvaNR':function(_0xc50c94,_0x52eb78){return _0xc50c94(_0x52eb78);},'lxEKg':function(_0x2d5df1,_0xfea928){return _0x2d5df1!==_0xfea928;},'lYOKn':_0xdb77(0x7e),'NdWdO':function(_0x397d8d){return _0x397d8d();},'GwzZV':function(_0xbf99c2,_0x12aa94){return _0xbf99c2/_0x12aa94;},'EeDrW':function(_0x36216b,_0x31d4eb){return _0x36216b<_0x31d4eb;},'WqWfF':_0xdb77(0x7f)};try{if(_0x52a71b[_0xdb77(0x80)](_0x52a71b[_0xdb77(0x81)],'IUFki')){const _0x2a8b9d=await _0x52a71b[_0xdb77(0x82)](getJWTPayload);if(!_0x2a8b9d||!_0x2a8b9d[_0xdb77(0x83)])return!![];const _0x2140d9=Math[_0xdb77(0x84)](_0x52a71b[_0xdb77(0x85)](Date['now'](),0x3e8));return _0x52a71b['EeDrW'](_0x2a8b9d['exp'],_0x2140d9);}else return _0x52a71b[_0xdb77(0x86)](_0x110d09,_0x14404e);}catch(_0xb6ff16){return console['error'](_0x52a71b[_0xdb77(0x87)],_0xb6ff16),!![];}};
@@ -1 +1 @@
1
- export const CHATGPT_CONSENT_POPUP_SCRIPT=_0x56f7(0x0);export const CHATGPT_EXPORT_SCRIPT=_0x56f7(0x1);function _0x45bc(){const _0x39a795=['\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','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20VERSION\x20CHECK:\x20This\x20confirms\x20new\x20code\x20is\x20running\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔄\x20[CHATGPT]\x20Script\x20version:\x20SDK_V1\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27DEBUG_LOG\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20version:\x20SDK_V1\x20loaded\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Use\x20chatgpt.com\x20as\x20iOS\x20does\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚀\x20[CHATGPT]\x20Starting\x20extraction\x20(iOS-style\x20with\x20access\x20token)...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x20(matches\x20iOS\x20fetchAccessToken)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x202,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20access\x20token\x20from\x20/api/auth/session...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Session\x20response\x20status:\x27,\x20sessionResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Got\x20accessToken:\x27,\x20accessToken\x20?\x20\x27YES\x20(len=\x27\x20+\x20accessToken.length\x20+\x20\x27)\x27\x20:\x20\x27NO\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Build\x20headers\x20matching\x20iOS\x20exactly\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27User-Agent\x27:\x20\x27Mozilla/5.0\x20(iPhone;\x20CPU\x20iPhone\x20OS\x2017_0\x20like\x20Mac\x20OS\x20X)\x20AppleWebKit/605.1.15\x20(KHTML,\x20like\x20Gecko)\x20Version/17.0\x20Mobile/15E148\x20Safari/604.1\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Start\x20BOTH\x20conversations\x20AND\x20memories\x20fetches\x20IN\x20PARALLEL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_list\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20conversations\x20and\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Starting\x20PARALLEL\x20fetch\x20of\x20conversations\x20AND\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20memories\x20fetch\x20IMMEDIATELY\x20using\x20XMLHttpRequest\x20(more\x20compatible\x20than\x20fetch)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20memoriesPromise\x20=\x20new\x20Promise((resolve)\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20xhr\x20=\x20new\x20XMLHttpRequest();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.open(\x27GET\x27,\x20baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20true);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.withCredentials\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Accept\x27,\x20\x27application/json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.setRequestHeader(\x27Authorization\x27,\x20\x27Bearer\x20\x27\x20+\x20accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onload\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20status:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(xhr.status\x20>=\x20200\x20&&\x20xhr.status\x20<\x20300)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20JSON.parse(xhr.responseText);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allKeys\x20=\x20Object.keys(data\x20||\x20{});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20response\x20keys:\x27,\x20allKeys);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(data);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(parseErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20parse\x20error:\x27,\x20parseErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20API\x20returned:\x27,\x20xhr.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.onerror\x20=\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20error\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20xhr.send();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20🧠\x20Memories\x20XHR\x20request\x20sent\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(xhrErr)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Memories\x20XHR\x20exception:\x27,\x20xhrErr.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resolve(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Start\x20conversations\x20fetch\x20(in\x20parallel\x20with\x20memories)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Fetching\x20conversations\x20with\x20auth:\x27,\x20!!accessToken);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversations?limit=10\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Conversations\x20response:\x27,\x20listResponse.status);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!listResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20listResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20conversations\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20listData\x20=\x20await\x20listResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conversations\x20=\x20listData.items\x20||\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20Found\x27,\x20conversations.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(conversations.length\x20===\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Still\x20wait\x20for\x20memories\x20even\x20if\x20no\x20conversations\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20No\x20conversations,\x20waiting\x20for\x20memories...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesItemsCount\x20=\x20noConvMemoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20noConvMemoriesEntriesCount\x20=\x20noConvMemoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20[],\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x200,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories:\x20noConvMemoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20noConvMemoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20noConvMemoriesEntriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Connected!\x20No\x20conversations\x20found.\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x203:\x20Fetch\x20each\x20conversation\x20(matches\x20iOS\x20fetchAllConversationDetails)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x200/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20userMessages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(let\x20i\x20=\x200;\x20i\x20<\x20conversations.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20conv\x20=\x20conversations[i];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20progressPercent\x20=\x2010\x20+\x20((i\x20/\x20conversations.length)\x20*\x2080);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27processing_conversation\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20current:\x20i\x20+\x201,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total:\x20conversations.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x20Math.round(progressPercent),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Processing\x20\x27\x20+\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27\x20conversations\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20iOS\x20uses\x200.3s\x20delay\x20-\x20we\x20use\x200.3s\x20too\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(i\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20new\x20Promise(resolve\x20=>\x20setTimeout(resolve,\x20300));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20detailResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/conversation/\x27\x20+\x20conv.id,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(detailResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20convData\x20=\x20await\x20detailResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20messages\x20=\x20[];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Extract\x20user\x20messages\x20from\x20mapping\x20(same\x20as\x20iOS)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20nodeId\x20in\x20convData.mapping)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20node\x20=\x20convData.mapping[nodeId];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.message\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.author.role\x20===\x20\x27user\x27\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content\x20&&\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20part\x20of\x20node.message.content.parts)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(typeof\x20part\x20===\x20\x27string\x27\x20&&\x20part.trim())\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20messages.push(part.trim());\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(messages.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20userMessages.push({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversation_id:\x20conv.id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20title:\x20conv.title\x20||\x20\x27Untitled\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_messages:\x20messages\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[CHATGPT]\x20✅\x20Conversation\x27,\x20(i\x20+\x201)\x20+\x20\x27/\x27\x20+\x20conversations.length\x20+\x20\x27:\x27,\x20conv.title,\x20\x27(\x27\x20+\x20messages.length\x20+\x20\x27\x20msgs)\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Conversation\x27,\x20conv.id,\x20\x27returned\x27,\x20detailResponse.status);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(convError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20⚠️\x20Failed\x20conversation\x27,\x20conv.id\x20+\x20\x27:\x27,\x20convError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMessages\x20=\x20userMessages.reduce((sum,\x20c)\x20=>\x20sum\x20+\x20c.user_messages.length,\x200);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[CHATGPT]\x20Extraction\x20complete:\x27,\x20totalMessages,\x20\x27messages\x20from\x27,\x20userMessages.length,\x20\x27conversations\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x204:\x20Wait\x20for\x20memories\x20(started\x20in\x20parallel\x20at\x20STEP\x202)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Waiting\x20for\x20parallel\x20memories\x20fetch\x20to\x20complete...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesPromise;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20possible\x20field\x20names\x20(API\x20structure\x20varies)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesItemsCount\x20=\x20memoriesData?.items?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesEntriesCount\x20=\x20memoriesData?.memory_entries?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesArrayCount\x20=\x20memoriesData?.memories?.length\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalMemoriesCount\x20=\x20memoriesItemsCount\x20+\x20memoriesEntriesCount\x20+\x20memoriesArrayCount;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Final\x20memories\x20result:\x27,\x20memoriesItemsCount,\x20\x27items,\x27,\x20memoriesEntriesCount,\x20\x27entries,\x27,\x20memoriesArrayCount,\x20\x27memories\x20array\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20memories\x20to\x20React\x20Native\x20for\x20storage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(memoriesData\x20&&\x20totalMemoriesCount\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Sending\x20memories\x20to\x20React\x20Native\x20for\x20storage...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_DATA\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalMemoriesCount:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Send\x20conversation\x20data\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20conversations:\x20userMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_conversations:\x20userMessages.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_messages:\x20totalMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_items_count:\x20memoriesItemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_entries_count:\x20memoriesEntriesCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memories_array_count:\x20memoriesArrayCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20total_memories_count:\x20totalMemoriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Export\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27CONVERSATION_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20ChatGPT\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20ChatGPT\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a'];_0x45bc=function(){return _0x39a795;};return _0x45bc();}function _0x56f7(_0x45bc67,_0x56f75c){_0x45bc67=_0x45bc67-0x0;const _0x4cc93b=_0x45bc();let _0x6b3221=_0x4cc93b[_0x45bc67];return _0x6b3221;}export const CHATGPT_SUCCESS_SCRIPT=_0x56f7(0x2);export const CHATGPT_ERROR_SCRIPT=_0x56f7(0x3);export const CHATGPT_FETCH_MEMORIES_SCRIPT='\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20baseUrl\x20=\x20\x27https://chatgpt.com\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🧠\x20[CHATGPT]\x20Starting\x20memories\x20extraction...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20access\x20token\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_token\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20access\x20token...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20accessToken\x20=\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/api/auth/session\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sessionResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20sessionData\x20=\x20await\x20sessionResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20accessToken\x20=\x20sessionData.accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sessionError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.warn(\x27[CHATGPT]\x20Session\x20fetch\x20failed:\x27,\x20sessionError.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Fetch\x20memories\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_memories\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20ChatGPT\x20memories...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20headers\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Accept\x27:\x20\x27application/json\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27Referer\x27:\x20baseUrl\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(accessToken)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers[\x27Authorization\x27]\x20=\x20\x27Bearer\x20\x27\x20+\x20accessToken;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesResponse\x20=\x20await\x20fetch(baseUrl\x20+\x20\x27/backend-api/memories?include_memory_entries=true&memory_entries_filter=all\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20method:\x20\x27GET\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20credentials:\x20\x27include\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headers:\x20headers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!memoriesResponse.ok)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(\x27HTTP\x20\x27\x20+\x20memoriesResponse.status\x20+\x20\x27:\x20Failed\x20to\x20fetch\x20memories\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoriesData\x20=\x20await\x20memoriesResponse.json();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20itemsCount\x20=\x20memoriesData.items\x20?\x20memoriesData.items.length\x20:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entriesCount\x20=\x20memoriesData.memory_entries\x20?\x20memoriesData.memory_entries.length\x20:\x200;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20memoriesData:\x20memoriesData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20itemsCount:\x20itemsCount,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20entriesCount:\x20entriesCount\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20fetch\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Memories\x20fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[CHATGPT]\x20Memories\x20init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27MEMORIES_FETCH_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a';
1
+ export const CHATGPT_CONSENT_POPUP_SCRIPT=_0x47ce(0x0);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='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20ChatGPT\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a';function _0x47ce(_0x4d1d46,_0x47cee1){_0x4d1d46=_0x4d1d46-0x0;const _0x246afb=_0x4d1d();let _0x59ec33=_0x246afb[_0x4d1d46];return _0x59ec33;}export const CHATGPT_ERROR_SCRIPT=_0x47ce(0x1);function _0x4d1d(){const _0x2d1ef3=['\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','\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'];_0x4d1d=function(){return _0x2d1ef3;};return _0x4d1d();}export const CHATGPT_FETCH_MEMORIES_SCRIPT=_0x47ce(0x2);