@onairos/react-native 3.4.0 → 3.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/README.md +62 -13
  2. package/lib/commonjs/api/index.js +9 -145
  3. package/lib/commonjs/assets/animations/loaderani.json +1 -0
  4. package/lib/commonjs/assets/animations/persona-animation.json +1 -0
  5. package/lib/commonjs/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  7. package/lib/commonjs/assets/icons/Facebookicon.png +0 -0
  8. package/lib/commonjs/assets/icons/Gmail.png +0 -0
  9. package/lib/commonjs/assets/icons/Linkedinicon.png +0 -0
  10. package/lib/commonjs/assets/icons/Redditicon.png +0 -0
  11. package/lib/commonjs/assets/icons/YouTubeicon2.png +0 -0
  12. package/lib/commonjs/assets/icons/YouTubeicon3.png +0 -0
  13. package/lib/commonjs/assets/icons/chatgpt.png +0 -0
  14. package/lib/commonjs/assets/icons/claude.png +0 -0
  15. package/lib/commonjs/assets/icons/gemini.png +0 -0
  16. package/lib/commonjs/assets/icons/grok.png +0 -0
  17. package/lib/commonjs/assets/images/Checkbox.svg +3 -0
  18. package/lib/commonjs/assets/images/EnochE.svg +19 -0
  19. package/lib/commonjs/assets/images/Enochicon1.png +0 -0
  20. package/lib/commonjs/assets/images/Face_ID_logo.png +0 -0
  21. package/lib/commonjs/assets/images/Facebookicon.png +0 -0
  22. package/lib/commonjs/assets/images/Gmail.png +0 -0
  23. package/lib/commonjs/assets/images/Googlelogo.png +0 -0
  24. package/lib/commonjs/assets/images/Linkedinicon.png +0 -0
  25. package/lib/commonjs/assets/images/Onairoslogo.png +0 -0
  26. package/lib/commonjs/assets/images/Personalityprofile.svg +3 -0
  27. package/lib/commonjs/assets/images/Personalitytraits.svg +3 -0
  28. package/lib/commonjs/assets/images/Redditicon.png +0 -0
  29. package/lib/commonjs/assets/images/Userpreferences.svg +3 -0
  30. package/lib/commonjs/assets/images/YouTubeicon3.png +0 -0
  31. package/lib/commonjs/assets/images/arrow.svg +20 -0
  32. package/lib/commonjs/assets/images/basicproficon.svg +43 -0
  33. package/lib/commonjs/assets/images/basicprofile.svg +3 -0
  34. package/lib/commonjs/assets/images/chatgpt.png +0 -0
  35. package/lib/commonjs/assets/images/checkmark.svg +4 -0
  36. package/lib/commonjs/assets/images/claude.png +0 -0
  37. package/lib/commonjs/assets/images/contentanalysis.svg +3 -0
  38. package/lib/commonjs/assets/images/contenticon.svg +23 -0
  39. package/lib/commonjs/assets/images/gemini.png +0 -0
  40. package/lib/commonjs/assets/images/grok.png +0 -0
  41. package/lib/commonjs/assets/images/persona1.png +0 -0
  42. package/lib/commonjs/assets/images/persona2.png +0 -0
  43. package/lib/commonjs/assets/images/persona3.png +0 -0
  44. package/lib/commonjs/assets/images/persona4.png +0 -0
  45. package/lib/commonjs/assets/images/persona5.png +0 -0
  46. package/lib/commonjs/assets/images/personalityicon.svg +18 -0
  47. package/lib/commonjs/assets/images/x-close.svg +3 -0
  48. package/lib/commonjs/components/BodyText.js +9 -0
  49. package/lib/commonjs/components/BrandMark.js +10 -0
  50. package/lib/commonjs/components/CodeInput.js +9 -0
  51. package/lib/commonjs/components/EmailInput.js +8 -0
  52. package/lib/commonjs/components/GoogleButton.js +9 -0
  53. package/lib/commonjs/components/HeadingGroup.js +9 -0
  54. package/lib/commonjs/components/LLMDataInputModal.js +14 -0
  55. package/lib/commonjs/components/ModalHeader.js +9 -0
  56. package/lib/commonjs/components/ModalSheet.js +9 -0
  57. package/lib/commonjs/components/Onairos.js +14 -374
  58. package/lib/commonjs/components/OnairosButton.js +13 -309
  59. package/lib/commonjs/components/OnairosSignInButton.js +12 -0
  60. package/lib/commonjs/components/Overlay.js +13 -483
  61. package/lib/commonjs/components/PersonaImage.js +10 -0
  62. package/lib/commonjs/components/PersonaLoadingScreen.js +12 -0
  63. package/lib/commonjs/components/PersonalizationConsentScreen.js +13 -0
  64. package/lib/commonjs/components/PinCreationScreen.js +12 -0
  65. package/lib/commonjs/components/PinInput.js +9 -302
  66. package/lib/commonjs/components/PlatformConnectorsStep.js +22 -0
  67. package/lib/commonjs/components/PlatformList.js +10 -137
  68. package/lib/commonjs/components/PlatformToggle.js +9 -0
  69. package/lib/commonjs/components/PrimaryButton.js +10 -0
  70. package/lib/commonjs/components/SignInMatchAnimation.js +9 -0
  71. package/lib/commonjs/components/SignInStep.js +12 -0
  72. package/lib/commonjs/components/UniversalOnboarding.js +29 -1702
  73. package/lib/commonjs/components/VerificationStep.js +11 -0
  74. package/lib/commonjs/components/WelcomeScreen.js +21 -0
  75. package/lib/commonjs/components/icons/Basicproficon.js +8 -0
  76. package/lib/commonjs/components/icons/Basicprofile.js +8 -0
  77. package/lib/commonjs/components/icons/Checkbox.js +8 -0
  78. package/lib/commonjs/components/icons/Checkmark.js +8 -0
  79. package/lib/commonjs/components/icons/Contentanalysis.js +8 -0
  80. package/lib/commonjs/components/icons/Contenticon.js +8 -0
  81. package/lib/commonjs/components/icons/EnochE.js +8 -0
  82. package/lib/commonjs/components/icons/Personalityicon.js +8 -0
  83. package/lib/commonjs/components/icons/Personalityprofile.js +8 -0
  84. package/lib/commonjs/components/icons/Personalitytraits.js +8 -0
  85. package/lib/commonjs/components/icons/Userpreferences.js +8 -0
  86. package/lib/commonjs/components/icons/index.js +17 -0
  87. package/lib/commonjs/components/onboarding/OAuthWebView.js +14 -827
  88. package/lib/commonjs/components/onboarding/OnboardingHeader.js +10 -74
  89. package/lib/commonjs/components/onboarding/PinInput.js +10 -283
  90. package/lib/commonjs/components/onboarding/PlatformConnector.js +11 -249
  91. package/lib/commonjs/config/api.js +7 -0
  92. package/lib/commonjs/constants/index.js +7 -83
  93. package/lib/commonjs/context/AuthContext.js +10 -0
  94. package/lib/commonjs/hooks/useConnectedAccounts.js +9 -0
  95. package/lib/commonjs/hooks/useConnections.js +8 -159
  96. package/lib/commonjs/hooks/useCredentials.js +10 -177
  97. package/lib/commonjs/hooks/useUserConnections.js +10 -0
  98. package/lib/commonjs/index.js +35 -106
  99. package/lib/commonjs/services/SDK_API_KEY_VALIDATION.md +31 -38
  100. package/lib/commonjs/services/apiClient.js +8 -0
  101. package/lib/commonjs/services/apiKeyService.js +9 -946
  102. package/lib/commonjs/services/authService.js +10 -0
  103. package/lib/commonjs/services/biometricPinService.js +8 -0
  104. package/lib/commonjs/services/chatGPTConversationExtractor.js +8 -0
  105. package/lib/commonjs/services/chatGPTConversationService.js +9 -0
  106. package/lib/commonjs/services/claudeConversationExtractor.js +8 -0
  107. package/lib/commonjs/services/claudeConversationService.js +9 -0
  108. package/lib/commonjs/services/connectedAccountsService.js +10 -0
  109. package/lib/commonjs/services/googleAuthService.js +11 -0
  110. package/lib/commonjs/services/imageCompressionService.js +7 -0
  111. package/lib/commonjs/services/jwtStorageService.js +7 -0
  112. package/lib/commonjs/services/linkedinDOMExtractor.js +7 -0
  113. package/lib/commonjs/services/linkedinProfileService.js +9 -0
  114. package/lib/commonjs/services/linkedinScrapingService.js +8 -0
  115. package/lib/commonjs/services/llmDataStorage.js +8 -0
  116. package/lib/commonjs/services/mobileTrainingService.js +8 -0
  117. package/lib/commonjs/services/oauthService.js +11 -390
  118. package/lib/commonjs/services/pinEncryptionService.js +8 -0
  119. package/lib/commonjs/services/pinStorageUtils.js +7 -0
  120. package/lib/commonjs/services/platformAuthService.js +12 -1067
  121. package/lib/commonjs/services/storageService.js +8 -0
  122. package/lib/commonjs/services/trainingApiHelpers.js +7 -0
  123. package/lib/commonjs/services/userConnectionsService.js +10 -0
  124. package/lib/commonjs/services/youtubeMigrationService.js +10 -0
  125. package/lib/commonjs/theme/index.js +7 -0
  126. package/lib/commonjs/types/ambient.d.js +1 -2
  127. package/lib/commonjs/types/declarations.d.js +1 -2
  128. package/lib/commonjs/types/index.js +1 -6
  129. package/lib/commonjs/types/node-fix.d.js +1 -2
  130. package/lib/commonjs/types/node-override.d.js +1 -2
  131. package/lib/commonjs/types/opacity.d.js +1 -2
  132. package/lib/commonjs/types.js +1 -14
  133. package/lib/commonjs/utils/Portal.js +8 -98
  134. package/lib/commonjs/utils/api.js +9 -129
  135. package/lib/commonjs/utils/assetRegistry.js +33 -0
  136. package/lib/commonjs/utils/auth.js +9 -111
  137. package/lib/commonjs/utils/crypto.js +8 -62
  138. package/lib/commonjs/utils/debugHelper.js +1 -64
  139. package/lib/commonjs/utils/encryption.js +7 -76
  140. package/lib/commonjs/utils/eventUtils.js +1 -0
  141. package/lib/commonjs/utils/haptics.js +9 -0
  142. package/lib/commonjs/utils/imagePreloader.js +1 -0
  143. package/lib/commonjs/utils/networkDiagnostics.js +8 -0
  144. package/lib/commonjs/utils/onairosApi.js +9 -350
  145. package/lib/commonjs/utils/programmaticFlow.js +9 -117
  146. package/lib/commonjs/utils/retryHelper.js +1 -220
  147. package/lib/commonjs/utils/secureStorage.js +10 -349
  148. package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -0
  149. package/lib/commonjs/utils/webviewScripts/claude.js +1 -0
  150. package/lib/commonjs/utils/webviewScripts/index.js +9 -0
  151. package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -0
  152. package/lib/module/api/index.js +1 -139
  153. package/lib/module/assets/animations/loaderani.json +1 -0
  154. package/lib/module/assets/animations/persona-animation.json +1 -0
  155. package/lib/module/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  156. package/lib/module/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  157. package/lib/module/assets/icons/Facebookicon.png +0 -0
  158. package/lib/module/assets/icons/Gmail.png +0 -0
  159. package/lib/module/assets/icons/Linkedinicon.png +0 -0
  160. package/lib/module/assets/icons/Redditicon.png +0 -0
  161. package/lib/module/assets/icons/YouTubeicon2.png +0 -0
  162. package/lib/module/assets/icons/YouTubeicon3.png +0 -0
  163. package/lib/module/assets/icons/chatgpt.png +0 -0
  164. package/lib/module/assets/icons/claude.png +0 -0
  165. package/lib/module/assets/icons/farcaster.png +0 -0
  166. package/lib/module/assets/icons/gemini.png +0 -0
  167. package/lib/module/assets/icons/grok.png +0 -0
  168. package/lib/module/assets/icons/instagram.png +0 -0
  169. package/lib/module/assets/icons/pinterest.png +0 -0
  170. package/lib/module/assets/icons/swerv_logo.png +0 -0
  171. package/lib/module/assets/icons/twitter.jpg +0 -0
  172. package/lib/module/assets/images/Checkbox.svg +3 -0
  173. package/lib/module/assets/images/EnochE.svg +19 -0
  174. package/lib/module/assets/images/Enochicon1.png +0 -0
  175. package/lib/module/assets/images/Face_ID_logo.png +0 -0
  176. package/lib/module/assets/images/Facebookicon.png +0 -0
  177. package/lib/module/assets/images/Gmail.png +0 -0
  178. package/lib/module/assets/images/Googlelogo.png +0 -0
  179. package/lib/module/assets/images/Linkedinicon.png +0 -0
  180. package/lib/module/assets/images/Onairoslogo.png +0 -0
  181. package/lib/module/assets/images/Personalityprofile.svg +3 -0
  182. package/lib/module/assets/images/Personalitytraits.svg +3 -0
  183. package/lib/module/assets/images/Redditicon.png +0 -0
  184. package/lib/module/assets/images/Userpreferences.svg +3 -0
  185. package/lib/module/assets/images/YouTubeicon3.png +0 -0
  186. package/lib/module/assets/images/arrow.svg +20 -0
  187. package/lib/module/assets/images/basicproficon.svg +43 -0
  188. package/lib/module/assets/images/basicprofile.svg +3 -0
  189. package/lib/module/assets/images/chatgpt.png +0 -0
  190. package/lib/module/assets/images/checkmark.svg +4 -0
  191. package/lib/module/assets/images/claude.png +0 -0
  192. package/lib/module/assets/images/contentanalysis.svg +3 -0
  193. package/lib/module/assets/images/contenticon.svg +23 -0
  194. package/lib/module/assets/images/gemini.png +0 -0
  195. package/lib/module/assets/images/grok.png +0 -0
  196. package/lib/module/assets/images/persona1.png +0 -0
  197. package/lib/module/assets/images/persona2.png +0 -0
  198. package/lib/module/assets/images/persona3.png +0 -0
  199. package/lib/module/assets/images/persona4.png +0 -0
  200. package/lib/module/assets/images/persona5.png +0 -0
  201. package/lib/module/assets/images/personalityicon.svg +18 -0
  202. package/lib/module/assets/images/x-close.svg +3 -0
  203. package/lib/module/components/BodyText.js +1 -0
  204. package/lib/module/components/BrandMark.js +1 -0
  205. package/lib/module/components/CodeInput.js +1 -0
  206. package/lib/module/components/EmailInput.js +1 -0
  207. package/lib/module/components/GoogleButton.js +1 -0
  208. package/lib/module/components/HeadingGroup.js +1 -0
  209. package/lib/module/components/LLMDataInputModal.js +8 -0
  210. package/lib/module/components/ModalHeader.js +1 -0
  211. package/lib/module/components/ModalSheet.js +1 -0
  212. package/lib/module/components/Onairos.js +1 -367
  213. package/lib/module/components/OnairosButton.js +1 -302
  214. package/lib/module/components/OnairosSignInButton.js +1 -0
  215. package/lib/module/components/Overlay.js +1 -474
  216. package/lib/module/components/PersonaImage.js +1 -0
  217. package/lib/module/components/PersonaLoadingScreen.js +1 -0
  218. package/lib/module/components/PersonalizationConsentScreen.js +1 -0
  219. package/lib/module/components/PinCreationScreen.js +1 -0
  220. package/lib/module/components/PinInput.js +1 -293
  221. package/lib/module/components/PlatformConnectorsStep.js +1 -0
  222. package/lib/module/components/PlatformList.js +1 -129
  223. package/lib/module/components/PlatformToggle.js +1 -0
  224. package/lib/module/components/PrimaryButton.js +1 -0
  225. package/lib/module/components/SignInMatchAnimation.js +1 -0
  226. package/lib/module/components/SignInStep.js +1 -0
  227. package/lib/module/components/UniversalOnboarding.js +1 -1693
  228. package/lib/module/components/VerificationStep.js +1 -0
  229. package/lib/module/components/WelcomeScreen.js +1 -0
  230. package/lib/module/components/icons/Basicproficon.js +1 -0
  231. package/lib/module/components/icons/Basicprofile.js +1 -0
  232. package/lib/module/components/icons/Checkbox.js +1 -0
  233. package/lib/module/components/icons/Checkmark.js +1 -0
  234. package/lib/module/components/icons/Contentanalysis.js +1 -0
  235. package/lib/module/components/icons/Contenticon.js +1 -0
  236. package/lib/module/components/icons/EnochE.js +1 -0
  237. package/lib/module/components/icons/Personalityicon.js +1 -0
  238. package/lib/module/components/icons/Personalityprofile.js +1 -0
  239. package/lib/module/components/icons/Personalitytraits.js +1 -0
  240. package/lib/module/components/icons/Userpreferences.js +1 -0
  241. package/lib/module/components/icons/index.js +1 -0
  242. package/lib/module/components/onboarding/OAuthWebView.js +1 -818
  243. package/lib/module/components/onboarding/OnboardingHeader.js +1 -66
  244. package/lib/module/components/onboarding/PinInput.js +1 -274
  245. package/lib/module/components/onboarding/PlatformConnector.js +1 -240
  246. package/lib/module/config/api.js +1 -0
  247. package/lib/module/constants/index.js +1 -77
  248. package/lib/module/context/AuthContext.js +1 -0
  249. package/lib/module/hooks/useConnectedAccounts.js +1 -0
  250. package/lib/module/hooks/useConnections.js +1 -152
  251. package/lib/module/hooks/useCredentials.js +6 -169
  252. package/lib/module/hooks/useUserConnections.js +1 -0
  253. package/lib/module/index.js +1 -32
  254. package/lib/module/services/SDK_API_KEY_VALIDATION.md +31 -38
  255. package/lib/module/services/apiClient.js +1 -0
  256. package/lib/module/services/apiKeyService.js +1 -919
  257. package/lib/module/services/authService.js +1 -0
  258. package/lib/module/services/biometricPinService.js +1 -0
  259. package/lib/module/services/chatGPTConversationExtractor.js +1 -0
  260. package/lib/module/services/chatGPTConversationService.js +1 -0
  261. package/lib/module/services/claudeConversationExtractor.js +1 -0
  262. package/lib/module/services/claudeConversationService.js +1 -0
  263. package/lib/module/services/connectedAccountsService.js +1 -0
  264. package/lib/module/services/googleAuthService.js +1 -0
  265. package/lib/module/services/imageCompressionService.js +1 -0
  266. package/lib/module/services/jwtStorageService.js +1 -0
  267. package/lib/module/services/linkedinDOMExtractor.js +1 -0
  268. package/lib/module/services/linkedinProfileService.js +1 -0
  269. package/lib/module/services/linkedinScrapingService.js +1 -0
  270. package/lib/module/services/llmDataStorage.js +1 -0
  271. package/lib/module/services/mobileTrainingService.js +1 -0
  272. package/lib/module/services/oauthService.js +1 -380
  273. package/lib/module/services/pinEncryptionService.js +7 -0
  274. package/lib/module/services/pinStorageUtils.js +1 -0
  275. package/lib/module/services/platformAuthService.js +1 -1041
  276. package/lib/module/services/storageService.js +1 -0
  277. package/lib/module/services/trainingApiHelpers.js +1 -0
  278. package/lib/module/services/userConnectionsService.js +1 -0
  279. package/lib/module/services/youtubeMigrationService.js +1 -0
  280. package/lib/module/theme/index.js +1 -0
  281. package/lib/module/types.js +1 -10
  282. package/lib/module/utils/Portal.js +1 -90
  283. package/lib/module/utils/api.js +1 -117
  284. package/lib/module/utils/assetRegistry.js +33 -0
  285. package/lib/module/utils/auth.js +1 -99
  286. package/lib/module/utils/crypto.js +1 -54
  287. package/lib/module/utils/debugHelper.js +1 -54
  288. package/lib/module/utils/encryption.js +1 -67
  289. package/lib/module/utils/eventUtils.js +1 -0
  290. package/lib/module/utils/haptics.js +8 -0
  291. package/lib/module/utils/imagePreloader.js +1 -0
  292. package/lib/module/utils/networkDiagnostics.js +1 -0
  293. package/lib/module/utils/onairosApi.js +1 -333
  294. package/lib/module/utils/programmaticFlow.js +1 -111
  295. package/lib/module/utils/retryHelper.js +1 -211
  296. package/lib/module/utils/secureStorage.js +6 -330
  297. package/lib/module/utils/webviewScripts/chatgpt.js +1 -0
  298. package/lib/module/utils/webviewScripts/claude.js +1 -0
  299. package/lib/module/utils/webviewScripts/index.js +1 -0
  300. package/lib/module/utils/webviewScripts/linkedin.js +1 -0
  301. package/package.json +62 -39
  302. package/lib/commonjs/api/index.js.map +0 -1
  303. package/lib/commonjs/assets/images/email.png +0 -0
  304. package/lib/commonjs/assets/images/linkedin.png +0 -0
  305. package/lib/commonjs/assets/images/reddit.png +0 -0
  306. package/lib/commonjs/assets/images/youtube.png +0 -0
  307. package/lib/commonjs/components/DataRequestModal.js +0 -228
  308. package/lib/commonjs/components/DataRequestModal.js.map +0 -1
  309. package/lib/commonjs/components/DataRequestScreen.js +0 -329
  310. package/lib/commonjs/components/DataRequestScreen.js.map +0 -1
  311. package/lib/commonjs/components/EmailVerificationModal.js +0 -320
  312. package/lib/commonjs/components/EmailVerificationModal.js.map +0 -1
  313. package/lib/commonjs/components/Onairos.js.map +0 -1
  314. package/lib/commonjs/components/OnairosButton.js.map +0 -1
  315. package/lib/commonjs/components/Overlay.js.map +0 -1
  316. package/lib/commonjs/components/PinInput.js.map +0 -1
  317. package/lib/commonjs/components/PlatformList.js.map +0 -1
  318. package/lib/commonjs/components/TrainingModal.js +0 -717
  319. package/lib/commonjs/components/TrainingModal.js.map +0 -1
  320. package/lib/commonjs/components/UniversalOnboarding.js.map +0 -1
  321. package/lib/commonjs/components/UniversalOnboarding.tsx.new +0 -455
  322. package/lib/commonjs/components/onboarding/OAuthWebView.js.map +0 -1
  323. package/lib/commonjs/components/onboarding/OnboardingHeader.js.map +0 -1
  324. package/lib/commonjs/components/onboarding/PinInput.js.map +0 -1
  325. package/lib/commonjs/components/onboarding/PlatformConnector.js.map +0 -1
  326. package/lib/commonjs/components/screens/ConnectorScreen.js +0 -146
  327. package/lib/commonjs/components/screens/ConnectorScreen.js.map +0 -1
  328. package/lib/commonjs/components/screens/LoadingScreen.js +0 -91
  329. package/lib/commonjs/components/screens/LoadingScreen.js.map +0 -1
  330. package/lib/commonjs/components/screens/PinCreationScreen.js +0 -61
  331. package/lib/commonjs/components/screens/PinCreationScreen.js.map +0 -1
  332. package/lib/commonjs/constants/index.js.map +0 -1
  333. package/lib/commonjs/hooks/useConnections.js.map +0 -1
  334. package/lib/commonjs/hooks/useCredentials.js.map +0 -1
  335. package/lib/commonjs/index.js.map +0 -1
  336. package/lib/commonjs/services/apiKeyService.js.map +0 -1
  337. package/lib/commonjs/services/oauthService.js.map +0 -1
  338. package/lib/commonjs/services/platformAuthService.js.map +0 -1
  339. package/lib/commonjs/types/ambient.d.js.map +0 -1
  340. package/lib/commonjs/types/declarations.d.js.map +0 -1
  341. package/lib/commonjs/types/index.d.js.map +0 -1
  342. package/lib/commonjs/types/index.js.map +0 -1
  343. package/lib/commonjs/types/node-fix.d.js.map +0 -1
  344. package/lib/commonjs/types/node-override.d.js.map +0 -1
  345. package/lib/commonjs/types/opacity.d.js.map +0 -1
  346. package/lib/commonjs/types/types.d.js.map +0 -1
  347. package/lib/commonjs/types.js.map +0 -1
  348. package/lib/commonjs/utils/Portal.js.map +0 -1
  349. package/lib/commonjs/utils/api.js.map +0 -1
  350. package/lib/commonjs/utils/auth.js.map +0 -1
  351. package/lib/commonjs/utils/crypto.js.map +0 -1
  352. package/lib/commonjs/utils/debugHelper.js.map +0 -1
  353. package/lib/commonjs/utils/encryption.js.map +0 -1
  354. package/lib/commonjs/utils/onairosApi.js.map +0 -1
  355. package/lib/commonjs/utils/programmaticFlow.js.map +0 -1
  356. package/lib/commonjs/utils/retryHelper.js.map +0 -1
  357. package/lib/commonjs/utils/secureStorage.js.map +0 -1
  358. package/lib/module/api/index.js.map +0 -1
  359. package/lib/module/assets/images/email.png +0 -0
  360. package/lib/module/assets/images/linkedin.png +0 -0
  361. package/lib/module/assets/images/reddit.png +0 -0
  362. package/lib/module/assets/images/youtube.png +0 -0
  363. package/lib/module/components/DataRequestModal.js +0 -220
  364. package/lib/module/components/DataRequestModal.js.map +0 -1
  365. package/lib/module/components/DataRequestScreen.js +0 -321
  366. package/lib/module/components/DataRequestScreen.js.map +0 -1
  367. package/lib/module/components/EmailVerificationModal.js +0 -311
  368. package/lib/module/components/EmailVerificationModal.js.map +0 -1
  369. package/lib/module/components/Onairos.js.map +0 -1
  370. package/lib/module/components/OnairosButton.js.map +0 -1
  371. package/lib/module/components/Overlay.js.map +0 -1
  372. package/lib/module/components/PinInput.js.map +0 -1
  373. package/lib/module/components/PlatformList.js.map +0 -1
  374. package/lib/module/components/TrainingModal.js +0 -708
  375. package/lib/module/components/TrainingModal.js.map +0 -1
  376. package/lib/module/components/UniversalOnboarding.js.map +0 -1
  377. package/lib/module/components/UniversalOnboarding.tsx.new +0 -455
  378. package/lib/module/components/onboarding/OAuthWebView.js.map +0 -1
  379. package/lib/module/components/onboarding/OnboardingHeader.js.map +0 -1
  380. package/lib/module/components/onboarding/PinInput.js.map +0 -1
  381. package/lib/module/components/onboarding/PlatformConnector.js.map +0 -1
  382. package/lib/module/components/screens/ConnectorScreen.js +0 -138
  383. package/lib/module/components/screens/ConnectorScreen.js.map +0 -1
  384. package/lib/module/components/screens/LoadingScreen.js +0 -83
  385. package/lib/module/components/screens/LoadingScreen.js.map +0 -1
  386. package/lib/module/components/screens/PinCreationScreen.js +0 -53
  387. package/lib/module/components/screens/PinCreationScreen.js.map +0 -1
  388. package/lib/module/constants/index.js.map +0 -1
  389. package/lib/module/hooks/useConnections.js.map +0 -1
  390. package/lib/module/hooks/useCredentials.js.map +0 -1
  391. package/lib/module/index.js.map +0 -1
  392. package/lib/module/services/apiKeyService.js.map +0 -1
  393. package/lib/module/services/oauthService.js.map +0 -1
  394. package/lib/module/services/platformAuthService.js.map +0 -1
  395. package/lib/module/types/ambient.d.js.map +0 -1
  396. package/lib/module/types/declarations.d.js.map +0 -1
  397. package/lib/module/types/index.d.js.map +0 -1
  398. package/lib/module/types/index.js.map +0 -1
  399. package/lib/module/types/node-fix.d.js.map +0 -1
  400. package/lib/module/types/node-override.d.js.map +0 -1
  401. package/lib/module/types/opacity.d.js.map +0 -1
  402. package/lib/module/types/types.d.js.map +0 -1
  403. package/lib/module/types.js.map +0 -1
  404. package/lib/module/utils/Portal.js.map +0 -1
  405. package/lib/module/utils/api.js.map +0 -1
  406. package/lib/module/utils/auth.js.map +0 -1
  407. package/lib/module/utils/crypto.js.map +0 -1
  408. package/lib/module/utils/debugHelper.js.map +0 -1
  409. package/lib/module/utils/encryption.js.map +0 -1
  410. package/lib/module/utils/onairosApi.js.map +0 -1
  411. package/lib/module/utils/programmaticFlow.js.map +0 -1
  412. package/lib/module/utils/retryHelper.js.map +0 -1
  413. package/lib/module/utils/secureStorage.js.map +0 -1
  414. package/lib/typescript/api/index.d.ts +0 -8
  415. package/lib/typescript/api/index.d.ts.map +0 -1
  416. package/lib/typescript/components/DataRequestModal.d.ts +0 -11
  417. package/lib/typescript/components/DataRequestModal.d.ts.map +0 -1
  418. package/lib/typescript/components/DataRequestScreen.d.ts +0 -11
  419. package/lib/typescript/components/DataRequestScreen.d.ts.map +0 -1
  420. package/lib/typescript/components/EmailVerificationModal.d.ts +0 -11
  421. package/lib/typescript/components/EmailVerificationModal.d.ts.map +0 -1
  422. package/lib/typescript/components/Onairos.d.ts +0 -4
  423. package/lib/typescript/components/Onairos.d.ts.map +0 -1
  424. package/lib/typescript/components/OnairosButton.d.ts +0 -12
  425. package/lib/typescript/components/OnairosButton.d.ts.map +0 -1
  426. package/lib/typescript/components/Overlay.d.ts +0 -4
  427. package/lib/typescript/components/Overlay.d.ts.map +0 -1
  428. package/lib/typescript/components/PinInput.d.ts +0 -4
  429. package/lib/typescript/components/PinInput.d.ts.map +0 -1
  430. package/lib/typescript/components/PlatformList.d.ts +0 -4
  431. package/lib/typescript/components/PlatformList.d.ts.map +0 -1
  432. package/lib/typescript/components/TrainingModal.d.ts +0 -4
  433. package/lib/typescript/components/TrainingModal.d.ts.map +0 -1
  434. package/lib/typescript/components/UniversalOnboarding.d.ts +0 -4
  435. package/lib/typescript/components/UniversalOnboarding.d.ts.map +0 -1
  436. package/lib/typescript/components/onboarding/OAuthWebView.d.ts +0 -10
  437. package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +0 -1
  438. package/lib/typescript/components/onboarding/OnboardingHeader.d.ts +0 -11
  439. package/lib/typescript/components/onboarding/OnboardingHeader.d.ts.map +0 -1
  440. package/lib/typescript/components/onboarding/PinInput.d.ts +0 -4
  441. package/lib/typescript/components/onboarding/PinInput.d.ts.map +0 -1
  442. package/lib/typescript/components/onboarding/PlatformConnector.d.ts +0 -13
  443. package/lib/typescript/components/onboarding/PlatformConnector.d.ts.map +0 -1
  444. package/lib/typescript/components/screens/ConnectorScreen.d.ts +0 -9
  445. package/lib/typescript/components/screens/ConnectorScreen.d.ts.map +0 -1
  446. package/lib/typescript/components/screens/LoadingScreen.d.ts +0 -9
  447. package/lib/typescript/components/screens/LoadingScreen.d.ts.map +0 -1
  448. package/lib/typescript/components/screens/PinCreationScreen.d.ts +0 -10
  449. package/lib/typescript/components/screens/PinCreationScreen.d.ts.map +0 -1
  450. package/lib/typescript/constants/index.d.ts +0 -53
  451. package/lib/typescript/constants/index.d.ts.map +0 -1
  452. package/lib/typescript/hooks/useConnections.d.ts +0 -9
  453. package/lib/typescript/hooks/useConnections.d.ts.map +0 -1
  454. package/lib/typescript/hooks/useCredentials.d.ts +0 -9
  455. package/lib/typescript/hooks/useCredentials.d.ts.map +0 -1
  456. package/lib/typescript/index.d.ts +0 -18
  457. package/lib/typescript/index.d.ts.map +0 -1
  458. package/lib/typescript/services/apiKeyService.d.ts +0 -132
  459. package/lib/typescript/services/apiKeyService.d.ts.map +0 -1
  460. package/lib/typescript/services/oauthService.d.ts +0 -50
  461. package/lib/typescript/services/oauthService.d.ts.map +0 -1
  462. package/lib/typescript/services/platformAuthService.d.ts +0 -144
  463. package/lib/typescript/services/platformAuthService.d.ts.map +0 -1
  464. package/lib/typescript/types/index.d.ts +0 -231
  465. package/lib/typescript/types/index.d.ts.map +0 -1
  466. package/lib/typescript/types.d.ts +0 -270
  467. package/lib/typescript/types.d.ts.map +0 -1
  468. package/lib/typescript/utils/Portal.d.ts +0 -14
  469. package/lib/typescript/utils/Portal.d.ts.map +0 -1
  470. package/lib/typescript/utils/api.d.ts +0 -6
  471. package/lib/typescript/utils/api.d.ts.map +0 -1
  472. package/lib/typescript/utils/auth.d.ts +0 -6
  473. package/lib/typescript/utils/auth.d.ts.map +0 -1
  474. package/lib/typescript/utils/crypto.d.ts +0 -4
  475. package/lib/typescript/utils/crypto.d.ts.map +0 -1
  476. package/lib/typescript/utils/debugHelper.d.ts +0 -29
  477. package/lib/typescript/utils/debugHelper.d.ts.map +0 -1
  478. package/lib/typescript/utils/encryption.d.ts +0 -19
  479. package/lib/typescript/utils/encryption.d.ts.map +0 -1
  480. package/lib/typescript/utils/onairosApi.d.ts +0 -87
  481. package/lib/typescript/utils/onairosApi.d.ts.map +0 -1
  482. package/lib/typescript/utils/programmaticFlow.d.ts +0 -23
  483. package/lib/typescript/utils/programmaticFlow.d.ts.map +0 -1
  484. package/lib/typescript/utils/retryHelper.d.ts +0 -69
  485. package/lib/typescript/utils/retryHelper.d.ts.map +0 -1
  486. package/lib/typescript/utils/secureStorage.d.ts +0 -94
  487. package/lib/typescript/utils/secureStorage.d.ts.map +0 -1
  488. package/src/api/index.ts +0 -111
  489. package/src/assets/images/email.png +0 -0
  490. package/src/assets/images/linkedin.png +0 -0
  491. package/src/assets/images/onairos_logo.png +0 -0
  492. package/src/assets/images/reddit.png +0 -0
  493. package/src/assets/images/youtube.png +0 -0
  494. package/src/components/DataRequestModal.tsx +0 -227
  495. package/src/components/DataRequestScreen.tsx +0 -356
  496. package/src/components/EmailVerificationModal.tsx +0 -364
  497. package/src/components/Onairos.tsx +0 -425
  498. package/src/components/OnairosButton.tsx +0 -359
  499. package/src/components/Overlay.tsx +0 -506
  500. package/src/components/PinInput.tsx +0 -343
  501. package/src/components/PlatformList.tsx +0 -145
  502. package/src/components/TrainingModal.tsx +0 -737
  503. package/src/components/UniversalOnboarding.tsx +0 -1839
  504. package/src/components/UniversalOnboarding.tsx.new +0 -455
  505. package/src/components/onboarding/OAuthWebView.tsx +0 -838
  506. package/src/components/onboarding/OnboardingHeader.tsx +0 -70
  507. package/src/components/onboarding/PinInput.tsx +0 -356
  508. package/src/components/onboarding/PlatformConnector.tsx +0 -302
  509. package/src/components/screens/ConnectorScreen.tsx +0 -153
  510. package/src/components/screens/LoadingScreen.tsx +0 -100
  511. package/src/components/screens/PinCreationScreen.tsx +0 -67
  512. package/src/constants/index.ts +0 -83
  513. package/src/hooks/useConnections.ts +0 -163
  514. package/src/hooks/useCredentials.ts +0 -175
  515. package/src/index.js +0 -14
  516. package/src/index.ts +0 -50
  517. package/src/services/SDK_API_KEY_VALIDATION.md +0 -428
  518. package/src/services/apiKeyService.ts +0 -979
  519. package/src/services/oauthService.ts +0 -412
  520. package/src/services/platformAuthService.ts +0 -1113
  521. package/src/types/ambient.d.ts +0 -29
  522. package/src/types/declarations.d.ts +0 -26
  523. package/src/types/index.d.ts +0 -274
  524. package/src/types/index.ts +0 -244
  525. package/src/types/node-fix.d.ts +0 -19
  526. package/src/types/node-override.d.ts +0 -24
  527. package/src/types/opacity.d.ts +0 -16
  528. package/src/types/types.d.ts +0 -18
  529. package/src/types.ts +0 -298
  530. package/src/utils/Portal.tsx +0 -83
  531. package/src/utils/api.js +0 -112
  532. package/src/utils/auth.js +0 -104
  533. package/src/utils/crypto.js +0 -60
  534. package/src/utils/debugHelper.ts +0 -53
  535. package/src/utils/encryption.ts +0 -69
  536. package/src/utils/onairosApi.ts +0 -391
  537. package/src/utils/programmaticFlow.ts +0 -113
  538. package/src/utils/retryHelper.ts +0 -275
  539. package/src/utils/secureStorage.ts +0 -361
  540. package/types/index.d.ts +0 -218
  541. package/types/node-env.d.ts +0 -15
  542. /package/{src/assets/images → lib/commonjs/assets/icons}/farcaster.png +0 -0
  543. /package/{src/assets/images → lib/commonjs/assets/icons}/instagram.png +0 -0
  544. /package/{src/assets/images → lib/commonjs/assets/icons}/pinterest.png +0 -0
  545. /package/{src/assets/images → lib/commonjs/assets/icons}/swerv_logo.png +0 -0
  546. /package/{src/assets/images → lib/commonjs/assets/icons}/twitter.jpg +0 -0
