@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,28 +1,601 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector API Tests / Sanity Checks
|
|
3
|
+
*
|
|
4
|
+
* This module provides test utilities to verify all platform connectors
|
|
5
|
+
* are properly configured and their services are working correctly.
|
|
6
|
+
*
|
|
7
|
+
* Run these tests to ensure:
|
|
8
|
+
* 1. All WebView scripts are properly exported
|
|
9
|
+
* 2. All extractor hooks are available
|
|
10
|
+
* 3. All services can be instantiated
|
|
11
|
+
* 4. Backend endpoints are reachable
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* import { runConnectorSanityTests } from './utils/connectorTests';
|
|
15
|
+
* await runConnectorSanityTests();
|
|
16
|
+
*/
|
|
1
17
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
require('
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function _0x53a5(_0x218a36,_0x53a535){_0x218a36=_0x218a36-0x0;const _0x5442cf=_0x218a();let _0x2bfe86=_0x5442cf[_0x218a36];return _0x2bfe86;}import{API_CONFIG}from'../config/api';export const testWebViewScriptExports=()=>{const _0xd8262c={'dXXdc':function(_0x2fa734,_0x4f825a){return _0x2fa734(_0x4f825a);},'PBmfu':_0x53a5(0x0),'XoErs':'extractor','bViDm':function(_0x55caf3,_0x235303){return _0x55caf3===_0x235303;},'PaswK':_0x53a5(0x1),'yqJTB':_0x53a5(0x2),'gitVq':'FfSRF','GKpPt':_0x53a5(0x3),'AcLkO':_0x53a5(0x4),'FXTKk':'ChatGPT\x20scripts\x20missing','DZFoj':'claude','TSWZS':_0x53a5(0x5),'sGZws':_0x53a5(0x6),'KDvQs':_0x53a5(0x7),'ZJLLQ':_0x53a5(0x8),'GVnpa':function(_0x40691e,_0x334cbd){return _0x40691e(_0x334cbd);},'GHLlB':'instagram','dUYTv':_0x53a5(0x9),'rpins':_0x53a5(0xa),'lTajN':function(_0x49d25f,_0x1d77fb){return _0x49d25f(_0x1d77fb);},'gIxdN':_0x53a5(0xb),'MplIX':'Sephora\x20scripts\x20missing','ZzPGb':_0x53a5(0xc),'kdUgy':'Telegram\x20scripts\x20exported\x20correctly','EYKnq':_0x53a5(0xd),'zHhSq':_0x53a5(0xe),'zBKeC':_0x53a5(0xf),'HuRdr':function(_0x19dddb,_0x410d53){return _0x19dddb&&_0x410d53;},'ZKHfC':'Platform\x20detection\x20functions\x20available','eUDSq':'all'},_0x3aa9e6=[];try{if(_0x53a5(0x10)!==_0xd8262c[_0x53a5(0x11)]){const {CHATGPT_CONSENT_POPUP_SCRIPT:_0x2b79de,CHATGPT_EXPORT_SCRIPT:_0x19625b}=__ONAIROS_REQ_FUNC__(0x13);_0x3aa9e6['push']({'platform':'chatgpt','component':_0xd8262c[_0x53a5(0x12)],'status':_0x19625b?_0x53a5(0x5):_0xd8262c[_0x53a5(0x13)],'message':_0x19625b?_0xd8262c['AcLkO']:_0xd8262c[_0x53a5(0x14)]});const {CLAUDE_CONSENT_POPUP_SCRIPT:_0x343c53,CLAUDE_EXPORT_SCRIPT:_0x48a752}=__ONAIROS_REQ_FUNC__(0x12);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x16)],'component':_0xd8262c[_0x53a5(0x12)],'status':_0x48a752?_0xd8262c[_0x53a5(0x17)]:_0xd8262c[_0x53a5(0x13)],'message':_0x48a752?_0xd8262c[_0x53a5(0x18)]:_0xd8262c[_0x53a5(0x19)]});const {HINGE_CONSENT_POPUP_SCRIPT:_0x4c3f47,HINGE_EXPORT_SCRIPT:_0x161afd}=_0xd8262c[_0x53a5(0x1a)](__ONAIROS_REQ_FUNC__,0x11);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0x53a5(0x0),'component':_0xd8262c[_0x53a5(0x12)],'status':_0x161afd?_0xd8262c[_0x53a5(0x17)]:_0xd8262c[_0x53a5(0x13)],'message':_0x161afd?_0xd8262c[_0x53a5(0x1b)]:_0x53a5(0x1c)});const {INSTAGRAM_CONSENT_POPUP_SCRIPT:_0x4e4f1a,INSTAGRAM_EXPORT_SCRIPT:_0x5dd1dd}=_0xd8262c[_0x53a5(0x1d)](__ONAIROS_REQ_FUNC__,0x6);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x1e)],'component':_0xd8262c['GKpPt'],'status':_0x5dd1dd?_0xd8262c[_0x53a5(0x17)]:_0xd8262c[_0x53a5(0x13)],'message':_0x5dd1dd?_0xd8262c[_0x53a5(0x1f)]:_0xd8262c[_0x53a5(0x20)]});const {SEPHORA_CONSENT_POPUP_SCRIPT:_0x3577f4,SEPHORA_EXPORT_SCRIPT:_0x52c7a7}=_0xd8262c[_0x53a5(0x21)](__ONAIROS_REQ_FUNC__,0x5);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x22)],'component':_0xd8262c[_0x53a5(0x12)],'status':_0x52c7a7?_0xd8262c[_0x53a5(0x17)]:_0xd8262c[_0x53a5(0x13)],'message':_0x52c7a7?_0x53a5(0x23):_0xd8262c['MplIX']});const {TELEGRAM_CONSENT_POPUP_SCRIPT:_0x368199,TELEGRAM_EXPORT_SCRIPT:_0x43710e}=_0xd8262c['dXXdc'](__ONAIROS_REQ_FUNC__,0x4);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x24)],'component':_0xd8262c['GKpPt'],'status':_0x43710e?'pass':_0xd8262c['yqJTB'],'message':_0x43710e?_0xd8262c[_0x53a5(0x25)]:_0xd8262c[_0x53a5(0x26)]});const {isWebViewExtractionPlatform:_0x25963f,isHingePlatform:_0xecf2e2,isInstagramPlatform:_0x59c459,isSephoraPlatform:_0x1c2f88,isTelegramPlatform:_0x475463}=_0xd8262c[_0x53a5(0x1d)](__ONAIROS_REQ_FUNC__,0x3);_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c['zHhSq'],'component':_0xd8262c[_0x53a5(0x27)],'status':_0xd8262c[_0x53a5(0x28)](_0x25963f,_0xecf2e2)&&_0x59c459&&_0x1c2f88&&_0x475463?_0xd8262c['TSWZS']:_0x53a5(0x2),'message':_0xd8262c[_0x53a5(0x29)]});}else{const {useHingeDataExtractor:useHingeDataExtractor}=_0xd8262c[_0x53a5(0x1a)](_0x52fc05,0xd);_0x44dab6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x2a)],'component':_0xd8262c[_0x53a5(0x2b)],'status':_0xd8262c[_0x53a5(0x2c)](typeof useHingeDataExtractor,_0xd8262c[_0x53a5(0x2d)])?_0x53a5(0x5):_0xd8262c[_0x53a5(0x13)],'message':'Hinge\x20extractor\x20hook\x20available'});}}catch(_0x58da46){_0x3aa9e6[_0x53a5(0x15)]({'platform':_0xd8262c[_0x53a5(0x2e)],'component':_0xd8262c['GKpPt'],'status':_0xd8262c[_0x53a5(0x13)],'message':_0x53a5(0x2f)+_0x58da46[_0x53a5(0x30)]});}return _0x3aa9e6;};export const testServiceImports=()=>{const _0x60ad44={'YoJIc':_0x53a5(0x31),'JIDMO':function(_0x5f2e3a,_0x25b954){return _0x5f2e3a===_0x25b954;},'CnVKY':_0x53a5(0x1),'lhbQG':_0x53a5(0x2),'waSQw':_0x53a5(0x32),'LGwiR':function(_0xb9573a,_0x4fd396){return _0xb9573a(_0x4fd396);},'zjUUO':function(_0xdd5440,_0x2bfd28){return _0xdd5440===_0x2bfd28;},'KhlQr':_0x53a5(0x0),'MSgGQ':_0x53a5(0x33),'FWKGV':'storeInstagramData','wWsCm':function(_0x240061,_0x47d397){return _0x240061===_0x47d397;},'lLcrB':_0x53a5(0xc),'swJsz':'storeTelegramData','MhmCN':_0x53a5(0x34),'DXxdR':'โ\x20Some\x20tests\x20failed!\x20Please\x20check\x20the\x20errors\x20above.','EiURq':'sephora','zMleS':function(_0xa73814,_0x44f8c5){return _0xa73814===_0x44f8c5;},'JYQOr':_0x53a5(0x35),'AeNQD':_0x53a5(0x36),'XpYOt':function(_0x7fb60b,_0x47daaf){return _0x7fb60b(_0x47daaf);},'uuTcD':_0x53a5(0x37),'PPSuf':function(_0x1b754f,_0xeb3745){return _0x1b754f!==_0xeb3745;},'FXTgB':_0x53a5(0x38),'EEJvl':function(_0x24e7bc,_0x5e819f){return _0x24e7bc(_0x5e819f);},'oaArN':'claude','PeSGg':_0x53a5(0x5),'Mtdmp':_0x53a5(0x39),'oYWvf':_0x53a5(0x3a),'zvQZg':_0x53a5(0x3b),'EbEwE':function(_0x31b8fc,_0x2be51e){return _0x31b8fc===_0x2be51e;},'VUiFk':function(_0x1b271a,_0x569193){return _0x1b271a(_0x569193);},'gCgeF':_0x53a5(0x3c),'uDqQP':function(_0x9148f2,_0x46551a){return _0x9148f2===_0x46551a;},'WPOdd':_0x53a5(0x3d),'uplBA':function(_0x4a57fa,_0x48e9d1){return _0x4a57fa===_0x48e9d1;},'EipYN':'Sephora\x20service\x20function\x20available','xuolC':function(_0x1ac1ec,_0x935da){return _0x1ac1ec!==_0x935da;},'qmJgG':_0x53a5(0x3e),'ipGMA':_0x53a5(0x3f),'odAUU':function(_0x4f3732,_0x124e03){return _0x4f3732===_0x124e03;},'lOKpM':'PEjNX'},_0x4139d2=[];try{if(_0x60ad44[_0x53a5(0x40)](_0x60ad44[_0x53a5(0x41)],_0x60ad44[_0x53a5(0x42)])){const {storeInstagramData:_0x4ff83e}=_0x1824f5(0xa);_0x3cf3de[_0x53a5(0x15)]({'platform':_0x53a5(0x3c),'component':_0x60ad44[_0x53a5(0x43)],'status':_0x60ad44[_0x53a5(0x44)](typeof _0x4ff83e,_0x60ad44[_0x53a5(0x45)])?_0x53a5(0x5):_0x60ad44[_0x53a5(0x46)],'message':_0x60ad44['waSQw']});}else{const {storeChatGPTConversations:_0x4ba952}=_0x60ad44['XpYOt'](__ONAIROS_REQ_FUNC__,0x7);_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x47)],'component':_0x60ad44['YoJIc'],'status':_0x60ad44[_0x53a5(0x40)](typeof _0x4ba952,_0x60ad44[_0x53a5(0x45)])?_0x53a5(0x5):_0x60ad44[_0x53a5(0x46)],'message':_0x53a5(0x48)});}}catch(_0x35c48e){_0x4139d2[_0x53a5(0x15)]({'platform':'chatgpt','component':_0x60ad44['YoJIc'],'status':_0x60ad44[_0x53a5(0x46)],'message':_0x53a5(0x2f)+_0x35c48e[_0x53a5(0x30)]});}try{if(_0x60ad44[_0x53a5(0x49)](_0x60ad44[_0x53a5(0x4a)],_0x53a5(0x4b))){const {storeClaudeConversations:_0x512821}=_0x60ad44[_0x53a5(0x4c)](__ONAIROS_REQ_FUNC__,0x8);_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x4d)],'component':_0x53a5(0x31),'status':_0x60ad44[_0x53a5(0x4e)](typeof _0x512821,_0x60ad44[_0x53a5(0x45)])?_0x60ad44[_0x53a5(0x4f)]:_0x60ad44['lhbQG'],'message':_0x60ad44[_0x53a5(0x50)]});}else{const _0x3879ca=_0x60ad44[_0x53a5(0x51)](_0x33e9b8,0x14),_0x5dc723=_0x60ad44[_0x53a5(0x4e)](_0x5e036f,_0x60ad44[_0x53a5(0x52)])?_0x60ad44[_0x53a5(0x53)]:_0x5eb24c===_0x53a5(0x3c)?_0x60ad44['FWKGV']:_0x60ad44[_0x53a5(0x54)](_0x5d8811,_0x60ad44['lLcrB'])?_0x60ad44[_0x53a5(0x55)]:_0x60ad44[_0x53a5(0x56)];_0x5ece6d['push']({'platform':_0x4029c2,'component':_0x53a5(0x31),'status':_0x60ad44[_0x53a5(0x54)](typeof _0x3879ca[_0x5dc723],'function')?'pass':_0x60ad44['lhbQG'],'message':_0x53a5(0x57)+_0x5dc723+_0x53a5(0x58)});}}catch(_0x459b5b){_0x4139d2[_0x53a5(0x15)]({'platform':_0x53a5(0x59),'component':_0x60ad44['YoJIc'],'status':_0x60ad44[_0x53a5(0x46)],'message':_0x53a5(0x2f)+_0x459b5b[_0x53a5(0x30)]});}try{if(_0x60ad44[_0x53a5(0x49)](_0x60ad44[_0x53a5(0x5a)],_0x60ad44[_0x53a5(0x5b)])){const {storeHingeData:_0x2b8c4f}=__ONAIROS_REQ_FUNC__(0x9);_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x52)],'component':_0x60ad44[_0x53a5(0x43)],'status':_0x60ad44[_0x53a5(0x5c)](typeof _0x2b8c4f,_0x60ad44[_0x53a5(0x45)])?_0x60ad44[_0x53a5(0x4f)]:_0x60ad44[_0x53a5(0x46)],'message':_0x53a5(0x5d)});}else _0x9dfe05[_0x53a5(0x5e)](_0x53a5(0x5f));}catch(_0x104216){_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x52)],'component':_0x60ad44[_0x53a5(0x43)],'status':_0x53a5(0x2),'message':_0x53a5(0x2f)+_0x104216[_0x53a5(0x30)]});}try{const {storeInstagramData:_0x3601b9}=_0x60ad44[_0x53a5(0x60)](__ONAIROS_REQ_FUNC__,0xa);_0x4139d2['push']({'platform':_0x60ad44[_0x53a5(0x61)],'component':_0x60ad44['YoJIc'],'status':_0x60ad44[_0x53a5(0x5c)](typeof _0x3601b9,_0x60ad44[_0x53a5(0x45)])?_0x60ad44[_0x53a5(0x4f)]:_0x60ad44['lhbQG'],'message':_0x60ad44[_0x53a5(0x62)]});}catch(_0x568d4c){_0x60ad44['uDqQP'](_0x60ad44[_0x53a5(0x63)],_0x60ad44[_0x53a5(0x63)])?_0x4139d2['push']({'platform':_0x60ad44[_0x53a5(0x61)],'component':_0x60ad44[_0x53a5(0x43)],'status':_0x53a5(0x2),'message':_0x53a5(0x2f)+_0x568d4c[_0x53a5(0x30)]}):_0x1ccccc['push']({'platform':'hinge','component':_0x60ad44[_0x53a5(0x43)],'status':_0x60ad44[_0x53a5(0x46)],'message':'Import\x20error:\x20'+_0x2ce4a7['message']});}try{const {storeSephoraData:_0x53799b}=_0x60ad44[_0x53a5(0x60)](__ONAIROS_REQ_FUNC__,0xb);_0x4139d2['push']({'platform':_0x60ad44[_0x53a5(0x64)],'component':'service','status':_0x60ad44[_0x53a5(0x65)](typeof _0x53799b,_0x60ad44[_0x53a5(0x45)])?_0x60ad44[_0x53a5(0x4f)]:_0x60ad44[_0x53a5(0x46)],'message':_0x60ad44['EipYN']});}catch(_0x31c5e9){_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44['EiURq'],'component':_0x60ad44[_0x53a5(0x43)],'status':_0x53a5(0x2),'message':_0x53a5(0x2f)+_0x31c5e9[_0x53a5(0x30)]});}try{if(_0x60ad44[_0x53a5(0x66)](_0x60ad44['qmJgG'],_0x53a5(0x3e)))_0x55e1a9[_0x53a5(0x5e)](_0x60ad44[_0x53a5(0x67)]);else{const {storeTelegramData:_0x1e3747}=_0x60ad44[_0x53a5(0x60)](__ONAIROS_REQ_FUNC__,0xc);_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x68)],'component':_0x60ad44[_0x53a5(0x43)],'status':typeof _0x1e3747===_0x60ad44[_0x53a5(0x45)]?_0x60ad44[_0x53a5(0x4f)]:_0x60ad44[_0x53a5(0x46)],'message':_0x60ad44[_0x53a5(0x69)]});}}catch(_0x1ca73f){_0x60ad44[_0x53a5(0x6a)](_0x60ad44[_0x53a5(0x6b)],_0x60ad44[_0x53a5(0x6b)])?_0x4139d2[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x68)],'component':_0x60ad44[_0x53a5(0x43)],'status':_0x60ad44[_0x53a5(0x46)],'message':_0x53a5(0x2f)+_0x1ca73f[_0x53a5(0x30)]}):_0x441897[_0x53a5(0x15)]({'platform':_0x60ad44[_0x53a5(0x64)],'component':'service','status':_0x53a5(0x2),'message':'Import\x20error:\x20'+_0x96cca1[_0x53a5(0x30)]});}return _0x4139d2;};export const testExtractorImports=()=>{const _0x58520e={'JGqoY':function(_0x5dd332,_0x1e4f94){return _0x5dd332(_0x1e4f94);},'kIAvP':_0x53a5(0x37),'aGbSb':_0x53a5(0x31),'OdNBn':function(_0xcc8b9e,_0x56416c){return _0xcc8b9e===_0x56416c;},'JbRtW':_0x53a5(0x5),'wWQWT':_0x53a5(0x2),'ZMbrJ':'ChatGPT\x20service\x20function\x20available','WBiwd':_0x53a5(0x3),'CIXUn':_0x53a5(0x0),'fwoVj':_0x53a5(0x6c),'uNvsh':_0x53a5(0x6d),'AHtFO':function(_0x39635f,_0x141969){return _0x39635f!==_0x141969;},'DzSoj':_0x53a5(0x6e),'RlSbS':'DjXww','xkSyy':'function','WBmCP':_0x53a5(0x6f),'qFAtY':function(_0x1a9dce,_0x354de0){return _0x1a9dce===_0x354de0;},'aMCTW':_0x53a5(0x70),'zmskf':_0x53a5(0xb),'tsYGM':'Sephora\x20extractor\x20hook\x20available','oBoIp':function(_0x30c876,_0x288105){return _0x30c876(_0x288105);},'WOVcz':_0x53a5(0xc),'tmiWP':_0x53a5(0x71)},_0x3565a8=[];try{const {useHingeDataExtractor:useHingeDataExtractor}=_0x58520e[_0x53a5(0x72)](__ONAIROS_REQ_FUNC__,0xd);_0x3565a8[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x73)],'component':_0x58520e['fwoVj'],'status':_0x58520e[_0x53a5(0x74)](typeof useHingeDataExtractor,_0x53a5(0x1))?_0x58520e['JbRtW']:_0x58520e['wWQWT'],'message':_0x58520e[_0x53a5(0x75)]});}catch(_0x2ebfce){if(_0x58520e[_0x53a5(0x76)](_0x58520e[_0x53a5(0x77)],_0x58520e[_0x53a5(0x78)]))_0x3565a8['push']({'platform':_0x58520e[_0x53a5(0x73)],'component':_0x58520e[_0x53a5(0x79)],'status':_0x58520e[_0x53a5(0x7a)],'message':_0x53a5(0x2f)+_0x2ebfce[_0x53a5(0x30)]});else{const {storeChatGPTConversations:_0x356226}=_0x58520e['JGqoY'](_0x109755,0x7);_0x5762f3[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x7b)],'component':_0x58520e[_0x53a5(0x7c)],'status':_0x58520e[_0x53a5(0x74)](typeof _0x356226,'function')?_0x58520e['JbRtW']:_0x58520e[_0x53a5(0x7a)],'message':_0x58520e[_0x53a5(0x7d)]});}}try{const {useInstagramDataExtractor:useInstagramDataExtractor}=_0x58520e[_0x53a5(0x72)](__ONAIROS_REQ_FUNC__,0xe);_0x3565a8[_0x53a5(0x15)]({'platform':_0x53a5(0x3c),'component':'extractor','status':_0x58520e['OdNBn'](typeof useInstagramDataExtractor,_0x58520e['xkSyy'])?_0x58520e[_0x53a5(0x7e)]:_0x58520e[_0x53a5(0x7a)],'message':_0x58520e[_0x53a5(0x7f)]});}catch(_0x5b60c7){_0x58520e['qFAtY'](_0x58520e[_0x53a5(0x80)],_0x58520e[_0x53a5(0x80)])?_0x3565a8[_0x53a5(0x15)]({'platform':'instagram','component':_0x58520e[_0x53a5(0x79)],'status':_0x58520e[_0x53a5(0x7a)],'message':_0x53a5(0x2f)+_0x5b60c7[_0x53a5(0x30)]}):_0x1f3975['push']({'platform':_0x53a5(0x81),'component':_0x58520e[_0x53a5(0x82)],'status':_0x58520e[_0x53a5(0x7a)],'message':'Import\x20error:\x20'+_0xc10941[_0x53a5(0x30)]});}try{const {useSephoraDataExtractor:useSephoraDataExtractor}=__ONAIROS_REQ_FUNC__(0xf);_0x3565a8[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x83)],'component':'extractor','status':typeof useSephoraDataExtractor==='function'?_0x58520e[_0x53a5(0x7e)]:_0x58520e[_0x53a5(0x7a)],'message':_0x58520e[_0x53a5(0x84)]});}catch(_0x2dc69c){_0x3565a8[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x83)],'component':_0x58520e[_0x53a5(0x79)],'status':_0x58520e[_0x53a5(0x7a)],'message':_0x53a5(0x2f)+_0x2dc69c[_0x53a5(0x30)]});}try{const {useTelegramDataExtractor:useTelegramDataExtractor}=_0x58520e[_0x53a5(0x85)](__ONAIROS_REQ_FUNC__,0x10);_0x3565a8[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x86)],'component':_0x58520e['fwoVj'],'status':_0x58520e[_0x53a5(0x74)](typeof useTelegramDataExtractor,_0x58520e[_0x53a5(0x87)])?_0x58520e[_0x53a5(0x7e)]:_0x58520e['wWQWT'],'message':_0x58520e[_0x53a5(0x88)]});}catch(_0x513a2d){_0x3565a8[_0x53a5(0x15)]({'platform':_0x58520e[_0x53a5(0x86)],'component':_0x53a5(0x6c),'status':_0x58520e[_0x53a5(0x7a)],'message':_0x53a5(0x2f)+_0x513a2d[_0x53a5(0x30)]});}return _0x3565a8;};export const testBackendConnectivity=async()=>{const _0x18e47b={'yqkLW':_0x53a5(0xc),'CAfEb':_0x53a5(0x6c),'KcRPC':_0x53a5(0x2),'bJXik':function(_0x4cf942,_0x2ae8da,_0x507494){return _0x4cf942(_0x2ae8da,_0x507494);},'mGxoh':function(_0x1705fd,_0x4f4f52,_0x7be151){return _0x1705fd(_0x4f4f52,_0x7be151);},'QorDi':function(_0x174bf6,_0x5c2fb1){return _0x174bf6(_0x5c2fb1);},'JqSwk':_0x53a5(0x89),'aapXX':_0x53a5(0x5),'ZMgrl':_0x53a5(0x8a),'JlbwD':function(_0x3255a4,_0x232e83){return _0x3255a4===_0x232e83;},'oZDya':'DUpIB','rbORX':'backend','TmOsI':function(_0x551286,_0x557afb,_0x29aced){return _0x551286(_0x557afb,_0x29aced);},'cixtm':'warning','OHDVz':'platform_data_endpoint'},_0xc92be4=[];try{const _0x34af19=new AbortController(),_0x55a3e9=_0x18e47b['bJXik'](setTimeout,()=>_0x34af19['abort'](),0x2710),_0x4448f5=await _0x18e47b[_0x53a5(0x8b)](fetch,API_CONFIG[_0x53a5(0x8c)]+_0x53a5(0x8d),{'method':'GET','signal':_0x34af19['signal']});_0x18e47b[_0x53a5(0x8e)](clearTimeout,_0x55a3e9),_0xc92be4[_0x53a5(0x15)]({'platform':'backend','component':_0x18e47b[_0x53a5(0x8f)],'status':_0x4448f5['ok']?_0x18e47b[_0x53a5(0x90)]:_0x53a5(0x91),'message':_0x4448f5['ok']?_0x18e47b[_0x53a5(0x92)]:_0x53a5(0x93)+_0x4448f5['status'],'details':{'status':_0x4448f5[_0x53a5(0x94)]}});}catch(_0x19aeab){_0x18e47b[_0x53a5(0x95)](_0x53a5(0x96),_0x18e47b[_0x53a5(0x97)])?_0x1164fe[_0x53a5(0x15)]({'platform':_0x18e47b[_0x53a5(0x98)],'component':_0x18e47b[_0x53a5(0x99)],'status':_0x18e47b[_0x53a5(0x9a)],'message':_0x53a5(0x2f)+_0x507a9c[_0x53a5(0x30)]}):_0xc92be4[_0x53a5(0x15)]({'platform':_0x18e47b['rbORX'],'component':_0x18e47b[_0x53a5(0x8f)],'status':_0x18e47b[_0x53a5(0x9a)],'message':_0x53a5(0x9b)+_0x19aeab['message']});}try{const _0x1bbc10=new AbortController(),_0x5d9bb8=setTimeout(()=>_0x1bbc10[_0x53a5(0x9c)](),0x2710),_0x5eebe9=await _0x18e47b[_0x53a5(0x9d)](fetch,API_CONFIG[_0x53a5(0x8c)]+'/platform-data/store',{'method':'OPTIONS','signal':_0x1bbc10['signal']});_0x18e47b['QorDi'](clearTimeout,_0x5d9bb8),_0xc92be4[_0x53a5(0x15)]({'platform':_0x18e47b['rbORX'],'component':_0x53a5(0x9e),'status':_0x5eebe9[_0x53a5(0x94)]<0x1f4?_0x53a5(0x5):_0x18e47b[_0x53a5(0x9f)],'message':_0x53a5(0xa0)+_0x5eebe9[_0x53a5(0x94)],'details':{'status':_0x5eebe9[_0x53a5(0x94)]}});}catch(_0x1fdd1b){_0xc92be4['push']({'platform':_0x18e47b[_0x53a5(0xa1)],'component':_0x18e47b[_0x53a5(0xa2)],'status':_0x53a5(0x91),'message':'Endpoint\x20check\x20failed\x20(may\x20require\x20auth):\x20'+_0x1fdd1b[_0x53a5(0x30)]});}return _0xc92be4;};export const testPlatformDetection=()=>{const _0x1bb799={'zqZvt':function(_0x4e7425,_0x2b74a3){return _0x4e7425(_0x2b74a3);},'CqeYf':'service','CYKgQ':function(_0x508b0a,_0x5636ef){return _0x508b0a===_0x5636ef;},'lWwDs':_0x53a5(0x1),'DIxCw':'fail','XOmuJ':_0x53a5(0x3f),'jxIul':function(_0x435e08,_0x3f6522){return _0x435e08(_0x3f6522);},'qpbVL':function(_0x421192,_0x25651a){return _0x421192+_0x25651a;},'vcckd':function(_0x1d911f,_0x30f028){return _0x1d911f!==_0x30f028;},'necKK':'dWueZ','MeLJr':_0x53a5(0xa3),'luchU':_0x53a5(0x0),'TXFrG':function(_0x3ddd28,_0x78003f){return _0x3ddd28(_0x78003f);},'ZLipi':_0x53a5(0xa4),'mgdew':_0x53a5(0x5),'GzcET':function(_0x1994a9,_0x37c659){return _0x1994a9(_0x37c659);},'LRgxj':_0x53a5(0x3c),'aQgaQ':function(_0x626256,_0x4d30fa){return _0x626256(_0x4d30fa);},'FdJNh':_0x53a5(0xa5),'akcmi':_0x53a5(0xa6),'KsFjN':function(_0x294d51,_0x528093){return _0x294d51(_0x528093);},'yGJCw':'sephora','IMWYO':function(_0x5b893a,_0x787ad){return _0x5b893a(_0x787ad);},'CIonJ':function(_0x31f081,_0x4ec08d){return _0x31f081(_0x4ec08d);},'eIFaH':'Sephora\x20detection\x20correct','yBmpL':'Sephora\x20detection\x20failed','NNFfl':function(_0x3172ec,_0x3320af){return _0x3172ec(_0x3320af);},'dtBlG':'telegram','CnXHr':function(_0x320a31,_0x13b89e){return _0x320a31(_0x13b89e);},'jEVUA':'Telegram\x20detection\x20correct','ftTNX':_0x53a5(0xa7),'HVhNl':_0x53a5(0x81)},_0x5016ab=[];try{if(_0x1bb799[_0x53a5(0xa8)](_0x1bb799['necKK'],_0x1bb799[_0x53a5(0xa9)])){const {isWebViewExtractionPlatform:_0x47a34c,isHingePlatform:_0x5744ef,isInstagramPlatform:_0xcbbe1,isSephoraPlatform:_0x456678,isLLMPlatform:_0x30d290}=__ONAIROS_REQ_FUNC__(0x2),_0x5b811f=_0x1bb799[_0x53a5(0xaa)](_0x5744ef,_0x53a5(0x0))&&_0x1bb799[_0x53a5(0xab)](_0x47a34c,_0x1bb799['luchU'])&&!_0x1bb799[_0x53a5(0xac)](_0x30d290,_0x53a5(0x0));_0x5016ab[_0x53a5(0x15)]({'platform':_0x1bb799['luchU'],'component':_0x1bb799[_0x53a5(0xad)],'status':_0x5b811f?_0x1bb799['mgdew']:_0x1bb799['DIxCw'],'message':_0x5b811f?_0x53a5(0xae):_0x53a5(0xaf)});const _0x21596f=_0x1bb799[_0x53a5(0xb0)](_0xcbbe1,_0x1bb799['LRgxj'])&&_0x47a34c(_0x1bb799[_0x53a5(0xb1)])&&!_0x1bb799['aQgaQ'](_0x30d290,_0x1bb799[_0x53a5(0xb1)]);_0x5016ab[_0x53a5(0x15)]({'platform':_0x1bb799[_0x53a5(0xb1)],'component':_0x53a5(0xa4),'status':_0x21596f?_0x1bb799['mgdew']:_0x53a5(0x2),'message':_0x21596f?_0x1bb799[_0x53a5(0xb2)]:_0x1bb799['akcmi']});const _0x5a5a1f=_0x1bb799['KsFjN'](_0x456678,_0x1bb799[_0x53a5(0xb3)])&&_0x1bb799['IMWYO'](_0x47a34c,_0x1bb799[_0x53a5(0xb3)])&&!_0x1bb799[_0x53a5(0xb4)](_0x30d290,_0x1bb799['yGJCw']);_0x5016ab[_0x53a5(0x15)]({'platform':_0x1bb799[_0x53a5(0xb3)],'component':_0x1bb799[_0x53a5(0xad)],'status':_0x5a5a1f?_0x1bb799['mgdew']:_0x1bb799[_0x53a5(0xb5)],'message':_0x5a5a1f?_0x1bb799[_0x53a5(0xb6)]:_0x1bb799[_0x53a5(0xb7)]});const {isTelegramPlatform:_0x24c17e}=_0x1bb799[_0x53a5(0xac)](__ONAIROS_REQ_FUNC__,0x1),_0x213222=_0x1bb799[_0x53a5(0xb8)](_0x24c17e,_0x1bb799['dtBlG'])&&_0x1bb799[_0x53a5(0xb8)](_0x47a34c,_0x53a5(0xc))&&!_0x1bb799[_0x53a5(0xb9)](_0x30d290,_0x1bb799[_0x53a5(0xba)]);_0x5016ab[_0x53a5(0x15)]({'platform':_0x1bb799[_0x53a5(0xba)],'component':_0x1bb799[_0x53a5(0xad)],'status':_0x213222?_0x1bb799[_0x53a5(0xbb)]:_0x1bb799['DIxCw'],'message':_0x213222?_0x1bb799[_0x53a5(0xbc)]:_0x53a5(0xbd)});}else{const {storeTelegramData:_0x5697ca}=_0x1bb799[_0x53a5(0xaa)](_0x13ae74,0xc);_0x365676[_0x53a5(0x15)]({'platform':'telegram','component':_0x1bb799[_0x53a5(0xbe)],'status':_0x1bb799[_0x53a5(0xbf)](typeof _0x5697ca,_0x1bb799[_0x53a5(0xc0)])?_0x53a5(0x5):_0x1bb799[_0x53a5(0xb5)],'message':_0x1bb799[_0x53a5(0xc1)]});}}catch(_0x42693f){if(_0x1bb799['vcckd'](_0x1bb799[_0x53a5(0xc2)],_0x1bb799[_0x53a5(0xc2)])){const _0xaf3072=_0x1bb799['jxIul'](_0x426b6d,0x15),_0x23525b='use'+_0x1bb799[_0x53a5(0xc3)](_0x5db889[_0x53a5(0xc4)](0x0)['toUpperCase'](),_0x2263cc[_0x53a5(0xc5)](0x1))+_0x53a5(0xc6);_0x1793bf[_0x53a5(0x15)]({'platform':_0x10e9ba,'component':_0x53a5(0x6c),'status':_0x1bb799[_0x53a5(0xbf)](typeof _0xaf3072[_0x23525b],_0x53a5(0x1))?'pass':_0x1bb799[_0x53a5(0xb5)],'message':_0x53a5(0xc7)+_0x23525b+_0x53a5(0x58)});}else _0x5016ab['push']({'platform':_0x1bb799[_0x53a5(0xc8)],'component':_0x53a5(0xa4),'status':_0x1bb799[_0x53a5(0xb5)],'message':'Detection\x20test\x20error:\x20'+_0x42693f['message']});}return _0x5016ab;};export const runConnectorSanityTests=async()=>{const _0x1b9a43={'zIzFv':_0x53a5(0x81),'aOXid':'detection','jwAdb':_0x53a5(0x2),'FtaoW':_0x53a5(0xc9),'HMCoK':_0x53a5(0xca),'ssetv':function(_0x105ec0){return _0x105ec0();},'UkCZC':_0x53a5(0xcb),'LSLlF':_0x53a5(0xcc),'lxeIL':_0x53a5(0xcd),'EymFr':'========================================\x0a','pKrce':function(_0x2842b2,_0x2b5e48){return _0x2842b2===_0x2b5e48;},'TbGrb':_0x53a5(0xce),'wjEJp':function(_0x2da2db,_0xc68783){return _0x2da2db>_0xc68783;},'BfrSp':_0x53a5(0xcf),'MBnAj':function(_0x59f28b,_0x1258bf){return _0x59f28b>_0x1258bf;},'XXkPE':_0x53a5(0xd0),'buIrF':_0x53a5(0xd1)};console['log'](_0x1b9a43['FtaoW']);const _0x248b4c=[];console['log'](_0x1b9a43[_0x53a5(0xd2)]),_0x248b4c[_0x53a5(0x15)](..._0x1b9a43['ssetv'](testWebViewScriptExports)),console['log'](_0x1b9a43[_0x53a5(0xd3)]),_0x248b4c[_0x53a5(0x15)](...testServiceImports()),console[_0x53a5(0x5e)](_0x53a5(0xd4)),_0x248b4c[_0x53a5(0x15)](..._0x1b9a43[_0x53a5(0xd5)](testExtractorImports)),console[_0x53a5(0x5e)](_0x1b9a43[_0x53a5(0xd6)]),_0x248b4c[_0x53a5(0x15)](..._0x1b9a43[_0x53a5(0xd5)](testPlatformDetection)),console[_0x53a5(0x5e)](_0x53a5(0xd7)),_0x248b4c[_0x53a5(0x15)](...await _0x1b9a43[_0x53a5(0xd5)](testBackendConnectivity));const _0x1abee7=_0x248b4c[_0x53a5(0xd8)](_0x58aabe=>_0x58aabe['status']===_0x53a5(0x5))[_0x53a5(0xd9)],_0x5b253a=_0x248b4c[_0x53a5(0xd8)](_0x596df1=>_0x596df1[_0x53a5(0x94)]===_0x53a5(0x2))[_0x53a5(0xd9)],_0x18e8d0=_0x248b4c[_0x53a5(0xd8)](_0x56d8fd=>_0x56d8fd[_0x53a5(0x94)]==='warning')['length'];console['log']('\x0a========================================'),console[_0x53a5(0x5e)](_0x1b9a43[_0x53a5(0xda)]),console[_0x53a5(0x5e)](_0x1b9a43['EymFr']);for(const _0x29355d of _0x248b4c){const _0x4816b4=_0x1b9a43[_0x53a5(0xdb)](_0x29355d[_0x53a5(0x94)],_0x53a5(0x5))?'โ
':_0x29355d['status']===_0x1b9a43['jwAdb']?'โ':'โ ๏ธ';console[_0x53a5(0x5e)](_0x4816b4+'\x20['+_0x29355d[_0x53a5(0xdc)][_0x53a5(0xdd)]()+']\x20'+_0x29355d[_0x53a5(0xde)]+':\x20'+_0x29355d['message']);}console['log'](_0x1b9a43[_0x53a5(0xdf)]),console[_0x53a5(0x5e)](_0x53a5(0xe0)+_0x1abee7+'\x20passed,\x20'+_0x5b253a+'\x20failed,\x20'+_0x18e8d0+_0x53a5(0xe1)),console[_0x53a5(0x5e)](_0x1b9a43[_0x53a5(0xe2)]);if(_0x1b9a43[_0x53a5(0xe3)](_0x5b253a,0x0))console[_0x53a5(0x5e)](_0x1b9a43[_0x53a5(0xe4)]);else _0x1b9a43[_0x53a5(0xe5)](_0x18e8d0,0x0)?_0x1b9a43[_0x53a5(0xe6)]!=='NKgHu'?console[_0x53a5(0x5e)](_0x1b9a43[_0x53a5(0xe7)]):_0x55c662[_0x53a5(0x15)]({'platform':_0x1b9a43[_0x53a5(0xe8)],'component':_0x1b9a43['aOXid'],'status':_0x1b9a43['jwAdb'],'message':_0x53a5(0xe9)+_0x7ac593['message']}):console['log'](_0x53a5(0x5f));return{'passed':_0x1abee7,'failed':_0x5b253a,'warnings':_0x18e8d0,'results':_0x248b4c};};function _0x218a(){const _0x4a96a2=['hinge','function','fail','webview_scripts','ChatGPT\x20scripts\x20exported\x20correctly','pass','Claude\x20scripts\x20exported\x20correctly','Claude\x20scripts\x20missing','Hinge\x20scripts\x20exported\x20correctly','Instagram\x20scripts\x20exported\x20correctly','Instagram\x20scripts\x20missing','sephora','telegram','Telegram\x20scripts\x20missing','utilities','platform_detection','NKEdp','gitVq','GKpPt','yqJTB','FXTKk','push','DZFoj','TSWZS','sGZws','KDvQs','dXXdc','ZJLLQ','Hinge\x20scripts\x20missing','GVnpa','GHLlB','dUYTv','rpins','lTajN','gIxdN','Sephora\x20scripts\x20exported\x20correctly','ZzPGb','kdUgy','EYKnq','zBKeC','HuRdr','ZKHfC','PBmfu','XoErs','bViDm','PaswK','eUDSq','Import\x20error:\x20','message','service','Instagram\x20service\x20function\x20available','storeHingeData','storeSephoraData','SUqfp','TsAMf','chatgpt','DcNqX','Claude\x20service\x20function\x20available','bptgF','oAVgb','instagram','Ktwmp','INJXb','Telegram\x20service\x20function\x20available','zMleS','JYQOr','AeNQD','YoJIc','JIDMO','CnVKY','lhbQG','uuTcD','ChatGPT\x20service\x20function\x20available','PPSuf','FXTgB','yKBvJ','EEJvl','oaArN','zjUUO','PeSGg','Mtdmp','LGwiR','KhlQr','MSgGQ','wWsCm','swJsz','MhmCN','Service\x20function\x20','\x20available','claude','oYWvf','zvQZg','EbEwE','Hinge\x20service\x20function\x20available','log','โ
\x20All\x20tests\x20passed!\x20Connectors\x20are\x20ready.','VUiFk','gCgeF','waSQw','WPOdd','EiURq','uplBA','xuolC','DXxdR','lLcrB','ipGMA','odAUU','lOKpM','extractor','Hinge\x20extractor\x20hook\x20available','GRPjR','Instagram\x20extractor\x20hook\x20available','KUzDm','Telegram\x20extractor\x20hook\x20available','JGqoY','CIXUn','OdNBn','uNvsh','AHtFO','DzSoj','RlSbS','fwoVj','wWQWT','kIAvP','aGbSb','ZMbrJ','JbRtW','WBmCP','aMCTW','all','WBiwd','zmskf','tsYGM','oBoIp','WOVcz','xkSyy','tmiWP','health','Backend\x20health\x20check\x20passed','mGxoh','BASE_URL','/health','QorDi','JqSwk','aapXX','warning','ZMgrl','Backend\x20returned\x20status\x20','status','JlbwD','egUFT','oZDya','yqkLW','CAfEb','KcRPC','Backend\x20unreachable:\x20','abort','TmOsI','platform_data_endpoint','cixtm','Platform\x20data\x20endpoint\x20check:\x20','rbORX','OHDVz','mjMWx','detection','Instagram\x20detection\x20correct','Instagram\x20detection\x20failed','RTUgO','vcckd','MeLJr','zqZvt','jxIul','TXFrG','ZLipi','Hinge\x20detection\x20correct','Hinge\x20detection\x20failed','GzcET','LRgxj','FdJNh','yGJCw','CIonJ','DIxCw','eIFaH','yBmpL','NNFfl','CnXHr','dtBlG','mgdew','jEVUA','Telegram\x20detection\x20failed','CqeYf','CYKgQ','lWwDs','XOmuJ','ftTNX','qpbVL','charAt','slice','DataExtractor','Extractor\x20hook\x20','HVhNl','๐งช\x20[CONNECTOR_TESTS]\x20Starting\x20connector\x20sanity\x20tests...\x0a','๐\x20Testing\x20WebView\x20script\x20exports...','๐\x20Testing\x20service\x20imports...','๐\x20Testing\x20platform\x20detection...','๐งช\x20CONNECTOR\x20SANITY\x20TEST\x20RESULTS','\x0a========================================','โ\x20Some\x20tests\x20failed!\x20Please\x20check\x20the\x20errors\x20above.','PgDpp','โ ๏ธ\x20All\x20critical\x20tests\x20passed,\x20but\x20there\x20are\x20warnings.','HMCoK','UkCZC','๐\x20Testing\x20extractor\x20imports...','ssetv','LSLlF','๐\x20Testing\x20backend\x20connectivity...','filter','length','lxeIL','pKrce','platform','toUpperCase','component','TbGrb','๐\x20Summary:\x20','\x20warnings','EymFr','wjEJp','BfrSp','MBnAj','XXkPE','buIrF','zIzFv','Detection\x20test\x20error:\x20','webview_script','Export\x20script\x20missing','lEWws','storeInstagramData','storeTelegramData','FVOTg','siQGZ','dLHAD','\x20connector...\x0a','toLowerCase','bewMx','eeOXg','ILljt','Sbfjz','cenGh','ZTMcI','FAJAw','_EXPORT_SCRIPT','dZGuc','ePmwr','fUWyY','XlwfV','.\x20Use\x20\x27hinge\x27,\x20\x27instagram\x27,\x20\x27sephora\x27,\x20or\x20\x27telegram\x27.','kAkae','WrRsI','QazHO','fPotH','jggSr','Script\x20import\x20failed:\x20','DvRyP','CFgtj','blGhE','hYznF','pjxKm','Service\x20import\x20failed:\x20','tGjXm','CjpfQ','dupeS','ILvTq','zXxsD','use','jfgnG','Unknown\x20platform:\x20','nUxkT','XvDAS'];_0x218a=function(){return _0x4a96a2;};return _0x218a();}export const testPlatformConnector=async _0x391e45=>{const _0x33ccbb={'XlwfV':'validation','YrPGu':'warning','FHaWz':function(_0x53e6cf,_0x273185){return _0x53e6cf(_0x273185);},'WrRsI':_0x53a5(0xb),'QazHO':'extractor','fPotH':'function','ILvTq':_0x53a5(0x5),'jggSr':_0x53a5(0x2),'eeOXg':_0x53a5(0x3c),'dupeS':function(_0x25e861,_0x1720bf){return _0x25e861(_0x1720bf);},'dZGuc':_0x53a5(0xea),'ePmwr':'Export\x20script\x20available','fUWyY':_0x53a5(0xeb),'jfgnG':_0x53a5(0xd1),'XvDAS':_0x53a5(0x37),'pjxKm':_0x53a5(0x31),'bewMx':_0x53a5(0x0),'ILljt':_0x53a5(0xc),'tGjXm':function(_0x126935,_0x245cf0){return _0x126935!==_0x245cf0;},'cenGh':'HRYAh','ZTMcI':function(_0xdc16e0,_0x1a8537){return _0xdc16e0===_0x1a8537;},'FAJAw':'hMLLk','kAkae':_0x53a5(0xec),'DvRyP':'storeHingeData','CFgtj':function(_0x37ed49,_0x3fd3cd){return _0x37ed49===_0x3fd3cd;},'HONnI':_0x53a5(0xed),'blGhE':_0x53a5(0xee),'hYznF':function(_0x5c730b,_0x6f1735){return _0x5c730b===_0x6f1735;},'uqChf':_0x53a5(0xef),'CjpfQ':_0x53a5(0xf0),'zXxsD':function(_0x2c365b,_0x1bf5a8){return _0x2c365b(_0x1bf5a8);},'OusIp':function(_0x1de891,_0x228f58){return _0x1de891+_0x228f58;},'unERk':function(_0x3d5fcb,_0x5a6c1e){return _0x3d5fcb===_0x5a6c1e;},'nUxkT':_0x53a5(0xf1)};console[_0x53a5(0x5e)]('๐งช\x20Testing\x20'+_0x391e45+_0x53a5(0xf2));const _0x54cfd3=[],_0x400f25=_0x391e45[_0x53a5(0xf3)]();if([_0x33ccbb[_0x53a5(0xf4)],_0x33ccbb[_0x53a5(0xf5)],_0x33ccbb['WrRsI'],_0x33ccbb[_0x53a5(0xf6)]]['includes'](_0x400f25)){if(_0x33ccbb['tGjXm'](_0x53a5(0xf7),_0x33ccbb[_0x53a5(0xf8)])){try{if(_0x33ccbb[_0x53a5(0xf9)]('hMLLk',_0x33ccbb[_0x53a5(0xfa)])){const _0x2c7464=__ONAIROS_REQ_FUNC__(0x0),_0x4220bf=_0x400f25[_0x53a5(0xdd)]()+_0x53a5(0xfb),_0x2a372e=!!_0x2c7464[_0x4220bf];_0x54cfd3['push']({'platform':_0x400f25,'component':_0x33ccbb[_0x53a5(0xfc)],'status':_0x2a372e?_0x33ccbb['ILvTq']:'fail','message':_0x2a372e?_0x33ccbb[_0x53a5(0xfd)]:_0x33ccbb[_0x53a5(0xfe)]});}else _0x3dfb63[_0x53a5(0x15)]({'platform':_0x8da51a,'component':_0x33ccbb[_0x53a5(0xff)],'status':_0x33ccbb['YrPGu'],'message':'Unknown\x20platform:\x20'+_0x29b765+_0x53a5(0x100)});}catch(_0xc33164){if(_0x33ccbb[_0x53a5(0x101)]!==_0x33ccbb['kAkae']){const {useSephoraDataExtractor:useSephoraDataExtractor}=_0x33ccbb['FHaWz'](_0x30fbb6,0xf);_0x22ff87[_0x53a5(0x15)]({'platform':_0x33ccbb[_0x53a5(0x102)],'component':_0x33ccbb[_0x53a5(0x103)],'status':typeof useSephoraDataExtractor===_0x33ccbb[_0x53a5(0x104)]?_0x33ccbb['ILvTq']:_0x33ccbb[_0x53a5(0x105)],'message':'Sephora\x20extractor\x20hook\x20available'});}else _0x54cfd3[_0x53a5(0x15)]({'platform':_0x400f25,'component':_0x53a5(0xea),'status':_0x33ccbb[_0x53a5(0x105)],'message':_0x53a5(0x106)+_0xc33164[_0x53a5(0x30)]});}try{const _0xc29ce9=__ONAIROS_REQ_FUNC__(0x14),_0x3821b0=_0x400f25===_0x33ccbb['bewMx']?_0x33ccbb[_0x53a5(0x107)]:_0x33ccbb[_0x53a5(0x108)](_0x400f25,_0x33ccbb[_0x53a5(0xf5)])?_0x33ccbb['HONnI']:_0x33ccbb[_0x53a5(0xf9)](_0x400f25,_0x33ccbb[_0x53a5(0xf6)])?_0x33ccbb[_0x53a5(0x109)]:_0x53a5(0x34);_0x54cfd3['push']({'platform':_0x400f25,'component':'service','status':_0x33ccbb[_0x53a5(0x10a)](typeof _0xc29ce9[_0x3821b0],_0x33ccbb['fPotH'])?_0x33ccbb['ILvTq']:_0x33ccbb[_0x53a5(0x105)],'message':'Service\x20function\x20'+_0x3821b0+_0x53a5(0x58)});}catch(_0x58e09f){if(_0x33ccbb['hYznF']('FVOTg',_0x33ccbb['uqChf']))_0x54cfd3['push']({'platform':_0x400f25,'component':_0x33ccbb[_0x53a5(0x10b)],'status':_0x53a5(0x2),'message':_0x53a5(0x10c)+_0x58e09f['message']});else{const {useInstagramDataExtractor:useInstagramDataExtractor}=_0x5da0af(0xe);_0x270c68[_0x53a5(0x15)]({'platform':_0x33ccbb['eeOXg'],'component':_0x33ccbb[_0x53a5(0x103)],'status':typeof useInstagramDataExtractor===_0x33ccbb[_0x53a5(0x104)]?'pass':_0x33ccbb[_0x53a5(0x105)],'message':_0x53a5(0x6f)});}}try{if(_0x33ccbb[_0x53a5(0x10d)]('siQGZ',_0x33ccbb[_0x53a5(0x10e)])){const _0x278dd5=_0x33ccbb[_0x53a5(0x10f)](_0x4b7d48,0x0),_0x4451e5=_0x8612f3[_0x53a5(0xdd)]()+'_EXPORT_SCRIPT',_0x2ff3e7=!!_0x278dd5[_0x4451e5];_0x17e669[_0x53a5(0x15)]({'platform':_0x122f7b,'component':_0x33ccbb[_0x53a5(0xfc)],'status':_0x2ff3e7?_0x33ccbb[_0x53a5(0x110)]:_0x33ccbb[_0x53a5(0x105)],'message':_0x2ff3e7?_0x33ccbb[_0x53a5(0xfd)]:_0x33ccbb[_0x53a5(0xfe)]});}else{const _0x15f0d6=_0x33ccbb[_0x53a5(0x111)](__ONAIROS_REQ_FUNC__,0x15),_0x590ea1=_0x53a5(0x112)+_0x33ccbb['OusIp'](_0x400f25[_0x53a5(0xc4)](0x0)['toUpperCase'](),_0x400f25[_0x53a5(0xc5)](0x1))+'DataExtractor';_0x54cfd3[_0x53a5(0x15)]({'platform':_0x400f25,'component':_0x33ccbb[_0x53a5(0x103)],'status':_0x33ccbb['unERk'](typeof _0x15f0d6[_0x590ea1],_0x33ccbb['fPotH'])?_0x33ccbb['ILvTq']:_0x33ccbb[_0x53a5(0x105)],'message':'Extractor\x20hook\x20'+_0x590ea1+_0x53a5(0x58)});}}catch(_0x2d6cbd){_0x54cfd3[_0x53a5(0x15)]({'platform':_0x400f25,'component':_0x33ccbb[_0x53a5(0x103)],'status':_0x33ccbb[_0x53a5(0x105)],'message':'Extractor\x20import\x20failed:\x20'+_0x2d6cbd[_0x53a5(0x30)]});}}else _0x3839b5['log'](_0x33ccbb[_0x53a5(0x113)]);}else _0x54cfd3[_0x53a5(0x15)]({'platform':_0x400f25,'component':_0x33ccbb['XlwfV'],'status':_0x33ccbb['YrPGu'],'message':_0x53a5(0x114)+_0x391e45+_0x53a5(0x100)});for(const _0x4a74ee of _0x54cfd3){if(_0x33ccbb[_0x53a5(0x115)]===_0x33ccbb[_0x53a5(0x115)]){const _0x57a447=_0x33ccbb['hYznF'](_0x4a74ee[_0x53a5(0x94)],_0x33ccbb[_0x53a5(0x110)])?'โ
':_0x33ccbb[_0x53a5(0x10a)](_0x4a74ee[_0x53a5(0x94)],_0x33ccbb['jggSr'])?'โ':'โ ๏ธ';console[_0x53a5(0x5e)](_0x57a447+'\x20'+_0x4a74ee[_0x53a5(0xde)]+':\x20'+_0x4a74ee[_0x53a5(0x30)]);}else _0x2685a5[_0x53a5(0x15)]({'platform':_0x33ccbb[_0x53a5(0x116)],'component':_0x33ccbb[_0x53a5(0x10b)],'status':'fail','message':_0x53a5(0x2f)+_0xa8e6f4['message']});}return _0x54cfd3;};
|
|
18
|
+
import { API_CONFIG } from '../config/api';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Test result interface
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Test all WebView script exports
|
|
26
|
+
*/
|
|
27
|
+
export const testWebViewScriptExports = () => {
|
|
28
|
+
const results = [];
|
|
29
|
+
try {
|
|
30
|
+
// Test ChatGPT scripts
|
|
31
|
+
const {
|
|
32
|
+
CHATGPT_CONSENT_POPUP_SCRIPT,
|
|
33
|
+
CHATGPT_EXPORT_SCRIPT
|
|
34
|
+
} = require('./webviewScripts');
|
|
35
|
+
results.push({
|
|
36
|
+
platform: 'chatgpt',
|
|
37
|
+
component: 'webview_scripts',
|
|
38
|
+
status: CHATGPT_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
39
|
+
message: CHATGPT_EXPORT_SCRIPT ? 'ChatGPT scripts exported correctly' : 'ChatGPT scripts missing'
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Test Claude scripts
|
|
43
|
+
const {
|
|
44
|
+
CLAUDE_CONSENT_POPUP_SCRIPT,
|
|
45
|
+
CLAUDE_EXPORT_SCRIPT
|
|
46
|
+
} = require('./webviewScripts');
|
|
47
|
+
results.push({
|
|
48
|
+
platform: 'claude',
|
|
49
|
+
component: 'webview_scripts',
|
|
50
|
+
status: CLAUDE_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
51
|
+
message: CLAUDE_EXPORT_SCRIPT ? 'Claude scripts exported correctly' : 'Claude scripts missing'
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Test Hinge scripts
|
|
55
|
+
const {
|
|
56
|
+
HINGE_CONSENT_POPUP_SCRIPT,
|
|
57
|
+
HINGE_EXPORT_SCRIPT
|
|
58
|
+
} = require('./webviewScripts');
|
|
59
|
+
results.push({
|
|
60
|
+
platform: 'hinge',
|
|
61
|
+
component: 'webview_scripts',
|
|
62
|
+
status: HINGE_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
63
|
+
message: HINGE_EXPORT_SCRIPT ? 'Hinge scripts exported correctly' : 'Hinge scripts missing'
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Test Instagram scripts
|
|
67
|
+
const {
|
|
68
|
+
INSTAGRAM_CONSENT_POPUP_SCRIPT,
|
|
69
|
+
INSTAGRAM_EXPORT_SCRIPT
|
|
70
|
+
} = require('./webviewScripts');
|
|
71
|
+
results.push({
|
|
72
|
+
platform: 'instagram',
|
|
73
|
+
component: 'webview_scripts',
|
|
74
|
+
status: INSTAGRAM_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
75
|
+
message: INSTAGRAM_EXPORT_SCRIPT ? 'Instagram scripts exported correctly' : 'Instagram scripts missing'
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Test Sephora scripts
|
|
79
|
+
const {
|
|
80
|
+
SEPHORA_CONSENT_POPUP_SCRIPT,
|
|
81
|
+
SEPHORA_EXPORT_SCRIPT
|
|
82
|
+
} = require('./webviewScripts');
|
|
83
|
+
results.push({
|
|
84
|
+
platform: 'sephora',
|
|
85
|
+
component: 'webview_scripts',
|
|
86
|
+
status: SEPHORA_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
87
|
+
message: SEPHORA_EXPORT_SCRIPT ? 'Sephora scripts exported correctly' : 'Sephora scripts missing'
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Test Telegram scripts
|
|
91
|
+
const {
|
|
92
|
+
TELEGRAM_CONSENT_POPUP_SCRIPT,
|
|
93
|
+
TELEGRAM_EXPORT_SCRIPT
|
|
94
|
+
} = require('./webviewScripts');
|
|
95
|
+
results.push({
|
|
96
|
+
platform: 'telegram',
|
|
97
|
+
component: 'webview_scripts',
|
|
98
|
+
status: TELEGRAM_EXPORT_SCRIPT ? 'pass' : 'fail',
|
|
99
|
+
message: TELEGRAM_EXPORT_SCRIPT ? 'Telegram scripts exported correctly' : 'Telegram scripts missing'
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Test utility functions
|
|
103
|
+
const {
|
|
104
|
+
isWebViewExtractionPlatform,
|
|
105
|
+
isHingePlatform,
|
|
106
|
+
isInstagramPlatform,
|
|
107
|
+
isSephoraPlatform,
|
|
108
|
+
isTelegramPlatform
|
|
109
|
+
} = require('./webviewScripts');
|
|
110
|
+
results.push({
|
|
111
|
+
platform: 'utilities',
|
|
112
|
+
component: 'platform_detection',
|
|
113
|
+
status: isWebViewExtractionPlatform && isHingePlatform && isInstagramPlatform && isSephoraPlatform && isTelegramPlatform ? 'pass' : 'fail',
|
|
114
|
+
message: 'Platform detection functions available'
|
|
115
|
+
});
|
|
116
|
+
} catch (error) {
|
|
117
|
+
results.push({
|
|
118
|
+
platform: 'all',
|
|
119
|
+
component: 'webview_scripts',
|
|
120
|
+
status: 'fail',
|
|
121
|
+
message: `Import error: ${error.message}`
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return results;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Test all service imports
|
|
129
|
+
*/
|
|
130
|
+
export const testServiceImports = () => {
|
|
131
|
+
const results = [];
|
|
132
|
+
|
|
133
|
+
// Test ChatGPT service
|
|
134
|
+
try {
|
|
135
|
+
const {
|
|
136
|
+
storeChatGPTConversations
|
|
137
|
+
} = require('../services/chatGPTConversationService');
|
|
138
|
+
results.push({
|
|
139
|
+
platform: 'chatgpt',
|
|
140
|
+
component: 'service',
|
|
141
|
+
status: typeof storeChatGPTConversations === 'function' ? 'pass' : 'fail',
|
|
142
|
+
message: 'ChatGPT service function available'
|
|
143
|
+
});
|
|
144
|
+
} catch (error) {
|
|
145
|
+
results.push({
|
|
146
|
+
platform: 'chatgpt',
|
|
147
|
+
component: 'service',
|
|
148
|
+
status: 'fail',
|
|
149
|
+
message: `Import error: ${error.message}`
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Test Claude service
|
|
154
|
+
try {
|
|
155
|
+
const {
|
|
156
|
+
storeClaudeConversations
|
|
157
|
+
} = require('../services/claudeConversationService');
|
|
158
|
+
results.push({
|
|
159
|
+
platform: 'claude',
|
|
160
|
+
component: 'service',
|
|
161
|
+
status: typeof storeClaudeConversations === 'function' ? 'pass' : 'fail',
|
|
162
|
+
message: 'Claude service function available'
|
|
163
|
+
});
|
|
164
|
+
} catch (error) {
|
|
165
|
+
results.push({
|
|
166
|
+
platform: 'claude',
|
|
167
|
+
component: 'service',
|
|
168
|
+
status: 'fail',
|
|
169
|
+
message: `Import error: ${error.message}`
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Test Hinge service
|
|
174
|
+
try {
|
|
175
|
+
const {
|
|
176
|
+
storeHingeData
|
|
177
|
+
} = require('../services/hingeDataService');
|
|
178
|
+
results.push({
|
|
179
|
+
platform: 'hinge',
|
|
180
|
+
component: 'service',
|
|
181
|
+
status: typeof storeHingeData === 'function' ? 'pass' : 'fail',
|
|
182
|
+
message: 'Hinge service function available'
|
|
183
|
+
});
|
|
184
|
+
} catch (error) {
|
|
185
|
+
results.push({
|
|
186
|
+
platform: 'hinge',
|
|
187
|
+
component: 'service',
|
|
188
|
+
status: 'fail',
|
|
189
|
+
message: `Import error: ${error.message}`
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Test Instagram service
|
|
194
|
+
try {
|
|
195
|
+
const {
|
|
196
|
+
storeInstagramData
|
|
197
|
+
} = require('../services/instagramDataService');
|
|
198
|
+
results.push({
|
|
199
|
+
platform: 'instagram',
|
|
200
|
+
component: 'service',
|
|
201
|
+
status: typeof storeInstagramData === 'function' ? 'pass' : 'fail',
|
|
202
|
+
message: 'Instagram service function available'
|
|
203
|
+
});
|
|
204
|
+
} catch (error) {
|
|
205
|
+
results.push({
|
|
206
|
+
platform: 'instagram',
|
|
207
|
+
component: 'service',
|
|
208
|
+
status: 'fail',
|
|
209
|
+
message: `Import error: ${error.message}`
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Test Sephora service
|
|
214
|
+
try {
|
|
215
|
+
const {
|
|
216
|
+
storeSephoraData
|
|
217
|
+
} = require('../services/sephoraDataService');
|
|
218
|
+
results.push({
|
|
219
|
+
platform: 'sephora',
|
|
220
|
+
component: 'service',
|
|
221
|
+
status: typeof storeSephoraData === 'function' ? 'pass' : 'fail',
|
|
222
|
+
message: 'Sephora service function available'
|
|
223
|
+
});
|
|
224
|
+
} catch (error) {
|
|
225
|
+
results.push({
|
|
226
|
+
platform: 'sephora',
|
|
227
|
+
component: 'service',
|
|
228
|
+
status: 'fail',
|
|
229
|
+
message: `Import error: ${error.message}`
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Test Telegram service
|
|
234
|
+
try {
|
|
235
|
+
const {
|
|
236
|
+
storeTelegramData
|
|
237
|
+
} = require('../services/telegramDataService');
|
|
238
|
+
results.push({
|
|
239
|
+
platform: 'telegram',
|
|
240
|
+
component: 'service',
|
|
241
|
+
status: typeof storeTelegramData === 'function' ? 'pass' : 'fail',
|
|
242
|
+
message: 'Telegram service function available'
|
|
243
|
+
});
|
|
244
|
+
} catch (error) {
|
|
245
|
+
results.push({
|
|
246
|
+
platform: 'telegram',
|
|
247
|
+
component: 'service',
|
|
248
|
+
status: 'fail',
|
|
249
|
+
message: `Import error: ${error.message}`
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
return results;
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Test all extractor hook imports
|
|
257
|
+
*/
|
|
258
|
+
export const testExtractorImports = () => {
|
|
259
|
+
const results = [];
|
|
260
|
+
|
|
261
|
+
// Test Hinge extractor
|
|
262
|
+
try {
|
|
263
|
+
const {
|
|
264
|
+
useHingeDataExtractor
|
|
265
|
+
} = require('../services/hingeDataExtractor');
|
|
266
|
+
results.push({
|
|
267
|
+
platform: 'hinge',
|
|
268
|
+
component: 'extractor',
|
|
269
|
+
status: typeof useHingeDataExtractor === 'function' ? 'pass' : 'fail',
|
|
270
|
+
message: 'Hinge extractor hook available'
|
|
271
|
+
});
|
|
272
|
+
} catch (error) {
|
|
273
|
+
results.push({
|
|
274
|
+
platform: 'hinge',
|
|
275
|
+
component: 'extractor',
|
|
276
|
+
status: 'fail',
|
|
277
|
+
message: `Import error: ${error.message}`
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// Test Instagram extractor
|
|
282
|
+
try {
|
|
283
|
+
const {
|
|
284
|
+
useInstagramDataExtractor
|
|
285
|
+
} = require('../services/instagramDataExtractor');
|
|
286
|
+
results.push({
|
|
287
|
+
platform: 'instagram',
|
|
288
|
+
component: 'extractor',
|
|
289
|
+
status: typeof useInstagramDataExtractor === 'function' ? 'pass' : 'fail',
|
|
290
|
+
message: 'Instagram extractor hook available'
|
|
291
|
+
});
|
|
292
|
+
} catch (error) {
|
|
293
|
+
results.push({
|
|
294
|
+
platform: 'instagram',
|
|
295
|
+
component: 'extractor',
|
|
296
|
+
status: 'fail',
|
|
297
|
+
message: `Import error: ${error.message}`
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// Test Sephora extractor
|
|
302
|
+
try {
|
|
303
|
+
const {
|
|
304
|
+
useSephoraDataExtractor
|
|
305
|
+
} = require('../services/sephoraDataExtractor');
|
|
306
|
+
results.push({
|
|
307
|
+
platform: 'sephora',
|
|
308
|
+
component: 'extractor',
|
|
309
|
+
status: typeof useSephoraDataExtractor === 'function' ? 'pass' : 'fail',
|
|
310
|
+
message: 'Sephora extractor hook available'
|
|
311
|
+
});
|
|
312
|
+
} catch (error) {
|
|
313
|
+
results.push({
|
|
314
|
+
platform: 'sephora',
|
|
315
|
+
component: 'extractor',
|
|
316
|
+
status: 'fail',
|
|
317
|
+
message: `Import error: ${error.message}`
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// Test Telegram extractor
|
|
322
|
+
try {
|
|
323
|
+
const {
|
|
324
|
+
useTelegramDataExtractor
|
|
325
|
+
} = require('../services/telegramDataExtractor');
|
|
326
|
+
results.push({
|
|
327
|
+
platform: 'telegram',
|
|
328
|
+
component: 'extractor',
|
|
329
|
+
status: typeof useTelegramDataExtractor === 'function' ? 'pass' : 'fail',
|
|
330
|
+
message: 'Telegram extractor hook available'
|
|
331
|
+
});
|
|
332
|
+
} catch (error) {
|
|
333
|
+
results.push({
|
|
334
|
+
platform: 'telegram',
|
|
335
|
+
component: 'extractor',
|
|
336
|
+
status: 'fail',
|
|
337
|
+
message: `Import error: ${error.message}`
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
return results;
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Test backend API connectivity
|
|
345
|
+
*/
|
|
346
|
+
export const testBackendConnectivity = async () => {
|
|
347
|
+
const results = [];
|
|
348
|
+
|
|
349
|
+
// Test health endpoint
|
|
350
|
+
try {
|
|
351
|
+
const controller = new AbortController();
|
|
352
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000);
|
|
353
|
+
const response = await fetch(`${API_CONFIG.BASE_URL}/health`, {
|
|
354
|
+
method: 'GET',
|
|
355
|
+
signal: controller.signal
|
|
356
|
+
});
|
|
357
|
+
clearTimeout(timeoutId);
|
|
358
|
+
results.push({
|
|
359
|
+
platform: 'backend',
|
|
360
|
+
component: 'health',
|
|
361
|
+
status: response.ok ? 'pass' : 'warning',
|
|
362
|
+
message: response.ok ? 'Backend health check passed' : `Backend returned status ${response.status}`,
|
|
363
|
+
details: {
|
|
364
|
+
status: response.status
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
} catch (error) {
|
|
368
|
+
results.push({
|
|
369
|
+
platform: 'backend',
|
|
370
|
+
component: 'health',
|
|
371
|
+
status: 'fail',
|
|
372
|
+
message: `Backend unreachable: ${error.message}`
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
// Test platform-data endpoint exists (OPTIONS request)
|
|
377
|
+
try {
|
|
378
|
+
const controller = new AbortController();
|
|
379
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000);
|
|
380
|
+
const response = await fetch(`${API_CONFIG.BASE_URL}/platform-data/store`, {
|
|
381
|
+
method: 'OPTIONS',
|
|
382
|
+
signal: controller.signal
|
|
383
|
+
});
|
|
384
|
+
clearTimeout(timeoutId);
|
|
385
|
+
results.push({
|
|
386
|
+
platform: 'backend',
|
|
387
|
+
component: 'platform_data_endpoint',
|
|
388
|
+
status: response.status < 500 ? 'pass' : 'warning',
|
|
389
|
+
message: `Platform data endpoint check: ${response.status}`,
|
|
390
|
+
details: {
|
|
391
|
+
status: response.status
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
} catch (error) {
|
|
395
|
+
results.push({
|
|
396
|
+
platform: 'backend',
|
|
397
|
+
component: 'platform_data_endpoint',
|
|
398
|
+
status: 'warning',
|
|
399
|
+
message: `Endpoint check failed (may require auth): ${error.message}`
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
return results;
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Test platform detection utility functions
|
|
407
|
+
*/
|
|
408
|
+
export const testPlatformDetection = () => {
|
|
409
|
+
const results = [];
|
|
410
|
+
try {
|
|
411
|
+
const {
|
|
412
|
+
isWebViewExtractionPlatform,
|
|
413
|
+
isHingePlatform,
|
|
414
|
+
isInstagramPlatform,
|
|
415
|
+
isSephoraPlatform,
|
|
416
|
+
isLLMPlatform
|
|
417
|
+
} = require('./webviewScripts');
|
|
418
|
+
|
|
419
|
+
// Test Hinge detection
|
|
420
|
+
const hingeTest = isHingePlatform('hinge') && isWebViewExtractionPlatform('hinge') && !isLLMPlatform('hinge');
|
|
421
|
+
results.push({
|
|
422
|
+
platform: 'hinge',
|
|
423
|
+
component: 'detection',
|
|
424
|
+
status: hingeTest ? 'pass' : 'fail',
|
|
425
|
+
message: hingeTest ? 'Hinge detection correct' : 'Hinge detection failed'
|
|
426
|
+
});
|
|
427
|
+
|
|
428
|
+
// Test Instagram detection
|
|
429
|
+
const instagramTest = isInstagramPlatform('instagram') && isWebViewExtractionPlatform('instagram') && !isLLMPlatform('instagram');
|
|
430
|
+
results.push({
|
|
431
|
+
platform: 'instagram',
|
|
432
|
+
component: 'detection',
|
|
433
|
+
status: instagramTest ? 'pass' : 'fail',
|
|
434
|
+
message: instagramTest ? 'Instagram detection correct' : 'Instagram detection failed'
|
|
435
|
+
});
|
|
436
|
+
|
|
437
|
+
// Test Sephora detection
|
|
438
|
+
const sephoraTest = isSephoraPlatform('sephora') && isWebViewExtractionPlatform('sephora') && !isLLMPlatform('sephora');
|
|
439
|
+
results.push({
|
|
440
|
+
platform: 'sephora',
|
|
441
|
+
component: 'detection',
|
|
442
|
+
status: sephoraTest ? 'pass' : 'fail',
|
|
443
|
+
message: sephoraTest ? 'Sephora detection correct' : 'Sephora detection failed'
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
// Test Telegram detection
|
|
447
|
+
const {
|
|
448
|
+
isTelegramPlatform
|
|
449
|
+
} = require('./webviewScripts');
|
|
450
|
+
const telegramTest = isTelegramPlatform('telegram') && isWebViewExtractionPlatform('telegram') && !isLLMPlatform('telegram');
|
|
451
|
+
results.push({
|
|
452
|
+
platform: 'telegram',
|
|
453
|
+
component: 'detection',
|
|
454
|
+
status: telegramTest ? 'pass' : 'fail',
|
|
455
|
+
message: telegramTest ? 'Telegram detection correct' : 'Telegram detection failed'
|
|
456
|
+
});
|
|
457
|
+
} catch (error) {
|
|
458
|
+
results.push({
|
|
459
|
+
platform: 'all',
|
|
460
|
+
component: 'detection',
|
|
461
|
+
status: 'fail',
|
|
462
|
+
message: `Detection test error: ${error.message}`
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
return results;
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Run all connector sanity tests
|
|
470
|
+
*/
|
|
471
|
+
export const runConnectorSanityTests = async () => {
|
|
472
|
+
console.log('๐งช [CONNECTOR_TESTS] Starting connector sanity tests...\n');
|
|
473
|
+
const allResults = [];
|
|
474
|
+
|
|
475
|
+
// Run all test suites
|
|
476
|
+
console.log('๐ Testing WebView script exports...');
|
|
477
|
+
allResults.push(...testWebViewScriptExports());
|
|
478
|
+
console.log('๐ Testing service imports...');
|
|
479
|
+
allResults.push(...testServiceImports());
|
|
480
|
+
console.log('๐ Testing extractor imports...');
|
|
481
|
+
allResults.push(...testExtractorImports());
|
|
482
|
+
console.log('๐ Testing platform detection...');
|
|
483
|
+
allResults.push(...testPlatformDetection());
|
|
484
|
+
console.log('๐ Testing backend connectivity...');
|
|
485
|
+
allResults.push(...(await testBackendConnectivity()));
|
|
486
|
+
|
|
487
|
+
// Calculate summary
|
|
488
|
+
const passed = allResults.filter(r => r.status === 'pass').length;
|
|
489
|
+
const failed = allResults.filter(r => r.status === 'fail').length;
|
|
490
|
+
const warnings = allResults.filter(r => r.status === 'warning').length;
|
|
491
|
+
|
|
492
|
+
// Log results
|
|
493
|
+
console.log('\n========================================');
|
|
494
|
+
console.log('๐งช CONNECTOR SANITY TEST RESULTS');
|
|
495
|
+
console.log('========================================\n');
|
|
496
|
+
for (const result of allResults) {
|
|
497
|
+
const icon = result.status === 'pass' ? 'โ
' : result.status === 'fail' ? 'โ' : 'โ ๏ธ';
|
|
498
|
+
console.log(`${icon} [${result.platform.toUpperCase()}] ${result.component}: ${result.message}`);
|
|
499
|
+
}
|
|
500
|
+
console.log('\n========================================');
|
|
501
|
+
console.log(`๐ Summary: ${passed} passed, ${failed} failed, ${warnings} warnings`);
|
|
502
|
+
console.log('========================================\n');
|
|
503
|
+
if (failed > 0) {
|
|
504
|
+
console.log('โ Some tests failed! Please check the errors above.');
|
|
505
|
+
} else if (warnings > 0) {
|
|
506
|
+
console.log('โ ๏ธ All critical tests passed, but there are warnings.');
|
|
507
|
+
} else {
|
|
508
|
+
console.log('โ
All tests passed! Connectors are ready.');
|
|
509
|
+
}
|
|
510
|
+
return {
|
|
511
|
+
passed,
|
|
512
|
+
failed,
|
|
513
|
+
warnings,
|
|
514
|
+
results: allResults
|
|
515
|
+
};
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* Quick test to validate a specific platform's connector
|
|
520
|
+
*/
|
|
521
|
+
export const testPlatformConnector = async platformName => {
|
|
522
|
+
console.log(`๐งช Testing ${platformName} connector...\n`);
|
|
523
|
+
const results = [];
|
|
524
|
+
const platform = platformName.toLowerCase();
|
|
525
|
+
|
|
526
|
+
// Test based on platform
|
|
527
|
+
if (['hinge', 'instagram', 'sephora', 'telegram'].includes(platform)) {
|
|
528
|
+
// Test script export
|
|
529
|
+
try {
|
|
530
|
+
const scripts = require('./webviewScripts');
|
|
531
|
+
const scriptKey = `${platform.toUpperCase()}_EXPORT_SCRIPT`;
|
|
532
|
+
const hasScript = !!scripts[scriptKey];
|
|
533
|
+
results.push({
|
|
534
|
+
platform,
|
|
535
|
+
component: 'webview_script',
|
|
536
|
+
status: hasScript ? 'pass' : 'fail',
|
|
537
|
+
message: hasScript ? 'Export script available' : 'Export script missing'
|
|
538
|
+
});
|
|
539
|
+
} catch (e) {
|
|
540
|
+
results.push({
|
|
541
|
+
platform,
|
|
542
|
+
component: 'webview_script',
|
|
543
|
+
status: 'fail',
|
|
544
|
+
message: `Script import failed: ${e.message}`
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
// Test service
|
|
549
|
+
try {
|
|
550
|
+
const service = require(`../services/${platform}DataService`);
|
|
551
|
+
const functionName = platform === 'hinge' ? 'storeHingeData' : platform === 'instagram' ? 'storeInstagramData' : platform === 'telegram' ? 'storeTelegramData' : 'storeSephoraData';
|
|
552
|
+
results.push({
|
|
553
|
+
platform,
|
|
554
|
+
component: 'service',
|
|
555
|
+
status: typeof service[functionName] === 'function' ? 'pass' : 'fail',
|
|
556
|
+
message: `Service function ${functionName} available`
|
|
557
|
+
});
|
|
558
|
+
} catch (e) {
|
|
559
|
+
results.push({
|
|
560
|
+
platform,
|
|
561
|
+
component: 'service',
|
|
562
|
+
status: 'fail',
|
|
563
|
+
message: `Service import failed: ${e.message}`
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// Test extractor
|
|
568
|
+
try {
|
|
569
|
+
const extractor = require(`../services/${platform}DataExtractor`);
|
|
570
|
+
const hookName = `use${platform.charAt(0).toUpperCase() + platform.slice(1)}DataExtractor`;
|
|
571
|
+
results.push({
|
|
572
|
+
platform,
|
|
573
|
+
component: 'extractor',
|
|
574
|
+
status: typeof extractor[hookName] === 'function' ? 'pass' : 'fail',
|
|
575
|
+
message: `Extractor hook ${hookName} available`
|
|
576
|
+
});
|
|
577
|
+
} catch (e) {
|
|
578
|
+
results.push({
|
|
579
|
+
platform,
|
|
580
|
+
component: 'extractor',
|
|
581
|
+
status: 'fail',
|
|
582
|
+
message: `Extractor import failed: ${e.message}`
|
|
583
|
+
});
|
|
584
|
+
}
|
|
585
|
+
} else {
|
|
586
|
+
results.push({
|
|
587
|
+
platform,
|
|
588
|
+
component: 'validation',
|
|
589
|
+
status: 'warning',
|
|
590
|
+
message: `Unknown platform: ${platformName}. Use 'hinge', 'instagram', 'sephora', or 'telegram'.`
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
// Log results
|
|
595
|
+
for (const result of results) {
|
|
596
|
+
const icon = result.status === 'pass' ? 'โ
' : result.status === 'fail' ? 'โ' : 'โ ๏ธ';
|
|
597
|
+
console.log(`${icon} ${result.component}: ${result.message}`);
|
|
598
|
+
}
|
|
599
|
+
return results;
|
|
600
|
+
};
|
|
601
|
+
//# sourceMappingURL=connectorTests.js.map
|