@onairos/react-native 3.7.2 โ†’ 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.
Files changed (237) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/components/BodyText.js +27 -9
  3. package/lib/commonjs/components/BrandMark.js +111 -10
  4. package/lib/commonjs/components/CodeInput.js +116 -9
  5. package/lib/commonjs/components/EmailInput.js +30 -8
  6. package/lib/commonjs/components/GoogleButton.js +56 -9
  7. package/lib/commonjs/components/HeadingGroup.js +43 -9
  8. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  9. package/lib/commonjs/components/ModalHeader.js +99 -9
  10. package/lib/commonjs/components/ModalSheet.js +47 -9
  11. package/lib/commonjs/components/Onairos.js +380 -14
  12. package/lib/commonjs/components/OnairosButton.js +313 -13
  13. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  14. package/lib/commonjs/components/Overlay.js +465 -13
  15. package/lib/commonjs/components/PersonaImage.js +137 -10
  16. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  17. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  18. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  19. package/lib/commonjs/components/PinInput.js +464 -9
  20. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  21. package/lib/commonjs/components/PlatformList.js +137 -10
  22. package/lib/commonjs/components/PlatformToggle.js +180 -9
  23. package/lib/commonjs/components/PrimaryButton.js +180 -10
  24. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  25. package/lib/commonjs/components/SignInStep.js +345 -12
  26. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  27. package/lib/commonjs/components/VerificationStep.js +176 -11
  28. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  29. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  30. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  31. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  32. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  33. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  34. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  35. package/lib/commonjs/components/icons/EnochE.js +41 -8
  36. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  37. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  38. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  39. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  40. package/lib/commonjs/components/icons/index.js +84 -17
  41. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  42. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  43. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  44. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  45. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  46. package/lib/commonjs/config/api.js +56 -7
  47. package/lib/commonjs/constants/index.js +120 -7
  48. package/lib/commonjs/context/AuthContext.js +345 -10
  49. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  50. package/lib/commonjs/hooks/useConnections.js +102 -8
  51. package/lib/commonjs/hooks/useCredentials.js +178 -10
  52. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  53. package/lib/commonjs/index.js +439 -34
  54. package/lib/commonjs/services/apiClient.js +298 -8
  55. package/lib/commonjs/services/biometricPinService.js +180 -8
  56. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  57. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  58. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  59. package/lib/commonjs/services/claudeConversationService.js +158 -9
  60. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  61. package/lib/commonjs/services/googleAuthService.js +252 -11
  62. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  63. package/lib/commonjs/services/hingeDataService.js +150 -9
  64. package/lib/commonjs/services/imageCompressionService.js +260 -7
  65. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  66. package/lib/commonjs/services/instagramDataService.js +163 -9
  67. package/lib/commonjs/services/jwtStorageService.js +276 -7
  68. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  69. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  70. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  71. package/lib/commonjs/services/llmDataStorage.js +294 -8
  72. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  73. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  74. package/lib/commonjs/services/netflixDataService.js +198 -9
  75. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  76. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  77. package/lib/commonjs/services/platformAuthService.js +1484 -12
  78. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  79. package/lib/commonjs/services/sephoraDataService.js +200 -9
  80. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  81. package/lib/commonjs/services/spotifyDataService.js +241 -9
  82. package/lib/commonjs/services/storageService.js +404 -8
  83. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  84. package/lib/commonjs/services/telegramDataService.js +499 -9
  85. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  86. package/lib/commonjs/services/userConnectionsService.js +340 -10
  87. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  88. package/lib/commonjs/theme/index.js +250 -7
  89. package/lib/commonjs/types/ambient.d.js +2 -1
  90. package/lib/commonjs/types/declarations.d.js +2 -1
  91. package/lib/commonjs/types/index.js +6 -1
  92. package/lib/commonjs/types/node-fix.d.js +2 -1
  93. package/lib/commonjs/types/node-override.d.js +2 -1
  94. package/lib/commonjs/types/opacity.d.js +2 -1
  95. package/lib/commonjs/types.js +14 -1
  96. package/lib/commonjs/utils/Portal.js +98 -8
  97. package/lib/commonjs/utils/api.js +130 -9
  98. package/lib/commonjs/utils/assetRegistry.js +210 -35
  99. package/lib/commonjs/utils/auth.js +112 -9
  100. package/lib/commonjs/utils/connectorTests.js +613 -29
  101. package/lib/commonjs/utils/crypto.js +62 -8
  102. package/lib/commonjs/utils/debugHelper.js +64 -1
  103. package/lib/commonjs/utils/encryption.js +76 -7
  104. package/lib/commonjs/utils/eventUtils.js +288 -1
  105. package/lib/commonjs/utils/haptics.js +66 -9
  106. package/lib/commonjs/utils/imagePreloader.js +6 -1
  107. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  108. package/lib/commonjs/utils/onairosApi.js +350 -9
  109. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  110. package/lib/commonjs/utils/retryHelper.js +220 -1
  111. package/lib/commonjs/utils/secureStorage.js +349 -10
  112. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  113. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  114. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  115. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  116. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  117. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  118. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  119. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  120. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  121. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  122. package/lib/module/api/index.js +211 -1
  123. package/lib/module/components/BodyText.js +20 -1
  124. package/lib/module/components/BrandMark.js +104 -1
  125. package/lib/module/components/CodeInput.js +109 -1
  126. package/lib/module/components/EmailInput.js +23 -1
  127. package/lib/module/components/GoogleButton.js +49 -1
  128. package/lib/module/components/HeadingGroup.js +36 -1
  129. package/lib/module/components/LLMDataInputModal.js +656 -7
  130. package/lib/module/components/ModalHeader.js +92 -1
  131. package/lib/module/components/ModalSheet.js +39 -1
  132. package/lib/module/components/Onairos.js +373 -1
  133. package/lib/module/components/OnairosButton.js +305 -1
  134. package/lib/module/components/OnairosSignInButton.js +121 -1
  135. package/lib/module/components/Overlay.js +456 -1
  136. package/lib/module/components/PersonaImage.js +129 -1
  137. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  138. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  139. package/lib/module/components/PinCreationScreen.js +396 -1
  140. package/lib/module/components/PinInput.js +456 -1
  141. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  142. package/lib/module/components/PlatformList.js +129 -1
  143. package/lib/module/components/PlatformToggle.js +173 -1
  144. package/lib/module/components/PrimaryButton.js +172 -1
  145. package/lib/module/components/SignInMatchAnimation.js +189 -1
  146. package/lib/module/components/SignInStep.js +338 -1
  147. package/lib/module/components/UniversalOnboarding.js +2770 -1
  148. package/lib/module/components/VerificationStep.js +168 -1
  149. package/lib/module/components/WelcomeScreen.js +453 -1
  150. package/lib/module/components/icons/Basicproficon.js +30 -1
  151. package/lib/module/components/icons/Basicprofile.js +14 -1
  152. package/lib/module/components/icons/Checkbox.js +14 -1
  153. package/lib/module/components/icons/Checkmark.js +20 -1
  154. package/lib/module/components/icons/Contentanalysis.js +14 -1
  155. package/lib/module/components/icons/Contenticon.js +32 -1
  156. package/lib/module/components/icons/EnochE.js +34 -1
  157. package/lib/module/components/icons/Personalityicon.js +23 -1
  158. package/lib/module/components/icons/Personalityprofile.js +14 -1
  159. package/lib/module/components/icons/Personalitytraits.js +14 -1
  160. package/lib/module/components/icons/Userpreferences.js +14 -1
  161. package/lib/module/components/icons/index.js +13 -1
  162. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  163. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  164. package/lib/module/components/onboarding/PinInput.js +274 -1
  165. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  166. package/lib/module/config/PLATFORM_APIS.md +849 -0
  167. package/lib/module/config/api.js +47 -1
  168. package/lib/module/constants/index.js +114 -1
  169. package/lib/module/context/AuthContext.js +335 -1
  170. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  171. package/lib/module/hooks/useConnections.js +95 -1
  172. package/lib/module/hooks/useCredentials.js +171 -6
  173. package/lib/module/hooks/useUserConnections.js +140 -1
  174. package/lib/module/index.js +172 -1
  175. package/lib/module/services/apiClient.js +295 -1
  176. package/lib/module/services/biometricPinService.js +169 -1
  177. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  178. package/lib/module/services/chatGPTConversationService.js +268 -1
  179. package/lib/module/services/claudeConversationExtractor.js +97 -1
  180. package/lib/module/services/claudeConversationService.js +151 -1
  181. package/lib/module/services/connectedAccountsService.js +293 -1
  182. package/lib/module/services/googleAuthService.js +241 -1
  183. package/lib/module/services/hingeDataExtractor.js +99 -1
  184. package/lib/module/services/hingeDataService.js +143 -1
  185. package/lib/module/services/imageCompressionService.js +250 -1
  186. package/lib/module/services/instagramDataExtractor.js +120 -1
  187. package/lib/module/services/instagramDataService.js +156 -1
  188. package/lib/module/services/jwtStorageService.js +257 -1
  189. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  190. package/lib/module/services/linkedinProfileService.js +210 -1
  191. package/lib/module/services/linkedinScrapingService.js +219 -1
  192. package/lib/module/services/llmDataStorage.js +277 -1
  193. package/lib/module/services/mobileTrainingService.js +173 -1
  194. package/lib/module/services/netflixDataExtractor.js +114 -1
  195. package/lib/module/services/netflixDataService.js +191 -1
  196. package/lib/module/services/pinEncryptionService.js +74 -6
  197. package/lib/module/services/pinStorageUtils.js +93 -1
  198. package/lib/module/services/platformAuthService.js +1461 -1
  199. package/lib/module/services/sephoraDataExtractor.js +134 -1
  200. package/lib/module/services/sephoraDataService.js +193 -1
  201. package/lib/module/services/spotifyDataExtractor.js +142 -1
  202. package/lib/module/services/spotifyDataService.js +234 -1
  203. package/lib/module/services/storageService.js +383 -1
  204. package/lib/module/services/telegramDataExtractor.js +109 -1
  205. package/lib/module/services/telegramDataService.js +493 -1
  206. package/lib/module/services/trainingApiHelpers.js +67 -1
  207. package/lib/module/services/userConnectionsService.js +329 -1
  208. package/lib/module/services/youtubeMigrationService.js +405 -1
  209. package/lib/module/theme/index.js +245 -1
  210. package/lib/module/types.js +10 -1
  211. package/lib/module/utils/Portal.js +90 -1
  212. package/lib/module/utils/api.js +118 -1
  213. package/lib/module/utils/assetRegistry.js +200 -34
  214. package/lib/module/utils/auth.js +100 -1
  215. package/lib/module/utils/connectorTests.js +600 -27
  216. package/lib/module/utils/crypto.js +54 -1
  217. package/lib/module/utils/debugHelper.js +54 -1
  218. package/lib/module/utils/encryption.js +67 -1
  219. package/lib/module/utils/eventUtils.js +270 -1
  220. package/lib/module/utils/haptics.js +59 -8
  221. package/lib/module/utils/imagePreloader.js +3 -1
  222. package/lib/module/utils/networkDiagnostics.js +217 -1
  223. package/lib/module/utils/onairosApi.js +333 -1
  224. package/lib/module/utils/programmaticFlow.js +111 -1
  225. package/lib/module/utils/retryHelper.js +211 -1
  226. package/lib/module/utils/secureStorage.js +330 -6
  227. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  228. package/lib/module/utils/webviewScripts/claude.js +370 -1
  229. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  230. package/lib/module/utils/webviewScripts/index.js +434 -1
  231. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  232. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  233. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  234. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  235. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  236. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  237. package/package.json +2 -2
@@ -1,29 +1,613 @@
1
- 'use strict';
2
- // Onairos SDK - Asset Registry (auto-generated)
3
- var __ONAIROS_REQ_REGISTRY__ = [
4
- require("../config/api"),
5
- require('./webviewScripts'),
6
- require('./webviewScripts'),
7
- require('./webviewScripts'),
8
- require('./webviewScripts'),
9
- require('./webviewScripts'),
10
- require('./webviewScripts'),
11
- require('./webviewScripts'),
12
- require('../services/chatGPTConversationService'),
13
- require('../services/claudeConversationService'),
14
- require('../services/hingeDataService'),
15
- require('../services/instagramDataService'),
16
- require('../services/sephoraDataService'),
17
- require('../services/telegramDataService'),
18
- require('../services/hingeDataExtractor'),
19
- require('../services/instagramDataExtractor'),
20
- require('../services/sephoraDataExtractor'),
21
- require('../services/telegramDataExtractor'),
22
- require('./webviewScripts'),
23
- require('./webviewScripts'),
24
- require('./webviewScripts'),
25
- require(`../services/${platform}DataService`),
26
- require(`../services/${platform}DataExtractor`)
27
- ];
28
- function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
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