@onairos/react-native 3.7.2 โ 3.7.4
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/components/BodyText.js +27 -9
- package/lib/commonjs/components/BrandMark.js +111 -10
- package/lib/commonjs/components/CodeInput.js +120 -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/components/BodyText.js +20 -1
- package/lib/module/components/BrandMark.js +104 -1
- package/lib/module/components/CodeInput.js +113 -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['defineProperty'](exports,_0x2b58(0x0),{'value':!![]}),exports[_0x2b58(0x1)]=exports['testServiceImports']=exports[_0x2b58(0x2)]=exports[_0x2b58(0x3)]=exports['testExtractorImports']=exports['testBackendConnectivity']=exports[_0x2b58(0x4)]=void 0x0;var _api=__ONAIROS_REQ_FUNC__(0x0);const testWebViewScriptExports=()=>{const _0x149e4e={'hLUko':function(_0xf2f6f8,_0x5f4b7b){return _0xf2f6f8(_0x5f4b7b);},'XoRgw':_0x2b58(0x5),'BlMKo':'webview_scripts','NOFzB':_0x2b58(0x6),'KNztA':'ChatGPT\x20scripts\x20exported\x20correctly','Trnfz':function(_0x3740c3,_0x2e4401){return _0x3740c3(_0x2e4401);},'JVZqW':'claude','ijNwR':'Claude\x20scripts\x20exported\x20correctly','fgpQm':'Claude\x20scripts\x20missing','btjWU':function(_0x2eee9c,_0x259054){return _0x2eee9c(_0x259054);},'OwWyH':_0x2b58(0x7),'BepIp':_0x2b58(0x8),'cDTwS':'Hinge\x20scripts\x20exported\x20correctly','jpJXN':_0x2b58(0x9),'LjDvz':function(_0x335915,_0x23e3af){return _0x335915(_0x23e3af);},'xanaX':_0x2b58(0xa),'kAyMC':_0x2b58(0xb),'FfoKq':_0x2b58(0xc),'kcrmV':_0x2b58(0xd),'jtbhc':_0x2b58(0xe),'gTenc':function(_0x5519c4,_0x3f1fac){return _0x5519c4(_0x3f1fac);},'QbVBl':_0x2b58(0xf),'NyIky':_0x2b58(0x10),'bmdCi':_0x2b58(0x11),'UyMLq':function(_0x332c84,_0x511872){return _0x332c84&&_0x511872;},'cqYAv':_0x2b58(0x12),'vRfJd':'all'},_0x3552df=[];try{const {CHATGPT_CONSENT_POPUP_SCRIPT:_0x559564,CHATGPT_EXPORT_SCRIPT:_0x5c9ce0}=_0x149e4e[_0x2b58(0x13)](__ONAIROS_REQ_FUNC__,0x14);_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x15)],'component':_0x149e4e[_0x2b58(0x16)],'status':_0x5c9ce0?_0x149e4e['NOFzB']:_0x2b58(0x8),'message':_0x5c9ce0?_0x149e4e[_0x2b58(0x17)]:_0x2b58(0x18)});const {CLAUDE_CONSENT_POPUP_SCRIPT:_0x395736,CLAUDE_EXPORT_SCRIPT:_0xc28b8e}=_0x149e4e[_0x2b58(0x19)](__ONAIROS_REQ_FUNC__,0x13);_0x3552df['push']({'platform':_0x149e4e[_0x2b58(0x1a)],'component':_0x2b58(0x1b),'status':_0xc28b8e?_0x149e4e[_0x2b58(0x1c)]:_0x2b58(0x8),'message':_0xc28b8e?_0x149e4e[_0x2b58(0x1d)]:_0x149e4e['fgpQm']});const {HINGE_CONSENT_POPUP_SCRIPT:_0x276b97,HINGE_EXPORT_SCRIPT:_0x141c9a}=_0x149e4e[_0x2b58(0x1e)](__ONAIROS_REQ_FUNC__,0x12);_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x1f)],'component':'webview_scripts','status':_0x141c9a?_0x149e4e[_0x2b58(0x1c)]:_0x149e4e['BepIp'],'message':_0x141c9a?_0x149e4e[_0x2b58(0x20)]:_0x149e4e[_0x2b58(0x21)]});const {INSTAGRAM_CONSENT_POPUP_SCRIPT:_0x2d2941,INSTAGRAM_EXPORT_SCRIPT:_0x2818ad}=_0x149e4e['LjDvz'](__ONAIROS_REQ_FUNC__,0x7);_0x3552df[_0x2b58(0x14)]({'platform':_0x2b58(0x22),'component':_0x149e4e['BlMKo'],'status':_0x2818ad?_0x149e4e['NOFzB']:_0x149e4e['BepIp'],'message':_0x2818ad?_0x149e4e[_0x2b58(0x23)]:_0x149e4e['kAyMC']});const {SEPHORA_CONSENT_POPUP_SCRIPT:_0x465dff,SEPHORA_EXPORT_SCRIPT:_0x5cafb9}=_0x149e4e[_0x2b58(0x24)](__ONAIROS_REQ_FUNC__,0x6);_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x25)],'component':_0x149e4e[_0x2b58(0x16)],'status':_0x5cafb9?_0x149e4e[_0x2b58(0x1c)]:_0x149e4e[_0x2b58(0x26)],'message':_0x5cafb9?_0x149e4e[_0x2b58(0x27)]:_0x149e4e['jtbhc']});const {TELEGRAM_CONSENT_POPUP_SCRIPT:_0x265892,TELEGRAM_EXPORT_SCRIPT:_0x210dc9}=_0x149e4e[_0x2b58(0x28)](__ONAIROS_REQ_FUNC__,0x5);_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x29)],'component':_0x149e4e['BlMKo'],'status':_0x210dc9?_0x2b58(0x6):_0x149e4e[_0x2b58(0x26)],'message':_0x210dc9?_0x2b58(0x2a):_0x149e4e[_0x2b58(0x2b)]});const {isWebViewExtractionPlatform:_0x372cc8,isHingePlatform:_0x2e5a72,isInstagramPlatform:_0x3f2f87,isSephoraPlatform:_0x4efd9f,isTelegramPlatform:_0x574a2a}=_0x149e4e[_0x2b58(0x24)](__ONAIROS_REQ_FUNC__,0x4);_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x2c)],'component':_0x2b58(0x2d),'status':_0x149e4e[_0x2b58(0x2e)](_0x372cc8,_0x2e5a72)&&_0x3f2f87&&_0x4efd9f&&_0x574a2a?_0x2b58(0x6):_0x149e4e['BepIp'],'message':_0x149e4e[_0x2b58(0x2f)]});}catch(_0x1e127f){_0x3552df[_0x2b58(0x14)]({'platform':_0x149e4e[_0x2b58(0x30)],'component':_0x149e4e[_0x2b58(0x16)],'status':_0x149e4e[_0x2b58(0x26)],'message':_0x2b58(0x31)+_0x1e127f[_0x2b58(0x32)]});}return _0x3552df;};exports[_0x2b58(0x1)]=testWebViewScriptExports;const testServiceImports=()=>{const _0x50e6de={'jctPW':_0x2b58(0x22),'hWQWc':_0x2b58(0x33),'kGKBq':function(_0x40ecb2,_0x3a007f){return _0x40ecb2(_0x3a007f);},'gBWYz':function(_0x33eac9,_0x1d1302){return _0x33eac9===_0x1d1302;},'mrpNW':'function','yaSux':_0x2b58(0x6),'jsLSk':_0x2b58(0x8),'NKPyi':_0x2b58(0x34),'oQGCZ':function(_0x1b046b,_0x380d8e){return _0x1b046b(_0x380d8e);},'Uhcfz':_0x2b58(0x5),'Wnfdh':'ChatGPT\x20service\x20function\x20available','uLWeu':_0x2b58(0x35),'GtsdT':_0x2b58(0x36),'ZXmBy':_0x2b58(0x37),'mCEKq':_0x2b58(0x38),'jzlpf':function(_0xeaf9f6,_0x2bf24e){return _0xeaf9f6(_0x2bf24e);},'GOwya':function(_0x5308a5,_0x39bb63){return _0x5308a5===_0x39bb63;},'YaYrc':_0x2b58(0x39),'kxGUO':function(_0xbafba8,_0x8f51f7){return _0xbafba8===_0x8f51f7;},'QDRPB':_0x2b58(0x3a),'BEfjt':function(_0x2c3afc,_0x188171){return _0x2c3afc===_0x188171;},'oxDGX':_0x2b58(0x3b),'OEJff':_0x2b58(0x3c),'oiibO':_0x2b58(0x3d),'NxarA':_0x2b58(0xc),'PzWPQ':_0x2b58(0x3e),'Uztdf':function(_0x531c8f,_0x32ecb){return _0x531c8f===_0x32ecb;},'BahBd':_0x2b58(0x3f),'LcodQ':function(_0x5247d4,_0x11d337){return _0x5247d4!==_0x11d337;},'eQwlt':_0x2b58(0x40),'KirXX':'OFNtO'},_0x51b3c7=[];try{const {storeChatGPTConversations:_0x3fb872}=_0x50e6de[_0x2b58(0x41)](__ONAIROS_REQ_FUNC__,0x8);_0x51b3c7[_0x2b58(0x14)]({'platform':_0x50e6de[_0x2b58(0x42)],'component':'service','status':typeof _0x3fb872===_0x2b58(0x43)?_0x50e6de[_0x2b58(0x44)]:_0x50e6de[_0x2b58(0x45)],'message':_0x50e6de[_0x2b58(0x46)]});}catch(_0x413f22){_0x51b3c7[_0x2b58(0x14)]({'platform':_0x50e6de[_0x2b58(0x42)],'component':_0x50e6de[_0x2b58(0x47)],'status':_0x50e6de[_0x2b58(0x45)],'message':_0x2b58(0x31)+_0x413f22[_0x2b58(0x32)]});}try{if(_0x50e6de[_0x2b58(0x48)](_0x2b58(0x36),_0x50e6de[_0x2b58(0x49)])){const {storeClaudeConversations:_0x1816cd}=__ONAIROS_REQ_FUNC__(0x9);_0x51b3c7['push']({'platform':_0x50e6de[_0x2b58(0x4a)],'component':_0x50e6de[_0x2b58(0x47)],'status':_0x50e6de['gBWYz'](typeof _0x1816cd,_0x50e6de[_0x2b58(0x4b)])?_0x50e6de[_0x2b58(0x44)]:_0x50e6de[_0x2b58(0x45)],'message':_0x50e6de[_0x2b58(0x4c)]});}else _0x1a23b7[_0x2b58(0x14)]({'platform':_0x50e6de['jctPW'],'component':_0x50e6de[_0x2b58(0x4d)],'status':_0x2b58(0x8),'message':_0x2b58(0x31)+_0x22e7f4[_0x2b58(0x32)]});}catch(_0x1eaaf8){_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0x37),'component':_0x50e6de[_0x2b58(0x47)],'status':_0x2b58(0x8),'message':'Import\x20error:\x20'+_0x1eaaf8[_0x2b58(0x32)]});}try{const {storeHingeData:_0x268e7e}=_0x50e6de['jzlpf'](__ONAIROS_REQ_FUNC__,0xa);_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0x7),'component':_0x50e6de['uLWeu'],'status':_0x50e6de['GOwya'](typeof _0x268e7e,_0x2b58(0x43))?_0x50e6de['yaSux']:_0x50e6de['jsLSk'],'message':_0x50e6de[_0x2b58(0x4e)]});}catch(_0x42a2d3){_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0x7),'component':_0x2b58(0x35),'status':_0x2b58(0x8),'message':_0x2b58(0x31)+_0x42a2d3[_0x2b58(0x32)]});}try{if(_0x50e6de[_0x2b58(0x4f)](_0x50e6de['QDRPB'],_0x50e6de[_0x2b58(0x50)])){const {storeInstagramData:_0x595fe0}=_0x50e6de[_0x2b58(0x41)](__ONAIROS_REQ_FUNC__,0xb);_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0x22),'component':_0x50e6de['uLWeu'],'status':_0x50e6de[_0x2b58(0x51)](typeof _0x595fe0,_0x50e6de[_0x2b58(0x4b)])?_0x50e6de[_0x2b58(0x44)]:_0x50e6de[_0x2b58(0x45)],'message':_0x50e6de['oxDGX']});}else _0x16c52d[_0x2b58(0x14)]({'platform':_0x2b58(0x37),'component':'service','status':'fail','message':_0x2b58(0x31)+_0x32453c[_0x2b58(0x32)]});}catch(_0x44023d){_0x51b3c7['push']({'platform':_0x50e6de[_0x2b58(0x52)],'component':_0x2b58(0x35),'status':_0x2b58(0x8),'message':'Import\x20error:\x20'+_0x44023d[_0x2b58(0x32)]});}try{if(_0x50e6de[_0x2b58(0x48)](_0x50e6de[_0x2b58(0x53)],_0x50e6de['oiibO'])){const {useInstagramDataExtractor:useInstagramDataExtractor}=_0x50e6de[_0x2b58(0x54)](_0x2e34bc,0xf);_0x3bc8c1[_0x2b58(0x14)]({'platform':_0x50e6de[_0x2b58(0x52)],'component':_0x50e6de['hWQWc'],'status':_0x50e6de['gBWYz'](typeof useInstagramDataExtractor,_0x50e6de[_0x2b58(0x4b)])?_0x50e6de[_0x2b58(0x44)]:_0x50e6de['jsLSk'],'message':'Instagram\x20extractor\x20hook\x20available'});}else{const {storeSephoraData:_0x4f1fe4}=__ONAIROS_REQ_FUNC__(0xc);_0x51b3c7['push']({'platform':_0x50e6de[_0x2b58(0x55)],'component':_0x50e6de['uLWeu'],'status':_0x50e6de[_0x2b58(0x56)](typeof _0x4f1fe4,_0x50e6de[_0x2b58(0x4b)])?_0x50e6de[_0x2b58(0x44)]:_0x50e6de[_0x2b58(0x45)],'message':_0x50e6de['PzWPQ']});}}catch(_0x5a63d4){_0x51b3c7[_0x2b58(0x14)]({'platform':_0x50e6de[_0x2b58(0x55)],'component':_0x50e6de[_0x2b58(0x47)],'status':_0x2b58(0x8),'message':_0x2b58(0x31)+_0x5a63d4[_0x2b58(0x32)]});}try{const {storeTelegramData:_0x4d225e}=_0x50e6de[_0x2b58(0x41)](__ONAIROS_REQ_FUNC__,0xd);_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0xf),'component':_0x50e6de[_0x2b58(0x47)],'status':_0x50e6de[_0x2b58(0x57)](typeof _0x4d225e,_0x50e6de[_0x2b58(0x4b)])?_0x50e6de['yaSux']:_0x50e6de['jsLSk'],'message':_0x50e6de[_0x2b58(0x58)]});}catch(_0x2ee15d){_0x50e6de[_0x2b58(0x59)](_0x50e6de[_0x2b58(0x5a)],_0x50e6de[_0x2b58(0x5b)])?_0x51b3c7[_0x2b58(0x14)]({'platform':_0x2b58(0xf),'component':_0x50e6de['uLWeu'],'status':_0x50e6de['jsLSk'],'message':_0x2b58(0x31)+_0x2ee15d['message']}):_0x362146[_0x2b58(0x5c)](_0x50e6de[_0x2b58(0x5d)]);}return _0x51b3c7;};exports[_0x2b58(0x5e)]=testServiceImports;const testExtractorImports=()=>{const _0x4672a0={'RtzvE':_0x2b58(0x8),'mEcti':_0x2b58(0x5f),'LmEjO':_0x2b58(0x60),'IfFIO':function(_0x3b383e,_0x1496df){return _0x3b383e(_0x1496df);},'AHNrH':_0x2b58(0xc),'JRFOB':'extractor','QXzBv':function(_0x28e4f6,_0x317f78){return _0x28e4f6===_0x317f78;},'qaZTf':_0x2b58(0x6),'PjFWS':_0x2b58(0x61),'oVfad':_0x2b58(0x35),'pMvwc':function(_0x50e6a4,_0x26567d){return _0x50e6a4===_0x26567d;},'WlsZM':_0x2b58(0x62),'qEhxN':function(_0x303023,_0x4e802a){return _0x303023===_0x4e802a;},'dQhUR':_0x2b58(0x63),'PyTqF':_0x2b58(0x64),'KrcjQ':_0x2b58(0x7),'wAINB':_0x2b58(0x65),'CLhCA':_0x2b58(0x22),'cdJQK':_0x2b58(0x43),'OQJls':_0x2b58(0x66),'XyEOa':function(_0x1ac1c5,_0x447394){return _0x1ac1c5(_0x447394);},'JNRpo':function(_0x5dbd95,_0x4c5df0){return _0x5dbd95!==_0x4c5df0;},'NYwTx':_0x2b58(0x67),'AnMBT':_0x2b58(0x68),'sluUU':_0x2b58(0xf),'kuejo':function(_0x17c9c7,_0x1df836){return _0x17c9c7===_0x1df836;}},_0x2366df=[];try{const {useHingeDataExtractor:useHingeDataExtractor}=_0x4672a0[_0x2b58(0x69)](__ONAIROS_REQ_FUNC__,0xe);_0x2366df[_0x2b58(0x14)]({'platform':_0x2b58(0x7),'component':_0x4672a0['JRFOB'],'status':_0x4672a0['pMvwc'](typeof useHingeDataExtractor,_0x2b58(0x43))?_0x4672a0[_0x2b58(0x6a)]:_0x4672a0['RtzvE'],'message':_0x4672a0['WlsZM']});}catch(_0x2b1dd1){if(_0x4672a0[_0x2b58(0x6b)](_0x4672a0['dQhUR'],_0x4672a0[_0x2b58(0x6c)])){const _0x5bc57e=_0x33dee5(0x1),_0x287f0a=_0x3b2ada['toUpperCase']()+_0x2b58(0x6d),_0x3e3e1d=!!_0x5bc57e[_0x287f0a];_0xaef738[_0x2b58(0x14)]({'platform':_0x129092,'component':_0x2b58(0x6e),'status':_0x3e3e1d?_0x2b58(0x6):_0x4672a0[_0x2b58(0x6f)],'message':_0x3e3e1d?_0x4672a0['mEcti']:_0x4672a0[_0x2b58(0x70)]});}else _0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0[_0x2b58(0x71)],'component':_0x4672a0[_0x2b58(0x72)],'status':_0x4672a0[_0x2b58(0x6f)],'message':_0x2b58(0x31)+_0x2b1dd1[_0x2b58(0x32)]});}try{if(_0x4672a0['wAINB']!==_0x4672a0[_0x2b58(0x73)]){const {useSephoraDataExtractor:useSephoraDataExtractor}=_0x4672a0[_0x2b58(0x69)](_0x2fb932,0x10);_0x43d8ee[_0x2b58(0x14)]({'platform':_0x4672a0[_0x2b58(0x74)],'component':_0x4672a0[_0x2b58(0x72)],'status':_0x4672a0['QXzBv'](typeof useSephoraDataExtractor,_0x2b58(0x43))?_0x4672a0[_0x2b58(0x6a)]:_0x4672a0[_0x2b58(0x6f)],'message':_0x4672a0[_0x2b58(0x75)]});}else{const {useInstagramDataExtractor:useInstagramDataExtractor}=__ONAIROS_REQ_FUNC__(0xf);_0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0[_0x2b58(0x76)],'component':_0x2b58(0x33),'status':_0x4672a0['qEhxN'](typeof useInstagramDataExtractor,_0x4672a0[_0x2b58(0x77)])?_0x4672a0[_0x2b58(0x6a)]:_0x4672a0[_0x2b58(0x6f)],'message':_0x4672a0[_0x2b58(0x78)]});}}catch(_0x22847f){_0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0[_0x2b58(0x76)],'component':_0x4672a0['JRFOB'],'status':_0x2b58(0x8),'message':'Import\x20error:\x20'+_0x22847f[_0x2b58(0x32)]});}try{const {useSephoraDataExtractor:useSephoraDataExtractor}=_0x4672a0[_0x2b58(0x79)](__ONAIROS_REQ_FUNC__,0x10);_0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0['AHNrH'],'component':'extractor','status':_0x4672a0[_0x2b58(0x7a)](typeof useSephoraDataExtractor,_0x4672a0[_0x2b58(0x77)])?_0x4672a0[_0x2b58(0x6a)]:_0x4672a0[_0x2b58(0x6f)],'message':_0x4672a0[_0x2b58(0x75)]});}catch(_0x27adf5){_0x4672a0['JNRpo'](_0x4672a0[_0x2b58(0x7b)],_0x4672a0[_0x2b58(0x7c)])?_0x2366df['push']({'platform':'sephora','component':_0x4672a0[_0x2b58(0x72)],'status':'fail','message':'Import\x20error:\x20'+_0x27adf5[_0x2b58(0x32)]}):_0x16b8f6[_0x2b58(0x14)]({'platform':_0x2b58(0x7),'component':_0x4672a0[_0x2b58(0x7d)],'status':_0x4672a0[_0x2b58(0x6f)],'message':_0x2b58(0x31)+_0x17578a[_0x2b58(0x32)]});}try{const {useTelegramDataExtractor:useTelegramDataExtractor}=__ONAIROS_REQ_FUNC__(0x11);_0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0[_0x2b58(0x7e)],'component':_0x4672a0[_0x2b58(0x72)],'status':_0x4672a0[_0x2b58(0x7f)](typeof useTelegramDataExtractor,_0x4672a0[_0x2b58(0x77)])?'pass':_0x4672a0[_0x2b58(0x6f)],'message':_0x2b58(0x80)});}catch(_0x5abea3){_0x2366df[_0x2b58(0x14)]({'platform':_0x4672a0['sluUU'],'component':_0x4672a0[_0x2b58(0x72)],'status':_0x4672a0[_0x2b58(0x6f)],'message':_0x2b58(0x31)+_0x5abea3[_0x2b58(0x32)]});}return _0x2366df;};exports[_0x2b58(0x81)]=testExtractorImports;const testBackendConnectivity=async()=>{const _0x5c4e3f={'bOxCO':function(_0x4529d7,_0x149369){return _0x4529d7(_0x149369);},'IzLOa':_0x2b58(0x35),'pVVeX':_0x2b58(0x6),'ylqMd':_0x2b58(0x8),'XhEtE':function(_0x1d8373,_0x4abee0,_0x1af76c){return _0x1d8373(_0x4abee0,_0x1af76c);},'eioeu':'health','iOzly':_0x2b58(0x82),'yjXfW':_0x2b58(0x83),'vUabU':'zzpdO','FfHob':_0x2b58(0x84),'dymQp':function(_0x94b38a,_0xa1c911,_0x39725c){return _0x94b38a(_0xa1c911,_0x39725c);},'UZwvO':function(_0x1cc10f,_0x2bc86e,_0x46e4d0){return _0x1cc10f(_0x2bc86e,_0x46e4d0);},'xiHpH':'OPTIONS','GiMkp':function(_0x45932c,_0x10da70){return _0x45932c(_0x10da70);},'hiOwM':_0x2b58(0x85),'LdQpi':function(_0x22756e,_0x2b8ed6){return _0x22756e<_0x2b8ed6;}},_0xb923b7=[];try{const _0x1f55e8=new AbortController(),_0x5774a1=_0x5c4e3f['XhEtE'](setTimeout,()=>_0x1f55e8['abort'](),0x2710),_0x2cf2c3=await _0x5c4e3f[_0x2b58(0x86)](fetch,_api[_0x2b58(0x87)]['BASE_URL']+_0x2b58(0x88),{'method':'GET','signal':_0x1f55e8[_0x2b58(0x89)]});_0x5c4e3f['bOxCO'](clearTimeout,_0x5774a1),_0xb923b7[_0x2b58(0x14)]({'platform':'backend','component':_0x5c4e3f['eioeu'],'status':_0x2cf2c3['ok']?_0x2b58(0x6):_0x5c4e3f[_0x2b58(0x8a)],'message':_0x2cf2c3['ok']?_0x5c4e3f['yjXfW']:'Backend\x20returned\x20status\x20'+_0x2cf2c3[_0x2b58(0x8b)],'details':{'status':_0x2cf2c3['status']}});}catch(_0x503ae1){if(_0x5c4e3f[_0x2b58(0x8c)]!==_0x5c4e3f['vUabU']){const {storeInstagramData:_0x3a3f7b}=_0x5c4e3f[_0x2b58(0x8d)](_0x1a6ed6,0xb);_0xce8e00['push']({'platform':_0x2b58(0x22),'component':_0x5c4e3f[_0x2b58(0x8e)],'status':typeof _0x3a3f7b===_0x2b58(0x43)?_0x5c4e3f['pVVeX']:_0x5c4e3f[_0x2b58(0x8f)],'message':_0x2b58(0x3b)});}else _0xb923b7[_0x2b58(0x14)]({'platform':_0x5c4e3f[_0x2b58(0x90)],'component':_0x5c4e3f[_0x2b58(0x91)],'status':_0x5c4e3f[_0x2b58(0x8f)],'message':_0x2b58(0x92)+_0x503ae1[_0x2b58(0x32)]});}try{const _0x265b82=new AbortController(),_0x2826dd=_0x5c4e3f['dymQp'](setTimeout,()=>_0x265b82[_0x2b58(0x93)](),0x2710),_0x11dfab=await _0x5c4e3f[_0x2b58(0x94)](fetch,_api[_0x2b58(0x87)]['BASE_URL']+'/platform-data/store',{'method':_0x5c4e3f['xiHpH'],'signal':_0x265b82[_0x2b58(0x89)]});_0x5c4e3f[_0x2b58(0x95)](clearTimeout,_0x2826dd),_0xb923b7[_0x2b58(0x14)]({'platform':_0x5c4e3f['FfHob'],'component':_0x5c4e3f[_0x2b58(0x96)],'status':_0x5c4e3f[_0x2b58(0x97)](_0x11dfab[_0x2b58(0x8b)],0x1f4)?_0x5c4e3f[_0x2b58(0x98)]:_0x5c4e3f['iOzly'],'message':_0x2b58(0x99)+_0x11dfab[_0x2b58(0x8b)],'details':{'status':_0x11dfab[_0x2b58(0x8b)]}});}catch(_0x85aa73){_0xb923b7[_0x2b58(0x14)]({'platform':_0x5c4e3f[_0x2b58(0x90)],'component':_0x5c4e3f[_0x2b58(0x96)],'status':_0x5c4e3f[_0x2b58(0x8a)],'message':_0x2b58(0x9a)+_0x85aa73[_0x2b58(0x32)]});}return _0xb923b7;};exports['testBackendConnectivity']=testBackendConnectivity;const testPlatformDetection=()=>{const _0x3da14d={'OIZRg':_0x2b58(0x35),'sLDCL':function(_0x611e46,_0x2aca32){return _0x611e46!==_0x2aca32;},'DGRkv':_0x2b58(0x9b),'Layma':function(_0x41817f,_0x3e44dd){return _0x41817f(_0x3e44dd);},'GtYeT':_0x2b58(0x7),'YaIDf':'detection','tmdlL':_0x2b58(0x6),'iCDGI':_0x2b58(0x8),'LmMLr':_0x2b58(0x9c),'JKdbO':_0x2b58(0x9d),'KwGTP':function(_0x51b6c9,_0x455c05){return _0x51b6c9(_0x455c05);},'PxSpi':'instagram','xvksf':function(_0x140683,_0x5aedd9){return _0x140683(_0x5aedd9);},'AJpFl':_0x2b58(0x9e),'yVDHj':_0x2b58(0xc),'uysSf':function(_0x341f12,_0x16ee36){return _0x341f12(_0x16ee36);},'pRjbB':_0x2b58(0x9f),'Goros':_0x2b58(0xa0),'qXYVP':_0x2b58(0xf),'HIQUD':function(_0x58d049,_0x254dd9){return _0x58d049(_0x254dd9);},'QDnSZ':_0x2b58(0xa1)},_0x2f48f0=[];try{if(_0x3da14d[_0x2b58(0xa2)](_0x3da14d[_0x2b58(0xa3)],_0x3da14d[_0x2b58(0xa3)]))_0x380b71[_0x2b58(0x14)]({'platform':_0x2b58(0x22),'component':_0x3da14d[_0x2b58(0xa4)],'status':_0x2b58(0x8),'message':'Import\x20error:\x20'+_0x370c9c[_0x2b58(0x32)]});else{const {isWebViewExtractionPlatform:_0x2af60e,isHingePlatform:_0x39fcbd,isInstagramPlatform:_0x37d2f5,isSephoraPlatform:_0x558ada,isLLMPlatform:_0x485908}=_0x3da14d[_0x2b58(0xa5)](__ONAIROS_REQ_FUNC__,0x3),_0x3d6d65=_0x3da14d[_0x2b58(0xa5)](_0x39fcbd,_0x3da14d['GtYeT'])&&_0x2af60e(_0x3da14d[_0x2b58(0xa6)])&&!_0x3da14d[_0x2b58(0xa5)](_0x485908,_0x2b58(0x7));_0x2f48f0[_0x2b58(0x14)]({'platform':_0x3da14d[_0x2b58(0xa6)],'component':_0x3da14d[_0x2b58(0xa7)],'status':_0x3d6d65?_0x3da14d[_0x2b58(0xa8)]:_0x3da14d[_0x2b58(0xa9)],'message':_0x3d6d65?_0x3da14d[_0x2b58(0xaa)]:_0x3da14d[_0x2b58(0xab)]});const _0x2f291b=_0x3da14d[_0x2b58(0xac)](_0x37d2f5,_0x3da14d['PxSpi'])&&_0x2af60e('instagram')&&!_0x3da14d['xvksf'](_0x485908,_0x3da14d[_0x2b58(0xad)]);_0x2f48f0[_0x2b58(0x14)]({'platform':_0x3da14d[_0x2b58(0xad)],'component':_0x3da14d[_0x2b58(0xa7)],'status':_0x2f291b?_0x3da14d[_0x2b58(0xa8)]:_0x2b58(0x8),'message':_0x2f291b?_0x3da14d[_0x2b58(0xae)]:'Instagram\x20detection\x20failed'});const _0x5d24af=_0x3da14d[_0x2b58(0xa5)](_0x558ada,_0x3da14d[_0x2b58(0xaf)])&&_0x3da14d[_0x2b58(0xb0)](_0x2af60e,_0x3da14d[_0x2b58(0xaf)])&&!_0x485908(_0x2b58(0xc));_0x2f48f0['push']({'platform':_0x3da14d[_0x2b58(0xaf)],'component':_0x2b58(0xb1),'status':_0x5d24af?'pass':_0x3da14d['iCDGI'],'message':_0x5d24af?_0x3da14d['pRjbB']:_0x3da14d[_0x2b58(0xb2)]});const {isTelegramPlatform:_0x1d78c0}=_0x3da14d[_0x2b58(0xb3)](__ONAIROS_REQ_FUNC__,0x2),_0x4cb4ad=_0x1d78c0(_0x3da14d['qXYVP'])&&_0x3da14d[_0x2b58(0xb4)](_0x2af60e,_0x3da14d[_0x2b58(0xb5)])&&!_0x485908(_0x3da14d[_0x2b58(0xb5)]);_0x2f48f0[_0x2b58(0x14)]({'platform':_0x3da14d[_0x2b58(0xb5)],'component':_0x3da14d[_0x2b58(0xa7)],'status':_0x4cb4ad?_0x3da14d['tmdlL']:_0x2b58(0x8),'message':_0x4cb4ad?_0x3da14d[_0x2b58(0xb6)]:'Telegram\x20detection\x20failed'});}}catch(_0x241aa8){_0x2f48f0[_0x2b58(0x14)]({'platform':'all','component':_0x2b58(0xb1),'status':_0x3da14d[_0x2b58(0xa9)],'message':'Detection\x20test\x20error:\x20'+_0x241aa8['message']});}return _0x2f48f0;};function _0x2b58(_0x23a878,_0x2b588b){_0x23a878=_0x23a878-0x0;const _0x272548=_0x23a8();let _0x25dd16=_0x272548[_0x23a878];return _0x25dd16;}function _0x23a8(){const _0x5f50d0=['__esModule','testWebViewScriptExports','testPlatformDetection','testPlatformConnector','runConnectorSanityTests','chatgpt','pass','hinge','fail','Hinge\x20scripts\x20missing','Instagram\x20scripts\x20exported\x20correctly','Instagram\x20scripts\x20missing','sephora','Sephora\x20scripts\x20exported\x20correctly','Sephora\x20scripts\x20missing','telegram','Telegram\x20scripts\x20missing','utilities','Platform\x20detection\x20functions\x20available','hLUko','push','XoRgw','BlMKo','KNztA','ChatGPT\x20scripts\x20missing','Trnfz','JVZqW','webview_scripts','NOFzB','ijNwR','btjWU','OwWyH','cDTwS','jpJXN','instagram','xanaX','LjDvz','FfoKq','BepIp','kcrmV','gTenc','QbVBl','Telegram\x20scripts\x20exported\x20correctly','NyIky','bmdCi','platform_detection','UyMLq','cqYAv','vRfJd','Import\x20error:\x20','message','extractor','โ
\x20All\x20tests\x20passed!\x20Connectors\x20are\x20ready.','service','TylTU','claude','Claude\x20service\x20function\x20available','Hinge\x20service\x20function\x20available','rNlNk','Instagram\x20service\x20function\x20available','YpIvJ','hTkAd','Sephora\x20service\x20function\x20available','Telegram\x20service\x20function\x20available','JQbLO','oQGCZ','Uhcfz','function','yaSux','jsLSk','Wnfdh','uLWeu','gBWYz','GtsdT','ZXmBy','mrpNW','mCEKq','hWQWc','YaYrc','kxGUO','QDRPB','BEfjt','jctPW','OEJff','kGKBq','NxarA','GOwya','Uztdf','BahBd','LcodQ','eQwlt','KirXX','log','NKPyi','testServiceImports','Export\x20script\x20available','Export\x20script\x20missing','Sephora\x20extractor\x20hook\x20available','Hinge\x20extractor\x20hook\x20available','ueLrR','FZbId','hZckK','Instagram\x20extractor\x20hook\x20available','UEmgW','ZfUjw','IfFIO','qaZTf','qEhxN','PyTqF','_EXPORT_SCRIPT','webview_script','RtzvE','LmEjO','KrcjQ','JRFOB','wAINB','AHNrH','PjFWS','CLhCA','cdJQK','OQJls','XyEOa','QXzBv','NYwTx','AnMBT','oVfad','sluUU','kuejo','Telegram\x20extractor\x20hook\x20available','testExtractorImports','warning','Backend\x20health\x20check\x20passed','backend','platform_data_endpoint','XhEtE','API_CONFIG','/health','signal','iOzly','status','vUabU','bOxCO','IzLOa','ylqMd','FfHob','eioeu','Backend\x20unreachable:\x20','abort','UZwvO','GiMkp','hiOwM','LdQpi','pVVeX','Platform\x20data\x20endpoint\x20check:\x20','Endpoint\x20check\x20failed\x20(may\x20require\x20auth):\x20','YVRpf','Hinge\x20detection\x20correct','Hinge\x20detection\x20failed','Instagram\x20detection\x20correct','Sephora\x20detection\x20correct','Sephora\x20detection\x20failed','Telegram\x20detection\x20correct','sLDCL','DGRkv','OIZRg','Layma','GtYeT','YaIDf','tmdlL','iCDGI','LmMLr','JKdbO','KwGTP','PxSpi','AJpFl','yVDHj','uysSf','detection','Goros','xvksf','HIQUD','qXYVP','QDnSZ','๐งช\x20[CONNECTOR_TESTS]\x20Starting\x20connector\x20sanity\x20tests...\x0a','๐\x20Testing\x20service\x20imports...','๐\x20Testing\x20extractor\x20imports...','๐\x20Testing\x20platform\x20detection...','๐งช\x20CONNECTOR\x20SANITY\x20TEST\x20RESULTS','JeyAA','QwTvU','HoadN','jNCBe','jYJDT','SzRVE','๐\x20Testing\x20backend\x20connectivity...','length','filter','vOWAI','crxVh','jlOuV','\x20passed,\x20','\x20failed,\x20','\x20warnings','RuzYZ','fqoWP','โ\x20Some\x20tests\x20failed!\x20Please\x20check\x20the\x20errors\x20above.','BVQGH','health','fXtIV','RmPXT','TtJpK','storeHingeData','storeTelegramData','validation','๐งช\x20Testing\x20','toLowerCase','lrjaz','DbHQc','toUpperCase','dXqVn','CVXNz','CySpP','SgRWX','platform','bONNg','eFlXe','SDAFi','Script\x20import\x20failed:\x20','MCxnA','jLjWX','RwJpG','pzsKs','storeSephoraData','kTUOZ','Service\x20function\x20','\x20available','CqxWx','GPMkU','ChatGPT\x20service\x20function\x20available','use','charAt','slice','DataExtractor','OvbkI','ljGxu','Extractor\x20import\x20failed:\x20','dHjKH','tZdXX','Unknown\x20platform:\x20','.\x20Use\x20\x27hinge\x27,\x20\x27instagram\x27,\x20\x27sephora\x27,\x20or\x20\x27telegram\x27.','mgblY','YnreY','mtvAy','component'];_0x23a8=function(){return _0x5f50d0;};return _0x23a8();}exports[_0x2b58(0x2)]=testPlatformDetection;const runConnectorSanityTests=async()=>{const _0x56b56d={'JeyAA':_0x2b58(0xb7),'QwTvU':'๐\x20Testing\x20WebView\x20script\x20exports...','InfYp':function(_0x46f602){return _0x46f602();},'HoadN':_0x2b58(0xb8),'jNCBe':_0x2b58(0xb9),'jYJDT':function(_0x119d0e){return _0x119d0e();},'SzRVE':_0x2b58(0xba),'vOWAI':'\x0a========================================','crxVh':_0x2b58(0xbb),'RuzYZ':'========================================\x0a','fCLZE':_0x2b58(0x6),'tFetO':function(_0xb7f4e2,_0x4a19f3){return _0xb7f4e2===_0x4a19f3;},'jlOuV':_0x2b58(0x8),'fqoWP':function(_0x20be6d,_0x25c972){return _0x20be6d>_0x25c972;},'usXXA':'โ ๏ธ\x20All\x20critical\x20tests\x20passed,\x20but\x20there\x20are\x20warnings.','BVQGH':_0x2b58(0x34)};console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xbc)]);const _0x4551d0=[];console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xbd)]),_0x4551d0['push'](..._0x56b56d['InfYp'](testWebViewScriptExports)),console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xbe)]),_0x4551d0[_0x2b58(0x14)](...testServiceImports()),console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xbf)]),_0x4551d0['push'](..._0x56b56d[_0x2b58(0xc0)](testExtractorImports)),console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xc1)]),_0x4551d0[_0x2b58(0x14)](..._0x56b56d[_0x2b58(0xc0)](testPlatformDetection)),console['log'](_0x2b58(0xc2)),_0x4551d0[_0x2b58(0x14)](...await testBackendConnectivity());const _0x4998f4=_0x4551d0['filter'](_0x1f43cf=>_0x1f43cf[_0x2b58(0x8b)]===_0x2b58(0x6))[_0x2b58(0xc3)],_0x3e3a2d=_0x4551d0[_0x2b58(0xc4)](_0x52d71c=>_0x52d71c[_0x2b58(0x8b)]==='fail')[_0x2b58(0xc3)],_0x10858e=_0x4551d0[_0x2b58(0xc4)](_0x369a9e=>_0x369a9e[_0x2b58(0x8b)]==='warning')[_0x2b58(0xc3)];console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xc5)]),console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xc6)]),console[_0x2b58(0x5c)](_0x56b56d['RuzYZ']);for(const _0x2358a7 of _0x4551d0){const _0x4b3a4e=_0x2358a7['status']===_0x56b56d['fCLZE']?'โ
':_0x56b56d['tFetO'](_0x2358a7[_0x2b58(0x8b)],_0x56b56d[_0x2b58(0xc7)])?'โ':'โ ๏ธ';console[_0x2b58(0x5c)](_0x4b3a4e+'\x20['+_0x2358a7['platform']['toUpperCase']()+']\x20'+_0x2358a7['component']+':\x20'+_0x2358a7[_0x2b58(0x32)]);}console['log']('\x0a========================================'),console[_0x2b58(0x5c)]('๐\x20Summary:\x20'+_0x4998f4+_0x2b58(0xc8)+_0x3e3a2d+_0x2b58(0xc9)+_0x10858e+_0x2b58(0xca)),console['log'](_0x56b56d[_0x2b58(0xcb)]);if(_0x56b56d[_0x2b58(0xcc)](_0x3e3a2d,0x0))console[_0x2b58(0x5c)](_0x2b58(0xcd));else _0x56b56d['fqoWP'](_0x10858e,0x0)?console[_0x2b58(0x5c)](_0x56b56d['usXXA']):console[_0x2b58(0x5c)](_0x56b56d[_0x2b58(0xce)]);return{'passed':_0x4998f4,'failed':_0x3e3a2d,'warnings':_0x10858e,'results':_0x4551d0};};exports[_0x2b58(0x4)]=runConnectorSanityTests;const testPlatformConnector=async _0x11193b=>{const _0x1c7507={'CySpP':function(_0x4b625d,_0xf18e35){return _0x4b625d===_0xf18e35;},'SgRWX':_0x2b58(0x8),'SDAFi':'backend','dtPcn':_0x2b58(0xcf),'CqxWx':_0x2b58(0x5),'GPMkU':'service','bONNg':function(_0x598904,_0x285f60){return _0x598904===_0x285f60;},'kTUOZ':_0x2b58(0x43),'CVXNz':_0x2b58(0x6),'dHjKH':function(_0x58ace5,_0x5956a4){return _0x58ace5===_0x5956a4;},'MCxnA':'hinge','lrjaz':_0x2b58(0xc),'beKXJ':_0x2b58(0xd0),'DbHQc':function(_0x4b4503,_0xb64a79){return _0x4b4503(_0xb64a79);},'dXqVn':'webview_script','LXwYf':_0x2b58(0x60),'SuwfB':_0x2b58(0xd1),'WjcMy':_0x2b58(0xd2),'bFNyJ':_0x2b58(0xd3),'jLjWX':function(_0x5a3133,_0x8b77f8){return _0x5a3133===_0x8b77f8;},'RwJpG':_0x2b58(0x22),'BhuYD':'storeInstagramData','pzsKs':_0x2b58(0xd4),'lJtgo':function(_0xf5ab48,_0x35727e){return _0xf5ab48+_0x35727e;},'OvbkI':_0x2b58(0x33),'nvOmB':function(_0xa8ce52,_0x37e025){return _0xa8ce52===_0x37e025;},'ljGxu':function(_0x79240b,_0x1b11f0){return _0x79240b!==_0x1b11f0;},'NFMtE':'mvRID','WAWPt':'WgIet','tZdXX':_0x2b58(0xd5),'mgblY':function(_0x155196,_0xe4aeae){return _0x155196!==_0xe4aeae;},'mtvAy':'vgtfZ','HeqVF':function(_0x240223,_0x1ded9e){return _0x240223===_0x1ded9e;}};console[_0x2b58(0x5c)](_0x2b58(0xd6)+_0x11193b+'\x20connector...\x0a');const _0x58fb7b=[],_0x342b59=_0x11193b[_0x2b58(0xd7)]();if([_0x1c7507['MCxnA'],_0x2b58(0x22),_0x1c7507[_0x2b58(0xd8)],_0x2b58(0xf)]['includes'](_0x342b59)){try{if('fXtIV'===_0x1c7507['beKXJ']){const _0x568a2c=_0x1c7507[_0x2b58(0xd9)](__ONAIROS_REQ_FUNC__,0x1),_0xf43039=_0x342b59[_0x2b58(0xda)]()+'_EXPORT_SCRIPT',_0x1d9b48=!!_0x568a2c[_0xf43039];_0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x1c7507[_0x2b58(0xdb)],'status':_0x1d9b48?_0x1c7507[_0x2b58(0xdc)]:_0x1c7507['SgRWX'],'message':_0x1d9b48?_0x2b58(0x5f):_0x1c7507['LXwYf']});}else{const _0xb823cb=_0x1c7507['CySpP'](_0x5b3fd3[_0x2b58(0x8b)],_0x2b58(0x6))?'โ
':_0x1c7507[_0x2b58(0xdd)](_0x38a534[_0x2b58(0x8b)],_0x1c7507[_0x2b58(0xde)])?'โ':'โ ๏ธ';_0x433f26[_0x2b58(0x5c)](_0xb823cb+'\x20['+_0x47ad36[_0x2b58(0xdf)][_0x2b58(0xda)]()+']\x20'+_0x48b522['component']+':\x20'+_0x262e7d[_0x2b58(0x32)]);}}catch(_0x46216a){_0x1c7507[_0x2b58(0xe0)](_0x1c7507['SuwfB'],_0x2b58(0xe1))?_0x59d845[_0x2b58(0x14)]({'platform':_0x1c7507[_0x2b58(0xe2)],'component':_0x1c7507['dtPcn'],'status':'fail','message':_0x2b58(0x92)+_0x3537e6[_0x2b58(0x32)]}):_0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x2b58(0x6e),'status':_0x2b58(0x8),'message':_0x2b58(0xe3)+_0x46216a[_0x2b58(0x32)]});}try{if('JmHuT'!==_0x1c7507['WjcMy']){const _0x2b0f18=__ONAIROS_REQ_FUNC__(0x15),_0x2a4101=_0x342b59===_0x1c7507[_0x2b58(0xe4)]?_0x1c7507['bFNyJ']:_0x1c7507[_0x2b58(0xe5)](_0x342b59,_0x1c7507[_0x2b58(0xe6)])?_0x1c7507['BhuYD']:_0x342b59==='telegram'?_0x1c7507[_0x2b58(0xe7)]:_0x2b58(0xe8);_0x58fb7b['push']({'platform':_0x342b59,'component':_0x1c7507['GPMkU'],'status':_0x1c7507[_0x2b58(0xe0)](typeof _0x2b0f18[_0x2a4101],_0x1c7507[_0x2b58(0xe9)])?_0x1c7507[_0x2b58(0xdc)]:_0x2b58(0x8),'message':_0x2b58(0xea)+_0x2a4101+_0x2b58(0xeb)});}else{const {storeChatGPTConversations:_0x240110}=_0x2f29fb(0x8);_0x4bf1eb['push']({'platform':_0x1c7507[_0x2b58(0xec)],'component':_0x1c7507[_0x2b58(0xed)],'status':_0x1c7507[_0x2b58(0xe0)](typeof _0x240110,_0x1c7507[_0x2b58(0xe9)])?_0x1c7507[_0x2b58(0xdc)]:_0x2b58(0x8),'message':_0x2b58(0xee)});}}catch(_0x4a95ff){_0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x1c7507[_0x2b58(0xed)],'status':_0x1c7507[_0x2b58(0xde)],'message':'Service\x20import\x20failed:\x20'+_0x4a95ff[_0x2b58(0x32)]});}try{const _0x36e163=__ONAIROS_REQ_FUNC__(0x16),_0x1b6cd9=_0x2b58(0xef)+_0x1c7507['lJtgo'](_0x342b59[_0x2b58(0xf0)](0x0)[_0x2b58(0xda)](),_0x342b59[_0x2b58(0xf1)](0x1))+_0x2b58(0xf2);_0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x1c7507[_0x2b58(0xf3)],'status':_0x1c7507['nvOmB'](typeof _0x36e163[_0x1b6cd9],_0x1c7507['kTUOZ'])?_0x1c7507[_0x2b58(0xdc)]:_0x1c7507[_0x2b58(0xde)],'message':'Extractor\x20hook\x20'+_0x1b6cd9+_0x2b58(0xeb)});}catch(_0x2fa972){if(_0x1c7507[_0x2b58(0xf4)](_0x1c7507['NFMtE'],_0x1c7507['WAWPt']))_0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x1c7507['OvbkI'],'status':_0x1c7507['SgRWX'],'message':_0x2b58(0xf5)+_0x2fa972['message']});else{const _0x45ed39=_0x504dd5['status']===_0x1c7507[_0x2b58(0xdc)]?'โ
':_0x1c7507[_0x2b58(0xf6)](_0xb27464[_0x2b58(0x8b)],_0x1c7507['SgRWX'])?'โ':'โ ๏ธ';_0x2cd2d0[_0x2b58(0x5c)](_0x45ed39+'\x20'+_0x8ed30['component']+':\x20'+_0x49dc94['message']);}}}else _0x58fb7b[_0x2b58(0x14)]({'platform':_0x342b59,'component':_0x1c7507[_0x2b58(0xf7)],'status':'warning','message':_0x2b58(0xf8)+_0x11193b+_0x2b58(0xf9)});for(const _0x2fbaf5 of _0x58fb7b){if(_0x1c7507[_0x2b58(0xfa)](_0x2b58(0xfb),_0x1c7507[_0x2b58(0xfc)])){const _0x1e44d9=_0x1c7507['HeqVF'](_0x2fbaf5['status'],_0x1c7507[_0x2b58(0xdc)])?'โ
':_0x1c7507[_0x2b58(0xe5)](_0x2fbaf5[_0x2b58(0x8b)],'fail')?'โ':'โ ๏ธ';console['log'](_0x1e44d9+'\x20'+_0x2fbaf5[_0x2b58(0xfd)]+':\x20'+_0x2fbaf5[_0x2b58(0x32)]);}else _0x5104fe[_0x2b58(0x14)]({'platform':_0x3ff5a3,'component':_0x2b58(0x33),'status':_0x1c7507['SgRWX'],'message':_0x2b58(0xf5)+_0x4778ab[_0x2b58(0x32)]});}return _0x58fb7b;};exports[_0x2b58(0x3)]=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
|