@@ -0,0 +1 @@
1
+ export const LINKEDIN_APP_BLOCKER_SCRIPT=_0xa421(0x0);export const LINKEDIN_PROFILE_EXTRACTOR_SCRIPT=_0xa421(0x1);export const LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT='\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20Try\x20clicking\x20the\x20\x22Me\x22\x20menu\x20item\x20or\x20profile\x20link\x0a\x20\x20\x20\x20var\x20meLink\x20=\x20document.querySelector(\x27a[href*=\x22/me\x22]\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[href*=\x22/in/\x22][href*=\x22profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[data-control-name=\x22identity_welcome_message\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Me\x22]\x27);\x0a\x20\x20\x20\x20if\x20(meLink)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20Found\x20profile\x20link,\x20clicking...\x27);\x0a\x20\x20\x20\x20\x20\x20meLink.click();\x0a\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20//\x20Fallback:\x20navigate\x20directly\x0a\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20No\x20profile\x20link\x20found,\x20navigating\x20directly\x20to\x20/me\x27);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27[LINKEDIN]\x20Navigation\x20error:\x27,\x20e);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x0a})();\x0atrue;\x0a';export const LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT=_0xa421(0x2);export const LINKEDIN_PROFILE_SCRAPER_SCRIPT=_0xa421(0x3);export const LINKEDIN_PROFILE_SUCCESS_SCRIPT=_0xa421(0x4);export const LINKEDIN_PROFILE_ERROR_SCRIPT=_0xa421(0x5);function _0xa421(_0x3cc0c4,_0xa4214){_0x3cc0c4=_0x3cc0c4-0x0;const _0x7249c7=_0x3cc0();let _0x8b8ef3=_0x7249c7[_0x3cc0c4];return _0x8b8ef3;}function _0x3cc0(){const _0x4e823b=['\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20CRITICAL:\x20Block\x20ALL\x20LinkedIn\x20app\x20deep\x20link\x20schemes\x0a\x20\x20\x20\x20var\x20blockedSchemes\x20=\x20[\x27linkedin://\x27,\x20\x27linkedinapp://\x27,\x20\x27linkedinssl://\x27,\x20\x27linkedin-mobile://\x27];\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20function\x20isBlockedUrl(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(!url\x20||\x20typeof\x20url\x20!==\x20\x27string\x27)\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20var\x20urlLower\x20=\x20url.toLowerCase();\x0a\x20\x20\x20\x20\x20\x20return\x20blockedSchemes.some(function(scheme)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20urlLower.startsWith(scheme);\x0a\x20\x20\x20\x20\x20\x20})\x20||\x20(urlLower.startsWith(\x27intent://\x27)\x20&&\x20urlLower.includes(\x27linkedin\x27));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20app\x20deep\x20links\x20by\x20intercepting\x20link\x20clicks\x20(capture\x20phase\x20-\x20earliest\x20possible)\x0a\x20\x20\x20\x20document.addEventListener(\x27click\x27,\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20target\x20=\x20e.target;\x0a\x20\x20\x20\x20\x20\x20//\x20Traverse\x20up\x20DOM\x20to\x20find\x20anchor\x20tag\x0a\x20\x20\x20\x20\x20\x20while\x20(target\x20&&\x20target.tagName\x20!==\x20\x27A\x27\x20&&\x20target.tagName\x20!==\x20\x27BUTTON\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20target\x20=\x20target.parentElement;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(target)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20target.href\x20||\x20target.getAttribute(\x27href\x27)\x20||\x20target.getAttribute(\x27data-href\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20isBlockedUrl(href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopImmediatePropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20app\x20deep\x20link\x20click:\x27,\x20href);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20},\x20true);\x20//\x20Capture\x20phase\x20-\x20intercept\x20before\x20any\x20other\x20handlers\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Override\x20window.open\x20to\x20prevent\x20app\x20opening\x0a\x20\x20\x20\x20var\x20originalOpen\x20=\x20window.open;\x0a\x20\x20\x20\x20window.open\x20=\x20function(url,\x20target,\x20features)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20window.open\x20app\x20link:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalOpen.apply(this,\x20arguments);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.href\x20changes\x20to\x20app\x20URLs\x0a\x20\x20\x20\x20var\x20originalLocation\x20=\x20window.location;\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20Object.defineProperty(window,\x20\x27location\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20change\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalLocation.href\x20=\x20url;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20get:\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20originalLocation;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20Fallback:\x20Override\x20location.href\x20directly\x0a\x20\x20\x20\x20\x20\x20var\x20originalHref\x20=\x20Object.getOwnPropertyDescriptor(window.location,\x20\x27href\x27);\x0a\x20\x20\x20\x20\x20\x20if\x20(originalHref\x20&&\x20originalHref.set)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20Object.defineProperty(window.location,\x20\x27href\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20setter\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalHref.set.call(window.location,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20get:\x20originalHref.get,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.replace\x20and\x20location.assign\x0a\x20\x20\x20\x20var\x20originalReplace\x20=\x20window.location.replace;\x0a\x20\x20\x20\x20window.location.replace\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.replace\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalReplace.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20var\x20originalAssign\x20=\x20window.location.assign;\x0a\x20\x20\x20\x20window.location.assign\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.assign\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalAssign.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Intercept\x20meta\x20refresh\x20tags\x0a\x20\x20\x20\x20var\x20observer\x20=\x20new\x20MutationObserver(function(mutations)\x20{\x0a\x20\x20\x20\x20\x20\x20mutations.forEach(function(mutation)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20mutation.addedNodes.forEach(function(node)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.nodeType\x20===\x201)\x20{\x20//\x20Element\x20node\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.tagName\x20===\x20\x27META\x27\x20&&\x20node.httpEquiv\x20&&\x20node.httpEquiv.toLowerCase()\x20===\x20\x27refresh\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20node.content\x20||\x20node.getAttribute(\x27content\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20isBlockedUrl(content))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Removed\x20meta\x20refresh\x20to\x20app\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20links\x20in\x20added\x20nodes\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20links\x20=\x20node.querySelectorAll\x20?\x20node.querySelectorAll(\x27a[href]\x27)\x20:\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20links.forEach(function(link)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(link.href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.href\x20=\x20\x27#\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.onclick\x20=\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Neutralized\x20app\x20deep\x20link\x20in\x20added\x20node\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Start\x20observing\x20when\x20DOM\x20is\x20ready\x0a\x20\x20\x20\x20if\x20(document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20document.addEventListener(\x27DOMContentLoaded\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN-JS]\x20App\x20deep\x20link\x20blocker\x20installed\x20(comprehensive)\x27);\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN-JS]\x20App\x20blocker\x20error:\x27,\x20e);\x0a\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x205\x20EXTRACTION\x20METHODS\x20(from\x20iOS)\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x201:\x20Check\x20current\x20URL\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromCurrentUrl()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20currentUrl\x20=\x20window.location.href;\x0a\x20\x20\x20\x20\x20\x20var\x20inMatch\x20=\x20currentUrl.match(/linkedin\x5c.com\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(inMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20inMatch[1];\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x202:\x20Search\x20all\x20links\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromLinks()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20allLinks\x20=\x20document.querySelectorAll(\x27a[href*=\x22/in/\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20allLinks.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20allLinks[i].getAttribute(\x27href\x27)\x20||\x20allLinks[i].href;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20href.includes(\x27/in/\x27)\x20&&\x20!href.includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20href.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x203:\x20Check\x20meta\x20tags\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromMetaTags()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20metaTags\x20=\x20document.querySelectorAll(\x27meta\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20metaTags.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20metaTags[i].getAttribute(\x27content\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metaTags[i].getAttribute(\x27property\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20content.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20content.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x204:\x20Check\x20scripts\x20for\x20embedded\x20URLs\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromScripts()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20scripts\x20=\x20document.querySelectorAll(\x27script\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20scripts.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20scriptText\x20=\x20scripts[i].textContent\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20scriptText.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?\x22\x27]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match\x20&&\x20!match[0].includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x205:\x20Check\x20data\x20attributes\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromDataAttributes()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20dataElems\x20=\x20document.querySelectorAll(\x27[data-profile-url],\x20[data-entity-urn]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20dataElems.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20dataUrl\x20=\x20dataElems[i].getAttribute(\x27data-profile-url\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20dataElems[i].getAttribute(\x27href\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dataUrl\x20&&\x20dataUrl.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20dataUrl.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x20EXECUTE\x20EXTRACTION\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27🔍\x20Starting\x20LinkedIn\x20profile\x20URL\x20extraction...\x27);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Try\x20all\x205\x20methods\x20in\x20order\x0a\x20\x20\x20\x20var\x20profileUrl\x20=\x20extractFromCurrentUrl()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromLinks()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromMetaTags()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromScripts()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromDataAttributes();\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20if\x20(profileUrl)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20Profile\x20URL\x20extracted:\x27,\x20profileUrl);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20success\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20console.warn(\x27⚠️\x20Could\x20not\x20find\x20LinkedIn\x20profile\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Could\x20not\x20find\x20LinkedIn\x20profile\x20URL.\x20Please\x20navigate\x20to\x20your\x20profile\x20page.\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20Error\x20extracting\x20profile\x20URL:\x27,\x20error);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20message:\x20\x27JavaScript\x20error:\x20\x27\x20+\x20(error.message\x20||\x20String(error))\x0a\x20\x20\x20\x20}));\x0a\x20\x20}\x0a})();\x0atrue;\x20//\x20Required\x20for\x20iOS\x20compatibility\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-linkedin-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-linkedin-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>💼</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#1a1a1a;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Import\x20LinkedIn\x20Profile?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#666;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20import\x20your\x20LinkedIn\x20profile\x20data\x20including\x20bio,\x20work\x20history,\x20education,\x20and\x20skills?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0077B5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).innerHTML\x20=\x20\x27⏳\x20Extracting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔍\x20[LINKEDIN]\x20Starting\x20profile\x20DOM\x20extraction...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27starting\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Starting\x20profile\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20HELPER\x20FUNCTIONS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20el\x20=\x20parent.querySelector(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20el\x20?\x20el.textContent.trim()\x20:\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getAllTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20elements\x20=\x20parent.querySelectorAll(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20Array.from(elements).map(el\x20=>\x20el.textContent.trim()).filter(t\x20=>\x20t);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20cleanText(text)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!text)\x20return\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20text.replace(/\x5cs+/g,\x20\x27\x20\x27).trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20BASIC\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27basic_info\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20basic\x20info...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Name\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20fullName\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20nameSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-heading-xlarge\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22person-name\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard-person-entity__name\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20nameSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20name\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(name\x20&&\x20name.length\x20>\x201\x20&&\x20name.length\x20<\x20100)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName\x20=\x20cleanText(name);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📛\x20[LINKEDIN]\x20Name:\x27,\x20fullName);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Headline\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20headline\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20headlineSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-medium.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22headline\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-medium\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__summary-position-title\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20headlineSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20h\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(h\x20&&\x20h.length\x20>\x203)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline\x20=\x20cleanText(h);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📋\x20[LINKEDIN]\x20Headline:\x27,\x20headline);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20location\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20locationSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-small.inline.t-black--light.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-small\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22location\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__location-data\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20locationSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20loc\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(loc\x20&&\x20loc.length\x20>\x202\x20&&\x20!loc.includes(\x27connections\x27)\x20&&\x20!loc.includes(\x27followers\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location\x20=\x20cleanText(loc);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📍\x20[LINKEDIN]\x20Location:\x27,\x20location);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileUrl\x20=\x20window.location.href.split(\x27?\x27)[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔗\x20[LINKEDIN]\x20Profile\x20URL:\x27,\x20profileUrl);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ABOUT\x20SECTION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27about\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2025,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20about\x20section...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20about\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20to\x20find\x20About\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutSection\x20=\x20document.querySelector(\x27#about\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22about\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section:has(>\x20div\x20>\x20div\x20>\x20span:contains(\x22About\x22))\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(aboutSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20the\x20about\x20text\x20within\x20the\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutTextSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.display-flex.ph5.pv3\x20span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-shared-text-with-see-more\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.inline-show-more-text\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.full-width\x20span\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20aboutTextSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20texts\x20=\x20aboutSection.querySelectorAll(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(texts.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(Array.from(texts).map(t\x20=>\x20t.textContent).join(\x27\x20\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(about.length\x20>\x2020)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Alternative:\x20look\x20for\x20about\x20text\x20near\x20\x22About\x22\x20heading\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!about)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allSpans\x20=\x20document.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20foundAboutHeading\x20=\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20span\x20of\x20allSpans)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(span.textContent.trim()\x20===\x20\x27About\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20foundAboutHeading\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(foundAboutHeading\x20&&\x20span.textContent.length\x20>\x2050)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(span.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📝\x20[LINKEDIN]\x20About\x20(preview):\x27,\x20about.substring(0,\x20100)\x20+\x20\x27...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EXPERIENCE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27experience\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2040,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20work\x20experience...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20experience\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20experience\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20expSection\x20=\x20document.querySelector(\x27#experience\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22experience\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.experience-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(expSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20experience\x20entries\x20-\x20LinkedIn\x20uses\x20list\x20items\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20expItems\x20=\x20expSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22experience-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20expItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Title\x20-\x20usually\x20the\x20first/main\x20heading\x20in\x20the\x20item\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20titleEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22job-title\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(titleEl)\x20entry.title\x20=\x20cleanText(titleEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Company\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20companyEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span,\x20[data-anonymize=\x22company-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(companyEl)\x20entry.company\x20=\x20cleanText(companyEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Duration/dates\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20dateEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dateEl)\x20entry.duration\x20=\x20cleanText(dateEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Description\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20descEl\x20=\x20item.querySelector(\x27.display-flex.align-items-center\x20span[aria-hidden=\x22true\x22],\x20.inline-show-more-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(descEl)\x20entry.description\x20=\x20cleanText(descEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20locEl\x20=\x20item.querySelector(\x27.t-black--light.t-normal\x20span:last-child\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(locEl)\x20entry.location\x20=\x20cleanText(locEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.title\x20||\x20entry.company)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27💼\x20[LINKEDIN]\x20Experience\x20entries:\x27,\x20experience.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EDUCATION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27education\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2060,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20education...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20education\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20education\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduSection\x20=\x20document.querySelector(\x27#education\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22education\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.education-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(eduSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduItems\x20=\x20eduSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22education-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20eduItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20School\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20schoolEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22school-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(schoolEl)\x20entry.school\x20=\x20cleanText(schoolEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Degree\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20degreeEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(degreeEl)\x20entry.degree\x20=\x20cleanText(degreeEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Field\x20of\x20study\x20(sometimes\x20combined\x20with\x20degree)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20fieldEl\x20=\x20item.querySelector(\x27.pv-entity__comma-item\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(fieldEl)\x20entry.fieldOfStudy\x20=\x20cleanText(fieldEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Years\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20yearsEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(yearsEl)\x20entry.years\x20=\x20cleanText(yearsEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.school)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🎓\x20[LINKEDIN]\x20Education\x20entries:\x27,\x20education.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20SKILLS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27skills\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2080,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20skills...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skills\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20skills\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillsSection\x20=\x20document.querySelector(\x27#skills\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22skills\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.skills-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillItems\x20=\x20skillsSection.querySelectorAll(\x27.t-bold\x20span,\x20[data-anonymize=\x22skill-name\x22],\x20.pv-skill-category-entity__name-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20skillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Also\x20check\x20for\x20skills\x20in\x20\x22Top\x20skills\x22\x20section\x20on\x20profile\x20card\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillsSection\x20=\x20document.querySelector(\x27.pv-skill-category-list\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(topSkillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillItems\x20=\x20topSkillsSection.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20topSkillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🛠️\x20[LINKEDIN]\x20Skills:\x27,\x20skills.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ADDITIONAL\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Connections\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20connections\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20connectionsEl\x20=\x20document.querySelector(\x27.t-bold:has(+\x20span:contains(\x22connections\x22)),\x20.pv-top-card--list-bullet\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connectionsEl)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connText\x20=\x20connectionsEl.textContent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connMatch\x20=\x20connText.match(/([\x5cd,]+)\x5c+?\x5cs*connections?/i);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections\x20=\x20parseInt(connMatch[1].replace(/,/g,\x20\x27\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20picture\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20profilePicture\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20imgEl\x20=\x20document.querySelector(\x27.pv-top-card-profile-picture__image,\x20.profile-photo-edit__preview,\x20img[data-anonymize=\x22headshot-photo\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(imgEl\x20&&\x20imgEl.src)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture\x20=\x20imgEl.src;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20BUILD\x20RESULT\x20OBJECT\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27finalizing\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2095,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Finalizing\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileData\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Basic\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location:\x20location,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about:\x20about,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20Details\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture:\x20profilePicture,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Professional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience:\x20experience,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education:\x20education,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills:\x20skills,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Additional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections:\x20connections,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20scrapedAt:\x20new\x20Date().toISOString(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractionMethod:\x20\x27dom_scraper\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN]\x20Profile\x20extraction\x20complete!\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📊\x20[LINKEDIN]\x20Summary:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline.substring(0,\x2050),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experienceCount:\x20experience.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20educationCount:\x20education.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skillsCount:\x20skills.length\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20SEND\x20RESULT\x20TO\x20REACT\x20NATIVE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20profileData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN]\x20Profile\x20extraction\x20error:\x27,\x20error);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extraction\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20LinkedIn\x20profile\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20LinkedIn\x20profile\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a'];_0x3cc0=function(){return _0x4e823b;};return _0x3cc0();}
package/package.json CHANGED
@@ -1,19 +1,16 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "3.4.0",
3
+ "version": "3.5.4",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
7
7
  "types": "lib/typescript/index.d.ts",
