@onairos/react-native 3.7.1 โ 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/api/index.js +219 -9
- package/lib/commonjs/assets/icons/spotify.png +0 -0
- package/lib/commonjs/assets/images/spotify.png +0 -0
- package/lib/commonjs/components/BodyText.js +27 -9
- package/lib/commonjs/components/BrandMark.js +111 -10
- package/lib/commonjs/components/CodeInput.js +116 -9
- package/lib/commonjs/components/EmailInput.js +30 -8
- package/lib/commonjs/components/GoogleButton.js +56 -9
- package/lib/commonjs/components/HeadingGroup.js +43 -9
- package/lib/commonjs/components/LLMDataInputModal.js +664 -14
- package/lib/commonjs/components/ModalHeader.js +99 -9
- package/lib/commonjs/components/ModalSheet.js +47 -9
- package/lib/commonjs/components/Onairos.js +380 -14
- package/lib/commonjs/components/OnairosButton.js +313 -13
- package/lib/commonjs/components/OnairosSignInButton.js +130 -12
- package/lib/commonjs/components/Overlay.js +465 -13
- package/lib/commonjs/components/PersonaImage.js +137 -10
- package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
- package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
- package/lib/commonjs/components/PinCreationScreen.js +403 -12
- package/lib/commonjs/components/PinInput.js +464 -9
- package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
- package/lib/commonjs/components/PlatformList.js +137 -10
- package/lib/commonjs/components/PlatformToggle.js +180 -9
- package/lib/commonjs/components/PrimaryButton.js +180 -10
- package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
- package/lib/commonjs/components/SignInStep.js +345 -12
- package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
- package/lib/commonjs/components/VerificationStep.js +176 -11
- package/lib/commonjs/components/WelcomeScreen.js +461 -22
- package/lib/commonjs/components/icons/Basicproficon.js +37 -8
- package/lib/commonjs/components/icons/Basicprofile.js +21 -8
- package/lib/commonjs/components/icons/Checkbox.js +21 -8
- package/lib/commonjs/components/icons/Checkmark.js +27 -8
- package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
- package/lib/commonjs/components/icons/Contenticon.js +39 -8
- package/lib/commonjs/components/icons/EnochE.js +41 -8
- package/lib/commonjs/components/icons/Personalityicon.js +30 -8
- package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
- package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
- package/lib/commonjs/components/icons/Userpreferences.js +21 -8
- package/lib/commonjs/components/icons/index.js +84 -17
- package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
- package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
- package/lib/commonjs/components/onboarding/PinInput.js +283 -10
- package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
- package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
- package/lib/commonjs/config/api.js +56 -7
- package/lib/commonjs/constants/index.js +120 -7
- package/lib/commonjs/context/AuthContext.js +345 -10
- package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
- package/lib/commonjs/hooks/useConnections.js +102 -8
- package/lib/commonjs/hooks/useCredentials.js +178 -10
- package/lib/commonjs/hooks/useUserConnections.js +148 -10
- package/lib/commonjs/index.js +439 -34
- package/lib/commonjs/services/apiClient.js +298 -8
- package/lib/commonjs/services/biometricPinService.js +180 -8
- package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
- package/lib/commonjs/services/chatGPTConversationService.js +275 -9
- package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
- package/lib/commonjs/services/claudeConversationService.js +158 -9
- package/lib/commonjs/services/connectedAccountsService.js +310 -10
- package/lib/commonjs/services/googleAuthService.js +252 -11
- package/lib/commonjs/services/hingeDataExtractor.js +105 -8
- package/lib/commonjs/services/hingeDataService.js +150 -9
- package/lib/commonjs/services/imageCompressionService.js +260 -7
- package/lib/commonjs/services/instagramDataExtractor.js +126 -8
- package/lib/commonjs/services/instagramDataService.js +163 -9
- package/lib/commonjs/services/jwtStorageService.js +276 -7
- package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
- package/lib/commonjs/services/linkedinProfileService.js +222 -9
- package/lib/commonjs/services/linkedinScrapingService.js +230 -8
- package/lib/commonjs/services/llmDataStorage.js +294 -8
- package/lib/commonjs/services/mobileTrainingService.js +186 -8
- package/lib/commonjs/services/netflixDataExtractor.js +120 -8
- package/lib/commonjs/services/netflixDataService.js +198 -9
- package/lib/commonjs/services/pinEncryptionService.js +84 -8
- package/lib/commonjs/services/pinStorageUtils.js +105 -7
- package/lib/commonjs/services/platformAuthService.js +1484 -12
- package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
- package/lib/commonjs/services/sephoraDataService.js +200 -9
- package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
- package/lib/commonjs/services/spotifyDataService.js +241 -9
- package/lib/commonjs/services/storageService.js +404 -8
- package/lib/commonjs/services/telegramDataExtractor.js +115 -8
- package/lib/commonjs/services/telegramDataService.js +499 -9
- package/lib/commonjs/services/trainingApiHelpers.js +73 -7
- package/lib/commonjs/services/userConnectionsService.js +340 -10
- package/lib/commonjs/services/youtubeMigrationService.js +416 -10
- package/lib/commonjs/theme/index.js +250 -7
- package/lib/commonjs/types/ambient.d.js +2 -1
- package/lib/commonjs/types/declarations.d.js +2 -1
- package/lib/commonjs/types/index.js +6 -1
- package/lib/commonjs/types/node-fix.d.js +2 -1
- package/lib/commonjs/types/node-override.d.js +2 -1
- package/lib/commonjs/types/opacity.d.js +2 -1
- package/lib/commonjs/types.js +14 -1
- package/lib/commonjs/utils/Portal.js +98 -8
- package/lib/commonjs/utils/api.js +130 -9
- package/lib/commonjs/utils/assetRegistry.js +210 -35
- package/lib/commonjs/utils/auth.js +112 -9
- package/lib/commonjs/utils/connectorTests.js +613 -29
- package/lib/commonjs/utils/crypto.js +62 -8
- package/lib/commonjs/utils/debugHelper.js +64 -1
- package/lib/commonjs/utils/encryption.js +76 -7
- package/lib/commonjs/utils/eventUtils.js +288 -1
- package/lib/commonjs/utils/haptics.js +66 -9
- package/lib/commonjs/utils/imagePreloader.js +6 -1
- package/lib/commonjs/utils/networkDiagnostics.js +226 -8
- package/lib/commonjs/utils/onairosApi.js +350 -9
- package/lib/commonjs/utils/programmaticFlow.js +117 -9
- package/lib/commonjs/utils/retryHelper.js +220 -1
- package/lib/commonjs/utils/secureStorage.js +349 -10
- package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
- package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
- package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
- package/lib/commonjs/utils/webviewScripts/index.js +698 -15
- package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
- package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
- package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
- package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
- package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
- package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
- package/lib/module/api/index.js +211 -1
- package/lib/module/assets/icons/spotify.png +0 -0
- package/lib/module/assets/images/spotify.png +0 -0
- package/lib/module/components/BodyText.js +20 -1
- package/lib/module/components/BrandMark.js +104 -1
- package/lib/module/components/CodeInput.js +109 -1
- package/lib/module/components/EmailInput.js +23 -1
- package/lib/module/components/GoogleButton.js +49 -1
- package/lib/module/components/HeadingGroup.js +36 -1
- package/lib/module/components/LLMDataInputModal.js +656 -7
- package/lib/module/components/ModalHeader.js +92 -1
- package/lib/module/components/ModalSheet.js +39 -1
- package/lib/module/components/Onairos.js +373 -1
- package/lib/module/components/OnairosButton.js +305 -1
- package/lib/module/components/OnairosSignInButton.js +121 -1
- package/lib/module/components/Overlay.js +456 -1
- package/lib/module/components/PersonaImage.js +129 -1
- package/lib/module/components/PersonaLoadingScreen.js +310 -1
- package/lib/module/components/PersonalizationConsentScreen.js +460 -1
- package/lib/module/components/PinCreationScreen.js +396 -1
- package/lib/module/components/PinInput.js +456 -1
- package/lib/module/components/PlatformConnectorsStep.js +1302 -6
- package/lib/module/components/PlatformList.js +129 -1
- package/lib/module/components/PlatformToggle.js +173 -1
- package/lib/module/components/PrimaryButton.js +172 -1
- package/lib/module/components/SignInMatchAnimation.js +189 -1
- package/lib/module/components/SignInStep.js +338 -1
- package/lib/module/components/UniversalOnboarding.js +2770 -1
- package/lib/module/components/VerificationStep.js +168 -1
- package/lib/module/components/WelcomeScreen.js +453 -1
- package/lib/module/components/icons/Basicproficon.js +30 -1
- package/lib/module/components/icons/Basicprofile.js +14 -1
- package/lib/module/components/icons/Checkbox.js +14 -1
- package/lib/module/components/icons/Checkmark.js +20 -1
- package/lib/module/components/icons/Contentanalysis.js +14 -1
- package/lib/module/components/icons/Contenticon.js +32 -1
- package/lib/module/components/icons/EnochE.js +34 -1
- package/lib/module/components/icons/Personalityicon.js +23 -1
- package/lib/module/components/icons/Personalityprofile.js +14 -1
- package/lib/module/components/icons/Personalitytraits.js +14 -1
- package/lib/module/components/icons/Userpreferences.js +14 -1
- package/lib/module/components/icons/index.js +13 -1
- package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
- package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
- package/lib/module/components/onboarding/PinInput.js +274 -1
- package/lib/module/components/onboarding/PlatformConnector.js +240 -1
- package/lib/module/config/PLATFORM_APIS.md +849 -0
- package/lib/module/config/api.js +47 -1
- package/lib/module/constants/index.js +114 -1
- package/lib/module/context/AuthContext.js +335 -1
- package/lib/module/hooks/useConnectedAccounts.js +106 -1
- package/lib/module/hooks/useConnections.js +95 -1
- package/lib/module/hooks/useCredentials.js +171 -6
- package/lib/module/hooks/useUserConnections.js +140 -1
- package/lib/module/index.js +172 -1
- package/lib/module/services/apiClient.js +295 -1
- package/lib/module/services/biometricPinService.js +169 -1
- package/lib/module/services/chatGPTConversationExtractor.js +149 -1
- package/lib/module/services/chatGPTConversationService.js +268 -1
- package/lib/module/services/claudeConversationExtractor.js +97 -1
- package/lib/module/services/claudeConversationService.js +151 -1
- package/lib/module/services/connectedAccountsService.js +293 -1
- package/lib/module/services/googleAuthService.js +241 -1
- package/lib/module/services/hingeDataExtractor.js +99 -1
- package/lib/module/services/hingeDataService.js +143 -1
- package/lib/module/services/imageCompressionService.js +250 -1
- package/lib/module/services/instagramDataExtractor.js +120 -1
- package/lib/module/services/instagramDataService.js +156 -1
- package/lib/module/services/jwtStorageService.js +257 -1
- package/lib/module/services/linkedinDOMExtractor.js +234 -1
- package/lib/module/services/linkedinProfileService.js +210 -1
- package/lib/module/services/linkedinScrapingService.js +219 -1
- package/lib/module/services/llmDataStorage.js +277 -1
- package/lib/module/services/mobileTrainingService.js +173 -1
- package/lib/module/services/netflixDataExtractor.js +114 -1
- package/lib/module/services/netflixDataService.js +191 -1
- package/lib/module/services/pinEncryptionService.js +74 -6
- package/lib/module/services/pinStorageUtils.js +93 -1
- package/lib/module/services/platformAuthService.js +1461 -1
- package/lib/module/services/sephoraDataExtractor.js +134 -1
- package/lib/module/services/sephoraDataService.js +193 -1
- package/lib/module/services/spotifyDataExtractor.js +142 -1
- package/lib/module/services/spotifyDataService.js +234 -1
- package/lib/module/services/storageService.js +383 -1
- package/lib/module/services/telegramDataExtractor.js +109 -1
- package/lib/module/services/telegramDataService.js +493 -1
- package/lib/module/services/trainingApiHelpers.js +67 -1
- package/lib/module/services/userConnectionsService.js +329 -1
- package/lib/module/services/youtubeMigrationService.js +405 -1
- package/lib/module/theme/index.js +245 -1
- package/lib/module/types.js +10 -1
- package/lib/module/utils/Portal.js +90 -1
- package/lib/module/utils/api.js +118 -1
- package/lib/module/utils/assetRegistry.js +200 -34
- package/lib/module/utils/auth.js +100 -1
- package/lib/module/utils/connectorTests.js +600 -27
- package/lib/module/utils/crypto.js +54 -1
- package/lib/module/utils/debugHelper.js +54 -1
- package/lib/module/utils/encryption.js +67 -1
- package/lib/module/utils/eventUtils.js +270 -1
- package/lib/module/utils/haptics.js +59 -8
- package/lib/module/utils/imagePreloader.js +3 -1
- package/lib/module/utils/networkDiagnostics.js +217 -1
- package/lib/module/utils/onairosApi.js +333 -1
- package/lib/module/utils/programmaticFlow.js +111 -1
- package/lib/module/utils/retryHelper.js +211 -1
- package/lib/module/utils/secureStorage.js +330 -6
- package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
- package/lib/module/utils/webviewScripts/claude.js +370 -1
- package/lib/module/utils/webviewScripts/hinge.js +405 -1
- package/lib/module/utils/webviewScripts/index.js +434 -1
- package/lib/module/utils/webviewScripts/instagram.js +448 -1
- package/lib/module/utils/webviewScripts/linkedin.js +874 -1
- package/lib/module/utils/webviewScripts/netflix.js +376 -1
- package/lib/module/utils/webviewScripts/sephora.js +510 -1
- package/lib/module/utils/webviewScripts/spotify.js +413 -1
- package/lib/module/utils/webviewScripts/telegram.js +672 -1
- package/package.json +2 -2
|
@@ -1,29 +1,613 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Object[_0x428b(0x0)](exports,_0x428b(0x1),{'value':!![]}),exports[_0x428b(0x2)]=exports[_0x428b(0x3)]=exports[_0x428b(0x4)]=exports['testPlatformConnector']=exports['testExtractorImports']=exports[_0x428b(0x5)]=exports[_0x428b(0x6)]=void 0x0;function _0x2ea7(){const _0x490a73=['defineProperty','__esModule','testWebViewScriptExports','testServiceImports','testPlatformDetection','testBackendConnectivity','runConnectorSanityTests','chatgpt','webview_scripts','fail','claude','Claude\x20scripts\x20exported\x20correctly','hinge','instagram','Instagram\x20scripts\x20exported\x20correctly','Instagram\x20scripts\x20missing','sephora','Sephora\x20scripts\x20exported\x20correctly','telegram','platform_detection','all','push','oiwgU','YVwME','pass','CzFzv','MyWes','jhojA','LCrnU','UdVNJ','aSMtU','Claude\x20scripts\x20missing','MNfRk','QvhyQ','IdzVe','CsNRI','DCymA','OmYCX','wXlHQ','pXzqZ','cjFKI','Gryda','jMiGP','jZWoR','bJijk','utilities','poqwB','Platform\x20detection\x20functions\x20available','UXxVR','Import\x20error:\x20','message','Hinge\x20scripts\x20missing','Sephora\x20scripts\x20missing','service','Sephora\x20service\x20function\x20available','Export\x20script\x20available','ChatGPT\x20service\x20function\x20available','OPLkz','Claude\x20service\x20function\x20available','PcFVZ','pYxsP','sFEcB','Telegram\x20service\x20function\x20available','CgrOa','GKrpu','qWajc','dVNUH','oUaUy','fGvat','TKcwc','gSPIA','mNDXP','FEROV','EtnQv','EyyDV','HPypg','uOXRQ','uQgiz','xLBaY','hxtuQ','WCZPb','IXDZz','Telegram\x20scripts\x20exported\x20correctly','rGKEq','GLzgT','guAYo','Jfncq','qfZrb','UYuEc','zneOg','function','xkjcj','sDLlO','jGcqT','IJGHw','UbpmD','NosqV','PDFVH','BcCSW','TsKFn','Instagram\x20service\x20function\x20available','HkRkn','GNWye','Export\x20script\x20missing','AOkSQ','extractor','Hinge\x20extractor\x20hook\x20available','Telegram\x20extractor\x20hook\x20available','QfFWD','dqCVp','aPvHZ','wWheB','cJTwC','YFUIC','yYfoF','xinWo','pwALb','KlIuG','nfGfq','testExtractorImports','detection','Hinge\x20detection\x20correct','Hinge\x20detection\x20failed','Sephora\x20detection\x20correct','Sephora\x20detection\x20failed','Telegram\x20detection\x20correct','Telegram\x20detection\x20failed','backend','health','warning','Backend\x20health\x20check\x20passed','OPTIONS','platform_data_endpoint','jQhTq','abort','ZmfKp','API_CONFIG','BASE_URL','/health','signal','HmpEj','FqMWr','TOXkc','xOUnx','kNLuy','Backend\x20returned\x20status\x20','status','IzUmN','GMSjL','yGwDw','nZzLi','Platform\x20data\x20endpoint\x20check:\x20','YfxMO','IwZTX','AaXfv','pfbVY','ncejM','qbkgn','pRgPo','FMYwR','pWgZb','DbkEQ','sJNrU','QOgwb','UTtVN','KhfOL','LSvZI','DRNmy','IVMLw','uSwzB','fMHgl','Detection\x20test\x20error:\x20','Endpoint\x20check\x20failed\x20(may\x20require\x20auth):\x20','storeInstagramData','storeTelegramData','storeSephoraData','vRFyM','Instagram\x20detection\x20correct','Instagram\x20detection\x20failed','zVpZS','NAlRu','DyfMX','Pcdml','BusXG','uJWmf','ilFEx','LbGXZ','zCAeR','lEnfK','MOqzP','WLhgk','BNJgv','TRQZg','cBcPi','dCToY','KFdLq','OJiHU','TCDIZ','LsWrA','JzJBf','MrnSU','vtwSo','oeLDx','fNGkp','๐งช\x20[CONNECTOR_TESTS]\x20Starting\x20connector\x20sanity\x20tests...\x0a','๐\x20Testing\x20WebView\x20script\x20exports...','๐\x20Testing\x20service\x20imports...','๐\x20Testing\x20backend\x20connectivity...','\x0a========================================','========================================\x0a','SKoyO','โ\x20Some\x20tests\x20failed!\x20Please\x20check\x20the\x20errors\x20above.','XlCyY','CtGYm','โ ๏ธ\x20All\x20critical\x20tests\x20passed,\x20but\x20there\x20are\x20warnings.','log','fwAjW','naVtZ','mnrWE','jbaFs','mmjME','AcVEI','filter','length','DsOCn','TWUbE','WWpul','Fiskq','hcObq','platform','toUpperCase','๐\x20Summary:\x20','\x20passed,\x20','\x20failed,\x20','\x20warnings','KEdRF','JkKpP','hNMsG','YpbBO','ViOza','UwLSS','xACdd','HWwnn','Hinge\x20scripts\x20exported\x20correctly','Telegram\x20scripts\x20missing','khmXd','IFpVD','webview_script','iWyGe','validation','๐งช\x20Testing\x20','\x20connector...\x0a','inckg','UCXMF','TQkFb','nzvpn','oSyct','jxgkI','cGwSt','nqshi','xDyMG','CKCJd','_EXPORT_SCRIPT','tMYHZ','TMuCC','LzAoI','unLwF','KuBEB','ynQVZ','ZsBvQ','HldBq','Service\x20function\x20','\x20available','Service\x20import\x20failed:\x20','dDKEV','use','charAt','DataExtractor','dEvWO','BvSZB','AgZTL','Extractor\x20hook\x20','IorHG','Extractor\x20import\x20failed:\x20','uVOhP','ChatGPT\x20scripts\x20exported\x20correctly','ChatGPT\x20scripts\x20missing','KElGe','haGal','LgaBT','EXKIp','xYPsR','CrjXH','qwBnj','VSuUy','ohLvx','Unknown\x20platform:\x20','.\x20Use\x20\x27hinge\x27,\x20\x27instagram\x27,\x20\x27sephora\x27,\x20or\x20\x27telegram\x27.','component','testPlatformConnector'];_0x2ea7=function(){return _0x490a73;};return _0x2ea7();}var _api=__ONAIROS_REQ_FUNC__(0x0);function _0x428b(_0x2ea7e7,_0x428ba9){_0x2ea7e7=_0x2ea7e7-0x0;const _0x517f17=_0x2ea7();let _0x358f53=_0x517f17[_0x2ea7e7];return _0x358f53;}const testWebViewScriptExports=()=>{const _0xca411b={'MNfRk':function(_0x16ed8b,_0x3a845f){return _0x16ed8b(_0x3a845f);},'oiwgU':_0x428b(0x7),'YVwME':_0x428b(0x8),'CzFzv':_0x428b(0x9),'MyWes':'ChatGPT\x20scripts\x20exported\x20correctly','jhojA':'ChatGPT\x20scripts\x20missing','LCrnU':_0x428b(0xa),'UdVNJ':'pass','aSMtU':_0x428b(0xb),'QvhyQ':_0x428b(0xc),'IdzVe':'Hinge\x20scripts\x20missing','CsNRI':function(_0x461e81,_0x655158){return _0x461e81(_0x655158);},'DCymA':_0x428b(0xd),'OmYCX':_0x428b(0xe),'wXlHQ':_0x428b(0xf),'pXzqZ':_0x428b(0x10),'cjFKI':_0x428b(0x11),'Gryda':'Sephora\x20scripts\x20missing','jMiGP':_0x428b(0x12),'jZWoR':'Telegram\x20scripts\x20exported\x20correctly','bJijk':'Telegram\x20scripts\x20missing','poqwB':_0x428b(0x13),'QOCkW':function(_0x2181be,_0x259c5d){return _0x2181be&&_0x259c5d;},'UXxVR':_0x428b(0x14)},_0xf46df1=[];try{const {CHATGPT_CONSENT_POPUP_SCRIPT:_0xb8db89,CHATGPT_EXPORT_SCRIPT:_0x29ed75}=_0xca411b['MNfRk'](__ONAIROS_REQ_FUNC__,0x14);_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x16)],'component':_0xca411b[_0x428b(0x17)],'status':_0x29ed75?_0x428b(0x18):_0xca411b[_0x428b(0x19)],'message':_0x29ed75?_0xca411b[_0x428b(0x1a)]:_0xca411b[_0x428b(0x1b)]});const {CLAUDE_CONSENT_POPUP_SCRIPT:_0x43234f,CLAUDE_EXPORT_SCRIPT:_0x4ac20a}=_0xca411b['MNfRk'](__ONAIROS_REQ_FUNC__,0x13);_0xf46df1['push']({'platform':_0xca411b[_0x428b(0x1c)],'component':_0xca411b[_0x428b(0x17)],'status':_0x4ac20a?_0xca411b[_0x428b(0x1d)]:_0xca411b[_0x428b(0x19)],'message':_0x4ac20a?_0xca411b[_0x428b(0x1e)]:_0x428b(0x1f)});const {HINGE_CONSENT_POPUP_SCRIPT:_0x4fb93a,HINGE_EXPORT_SCRIPT:_0x510e7a}=_0xca411b[_0x428b(0x20)](__ONAIROS_REQ_FUNC__,0x12);_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x21)],'component':_0xca411b[_0x428b(0x17)],'status':_0x510e7a?'pass':_0xca411b[_0x428b(0x19)],'message':_0x510e7a?'Hinge\x20scripts\x20exported\x20correctly':_0xca411b[_0x428b(0x22)]});const {INSTAGRAM_CONSENT_POPUP_SCRIPT:_0x539974,INSTAGRAM_EXPORT_SCRIPT:_0x46797d}=_0xca411b[_0x428b(0x23)](__ONAIROS_REQ_FUNC__,0x7);_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x24)],'component':_0xca411b['YVwME'],'status':_0x46797d?_0xca411b[_0x428b(0x1d)]:_0xca411b[_0x428b(0x19)],'message':_0x46797d?_0xca411b[_0x428b(0x25)]:_0xca411b[_0x428b(0x26)]});const {SEPHORA_CONSENT_POPUP_SCRIPT:_0xf4dfb2,SEPHORA_EXPORT_SCRIPT:_0x5b7f57}=_0xca411b[_0x428b(0x20)](__ONAIROS_REQ_FUNC__,0x6);_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x27)],'component':_0x428b(0x8),'status':_0x5b7f57?_0xca411b[_0x428b(0x1d)]:_0xca411b['CzFzv'],'message':_0x5b7f57?_0xca411b[_0x428b(0x28)]:_0xca411b[_0x428b(0x29)]});const {TELEGRAM_CONSENT_POPUP_SCRIPT:_0x29c153,TELEGRAM_EXPORT_SCRIPT:_0xa468e6}=__ONAIROS_REQ_FUNC__(0x5);_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x2a)],'component':_0x428b(0x8),'status':_0xa468e6?_0xca411b[_0x428b(0x1d)]:_0xca411b[_0x428b(0x19)],'message':_0xa468e6?_0xca411b[_0x428b(0x2b)]:_0xca411b[_0x428b(0x2c)]});const {isWebViewExtractionPlatform:_0x899d9d,isHingePlatform:_0x28fad4,isInstagramPlatform:_0x27afe7,isSephoraPlatform:_0x4fb89f,isTelegramPlatform:_0x3a2d2b}=_0xca411b[_0x428b(0x23)](__ONAIROS_REQ_FUNC__,0x4);_0xf46df1[_0x428b(0x15)]({'platform':_0x428b(0x2d),'component':_0xca411b[_0x428b(0x2e)],'status':_0xca411b['QOCkW'](_0x899d9d,_0x28fad4)&&_0x27afe7&&_0x4fb89f&&_0x3a2d2b?_0xca411b[_0x428b(0x1d)]:_0xca411b[_0x428b(0x19)],'message':_0x428b(0x2f)});}catch(_0x33921f){_0xf46df1[_0x428b(0x15)]({'platform':_0xca411b[_0x428b(0x30)],'component':_0xca411b['YVwME'],'status':_0xca411b[_0x428b(0x19)],'message':_0x428b(0x31)+_0x33921f[_0x428b(0x32)]});}return _0xf46df1;};exports[_0x428b(0x2)]=testWebViewScriptExports;const testServiceImports=()=>{const _0x30339d={'fGvat':function(_0x49ab8d,_0x97cf3c){return _0x49ab8d(_0x97cf3c);},'CgrOa':'chatgpt','TKcwc':'pass','dVNUH':_0x428b(0x9),'gSPIA':'ChatGPT\x20scripts\x20exported\x20correctly','mNDXP':_0x428b(0xa),'uQgiz':_0x428b(0x8),'KOYCJ':_0x428b(0xb),'FEROV':'Claude\x20scripts\x20missing','EtnQv':function(_0x1454a2,_0xe2a5d6){return _0x1454a2(_0xe2a5d6);},'hnmRU':'Hinge\x20scripts\x20exported\x20correctly','EqJiu':_0x428b(0x33),'EyyDV':'instagram','HPypg':_0x428b(0xe),'frJHg':'Instagram\x20scripts\x20missing','uOXRQ':_0x428b(0x10),'xLBaY':_0x428b(0x11),'hxtuQ':_0x428b(0x34),'WCZPb':function(_0x199f5c,_0x4ac45c){return _0x199f5c(_0x4ac45c);},'IXDZz':'telegram','rGKEq':'Telegram\x20scripts\x20missing','ifsng':'utilities','GLzgT':_0x428b(0x13),'guAYo':function(_0x3d9b61,_0x4c72bb){return _0x3d9b61&&_0x4c72bb;},'Jfncq':'Platform\x20detection\x20functions\x20available','qfZrb':_0x428b(0x14),'IJGHw':function(_0x36716e,_0x98c1ba){return _0x36716e(_0x98c1ba);},'UbpmD':'hinge','qWajc':'function','NosqV':'Hinge\x20service\x20function\x20available','ajlHc':function(_0x1b7383,_0x172d50){return _0x1b7383(_0x172d50);},'jGcqT':_0x428b(0x35),'zneOg':function(_0x83bd7a,_0x7b3b9e){return _0x83bd7a===_0x7b3b9e;},'BcCSW':_0x428b(0x36),'GNWye':'webview_script','adXLd':_0x428b(0x37),'GKrpu':function(_0x21b559,_0x144109){return _0x21b559===_0x144109;},'wPGkp':_0x428b(0x38),'pupzD':function(_0x3ca9e5,_0xe4f2dc){return _0x3ca9e5===_0xe4f2dc;},'LLJEC':_0x428b(0x39),'UYuEc':function(_0x141599,_0x45a923){return _0x141599(_0x45a923);},'xkjcj':_0x428b(0x3a),'sDLlO':_0x428b(0x3b),'dMrfF':_0x428b(0x3c),'TsKFn':function(_0x36e1a2,_0xef3ddb){return _0x36e1a2===_0xef3ddb;},'TEarJ':function(_0x52b1fd,_0x2de209){return _0x52b1fd===_0x2de209;},'HkRkn':_0x428b(0x3d),'AOkSQ':function(_0x20e2c6,_0x4d8993){return _0x20e2c6===_0x4d8993;},'BnUAK':_0x428b(0x3e)},_0x4c2f83=[];try{const {storeChatGPTConversations:_0x2a105a}=__ONAIROS_REQ_FUNC__(0x8);_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x3f)],'component':_0x30339d['jGcqT'],'status':_0x30339d[_0x428b(0x40)](typeof _0x2a105a,_0x30339d[_0x428b(0x41)])?_0x428b(0x18):_0x30339d[_0x428b(0x42)],'message':_0x30339d['wPGkp']});}catch(_0x2f34ac){_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d['CgrOa'],'component':_0x30339d['jGcqT'],'status':'fail','message':_0x428b(0x31)+_0x2f34ac[_0x428b(0x32)]});}try{if(_0x30339d['pupzD'](_0x428b(0x43),_0x30339d['LLJEC'])){const _0x40a6c9=[];try{const {CHATGPT_CONSENT_POPUP_SCRIPT:_0x2a0435,CHATGPT_EXPORT_SCRIPT:_0x5651fd}=_0x30339d[_0x428b(0x44)](_0x130655,0x14);_0x40a6c9['push']({'platform':_0x30339d['CgrOa'],'component':_0x428b(0x8),'status':_0x5651fd?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x5651fd?_0x30339d[_0x428b(0x46)]:'ChatGPT\x20scripts\x20missing'});const {CLAUDE_CONSENT_POPUP_SCRIPT:_0x54ebcb,CLAUDE_EXPORT_SCRIPT:_0x809e90}=_0x540e4e(0x13);_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x47)],'component':_0x30339d['uQgiz'],'status':_0x809e90?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x809e90?_0x30339d['KOYCJ']:_0x30339d[_0x428b(0x48)]});const {HINGE_CONSENT_POPUP_SCRIPT:_0x3f7e3d,HINGE_EXPORT_SCRIPT:_0x5d1f78}=_0x30339d[_0x428b(0x49)](_0x510856,0x12);_0x40a6c9['push']({'platform':_0x428b(0xc),'component':_0x428b(0x8),'status':_0x5d1f78?_0x30339d['TKcwc']:_0x30339d[_0x428b(0x42)],'message':_0x5d1f78?_0x30339d['hnmRU']:_0x30339d['EqJiu']});const {INSTAGRAM_CONSENT_POPUP_SCRIPT:_0x41af0e,INSTAGRAM_EXPORT_SCRIPT:_0x4bf8cb}=_0x30339d['fGvat'](_0x2ff322,0x7);_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x4a)],'component':_0x30339d['uQgiz'],'status':_0x4bf8cb?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x4bf8cb?_0x30339d[_0x428b(0x4b)]:_0x30339d['frJHg']});const {SEPHORA_CONSENT_POPUP_SCRIPT:_0x4aa48e,SEPHORA_EXPORT_SCRIPT:_0xa80f42}=_0x30339d[_0x428b(0x49)](_0x1c4558,0x6);_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x4c)],'component':_0x30339d[_0x428b(0x4d)],'status':_0xa80f42?_0x30339d[_0x428b(0x45)]:'fail','message':_0xa80f42?_0x30339d[_0x428b(0x4e)]:_0x30339d[_0x428b(0x4f)]});const {TELEGRAM_CONSENT_POPUP_SCRIPT:_0x5064c5,TELEGRAM_EXPORT_SCRIPT:_0x4da7c0}=_0x30339d[_0x428b(0x50)](_0x17557b,0x5);_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x51)],'component':_0x30339d[_0x428b(0x4d)],'status':_0x4da7c0?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x4da7c0?_0x428b(0x52):_0x30339d[_0x428b(0x53)]});const {isWebViewExtractionPlatform:_0xb2d539,isHingePlatform:_0x481115,isInstagramPlatform:_0x276e03,isSephoraPlatform:_0x3cc7f8,isTelegramPlatform:_0x5ba10e}=_0x30339d[_0x428b(0x50)](_0x9350c0,0x4);_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d['ifsng'],'component':_0x30339d[_0x428b(0x54)],'status':_0x30339d[_0x428b(0x55)](_0xb2d539,_0x481115)&&_0x276e03&&_0x3cc7f8&&_0x5ba10e?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x30339d[_0x428b(0x56)]});}catch(_0x5594c9){_0x40a6c9[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x57)],'component':_0x30339d[_0x428b(0x4d)],'status':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x31)+_0x5594c9[_0x428b(0x32)]});}return _0x40a6c9;}else{const {storeClaudeConversations:_0x507809}=_0x30339d[_0x428b(0x58)](__ONAIROS_REQ_FUNC__,0x9);_0x4c2f83[_0x428b(0x15)]({'platform':'claude','component':_0x428b(0x35),'status':_0x30339d[_0x428b(0x59)](typeof _0x507809,_0x428b(0x5a))?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x30339d[_0x428b(0x5b)]});}}catch(_0x552184){if(_0x30339d[_0x428b(0x59)](_0x428b(0x3b),_0x30339d[_0x428b(0x5c)]))_0x4c2f83['push']({'platform':_0x30339d[_0x428b(0x47)],'component':_0x30339d[_0x428b(0x5d)],'status':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x31)+_0x552184['message']});else{const {storeHingeData:_0x4c9524}=_0x30339d[_0x428b(0x5e)](_0x362399,0xa);_0x56cedf['push']({'platform':_0x30339d[_0x428b(0x5f)],'component':'service','status':typeof _0x4c9524===_0x30339d['qWajc']?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x30339d[_0x428b(0x60)]});}}try{if(_0x30339d['dMrfF']!==_0x428b(0x61)){const {storeHingeData:_0xba3ec6}=__ONAIROS_REQ_FUNC__(0xa);_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x5f)],'component':_0x30339d[_0x428b(0x5d)],'status':_0x30339d['zneOg'](typeof _0xba3ec6,_0x30339d['qWajc'])?_0x30339d[_0x428b(0x45)]:_0x30339d['dVNUH'],'message':_0x30339d[_0x428b(0x60)]});}else{const {storeSephoraData:_0x14afbf}=_0x30339d['ajlHc'](_0x531c9a,0xc);_0x3bd36b[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x4c)],'component':_0x30339d[_0x428b(0x5d)],'status':_0x30339d[_0x428b(0x59)](typeof _0x14afbf,_0x30339d[_0x428b(0x41)])?_0x428b(0x18):_0x30339d[_0x428b(0x42)],'message':_0x30339d[_0x428b(0x62)]});}}catch(_0x3bbea8){_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x5f)],'component':_0x30339d['jGcqT'],'status':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x31)+_0x3bbea8[_0x428b(0x32)]});}try{const {storeInstagramData:_0x365bec}=__ONAIROS_REQ_FUNC__(0xb);_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d['EyyDV'],'component':_0x30339d[_0x428b(0x5d)],'status':_0x30339d[_0x428b(0x63)](typeof _0x365bec,_0x30339d[_0x428b(0x41)])?'pass':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x64)});}catch(_0x480e82){_0x4c2f83['push']({'platform':_0x30339d[_0x428b(0x4a)],'component':_0x30339d['jGcqT'],'status':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x31)+_0x480e82[_0x428b(0x32)]});}try{const {storeSephoraData:_0x34ca6b}=__ONAIROS_REQ_FUNC__(0xc);_0x4c2f83['push']({'platform':_0x30339d['uOXRQ'],'component':_0x30339d['jGcqT'],'status':typeof _0x34ca6b===_0x30339d[_0x428b(0x41)]?_0x428b(0x18):_0x30339d[_0x428b(0x42)],'message':_0x30339d[_0x428b(0x62)]});}catch(_0x125983){if(_0x30339d['TEarJ'](_0x30339d[_0x428b(0x65)],_0x30339d[_0x428b(0x65)]))_0x4c2f83['push']({'platform':_0x428b(0x10),'component':_0x30339d[_0x428b(0x5d)],'status':_0x30339d[_0x428b(0x42)],'message':_0x428b(0x31)+_0x125983[_0x428b(0x32)]});else{const _0x39120f=_0x30339d[_0x428b(0x44)](_0x5e9539,0x1),_0x56ac1b=_0x25da56['toUpperCase']()+'_EXPORT_SCRIPT',_0x19f44f=!!_0x39120f[_0x56ac1b];_0x1c90ab[_0x428b(0x15)]({'platform':_0x2e3d1d,'component':_0x30339d[_0x428b(0x66)],'status':_0x19f44f?_0x30339d[_0x428b(0x45)]:_0x30339d[_0x428b(0x42)],'message':_0x19f44f?_0x30339d['adXLd']:_0x428b(0x67)});}}try{const {storeTelegramData:_0x2b966a}=_0x30339d['UYuEc'](__ONAIROS_REQ_FUNC__,0xd);_0x4c2f83[_0x428b(0x15)]({'platform':_0x30339d[_0x428b(0x51)],'component':_0x428b(0x35),'status':_0x30339d[_0x428b(0x68)](typeof _0x2b966a,'function')?'pass':_0x428b(0x9),'message':_0x30339d['BnUAK']});}catch(_0x4dd734){_0x4c2f83['push']({'platform':_0x428b(0x12),'component':_0x30339d[_0x428b(0x5d)],'status':_0x428b(0x9),'message':_0x428b(0x31)+_0x4dd734[_0x428b(0x32)]});}return _0x4c2f83;};exports[_0x428b(0x3)]=testServiceImports;const testExtractorImports=()=>{const _0xfc04aa={'QfFWD':function(_0x3df815,_0xeef4de){return _0x3df815(_0xeef4de);},'dqCVp':_0x428b(0x69),'aPvHZ':function(_0x3fff8f,_0x3fa973){return _0x3fff8f===_0x3fa973;},'wWheB':'function','cJTwC':_0x428b(0x18),'YFUIC':_0x428b(0x6a),'yYfoF':'hinge','xinWo':function(_0x5c6097,_0x2284d7){return _0x5c6097===_0x2284d7;},'pwALb':_0x428b(0x9),'KlIuG':_0x428b(0x10),'KGHdU':function(_0x14931d,_0x2663a0){return _0x14931d===_0x2663a0;},'QSKcU':'Sephora\x20extractor\x20hook\x20available','nfGfq':_0x428b(0x12),'omjfl':_0x428b(0x6b)},_0x5af6b5=[];try{const {useHingeDataExtractor:useHingeDataExtractor}=_0xfc04aa[_0x428b(0x6c)](__ONAIROS_REQ_FUNC__,0xe);_0x5af6b5[_0x428b(0x15)]({'platform':_0x428b(0xc),'component':_0xfc04aa[_0x428b(0x6d)],'status':_0xfc04aa[_0x428b(0x6e)](typeof useHingeDataExtractor,_0xfc04aa[_0x428b(0x6f)])?_0xfc04aa[_0x428b(0x70)]:'fail','message':_0xfc04aa[_0x428b(0x71)]});}catch(_0x108bc1){_0x5af6b5['push']({'platform':_0xfc04aa[_0x428b(0x72)],'component':_0xfc04aa[_0x428b(0x6d)],'status':'fail','message':_0x428b(0x31)+_0x108bc1[_0x428b(0x32)]});}try{const {useInstagramDataExtractor:useInstagramDataExtractor}=_0xfc04aa[_0x428b(0x6c)](__ONAIROS_REQ_FUNC__,0xf);_0x5af6b5['push']({'platform':_0x428b(0xd),'component':_0xfc04aa['dqCVp'],'status':_0xfc04aa[_0x428b(0x73)](typeof useInstagramDataExtractor,_0xfc04aa[_0x428b(0x6f)])?_0xfc04aa[_0x428b(0x70)]:_0xfc04aa['pwALb'],'message':'Instagram\x20extractor\x20hook\x20available'});}catch(_0x7b1581){_0x5af6b5[_0x428b(0x15)]({'platform':_0x428b(0xd),'component':_0xfc04aa[_0x428b(0x6d)],'status':_0xfc04aa[_0x428b(0x74)],'message':_0x428b(0x31)+_0x7b1581[_0x428b(0x32)]});}try{const {useSephoraDataExtractor:useSephoraDataExtractor}=__ONAIROS_REQ_FUNC__(0x10);_0x5af6b5['push']({'platform':_0xfc04aa['KlIuG'],'component':_0xfc04aa[_0x428b(0x6d)],'status':_0xfc04aa['KGHdU'](typeof useSephoraDataExtractor,_0xfc04aa['wWheB'])?_0xfc04aa[_0x428b(0x70)]:_0xfc04aa['pwALb'],'message':_0xfc04aa['QSKcU']});}catch(_0x475dd1){_0x5af6b5[_0x428b(0x15)]({'platform':_0xfc04aa[_0x428b(0x75)],'component':_0xfc04aa['dqCVp'],'status':_0x428b(0x9),'message':_0x428b(0x31)+_0x475dd1[_0x428b(0x32)]});}try{const {useTelegramDataExtractor:useTelegramDataExtractor}=__ONAIROS_REQ_FUNC__(0x11);_0x5af6b5[_0x428b(0x15)]({'platform':_0xfc04aa[_0x428b(0x76)],'component':'extractor','status':typeof useTelegramDataExtractor===_0xfc04aa[_0x428b(0x6f)]?_0xfc04aa[_0x428b(0x70)]:_0xfc04aa[_0x428b(0x74)],'message':_0xfc04aa['omjfl']});}catch(_0x50eb8a){_0x5af6b5[_0x428b(0x15)]({'platform':_0xfc04aa[_0x428b(0x76)],'component':_0xfc04aa[_0x428b(0x6d)],'status':_0xfc04aa[_0x428b(0x74)],'message':_0x428b(0x31)+_0x50eb8a['message']});}return _0x5af6b5;};exports[_0x428b(0x77)]=testExtractorImports;const testBackendConnectivity=async()=>{const _0x457038={'AaXfv':function(_0x18c4f0,_0x421960){return _0x18c4f0(_0x421960);},'ncejM':function(_0x9c937a,_0xd93212){return _0x9c937a(_0xd93212);},'pfbVY':'hinge','HmpEj':function(_0x23dade,_0x10e6ca){return _0x23dade(_0x10e6ca);},'qbkgn':_0x428b(0x78),'TOXkc':_0x428b(0x18),'IzUmN':_0x428b(0x9),'pRgPo':_0x428b(0x79),'FMYwR':_0x428b(0x7a),'pWgZb':'instagram','DbkEQ':function(_0x146106,_0x8306a3){return _0x146106(_0x8306a3);},'sJNrU':function(_0x1f79b8,_0x5896de){return _0x1f79b8(_0x5896de);},'ezCaQ':'Instagram\x20detection\x20correct','QOgwb':function(_0xe10a80,_0x2b181d){return _0xe10a80(_0x2b181d);},'VAxCv':function(_0x334239,_0x462de0){return _0x334239(_0x462de0);},'UTtVN':_0x428b(0x10),'KhfOL':_0x428b(0x7b),'LSvZI':_0x428b(0x7c),'DRNmy':function(_0xaf43b9,_0x7040d2){return _0xaf43b9(_0x7040d2);},'IVMLw':_0x428b(0x12),'uSwzB':function(_0x476bf0,_0x459180){return _0x476bf0(_0x459180);},'fMHgl':_0x428b(0x7d),'CjPHv':_0x428b(0x7e),'jMyjY':function(_0x3a14c1,_0x3a4a9c,_0x470624){return _0x3a14c1(_0x3a4a9c,_0x470624);},'ZmfKp':function(_0x2dc453,_0x2169cf,_0x34672d){return _0x2dc453(_0x2169cf,_0x34672d);},'FqMWr':_0x428b(0x7f),'wvkte':_0x428b(0x80),'xOUnx':_0x428b(0x81),'kNLuy':_0x428b(0x82),'GMSjL':function(_0x12e850,_0x5bf5aa,_0x51152c){return _0x12e850(_0x5bf5aa,_0x51152c);},'yGwDw':_0x428b(0x83),'nZzLi':_0x428b(0x84),'ZYfJG':function(_0x276ce0,_0x43e523){return _0x276ce0<_0x43e523;},'YfxMO':function(_0x2c772,_0x8689e5){return _0x2c772!==_0x8689e5;},'IwZTX':_0x428b(0x85)},_0x30bbe1=[];try{const _0x567578=new AbortController(),_0xef1775=_0x457038['jMyjY'](setTimeout,()=>_0x567578[_0x428b(0x86)](),0x2710),_0xd483d=await _0x457038[_0x428b(0x87)](fetch,_api[_0x428b(0x88)][_0x428b(0x89)]+_0x428b(0x8a),{'method':'GET','signal':_0x567578[_0x428b(0x8b)]});_0x457038[_0x428b(0x8c)](clearTimeout,_0xef1775),_0x30bbe1[_0x428b(0x15)]({'platform':_0x457038[_0x428b(0x8d)],'component':_0x457038['wvkte'],'status':_0xd483d['ok']?_0x457038[_0x428b(0x8e)]:_0x457038[_0x428b(0x8f)],'message':_0xd483d['ok']?_0x457038[_0x428b(0x90)]:_0x428b(0x91)+_0xd483d[_0x428b(0x92)],'details':{'status':_0xd483d[_0x428b(0x92)]}});}catch(_0x18d3a8){_0x30bbe1['push']({'platform':_0x457038[_0x428b(0x8d)],'component':_0x457038['wvkte'],'status':_0x457038[_0x428b(0x93)],'message':'Backend\x20unreachable:\x20'+_0x18d3a8[_0x428b(0x32)]});}try{const _0x3ff2c4=new AbortController(),_0x2a1ef5=_0x457038[_0x428b(0x87)](setTimeout,()=>_0x3ff2c4['abort'](),0x2710),_0x57ca2d=await _0x457038[_0x428b(0x94)](fetch,_api[_0x428b(0x88)][_0x428b(0x89)]+'/platform-data/store',{'method':_0x457038[_0x428b(0x95)],'signal':_0x3ff2c4[_0x428b(0x8b)]});clearTimeout(_0x2a1ef5),_0x30bbe1[_0x428b(0x15)]({'platform':_0x457038[_0x428b(0x8d)],'component':_0x457038[_0x428b(0x96)],'status':_0x457038['ZYfJG'](_0x57ca2d[_0x428b(0x92)],0x1f4)?_0x428b(0x18):_0x457038[_0x428b(0x8f)],'message':_0x428b(0x97)+_0x57ca2d[_0x428b(0x92)],'details':{'status':_0x57ca2d[_0x428b(0x92)]}});}catch(_0x137bae){if(_0x457038[_0x428b(0x98)](_0x457038[_0x428b(0x99)],_0x457038['IwZTX'])){const _0x959467=[];try{const {isWebViewExtractionPlatform:_0x232936,isHingePlatform:_0x15e6a9,isInstagramPlatform:_0x1dc045,isSephoraPlatform:_0x103512,isLLMPlatform:_0x3382f8}=_0x457038[_0x428b(0x9a)](_0x287e74,0x3),_0x2dce97=_0x457038['ncejM'](_0x15e6a9,_0x457038[_0x428b(0x9b)])&&_0x457038[_0x428b(0x8c)](_0x232936,_0x457038['pfbVY'])&&!_0x457038[_0x428b(0x9c)](_0x3382f8,_0x428b(0xc));_0x959467[_0x428b(0x15)]({'platform':_0x457038['pfbVY'],'component':_0x457038[_0x428b(0x9d)],'status':_0x2dce97?_0x457038['TOXkc']:_0x457038[_0x428b(0x93)],'message':_0x2dce97?_0x457038[_0x428b(0x9e)]:_0x457038[_0x428b(0x9f)]});const _0x2831f8=_0x1dc045(_0x457038[_0x428b(0xa0)])&&_0x457038[_0x428b(0xa1)](_0x232936,_0x457038[_0x428b(0xa0)])&&!_0x457038[_0x428b(0xa2)](_0x3382f8,_0x457038[_0x428b(0xa0)]);_0x959467['push']({'platform':'instagram','component':_0x457038[_0x428b(0x9d)],'status':_0x2831f8?_0x428b(0x18):_0x457038[_0x428b(0x93)],'message':_0x2831f8?_0x457038['ezCaQ']:'Instagram\x20detection\x20failed'});const _0x231652=_0x457038[_0x428b(0xa3)](_0x103512,_0x428b(0x10))&&_0x457038['VAxCv'](_0x232936,_0x457038[_0x428b(0xa4)])&&!_0x457038['sJNrU'](_0x3382f8,_0x457038[_0x428b(0xa4)]);_0x959467[_0x428b(0x15)]({'platform':'sephora','component':_0x457038['qbkgn'],'status':_0x231652?_0x457038[_0x428b(0x8e)]:_0x428b(0x9),'message':_0x231652?_0x457038[_0x428b(0xa5)]:_0x457038[_0x428b(0xa6)]});const {isTelegramPlatform:_0x321c30}=_0x457038[_0x428b(0xa7)](_0xe58724,0x2),_0x57cf46=_0x321c30(_0x457038[_0x428b(0xa8)])&&_0x457038[_0x428b(0xa9)](_0x232936,_0x457038['IVMLw'])&&!_0x457038[_0x428b(0xa1)](_0x3382f8,_0x457038['IVMLw']);_0x959467['push']({'platform':_0x457038[_0x428b(0xa8)],'component':_0x457038[_0x428b(0x9d)],'status':_0x57cf46?_0x457038['TOXkc']:'fail','message':_0x57cf46?_0x457038[_0x428b(0xaa)]:_0x457038['CjPHv']});}catch(_0x3b8597){_0x959467[_0x428b(0x15)]({'platform':_0x428b(0x14),'component':_0x457038['qbkgn'],'status':_0x457038['IzUmN'],'message':_0x428b(0xab)+_0x3b8597[_0x428b(0x32)]});}return _0x959467;}else _0x30bbe1[_0x428b(0x15)]({'platform':_0x457038[_0x428b(0x8d)],'component':'platform_data_endpoint','status':_0x457038['xOUnx'],'message':_0x428b(0xac)+_0x137bae[_0x428b(0x32)]});}return _0x30bbe1;};exports[_0x428b(0x5)]=testBackendConnectivity;const testPlatformDetection=()=>{const _0x1d0cc3={'XRnlV':function(_0x20a727,_0x12f1fb){return _0x20a727===_0x12f1fb;},'CqCBN':_0x428b(0xc),'DyfMX':'storeHingeData','Pcdml':_0x428b(0xad),'BusXG':function(_0x44417e,_0x4eb6f6){return _0x44417e===_0x4eb6f6;},'uJWmf':_0x428b(0xae),'ilFEx':_0x428b(0xaf),'LbGXZ':_0x428b(0x35),'oeLDx':_0x428b(0x18),'zCAeR':_0x428b(0x9),'zVpZS':function(_0x5a0edb,_0x149e77){return _0x5a0edb!==_0x149e77;},'NAlRu':_0x428b(0xb0),'lEnfK':function(_0x29ca8d,_0x584a72){return _0x29ca8d(_0x584a72);},'JtMoi':function(_0x33e4f0,_0x1b57ae){return _0x33e4f0(_0x1b57ae);},'MOqzP':'detection','WLhgk':'Hinge\x20detection\x20correct','BNJgv':'Hinge\x20detection\x20failed','TRQZg':function(_0x21c06d,_0x49c82){return _0x21c06d(_0x49c82);},'cBcPi':function(_0x10305f,_0x40bdcc){return _0x10305f(_0x40bdcc);},'dCToY':_0x428b(0xd),'kWOun':_0x428b(0xb1),'cBYWo':_0x428b(0xb2),'TCDIZ':_0x428b(0x10),'KFdLq':function(_0x1eff63,_0x824ca9){return _0x1eff63(_0x824ca9);},'OJiHU':function(_0x5206c1,_0x5759a1){return _0x5206c1(_0x5759a1);},'LsWrA':_0x428b(0x7b),'JzJBf':'Sephora\x20detection\x20failed','MrnSU':function(_0x2a7069,_0x19569a){return _0x2a7069(_0x19569a);},'vtwSo':'telegram','fNGkp':_0x428b(0x7d)},_0x31fc46=[];try{if(_0x1d0cc3[_0x428b(0xb3)](_0x1d0cc3[_0x428b(0xb4)],_0x428b(0xb0))){const _0x162df6=_0x2cd5df(0x15),_0x35ebce=_0x1d0cc3['XRnlV'](_0x3b67f5,_0x1d0cc3['CqCBN'])?_0x1d0cc3[_0x428b(0xb5)]:_0x2d0d8b===_0x428b(0xd)?_0x1d0cc3[_0x428b(0xb6)]:_0x1d0cc3[_0x428b(0xb7)](_0x507f28,'telegram')?_0x1d0cc3[_0x428b(0xb8)]:_0x1d0cc3[_0x428b(0xb9)];_0x74b52['push']({'platform':_0x26f1af,'component':_0x1d0cc3[_0x428b(0xba)],'status':typeof _0x162df6[_0x35ebce]===_0x428b(0x5a)?_0x1d0cc3['oeLDx']:_0x1d0cc3[_0x428b(0xbb)],'message':'Service\x20function\x20'+_0x35ebce+'\x20available'});}else{const {isWebViewExtractionPlatform:_0x19c234,isHingePlatform:_0x5b9937,isInstagramPlatform:_0x32b5e2,isSephoraPlatform:_0x57acb7,isLLMPlatform:_0x12c036}=_0x1d0cc3[_0x428b(0xbc)](__ONAIROS_REQ_FUNC__,0x3),_0x42268c=_0x1d0cc3[_0x428b(0xbc)](_0x5b9937,_0x1d0cc3['CqCBN'])&&_0x1d0cc3[_0x428b(0xbc)](_0x19c234,_0x428b(0xc))&&!_0x1d0cc3['JtMoi'](_0x12c036,_0x1d0cc3['CqCBN']);_0x31fc46['push']({'platform':'hinge','component':_0x1d0cc3[_0x428b(0xbd)],'status':_0x42268c?_0x428b(0x18):_0x1d0cc3['zCAeR'],'message':_0x42268c?_0x1d0cc3[_0x428b(0xbe)]:_0x1d0cc3[_0x428b(0xbf)]});const _0x33a44d=_0x1d0cc3[_0x428b(0xc0)](_0x32b5e2,_0x428b(0xd))&&_0x1d0cc3[_0x428b(0xc1)](_0x19c234,_0x1d0cc3['dCToY'])&&!_0x12c036(_0x1d0cc3[_0x428b(0xc2)]);_0x31fc46[_0x428b(0x15)]({'platform':_0x1d0cc3[_0x428b(0xc2)],'component':'detection','status':_0x33a44d?_0x1d0cc3['oeLDx']:'fail','message':_0x33a44d?_0x1d0cc3['kWOun']:_0x1d0cc3['cBYWo']});const _0x1c94a6=_0x1d0cc3[_0x428b(0xc1)](_0x57acb7,_0x1d0cc3['TCDIZ'])&&_0x1d0cc3[_0x428b(0xc3)](_0x19c234,'sephora')&&!_0x1d0cc3[_0x428b(0xc4)](_0x12c036,_0x1d0cc3[_0x428b(0xc5)]);_0x31fc46['push']({'platform':_0x1d0cc3[_0x428b(0xc5)],'component':_0x1d0cc3['MOqzP'],'status':_0x1c94a6?_0x428b(0x18):_0x1d0cc3['zCAeR'],'message':_0x1c94a6?_0x1d0cc3[_0x428b(0xc6)]:_0x1d0cc3[_0x428b(0xc7)]});const {isTelegramPlatform:_0x4caf6f}=_0x1d0cc3[_0x428b(0xbc)](__ONAIROS_REQ_FUNC__,0x2),_0x1fcc7a=_0x1d0cc3[_0x428b(0xc8)](_0x4caf6f,_0x1d0cc3[_0x428b(0xc9)])&&_0x1d0cc3['JtMoi'](_0x19c234,'telegram')&&!_0x1d0cc3[_0x428b(0xc1)](_0x12c036,_0x1d0cc3[_0x428b(0xc9)]);_0x31fc46['push']({'platform':_0x1d0cc3[_0x428b(0xc9)],'component':_0x428b(0x78),'status':_0x1fcc7a?_0x1d0cc3[_0x428b(0xca)]:_0x1d0cc3[_0x428b(0xbb)],'message':_0x1fcc7a?_0x1d0cc3[_0x428b(0xcb)]:_0x428b(0x7e)});}}catch(_0x33518c){_0x31fc46[_0x428b(0x15)]({'platform':_0x428b(0x14),'component':_0x1d0cc3[_0x428b(0xbd)],'status':_0x1d0cc3[_0x428b(0xbb)],'message':'Detection\x20test\x20error:\x20'+_0x33518c[_0x428b(0x32)]});}return _0x31fc46;};exports[_0x428b(0x4)]=testPlatformDetection;const runConnectorSanityTests=async()=>{const _0x155fc8={'ViOza':_0x428b(0x69),'hcObq':_0x428b(0x9),'xACdd':_0x428b(0x10),'vQrQV':_0x428b(0xcc),'fdXqR':_0x428b(0xcd),'fwAjW':_0x428b(0xce),'mnrWE':function(_0x16a860){return _0x16a860();},'naVtZ':'๐\x20Testing\x20extractor\x20imports...','jbaFs':'๐\x20Testing\x20platform\x20detection...','mmjME':function(_0x510eed){return _0x510eed();},'AcVEI':_0x428b(0xcf),'DsOCn':_0x428b(0xd0),'TWUbE':'๐งช\x20CONNECTOR\x20SANITY\x20TEST\x20RESULTS','WWpul':_0x428b(0xd1),'JkKpP':function(_0x44418f,_0x45445a){return _0x44418f===_0x45445a;},'KntOI':_0x428b(0x18),'Fiskq':function(_0x44d3eb,_0x54e832){return _0x44d3eb===_0x54e832;},'KEdRF':function(_0x55ec25,_0x57631c){return _0x55ec25>_0x57631c;},'hNMsG':_0x428b(0xd2),'YpbBO':_0x428b(0xd3),'EUWvd':_0x428b(0xd4),'ScjyA':_0x428b(0xd5),'UwLSS':_0x428b(0xd6),'HWwnn':'โ
\x20All\x20tests\x20passed!\x20Connectors\x20are\x20ready.'};console[_0x428b(0xd7)](_0x155fc8['vQrQV']);const _0x4aced2=[];console[_0x428b(0xd7)](_0x155fc8['fdXqR']),_0x4aced2[_0x428b(0x15)](...testWebViewScriptExports()),console['log'](_0x155fc8[_0x428b(0xd8)]),_0x4aced2[_0x428b(0x15)](..._0x155fc8['mnrWE'](testServiceImports)),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xd9)]),_0x4aced2[_0x428b(0x15)](..._0x155fc8[_0x428b(0xda)](testExtractorImports)),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xdb)]),_0x4aced2['push'](..._0x155fc8[_0x428b(0xdc)](testPlatformDetection)),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xdd)]),_0x4aced2[_0x428b(0x15)](...await _0x155fc8[_0x428b(0xda)](testBackendConnectivity));const _0x2e9d7c=_0x4aced2[_0x428b(0xde)](_0x14a7dc=>_0x14a7dc[_0x428b(0x92)]==='pass')[_0x428b(0xdf)],_0x4cd4c7=_0x4aced2[_0x428b(0xde)](_0x48c35e=>_0x48c35e['status']===_0x428b(0x9))['length'],_0x1ace33=_0x4aced2['filter'](_0x58884e=>_0x58884e[_0x428b(0x92)]==='warning')[_0x428b(0xdf)];console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xe0)]),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xe1)]),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xe2)]);for(const _0x5332af of _0x4aced2){const _0x5bb535=_0x155fc8['JkKpP'](_0x5332af[_0x428b(0x92)],_0x155fc8['KntOI'])?'โ
':_0x155fc8[_0x428b(0xe3)](_0x5332af[_0x428b(0x92)],_0x155fc8[_0x428b(0xe4)])?'โ':'โ ๏ธ';console[_0x428b(0xd7)](_0x5bb535+'\x20['+_0x5332af[_0x428b(0xe5)][_0x428b(0xe6)]()+']\x20'+_0x5332af['component']+':\x20'+_0x5332af['message']);}console[_0x428b(0xd7)](_0x428b(0xd0)),console[_0x428b(0xd7)](_0x428b(0xe7)+_0x2e9d7c+_0x428b(0xe8)+_0x4cd4c7+_0x428b(0xe9)+_0x1ace33+_0x428b(0xea)),console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xe2)]);if(_0x155fc8[_0x428b(0xeb)](_0x4cd4c7,0x0))_0x155fc8[_0x428b(0xec)](_0x155fc8[_0x428b(0xed)],_0x428b(0xd2))?console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xee)]):_0xc90834[_0x428b(0x15)]({'platform':_0x4a90eb,'component':_0x155fc8[_0x428b(0xef)],'status':_0x155fc8[_0x428b(0xe4)],'message':'Extractor\x20import\x20failed:\x20'+_0x565bd5[_0x428b(0x32)]});else _0x1ace33>0x0?_0x155fc8['EUWvd']!==_0x155fc8['ScjyA']?console[_0x428b(0xd7)](_0x155fc8[_0x428b(0xf0)]):_0xc348b8[_0x428b(0x15)]({'platform':_0x155fc8[_0x428b(0xf1)],'component':_0x155fc8[_0x428b(0xef)],'status':_0x155fc8['hcObq'],'message':_0x428b(0x31)+_0xdf1a77[_0x428b(0x32)]}):console['log'](_0x155fc8[_0x428b(0xf2)]);return{'passed':_0x2e9d7c,'failed':_0x4cd4c7,'warnings':_0x1ace33,'results':_0x4aced2};};exports[_0x428b(0x6)]=runConnectorSanityTests;const testPlatformConnector=async _0x10918b=>{const _0x3c0856={'xDyMG':'hinge','ZsBvQ':_0x428b(0x35),'inckg':_0x428b(0x10),'uVOhP':_0x428b(0x7),'KElGe':_0x428b(0x8),'AgZTL':'pass','qWOUn':_0x428b(0xa),'TMuCC':_0x428b(0x9),'haGal':_0x428b(0xb),'dOfYI':function(_0x4a13e4,_0x2317f9){return _0x4a13e4(_0x2317f9);},'LgaBT':_0x428b(0xf3),'CKCJd':function(_0x4139e3,_0x2234cc){return _0x4139e3(_0x2234cc);},'PlvaO':_0x428b(0xd),'xyRnR':'Instagram\x20scripts\x20exported\x20correctly','EXKIp':_0x428b(0x34),'UCXMF':_0x428b(0x12),'xYPsR':_0x428b(0xf4),'iAxLh':function(_0x44ad3e,_0x545837){return _0x44ad3e(_0x545837);},'CrjXH':_0x428b(0x2d),'DHJsB':_0x428b(0x13),'qwBnj':'Platform\x20detection\x20functions\x20available','TQkFb':function(_0x5eb372,_0x5216c1){return _0x5eb372!==_0x5216c1;},'nzvpn':_0x428b(0xf5),'jxgkI':function(_0x1dab79,_0x45f115){return _0x1dab79===_0x45f115;},'cGwSt':_0x428b(0xf6),'nqshi':'vCtDw','tMYHZ':_0x428b(0xf7),'LzAoI':_0x428b(0x37),'unLwF':_0x428b(0x67),'dukBu':'storeHingeData','KuBEB':function(_0x3ec528,_0x4d86d5){return _0x3ec528===_0x4d86d5;},'ynQVZ':'storeSephoraData','HldBq':_0x428b(0x5a),'dDKEV':function(_0x387000,_0x341580){return _0x387000(_0x341580);},'mJCoz':function(_0x177731,_0x4e88a8){return _0x177731+_0x4e88a8;},'dEvWO':_0x428b(0x69),'BvSZB':function(_0x5ac11d,_0x158805){return _0x5ac11d===_0x158805;},'IorHG':function(_0x438ab7,_0x42eb3e){return _0x438ab7===_0x42eb3e;},'oBZvq':_0x428b(0xf8),'VSuUy':_0x428b(0xf9),'ohLvx':_0x428b(0x81)};console['log'](_0x428b(0xfa)+_0x10918b+_0x428b(0xfb));const _0x4efcd0=[],_0x3b98d8=_0x10918b['toLowerCase']();if([_0x428b(0xc),_0x428b(0xd),_0x3c0856[_0x428b(0xfc)],_0x3c0856[_0x428b(0xfd)]]['includes'](_0x3b98d8)){if(_0x3c0856[_0x428b(0xfe)](_0x3c0856[_0x428b(0xff)],_0x428b(0x100))){try{if(_0x3c0856[_0x428b(0x101)](_0x3c0856[_0x428b(0x102)],_0x3c0856[_0x428b(0x103)]))_0x3013d7[_0x428b(0x15)]({'platform':_0x3c0856[_0x428b(0x104)],'component':_0x3c0856['ZsBvQ'],'status':_0x428b(0x9),'message':_0x428b(0x31)+_0x3f4067['message']});else{const _0x409fb9=_0x3c0856[_0x428b(0x105)](__ONAIROS_REQ_FUNC__,0x1),_0x5e2a58=_0x3b98d8[_0x428b(0xe6)]()+_0x428b(0x106),_0x255431=!!_0x409fb9[_0x5e2a58];_0x4efcd0['push']({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x107)],'status':_0x255431?_0x3c0856['AgZTL']:_0x3c0856[_0x428b(0x108)],'message':_0x255431?_0x3c0856[_0x428b(0x109)]:_0x3c0856[_0x428b(0x10a)]});}}catch(_0x2fa518){_0x4efcd0[_0x428b(0x15)]({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x107)],'status':_0x3c0856[_0x428b(0x108)],'message':'Script\x20import\x20failed:\x20'+_0x2fa518[_0x428b(0x32)]});}try{const _0x569f54=__ONAIROS_REQ_FUNC__(0x15),_0x3af56d=_0x3c0856['jxgkI'](_0x3b98d8,_0x3c0856['xDyMG'])?_0x3c0856['dukBu']:_0x3c0856[_0x428b(0x10b)](_0x3b98d8,_0x428b(0xd))?'storeInstagramData':_0x3b98d8===_0x428b(0x12)?_0x428b(0xae):_0x3c0856[_0x428b(0x10c)];_0x4efcd0[_0x428b(0x15)]({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x10d)],'status':typeof _0x569f54[_0x3af56d]===_0x3c0856[_0x428b(0x10e)]?_0x428b(0x18):_0x3c0856[_0x428b(0x108)],'message':_0x428b(0x10f)+_0x3af56d+_0x428b(0x110)});}catch(_0x27066f){_0x4efcd0['push']({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x10d)],'status':_0x3c0856[_0x428b(0x108)],'message':_0x428b(0x111)+_0x27066f[_0x428b(0x32)]});}try{const _0x57870a=_0x3c0856[_0x428b(0x112)](__ONAIROS_REQ_FUNC__,0x16),_0x4e3d3e=_0x428b(0x113)+_0x3c0856['mJCoz'](_0x3b98d8[_0x428b(0x114)](0x0)[_0x428b(0xe6)](),_0x3b98d8['slice'](0x1))+_0x428b(0x115);_0x4efcd0[_0x428b(0x15)]({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x116)],'status':_0x3c0856[_0x428b(0x117)](typeof _0x57870a[_0x4e3d3e],_0x3c0856[_0x428b(0x10e)])?_0x3c0856[_0x428b(0x118)]:_0x3c0856['TMuCC'],'message':_0x428b(0x119)+_0x4e3d3e+_0x428b(0x110)});}catch(_0x3e23c8){_0x3c0856[_0x428b(0x11a)]('iWyGe',_0x3c0856['oBZvq'])?_0x4efcd0[_0x428b(0x15)]({'platform':_0x3b98d8,'component':'extractor','status':_0x3c0856[_0x428b(0x108)],'message':_0x428b(0x11b)+_0x3e23c8['message']}):_0x430b20[_0x428b(0x15)]({'platform':_0x3c0856['inckg'],'component':_0x3c0856[_0x428b(0x10d)],'status':_0x428b(0x9),'message':_0x428b(0x31)+_0x5e722a[_0x428b(0x32)]});}}else{const {CHATGPT_CONSENT_POPUP_SCRIPT:_0x28e2b7,CHATGPT_EXPORT_SCRIPT:_0x1cc3cf}=_0x3ee4c3(0x14);_0x562c87[_0x428b(0x15)]({'platform':_0x3c0856[_0x428b(0x11c)],'component':_0x3c0856['KElGe'],'status':_0x1cc3cf?_0x3c0856[_0x428b(0x118)]:'fail','message':_0x1cc3cf?_0x428b(0x11d):_0x428b(0x11e)});const {CLAUDE_CONSENT_POPUP_SCRIPT:_0x56a02f,CLAUDE_EXPORT_SCRIPT:_0x330e13}=_0x5d4560(0x13);_0x1beeda['push']({'platform':_0x3c0856['qWOUn'],'component':_0x3c0856[_0x428b(0x11f)],'status':_0x330e13?_0x428b(0x18):_0x3c0856[_0x428b(0x108)],'message':_0x330e13?_0x3c0856[_0x428b(0x120)]:_0x428b(0x1f)});const {HINGE_CONSENT_POPUP_SCRIPT:_0x59b616,HINGE_EXPORT_SCRIPT:_0x1e1c18}=_0x3c0856['dOfYI'](_0x117e98,0x12);_0x3f09e7[_0x428b(0x15)]({'platform':_0x3c0856[_0x428b(0x104)],'component':_0x3c0856[_0x428b(0x11f)],'status':_0x1e1c18?_0x3c0856['AgZTL']:_0x3c0856[_0x428b(0x108)],'message':_0x1e1c18?_0x3c0856[_0x428b(0x121)]:_0x428b(0x33)});const {INSTAGRAM_CONSENT_POPUP_SCRIPT:_0x57b3fd,INSTAGRAM_EXPORT_SCRIPT:_0x23e1a3}=_0x3c0856[_0x428b(0x105)](_0x1edb07,0x7);_0x28c94d[_0x428b(0x15)]({'platform':_0x3c0856['PlvaO'],'component':_0x428b(0x8),'status':_0x23e1a3?_0x3c0856[_0x428b(0x118)]:_0x428b(0x9),'message':_0x23e1a3?_0x3c0856['xyRnR']:_0x428b(0xf)});const {SEPHORA_CONSENT_POPUP_SCRIPT:_0xf43238,SEPHORA_EXPORT_SCRIPT:_0x2adead}=_0x41b452(0x6);_0x32592a[_0x428b(0x15)]({'platform':'sephora','component':_0x3c0856['KElGe'],'status':_0x2adead?_0x3c0856[_0x428b(0x118)]:_0x3c0856[_0x428b(0x108)],'message':_0x2adead?_0x428b(0x11):_0x3c0856[_0x428b(0x122)]});const {TELEGRAM_CONSENT_POPUP_SCRIPT:_0x1fe465,TELEGRAM_EXPORT_SCRIPT:_0x7e8f98}=_0x3c0856['dOfYI'](_0x1986d2,0x5);_0xacbc03[_0x428b(0x15)]({'platform':_0x3c0856[_0x428b(0xfd)],'component':_0x3c0856[_0x428b(0x11f)],'status':_0x7e8f98?_0x3c0856[_0x428b(0x118)]:_0x3c0856[_0x428b(0x108)],'message':_0x7e8f98?_0x428b(0x52):_0x3c0856[_0x428b(0x123)]});const {isWebViewExtractionPlatform:_0x3d5a30,isHingePlatform:_0x520a4b,isInstagramPlatform:_0x4828eb,isSephoraPlatform:_0x1630f7,isTelegramPlatform:_0x5100ed}=_0x3c0856['iAxLh'](_0xa89645,0x4);_0x1eab77[_0x428b(0x15)]({'platform':_0x3c0856[_0x428b(0x124)],'component':_0x3c0856['DHJsB'],'status':_0x3d5a30&&_0x520a4b&&_0x4828eb&&_0x1630f7&&_0x5100ed?_0x3c0856['AgZTL']:_0x3c0856[_0x428b(0x108)],'message':_0x3c0856[_0x428b(0x125)]});}}else _0x4efcd0[_0x428b(0x15)]({'platform':_0x3b98d8,'component':_0x3c0856[_0x428b(0x126)],'status':_0x3c0856[_0x428b(0x127)],'message':_0x428b(0x128)+_0x10918b+_0x428b(0x129)});for(const _0x4da47b of _0x4efcd0){const _0x28a20a=_0x3c0856[_0x428b(0x101)](_0x4da47b[_0x428b(0x92)],_0x3c0856[_0x428b(0x118)])?'โ
':_0x3c0856[_0x428b(0x117)](_0x4da47b['status'],_0x428b(0x9))?'โ':'โ ๏ธ';console[_0x428b(0xd7)](_0x28a20a+'\x20'+_0x4da47b[_0x428b(0x12a)]+':\x20'+_0x4da47b['message']);}return _0x4efcd0;};exports[_0x428b(0x12b)]=testPlatformConnector;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.testWebViewScriptExports = exports.testServiceImports = exports.testPlatformDetection = exports.testPlatformConnector = exports.testExtractorImports = exports.testBackendConnectivity = exports.runConnectorSanityTests = void 0;
|
|
7
|
+
var _api = require("../config/api");
|
|
8
|
+
/**
|
|
9
|
+
* Connector API Tests / Sanity Checks
|
|
10
|
+
*
|
|
11
|
+
* This module provides test utilities to verify all platform connectors
|
|
12
|
+
* are properly configured and their services are working correctly.
|
|
13
|
+
*
|
|
14
|
+
* Run these tests to ensure:
|
|
15
|
+
* 1. All WebView scripts are properly exported
|
|
16
|
+
* 2. All extractor hooks are available
|
|
17
|
+
* 3. All services can be instantiated
|
|
18
|
+
* 4. Backend endpoints are reachable
|
|
19
|
+
*
|
|
20
|
+
* Usage:
|
|
21
|
+
* import { runConnectorSanityTests } from './utils/connectorTests';
|
|
22
|
+
* await runConnectorSanityTests();
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Test result interface
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Test all WebView script exports
|
|
31
|
+
*/
|
|
32
|
+
const testWebViewScriptExports = () => {
|
|
33
|
+
const results = [];
|
|
34
|
+
try {
|
|
35
|
+
// Test ChatGPT scripts
|
|
36
|
+
const {
|
|
37
|
+
CHATGPT_CONSENT_POPUP_SCRIPT,
|
|
38
|
+
CHATGPT_EXPORT_SCRIPT
|
|
39
|
+
} = require('./webviewScripts');
|
|
40
|
+
results.push({
|
|
41
|
+
platform: 'chatgpt',
|
|
42
|
+
component: 'webview_scripts',
|
|
43
|
+
status: CHATGPT_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
44
|
+
message: CHATGPT_EXPORT_SCRIPT ? 'ChatGPT scripts exported correctly' : 'ChatGPT scripts missing'
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Test Claude scripts
|
|
48
|
+
const {
|
|
49
|
+
CLAUDE_CONSENT_POPUP_SCRIPT,
|
|
50
|
+
CLAUDE_EXPORT_SCRIPT
|
|
51
|
+
} = require('./webviewScripts');
|
|
52
|
+
results.push({
|
|
53
|
+
platform: 'claude',
|
|
54
|
+
component: 'webview_scripts',
|
|
55
|
+
status: CLAUDE_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
56
|
+
message: CLAUDE_EXPORT_SCRIPT ? 'Claude scripts exported correctly' : 'Claude scripts missing'
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Test Hinge scripts
|
|
60
|
+
const {
|
|
61
|
+
HINGE_CONSENT_POPUP_SCRIPT,
|
|
62
|
+
HINGE_EXPORT_SCRIPT
|
|
63
|
+
} = require('./webviewScripts');
|
|
64
|
+
results.push({
|
|
65
|
+
platform: 'hinge',
|
|
66
|
+
component: 'webview_scripts',
|
|
67
|
+
status: HINGE_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
68
|
+
message: HINGE_EXPORT_SCRIPT ? 'Hinge scripts exported correctly' : 'Hinge scripts missing'
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Test Instagram scripts
|
|
72
|
+
const {
|
|
73
|
+
INSTAGRAM_CONSENT_POPUP_SCRIPT,
|
|
74
|
+
INSTAGRAM_EXPORT_SCRIPT
|
|
75
|
+
} = require('./webviewScripts');
|
|
76
|
+
results.push({
|
|
77
|
+
platform: 'instagram',
|
|
78
|
+
component: 'webview_scripts',
|
|
79
|
+
status: INSTAGRAM_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
80
|
+
message: INSTAGRAM_EXPORT_SCRIPT ? 'Instagram scripts exported correctly' : 'Instagram scripts missing'
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Test Sephora scripts
|
|
84
|
+
const {
|
|
85
|
+
SEPHORA_CONSENT_POPUP_SCRIPT,
|
|
86
|
+
SEPHORA_EXPORT_SCRIPT
|
|
87
|
+
} = require('./webviewScripts');
|
|
88
|
+
results.push({
|
|
89
|
+
platform: 'sephora',
|
|
90
|
+
component: 'webview_scripts',
|
|
91
|
+
status: SEPHORA_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
92
|
+
message: SEPHORA_EXPORT_SCRIPT ? 'Sephora scripts exported correctly' : 'Sephora scripts missing'
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// Test Telegram scripts
|
|
96
|
+
const {
|
|
97
|
+
TELEGRAM_CONSENT_POPUP_SCRIPT,
|
|
98
|
+
TELEGRAM_EXPORT_SCRIPT
|
|
99
|
+
} = require('./webviewScripts');
|
|
100
|
+
results.push({
|
|
101
|
+
platform: 'telegram',
|
|
102
|
+
component: 'webview_scripts',
|
|
103
|
+
status: TELEGRAM_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
104
|
+
message: TELEGRAM_EXPORT_SCRIPT ? 'Telegram scripts exported correctly' : 'Telegram scripts missing'
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// Test utility functions
|
|
108
|
+
const {
|
|
109
|
+
isWebViewExtractionPlatform,
|
|
110
|
+
isHingePlatform,
|
|
111
|
+
isInstagramPlatform,
|
|
112
|
+
isSephoraPlatform,
|
|
113
|
+
isTelegramPlatform
|
|
114
|
+
} = require('./webviewScripts');
|
|
115
|
+
results.push({
|
|
116
|
+
platform: 'utilities',
|
|
117
|
+
component: 'platform_detection',
|
|
118
|
+
status: isWebViewExtractionPlatform && isHingePlatform && isInstagramPlatform && isSephoraPlatform && isTelegramPlatform ? 'pass' : 'fail',
|
|
119
|
+
message: 'Platform detection functions available'
|
|
120
|
+
});
|
|
121
|
+
} catch (error) {
|
|
122
|
+
results.push({
|
|
123
|
+
platform: 'all',
|
|
124
|
+
component: 'webview_scripts',
|
|
125
|
+
status: 'fail',
|
|
126
|
+
message: `Import error: ${error.message}`
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return results;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Test all service imports
|
|
134
|
+
*/
|
|
135
|
+
exports.testWebViewScriptExports = testWebViewScriptExports;
|
|
136
|
+
const testServiceImports = () => {
|
|
137
|
+
const results = [];
|
|
138
|
+
|
|
139
|
+
// Test ChatGPT service
|
|
140
|
+
try {
|
|
141
|
+
const {
|
|
142
|
+
storeChatGPTConversations
|
|
143
|
+
} = require('../services/chatGPTConversationService');
|
|
144
|
+
results.push({
|
|
145
|
+
platform: 'chatgpt',
|
|
146
|
+
component: 'service',
|
|
147
|
+
status: typeof storeChatGPTConversations === 'function' ? 'pass' : 'fail',
|
|
148
|
+
message: 'ChatGPT service function available'
|
|
149
|
+
});
|
|
150
|
+
} catch (error) {
|
|
151
|
+
results.push({
|
|
152
|
+
platform: 'chatgpt',
|
|
153
|
+
component: 'service',
|
|
154
|
+
status: 'fail',
|
|
155
|
+
message: `Import error: ${error.message}`
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Test Claude service
|
|
160
|
+
try {
|
|
161
|
+
const {
|
|
162
|
+
storeClaudeConversations
|
|
163
|
+
} = require('../services/claudeConversationService');
|
|
164
|
+
results.push({
|
|
165
|
+
platform: 'claude',
|
|
166
|
+
component: 'service',
|
|
167
|
+
status: typeof storeClaudeConversations === 'function' ? 'pass' : 'fail',
|
|
168
|
+
message: 'Claude service function available'
|
|
169
|
+
});
|
|
170
|
+
} catch (error) {
|
|
171
|
+
results.push({
|
|
172
|
+
platform: 'claude',
|
|
173
|
+
component: 'service',
|
|
174
|
+
status: 'fail',
|
|
175
|
+
message: `Import error: ${error.message}`
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Test Hinge service
|
|
180
|
+
try {
|
|
181
|
+
const {
|
|
182
|
+
storeHingeData
|
|
183
|
+
} = require('../services/hingeDataService');
|
|
184
|
+
results.push({
|
|
185
|
+
platform: 'hinge',
|
|
186
|
+
component: 'service',
|
|
187
|
+
status: typeof storeHingeData === 'function' ? 'pass' : 'fail',
|
|
188
|
+
message: 'Hinge service function available'
|
|
189
|
+
});
|
|
190
|
+
} catch (error) {
|
|
191
|
+
results.push({
|
|
192
|
+
platform: 'hinge',
|
|
193
|
+
component: 'service',
|
|
194
|
+
status: 'fail',
|
|
195
|
+
message: `Import error: ${error.message}`
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Test Instagram service
|
|
200
|
+
try {
|
|
201
|
+
const {
|
|
202
|
+
storeInstagramData
|
|
203
|
+
} = require('../services/instagramDataService');
|
|
204
|
+
results.push({
|
|
205
|
+
platform: 'instagram',
|
|
206
|
+
component: 'service',
|
|
207
|
+
status: typeof storeInstagramData === 'function' ? 'pass' : 'fail',
|
|
208
|
+
message: 'Instagram service function available'
|
|
209
|
+
});
|
|
210
|
+
} catch (error) {
|
|
211
|
+
results.push({
|
|
212
|
+
platform: 'instagram',
|
|
213
|
+
component: 'service',
|
|
214
|
+
status: 'fail',
|
|
215
|
+
message: `Import error: ${error.message}`
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Test Sephora service
|
|
220
|
+
try {
|
|
221
|
+
const {
|
|
222
|
+
storeSephoraData
|
|
223
|
+
} = require('../services/sephoraDataService');
|
|
224
|
+
results.push({
|
|
225
|
+
platform: 'sephora',
|
|
226
|
+
component: 'service',
|
|
227
|
+
status: typeof storeSephoraData === 'function' ? 'pass' : 'fail',
|
|
228
|
+
message: 'Sephora service function available'
|
|
229
|
+
});
|
|
230
|
+
} catch (error) {
|
|
231
|
+
results.push({
|
|
232
|
+
platform: 'sephora',
|
|
233
|
+
component: 'service',
|
|
234
|
+
status: 'fail',
|
|
235
|
+
message: `Import error: ${error.message}`
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Test Telegram service
|
|
240
|
+
try {
|
|
241
|
+
const {
|
|
242
|
+
storeTelegramData
|
|
243
|
+
} = require('../services/telegramDataService');
|
|
244
|
+
results.push({
|
|
245
|
+
platform: 'telegram',
|
|
246
|
+
component: 'service',
|
|
247
|
+
status: typeof storeTelegramData === 'function' ? 'pass' : 'fail',
|
|
248
|
+
message: 'Telegram service function available'
|
|
249
|
+
});
|
|
250
|
+
} catch (error) {
|
|
251
|
+
results.push({
|
|
252
|
+
platform: 'telegram',
|
|
253
|
+
component: 'service',
|
|
254
|
+
status: 'fail',
|
|
255
|
+
message: `Import error: ${error.message}`
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return results;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Test all extractor hook imports
|
|
263
|
+
*/
|
|
264
|
+
exports.testServiceImports = testServiceImports;
|
|
265
|
+
const testExtractorImports = () => {
|
|
266
|
+
const results = [];
|
|
267
|
+
|
|
268
|
+
// Test Hinge extractor
|
|
269
|
+
try {
|
|
270
|
+
const {
|
|
271
|
+
useHingeDataExtractor
|
|
272
|
+
} = require('../services/hingeDataExtractor');
|
|
273
|
+
results.push({
|
|
274
|
+
platform: 'hinge',
|
|
275
|
+
component: 'extractor',
|
|
276
|
+
status: typeof useHingeDataExtractor === 'function' ? 'pass' : 'fail',
|
|
277
|
+
message: 'Hinge extractor hook available'
|
|
278
|
+
});
|
|
279
|
+
} catch (error) {
|
|
280
|
+
results.push({
|
|
281
|
+
platform: 'hinge',
|
|
282
|
+
component: 'extractor',
|
|
283
|
+
status: 'fail',
|
|
284
|
+
message: `Import error: ${error.message}`
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// Test Instagram extractor
|
|
289
|
+
try {
|
|
290
|
+
const {
|
|
291
|
+
useInstagramDataExtractor
|
|
292
|
+
} = require('../services/instagramDataExtractor');
|
|
293
|
+
results.push({
|
|
294
|
+
platform: 'instagram',
|
|
295
|
+
component: 'extractor',
|
|
296
|
+
status: typeof useInstagramDataExtractor === 'function' ? 'pass' : 'fail',
|
|
297
|
+
message: 'Instagram extractor hook available'
|
|
298
|
+
});
|
|
299
|
+
} catch (error) {
|
|
300
|
+
results.push({
|
|
301
|
+
platform: 'instagram',
|
|
302
|
+
component: 'extractor',
|
|
303
|
+
status: 'fail',
|
|
304
|
+
message: `Import error: ${error.message}`
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// Test Sephora extractor
|
|
309
|
+
try {
|
|
310
|
+
const {
|
|
311
|
+
useSephoraDataExtractor
|
|
312
|
+
} = require('../services/sephoraDataExtractor');
|
|
313
|
+
results.push({
|
|
314
|
+
platform: 'sephora',
|
|
315
|
+
component: 'extractor',
|
|
316
|
+
status: typeof useSephoraDataExtractor === 'function' ? 'pass' : 'fail',
|
|
317
|
+
message: 'Sephora extractor hook available'
|
|
318
|
+
});
|
|
319
|
+
} catch (error) {
|
|
320
|
+
results.push({
|
|
321
|
+
platform: 'sephora',
|
|
322
|
+
component: 'extractor',
|
|
323
|
+
status: 'fail',
|
|
324
|
+
message: `Import error: ${error.message}`
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// Test Telegram extractor
|
|
329
|
+
try {
|
|
330
|
+
const {
|
|
331
|
+
useTelegramDataExtractor
|
|
332
|
+
} = require('../services/telegramDataExtractor');
|
|
333
|
+
results.push({
|
|
334
|
+
platform: 'telegram',
|
|
335
|
+
component: 'extractor',
|
|
336
|
+
status: typeof useTelegramDataExtractor === 'function' ? 'pass' : 'fail',
|
|
337
|
+
message: 'Telegram extractor hook available'
|
|
338
|
+
});
|
|
339
|
+
} catch (error) {
|
|
340
|
+
results.push({
|
|
341
|
+
platform: 'telegram',
|
|
342
|
+
component: 'extractor',
|
|
343
|
+
status: 'fail',
|
|
344
|
+
message: `Import error: ${error.message}`
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
return results;
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Test backend API connectivity
|
|
352
|
+
*/
|
|
353
|
+
exports.testExtractorImports = testExtractorImports;
|
|
354
|
+
const testBackendConnectivity = async () => {
|
|
355
|
+
const results = [];
|
|
356
|
+
|
|
357
|
+
// Test health endpoint
|
|
358
|
+
try {
|
|
359
|
+
const controller = new AbortController();
|
|
360
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000);
|
|
361
|
+
const response = await fetch(`${_api.API_CONFIG.BASE_URL}/health`, {
|
|
362
|
+
method: 'GET',
|
|
363
|
+
signal: controller.signal
|
|
364
|
+
});
|
|
365
|
+
clearTimeout(timeoutId);
|
|
366
|
+
results.push({
|
|
367
|
+
platform: 'backend',
|
|
368
|
+
component: 'health',
|
|
369
|
+
status: response.ok ? 'pass' : 'warning',
|
|
370
|
+
message: response.ok ? 'Backend health check passed' : `Backend returned status ${response.status}`,
|
|
371
|
+
details: {
|
|
372
|
+
status: response.status
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
} catch (error) {
|
|
376
|
+
results.push({
|
|
377
|
+
platform: 'backend',
|
|
378
|
+
component: 'health',
|
|
379
|
+
status: 'fail',
|
|
380
|
+
message: `Backend unreachable: ${error.message}`
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// Test platform-data endpoint exists (OPTIONS request)
|
|
385
|
+
try {
|
|
386
|
+
const controller = new AbortController();
|
|
387
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000);
|
|
388
|
+
const response = await fetch(`${_api.API_CONFIG.BASE_URL}/platform-data/store`, {
|
|
389
|
+
method: 'OPTIONS',
|
|
390
|
+
signal: controller.signal
|
|
391
|
+
});
|
|
392
|
+
clearTimeout(timeoutId);
|
|
393
|
+
results.push({
|
|
394
|
+
platform: 'backend',
|
|
395
|
+
component: 'platform_data_endpoint',
|
|
396
|
+
status: response.status < 500 ? 'pass' : 'warning',
|
|
397
|
+
message: `Platform data endpoint check: ${response.status}`,
|
|
398
|
+
details: {
|
|
399
|
+
status: response.status
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
} catch (error) {
|
|
403
|
+
results.push({
|
|
404
|
+
platform: 'backend',
|
|
405
|
+
component: 'platform_data_endpoint',
|
|
406
|
+
status: 'warning',
|
|
407
|
+
message: `Endpoint check failed (may require auth): ${error.message}`
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
return results;
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Test platform detection utility functions
|
|
415
|
+
*/
|
|
416
|
+
exports.testBackendConnectivity = testBackendConnectivity;
|
|
417
|
+
const testPlatformDetection = () => {
|
|
418
|
+
const results = [];
|
|
419
|
+
try {
|
|
420
|
+
const {
|
|
421
|
+
isWebViewExtractionPlatform,
|
|
422
|
+
isHingePlatform,
|
|
423
|
+
isInstagramPlatform,
|
|
424
|
+
isSephoraPlatform,
|
|
425
|
+
isLLMPlatform
|
|
426
|
+
} = require('./webviewScripts');
|
|
427
|
+
|
|
428
|
+
// Test Hinge detection
|
|
429
|
+
const hingeTest = isHingePlatform('hinge') && isWebViewExtractionPlatform('hinge') && !isLLMPlatform('hinge');
|
|
430
|
+
results.push({
|
|
431
|
+
platform: 'hinge',
|
|
432
|
+
component: 'detection',
|
|
433
|
+
status: hingeTest ? 'pass' : 'fail',
|
|
434
|
+
message: hingeTest ? 'Hinge detection correct' : 'Hinge detection failed'
|
|
435
|
+
});
|
|
436
|
+
|
|
437
|
+
// Test Instagram detection
|
|
438
|
+
const instagramTest = isInstagramPlatform('instagram') && isWebViewExtractionPlatform('instagram') && !isLLMPlatform('instagram');
|
|
439
|
+
results.push({
|
|
440
|
+
platform: 'instagram',
|
|
441
|
+
component: 'detection',
|
|
442
|
+
status: instagramTest ? 'pass' : 'fail',
|
|
443
|
+
message: instagramTest ? 'Instagram detection correct' : 'Instagram detection failed'
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
// Test Sephora detection
|
|
447
|
+
const sephoraTest = isSephoraPlatform('sephora') && isWebViewExtractionPlatform('sephora') && !isLLMPlatform('sephora');
|
|
448
|
+
results.push({
|
|
449
|
+
platform: 'sephora',
|
|
450
|
+
component: 'detection',
|
|
451
|
+
status: sephoraTest ? 'pass' : 'fail',
|
|
452
|
+
message: sephoraTest ? 'Sephora detection correct' : 'Sephora detection failed'
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
// Test Telegram detection
|
|
456
|
+
const {
|
|
457
|
+
isTelegramPlatform
|
|
458
|
+
} = require('./webviewScripts');
|
|
459
|
+
const telegramTest = isTelegramPlatform('telegram') && isWebViewExtractionPlatform('telegram') && !isLLMPlatform('telegram');
|
|
460
|
+
results.push({
|
|
461
|
+
platform: 'telegram',
|
|
462
|
+
component: 'detection',
|
|
463
|
+
status: telegramTest ? 'pass' : 'fail',
|
|
464
|
+
message: telegramTest ? 'Telegram detection correct' : 'Telegram detection failed'
|
|
465
|
+
});
|
|
466
|
+
} catch (error) {
|
|
467
|
+
results.push({
|
|
468
|
+
platform: 'all',
|
|
469
|
+
component: 'detection',
|
|
470
|
+
status: 'fail',
|
|
471
|
+
message: `Detection test error: ${error.message}`
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
return results;
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* Run all connector sanity tests
|
|
479
|
+
*/
|
|
480
|
+
exports.testPlatformDetection = testPlatformDetection;
|
|
481
|
+
const runConnectorSanityTests = async () => {
|
|
482
|
+
console.log('๐งช [CONNECTOR_TESTS] Starting connector sanity tests...\n');
|
|
483
|
+
const allResults = [];
|
|
484
|
+
|
|
485
|
+
// Run all test suites
|
|
486
|
+
console.log('๐ Testing WebView script exports...');
|
|
487
|
+
allResults.push(...testWebViewScriptExports());
|
|
488
|
+
console.log('๐ Testing service imports...');
|
|
489
|
+
allResults.push(...testServiceImports());
|
|
490
|
+
console.log('๐ Testing extractor imports...');
|
|
491
|
+
allResults.push(...testExtractorImports());
|
|
492
|
+
console.log('๐ Testing platform detection...');
|
|
493
|
+
allResults.push(...testPlatformDetection());
|
|
494
|
+
console.log('๐ Testing backend connectivity...');
|
|
495
|
+
allResults.push(...(await testBackendConnectivity()));
|
|
496
|
+
|
|
497
|
+
// Calculate summary
|
|
498
|
+
const passed = allResults.filter(r => r.status === 'pass').length;
|
|
499
|
+
const failed = allResults.filter(r => r.status === 'fail').length;
|
|
500
|
+
const warnings = allResults.filter(r => r.status === 'warning').length;
|
|
501
|
+
|
|
502
|
+
// Log results
|
|
503
|
+
console.log('\n========================================');
|
|
504
|
+
console.log('๐งช CONNECTOR SANITY TEST RESULTS');
|
|
505
|
+
console.log('========================================\n');
|
|
506
|
+
for (const result of allResults) {
|
|
507
|
+
const icon = result.status === 'pass' ? 'โ
' : result.status === 'fail' ? 'โ' : 'โ ๏ธ';
|
|
508
|
+
console.log(`${icon} [${result.platform.toUpperCase()}] ${result.component}: ${result.message}`);
|
|
509
|
+
}
|
|
510
|
+
console.log('\n========================================');
|
|
511
|
+
console.log(`๐ Summary: ${passed} passed, ${failed} failed, ${warnings} warnings`);
|
|
512
|
+
console.log('========================================\n');
|
|
513
|
+
if (failed > 0) {
|
|
514
|
+
console.log('โ Some tests failed! Please check the errors above.');
|
|
515
|
+
} else if (warnings > 0) {
|
|
516
|
+
console.log('โ ๏ธ All critical tests passed, but there are warnings.');
|
|
517
|
+
} else {
|
|
518
|
+
console.log('โ
All tests passed! Connectors are ready.');
|
|
519
|
+
}
|
|
520
|
+
return {
|
|
521
|
+
passed,
|
|
522
|
+
failed,
|
|
523
|
+
warnings,
|
|
524
|
+
results: allResults
|
|
525
|
+
};
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Quick test to validate a specific platform's connector
|
|
530
|
+
*/
|
|
531
|
+
exports.runConnectorSanityTests = runConnectorSanityTests;
|
|
532
|
+
const testPlatformConnector = async platformName => {
|
|
533
|
+
console.log(`๐งช Testing ${platformName} connector...\n`);
|
|
534
|
+
const results = [];
|
|
535
|
+
const platform = platformName.toLowerCase();
|
|
536
|
+
|
|
537
|
+
// Test based on platform
|
|
538
|
+
if (['hinge', 'instagram', 'sephora', 'telegram'].includes(platform)) {
|
|
539
|
+
// Test script export
|
|
540
|
+
try {
|
|
541
|
+
const scripts = require('./webviewScripts');
|
|
542
|
+
const scriptKey = `${platform.toUpperCase()}_EXPORT_SCRIPT`;
|
|
543
|
+
const hasScript = !!scripts[scriptKey];
|
|
544
|
+
results.push({
|
|
545
|
+
platform,
|
|
546
|
+
component: 'webview_script',
|
|
547
|
+
status: hasScript ? 'pass' : 'fail',
|
|
548
|
+
message: hasScript ? 'Export script available' : 'Export script missing'
|
|
549
|
+
});
|
|
550
|
+
} catch (e) {
|
|
551
|
+
results.push({
|
|
552
|
+
platform,
|
|
553
|
+
component: 'webview_script',
|
|
554
|
+
status: 'fail',
|
|
555
|
+
message: `Script import failed: ${e.message}`
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
// Test service
|
|
560
|
+
try {
|
|
561
|
+
const service = require(`../services/${platform}DataService`);
|
|
562
|
+
const functionName = platform === 'hinge' ? 'storeHingeData' : platform === 'instagram' ? 'storeInstagramData' : platform === 'telegram' ? 'storeTelegramData' : 'storeSephoraData';
|
|
563
|
+
results.push({
|
|
564
|
+
platform,
|
|
565
|
+
component: 'service',
|
|
566
|
+
status: typeof service[functionName] === 'function' ? 'pass' : 'fail',
|
|
567
|
+
message: `Service function ${functionName} available`
|
|
568
|
+
});
|
|
569
|
+
} catch (e) {
|
|
570
|
+
results.push({
|
|
571
|
+
platform,
|
|
572
|
+
component: 'service',
|
|
573
|
+
status: 'fail',
|
|
574
|
+
message: `Service import failed: ${e.message}`
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// Test extractor
|
|
579
|
+
try {
|
|
580
|
+
const extractor = require(`../services/${platform}DataExtractor`);
|
|
581
|
+
const hookName = `use${platform.charAt(0).toUpperCase() + platform.slice(1)}DataExtractor`;
|
|
582
|
+
results.push({
|
|
583
|
+
platform,
|
|
584
|
+
component: 'extractor',
|
|
585
|
+
status: typeof extractor[hookName] === 'function' ? 'pass' : 'fail',
|
|
586
|
+
message: `Extractor hook ${hookName} available`
|
|
587
|
+
});
|
|
588
|
+
} catch (e) {
|
|
589
|
+
results.push({
|
|
590
|
+
platform,
|
|
591
|
+
component: 'extractor',
|
|
592
|
+
status: 'fail',
|
|
593
|
+
message: `Extractor import failed: ${e.message}`
|
|
594
|
+
});
|
|
595
|
+
}
|
|
596
|
+
} else {
|
|
597
|
+
results.push({
|
|
598
|
+
platform,
|
|
599
|
+
component: 'validation',
|
|
600
|
+
status: 'warning',
|
|
601
|
+
message: `Unknown platform: ${platformName}. Use 'hinge', 'instagram', 'sephora', or 'telegram'.`
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Log results
|
|
606
|
+
for (const result of results) {
|
|
607
|
+
const icon = result.status === 'pass' ? 'โ
' : result.status === 'fail' ? 'โ' : 'โ ๏ธ';
|
|
608
|
+
console.log(`${icon} ${result.component}: ${result.message}`);
|
|
609
|
+
}
|
|
610
|
+
return results;
|
|
611
|
+
};
|
|
612
|
+
exports.testPlatformConnector = testPlatformConnector;
|
|
613
|
+
//# sourceMappingURL=connectorTests.js.map
|