@onairos/react-native 3.6.7 → 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.
- package/lib/commonjs/api/index.js +1 -1
- package/lib/commonjs/components/BodyText.js +1 -1
- package/lib/commonjs/components/BrandMark.js +1 -1
- package/lib/commonjs/components/CodeInput.js +1 -1
- package/lib/commonjs/components/EmailInput.js +1 -1
- package/lib/commonjs/components/GoogleButton.js +1 -1
- package/lib/commonjs/components/HeadingGroup.js +1 -1
- package/lib/commonjs/components/LLMDataInputModal.js +1 -1
- package/lib/commonjs/components/ModalHeader.js +1 -1
- package/lib/commonjs/components/ModalSheet.js +1 -1
- package/lib/commonjs/components/Onairos.js +1 -1
- package/lib/commonjs/components/OnairosButton.js +1 -1
- package/lib/commonjs/components/OnairosSignInButton.js +1 -1
- package/lib/commonjs/components/Overlay.js +1 -1
- package/lib/commonjs/components/PersonaImage.js +1 -1
- package/lib/commonjs/components/PersonaLoadingScreen.js +1 -1
- package/lib/commonjs/components/PersonalizationConsentScreen.js +1 -1
- package/lib/commonjs/components/PinCreationScreen.js +1 -1
- package/lib/commonjs/components/PinInput.js +1 -1
- package/lib/commonjs/components/PlatformConnectorsStep.js +1 -1
- package/lib/commonjs/components/PlatformList.js +1 -1
- package/lib/commonjs/components/PlatformToggle.js +1 -1
- package/lib/commonjs/components/PrimaryButton.js +1 -1
- package/lib/commonjs/components/SignInMatchAnimation.js +1 -1
- package/lib/commonjs/components/SignInStep.js +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +1 -1
- package/lib/commonjs/components/VerificationStep.js +1 -1
- package/lib/commonjs/components/WelcomeScreen.js +1 -1
- package/lib/commonjs/components/icons/Basicproficon.js +1 -1
- package/lib/commonjs/components/icons/Basicprofile.js +1 -1
- package/lib/commonjs/components/icons/Checkbox.js +1 -1
- package/lib/commonjs/components/icons/Checkmark.js +1 -1
- package/lib/commonjs/components/icons/Contentanalysis.js +1 -1
- package/lib/commonjs/components/icons/Contenticon.js +1 -1
- package/lib/commonjs/components/icons/EnochE.js +1 -1
- package/lib/commonjs/components/icons/Personalityicon.js +1 -1
- package/lib/commonjs/components/icons/Personalityprofile.js +1 -1
- package/lib/commonjs/components/icons/Personalitytraits.js +1 -1
- package/lib/commonjs/components/icons/Userpreferences.js +1 -1
- package/lib/commonjs/components/icons/index.js +1 -1
- package/lib/commonjs/components/onboarding/OAuthWebView.js +1 -1
- package/lib/commonjs/components/onboarding/OnboardingHeader.js +1 -1
- package/lib/commonjs/components/onboarding/PinInput.js +1 -1
- package/lib/commonjs/components/onboarding/PlatformConnector.js +1 -1
- package/lib/commonjs/config/api.js +1 -1
- package/lib/commonjs/constants/index.js +1 -1
- package/lib/commonjs/context/AuthContext.js +1 -1
- package/lib/commonjs/hooks/useConnectedAccounts.js +1 -1
- package/lib/commonjs/hooks/useConnections.js +1 -1
- package/lib/commonjs/hooks/useCredentials.js +1 -1
- package/lib/commonjs/hooks/useUserConnections.js +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/services/apiClient.js +1 -1
- package/lib/commonjs/services/biometricPinService.js +1 -1
- package/lib/commonjs/services/chatGPTConversationExtractor.js +1 -1
- package/lib/commonjs/services/chatGPTConversationService.js +1 -1
- package/lib/commonjs/services/claudeConversationExtractor.js +1 -1
- package/lib/commonjs/services/claudeConversationService.js +1 -1
- package/lib/commonjs/services/connectedAccountsService.js +1 -1
- package/lib/commonjs/services/googleAuthService.js +1 -1
- package/lib/commonjs/services/hingeDataExtractor.js +1 -1
- package/lib/commonjs/services/hingeDataService.js +1 -1
- package/lib/commonjs/services/imageCompressionService.js +1 -1
- package/lib/commonjs/services/instagramDataExtractor.js +1 -1
- package/lib/commonjs/services/instagramDataService.js +1 -1
- package/lib/commonjs/services/jwtStorageService.js +1 -1
- package/lib/commonjs/services/linkedinDOMExtractor.js +1 -1
- package/lib/commonjs/services/linkedinProfileService.js +1 -1
- package/lib/commonjs/services/linkedinScrapingService.js +1 -1
- package/lib/commonjs/services/llmDataStorage.js +1 -1
- package/lib/commonjs/services/mobileTrainingService.js +1 -1
- package/lib/commonjs/services/pinEncryptionService.js +1 -1
- package/lib/commonjs/services/pinStorageUtils.js +1 -1
- package/lib/commonjs/services/platformAuthService.js +1 -1
- package/lib/commonjs/services/sephoraDataExtractor.js +1 -1
- package/lib/commonjs/services/sephoraDataService.js +1 -1
- package/lib/commonjs/services/storageService.js +1 -1
- package/lib/commonjs/services/telegramDataExtractor.js +1 -1
- package/lib/commonjs/services/telegramDataService.js +1 -1
- package/lib/commonjs/services/trainingApiHelpers.js +1 -1
- package/lib/commonjs/services/userConnectionsService.js +1 -1
- package/lib/commonjs/services/youtubeMigrationService.js +1 -1
- package/lib/commonjs/theme/index.js +1 -1
- package/lib/commonjs/types/index.js +1 -1
- package/lib/commonjs/types.js +1 -1
- package/lib/commonjs/utils/Portal.js +1 -1
- package/lib/commonjs/utils/api.js +1 -1
- package/lib/commonjs/utils/assetRegistry.js +1 -1
- package/lib/commonjs/utils/auth.js +1 -1
- package/lib/commonjs/utils/connectorTests.js +1 -1
- package/lib/commonjs/utils/crypto.js +1 -1
- package/lib/commonjs/utils/debugHelper.js +1 -1
- package/lib/commonjs/utils/encryption.js +1 -1
- package/lib/commonjs/utils/eventUtils.js +1 -1
- package/lib/commonjs/utils/haptics.js +1 -1
- package/lib/commonjs/utils/imagePreloader.js +1 -1
- package/lib/commonjs/utils/networkDiagnostics.js +1 -1
- package/lib/commonjs/utils/onairosApi.js +1 -1
- package/lib/commonjs/utils/programmaticFlow.js +1 -1
- package/lib/commonjs/utils/retryHelper.js +1 -1
- package/lib/commonjs/utils/secureStorage.js +1 -1
- package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -1
- package/lib/commonjs/utils/webviewScripts/claude.js +1 -1
- package/lib/commonjs/utils/webviewScripts/hinge.js +1 -1
- package/lib/commonjs/utils/webviewScripts/index.js +1 -1
- package/lib/commonjs/utils/webviewScripts/instagram.js +1 -1
- package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -1
- package/lib/commonjs/utils/webviewScripts/sephora.js +1 -1
- package/lib/commonjs/utils/webviewScripts/telegram.js +1 -1
- package/lib/module/api/index.js +1 -1
- package/lib/module/components/BodyText.js +1 -1
- package/lib/module/components/BrandMark.js +1 -1
- package/lib/module/components/CodeInput.js +1 -1
- package/lib/module/components/EmailInput.js +1 -1
- package/lib/module/components/GoogleButton.js +1 -1
- package/lib/module/components/HeadingGroup.js +1 -1
- package/lib/module/components/LLMDataInputModal.js +1 -1
- package/lib/module/components/ModalHeader.js +1 -1
- package/lib/module/components/ModalSheet.js +1 -1
- package/lib/module/components/Onairos.js +1 -1
- package/lib/module/components/OnairosButton.js +1 -1
- package/lib/module/components/OnairosSignInButton.js +1 -1
- package/lib/module/components/Overlay.js +1 -1
- package/lib/module/components/PersonaImage.js +1 -1
- package/lib/module/components/PersonaLoadingScreen.js +1 -1
- package/lib/module/components/PersonalizationConsentScreen.js +1 -1
- package/lib/module/components/PinCreationScreen.js +1 -1
- package/lib/module/components/PinInput.js +1 -1
- package/lib/module/components/PlatformConnectorsStep.js +1 -1
- package/lib/module/components/PlatformList.js +1 -1
- package/lib/module/components/PlatformToggle.js +1 -1
- package/lib/module/components/PrimaryButton.js +1 -1
- package/lib/module/components/SignInMatchAnimation.js +1 -1
- package/lib/module/components/SignInStep.js +1 -1
- package/lib/module/components/UniversalOnboarding.js +1 -1
- package/lib/module/components/VerificationStep.js +1 -1
- package/lib/module/components/WelcomeScreen.js +1 -1
- package/lib/module/components/icons/Basicproficon.js +1 -1
- package/lib/module/components/icons/Basicprofile.js +1 -1
- package/lib/module/components/icons/Checkbox.js +1 -1
- package/lib/module/components/icons/Checkmark.js +1 -1
- package/lib/module/components/icons/Contentanalysis.js +1 -1
- package/lib/module/components/icons/Contenticon.js +1 -1
- package/lib/module/components/icons/EnochE.js +1 -1
- package/lib/module/components/icons/Personalityicon.js +1 -1
- package/lib/module/components/icons/Personalityprofile.js +1 -1
- package/lib/module/components/icons/Personalitytraits.js +1 -1
- package/lib/module/components/icons/Userpreferences.js +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +1 -1
- package/lib/module/components/onboarding/OnboardingHeader.js +1 -1
- package/lib/module/components/onboarding/PinInput.js +1 -1
- package/lib/module/components/onboarding/PlatformConnector.js +1 -1
- package/lib/module/config/api.js +1 -1
- package/lib/module/constants/index.js +1 -1
- package/lib/module/context/AuthContext.js +1 -1
- package/lib/module/hooks/useConnectedAccounts.js +1 -1
- package/lib/module/hooks/useConnections.js +1 -1
- package/lib/module/hooks/useCredentials.js +1 -1
- package/lib/module/hooks/useUserConnections.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/services/apiClient.js +1 -1
- package/lib/module/services/biometricPinService.js +1 -1
- package/lib/module/services/chatGPTConversationExtractor.js +1 -1
- package/lib/module/services/chatGPTConversationService.js +1 -1
- package/lib/module/services/claudeConversationExtractor.js +1 -1
- package/lib/module/services/claudeConversationService.js +1 -1
- package/lib/module/services/connectedAccountsService.js +1 -1
- package/lib/module/services/googleAuthService.js +1 -1
- package/lib/module/services/hingeDataExtractor.js +1 -1
- package/lib/module/services/hingeDataService.js +1 -1
- package/lib/module/services/imageCompressionService.js +1 -1
- package/lib/module/services/instagramDataExtractor.js +1 -1
- package/lib/module/services/instagramDataService.js +1 -1
- package/lib/module/services/jwtStorageService.js +1 -1
- package/lib/module/services/linkedinDOMExtractor.js +1 -1
- package/lib/module/services/linkedinProfileService.js +1 -1
- package/lib/module/services/linkedinScrapingService.js +1 -1
- package/lib/module/services/llmDataStorage.js +1 -1
- package/lib/module/services/mobileTrainingService.js +1 -1
- package/lib/module/services/pinEncryptionService.js +1 -1
- package/lib/module/services/pinStorageUtils.js +1 -1
- package/lib/module/services/platformAuthService.js +1 -1
- package/lib/module/services/sephoraDataExtractor.js +1 -1
- package/lib/module/services/sephoraDataService.js +1 -1
- package/lib/module/services/storageService.js +1 -1
- package/lib/module/services/telegramDataExtractor.js +1 -1
- package/lib/module/services/telegramDataService.js +1 -1
- package/lib/module/services/trainingApiHelpers.js +1 -1
- package/lib/module/services/userConnectionsService.js +1 -1
- package/lib/module/services/youtubeMigrationService.js +1 -1
- package/lib/module/theme/index.js +1 -1
- package/lib/module/types.js +1 -1
- package/lib/module/utils/Portal.js +1 -1
- package/lib/module/utils/api.js +1 -1
- package/lib/module/utils/assetRegistry.js +1 -1
- package/lib/module/utils/auth.js +1 -1
- package/lib/module/utils/connectorTests.js +1 -1
- package/lib/module/utils/crypto.js +1 -1
- package/lib/module/utils/debugHelper.js +1 -1
- package/lib/module/utils/encryption.js +1 -1
- package/lib/module/utils/eventUtils.js +1 -1
- package/lib/module/utils/haptics.js +1 -1
- package/lib/module/utils/networkDiagnostics.js +1 -1
- package/lib/module/utils/onairosApi.js +1 -1
- package/lib/module/utils/programmaticFlow.js +1 -1
- package/lib/module/utils/retryHelper.js +1 -1
- package/lib/module/utils/secureStorage.js +1 -1
- package/lib/module/utils/webviewScripts/chatgpt.js +1 -1
- package/lib/module/utils/webviewScripts/claude.js +1 -1
- package/lib/module/utils/webviewScripts/hinge.js +1 -1
- package/lib/module/utils/webviewScripts/index.js +1 -1
- package/lib/module/utils/webviewScripts/instagram.js +1 -1
- package/lib/module/utils/webviewScripts/linkedin.js +1 -1
- package/lib/module/utils/webviewScripts/sephora.js +1 -1
- package/lib/module/utils/webviewScripts/telegram.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import NetInfo from'@react-native-community/netinfo';import{logDebug}from'./debugHelper';import{getJWT,makeUserRequest,makeDeveloperRequest,isUserAuthenticated,extractUsernameFromJWT}from'../services/apiKeyService';export class ApiError extends Error{constructor(_0x112d2b,_0x312717,_0x29edae,_0x18c484){const _0x20f33c={'IzQnL':_0x3b69(0x0)};super(_0x112d2b),this['type']=_0x312717,this[_0x3b69(0x1)]=_0x29edae,this[_0x3b69(0x2)]=_0x18c484,this[_0x3b69(0x3)]=_0x20f33c[_0x3b69(0x4)];}}const checkNetworkConnection=async()=>{const _0x149587=await NetInfo['fetch']();return _0x149587[_0x3b69(0x5)]===!![];},makeUserApiRequest=async(_0x46ce76,_0x14d278,_0x50af9c={})=>{const _0x4c73f5={'MXTyi':function(_0x431ce3){return _0x431ce3();},'Hzrmh':function(_0x1d8feb,_0x136ebc,_0x96c738,_0x1063d2){return _0x1d8feb(_0x136ebc,_0x96c738,_0x1063d2);},'BZHEn':'No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','uSkGY':_0x3b69(0x6),'zViTm':_0x3b69(0x7),'pCvUz':function(_0x57c7ef){return _0x57c7ef();},'wdSPt':function(_0x25b7d5,_0x18351d){return _0x25b7d5===_0x18351d;},'aERrY':_0x3b69(0x8),'zTEFO':_0x3b69(0x9),'hxPLQ':function(_0x47098d){return _0x47098d();},'SLeHV':function(_0x2228e3,_0x390bc6,_0xbb7d39){return _0x2228e3(_0x390bc6,_0xbb7d39);},'Porjc':_0x3b69(0xa),'llPVH':_0x3b69(0xb),'isCal':function(_0x2a6a63,_0x45df72){return _0x2a6a63||_0x45df72;},'ZjWqT':function(_0x2bf958,_0x28f7d8){return _0x2bf958!==_0x28f7d8;},'OsObV':_0x3b69(0xc),'WxTpv':_0x3b69(0xd),'fWQbm':function(_0x5007ae,_0x1181ee,_0x3ebb27){return _0x5007ae(_0x1181ee,_0x3ebb27);},'bqYBP':'User\x20API\x20Response','VhjSx':function(_0x2c965d,_0x226da6){return _0x2c965d===_0x226da6;},'YKvkt':_0x3b69(0xe),'GGlSg':function(_0x5f2009,_0x54dcb4){return _0x5f2009===_0x54dcb4;},'bFnBr':_0x3b69(0xf),'YZTKh':_0x3b69(0x10),'ntRPo':'API\x20request\x20failed','hrfvI':function(_0x2a7505,_0xc1db8b){return _0x2a7505===_0xc1db8b;},'QkkHy':function(_0x35a177,_0x1a03c5){return _0x35a177===_0x1a03c5;},'GOBVX':_0x3b69(0x11),'wlqeu':_0x3b69(0x12),'gHqOT':_0x3b69(0x13),'tlseH':'Request\x20timed\x20out','WnLzo':function(_0x3323ff,_0x3f61e5,_0x2946a2){return _0x3323ff(_0x3f61e5,_0x2946a2);},'ahekH':'User\x20API\x20Error','GQtym':_0x3b69(0x14),'OsNmI':'An\x20unexpected\x20error\x20occurred'},{data:_0x18cefd,headers:headers={},debug:debug=![]}=_0x50af9c;try{const _0x89ad75=await _0x4c73f5['pCvUz'](checkNetworkConnection);if(!_0x89ad75){if(_0x4c73f5[_0x3b69(0x15)](_0x4c73f5[_0x3b69(0x16)],_0x4c73f5['aERrY']))throw new ApiError(_0x4c73f5[_0x3b69(0x17)],_0x4c73f5[_0x3b69(0x18)]);else return _0x4c73f5['MXTyi'](_0x4b327f);}if(!_0x4c73f5[_0x3b69(0x19)](isUserAuthenticated))throw new ApiError(_0x3b69(0x1a),_0x3b69(0x6));debug&&_0x4c73f5[_0x3b69(0x1b)](logDebug,_0x4c73f5[_0x3b69(0x1c)],{'endpoint':_0x46ce76,'method':_0x14d278,'headers':{...headers,'Authorization':_0x4c73f5[_0x3b69(0x1d)]},'data':_0x4c73f5[_0x3b69(0x1e)](_0x18cefd,null)});const _0x130de7=await _0x4c73f5[_0x3b69(0x1b)](makeUserRequest,_0x46ce76,{'method':_0x14d278,'headers':headers,..._0x18cefd?{'body':JSON[_0x3b69(0x1f)](_0x18cefd)}:{}}),_0x5efbc5=await _0x130de7['json']();if(debug){if(_0x4c73f5[_0x3b69(0x20)](_0x4c73f5[_0x3b69(0x21)],_0x4c73f5[_0x3b69(0x22)]))_0x4c73f5['fWQbm'](logDebug,_0x4c73f5['bqYBP'],{'status':_0x130de7['status'],'data':_0x5efbc5});else throw new _0x1ddce7('No\x20network\x20connection\x20available',_0x3b69(0x7));}if(!_0x130de7['ok']){if(_0x4c73f5[_0x3b69(0x23)](_0x4c73f5[_0x3b69(0x24)],_0x4c73f5[_0x3b69(0x24)])){var _0xefa8d3,_0x525acd,_0x23dc15;const _0x632aee=_0x4c73f5[_0x3b69(0x25)](_0x130de7['status'],0x191)||_0x4c73f5['wdSPt'](_0x130de7['status'],0x193)?_0x4c73f5['uSkGY']:_0x130de7[_0x3b69(0x26)]===0x190?_0x4c73f5[_0x3b69(0x27)]:_0x130de7['status']>=0x1f4?_0x4c73f5[_0x3b69(0x28)]:'unknown_error';throw new ApiError((_0x4c73f5[_0x3b69(0x25)](_0xefa8d3=_0x5efbc5[_0x3b69(0x29)],null)||_0x4c73f5[_0x3b69(0x25)](_0xefa8d3,void 0x0)?void 0x0:_0xefa8d3[_0x3b69(0x2a)])||_0x4c73f5[_0x3b69(0x2b)],_0x632aee,_0x4c73f5['hrfvI'](_0x525acd=_0x5efbc5[_0x3b69(0x29)],null)||_0x4c73f5[_0x3b69(0x2c)](_0x525acd,void 0x0)?void 0x0:_0x525acd[_0x3b69(0x1)],_0x4c73f5[_0x3b69(0x2d)](_0x23dc15=_0x5efbc5[_0x3b69(0x29)],null)||_0x23dc15===void 0x0?void 0x0:_0x23dc15['details']);}else return _0x4c73f5['Hzrmh'](_0xb3525b,_0x3b69(0x2e)+_0xfe7997+'/data','GET',{'debug':_0x10a0c6[_0x3b69(0x2f)]});}return _0x5efbc5;}catch(_0xa70140){if(_0xa70140 instanceof ApiError){if(_0x4c73f5[_0x3b69(0x2c)](_0x4c73f5[_0x3b69(0x30)],_0x4c73f5[_0x3b69(0x30)]))throw _0xa70140;else throw new _0x4980ea(_0x4c73f5[_0x3b69(0x31)],_0x4c73f5[_0x3b69(0x32)]);}if(_0x4c73f5['wdSPt'](_0xa70140[_0x3b69(0x3)],_0x4c73f5[_0x3b69(0x33)])){if(_0x4c73f5[_0x3b69(0x34)]!==_0x4c73f5['gHqOT'])throw new _0x12c9a6(_0x3b69(0x9),_0x4c73f5[_0x3b69(0x18)]);else throw new ApiError(_0x4c73f5[_0x3b69(0x35)],'timeout_error');}debug&&_0x4c73f5[_0x3b69(0x36)](logDebug,_0x4c73f5[_0x3b69(0x37)],{'endpoint':_0x46ce76,'method':_0x14d278,'error':_0xa70140['message']||_0x4c73f5[_0x3b69(0x38)]});throw new ApiError(_0xa70140[_0x3b69(0x2a)]||_0x4c73f5[_0x3b69(0x39)],'unknown_error');}},makeDeveloperApiRequest=async(_0x24b3d1,_0x26cbc4,_0x429861={})=>{const _0x562f59={'ZpPbw':function(_0x411531,_0x5797e7,_0x4e012a,_0x1472e1){return _0x411531(_0x5797e7,_0x4e012a,_0x1472e1);},'rikyQ':'auth/login','CBeal':_0x3b69(0x3a),'tFzuT':function(_0x27908b,_0x475c42){return _0x27908b===_0x475c42;},'pQHHd':'auth_error','PMqhi':_0x3b69(0xf),'IjSXA':_0x3b69(0x10),'AwbdE':_0x3b69(0x3b),'lfVWG':function(_0x31975e,_0x28a7c1){return _0x31975e===_0x28a7c1;},'gjtQZ':function(_0x5eaf2e,_0x484a9d){return _0x5eaf2e===_0x484a9d;},'hctYr':function(_0x349dc7,_0x4e869f){return _0x349dc7===_0x4e869f;},'Sluqf':function(_0x2f912c){return _0x2f912c();},'Ctydp':_0x3b69(0x9),'SYxWU':_0x3b69(0x7),'qBhdK':function(_0x4cf183,_0xcbb860,_0x43822e){return _0x4cf183(_0xcbb860,_0x43822e);},'fwYfY':_0x3b69(0x3c),'OuDlp':_0x3b69(0xb),'CpkZo':function(_0x43dadc,_0x172b7d){return _0x43dadc||_0x172b7d;},'rvrdm':function(_0x21388a,_0x34b886){return _0x21388a===_0x34b886;},'UeRut':'NHyHh','dowDz':_0x3b69(0x3d),'JhhpT':function(_0x1a9ea8,_0x3e4bcb){return _0x1a9ea8>=_0x3e4bcb;},'HSXfx':function(_0x2e6d80,_0x335682){return _0x2e6d80===_0x335682;},'TIaNJ':'API\x20request\x20failed','dyqcN':_0x3b69(0x3e),'ItPIR':function(_0x5cbde7,_0x33de6b){return _0x5cbde7 instanceof _0x33de6b;},'ipzpF':function(_0x55c96f,_0x49247f){return _0x55c96f!==_0x49247f;},'jNrlX':_0x3b69(0x3f),'WOyBJ':_0x3b69(0x40),'ltjCf':_0x3b69(0x41),'OeWpB':_0x3b69(0x42),'ljsnL':function(_0x41cb52,_0x158514,_0x504609){return _0x41cb52(_0x158514,_0x504609);},'mXMmD':_0x3b69(0x43)},{data:_0x482c5f,headers:headers={},debug:debug=![]}=_0x429861;try{const _0x37228b=await _0x562f59['Sluqf'](checkNetworkConnection);if(!_0x37228b)throw new ApiError(_0x562f59['Ctydp'],_0x562f59['SYxWU']);debug&&_0x562f59[_0x3b69(0x44)](logDebug,_0x562f59[_0x3b69(0x45)],{'endpoint':_0x24b3d1,'method':_0x26cbc4,'headers':{...headers,'Authorization':_0x562f59[_0x3b69(0x46)]},'data':_0x562f59[_0x3b69(0x47)](_0x482c5f,null)});const _0x3a1848=await makeDeveloperRequest(_0x24b3d1,{'method':_0x26cbc4,'headers':headers,..._0x482c5f?{'body':JSON['stringify'](_0x482c5f)}:{}}),_0x460c9d=await _0x3a1848[_0x3b69(0x48)]();if(debug){if(_0x562f59[_0x3b69(0x49)](_0x562f59[_0x3b69(0x4a)],_0x562f59[_0x3b69(0x4b)]))return _0x562f59[_0x3b69(0x4c)](_0x1f7735,_0x562f59[_0x3b69(0x4d)],'POST',{'data':{'username':_0x5f0ebc[_0x3b69(0x4e)],'pin':_0x3b3174[_0x3b69(0x4f)]},'debug':_0x522ee9[_0x3b69(0x2f)]});else _0x562f59['qBhdK'](logDebug,_0x3b69(0x50),{'status':_0x3a1848[_0x3b69(0x26)],'data':_0x460c9d});}if(!_0x3a1848['ok']){var _0x2b658c,_0x506ba8,_0x11b0bc;const _0x1a4f76=_0x3a1848['status']===0x191||_0x562f59['tFzuT'](_0x3a1848[_0x3b69(0x26)],0x193)?_0x562f59['pQHHd']:_0x3a1848[_0x3b69(0x26)]===0x190?'validation_error':_0x562f59[_0x3b69(0x51)](_0x3a1848['status'],0x1f4)?_0x562f59[_0x3b69(0x52)]:_0x3b69(0x3b);throw new ApiError(((_0x2b658c=_0x460c9d[_0x3b69(0x29)])===null||_0x562f59[_0x3b69(0x53)](_0x2b658c,void 0x0)?void 0x0:_0x2b658c['message'])||_0x562f59[_0x3b69(0x54)],_0x1a4f76,_0x562f59[_0x3b69(0x55)](_0x506ba8=_0x460c9d[_0x3b69(0x29)],null)||_0x562f59[_0x3b69(0x56)](_0x506ba8,void 0x0)?void 0x0:_0x506ba8[_0x3b69(0x1)],(_0x11b0bc=_0x460c9d[_0x3b69(0x29)])===null||_0x11b0bc===void 0x0?void 0x0:_0x11b0bc[_0x3b69(0x2)]);}return _0x460c9d;}catch(_0x39c9e7){if(_0x562f59[_0x3b69(0x57)]!==_0x562f59[_0x3b69(0x57)])return _0x562f59[_0x3b69(0x4c)](_0x5c350f,_0x562f59['CBeal'],'POST',{'data':{'username':_0x2fdad9[_0x3b69(0x4e)],'platforms':_0x463e52[_0x3b69(0x58)]},'debug':_0x1ef45c[_0x3b69(0x2f)]});else{if(_0x562f59[_0x3b69(0x59)](_0x39c9e7,ApiError)){if(_0x562f59[_0x3b69(0x5a)](_0x562f59['jNrlX'],_0x562f59[_0x3b69(0x5b)]))throw _0x39c9e7;else{var _0x787321,_0x204ad5,_0x5c5ef9;const _0x15799e=_0x562f59['tFzuT'](_0x52d271[_0x3b69(0x26)],0x191)||_0x562f59[_0x3b69(0x5c)](_0x1ca9f1['status'],0x193)?_0x562f59[_0x3b69(0x5d)]:_0x562f59[_0x3b69(0x5c)](_0x33255d[_0x3b69(0x26)],0x190)?_0x562f59[_0x3b69(0x5e)]:_0x54e2f8[_0x3b69(0x26)]>=0x1f4?_0x562f59[_0x3b69(0x52)]:_0x562f59['AwbdE'];throw new _0x24040f((_0x562f59[_0x3b69(0x55)](_0x787321=_0x11a9ec[_0x3b69(0x29)],null)||_0x562f59[_0x3b69(0x5c)](_0x787321,void 0x0)?void 0x0:_0x787321[_0x3b69(0x2a)])||_0x3b69(0x5f),_0x15799e,(_0x204ad5=_0x25b73a[_0x3b69(0x29)])===null||_0x562f59[_0x3b69(0x56)](_0x204ad5,void 0x0)?void 0x0:_0x204ad5[_0x3b69(0x1)],_0x562f59[_0x3b69(0x55)](_0x5c5ef9=_0x28687e[_0x3b69(0x29)],null)||_0x562f59[_0x3b69(0x60)](_0x5c5ef9,void 0x0)?void 0x0:_0x5c5ef9[_0x3b69(0x2)]);}}if(_0x39c9e7[_0x3b69(0x3)]===_0x3b69(0x12))throw new ApiError(_0x562f59[_0x3b69(0x61)],_0x562f59[_0x3b69(0x62)]);debug&&_0x562f59[_0x3b69(0x63)](logDebug,_0x562f59[_0x3b69(0x64)],{'endpoint':_0x24b3d1,'method':_0x26cbc4,'error':_0x39c9e7[_0x3b69(0x2a)]||_0x3b69(0x14)});throw new ApiError(_0x39c9e7[_0x3b69(0x2a)]||'An\x20unexpected\x20error\x20occurred',_0x562f59[_0x3b69(0x65)]);}}};export const validateCredentials=async(_0xd6f858,_0x5b42f1={'debug':![]})=>{const _0x2605fd={'rYAwE':_0x3b69(0x66),'glZqZ':function(_0x194773,_0x5d2ef9,_0x26f5a2,_0x3eb27a){return _0x194773(_0x5d2ef9,_0x26f5a2,_0x3eb27a);},'gtlhR':function(_0x4a9c92,_0x134cf7){return _0x4a9c92===_0x134cf7;},'PiFWr':function(_0x4d331f,_0x4ade3c){return _0x4d331f===_0x4ade3c;},'IOHdD':function(_0x5557ca,_0x1e440e){return _0x5557ca===_0x1e440e;},'NyXdZ':_0x3b69(0x67)};try{if(_0x3b69(0x66)!==_0x2605fd[_0x3b69(0x68)])throw _0x500715;else{var _0x183e7b,_0xe14d17;const _0x34989f=await _0x2605fd['glZqZ'](makeUserApiRequest,_0x3b69(0x69),'POST',{'data':{'username':_0xd6f858},'debug':_0x5b42f1[_0x3b69(0x2f)]});return{'isValid':_0x34989f[_0x3b69(0x6a)]&&_0x2605fd[_0x3b69(0x6b)](_0x2605fd[_0x3b69(0x6b)](_0x183e7b=_0x34989f['data'],null)||_0x2605fd['PiFWr'](_0x183e7b,void 0x0)?void 0x0:_0x183e7b[_0x3b69(0x6c)],!![]),'message':_0x2605fd[_0x3b69(0x6d)](_0xe14d17=_0x34989f[_0x3b69(0x29)],null)||_0x2605fd[_0x3b69(0x6e)](_0xe14d17,void 0x0)?void 0x0:_0xe14d17[_0x3b69(0x2a)]};}}catch(_0x7bdf34){return _0x3b69(0x67)===_0x2605fd[_0x3b69(0x6f)]?{'isValid':![],'message':_0x7bdf34[_0x3b69(0x2a)]}:{'isValid':![],'message':_0x37f5a0[_0x3b69(0x2a)]};}};export const createAccount=async(_0x447cbc,_0x307aaf={'debug':![]})=>{const _0x43a832={'wVokT':_0x3b69(0x3a)};return makeDeveloperApiRequest(_0x43a832[_0x3b69(0x70)],'POST',{'data':{'username':_0x447cbc['username'],'platforms':_0x447cbc[_0x3b69(0x58)]},'debug':_0x307aaf[_0x3b69(0x2f)]});};export const authenticate=async(_0x530f50,_0x261653={'debug':![]})=>{const _0x59399a={'VOZln':'auth/login'};return makeUserApiRequest(_0x59399a[_0x3b69(0x71)],'POST',{'data':{'username':_0x530f50[_0x3b69(0x4e)],'pin':_0x530f50[_0x3b69(0x4f)]},'debug':_0x261653['debug']});};export const refreshToken=async(_0x1af7bb,_0x5e29c2={'debug':![]})=>{const _0x11f4a8={'TgvuD':function(_0x17ebe0,_0x5f49b5,_0x174070,_0x519da4){return _0x17ebe0(_0x5f49b5,_0x174070,_0x519da4);},'PhPnV':'auth/refresh'};return _0x11f4a8[_0x3b69(0x72)](makeUserApiRequest,_0x11f4a8['PhPnV'],'POST',{'data':{'refreshToken':_0x1af7bb},'debug':_0x5e29c2[_0x3b69(0x2f)]});};export const getPlatformData=async(_0x266fdf,_0x2154e7={'debug':![]})=>{return makeUserApiRequest(_0x3b69(0x2e)+_0x266fdf+_0x3b69(0x73),'GET',{'debug':_0x2154e7[_0x3b69(0x2f)]});};export const getUserProfile=async(_0x300cc0={'debug':![]})=>{return makeUserApiRequest(_0x3b69(0x74),'GET',{'debug':_0x300cc0[_0x3b69(0x2f)]});};export const updatePlatformConnections=async(_0x1b599c,_0x1313eb={'debug':![]})=>{return makeUserApiRequest(_0x3b69(0x75),'PUT',{'data':{'platforms':_0x1b599c},'debug':_0x1313eb[_0x3b69(0x2f)]});};export const storePIN=async(_0xb92947,_0x497167={})=>{const _0x5b460f={'FAzCl':_0x3b69(0x76),'JNhkw':_0x3b69(0x6),'lswoS':function(_0x58a2eb,_0x5b4eb1,_0x5edced,_0x1862fb){return _0x58a2eb(_0x5b4eb1,_0x5edced,_0x1862fb);}},{debug:debug=![],username:_0x41a141}=_0x497167,_0x4ff419=_0x41a141||extractUsernameFromJWT();if(!_0x4ff419)throw new ApiError(_0x5b460f['FAzCl'],_0x5b460f[_0x3b69(0x77)]);return _0x5b460f[_0x3b69(0x78)](makeUserApiRequest,_0x3b69(0x79),'POST',{'data':{'username':_0x4ff419,'pin':_0xb92947},'debug':debug});};function _0x3b69(_0x311d37,_0x3b6938){_0x311d37=_0x311d37-0x0;const _0x1c06e1=_0x311d();let _0x5c7105=_0x1c06e1[_0x311d37];return _0x5c7105;}export const getCurrentUserToken=async()=>{const _0xa855e7={'NaDoJ':function(_0x3ce384){return _0x3ce384();}};return await _0xa855e7['NaDoJ'](getJWT);};function _0x311d(){const _0xe4e68d=['ApiError','code','details','name','IzQnL','isConnected','auth_error','network_error','oGQPa','No\x20network\x20connection\x20available','User\x20API\x20Request','[REDACTED]','rLUIc','YiMfx','fhQXR','validation_error','server_error','vgRKl','AbortError','Tjmno','Unknown\x20error','wdSPt','aERrY','zTEFO','zViTm','hxPLQ','User\x20not\x20authenticated.\x20Please\x20verify\x20email\x20first.','SLeHV','Porjc','llPVH','isCal','stringify','ZjWqT','OsObV','WxTpv','VhjSx','YKvkt','GGlSg','status','bFnBr','YZTKh','error','message','ntRPo','QkkHy','hrfvI','platforms/','debug','GOBVX','BZHEn','uSkGY','wlqeu','gHqOT','tlseH','WnLzo','ahekH','GQtym','OsNmI','auth/register','unknown_error','Developer\x20API\x20Request','vcTIN','NaTLV','rtVIW','GJIqG','Request\x20timed\x20out','timeout_error','Developer\x20API\x20Error','qBhdK','fwYfY','OuDlp','CpkZo','json','rvrdm','UeRut','dowDz','ZpPbw','rikyQ','username','userPin','Developer\x20API\x20Response','JhhpT','IjSXA','HSXfx','TIaNJ','lfVWG','gjtQZ','dyqcN','platforms','ItPIR','ipzpF','WOyBJ','tFzuT','pQHHd','PMqhi','API\x20request\x20failed','hctYr','ltjCf','OeWpB','ljsnL','mXMmD','AwbdE','utpem','xEZZL','rYAwE','auth/validate','success','gtlhR','isValid','IOHdD','PiFWr','NyXdZ','wVokT','VOZln','TgvuD','/data','user/profile','user/platforms','No\x20username\x20available\x20-\x20either\x20provide\x20username\x20or\x20ensure\x20JWT\x20token\x20is\x20valid','JNhkw','lswoS','store-pin/mobile','kDQQr'];_0x311d=function(){return _0xe4e68d;};return _0x311d();}export const isCurrentUserAuthenticated=()=>{const _0x4fa847={'kDQQr':function(_0x31a58f){return _0x31a58f();}};return _0x4fa847[_0x3b69(0x7a)](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
|
-
import{initializePlatformAuthService}from'../services/platformAuthService';export const executeOnairosFlow=async
|
|
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':(_0x4fc533,_0x32bf40)=>{const _0x2f2711={'aHuIu':function(_0x19cd4d,_0x778427){return _0x19cd4d>=_0x778427;},'tmgRB':function(_0x48e2b0,_0x165a06){return _0x48e2b0!==_0x165a06;},'npsVa':_0x55cf(0x0),'dvYpi':_0x55cf(0x1),'IsLTz':function(_0x8756cf,_0x124559){return _0x8756cf===_0x124559;},'sKljD':_0x55cf(0x2),'pqtgu':_0x55cf(0x3),'YUYOO':_0x55cf(0x4),'hYFKb':_0x55cf(0x5)};if(_0x2f2711[_0x55cf(0x6)](_0x4fc533[_0x55cf(0x7)],0x190)&&_0x4fc533[_0x55cf(0x7)]<0x1f4&&_0x2f2711['tmgRB'](_0x4fc533['status'],0x198)&&_0x2f2711[_0x55cf(0x8)](_0x4fc533['status'],0x1ad))return _0x2f2711[_0x55cf(0x9)]===_0x2f2711['dvYpi']?_0x101bd7<=0x2:![];if(_0x2f2711[_0x55cf(0xa)](_0x4fc533[_0x55cf(0xb)],_0x55cf(0xc))||_0x4fc533[_0x55cf(0xd)][_0x55cf(0xe)](_0x2f2711[_0x55cf(0xf)])||_0x4fc533[_0x55cf(0xd)][_0x55cf(0xe)](_0x2f2711[_0x55cf(0x10)])||_0x4fc533[_0x55cf(0xd)]['includes'](_0x55cf(0x11))||_0x4fc533['message']['includes'](_0x2f2711[_0x55cf(0x12)])||_0x2f2711[_0x55cf(0x6)](_0x4fc533[_0x55cf(0x7)],0x1f4))return!![];if(_0x4fc533[_0x55cf(0xd)][_0x55cf(0xe)](_0x55cf(0x13))||_0x4fc533[_0x55cf(0xd)][_0x55cf(0xe)](_0x2f2711[_0x55cf(0x14)]))return!![];return![];}};export async function withRetry(_0x39d93c,_0x40ec8f={}){const _0x35c147={'nDHlf':function(_0x42620d,_0x39b0a7){return _0x42620d>=_0x39b0a7;},'jgpru':function(_0x33c0ee,_0x3063a7){return _0x33c0ee<_0x3063a7;},'XCeln':function(_0x244250,_0x56dcfa){return _0x244250!==_0x56dcfa;},'PCHLj':function(_0x2ebf7c,_0x66fcf7){return _0x2ebf7c!==_0x66fcf7;},'yszTm':_0x55cf(0xc),'pBKkj':_0x55cf(0x2),'lzSMV':'fetch','DCvzG':_0x55cf(0x4),'iFCcF':_0x55cf(0x13),'RDCPD':_0x55cf(0x5),'duOAY':function(_0x3f9887,_0x25045f){return _0x3f9887+_0x25045f;},'inKLT':function(_0x2edcda,_0x3d8dca){return _0x2edcda===_0x3d8dca;},'gpctv':'yVojq','cwjuN':'WrHtK','xmmbR':function(_0x5758b6,_0x4af191){return _0x5758b6===_0x4af191;},'KydsS':_0x55cf(0x15),'qAVXV':function(_0x547634,_0x6075c3){return _0x547634===_0x6075c3;},'isSlX':'KgDkx','XOFZL':_0x55cf(0x16),'WoiVx':function(_0xef522b,_0x3d7683){return _0xef522b+_0x3d7683;},'LTRjq':function(_0x429bcb,_0x4d9864){return _0x429bcb-_0x4d9864;},'xjtHB':function(_0xb3f4e2,_0x2e5342){return _0xb3f4e2>_0x2e5342;},'mYFSw':function(_0x68a365,_0xf13032){return _0x68a365===_0xf13032;},'TrGDg':_0x55cf(0x17),'LAadz':function(_0x1130af,_0x538acc){return _0x1130af*_0x538acc;},'AmbgX':function(_0x2d5884,_0x28c917){return _0x2d5884-_0x28c917;},'Bawxx':function(_0x44e102,_0x4d3f5f){return _0x44e102*_0x4d3f5f;},'WsBAF':_0x55cf(0x18),'xKsKc':_0x55cf(0x19),'NRRiy':function(_0x4d88c0,_0xc6eac2){return _0x4d88c0-_0xc6eac2;}},_0xe05555={...DEFAULT_RETRY_OPTIONS,..._0x40ec8f},_0x1b6ae4=Date[_0x55cf(0x1a)]();let _0x567e32=null;for(let _0x28ee8f=0x1;_0x28ee8f<=_0x35c147[_0x55cf(0x1b)](_0xe05555[_0x55cf(0x1c)],0x1);_0x28ee8f++){if(_0x35c147[_0x55cf(0x1d)](_0x35c147[_0x55cf(0x1e)],_0x35c147[_0x55cf(0x1f)]))throw _0x3f8928[_0x55cf(0x20)];else try{if(_0x35c147['xmmbR'](_0x35c147[_0x55cf(0x21)],_0x35c147[_0x55cf(0x21)])){if(_0xe05555['enableLogging']&&_0x28ee8f>0x1){if(_0x35c147[_0x55cf(0x22)](_0x35c147[_0x55cf(0x23)],_0x35c147[_0x55cf(0x24)]))return![];else console[_0x55cf(0x25)](_0x55cf(0x26)+_0x28ee8f+'/'+_0x35c147['WoiVx'](_0xe05555[_0x55cf(0x1c)],0x1));}const _0x16b1e5=await _0x39d93c();return{'success':!![],'data':_0x16b1e5,'attempts':_0x28ee8f,'totalDuration':_0x35c147['LTRjq'](Date[_0x55cf(0x1a)](),_0x1b6ae4)};}else return!![];}catch(_0xbb157a){_0x567e32=_0xbb157a;const _0x632707=_0xe05555[_0x55cf(0x27)]?_0xe05555[_0x55cf(0x27)](_0xbb157a,_0x28ee8f):!![];if(_0x35c147[_0x55cf(0x28)](_0x28ee8f,_0xe05555[_0x55cf(0x1c)])||!_0x632707){if(_0xe05555[_0x55cf(0x29)]){if(_0x35c147[_0x55cf(0x2a)](_0x35c147[_0x55cf(0x2b)],_0x35c147[_0x55cf(0x2b)]))console['error'](_0x55cf(0x2c)+_0xbb157a[_0x55cf(0xd)]);else{if(_0x35c147['nDHlf'](_0x284057[_0x55cf(0x7)],0x190)&&_0x35c147[_0x55cf(0x2d)](_0x5c5d81[_0x55cf(0x7)],0x1f4)&&_0x35c147[_0x55cf(0x2e)](_0x1a2e8b[_0x55cf(0x7)],0x198)&&_0x35c147[_0x55cf(0x2f)](_0x4cc98d[_0x55cf(0x7)],0x1ad))return![];if(_0x5475ae[_0x55cf(0xb)]===_0x35c147['yszTm']||_0x3d7a3a[_0x55cf(0xd)][_0x55cf(0xe)](_0x35c147['pBKkj'])||_0x3fff75[_0x55cf(0xd)][_0x55cf(0xe)](_0x35c147['lzSMV'])||_0x7407cc[_0x55cf(0xd)][_0x55cf(0xe)]('ENOTFOUND')||_0x56b404[_0x55cf(0xd)][_0x55cf(0xe)](_0x35c147[_0x55cf(0x30)])||_0x4d6e18[_0x55cf(0x7)]>=0x1f4)return!![];if(_0x5db9b0[_0x55cf(0xd)]['includes'](_0x35c147[_0x55cf(0x31)])||_0x699e34[_0x55cf(0xd)][_0x55cf(0xe)](_0x35c147['RDCPD']))return!![];return![];}}break;}let _0x353614=_0xe05555['baseDelay'];_0xe05555[_0x55cf(0x32)]&&(_0x353614=Math[_0x55cf(0x33)](_0x35c147[_0x55cf(0x34)](_0xe05555['baseDelay'],Math[_0x55cf(0x35)](0x2,_0x35c147[_0x55cf(0x36)](_0x28ee8f,0x1))),_0xe05555[_0x55cf(0x37)]));const _0xb6e149=_0x35c147[_0x55cf(0x38)](Math[_0x55cf(0x39)](),0.1)*_0x353614;_0x353614=Math['floor'](_0x353614+_0xb6e149);if(_0xe05555[_0x55cf(0x3a)]){if(_0x35c147[_0x55cf(0x3b)]!==_0x35c147[_0x55cf(0x3b)])return![];else _0xe05555[_0x55cf(0x3a)](_0xbb157a,_0x28ee8f,_0x353614);}_0xe05555[_0x55cf(0x29)]&&console[_0x55cf(0x25)](_0x55cf(0x3c)+_0x353614+_0x55cf(0x3d)+_0x28ee8f+'/'+(_0xe05555[_0x55cf(0x1c)]+0x1)+')'),await new Promise(_0x3b5222=>setTimeout(()=>_0x3b5222(),_0x353614));}}return{'success':![],'error':_0x567e32||new Error(_0x35c147[_0x55cf(0x3e)]),'attempts':_0x35c147['WoiVx'](_0xe05555[_0x55cf(0x1c)],0x1),'totalDuration':_0x35c147[_0x55cf(0x3f)](Date['now'](),_0x1b6ae4)};}function _0x55cf(_0x3b8612,_0x55cf75){_0x3b8612=_0x3b8612-0x0;const _0x59693e=_0x3b86();let _0x80e996=_0x59693e[_0x3b8612];return _0x80e996;}export const API_RETRY_OPTIONS={'maxRetries':0x3,'baseDelay':0x3e8,'maxDelay':0x1388,'exponentialBackoff':!![],'shouldRetry':(_0x1745b4,_0x2bb225)=>{const _0x9ee3fe={'wEDAI':function(_0x21bfb0,_0x4a1e8a){return _0x21bfb0===_0x4a1e8a;},'aaXwG':function(_0x36d296,_0x594276){return _0x36d296===_0x594276;},'QAlAi':_0x55cf(0x40),'HmdDD':function(_0xe20674,_0x196c08){return _0xe20674>=_0x196c08;},'vXsGH':function(_0x50561f,_0x578a74){return _0x50561f===_0x578a74;},'hBqMo':'AbortError','qpuNJ':'Network\x20request\x20failed','ScuvV':_0x55cf(0x3),'oggWB':_0x55cf(0x11),'qecSV':_0x55cf(0x5),'ODXJW':'HTML\x20page\x20instead\x20of\x20JSON','kJLCq':_0x55cf(0x41)};if(_0x1745b4[_0x55cf(0x7)]===0x191||_0x9ee3fe['wEDAI'](_0x1745b4[_0x55cf(0x7)],0x193))return![];if(_0x9ee3fe[_0x55cf(0x42)](_0x1745b4[_0x55cf(0x7)],0x190)||_0x9ee3fe[_0x55cf(0x43)](_0x1745b4[_0x55cf(0x7)],0x194)&&!_0x1745b4['message'][_0x55cf(0xe)](_0x9ee3fe[_0x55cf(0x44)]))return![];if(_0x9ee3fe[_0x55cf(0x42)](_0x1745b4[_0x55cf(0x7)],0x1ad))return _0x2bb225<=0x2;if(_0x9ee3fe[_0x55cf(0x45)](_0x1745b4['status'],0x1f4))return!![];if(_0x9ee3fe[_0x55cf(0x46)](_0x1745b4[_0x55cf(0xb)],_0x9ee3fe[_0x55cf(0x47)])||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x55cf(0x4))||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x9ee3fe[_0x55cf(0x48)])||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x9ee3fe[_0x55cf(0x49)])||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x9ee3fe[_0x55cf(0x4a)]))return!![];if(_0x1745b4[_0x55cf(0xd)]['includes'](_0x55cf(0x13))||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x9ee3fe['qecSV'])||_0x1745b4[_0x55cf(0xd)][_0x55cf(0xe)](_0x9ee3fe[_0x55cf(0x4b)]))return _0x9ee3fe[_0x55cf(0x43)]('yAaIz',_0x9ee3fe['kJLCq'])?!![]:!![];return![];},'onRetry':(_0x15f25a,_0x4478fa,_0x22e590)=>{console[_0x55cf(0x4c)](_0x55cf(0x4d)+_0x4478fa+_0x55cf(0x4e)+_0x22e590+'ms:\x20'+_0x15f25a[_0x55cf(0xd)]);}};function _0x3b86(){const _0x578091=['jxlZG','BDQgK','Network\x20request\x20failed','fetch','timeout','Unexpected\x20character','aHuIu','status','tmgRB','npsVa','IsLTz','name','AbortError','message','includes','sKljD','pqtgu','ENOTFOUND','YUYOO','JSON\x20Parse\x20error','hYFKb','aZwKa','UCFRB','IMuvU','bxDgM','Unknown\x20error','now','duOAY','maxRetries','inKLT','gpctv','cwjuN','error','KydsS','qAVXV','isSlX','XOFZL','log','🔄\x20Retry\x20attempt\x20','shouldRetry','xjtHB','enableLogging','mYFSw','TrGDg','❌\x20All\x20retry\x20attempts\x20exhausted\x20or\x20error\x20not\x20retryable:\x20','jgpru','XCeln','PCHLj','DCvzG','iFCcF','exponentialBackoff','min','LAadz','pow','AmbgX','maxDelay','Bawxx','random','onRetry','WsBAF','⏳\x20Waiting\x20','ms\x20before\x20retry\x20(attempt\x20','xKsKc','NRRiy','validation\x20endpoint','JMUAY','aaXwG','wEDAI','QAlAi','HmdDD','vXsGH','hBqMo','qpuNJ','ScuvV','oggWB','ODXJW','warn','⚠️\x20API\x20call\x20failed\x20(attempt\x20','),\x20retrying\x20in\x20','DNS','wxKRQ','ekhXi','hBPJy','success','data','oTliV','OnairosReactNative/HealthCheck','HzpYQ','RBeBc','MWVBs','abort','HFwxr','PzSRl','jOrNg','xcTHD'];_0x3b86=function(){return _0x578091;};return _0x3b86();}export const NETWORK_RETRY_OPTIONS={'maxRetries':0x2,'baseDelay':0x7d0,'maxDelay':0x1f40,'exponentialBackoff':!![],'shouldRetry':(_0x350d6c,_0x20f5be)=>{const _0x11299d={'wxKRQ':_0x55cf(0x2),'ekhXi':'ENOTFOUND','fNNaz':_0x55cf(0x4f),'PdRIf':function(_0x475758,_0x420c6d){return _0x475758===_0x420c6d;},'hBPJy':'AbortError'};return _0x350d6c['message'][_0x55cf(0xe)](_0x11299d[_0x55cf(0x50)])||_0x350d6c[_0x55cf(0xd)][_0x55cf(0xe)](_0x11299d[_0x55cf(0x51)])||_0x350d6c[_0x55cf(0xd)]['includes'](_0x11299d['fNNaz'])||_0x11299d['PdRIf'](_0x350d6c[_0x55cf(0xb)],_0x11299d[_0x55cf(0x52)]);}};export async function fetchWithRetry(_0x5374a3,_0x45ecb2={},_0x971a97=API_RETRY_OPTIONS){const _0x1ff80a=await withRetry(()=>fetch(_0x5374a3,_0x45ecb2),_0x971a97);if(!_0x1ff80a[_0x55cf(0x53)])throw _0x1ff80a[_0x55cf(0x20)];return _0x1ff80a[_0x55cf(0x54)];}export async function healthCheck(_0x2113a4,_0x5e665b=0x1388){const _0x556d83={'RBeBc':_0x55cf(0x55),'JqKZX':'lgbPt','MWVBs':function(_0x287180,_0x3f70a9,_0x37f974){return _0x287180(_0x3f70a9,_0x37f974);},'HFwxr':_0x55cf(0x56),'cqHRn':function(_0xebc32f,_0x58a1b4){return _0xebc32f(_0x58a1b4);},'PzSRl':function(_0xa0ab40,_0x15bf51){return _0xa0ab40-_0x15bf51;},'oBIyl':function(_0x37bb3f,_0x428d02){return _0x37bb3f!==_0x428d02;},'jOrNg':'etbOp','xcTHD':_0x55cf(0x57)},_0x54879f=Date[_0x55cf(0x1a)]();try{if(_0x556d83[_0x55cf(0x58)]!==_0x556d83['JqKZX']){const _0x578a52=new AbortController(),_0x43035e=_0x556d83[_0x55cf(0x59)](setTimeout,()=>_0x578a52[_0x55cf(0x5a)](),_0x5e665b),_0xf97608=await fetch(_0x2113a4,{'method':'GET','signal':_0x578a52['signal'],'headers':{'User-Agent':_0x556d83[_0x55cf(0x5b)]}});return _0x556d83['cqHRn'](clearTimeout,_0x43035e),{'reachable':!![],'status':_0xf97608[_0x55cf(0x7)],'duration':_0x556d83[_0x55cf(0x5c)](Date[_0x55cf(0x1a)](),_0x54879f)};}else _0x10476a[_0x55cf(0x25)]('🔄\x20Retry\x20attempt\x20'+_0x950bd0+'/'+(_0x4c0342[_0x55cf(0x1c)]+0x1));}catch(_0x64b96){return _0x556d83['oBIyl'](_0x556d83[_0x55cf(0x5d)],_0x556d83[_0x55cf(0x5e)])?{'reachable':![],'error':_0x64b96[_0x55cf(0xd)],'duration':Date[_0x55cf(0x1a)]()-_0x54879f}:!![];}}
|
|
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=_0x10cf(0x0),mockStorage={};let Keychain=null;function _0x1184(){const _0x393114=['onairos_jwt_token','warn','mock','cCNQl','function','ArVqx','tPREN','equEv','Bfywi','getGenericPassword','TPKsK','default','dEAOy','kFnUC','GwNXW','siWQJ','service','uiuCK','MoFvv','pKsHC','Cflyv','Keychain\x20access\x20failed,\x20using\x20mock\x20storage','ecIOT','wVcHe','ekObk','setGenericPassword','OynSC','TgGJE','WUWcw','qLdqr','QBqFB','bvtYw','Error\x20deleting\x20credentials:','JpmKA','Bgece','jXngQ','kQmYX','resetGenericPassword','ssmon','SRGzk','hgNDi','error','dDkSr','RUNBG','dXkwY','Username\x20is\x20required\x20for\x20storing\x20credentials','web','Error\x20storing\x20credentials:','jfwTe','tQZfS','createdAt','now','username','fqJvc','credentials','lkPaw','DSglu','MFATm','QAYSt','accessControl','BIOMETRY_ANY_OR_DEVICE_PASSCODE','accessible','WHEN_UNLOCKED','indexOf','charAt','vYncP','LSYDg','oxTsu','peoKU','IQFee','ZpByu','fTBhx','fromCharCode','YoAIL','VpyxT','stringify','❌\x20Failed\x20to\x20clear\x20JWT\x20token:','TaRax','GVMVg','OqQyd','Error\x20getting\x20credentials:','SjXcp','pOGiL','uBwfx','PHVYm','parse','password','cIXaT','XoGZR','VVQQz','YMmZg','Yrdvt','vnQuj','pghyT','QCEei','ZAsLg','SyDcY','QNCyQ','yboWb','cpXcv','DqKhx','random','toString','dev_','yRACM','aNhwe','gJtVm','zjXaY','ZaTvD','Xnzch','FgZfK','dcyRC','Error\x20verifying\x20credentials:','KzXHq','❌\x20Failed\x20to\x20retrieve\x20JWT\x20token:','whBux','getItem','zVmBM','SufCg','VCTLn','❌\x20Failed\x20to\x20check\x20JWT\x20token:','EsOVi','QHCpP','Fezrq','Wjhmv','🗑️\x20JWT\x20token\x20cleared','GNKDn','ACCESS_CONTROL','ACCESSIBLE','removeItem','log','xAldE','ikhvW','length','HSmjq','lUtPH','biRhm','hydpF','Tirfc','OIQOo','QwFpU','fPXkV','PRrQT','sIVbe','hTcSj','zuCmJ','XmRKH','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','cLwqN','XHbPd','jquGy','uhrXM','TamIL','BEcMb','OnByC','GORIu','pXIUt','ODMMC','❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','split','hTYiH','ydRLQ','HwvuN','❌\x20Failed\x20to\x20check\x20JWT\x20expiration:','mLsaV','vfWNl','OmYJJ','MyqfS','exp','qhORu','mVeCV','EdaBB','LSHXH','vBnHV','cckwE'];_0x1184=function(){return _0x393114;};return _0x1184();}try{Keychain=__ONAIROS_REQ_FUNC__(0x0);}catch(_0x250430){console[_0x10cf(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x10cf(0x2)},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}const isKeychainAvailable=()=>{const _0x4bc5cb={'tPREN':function(_0x39e5db){return _0x39e5db();},'equEv':'Error\x20verifying\x20credentials:','ArVqx':_0x10cf(0x3),'Bfywi':function(_0x4b298b,_0x67114e){return _0x4b298b===_0x67114e;},'pwzzq':_0x10cf(0x4)};try{if(_0x10cf(0x3)!==_0x4bc5cb[_0x10cf(0x5)])try{if(!_0x4bc5cb[_0x10cf(0x6)](_0x2da08a))return!![];return!![];}catch(_0x17c09d){return _0xfd4189['error'](_0x4bc5cb[_0x10cf(0x7)],_0x17c09d),![];}else return Keychain&&_0x4bc5cb[_0x10cf(0x8)](typeof Keychain[_0x10cf(0x9)],_0x4bc5cb['pwzzq']);}catch(_0x19c062){return![];}},safeGetGenericPassword=async _0x49704b=>{const _0xfa10bb={'kFnUC':function(_0x46411c,_0x4216d8){return _0x46411c(_0x4216d8);},'RMzUi':function(_0x1ff477){return _0x1ff477();},'dEAOy':function(_0x1aa557,_0x465441){return _0x1aa557===_0x465441;},'QnZlI':_0x10cf(0xa),'HJGLr':function(_0x25960c,_0x2c7605){return _0x25960c===_0x2c7605;},'GwNXW':function(_0x36ccf5,_0x225d6c){return _0x36ccf5===_0x225d6c;},'siWQJ':_0x10cf(0xb)};try{if(_0xfa10bb['RMzUi'](isKeychainAvailable))return _0xfa10bb[_0x10cf(0xc)](_0xfa10bb['QnZlI'],_0x10cf(0xa))?await Keychain[_0x10cf(0x9)](_0x49704b):_0xfa10bb[_0x10cf(0xd)](_0x2165d3,_0x49cd8d);else{const _0x5b2cc7=(_0xfa10bb['HJGLr'](_0x49704b,null)||_0xfa10bb[_0x10cf(0xe)](_0x49704b,void 0x0)?void 0x0:_0x49704b['service'])||_0xfa10bb[_0x10cf(0xf)];return mockStorage[_0x5b2cc7]||null;}}catch(_0x2a01fd){console[_0x10cf(0x1)]('Keychain\x20access\x20failed,\x20using\x20mock\x20storage',_0x2a01fd);const _0x556ff6=(_0x49704b===null||_0x49704b===void 0x0?void 0x0:_0x49704b[_0x10cf(0x10)])||'default';return mockStorage[_0x556ff6]||null;}},safeSetGenericPassword=async(_0x4d63e1,_0x464fdd,_0x1c51b2)=>{const _0x20e0fb={'wVcHe':function(_0x322725,_0x2a48ac){return _0x322725===_0x2a48ac;},'efRuM':_0x10cf(0x4),'WUWcw':function(_0x7598eb,_0x29099f){return _0x7598eb===_0x29099f;},'qLdqr':_0x10cf(0xb),'ecIOT':_0x10cf(0x11),'ekObk':function(_0x21b89e){return _0x21b89e();},'czBUU':_0x10cf(0x12),'pDwvR':function(_0x37c7a9,_0x10f86b){return _0x37c7a9===_0x10f86b;},'OynSC':_0x10cf(0x13),'TgGJE':_0x10cf(0x14),'QBqFB':function(_0x1a3671,_0x24ba1f){return _0x1a3671===_0x24ba1f;},'bvtYw':_0x10cf(0x15)};try{if(_0x20e0fb['ecIOT']!==_0x20e0fb[_0x10cf(0x16)])return Keychain&&_0x20e0fb[_0x10cf(0x17)](typeof Keychain[_0x10cf(0x9)],_0x20e0fb['efRuM']);else{if(_0x20e0fb[_0x10cf(0x18)](isKeychainAvailable)){if(_0x10cf(0x12)===_0x20e0fb['czBUU'])return await Keychain[_0x10cf(0x19)](_0x4d63e1,_0x464fdd,_0x1c51b2);else{_0x5ba02b[_0x10cf(0x1)](_0x10cf(0x15),_0x17977a);const _0x40e330=(_0x20e0fb[_0x10cf(0x17)](_0x51de20,null)||_0x20e0fb['WUWcw'](_0xac67de,void 0x0)?void 0x0:_0x467cfe[_0x10cf(0x10)])||_0x20e0fb['qLdqr'];return _0x29ba40[_0x40e330]||null;}}else{if(_0x20e0fb['pDwvR'](_0x20e0fb[_0x10cf(0x1a)],_0x20e0fb[_0x10cf(0x1b)])){const _0x22560a=(_0x20e0fb[_0x10cf(0x1c)](_0x2ab7db,null)||_0x20e0fb[_0x10cf(0x1c)](_0x26e03f,void 0x0)?void 0x0:_0x3a4b72['service'])||_0x20e0fb[_0x10cf(0x1d)];return _0x32afce[_0x22560a]={'username':_0x272982,'password':_0x2ce7c8},!![];}else{const _0x1943f7=(_0x20e0fb[_0x10cf(0x1e)](_0x1c51b2,null)||_0x1c51b2===void 0x0?void 0x0:_0x1c51b2[_0x10cf(0x10)])||_0x20e0fb[_0x10cf(0x1d)];return mockStorage[_0x1943f7]={'username':_0x4d63e1,'password':_0x464fdd},!![];}}}}catch(_0x19865c){console[_0x10cf(0x1)](_0x20e0fb[_0x10cf(0x1f)],_0x19865c);const _0x2bd9a4=(_0x1c51b2===null||_0x20e0fb['pDwvR'](_0x1c51b2,void 0x0)?void 0x0:_0x1c51b2['service'])||_0x20e0fb[_0x10cf(0x1d)];return mockStorage[_0x2bd9a4]={'username':_0x4d63e1,'password':_0x464fdd},!![];}},safeResetGenericPassword=async _0x506d9d=>{const _0x10fe45={'kQmYX':_0x10cf(0x15),'jXngQ':function(_0x18c7e6,_0x225884){return _0x18c7e6===_0x225884;},'hgNDi':_0x10cf(0xb),'dDkSr':_0x10cf(0x20),'ssmon':function(_0x23b2bc,_0x2565c0){return _0x23b2bc===_0x2565c0;},'fhBYE':'UDhKs','SRGzk':_0x10cf(0x21),'wjqpq':function(_0x4a6955,_0x55e1fc){return _0x4a6955===_0x55e1fc;},'DdYgx':function(_0x5f2487,_0x34c856){return _0x5f2487===_0x34c856;},'RUNBG':_0x10cf(0x22),'dXkwY':function(_0x213dcd,_0x2e33c3){return _0x213dcd===_0x2e33c3;},'rqJEW':function(_0x2b6704,_0xf6247c){return _0x2b6704===_0xf6247c;}};try{if(isKeychainAvailable()){if(_0x10fe45[_0x10cf(0x23)](_0x10fe45['fhBYE'],'LUqTu')){_0xed7d08['warn'](_0x10fe45[_0x10cf(0x24)],_0x2674f6);const _0x26af76=(_0x10fe45['jXngQ'](_0x22e159,null)||_0x10fe45['jXngQ'](_0x23b82a,void 0x0)?void 0x0:_0x57ee35[_0x10cf(0x10)])||_0x10fe45['hgNDi'];return delete _0x54b1e1[_0x26af76],!![];}else return await Keychain[_0x10cf(0x25)](_0x506d9d);}else{if(_0x10fe45[_0x10cf(0x26)](_0x10cf(0x21),_0x10fe45[_0x10cf(0x27)])){const _0x14c77a=(_0x506d9d===null||_0x10fe45['wjqpq'](_0x506d9d,void 0x0)?void 0x0:_0x506d9d[_0x10cf(0x10)])||_0x10fe45[_0x10cf(0x28)];return delete mockStorage[_0x14c77a],!![];}else return _0x435da8[_0x10cf(0x29)](_0x10fe45[_0x10cf(0x2a)],_0x2b970e),![];}}catch(_0x1af5c4){if(_0x10fe45['DdYgx'](_0x10cf(0x22),_0x10fe45[_0x10cf(0x2b)])){console[_0x10cf(0x1)](_0x10cf(0x15),_0x1af5c4);const _0x2eb3cd=(_0x10fe45[_0x10cf(0x2c)](_0x506d9d,null)||_0x10fe45['rqJEW'](_0x506d9d,void 0x0)?void 0x0:_0x506d9d['service'])||_0x10fe45[_0x10cf(0x28)];return delete mockStorage[_0x2eb3cd],!![];}else{_0x4d2614['warn'](_0x10fe45['kQmYX'],_0x131ebe);const _0x5815f5=(_0x10fe45['ssmon'](_0x143782,null)||_0x10fe45[_0x10cf(0x23)](_0x19f82a,void 0x0)?void 0x0:_0x59285a['service'])||'default';return _0x16b6d9[_0x5815f5]={'username':_0x2d507b,'password':_0x325aa8},!![];}}};export const storeCredentials=async _0x580c8a=>{const _0x8aeb4a={'vYncP':function(_0x1a72a8,_0x50f434){return _0x1a72a8+_0x50f434;},'LSYDg':function(_0x215868,_0x32c833){return _0x215868+_0x32c833;},'oxTsu':function(_0x53f84e,_0x112d5b){return _0x53f84e|_0x112d5b;},'peoKU':function(_0x354eb4,_0x280b3a){return _0x354eb4|_0x280b3a;},'IQFee':function(_0x412e13,_0x2c9c4e){return _0x412e13<<_0x2c9c4e;},'ZpByu':function(_0x1b6a14,_0x110b11){return _0x1b6a14<<_0x110b11;},'fTBhx':function(_0x5b7b32,_0x290b0c){return _0x5b7b32<<_0x290b0c;},'dFDUE':function(_0x4133d9,_0x4c03ff){return _0x4133d9>>_0x4c03ff;},'lflGd':function(_0x441cdf,_0x5c5c12){return _0x441cdf!==_0x5c5c12;},'YoAIL':function(_0x1fac09,_0x509175){return _0x1fac09&_0x509175;},'VpyxT':function(_0x11caf8,_0x536b6c){return _0x11caf8>>_0x536b6c;},'SBfSL':function(_0x2f085d,_0x265299){return _0x2f085d!==_0x265299;},'jfwTe':function(_0x54b697){return _0x54b697();},'tQZfS':function(_0x4af5d8,_0x4a99da){return _0x4af5d8===_0x4a99da;},'fqJvc':_0x10cf(0x2d),'lkPaw':function(_0x3955d1,_0x3748ec){return _0x3955d1!==_0x3748ec;},'remhS':_0x10cf(0x2e),'DSglu':function(_0x248934){return _0x248934();},'MFATm':function(_0x32100f,_0x5380ab){return _0x32100f===_0x5380ab;},'cgIBw':_0x10cf(0x2f)};try{const _0x5614d6=await _0x8aeb4a[_0x10cf(0x30)](getCredentials),_0x22502e={..._0x5614d6,..._0x580c8a,'createdAt':(_0x8aeb4a[_0x10cf(0x31)](_0x5614d6,null)||_0x8aeb4a[_0x10cf(0x31)](_0x5614d6,void 0x0)?void 0x0:_0x5614d6[_0x10cf(0x32)])||Date[_0x10cf(0x33)]()},_0x10bfab=_0x22502e[_0x10cf(0x34)];if(!_0x10bfab)throw new Error(_0x8aeb4a[_0x10cf(0x35)]);const _0x5a0696={'service':STORAGE_KEYS[_0x10cf(0x36)]};if(_0x8aeb4a[_0x10cf(0x37)](Platform['OS'],_0x8aeb4a['remhS'])&&_0x8aeb4a[_0x10cf(0x38)](isKeychainAvailable)){if(_0x8aeb4a[_0x10cf(0x39)](_0x10cf(0x3a),'QAYSt'))_0x5a0696[_0x10cf(0x3b)]=Keychain['ACCESS_CONTROL'][_0x10cf(0x3c)],_0x5a0696[_0x10cf(0x3d)]=Keychain['ACCESSIBLE'][_0x10cf(0x3e)];else{const _0x2b95c5=_0x4f65c8[_0x10cf(0x3f)](_0x39dfec['charAt'](_0x490099)),_0x27e4fb=_0x4adc20[_0x10cf(0x3f)](_0x47ee64[_0x10cf(0x40)](_0x8aeb4a['vYncP'](_0x29284d,0x1))),_0x5e5224=_0x300436[_0x10cf(0x3f)](_0x390916[_0x10cf(0x40)](_0x8aeb4a[_0x10cf(0x41)](_0x324749,0x2))),_0x27e950=_0x5b7e53['indexOf'](_0x2bc602['charAt'](_0x8aeb4a[_0x10cf(0x42)](_0x46ed0b,0x3))),_0x35cd3c=_0x8aeb4a[_0x10cf(0x43)](_0x8aeb4a[_0x10cf(0x44)](_0x8aeb4a[_0x10cf(0x43)](_0x8aeb4a[_0x10cf(0x45)](_0x2b95c5,0x12),_0x8aeb4a[_0x10cf(0x46)](_0x27e4fb,0xc)),_0x8aeb4a[_0x10cf(0x47)](_0x5e5224,0x6)),_0x27e950);_0x23a2b8+=_0x193ccd['fromCharCode'](_0x8aeb4a['dFDUE'](_0x35cd3c,0x10)&0xff);if(_0x8aeb4a['lflGd'](_0x5e5224,0x40))_0x2544fa+=_0x2d252c[_0x10cf(0x48)](_0x8aeb4a[_0x10cf(0x49)](_0x8aeb4a[_0x10cf(0x4a)](_0x35cd3c,0x8),0xff));if(_0x8aeb4a['SBfSL'](_0x27e950,0x40))_0x47ef07+=_0x5b7469[_0x10cf(0x48)](_0x8aeb4a[_0x10cf(0x49)](_0x35cd3c,0xff));}}return await safeSetGenericPassword(_0x10bfab,JSON[_0x10cf(0x4b)](_0x22502e),_0x5a0696),!![];}catch(_0x161f46){return console[_0x10cf(0x29)](_0x8aeb4a['cgIBw'],_0x161f46),![];}};export const getCredentials=async()=>{const _0x552935={'cIXaT':'❌\x20Failed\x20to\x20decode\x20JWT\x20payload:','ujVID':_0x10cf(0x4c),'SjXcp':function(_0x2defd6,_0x389f02){return _0x2defd6!==_0x389f02;},'uBwfx':_0x10cf(0x4d),'PHVYm':function(_0x24202d,_0x2520fc){return _0x24202d(_0x2520fc);},'jOyaI':_0x10cf(0x4e),'oIzWP':_0x10cf(0x4f),'XoGZR':_0x10cf(0x50)};try{if(_0x552935[_0x10cf(0x51)](_0x10cf(0x52),_0x552935[_0x10cf(0x53)])){const _0x42370f=await _0x552935[_0x10cf(0x54)](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x10cf(0x36)]});if(_0x42370f)return _0x552935['jOyaI']!==_0x552935['oIzWP']?JSON[_0x10cf(0x55)](_0x42370f[_0x10cf(0x56)]):(_0x257456[_0x10cf(0x29)](_0x552935[_0x10cf(0x57)],_0x3c8a77),null);return null;}else return _0x455f63[_0x10cf(0x29)](_0x552935['ujVID'],_0x4c1c97),![];}catch(_0x524004){return console[_0x10cf(0x29)](_0x552935[_0x10cf(0x58)],_0x524004),null;}};export const hasCredentials=async()=>{const _0x5cc808={'FJSzZ':function(_0x2a9baa,_0x22f643){return _0x2a9baa(_0x22f643);},'VVQQz':'Error\x20checking\x20credentials:'};try{const _0x385b7d=await _0x5cc808['FJSzZ'](safeGetGenericPassword,{'service':STORAGE_KEYS[_0x10cf(0x36)]});return!!_0x385b7d;}catch(_0x216c4f){return console[_0x10cf(0x29)](_0x5cc808[_0x10cf(0x59)],_0x216c4f),![];}};export const deleteCredentials=async()=>{const _0x3fef93={'SyDcY':function(_0x4ccc2b){return _0x4ccc2b();},'DqKhx':'❌\x20Failed\x20to\x20check\x20JWT\x20expiration:','vnQuj':function(_0x142279,_0x41c45d){return _0x142279!==_0x41c45d;},'pghyT':_0x10cf(0x5a),'QCEei':_0x10cf(0x5b),'ZAsLg':function(_0x519a2b,_0x5ab40b){return _0x519a2b(_0x5ab40b);},'cpXcv':_0x10cf(0x20)};try{if(_0x3fef93[_0x10cf(0x5c)](_0x3fef93[_0x10cf(0x5d)],_0x3fef93[_0x10cf(0x5e)]))return await _0x3fef93[_0x10cf(0x5f)](safeResetGenericPassword,{'service':STORAGE_KEYS[_0x10cf(0x36)]}),!![];else{if(!_0x3fef93[_0x10cf(0x60)](_0x2ce808))return!![];return!![];}}catch(_0x39e4a3){return _0x3fef93[_0x10cf(0x5c)](_0x10cf(0x61),_0x10cf(0x62))?(console['error'](_0x3fef93[_0x10cf(0x63)],_0x39e4a3),![]):(_0x549813[_0x10cf(0x29)](_0x3fef93[_0x10cf(0x64)],_0x2f7fe4),!![]);}};export const updateCredentials=async _0x489616=>{const _0x3176ac={'adIrn':function(_0x366016,_0x139e84){return _0x366016(_0x139e84);}};return _0x3176ac['adIrn'](storeCredentials,_0x489616);};export const generateDeviceUsername=()=>{const _0x3aa5c1=Math[_0x10cf(0x65)]()[_0x10cf(0x66)](0x24)['substring'](0x2,0xa);return _0x10cf(0x67)+_0x3aa5c1;};function _0x10cf(_0x11845d,_0x10cf16){_0x11845d=_0x11845d-0x0;const _0x44ac41=_0x1184();let _0x4467f7=_0x44ac41[_0x11845d];return _0x4467f7;}export const verifyCredentials=async _0x140600=>{const _0x58240d={'KzXHq':'mock','gJtVm':_0x10cf(0x68),'zjXaY':function(_0x440f59){return _0x440f59();},'ZaTvD':function(_0x123115,_0x5d41c7){return _0x123115===_0x5d41c7;},'Xnzch':_0x10cf(0x69),'FgZfK':'Vagzw'};try{if(_0x58240d[_0x10cf(0x6a)]==='LzPyf')return![];else{if(!_0x58240d[_0x10cf(0x6b)](isKeychainAvailable))return _0x58240d[_0x10cf(0x6c)](_0x58240d[_0x10cf(0x6d)],_0x58240d[_0x10cf(0x6d)])?!![]:_0x41f01b[_0x10cf(0x55)](_0x30bb91[_0x10cf(0x56)]);return!![];}}catch(_0x57231b){if(_0x58240d[_0x10cf(0x6e)]!==_0x10cf(0x6f))return console[_0x10cf(0x29)](_0x10cf(0x70),_0x57231b),![];else _0x30838d[_0x10cf(0x1)]('react-native-keychain module not available, using mock storage'),Keychain={'ACCESS_CONTROL':{'BIOMETRY_ANY_OR_DEVICE_PASSCODE':_0x58240d[_0x10cf(0x71)]},'ACCESSIBLE':{'WHEN_UNLOCKED':'mock'},'getGenericPassword':async()=>null,'setGenericPassword':async()=>!![],'resetGenericPassword':async()=>!![]};}};export const getJWT=async()=>{const _0x492f8f={'VCTLn':_0x10cf(0x72),'zVmBM':function(_0x3fd55e,_0x2aeeac){return _0x3fd55e===_0x2aeeac;},'SufCg':_0x10cf(0x73)};try{const _0x3d3871=await AsyncStorage[_0x10cf(0x74)](JWT_TOKEN_KEY);return _0x3d3871;}catch(_0x598199){return _0x492f8f[_0x10cf(0x75)](_0x492f8f[_0x10cf(0x76)],_0x492f8f['SufCg'])?(console[_0x10cf(0x29)](_0x492f8f[_0x10cf(0x77)],_0x598199),null):(_0x7a7dff['error'](_0x492f8f[_0x10cf(0x77)],_0x34767d),null);}};export const hasJWT=async()=>{const _0x6b791d={'EsOVi':function(_0x3e00cb,_0x2140e7){return _0x3e00cb!==_0x2140e7;},'QHCpP':'oJdpJ','Fezrq':_0x10cf(0x78)};try{if(_0x6b791d[_0x10cf(0x79)](_0x6b791d[_0x10cf(0x7a)],_0x6b791d[_0x10cf(0x7a)]))_0x1d145c+='=';else{const _0x5ebc14=await AsyncStorage[_0x10cf(0x74)](JWT_TOKEN_KEY);return!!_0x5ebc14;}}catch(_0x17e21d){return console[_0x10cf(0x29)](_0x6b791d[_0x10cf(0x7b)],_0x17e21d),![];}};export const clearJWT=async()=>{const _0x2da794={'TXjzK':function(_0x5508c9,_0x590f1e){return _0x5508c9%_0x590f1e;},'HSmjq':function(_0xeb36b8,_0x13d525){return _0xeb36b8<_0x13d525;},'lUtPH':function(_0x3a68ac,_0x421b54){return _0x3a68ac+_0x421b54;},'biRhm':function(_0xab1ad6,_0xc124e){return _0xab1ad6|_0xc124e;},'hydpF':function(_0x2c0940,_0x356e7e){return _0x2c0940|_0x356e7e;},'Tirfc':function(_0x2717ff,_0x56f135){return _0x2717ff<<_0x56f135;},'OIQOo':function(_0x2c4c07,_0x2d6e5a){return _0x2c4c07<<_0x2d6e5a;},'QwFpU':function(_0x1ee1bc,_0x556220){return _0x1ee1bc<<_0x556220;},'lqQDy':function(_0x4728e9,_0x30f65e){return _0x4728e9&_0x30f65e;},'fPXkV':function(_0x983236,_0x513a23){return _0x983236>>_0x513a23;},'PRrQT':function(_0x11ba58,_0x57f62c){return _0x11ba58!==_0x57f62c;},'sIVbe':function(_0x17f1c7,_0x36fe48){return _0x17f1c7&_0x36fe48;},'hTcSj':function(_0x1d2467,_0x4ce3f5){return _0x1d2467!==_0x4ce3f5;},'zuCmJ':function(_0x2a032c,_0x1429e9){return _0x2a032c&_0x1429e9;},'GNKDn':function(_0x3eb0f4,_0x85356e){return _0x3eb0f4===_0x85356e;},'ypnFx':_0x10cf(0x7c),'xAldE':_0x10cf(0x7d),'ktWmo':'rkrGY','XmRKH':_0x10cf(0x4c)};try{if(_0x2da794[_0x10cf(0x7e)]('oMSqt',_0x2da794['ypnFx']))_0x5ebb46[_0x10cf(0x3b)]=Keychain[_0x10cf(0x7f)][_0x10cf(0x3c)],_0xc32c65['accessible']=Keychain[_0x10cf(0x80)][_0x10cf(0x3e)];else return await AsyncStorage[_0x10cf(0x81)](JWT_TOKEN_KEY),console[_0x10cf(0x82)](_0x2da794[_0x10cf(0x83)]),!![];}catch(_0x1833fc){if(_0x2da794[_0x10cf(0x7e)](_0x10cf(0x84),_0x2da794['ktWmo'])){while(_0x2da794['TXjzK'](_0xf21651[_0x10cf(0x85)],0x4)){_0x5896f0+='=';}const _0x223617='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';let _0x5b57a4='';for(let _0x585edc=0x0;_0x2da794[_0x10cf(0x86)](_0x585edc,_0x1ee752[_0x10cf(0x85)]);_0x585edc+=0x4){const _0x4a1d15=_0x223617[_0x10cf(0x3f)](_0x459477[_0x10cf(0x40)](_0x585edc)),_0x480034=_0x223617[_0x10cf(0x3f)](_0x53abde[_0x10cf(0x40)](_0x2da794[_0x10cf(0x87)](_0x585edc,0x1))),_0x1e8c0d=_0x223617[_0x10cf(0x3f)](_0x485dd9[_0x10cf(0x40)](_0x2da794['lUtPH'](_0x585edc,0x2))),_0x591eff=_0x223617['indexOf'](_0x1a6aab['charAt'](_0x2da794['lUtPH'](_0x585edc,0x3))),_0x704d75=_0x2da794[_0x10cf(0x88)](_0x2da794[_0x10cf(0x89)](_0x2da794[_0x10cf(0x88)](_0x2da794[_0x10cf(0x8a)](_0x4a1d15,0x12),_0x2da794[_0x10cf(0x8b)](_0x480034,0xc)),_0x2da794[_0x10cf(0x8c)](_0x1e8c0d,0x6)),_0x591eff);_0x5b57a4+=_0x5dbe26[_0x10cf(0x48)](_0x2da794['lqQDy'](_0x2da794[_0x10cf(0x8d)](_0x704d75,0x10),0xff));if(_0x2da794[_0x10cf(0x8e)](_0x1e8c0d,0x40))_0x5b57a4+=_0x27cbcd['fromCharCode'](_0x2da794[_0x10cf(0x8f)](_0x2da794[_0x10cf(0x8d)](_0x704d75,0x8),0xff));if(_0x2da794[_0x10cf(0x90)](_0x591eff,0x40))_0x5b57a4+=_0x4e6f1f[_0x10cf(0x48)](_0x2da794[_0x10cf(0x91)](_0x704d75,0xff));}return _0x5b57a4;}else return console['error'](_0x2da794[_0x10cf(0x92)],_0x1833fc),![];}};const base64Decode=_0x324f87=>{const _0x13f5d1={'GbScJ':function(_0xcbe670,_0x3e74ad){return _0xcbe670===_0x3e74ad;},'ODMMC':_0x10cf(0x4),'cLwqN':function(_0x431b2d,_0x53954b){return _0x431b2d%_0x53954b;},'XHbPd':_0x10cf(0x93),'BupSV':function(_0x83db3,_0x1c0ece){return _0x83db3<_0x1c0ece;},'mmxFe':'jquGy','uhrXM':function(_0x130442,_0x58c18f){return _0x130442+_0x58c18f;},'TamIL':function(_0x3060f8,_0x56153c){return _0x3060f8|_0x56153c;},'BEcMb':function(_0x3388de,_0x4b0a21){return _0x3388de|_0x4b0a21;},'OnByC':function(_0x2ef881,_0x22d7a4){return _0x2ef881<<_0x22d7a4;},'MqJXD':function(_0x4f4502,_0x4ed971){return _0x4f4502<<_0x4ed971;},'GORIu':function(_0x365aa4,_0x3bf518){return _0x365aa4&_0x3bf518;},'pXIUt':function(_0x1a30ab,_0x4a1a58){return _0x1a30ab>>_0x4a1a58;},'ZIdZl':function(_0x187751,_0x52a6a8){return _0x187751!==_0x52a6a8;}};while(_0x13f5d1[_0x10cf(0x94)](_0x324f87[_0x10cf(0x85)],0x4)){_0x324f87+='=';}const _0x244d4c=_0x13f5d1[_0x10cf(0x95)];let _0xef72f9='';for(let _0x57b812=0x0;_0x13f5d1['BupSV'](_0x57b812,_0x324f87[_0x10cf(0x85)]);_0x57b812+=0x4){if(_0x13f5d1['mmxFe']===_0x10cf(0x96)){const _0x24b8bc=_0x244d4c[_0x10cf(0x3f)](_0x324f87['charAt'](_0x57b812)),_0x40532d=_0x244d4c['indexOf'](_0x324f87[_0x10cf(0x40)](_0x13f5d1['uhrXM'](_0x57b812,0x1))),_0x3ffa44=_0x244d4c[_0x10cf(0x3f)](_0x324f87[_0x10cf(0x40)](_0x57b812+0x2)),_0x4c76c6=_0x244d4c[_0x10cf(0x3f)](_0x324f87['charAt'](_0x13f5d1[_0x10cf(0x97)](_0x57b812,0x3))),_0x2a52d4=_0x13f5d1[_0x10cf(0x98)](_0x13f5d1[_0x10cf(0x98)](_0x13f5d1[_0x10cf(0x99)](_0x13f5d1[_0x10cf(0x9a)](_0x24b8bc,0x12),_0x13f5d1['MqJXD'](_0x40532d,0xc)),_0x3ffa44<<0x6),_0x4c76c6);_0xef72f9+=String[_0x10cf(0x48)](_0x13f5d1['GORIu'](_0x2a52d4>>0x10,0xff));if(_0x3ffa44!==0x40)_0xef72f9+=String[_0x10cf(0x48)](_0x13f5d1[_0x10cf(0x9b)](_0x13f5d1[_0x10cf(0x9c)](_0x2a52d4,0x8),0xff));if(_0x13f5d1['ZIdZl'](_0x4c76c6,0x40))_0xef72f9+=String[_0x10cf(0x48)](_0x13f5d1[_0x10cf(0x9b)](_0x2a52d4,0xff));}else try{return Keychain&&_0x13f5d1['GbScJ'](typeof Keychain[_0x10cf(0x9)],_0x13f5d1[_0x10cf(0x9d)]);}catch(_0x172030){return![];}}return _0xef72f9;};export const getJWTPayload=async()=>{const _0x428874={'XdcWV':function(_0x217641,_0x1380ed){return _0x217641(_0x1380ed);},'hTYiH':_0x10cf(0x9e)};try{const _0x5a9c89=await getJWT();if(!_0x5a9c89)return null;const _0x3e3adb=_0x5a9c89[_0x10cf(0x9f)]('.');if(_0x3e3adb[_0x10cf(0x85)]!==0x3)return null;const _0xbccc8a=_0x428874['XdcWV'](base64Decode,_0x3e3adb[0x1]),_0x376583=JSON[_0x10cf(0x55)](_0xbccc8a);return _0x376583;}catch(_0x3e45c5){return console[_0x10cf(0x29)](_0x428874[_0x10cf(0xa0)],_0x3e45c5),null;}};export const isJWTExpired=async()=>{const _0x53eb7d={'OmYJJ':'❌\x20Failed\x20to\x20check\x20JWT\x20token:','EdaBB':function(_0x193ef9,_0x2393cb){return _0x193ef9===_0x2393cb;},'LSHXH':function(_0x1c98cc,_0x1d12fa){return _0x1c98cc===_0x1d12fa;},'vBnHV':_0x10cf(0xb),'mLsaV':function(_0x48e726,_0x381e59){return _0x48e726!==_0x381e59;},'vfWNl':_0x10cf(0xa1),'MyqfS':function(_0x42a24f){return _0x42a24f();},'qhORu':function(_0x3eda13,_0x4d7d2b){return _0x3eda13<_0x4d7d2b;},'mVeCV':_0x10cf(0xa2),'cckwE':_0x10cf(0xa3)};try{if(_0x53eb7d[_0x10cf(0xa4)](_0x53eb7d[_0x10cf(0xa5)],_0x53eb7d[_0x10cf(0xa5)]))return _0x439ec7[_0x10cf(0x29)](_0x53eb7d[_0x10cf(0xa6)],_0x19746a),![];else{const _0xb6f341=await _0x53eb7d[_0x10cf(0xa7)](getJWTPayload);if(!_0xb6f341||!_0xb6f341[_0x10cf(0xa8)])return!![];const _0x47fdb5=Math['floor'](Date[_0x10cf(0x33)]()/0x3e8);return _0x53eb7d[_0x10cf(0xa9)](_0xb6f341[_0x10cf(0xa8)],_0x47fdb5);}}catch(_0x35d299){if(_0x53eb7d['mLsaV'](_0x10cf(0xa2),_0x53eb7d[_0x10cf(0xaa)])){const _0x2a00c5=(_0x53eb7d[_0x10cf(0xab)](_0x4a3a19,null)||_0x53eb7d[_0x10cf(0xac)](_0x294621,void 0x0)?void 0x0:_0x5e753c[_0x10cf(0x10)])||_0x53eb7d[_0x10cf(0xad)];return _0x32c481[_0x2a00c5]||null;}else return console[_0x10cf(0x29)](_0x53eb7d[_0x10cf(0xae)],_0x35d299),!![];}};
|
|
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
|
-
function _0x448e(){const _0x440232=['\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'];_0x448e=function(){return _0x440232;};return _0x448e();}export const CHATGPT_CONSENT_POPUP_SCRIPT=_0x4004(0x0);export const CHATGPT_EXPORT_SCRIPT=_0x4004(0x1);export const CHATGPT_SUCCESS_SCRIPT=_0x4004(0x2);function _0x4004(_0x448e28,_0x4004b4){_0x448e28=_0x448e28-0x0;const _0x157b56=_0x448e();let _0xeec2a0=_0x157b56[_0x448e28];return _0xeec2a0;}export const CHATGPT_ERROR_SCRIPT=_0x4004(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);
|