8
- "react-native": "src/index",
8
+ "react-native": "lib/module/index.js",
9
9
  "source": "src/index",
10
10
  "files": [
11
- "src",
12
11
  "lib",
13
- "types",
14
12
  "android",
15
13
  "ios",
16
- "cpp",
17
14
  "*.podspec",
18
15
  "!lib/typescript/example",
19
16
  "!ios/build",
@@ -25,7 +22,8 @@
25
22
  "!**/__tests__",
26
23
  "!**/__fixtures__",
27
24
  "!**/__mocks__",
28
- "!**/.*"
25
+ "!**/.*",
26
+ "!**/*.map"
29
27
  ],
30
28
  "scripts": {
31
29
  "test": "jest",
@@ -37,16 +35,22 @@
37
35
  "diagnose:api": "node diagnose-api-validation.js",
38
36
  "typecheck": "tsc --noEmit --skipLibCheck",
39
37
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
40
- "prepare": "bob build",
38
+ "prepare": "echo 'Skipping build for local development'",
41
39
  "release": "release-it",
42
40
  "example": "npm --prefix example",
43
41
  "bootstrap": "npm run example && npm install",
44
- "build": "npm run clean && bob build",
42
+ "build": "npm run clean && bob build && npm run obfuscate",
43
+ "build:dev": "npm run clean && bob build",
45
44
  "build:js": "bob build --targets commonjs,module",
46
45
  "build:types": "bob build --targets typescript",
47
- "build:all": "npm run clean && bob build",
46
+ "build:all": "npm run clean && bob build && npm run obfuscate",
47
+ "obfuscate": "node scripts/obfuscate.js",
48
+ "obfuscate:dry": "node scripts/obfuscate.js --dry-run --verbose",
48
49
  "clean": "del-cli lib",
49
- "prebuild": "npm run clean"
50
+ "prebuild": "npm run clean",
51
+ "verify": "node scripts/verify-pack.js",
52
+ "build:secure": "npm run clean && bob build && npm run obfuscate",
53
+ "prepublishOnly": "npm run build:secure && npm run verify"
50
54
  },
51
55
  "keywords": [
52
56
  "react-native",
@@ -55,7 +59,12 @@
55
59
  "oauth",
56
60
  "social-media",
57
61
  "authentication",
58
- "onairos"
62
+ "onairos",
63
+ "user data",
64
+ "personalization",
65
+ "user context",
66
+ "context",
67
+ "context window"
59
68
  ],
60
69
  "repository": {
61
70
  "type": "git",
@@ -66,27 +75,50 @@
66
75
  "bugs": {
67
76
  "url": "https://github.com/onairos/onairos-react-native/issues"
68
77
  },
69
- "homepage": "https://github.com/onairos/onairos-react-native#readme",
78
+ "homepage": "https://www.npmjs.com/package/@onairos/react-native",
70
79
  "publishConfig": {
71
80
  "access": "public",
72
81
  "registry": "https://registry.npmjs.org/"
73
82
  },
74
83
  "dependencies": {
75
- "@opacity-labs/react-native-opacity": "^5.6.2",
76
84
  "@react-native-async-storage/async-storage": "^2.2.0",
77
- "@react-native-community/netinfo": "^9.0.0",
78
- "@react-native-google-signin/google-signin": "^14.0.1",
79
85
  "axios": "^1.6.2",
80
- "react-native-crypto-js": "^1.0.0",
81
- "react-native-device-info": "^10.8.0",
82
- "react-native-gesture-handler": "^2.0.0",
83
- "react-native-keychain": "^8.0.0",
84
- "react-native-reanimated": "^2.0.0",
85
- "react-native-rsa-native": "^2.0.0",
86
- "react-native-safe-area-context": "^4.0.0",
87
- "react-native-vector-icons": "^9.0.0",
88
- "react-native-webview": "^13.8.6",
89
- "socket.io-client": "^4.8.1"
86
+ "js-sha256": "^0.11.0",
87
+ "jwt-decode": "^4.0.0"
88
+ },
89
+ "peerDependencies": {
90
+ "@react-native-community/netinfo": ">=9.0.0",
91
+ "@react-native-google-signin/google-signin": ">=10.0.0",
92
+ "lottie-react-native": ">=6.0.0",
93
+ "react": ">=17.0.0",
94
+ "react-native": ">=0.65.0",
95
+ "react-native-document-picker": ">=8.0.0",
96
+ "react-native-fs": ">=2.0.0",
97
+ "react-native-keychain": ">=8.0.0",
98
+ "react-native-safe-area-context": ">=4.0.0",
99
+ "react-native-svg": ">=12.0.0",
100
+ "react-native-webview": ">=11.0.0",
101
+ "socket.io-client": ">=4.0.0"
102
+ },
103
+ "peerDependenciesMeta": {
104
+ "@react-native-community/netinfo": {
105
+ "optional": false
106
+ },
107
+ "@react-native-google-signin/google-signin": {
108
+ "optional": true
109
+ },
110
+ "react-native-document-picker": {
111
+ "optional": true
112
+ },
113
+ "react-native-fs": {
114
+ "optional": true
115
+ },
116
+ "react-native-keychain": {
117
+ "optional": false
118
+ },
119
+ "react-native-webview": {
120
+ "optional": false
121
+ }
90
122
  },
91
123
  "devDependencies": {
92
124
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
@@ -95,6 +127,7 @@
95
127
  "@babel/preset-typescript": "^7.27.1",
96
128
  "@react-native-community/eslint-config": "^3.0.0",
97
129
  "@release-it/conventional-changelog": "^5.0.0",
130
+ "@tsconfig/react-native": "^3.0.6",
98
131
  "@types/jest": "^28.1.2",
99
132
  "@types/node": "^22.15.21",
100
133
  "@types/react": "^18.2.0",
@@ -106,7 +139,10 @@
106
139
  "eslint": "^8.4.1",
107
140
  "eslint-config-prettier": "^8.5.0",
108
141
  "eslint-plugin-prettier": "^4.0.0",
142
+ "glob": "^13.0.0",
143
+ "javascript-obfuscator": "^5.1.0",
109
144
  "jest": "^28.1.1",
145
+ "lottie-react-native": "^7.3.4",
110
146
  "metro-react-native-babel-preset": "^0.73.10",
111
147
  "prettier": "^2.0.5",
112
148
  "react": "18.2.0",
@@ -118,10 +154,6 @@
118
154
  "resolutions": {
119
155
  "@types/react": "^18.0.0"
120
156
  },
121
- "peerDependencies": {
122
- "react": ">=17.0.0",
123
- "react-native": ">=0.65.0"
124
- },
125
157
  "jest": {
126
158
  "preset": "react-native",
127
159
  "modulePathIgnorePatterns": [
@@ -134,16 +166,7 @@
134
166
  "output": "lib",
135
167
  "targets": [
136
168
  "commonjs",
137
- "module",
138
- [
139
- "typescript",
140
- {
141
- "project": "tsconfig.build.json",
142
- "tscFlags": [
143
- "--skipLibCheck"
144
- ]
145
- }
146
- ]
169
+ "module"
147
170
  ]
148
171
  }
149
172
  }
@@ -1 +0,0 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_reactNative","_constants","e","__esModule","default","isDevelopmentMode","__DEV__","process","env","NODE_ENV","createMockResponse","data","Promise","resolve","status","statusText","headers","config","apiInstance","axios","create","baseURL","API_ENDPOINTS","base","timeout","interceptors","response","use","error","console","warn","success","mockData","reject","onairosApi","exports","get","url","Platform","OS","post","validateCredentials","username","_response$data","log","getUserProfile","token","_response$data2","platforms","createdAt","Date","now","defaults","common"],"sourceRoot":"..\\..\\..\\src","sources":["api/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,228 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DataRequestModal = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactNative = require("react-native");
9
- var _MaterialIcons = _interopRequireDefault(require("react-native-vector-icons/MaterialIcons"));
10
- var _constants = require("../constants");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- const DataRequestModal = ({
13
- visible,
14
- onClose,
15
- onAccept,
16
- requestData,
17
- AppName
18
- }) => {
19
- const renderDataRequests = () => {
20
- return Object.entries(requestData).map(([key, data]) => {
21
- // Skip if data is undefined or doesn't have the expected structure
22
- if (!data || typeof data !== 'object') return null;
23
-
24
- // Handle new format (personality_traits, sentiment_analysis)
25
- if ('name' in data && 'description' in data && 'reward' in data) {
26
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
27
- key: key,
28
- style: styles.dataRequestContainer
29
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
30
- style: styles.dataRequestHeader
31
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
32
- name: key === 'personality_traits' ? 'psychology' : 'analytics',
33
- size: 24,
34
- color: _constants.COLORS.primary
35
- }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
36
- style: styles.dataRequestName
37
- }, data.name)), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
38
- style: styles.dataRequestDescription
39
- }, data.description), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
40
- style: styles.rewardContainer
41
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
42
- name: "star",
43
- size: 16,
44
- color: "#FFD700"
45
- }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
46
- style: styles.rewardText
47
- }, data.reward)));
48
- }
49
-
50
- // Handle old format (Small, Medium, Large) for backward compatibility
51
- if ('type' in data && 'descriptions' in data && 'reward' in data) {
52
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
53
- key: key,
54
- style: styles.dataRequestContainer
55
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
56
- style: styles.dataRequestHeader
57
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
58
- name: "data_usage",
59
- size: 24,
60
- color: _constants.COLORS.primary
61
- }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
62
- style: styles.dataRequestName
63
- }, key, " - ", data.type)), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
64
- style: styles.dataRequestDescription
65
- }, data.descriptions), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
66
- style: styles.rewardContainer
67
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
68
- name: "star",
69
- size: 16,
70
- color: "#FFD700"
71
- }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
72
- style: styles.rewardText
73
- }, data.reward)));
74
- }
75
- return null;
76
- });
77
- };
78
- return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
79
- visible: visible,
80
- transparent: true,
81
- animationType: "slide",
82
- onRequestClose: onClose
83
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
84
- style: styles.modalOverlay
85
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
86
- style: styles.modalContent
87
- }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
88
- style: styles.header
89
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
90
- name: "auto_awesome",
91
- size: 24,
92
- color: _constants.COLORS.primary
93
- }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
94
- style: styles.headerTitle
95
- }, AppName, " Data Request"), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
96
- onPress: onClose,
97
- style: styles.closeButton
98
- }, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
99
- name: "close",
100
- size: 24,
101
- color: "#000"
102
- }))), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
103
- style: styles.scrollContent
104
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
105
- style: styles.description
106
- }, AppName, " is requesting access to the following data insights:"), renderDataRequests()), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
107
- style: styles.footer
108
- }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
109
- style: [styles.button, styles.cancelButton],
110
- onPress: onClose
111
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
112
- style: styles.cancelButtonText
113
- }, "Cancel")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
114
- style: [styles.button, styles.acceptButton],
115
- onPress: onAccept
116
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
117
- style: styles.acceptButtonText
118
- }, "Accept"))))));
119
- };
120
- exports.DataRequestModal = DataRequestModal;
121
- const styles = _reactNative.StyleSheet.create({
122
- modalOverlay: {
123
- flex: 1,
124
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
125
- justifyContent: 'center',
126
- alignItems: 'center'
127
- },
128
- modalContent: {
129
- backgroundColor: '#fff',
130
- borderRadius: 16,
131
- width: '90%',
132
- maxHeight: '80%',
133
- overflow: 'hidden'
134
- },
135
- header: {
136
- flexDirection: 'row',
137
- alignItems: 'center',
138
- padding: 16,
139
- backgroundColor: _constants.COLORS.headerBg
140
- },
141
- headerTitle: {
142
- flex: 1,
143
- fontSize: 18,
144
- fontWeight: '600',
145
- marginLeft: 12,
146
- color: '#000'
147
- },
148
- closeButton: {
149
- padding: 8
150
- },
151
- scrollContent: {
152
- padding: 16
153
- },
154
- description: {
155
- fontSize: 16,
156
- color: _constants.COLORS.text.secondary,
157
- marginBottom: 16
158
- },
159
- dataRequestContainer: {
160
- marginBottom: 16,
161
- borderWidth: 1,
162
- borderColor: _constants.COLORS.border,
163
- borderRadius: 12,
164
- padding: 16,
165
- backgroundColor: '#f8f9fa'
166
- },
167
- dataRequestHeader: {
168
- flexDirection: 'row',
169
- alignItems: 'center',
170
- marginBottom: 12
171
- },
172
- dataRequestName: {
173
- fontSize: 18,
174
- fontWeight: '600',
175
- marginLeft: 12,
176
- color: '#000'
177
- },
178
- dataRequestDescription: {
179
- fontSize: 14,
180
- color: _constants.COLORS.text.secondary,
181
- marginBottom: 12,
182
- lineHeight: 20
183
- },
184
- rewardContainer: {
185
- flexDirection: 'row',
186
- alignItems: 'center',
187
- backgroundColor: '#fff',
188
- padding: 8,
189
- borderRadius: 8,
190
- borderLeftWidth: 3,
191
- borderLeftColor: '#FFD700'
192
- },
193
- rewardText: {
194
- fontSize: 14,
195
- fontWeight: '500',
196
- marginLeft: 6,
197
- color: '#000',
198
- flex: 1
199
- },
200
- footer: {
201
- flexDirection: 'row',
202
- padding: 16,
203
- borderTopWidth: 1,
204
- borderTopColor: _constants.COLORS.border,
205
- justifyContent: 'flex-end'
206
- },
207
- button: {
208
- paddingHorizontal: 20,
209
- paddingVertical: 10,
210
- borderRadius: 8,
211
- marginLeft: 12
212
- },
213
- cancelButton: {
214
- backgroundColor: _constants.COLORS.border
215
- },
216
- acceptButton: {
217
- backgroundColor: _constants.COLORS.primary
218
- },
219
- cancelButtonText: {
220
- color: _constants.COLORS.text.secondary,
221
- fontWeight: '600'
222
- },
223
- acceptButtonText: {
224
- color: '#fff',
225
- fontWeight: '600'
226
- }
227
- });
228
- //# sourceMappingURL=DataRequestModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MaterialIcons","_constants","e","__esModule","default","DataRequestModal","visible","onClose","onAccept","requestData","AppName","renderDataRequests","Object","entries","map","key","data","createElement","View","style","styles","dataRequestContainer","dataRequestHeader","name","size","color","COLORS","primary","Text","dataRequestName","dataRequestDescription","description","rewardContainer","rewardText","reward","type","descriptions","Modal","transparent","animationType","onRequestClose","modalOverlay","modalContent","header","headerTitle","TouchableOpacity","onPress","closeButton","ScrollView","scrollContent","footer","button","cancelButton","cancelButtonText","acceptButton","acceptButtonText","exports","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","borderRadius","width","maxHeight","overflow","flexDirection","padding","headerBg","fontSize","fontWeight","marginLeft","text","secondary","marginBottom","borderWidth","borderColor","border","lineHeight","borderLeftWidth","borderLeftColor","borderTopWidth","borderTopColor","paddingHorizontal","paddingVertical"],"sourceRoot":"..\\..\\..\\src","sources":["components/DataRequestModal.tsx"],"mappings":"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","ignoreList":[]}