@onairos/react-native 3.4.1 โ†’ 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 (544) 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/apiClient.js +8 -0
  100. package/lib/commonjs/services/apiKeyService.js +9 -952
  101. package/lib/commonjs/services/authService.js +10 -0
  102. package/lib/commonjs/services/biometricPinService.js +8 -0
  103. package/lib/commonjs/services/chatGPTConversationExtractor.js +8 -0
  104. package/lib/commonjs/services/chatGPTConversationService.js +9 -0
  105. package/lib/commonjs/services/claudeConversationExtractor.js +8 -0
  106. package/lib/commonjs/services/claudeConversationService.js +9 -0
  107. package/lib/commonjs/services/connectedAccountsService.js +10 -0
  108. package/lib/commonjs/services/googleAuthService.js +11 -0
  109. package/lib/commonjs/services/imageCompressionService.js +7 -0
  110. package/lib/commonjs/services/jwtStorageService.js +7 -0
  111. package/lib/commonjs/services/linkedinDOMExtractor.js +7 -0
  112. package/lib/commonjs/services/linkedinProfileService.js +9 -0
  113. package/lib/commonjs/services/linkedinScrapingService.js +8 -0
  114. package/lib/commonjs/services/llmDataStorage.js +8 -0
  115. package/lib/commonjs/services/mobileTrainingService.js +8 -0
  116. package/lib/commonjs/services/oauthService.js +11 -390
  117. package/lib/commonjs/services/pinEncryptionService.js +8 -0
  118. package/lib/commonjs/services/pinStorageUtils.js +7 -0
  119. package/lib/commonjs/services/platformAuthService.js +12 -1067
  120. package/lib/commonjs/services/storageService.js +8 -0
  121. package/lib/commonjs/services/trainingApiHelpers.js +7 -0
  122. package/lib/commonjs/services/userConnectionsService.js +10 -0
  123. package/lib/commonjs/services/youtubeMigrationService.js +10 -0
  124. package/lib/commonjs/theme/index.js +7 -0
  125. package/lib/commonjs/types/ambient.d.js +1 -2
  126. package/lib/commonjs/types/declarations.d.js +1 -2
  127. package/lib/commonjs/types/index.js +1 -6
  128. package/lib/commonjs/types/node-fix.d.js +1 -2
  129. package/lib/commonjs/types/node-override.d.js +1 -2
  130. package/lib/commonjs/types/opacity.d.js +1 -2
  131. package/lib/commonjs/types.js +1 -14
  132. package/lib/commonjs/utils/Portal.js +8 -98
  133. package/lib/commonjs/utils/api.js +9 -129
  134. package/lib/commonjs/utils/assetRegistry.js +33 -0
  135. package/lib/commonjs/utils/auth.js +9 -111
  136. package/lib/commonjs/utils/crypto.js +8 -62
  137. package/lib/commonjs/utils/debugHelper.js +1 -64
  138. package/lib/commonjs/utils/encryption.js +7 -76
  139. package/lib/commonjs/utils/eventUtils.js +1 -0
  140. package/lib/commonjs/utils/haptics.js +9 -0
  141. package/lib/commonjs/utils/imagePreloader.js +1 -0
  142. package/lib/commonjs/utils/networkDiagnostics.js +8 -0
  143. package/lib/commonjs/utils/onairosApi.js +9 -350
  144. package/lib/commonjs/utils/programmaticFlow.js +9 -117
  145. package/lib/commonjs/utils/retryHelper.js +1 -220
  146. package/lib/commonjs/utils/secureStorage.js +10 -349
  147. package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -0
  148. package/lib/commonjs/utils/webviewScripts/claude.js +1 -0
  149. package/lib/commonjs/utils/webviewScripts/index.js +9 -0
  150. package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -0
  151. package/lib/module/api/index.js +1 -139
  152. package/lib/module/assets/animations/loaderani.json +1 -0
  153. package/lib/module/assets/animations/persona-animation.json +1 -0
  154. package/lib/module/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  155. package/lib/module/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  156. package/lib/module/assets/icons/Facebookicon.png +0 -0
  157. package/lib/module/assets/icons/Gmail.png +0 -0
  158. package/lib/module/assets/icons/Linkedinicon.png +0 -0
  159. package/lib/module/assets/icons/Redditicon.png +0 -0
  160. package/lib/module/assets/icons/YouTubeicon2.png +0 -0
  161. package/lib/module/assets/icons/YouTubeicon3.png +0 -0
  162. package/lib/module/assets/icons/chatgpt.png +0 -0
  163. package/lib/module/assets/icons/claude.png +0 -0
  164. package/lib/module/assets/icons/farcaster.png +0 -0
  165. package/lib/module/assets/icons/gemini.png +0 -0
  166. package/lib/module/assets/icons/grok.png +0 -0
  167. package/lib/module/assets/icons/instagram.png +0 -0
  168. package/lib/module/assets/icons/pinterest.png +0 -0
  169. package/lib/module/assets/icons/swerv_logo.png +0 -0
  170. package/lib/module/assets/icons/twitter.jpg +0 -0
  171. package/lib/module/assets/images/Checkbox.svg +3 -0
  172. package/lib/module/assets/images/EnochE.svg +19 -0
  173. package/lib/module/assets/images/Enochicon1.png +0 -0
  174. package/lib/module/assets/images/Face_ID_logo.png +0 -0
  175. package/lib/module/assets/images/Facebookicon.png +0 -0
  176. package/lib/module/assets/images/Gmail.png +0 -0
  177. package/lib/module/assets/images/Googlelogo.png +0 -0
  178. package/lib/module/assets/images/Linkedinicon.png +0 -0
  179. package/lib/module/assets/images/Onairoslogo.png +0 -0
  180. package/lib/module/assets/images/Personalityprofile.svg +3 -0
  181. package/lib/module/assets/images/Personalitytraits.svg +3 -0
  182. package/lib/module/assets/images/Redditicon.png +0 -0
  183. package/lib/module/assets/images/Userpreferences.svg +3 -0
  184. package/lib/module/assets/images/YouTubeicon3.png +0 -0
  185. package/lib/module/assets/images/arrow.svg +20 -0
  186. package/lib/module/assets/images/basicproficon.svg +43 -0
  187. package/lib/module/assets/images/basicprofile.svg +3 -0
  188. package/lib/module/assets/images/chatgpt.png +0 -0
  189. package/lib/module/assets/images/checkmark.svg +4 -0
  190. package/lib/module/assets/images/claude.png +0 -0
  191. package/lib/module/assets/images/contentanalysis.svg +3 -0
  192. package/lib/module/assets/images/contenticon.svg +23 -0
  193. package/lib/module/assets/images/gemini.png +0 -0
  194. package/lib/module/assets/images/grok.png +0 -0
  195. package/lib/module/assets/images/persona1.png +0 -0
  196. package/lib/module/assets/images/persona2.png +0 -0
  197. package/lib/module/assets/images/persona3.png +0 -0
  198. package/lib/module/assets/images/persona4.png +0 -0
  199. package/lib/module/assets/images/persona5.png +0 -0
  200. package/lib/module/assets/images/personalityicon.svg +18 -0
  201. package/lib/module/assets/images/x-close.svg +3 -0
  202. package/lib/module/components/BodyText.js +1 -0
  203. package/lib/module/components/BrandMark.js +1 -0
  204. package/lib/module/components/CodeInput.js +1 -0
  205. package/lib/module/components/EmailInput.js +1 -0
  206. package/lib/module/components/GoogleButton.js +1 -0
  207. package/lib/module/components/HeadingGroup.js +1 -0
  208. package/lib/module/components/LLMDataInputModal.js +8 -0
  209. package/lib/module/components/ModalHeader.js +1 -0
  210. package/lib/module/components/ModalSheet.js +1 -0
  211. package/lib/module/components/Onairos.js +1 -367
  212. package/lib/module/components/OnairosButton.js +1 -302
  213. package/lib/module/components/OnairosSignInButton.js +1 -0
  214. package/lib/module/components/Overlay.js +1 -474
  215. package/lib/module/components/PersonaImage.js +1 -0
  216. package/lib/module/components/PersonaLoadingScreen.js +1 -0
  217. package/lib/module/components/PersonalizationConsentScreen.js +1 -0
  218. package/lib/module/components/PinCreationScreen.js +1 -0
  219. package/lib/module/components/PinInput.js +1 -293
  220. package/lib/module/components/PlatformConnectorsStep.js +1 -0
  221. package/lib/module/components/PlatformList.js +1 -129
  222. package/lib/module/components/PlatformToggle.js +1 -0
  223. package/lib/module/components/PrimaryButton.js +1 -0
  224. package/lib/module/components/SignInMatchAnimation.js +1 -0
  225. package/lib/module/components/SignInStep.js +1 -0
  226. package/lib/module/components/UniversalOnboarding.js +1 -1693
  227. package/lib/module/components/VerificationStep.js +1 -0
  228. package/lib/module/components/WelcomeScreen.js +1 -0
  229. package/lib/module/components/icons/Basicproficon.js +1 -0
  230. package/lib/module/components/icons/Basicprofile.js +1 -0
  231. package/lib/module/components/icons/Checkbox.js +1 -0
  232. package/lib/module/components/icons/Checkmark.js +1 -0
  233. package/lib/module/components/icons/Contentanalysis.js +1 -0
  234. package/lib/module/components/icons/Contenticon.js +1 -0
  235. package/lib/module/components/icons/EnochE.js +1 -0
  236. package/lib/module/components/icons/Personalityicon.js +1 -0
  237. package/lib/module/components/icons/Personalityprofile.js +1 -0
  238. package/lib/module/components/icons/Personalitytraits.js +1 -0
  239. package/lib/module/components/icons/Userpreferences.js +1 -0
  240. package/lib/module/components/icons/index.js +1 -0
  241. package/lib/module/components/onboarding/OAuthWebView.js +1 -818
  242. package/lib/module/components/onboarding/OnboardingHeader.js +1 -66
  243. package/lib/module/components/onboarding/PinInput.js +1 -274
  244. package/lib/module/components/onboarding/PlatformConnector.js +1 -240
  245. package/lib/module/config/api.js +1 -0
  246. package/lib/module/constants/index.js +1 -77
  247. package/lib/module/context/AuthContext.js +1 -0
  248. package/lib/module/hooks/useConnectedAccounts.js +1 -0
  249. package/lib/module/hooks/useConnections.js +1 -152
  250. package/lib/module/hooks/useCredentials.js +6 -169
  251. package/lib/module/hooks/useUserConnections.js +1 -0
  252. package/lib/module/index.js +1 -32
  253. package/lib/module/services/apiClient.js +1 -0
  254. package/lib/module/services/apiKeyService.js +1 -925
  255. package/lib/module/services/authService.js +1 -0
  256. package/lib/module/services/biometricPinService.js +1 -0
  257. package/lib/module/services/chatGPTConversationExtractor.js +1 -0
  258. package/lib/module/services/chatGPTConversationService.js +1 -0
  259. package/lib/module/services/claudeConversationExtractor.js +1 -0
  260. package/lib/module/services/claudeConversationService.js +1 -0
  261. package/lib/module/services/connectedAccountsService.js +1 -0
  262. package/lib/module/services/googleAuthService.js +1 -0
  263. package/lib/module/services/imageCompressionService.js +1 -0
  264. package/lib/module/services/jwtStorageService.js +1 -0
  265. package/lib/module/services/linkedinDOMExtractor.js +1 -0
  266. package/lib/module/services/linkedinProfileService.js +1 -0
  267. package/lib/module/services/linkedinScrapingService.js +1 -0
  268. package/lib/module/services/llmDataStorage.js +1 -0
  269. package/lib/module/services/mobileTrainingService.js +1 -0
  270. package/lib/module/services/oauthService.js +1 -380
  271. package/lib/module/services/pinEncryptionService.js +7 -0
  272. package/lib/module/services/pinStorageUtils.js +1 -0
  273. package/lib/module/services/platformAuthService.js +1 -1041
  274. package/lib/module/services/storageService.js +1 -0
  275. package/lib/module/services/trainingApiHelpers.js +1 -0
  276. package/lib/module/services/userConnectionsService.js +1 -0
  277. package/lib/module/services/youtubeMigrationService.js +1 -0
  278. package/lib/module/theme/index.js +1 -0
  279. package/lib/module/types.js +1 -10
  280. package/lib/module/utils/Portal.js +1 -90
  281. package/lib/module/utils/api.js +1 -117
  282. package/lib/module/utils/assetRegistry.js +33 -0
  283. package/lib/module/utils/auth.js +1 -99
  284. package/lib/module/utils/crypto.js +1 -54
  285. package/lib/module/utils/debugHelper.js +1 -54
  286. package/lib/module/utils/encryption.js +1 -67
  287. package/lib/module/utils/eventUtils.js +1 -0
  288. package/lib/module/utils/haptics.js +8 -0
  289. package/lib/module/utils/imagePreloader.js +1 -0
  290. package/lib/module/utils/networkDiagnostics.js +1 -0
  291. package/lib/module/utils/onairosApi.js +1 -333
  292. package/lib/module/utils/programmaticFlow.js +1 -111
  293. package/lib/module/utils/retryHelper.js +1 -211
  294. package/lib/module/utils/secureStorage.js +6 -330
  295. package/lib/module/utils/webviewScripts/chatgpt.js +1 -0
  296. package/lib/module/utils/webviewScripts/claude.js +1 -0
  297. package/lib/module/utils/webviewScripts/index.js +1 -0
  298. package/lib/module/utils/webviewScripts/linkedin.js +1 -0
  299. package/package.json +62 -39
  300. package/lib/commonjs/api/index.js.map +0 -1
  301. package/lib/commonjs/assets/images/email.png +0 -0
  302. package/lib/commonjs/assets/images/linkedin.png +0 -0
  303. package/lib/commonjs/assets/images/reddit.png +0 -0
  304. package/lib/commonjs/assets/images/youtube.png +0 -0
  305. package/lib/commonjs/components/DataRequestModal.js +0 -228
  306. package/lib/commonjs/components/DataRequestModal.js.map +0 -1
  307. package/lib/commonjs/components/DataRequestScreen.js +0 -329
  308. package/lib/commonjs/components/DataRequestScreen.js.map +0 -1
  309. package/lib/commonjs/components/EmailVerificationModal.js +0 -320
  310. package/lib/commonjs/components/EmailVerificationModal.js.map +0 -1
  311. package/lib/commonjs/components/Onairos.js.map +0 -1
  312. package/lib/commonjs/components/OnairosButton.js.map +0 -1
  313. package/lib/commonjs/components/Overlay.js.map +0 -1
  314. package/lib/commonjs/components/PinInput.js.map +0 -1
  315. package/lib/commonjs/components/PlatformList.js.map +0 -1
  316. package/lib/commonjs/components/TrainingModal.js +0 -717
  317. package/lib/commonjs/components/TrainingModal.js.map +0 -1
  318. package/lib/commonjs/components/UniversalOnboarding.js.map +0 -1
  319. package/lib/commonjs/components/UniversalOnboarding.tsx.new +0 -455
  320. package/lib/commonjs/components/onboarding/OAuthWebView.js.map +0 -1
  321. package/lib/commonjs/components/onboarding/OnboardingHeader.js.map +0 -1
  322. package/lib/commonjs/components/onboarding/PinInput.js.map +0 -1
  323. package/lib/commonjs/components/onboarding/PlatformConnector.js.map +0 -1
  324. package/lib/commonjs/components/screens/ConnectorScreen.js +0 -146
  325. package/lib/commonjs/components/screens/ConnectorScreen.js.map +0 -1
  326. package/lib/commonjs/components/screens/LoadingScreen.js +0 -91
  327. package/lib/commonjs/components/screens/LoadingScreen.js.map +0 -1
  328. package/lib/commonjs/components/screens/PinCreationScreen.js +0 -61
  329. package/lib/commonjs/components/screens/PinCreationScreen.js.map +0 -1
  330. package/lib/commonjs/constants/index.js.map +0 -1
  331. package/lib/commonjs/hooks/useConnections.js.map +0 -1
  332. package/lib/commonjs/hooks/useCredentials.js.map +0 -1
  333. package/lib/commonjs/index.js.map +0 -1
  334. package/lib/commonjs/services/apiKeyService.js.map +0 -1
  335. package/lib/commonjs/services/oauthService.js.map +0 -1
  336. package/lib/commonjs/services/platformAuthService.js.map +0 -1
  337. package/lib/commonjs/types/ambient.d.js.map +0 -1
  338. package/lib/commonjs/types/declarations.d.js.map +0 -1
  339. package/lib/commonjs/types/index.d.js.map +0 -1
  340. package/lib/commonjs/types/index.js.map +0 -1
  341. package/lib/commonjs/types/node-fix.d.js.map +0 -1
  342. package/lib/commonjs/types/node-override.d.js.map +0 -1
  343. package/lib/commonjs/types/opacity.d.js.map +0 -1
  344. package/lib/commonjs/types/types.d.js.map +0 -1
  345. package/lib/commonjs/types.js.map +0 -1
  346. package/lib/commonjs/utils/Portal.js.map +0 -1
  347. package/lib/commonjs/utils/api.js.map +0 -1
  348. package/lib/commonjs/utils/auth.js.map +0 -1
  349. package/lib/commonjs/utils/crypto.js.map +0 -1
  350. package/lib/commonjs/utils/debugHelper.js.map +0 -1
  351. package/lib/commonjs/utils/encryption.js.map +0 -1
  352. package/lib/commonjs/utils/onairosApi.js.map +0 -1
  353. package/lib/commonjs/utils/programmaticFlow.js.map +0 -1
  354. package/lib/commonjs/utils/retryHelper.js.map +0 -1
  355. package/lib/commonjs/utils/secureStorage.js.map +0 -1
  356. package/lib/module/api/index.js.map +0 -1
  357. package/lib/module/assets/images/email.png +0 -0
  358. package/lib/module/assets/images/linkedin.png +0 -0
  359. package/lib/module/assets/images/reddit.png +0 -0
  360. package/lib/module/assets/images/youtube.png +0 -0
  361. package/lib/module/components/DataRequestModal.js +0 -220
  362. package/lib/module/components/DataRequestModal.js.map +0 -1
  363. package/lib/module/components/DataRequestScreen.js +0 -321
  364. package/lib/module/components/DataRequestScreen.js.map +0 -1
  365. package/lib/module/components/EmailVerificationModal.js +0 -311
  366. package/lib/module/components/EmailVerificationModal.js.map +0 -1
  367. package/lib/module/components/Onairos.js.map +0 -1
  368. package/lib/module/components/OnairosButton.js.map +0 -1
  369. package/lib/module/components/Overlay.js.map +0 -1
  370. package/lib/module/components/PinInput.js.map +0 -1
  371. package/lib/module/components/PlatformList.js.map +0 -1
  372. package/lib/module/components/TrainingModal.js +0 -708
  373. package/lib/module/components/TrainingModal.js.map +0 -1
  374. package/lib/module/components/UniversalOnboarding.js.map +0 -1
  375. package/lib/module/components/UniversalOnboarding.tsx.new +0 -455
  376. package/lib/module/components/onboarding/OAuthWebView.js.map +0 -1
  377. package/lib/module/components/onboarding/OnboardingHeader.js.map +0 -1
  378. package/lib/module/components/onboarding/PinInput.js.map +0 -1
  379. package/lib/module/components/onboarding/PlatformConnector.js.map +0 -1
  380. package/lib/module/components/screens/ConnectorScreen.js +0 -138
  381. package/lib/module/components/screens/ConnectorScreen.js.map +0 -1
  382. package/lib/module/components/screens/LoadingScreen.js +0 -83
  383. package/lib/module/components/screens/LoadingScreen.js.map +0 -1
  384. package/lib/module/components/screens/PinCreationScreen.js +0 -53
  385. package/lib/module/components/screens/PinCreationScreen.js.map +0 -1
  386. package/lib/module/constants/index.js.map +0 -1
  387. package/lib/module/hooks/useConnections.js.map +0 -1
  388. package/lib/module/hooks/useCredentials.js.map +0 -1
  389. package/lib/module/index.js.map +0 -1
  390. package/lib/module/services/apiKeyService.js.map +0 -1
  391. package/lib/module/services/oauthService.js.map +0 -1
  392. package/lib/module/services/platformAuthService.js.map +0 -1
  393. package/lib/module/types/ambient.d.js.map +0 -1
  394. package/lib/module/types/declarations.d.js.map +0 -1
  395. package/lib/module/types/index.d.js.map +0 -1
  396. package/lib/module/types/index.js.map +0 -1
  397. package/lib/module/types/node-fix.d.js.map +0 -1
  398. package/lib/module/types/node-override.d.js.map +0 -1
  399. package/lib/module/types/opacity.d.js.map +0 -1
  400. package/lib/module/types/types.d.js.map +0 -1
  401. package/lib/module/types.js.map +0 -1
  402. package/lib/module/utils/Portal.js.map +0 -1
  403. package/lib/module/utils/api.js.map +0 -1
  404. package/lib/module/utils/auth.js.map +0 -1
  405. package/lib/module/utils/crypto.js.map +0 -1
  406. package/lib/module/utils/debugHelper.js.map +0 -1
  407. package/lib/module/utils/encryption.js.map +0 -1
  408. package/lib/module/utils/onairosApi.js.map +0 -1
  409. package/lib/module/utils/programmaticFlow.js.map +0 -1
  410. package/lib/module/utils/retryHelper.js.map +0 -1
  411. package/lib/module/utils/secureStorage.js.map +0 -1
  412. package/lib/typescript/api/index.d.ts +0 -8
  413. package/lib/typescript/api/index.d.ts.map +0 -1
  414. package/lib/typescript/components/DataRequestModal.d.ts +0 -11
  415. package/lib/typescript/components/DataRequestModal.d.ts.map +0 -1
  416. package/lib/typescript/components/DataRequestScreen.d.ts +0 -11
  417. package/lib/typescript/components/DataRequestScreen.d.ts.map +0 -1
  418. package/lib/typescript/components/EmailVerificationModal.d.ts +0 -11
  419. package/lib/typescript/components/EmailVerificationModal.d.ts.map +0 -1
  420. package/lib/typescript/components/Onairos.d.ts +0 -4
  421. package/lib/typescript/components/Onairos.d.ts.map +0 -1
  422. package/lib/typescript/components/OnairosButton.d.ts +0 -12
  423. package/lib/typescript/components/OnairosButton.d.ts.map +0 -1
  424. package/lib/typescript/components/Overlay.d.ts +0 -4
  425. package/lib/typescript/components/Overlay.d.ts.map +0 -1
  426. package/lib/typescript/components/PinInput.d.ts +0 -4
  427. package/lib/typescript/components/PinInput.d.ts.map +0 -1
  428. package/lib/typescript/components/PlatformList.d.ts +0 -4
  429. package/lib/typescript/components/PlatformList.d.ts.map +0 -1
  430. package/lib/typescript/components/TrainingModal.d.ts +0 -4
  431. package/lib/typescript/components/TrainingModal.d.ts.map +0 -1
  432. package/lib/typescript/components/UniversalOnboarding.d.ts +0 -4
  433. package/lib/typescript/components/UniversalOnboarding.d.ts.map +0 -1
  434. package/lib/typescript/components/onboarding/OAuthWebView.d.ts +0 -10
  435. package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +0 -1
  436. package/lib/typescript/components/onboarding/OnboardingHeader.d.ts +0 -11
  437. package/lib/typescript/components/onboarding/OnboardingHeader.d.ts.map +0 -1
  438. package/lib/typescript/components/onboarding/PinInput.d.ts +0 -4
  439. package/lib/typescript/components/onboarding/PinInput.d.ts.map +0 -1
  440. package/lib/typescript/components/onboarding/PlatformConnector.d.ts +0 -13
  441. package/lib/typescript/components/onboarding/PlatformConnector.d.ts.map +0 -1
  442. package/lib/typescript/components/screens/ConnectorScreen.d.ts +0 -9
  443. package/lib/typescript/components/screens/ConnectorScreen.d.ts.map +0 -1
  444. package/lib/typescript/components/screens/LoadingScreen.d.ts +0 -9
  445. package/lib/typescript/components/screens/LoadingScreen.d.ts.map +0 -1
  446. package/lib/typescript/components/screens/PinCreationScreen.d.ts +0 -10
  447. package/lib/typescript/components/screens/PinCreationScreen.d.ts.map +0 -1
  448. package/lib/typescript/constants/index.d.ts +0 -53
  449. package/lib/typescript/constants/index.d.ts.map +0 -1
  450. package/lib/typescript/hooks/useConnections.d.ts +0 -9
  451. package/lib/typescript/hooks/useConnections.d.ts.map +0 -1
  452. package/lib/typescript/hooks/useCredentials.d.ts +0 -9
  453. package/lib/typescript/hooks/useCredentials.d.ts.map +0 -1
  454. package/lib/typescript/index.d.ts +0 -18
  455. package/lib/typescript/index.d.ts.map +0 -1
  456. package/lib/typescript/services/apiKeyService.d.ts +0 -132
  457. package/lib/typescript/services/apiKeyService.d.ts.map +0 -1
  458. package/lib/typescript/services/oauthService.d.ts +0 -50
  459. package/lib/typescript/services/oauthService.d.ts.map +0 -1
  460. package/lib/typescript/services/platformAuthService.d.ts +0 -144
  461. package/lib/typescript/services/platformAuthService.d.ts.map +0 -1
  462. package/lib/typescript/types/index.d.ts +0 -231
  463. package/lib/typescript/types/index.d.ts.map +0 -1
  464. package/lib/typescript/types.d.ts +0 -270
  465. package/lib/typescript/types.d.ts.map +0 -1
  466. package/lib/typescript/utils/Portal.d.ts +0 -14
  467. package/lib/typescript/utils/Portal.d.ts.map +0 -1
  468. package/lib/typescript/utils/api.d.ts +0 -6
  469. package/lib/typescript/utils/api.d.ts.map +0 -1
  470. package/lib/typescript/utils/auth.d.ts +0 -6
  471. package/lib/typescript/utils/auth.d.ts.map +0 -1
  472. package/lib/typescript/utils/crypto.d.ts +0 -4
  473. package/lib/typescript/utils/crypto.d.ts.map +0 -1
  474. package/lib/typescript/utils/debugHelper.d.ts +0 -29
  475. package/lib/typescript/utils/debugHelper.d.ts.map +0 -1
  476. package/lib/typescript/utils/encryption.d.ts +0 -19
  477. package/lib/typescript/utils/encryption.d.ts.map +0 -1
  478. package/lib/typescript/utils/onairosApi.d.ts +0 -87
  479. package/lib/typescript/utils/onairosApi.d.ts.map +0 -1
  480. package/lib/typescript/utils/programmaticFlow.d.ts +0 -23
  481. package/lib/typescript/utils/programmaticFlow.d.ts.map +0 -1
  482. package/lib/typescript/utils/retryHelper.d.ts +0 -69
  483. package/lib/typescript/utils/retryHelper.d.ts.map +0 -1
  484. package/lib/typescript/utils/secureStorage.d.ts +0 -94
  485. package/lib/typescript/utils/secureStorage.d.ts.map +0 -1
  486. package/src/api/index.ts +0 -111
  487. package/src/assets/images/email.png +0 -0
  488. package/src/assets/images/linkedin.png +0 -0
  489. package/src/assets/images/onairos_logo.png +0 -0
  490. package/src/assets/images/reddit.png +0 -0
  491. package/src/assets/images/youtube.png +0 -0
  492. package/src/components/DataRequestModal.tsx +0 -227
  493. package/src/components/DataRequestScreen.tsx +0 -356
  494. package/src/components/EmailVerificationModal.tsx +0 -364
  495. package/src/components/Onairos.tsx +0 -425
  496. package/src/components/OnairosButton.tsx +0 -359
  497. package/src/components/Overlay.tsx +0 -506
  498. package/src/components/PinInput.tsx +0 -343
  499. package/src/components/PlatformList.tsx +0 -145
  500. package/src/components/TrainingModal.tsx +0 -737
  501. package/src/components/UniversalOnboarding.tsx +0 -1839
  502. package/src/components/UniversalOnboarding.tsx.new +0 -455
  503. package/src/components/onboarding/OAuthWebView.tsx +0 -838
  504. package/src/components/onboarding/OnboardingHeader.tsx +0 -70
  505. package/src/components/onboarding/PinInput.tsx +0 -356
  506. package/src/components/onboarding/PlatformConnector.tsx +0 -302
  507. package/src/components/screens/ConnectorScreen.tsx +0 -153
  508. package/src/components/screens/LoadingScreen.tsx +0 -100
  509. package/src/components/screens/PinCreationScreen.tsx +0 -67
  510. package/src/constants/index.ts +0 -83
  511. package/src/hooks/useConnections.ts +0 -163
  512. package/src/hooks/useCredentials.ts +0 -175
  513. package/src/index.js +0 -14
  514. package/src/index.ts +0 -50
  515. package/src/services/SDK_API_KEY_VALIDATION.md +0 -421
  516. package/src/services/apiKeyService.ts +0 -984
  517. package/src/services/oauthService.ts +0 -412
  518. package/src/services/platformAuthService.ts +0 -1113
  519. package/src/types/ambient.d.ts +0 -29
  520. package/src/types/declarations.d.ts +0 -26
  521. package/src/types/index.d.ts +0 -274
  522. package/src/types/index.ts +0 -244
  523. package/src/types/node-fix.d.ts +0 -19
  524. package/src/types/node-override.d.ts +0 -24
  525. package/src/types/opacity.d.ts +0 -16
  526. package/src/types/types.d.ts +0 -18
  527. package/src/types.ts +0 -298
  528. package/src/utils/Portal.tsx +0 -83
  529. package/src/utils/api.js +0 -112
  530. package/src/utils/auth.js +0 -104
  531. package/src/utils/crypto.js +0 -60
  532. package/src/utils/debugHelper.ts +0 -53
  533. package/src/utils/encryption.ts +0 -69
  534. package/src/utils/onairosApi.ts +0 -391
  535. package/src/utils/programmaticFlow.ts +0 -113
  536. package/src/utils/retryHelper.ts +0 -275
  537. package/src/utils/secureStorage.ts +0 -361
  538. package/types/index.d.ts +0 -218
  539. package/types/node-env.d.ts +0 -15
  540. /package/{src/assets/images โ†’ lib/commonjs/assets/icons}/farcaster.png +0 -0
  541. /package/{src/assets/images โ†’ lib/commonjs/assets/icons}/instagram.png +0 -0
  542. /package/{src/assets/images โ†’ lib/commonjs/assets/icons}/pinterest.png +0 -0
  543. /package/{src/assets/images โ†’ lib/commonjs/assets/icons}/swerv_logo.png +0 -0
  544. /package/{src/assets/images โ†’ lib/commonjs/assets/icons}/twitter.jpg +0 -0
@@ -1,1067 +1,12 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.verifyEmailCode = exports.updateGoogleClientIds = exports.testApiConnectivity = exports.storePIN = exports.requestEmailVerification = exports.refreshYouTubeTokens = exports.refreshGoogleTokens = exports.isOAuthCallback = exports.initiateOAuth = exports.initiateNativeAuth = exports.initializePlatformAuthService = exports.hasNativeSDK = exports.handleOAuthCallbackUrl = exports.handleOAuthCallback = exports.getStoredJwtToken = exports.getPlatformColor = exports.getAuthEndpoint = exports.disconnectPlatform = exports.clearStoredTokens = exports.checkEmailVerificationStatus = void 0;
7
- var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
8
- var _apiKeyService = require("./apiKeyService");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- // ๐Ÿ”‘ CRITICAL: Use two-tier authentication system
11
- // - Developer API key for email verification requests
12
- // - JWT tokens for user-authenticated requests after email verification
13
-
14
- /**
15
- * Initialize the platform auth service
16
- * This service now uses the two-tier authentication system
17
- */
18
- const initializePlatformAuthService = async () => {
19
- try {
20
- // Check if app is already initialized with API key
21
- const existingConfig = (0, _apiKeyService.getApiConfig)();
22
- if (existingConfig && existingConfig.apiKey) {
23
- console.log('๐Ÿ”‘ Platform auth service using existing app configuration');
24
- console.log(`โœ… Environment: ${existingConfig.environment}`);
25
- return;
26
- }
27
-
28
- // If no app initialization, we can't proceed
29
- console.error('โŒ Platform auth service requires app-level API key initialization');
30
- throw new Error('Platform auth service requires app-level API key initialization. Please call initializeApiKey() first.');
31
- } catch (error) {
32
- console.error('โŒ Failed to initialize platform auth service:', error);
33
- throw error;
34
- }
35
- };
36
-
37
- // Configuration for each platform's authentication
38
- exports.initializePlatformAuthService = initializePlatformAuthService;
39
- let PLATFORM_AUTH_CONFIG = {
40
- instagram: {
41
- hasNativeSDK: false,
42
- // Instagram uses OAuth WebView flow
43
- authEndpoint: '/instagram/authorize',
44
- color: '#E1306C'
45
- },
46
- youtube: {
47
- hasNativeSDK: true,
48
- // Native Google Sign-In SDK enabled
49
- nativeSDKPackage: '@react-native-google-signin/google-signin',
50
- authEndpoint: '/youtube/authorize',
51
- color: '#FF0000',
52
- clientId: '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com',
53
- redirectUri: 'onairosevents://auth/callback',
54
- scope: 'https://www.googleapis.com/auth/youtube.readonly',
55
- responseType: 'code'
56
- },
57
- reddit: {
58
- hasNativeSDK: false,
59
- authEndpoint: '/reddit/authorize',
60
- color: '#FF4500'
61
- },
62
- pinterest: {
63
- hasNativeSDK: false,
64
- authEndpoint: '/pinterest/authorize',
65
- color: '#E60023'
66
- },
67
- email: {
68
- hasNativeSDK: false,
69
- authEndpoint: '/gmail/authorize',
70
- color: '#4285F4'
71
- }
72
- };
73
-
74
- /**
75
- * Checks if a native SDK is available for the given platform
76
- */
77
- const hasNativeSDK = platform => {
78
- const config = PLATFORM_AUTH_CONFIG[platform];
79
- return (config === null || config === void 0 ? void 0 : config.hasNativeSDK) || false;
80
- };
81
-
82
- /**
83
- * Gets the auth endpoint URL for a platform
84
- */
85
- exports.hasNativeSDK = hasNativeSDK;
86
- const getAuthEndpoint = platform => {
87
- const config = PLATFORM_AUTH_CONFIG[platform];
88
- return (config === null || config === void 0 ? void 0 : config.authEndpoint) || '';
89
- };
90
-
91
- /**
92
- * Gets the color associated with a platform
93
- */
94
- exports.getAuthEndpoint = getAuthEndpoint;
95
- const getPlatformColor = platform => {
96
- const config = PLATFORM_AUTH_CONFIG[platform];
97
- return (config === null || config === void 0 ? void 0 : config.color) || '#000000';
98
- };
99
-
100
- /**
101
- * Initiates the OAuth flow for a platform
102
- * @param platform The platform to authenticate with
103
- * @param username The username to associate with the authentication
104
- * @param appName The app name to use for the OAuth session (optional)
105
- * @returns A Promise that resolves to the OAuth URL to open in a WebView or null if using native SDK
106
- */
107
- exports.getPlatformColor = getPlatformColor;
108
- const initiateOAuth = async (platform, username, appName) => {
109
- try {
110
- console.log('๐Ÿš€ Initiating OAuth for platform:', platform);
111
- console.log('๐Ÿ‘ค Username:', username);
112
- console.log('๐Ÿ“ฑ App name:', appName);
113
-
114
- // Check if the platform is supported
115
- if (!PLATFORM_AUTH_CONFIG[platform]) {
116
- console.error('โŒ Unsupported platform:', platform);
117
- throw new Error(`Unsupported platform: ${platform}`);
118
- }
119
-
120
- // Check if platform has a native SDK
121
- if (PLATFORM_AUTH_CONFIG[platform].hasNativeSDK) {
122
- console.log('๐Ÿ“ฑ Platform uses native SDK, returning null');
123
- // Return null to indicate that we should use the native SDK
124
- return null;
125
- }
126
- console.log('๐ŸŒ Platform uses OAuth WebView flow');
127
- console.log('๐Ÿ”— Auth endpoint:', PLATFORM_AUTH_CONFIG[platform].authEndpoint);
128
-
129
- // Pre-flight connectivity check
130
- console.log('๐Ÿ” Performing pre-flight connectivity check...');
131
- const connectivityResult = await testApiConnectivity();
132
- if (!connectivityResult.success) {
133
- console.error('โŒ Pre-flight connectivity check failed:', connectivityResult.error);
134
- throw new Error(`Cannot reach authentication server: ${connectivityResult.error}`);
135
- }
136
- console.log('โœ… Pre-flight connectivity check passed');
137
-
138
- // Handle Instagram with specific API format
139
- if (platform === 'instagram') {
140
- const state = 'djksbfds';
141
- const jsonData = {
142
- session: {
143
- oauthState: state,
144
- username: username || 'Avatar'
145
- }
146
- };
147
- console.log('๐Ÿ“ค Sending Instagram OAuth request:', jsonData);
148
- const response = await (0, _apiKeyService.makeDeveloperRequest)(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
149
- method: 'POST',
150
- body: JSON.stringify(jsonData)
151
- });
152
- console.log('๐Ÿ“ก Instagram OAuth response status:', response.status);
153
- if (!response.ok) {
154
- const errorText = await response.text();
155
- console.error('โŒ Instagram OAuth API error:', errorText);
156
- throw new Error(`Instagram OAuth API error: ${response.status} - ${errorText}`);
157
- }
158
- const responseData = await response.json();
159
- console.log('๐Ÿ“ฅ Instagram OAuth response data:', responseData);
160
- if (responseData.instagramURL) {
161
- console.log('โœ… Instagram OAuth URL received:', responseData.instagramURL);
162
-
163
- // Validate the URL before returning
164
- if (await validateOAuthUrl(responseData.instagramURL)) {
165
- return responseData.instagramURL;
166
- } else {
167
- throw new Error('Received invalid Instagram OAuth URL');
168
- }
169
- }
170
- console.error('โŒ No Instagram URL found in response');
171
- throw new Error('No Instagram URL found in response');
172
- }
173
-
174
- // Prepare the request body for other platforms
175
- const jsonData = {
176
- session: {
177
- oauthState: 'djksbfds',
178
- // Use same state for all platforms
179
- username: username || 'Avatar',
180
- appName: appName || 'DefaultApp'
181
- }
182
- };
183
- console.log(`๐Ÿ“ค Sending ${platform} OAuth request:`, jsonData);
184
-
185
- // Make the authenticated request to get the OAuth URL
186
- const response = await (0, _apiKeyService.makeDeveloperRequest)(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
187
- method: 'POST',
188
- body: JSON.stringify(jsonData)
189
- });
190
- console.log(`๐Ÿ“ก ${platform} OAuth response status:`, response.status);
191
- if (!response.ok) {
192
- const errorText = await response.text();
193
- console.error(`โŒ ${platform} OAuth API error:`, errorText);
194
- throw new Error(`${platform} OAuth API error: ${response.status} - ${errorText}`);
195
- }
196
-
197
- // Parse the response
198
- const data = await response.json();
199
- console.log(`๐Ÿ“ฅ ${platform} OAuth response data:`, data);
200
-
201
- // Extra logging for Gmail to help debug
202
- if (platform === 'email') {
203
- console.log('๐Ÿ” Gmail OAuth response keys:', Object.keys(data));
204
- console.log('๐Ÿ” Gmail OAuth full response:', JSON.stringify(data, null, 2));
205
- }
206
-
207
- // Check if the response contains the OAuth URL based on platform
208
- let oauthUrl = null;
209
- switch (platform) {
210
- case 'reddit':
211
- oauthUrl = data.redditURL;
212
- break;
213
- case 'pinterest':
214
- oauthUrl = data.pinterestURL;
215
- break;
216
- case 'youtube':
217
- oauthUrl = data.youtubeURL;
218
- break;
219
- case 'email':
220
- // Gmail might return under different field names
221
- oauthUrl = data.emailURL || data.gmailURL || data.authUrl || data.url;
222
- break;
223
- default:
224
- oauthUrl = data.url;
225
- break;
226
- }
227
- if (!oauthUrl) {
228
- console.error(`โŒ No OAuth URL found in response for ${platform}. Response:`, data);
229
- throw new Error(`No OAuth URL found in response for ${platform}`);
230
- }
231
- console.log(`โœ… ${platform} OAuth URL received:`, oauthUrl);
232
-
233
- // Validate the URL before returning
234
- if (await validateOAuthUrl(oauthUrl)) {
235
- return oauthUrl;
236
- } else {
237
- throw new Error(`Received invalid ${platform} OAuth URL`);
238
- }
239
- } catch (error) {
240
- console.error(`Error initiating OAuth for ${platform}:`, error);
241
- throw error;
242
- }
243
- };
244
-
245
- /**
246
- * Validates an OAuth URL to ensure it's reachable
247
- * @param url The OAuth URL to validate
248
- * @returns Promise<boolean> indicating if the URL is valid and reachable
249
- */
250
- exports.initiateOAuth = initiateOAuth;
251
- const validateOAuthUrl = async url => {
252
- try {
253
- console.log('๐Ÿ” Validating OAuth URL:', url);
254
-
255
- // Basic URL format validation
256
- if (!url || typeof url !== 'string') {
257
- console.error('โŒ Invalid URL format:', url);
258
- return false;
259
- }
260
-
261
- // Check if URL starts with https
262
- if (!url.startsWith('https://')) {
263
- console.error('โŒ URL must use HTTPS:', url);
264
- return false;
265
- }
266
-
267
- // Try to parse the URL
268
- try {
269
- new URL(url);
270
- } catch (parseError) {
271
- console.error('โŒ URL parsing failed:', parseError);
272
- return false;
273
- }
274
-
275
- // Make a HEAD request to check if the URL is reachable
276
- const controller = new AbortController();
277
- const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
278
-
279
- try {
280
- const response = await fetch(url, {
281
- method: 'HEAD',
282
- signal: controller.signal
283
- });
284
- clearTimeout(timeoutId);
285
-
286
- // Accept any response that's not a network error
287
- // OAuth pages might return various status codes
288
- console.log('โœ… OAuth URL validation successful, status:', response.status);
289
- return true;
290
- } catch (fetchError) {
291
- clearTimeout(timeoutId);
292
- if (fetchError.name === 'AbortError') {
293
- console.warn('โš ๏ธ OAuth URL validation timeout, but proceeding anyway');
294
- return true; // Allow timeout as URLs might be slow to respond
295
- }
296
- console.warn('โš ๏ธ OAuth URL validation failed, but proceeding anyway:', fetchError.message);
297
- return true; // Allow network errors as they might be temporary
298
- }
299
- } catch (error) {
300
- console.warn('โš ๏ธ OAuth URL validation error, but proceeding anyway:', error);
301
- return true; // Allow validation errors to not block the flow
302
- }
303
- };
304
-
305
- /**
306
- * Initiates the native SDK authentication flow for a platform
307
- * @param platform The platform to authenticate with
308
- * @returns A Promise that resolves to the authentication result
309
- */
310
- const initiateNativeAuth = async (platform, username) => {
311
- if (platform === 'youtube') {
312
- console.log('๐Ÿ”— Initiating native Google Sign-In for YouTube');
313
- try {
314
- var _currentUser$user, _userInfo$user4, _userInfo$user6, _userInfo$user7, _userInfo$user8;
315
- // Check if Google Sign-In package is available
316
- let GoogleSignin, statusCodes;
317
- try {
318
- const googleSignInModule = require('@react-native-google-signin/google-signin');
319
- GoogleSignin = googleSignInModule.GoogleSignin;
320
- statusCodes = googleSignInModule.statusCodes;
321
- } catch (importError) {
322
- console.error('โŒ Google Sign-In package not available:', importError);
323
- throw new Error('Google Sign-In SDK not installed. Please install @react-native-google-signin/google-signin');
324
- }
325
-
326
- // Configure Google Sign-In with better error handling
327
- try {
328
- const youtubeConfig = PLATFORM_AUTH_CONFIG.youtube;
329
- const webClientId = youtubeConfig.clientId || '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com';
330
- const iosClientId = youtubeConfig.iosClientId || webClientId;
331
- await GoogleSignin.configure({
332
- webClientId: webClientId,
333
- iosClientId: iosClientId,
334
- scopes: ['https://www.googleapis.com/auth/youtube.readonly'],
335
- offlineAccess: true,
336
- hostedDomain: '',
337
- forceCodeForRefreshToken: true,
338
- accountName: ''
339
- });
340
- console.log('โœ… Google Sign-In configured successfully with client ID:', webClientId.substring(0, 20) + '...');
341
- } catch (configError) {
342
- console.error('โŒ Google Sign-In configuration failed:', configError);
343
- throw new Error(`Google Sign-In configuration failed: ${configError.message || configError}`);
344
- }
345
-
346
- // Check if Google Play Services are available (Android only)
347
- try {
348
- await GoogleSignin.hasPlayServices({
349
- showPlayServicesUpdateDialog: true
350
- });
351
- console.log('โœ… Google Play Services available');
352
- } catch (playServicesError) {
353
- console.error('โŒ Google Play Services error:', playServicesError);
354
- throw new Error(`Google Play Services not available: ${playServicesError.message || playServicesError}`);
355
- }
356
-
357
- // Sign in with Google
358
- let userInfo;
359
- try {
360
- var _userInfo$user;
361
- userInfo = await GoogleSignin.signIn();
362
- console.log('โœ… Google Sign-In successful:', (_userInfo$user = userInfo.user) === null || _userInfo$user === void 0 ? void 0 : _userInfo$user.email);
363
- } catch (signInError) {
364
- console.error('โŒ Google Sign-In failed:', signInError);
365
-
366
- // Handle specific error codes
367
- if (signInError.code === statusCodes.SIGN_IN_CANCELLED) {
368
- throw new Error('Google Sign-In was cancelled by user');
369
- } else if (signInError.code === statusCodes.IN_PROGRESS) {
370
- throw new Error('Google Sign-In already in progress');
371
- } else if (signInError.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
372
- throw new Error('Google Play Services not available or outdated');
373
- } else {
374
- throw new Error(`Google Sign-In failed: ${signInError.message || signInError}`);
375
- }
376
- }
377
-
378
- // Get access token for API calls
379
- const tokens = await GoogleSignin.getTokens();
380
- console.log('๐Ÿ”‘ Got Google tokens');
381
-
382
- // Get current user info with refresh token
383
- const currentUser = await GoogleSignin.getCurrentUser();
384
- console.log('๐Ÿ‘ค Current user info:', currentUser === null || currentUser === void 0 || (_currentUser$user = currentUser.user) === null || _currentUser$user === void 0 ? void 0 : _currentUser$user.email);
385
-
386
- // Extract refresh token from server auth code
387
- let refreshToken = null;
388
- if (currentUser !== null && currentUser !== void 0 && currentUser.serverAuthCode) {
389
- console.log('๐Ÿ”„ Server auth code available for refresh token');
390
- refreshToken = currentUser.serverAuthCode;
391
- }
392
- if (!refreshToken) {
393
- console.warn('โš ๏ธ No refresh token available - token refresh may fail later');
394
- } else {
395
- console.log('โœ… Refresh token available for YouTube connection');
396
- }
397
-
398
- // Fetch YouTube channel information
399
- let channelName = 'Unknown Channel';
400
- let channelId = null;
401
- try {
402
- console.log('๐Ÿ“บ Fetching YouTube channel information...');
403
- const channelResponse = await fetch('https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true', {
404
- headers: {
405
- 'Authorization': `Bearer ${tokens.accessToken}`,
406
- 'Accept': 'application/json'
407
- }
408
- });
409
- if (channelResponse.ok) {
410
- const channelData = await channelResponse.json();
411
- if (channelData.items && channelData.items.length > 0) {
412
- channelName = channelData.items[0].snippet.title;
413
- channelId = channelData.items[0].id;
414
- console.log('โœ… YouTube channel found:', channelName);
415
- }
416
- }
417
- } catch (channelError) {
418
- var _userInfo$user2, _userInfo$user3;
419
- console.log('โš ๏ธ Error fetching YouTube channel info:', channelError);
420
- channelName = ((_userInfo$user2 = userInfo.user) === null || _userInfo$user2 === void 0 ? void 0 : _userInfo$user2.name) || ((_userInfo$user3 = userInfo.user) === null || _userInfo$user3 === void 0 ? void 0 : _userInfo$user3.email) || 'Unknown Channel';
421
- }
422
-
423
- // Get authentication info
424
- let authToken = (await _asyncStorage.default.getItem('onairos_jwt_token')) || (await _asyncStorage.default.getItem('enoch_token')) || (await _asyncStorage.default.getItem('auth_token'));
425
- const storedUsername = await _asyncStorage.default.getItem('onairos_username');
426
- const finalUsername = storedUsername || username || ((_userInfo$user4 = userInfo.user) === null || _userInfo$user4 === void 0 ? void 0 : _userInfo$user4.email) || 'youtube_user';
427
-
428
- // Create auth token if needed
429
- if (!authToken || authToken.trim().length < 20) {
430
- console.log('๐Ÿ” Creating authentication token for YouTube...');
431
- try {
432
- var _userInfo$user5;
433
- const fallbackEmail = ((_userInfo$user5 = userInfo.user) === null || _userInfo$user5 === void 0 ? void 0 : _userInfo$user5.email) || `${finalUsername}@youtube.temp`;
434
-
435
- // Create user accounts and get JWT token
436
- const onairosSignupResponse = await fetch('https://api2.onairos.uk/register/enoch', {
437
- method: 'POST',
438
- headers: {
439
- 'Content-Type': 'application/json'
440
- },
441
- body: JSON.stringify({
442
- email: fallbackEmail,
443
- username: finalUsername,
444
- name: finalUsername
445
- })
446
- });
447
- if (onairosSignupResponse.ok) {
448
- var _onairosResponseData$;
449
- const onairosResponseData = await onairosSignupResponse.json();
450
-
451
- // Extract token from response
452
- authToken = onairosResponseData.token || ((_onairosResponseData$ = onairosResponseData.data) === null || _onairosResponseData$ === void 0 ? void 0 : _onairosResponseData$.token) || onairosResponseData.jwt;
453
- if (authToken) {
454
- // Store tokens
455
- await _asyncStorage.default.setItem('onairos_jwt_token', authToken);
456
- await _asyncStorage.default.setItem('enoch_token', authToken);
457
- await _asyncStorage.default.setItem('auth_token', authToken);
458
- await _asyncStorage.default.setItem('onairos_username', onairosResponseData.username || finalUsername);
459
- console.log('โœ… Successfully created and stored authentication token');
460
- }
461
- }
462
- } catch (tokenError) {
463
- console.warn('โš ๏ธ Error creating auth token:', tokenError);
464
- }
465
- }
466
- console.log('๐Ÿ”— Linking YouTube data to user:', finalUsername);
467
- console.log('๐Ÿ“บ YouTube channel name:', channelName);
468
-
469
- // Send tokens to backend for YouTube data processing
470
- const backendResponse = await fetch('https://api2.onairos.uk/youtube/native-auth', {
471
- method: 'POST',
472
- headers: {
473
- 'Content-Type': 'application/json',
474
- ...(authToken && {
475
- 'Authorization': `Bearer ${authToken}`
476
- })
477
- },
478
- body: JSON.stringify({
479
- session: {
480
- username: finalUsername,
481
- platform: 'youtube',
482
- timestamp: new Date().toISOString(),
483
- channelName: channelName,
484
- channelId: channelId
485
- },
486
- googleUser: userInfo.user,
487
- accessToken: tokens.accessToken,
488
- idToken: tokens.idToken,
489
- refreshToken: refreshToken,
490
- // CRITICAL: Include refresh token
491
- serverAuthCode: currentUser === null || currentUser === void 0 ? void 0 : currentUser.serverAuthCode,
492
- userAccountInfo: {
493
- username: finalUsername,
494
- email: (_userInfo$user6 = userInfo.user) === null || _userInfo$user6 === void 0 ? void 0 : _userInfo$user6.email,
495
- authToken: authToken,
496
- channelName: channelName,
497
- channelId: channelId,
498
- userIdentifier: authToken ? `user-${authToken.substring(0, 10)}` : `youtube-${(_userInfo$user7 = userInfo.user) === null || _userInfo$user7 === void 0 ? void 0 : _userInfo$user7.email}`,
499
- googleId: (_userInfo$user8 = userInfo.user) === null || _userInfo$user8 === void 0 ? void 0 : _userInfo$user8.id
500
- },
501
- tokenExpiry: new Date(Date.now() + 3600 * 1000).toISOString(),
502
- // 1 hour from now
503
- requestRefreshToken: true
504
- })
505
- });
506
- if (backendResponse.ok) {
507
- const responseData = await backendResponse.json();
508
- console.log('โœ… YouTube connection processed by backend:', responseData);
509
- return true;
510
- } else {
511
- const errorData = await backendResponse.text();
512
- console.error('โŒ Backend processing failed:', backendResponse.status, errorData);
513
- return false;
514
- }
515
- } catch (error) {
516
- console.error('โŒ Google Sign-In error:', error);
517
- const {
518
- statusCodes: StatusCodes
519
- } = require('@react-native-google-signin/google-signin');
520
- if (error.code === StatusCodes.SIGN_IN_CANCELLED) {
521
- console.log('User cancelled Google Sign-In');
522
- } else if (error.code === StatusCodes.IN_PROGRESS) {
523
- console.log('Google Sign-In already in progress');
524
- } else if (error.code === StatusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
525
- console.log('Google Play Services not available');
526
- }
527
- return false;
528
- }
529
- }
530
- return false;
531
- };
532
-
533
- /**
534
- * Handles the OAuth callback
535
- * @param url The callback URL
536
- * @returns The authorization code extracted from the URL
537
- */
538
- exports.initiateNativeAuth = initiateNativeAuth;
539
- const handleOAuthCallback = url => {
540
- try {
541
- // Parse the URL
542
- const parsedUrl = new URL(url);
543
-
544
- // Extract the authorization code
545
- return parsedUrl.searchParams.get('code');
546
- } catch (error) {
547
- console.error('Error handling OAuth callback:', error);
548
- return null;
549
- }
550
- };
551
-
552
- /**
553
- * Checks if a URL is an OAuth callback
554
- * @param url The URL to check
555
- * @returns True if the URL is an OAuth callback
556
- */
557
- exports.handleOAuthCallback = handleOAuthCallback;
558
- const isOAuthCallback = url => {
559
- // Check if the URL starts with our redirect URI
560
- return url.startsWith('onairosanime://auth/');
561
- };
562
-
563
- /**
564
- * Test connectivity to the Onairos API server
565
- */
566
- exports.isOAuthCallback = isOAuthCallback;
567
- const testApiConnectivity = async () => {
568
- try {
569
- console.log('๐Ÿ” Testing connectivity to Onairos API...');
570
-
571
- // Test multiple endpoints for better reliability
572
- const testEndpoints = ['https://api2.onairos.uk/health', 'https://api2.onairos.uk' // Base URL
573
- ];
574
- let lastError = null;
575
- for (const endpoint of testEndpoints) {
576
- try {
577
- console.log(`๐Ÿ” Testing endpoint: ${endpoint}`);
578
- const controller = new AbortController();
579
- const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
580
-
581
- const response = await fetch(endpoint, {
582
- method: 'GET',
583
- headers: {
584
- 'Content-Type': 'application/json',
585
- 'User-Agent': 'OnairosReactNative/1.0'
586
- },
587
- signal: controller.signal
588
- });
589
- clearTimeout(timeoutId);
590
- console.log(`๐ŸŒ API connectivity test response for ${endpoint}:`, response.status);
591
- if (response.ok || response.status === 404) {
592
- // Accept 404 as it means the server is reachable
593
- console.log('โœ… API server is reachable');
594
- return {
595
- success: true
596
- };
597
- } else {
598
- console.log(`โš ๏ธ API server responded with status ${response.status} for ${endpoint}`);
599
- lastError = `API server error: ${response.status}`;
600
- // Continue to next endpoint
601
- }
602
- } catch (fetchError) {
603
- console.log(`โŒ Failed to reach ${endpoint}:`, fetchError);
604
- if (fetchError.name === 'AbortError') {
605
- lastError = 'Connection timeout - API server took too long to respond';
606
- } else if (fetchError.message.includes('Network request failed')) {
607
- lastError = 'Network error - check your internet connection';
608
- } else if (fetchError.message.includes('not connected to the internet')) {
609
- lastError = 'No internet connection';
610
- } else {
611
- lastError = `Network error: ${fetchError.message}`;
612
- }
613
-
614
- // Continue to next endpoint
615
- }
616
- }
617
- console.error('โŒ All API connectivity tests failed');
618
- return {
619
- success: false,
620
- error: lastError || 'Cannot reach API server'
621
- };
622
- } catch (error) {
623
- console.error('โŒ API connectivity test failed:', error);
624
- return {
625
- success: false,
626
- error: error instanceof Error ? error.message : 'Unknown error'
627
- };
628
- }
629
- };
630
-
631
- /**
632
- * ๐Ÿ”„ REFRESH GOOGLE TOKENS
633
- */
634
- exports.testApiConnectivity = testApiConnectivity;
635
- const refreshGoogleTokens = async () => {
636
- try {
637
- console.log('๐Ÿ”„ Attempting to refresh Google tokens...');
638
- const {
639
- GoogleSignin
640
- } = require('@react-native-google-signin/google-signin');
641
- const currentUser = await GoogleSignin.getCurrentUser();
642
- if (!currentUser) {
643
- console.log('โŒ User not signed in to Google, cannot refresh tokens');
644
- return null;
645
- }
646
- const tokens = await GoogleSignin.getTokens();
647
- console.log('โœ… Successfully refreshed Google tokens');
648
- return {
649
- accessToken: tokens.accessToken,
650
- idToken: tokens.idToken
651
- };
652
- } catch (error) {
653
- console.error('โŒ Failed to refresh Google tokens:', error);
654
-
655
- // If refresh fails, try to sign in again
656
- try {
657
- console.log('๐Ÿ”„ Refresh failed, attempting re-authentication...');
658
- const {
659
- GoogleSignin
660
- } = require('@react-native-google-signin/google-signin');
661
- const userInfo = await GoogleSignin.signIn();
662
- const tokens = await GoogleSignin.getTokens();
663
- console.log('โœ… Re-authentication successful');
664
- return {
665
- accessToken: tokens.accessToken,
666
- idToken: tokens.idToken
667
- };
668
- } catch (signInError) {
669
- console.error('โŒ Re-authentication also failed:', signInError);
670
- return null;
671
- }
672
- }
673
- };
674
-
675
- /**
676
- * ๐Ÿ”„ REFRESH YOUTUBE TOKENS
677
- */
678
- exports.refreshGoogleTokens = refreshGoogleTokens;
679
- const refreshYouTubeTokens = async () => {
680
- try {
681
- var _currentUser$user2;
682
- console.log('๐Ÿ”„ Refreshing YouTube tokens...');
683
-
684
- // Get fresh tokens from Google SDK
685
- const freshTokens = await refreshGoogleTokens();
686
- if (!freshTokens) {
687
- console.error('โŒ Failed to get fresh tokens from Google SDK');
688
- return false;
689
- }
690
-
691
- // Get current user info
692
- const {
693
- GoogleSignin
694
- } = require('@react-native-google-signin/google-signin');
695
- const currentUser = await GoogleSignin.getCurrentUser();
696
- if (!currentUser) {
697
- console.error('โŒ No current Google user found');
698
- return false;
699
- }
700
-
701
- // Get stored auth token
702
- const authToken = (await _asyncStorage.default.getItem('onairos_jwt_token')) || (await _asyncStorage.default.getItem('enoch_token')) || (await _asyncStorage.default.getItem('auth_token'));
703
- if (!authToken) {
704
- console.error('โŒ No auth token found for YouTube refresh');
705
- return false;
706
- }
707
-
708
- // Send refreshed tokens to backend
709
- const refreshResponse = await fetch('https://api2.onairos.uk/youtube/refresh-token', {
710
- method: 'POST',
711
- headers: {
712
- 'Content-Type': 'application/json',
713
- 'Authorization': `Bearer ${authToken}`
714
- },
715
- body: JSON.stringify({
716
- accessToken: freshTokens.accessToken,
717
- idToken: freshTokens.idToken,
718
- refreshToken: currentUser.serverAuthCode,
719
- userEmail: (_currentUser$user2 = currentUser.user) === null || _currentUser$user2 === void 0 ? void 0 : _currentUser$user2.email,
720
- tokenExpiry: new Date(Date.now() + 3600 * 1000).toISOString(),
721
- timestamp: new Date().toISOString()
722
- })
723
- });
724
- if (refreshResponse.ok) {
725
- const responseData = await refreshResponse.json();
726
- console.log('โœ… YouTube tokens refreshed successfully:', responseData);
727
- return true;
728
- } else {
729
- const errorData = await refreshResponse.text();
730
- console.error('โŒ YouTube token refresh failed:', refreshResponse.status, errorData);
731
- return false;
732
- }
733
- } catch (error) {
734
- console.error('โŒ Error refreshing YouTube tokens:', error);
735
- return false;
736
- }
737
- };
738
-
739
- /**
740
- * ๐ŸŽฏ ENHANCED OAUTH CALLBACK HANDLER
741
- */
742
- exports.refreshYouTubeTokens = refreshYouTubeTokens;
743
- const handleOAuthCallbackUrl = url => {
744
- try {
745
- console.log('๐Ÿ” Processing OAuth callback URL:', url);
746
-
747
- // Parse the URL
748
- const parsedUrl = new URL(url);
749
-
750
- // Extract platform and code
751
- const platform = parsedUrl.searchParams.get('platform') || parsedUrl.pathname.split('/').find(segment => ['instagram', 'youtube', 'reddit', 'pinterest', 'email'].includes(segment));
752
- const code = parsedUrl.searchParams.get('code');
753
- const error = parsedUrl.searchParams.get('error');
754
- if (error) {
755
- console.error('โŒ OAuth error in callback:', error);
756
- return {
757
- success: false
758
- };
759
- }
760
- if (code && platform) {
761
- console.log(`โœ… OAuth callback processed: ${platform} with code: ${code.substring(0, 10)}...`);
762
- return {
763
- platform,
764
- code,
765
- success: true
766
- };
767
- }
768
- console.warn('โš ๏ธ OAuth callback missing platform or code');
769
- return {
770
- success: false
771
- };
772
- } catch (error) {
773
- console.error('โŒ Error processing OAuth callback:', error);
774
- return {
775
- success: false
776
- };
777
- }
778
- };
779
-
780
- /**
781
- * ๐Ÿ”ง UPDATE GOOGLE CLIENT IDS
782
- * Allows apps to configure their own Google client IDs
783
- */
784
- exports.handleOAuthCallbackUrl = handleOAuthCallbackUrl;
785
- const updateGoogleClientIds = config => {
786
- console.log('๐Ÿ”ง Updating Google client IDs configuration');
787
- if (config.webClientId || config.iosClientId) {
788
- // Update the YouTube configuration
789
- PLATFORM_AUTH_CONFIG.youtube = {
790
- ...PLATFORM_AUTH_CONFIG.youtube,
791
- clientId: config.webClientId || PLATFORM_AUTH_CONFIG.youtube.clientId,
792
- iosClientId: config.iosClientId || PLATFORM_AUTH_CONFIG.youtube.iosClientId
793
- };
794
- console.log('โœ… Google client IDs updated successfully');
795
- console.log(' - Web Client ID:', config.webClientId ? config.webClientId.substring(0, 20) + '...' : 'not provided');
796
- console.log(' - iOS Client ID:', config.iosClientId ? config.iosClientId.substring(0, 20) + '...' : 'not provided');
797
- }
798
- };
799
-
800
- /**
801
- * Request email verification using developer API key
802
- * @param email Email address to verify
803
- * @param testMode Whether to use test mode
804
- * @returns Promise with verification result
805
- */
806
- exports.updateGoogleClientIds = updateGoogleClientIds;
807
- const requestEmailVerification = async (email, testMode = false) => {
808
- try {
809
- console.log('๐Ÿ“ง Requesting email verification for:', email);
810
- const response = await (0, _apiKeyService.makeDeveloperRequest)('/email/verification', {
811
- method: 'POST',
812
- body: JSON.stringify({
813
- email,
814
- action: 'request',
815
- testMode
816
- })
817
- });
818
- const data = await response.json();
819
- if (response.ok && data.success) {
820
- console.log('โœ… Email verification requested successfully');
821
- return {
822
- success: true,
823
- message: data.message || 'Verification code sent to your email'
824
- };
825
- } else {
826
- console.error('โŒ Email verification request failed:', data.error);
827
- return {
828
- success: false,
829
- error: data.error || 'Failed to send verification code'
830
- };
831
- }
832
- } catch (error) {
833
- console.error('โŒ Error requesting email verification:', error);
834
- return {
835
- success: false,
836
- error: error instanceof Error ? error.message : 'Network error'
837
- };
838
- }
839
- };
840
-
841
- /**
842
- * Verify email code and store JWT token
843
- * @param email Email address
844
- * @param code Verification code
845
- * @param testMode Whether to use test mode
846
- * @returns Promise with verification result and JWT token
847
- */
848
- exports.requestEmailVerification = requestEmailVerification;
849
- const verifyEmailCode = async (email, code, testMode = false) => {
850
- try {
851
- console.log('๐Ÿ” Verifying email code for:', email);
852
- const response = await (0, _apiKeyService.makeDeveloperRequest)('/email/verification', {
853
- method: 'POST',
854
- body: JSON.stringify({
855
- email,
856
- action: 'verify',
857
- code,
858
- testMode
859
- })
860
- });
861
- const data = await response.json();
862
- if (response.ok && data.success) {
863
- console.log('โœ… Email verification successful');
864
-
865
- // Store JWT token if received
866
- if (data.token || data.jwtToken) {
867
- const jwtToken = data.token || data.jwtToken;
868
- await (0, _apiKeyService.storeJWT)(jwtToken);
869
- console.log('๐ŸŽซ JWT token stored successfully');
870
- }
871
- return {
872
- success: true,
873
- message: data.message || 'Email verified successfully',
874
- existingUser: data.existingUser || false,
875
- token: data.token || data.jwtToken
876
- };
877
- } else {
878
- console.error('โŒ Email verification failed:', data.error);
879
- return {
880
- success: false,
881
- error: data.error || 'Invalid verification code'
882
- };
883
- }
884
- } catch (error) {
885
- console.error('โŒ Error verifying email code:', error);
886
- return {
887
- success: false,
888
- error: error instanceof Error ? error.message : 'Network error'
889
- };
890
- }
891
- };
892
-
893
- /**
894
- * Check email verification status
895
- * @param email Email address
896
- * @param testMode Whether to use test mode
897
- * @returns Promise with status result
898
- */
899
- exports.verifyEmailCode = verifyEmailCode;
900
- const checkEmailVerificationStatus = async (email, testMode = false) => {
901
- try {
902
- console.log('๐Ÿ” Checking email verification status for:', email);
903
- const response = await (0, _apiKeyService.makeDeveloperRequest)('/email/verification/status', {
904
- method: 'POST',
905
- body: JSON.stringify({
906
- email,
907
- testMode
908
- })
909
- });
910
- const data = await response.json();
911
- if (response.ok && data.success) {
912
- return {
913
- success: true,
914
- isPending: data.isPending || false
915
- };
916
- } else {
917
- return {
918
- success: false,
919
- error: data.error || 'Failed to check verification status'
920
- };
921
- }
922
- } catch (error) {
923
- console.error('โŒ Error checking email verification status:', error);
924
- return {
925
- success: false,
926
- error: error instanceof Error ? error.message : 'Network error'
927
- };
928
- }
929
- };
930
-
931
- /**
932
- * Disconnect a platform (uses developer API key)
933
- * @param platform Platform to disconnect
934
- * @param username Username associated with the platform
935
- * @returns Promise with disconnect result
936
- */
937
- exports.checkEmailVerificationStatus = checkEmailVerificationStatus;
938
- const disconnectPlatform = async (platform, username) => {
939
- try {
940
- console.log('๐Ÿ”Œ Disconnecting platform:', platform, 'for user:', username);
941
-
942
- // Make authenticated API call to disconnect platform
943
- const response = await (0, _apiKeyService.makeDeveloperRequest)('/revoke', {
944
- method: 'POST',
945
- body: JSON.stringify({
946
- platform,
947
- username
948
- })
949
- });
950
- const data = await response.json();
951
- if (response.ok && data.success) {
952
- console.log(`โœ… ${platform} disconnected successfully`);
953
- return {
954
- success: true
955
- };
956
- } else {
957
- console.error(`โŒ Failed to disconnect ${platform}:`, data.error);
958
- return {
959
- success: false,
960
- error: data.error || 'Failed to disconnect platform'
961
- };
962
- }
963
- } catch (error) {
964
- console.error(`โŒ Error disconnecting ${platform}:`, error);
965
- return {
966
- success: false,
967
- error: error instanceof Error ? error.message : 'Network error'
968
- };
969
- }
970
- };
971
-
972
- /**
973
- * Store PIN for user (uses JWT authentication and extracts username from JWT)
974
- * @param pin User PIN
975
- * @param username Optional username (if not provided, extracts from JWT)
976
- * @returns Promise with result
977
- */
978
- exports.disconnectPlatform = disconnectPlatform;
979
- const storePIN = async (pin, username) => {
980
- try {
981
- // Extract username from JWT if not provided
982
- const userToStore = username || (0, _apiKeyService.extractUsernameFromJWT)();
983
- if (!userToStore) {
984
- console.error('โŒ No username available - either provide username or ensure JWT token is valid');
985
- return {
986
- success: false,
987
- error: 'No username available for PIN storage'
988
- };
989
- }
990
- console.log('๐Ÿ” Storing PIN for user:', userToStore);
991
-
992
- // Make authenticated request to store PIN (using developer API key for now)
993
- const response = await (0, _apiKeyService.makeDeveloperRequest)('/store-pin/web', {
994
- method: 'POST',
995
- headers: {
996
- 'Content-Type': 'application/json'
997
- },
998
- body: JSON.stringify({
999
- username: userToStore,
1000
- pin
1001
- })
1002
- });
1003
- const data = await response.json();
1004
- if (response.ok && data.success) {
1005
- console.log('โœ… PIN stored successfully for user:', userToStore);
1006
- return {
1007
- success: true
1008
- };
1009
- } else {
1010
- console.error('โŒ Failed to store PIN:', data.error);
1011
- return {
1012
- success: false,
1013
- error: data.error || 'Failed to store PIN'
1014
- };
1015
- }
1016
- } catch (error) {
1017
- console.error('โŒ Error storing PIN:', error);
1018
- return {
1019
- success: false,
1020
- error: error instanceof Error ? error.message : 'Network error'
1021
- };
1022
- }
1023
- };
1024
-
1025
- /**
1026
- * ๐ŸŽซ GET STORED JWT TOKEN
1027
- * Helper function to retrieve stored JWT token from email verification or other sources
1028
- */
1029
- exports.storePIN = storePIN;
1030
- const getStoredJwtToken = async () => {
1031
- try {
1032
- console.log('๐ŸŽซ Retrieving stored JWT token...');
1033
-
1034
- // Try different storage keys in order of preference
1035
- const tokenSources = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token'];
1036
- for (const source of tokenSources) {
1037
- const token = await _asyncStorage.default.getItem(source);
1038
- if (token && token.length > 20) {
1039
- console.log(`โœ… JWT token found in ${source}:`, token.substring(0, 20) + '...');
1040
- return token;
1041
- }
1042
- }
1043
- console.warn('โš ๏ธ No JWT token found in storage');
1044
- return null;
1045
- } catch (error) {
1046
- console.error('โŒ Error retrieving JWT token:', error);
1047
- return null;
1048
- }
1049
- };
1050
-
1051
- /**
1052
- * ๐ŸŽซ CLEAR STORED TOKENS
1053
- * Helper function to clear all stored tokens (useful for logout)
1054
- */
1055
- exports.getStoredJwtToken = getStoredJwtToken;
1056
- const clearStoredTokens = async () => {
1057
- try {
1058
- console.log('๐Ÿงน Clearing all stored tokens...');
1059
- const tokenKeys = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token', 'email_verification_email', 'email_verification_request_id', 'email_verification_request_email', 'token_timestamp', 'user_pin_stored', 'pin_storage_timestamp'];
1060
- await Promise.all(tokenKeys.map(key => _asyncStorage.default.removeItem(key)));
1061
- console.log('โœ… All tokens cleared successfully');
1062
- } catch (error) {
1063
- console.error('โŒ Error clearing tokens:', error);
1064
- }
1065
- };
1066
- exports.clearStoredTokens = clearStoredTokens;
1067
- //# sourceMappingURL=platformAuthService.js.map
1
+ 'use strict';
2
+ // Onairos SDK - Asset Registry (auto-generated)
3
+ var __ONAIROS_REQ_REGISTRY__ = [
4
+ require("react-native"),
5
+ require("@react-native-google-signin/google-signin"),
6
+ require("@react-native-async-storage/async-storage"),
7
+ require("../config/api"),
8
+ require("./apiKeyService"),
9
+ require("./jwtStorageService")
10
+ ];
11
+ function __ONAIROS_REQ_FUNC__(i) { return __ONAIROS_REQ_REGISTRY__[i]; }
12
+ Object[_0x224f(0x0)](exports,_0x224f(0x1),{'value':!![]}),exports['verifyEmailCode']=exports[_0x224f(0x2)]=exports[_0x224f(0x3)]=exports[_0x224f(0x4)]=exports[_0x224f(0x5)]=exports[_0x224f(0x6)]=exports[_0x224f(0x7)]=exports[_0x224f(0x8)]=exports[_0x224f(0x9)]=exports[_0x224f(0xa)]=exports[_0x224f(0xb)]=exports[_0x224f(0xc)]=exports[_0x224f(0xd)]=exports[_0x224f(0xe)]=exports[_0x224f(0xf)]=exports['checkEmailVerificationStatus']=void 0x0;var _reactNative=__ONAIROS_REQ_FUNC__(0x0),_googleSignin=__ONAIROS_REQ_FUNC__(0x1),_asyncStorage=_interopRequireDefault(__ONAIROS_REQ_FUNC__(0x2)),_api=__ONAIROS_REQ_FUNC__(0x3),_apiKeyService=__ONAIROS_REQ_FUNC__(0x4),_jwtStorageService=__ONAIROS_REQ_FUNC__(0x5);function _interopRequireDefault(_0x2ac19c){return _0x2ac19c&&_0x2ac19c[_0x224f(0x1)]?_0x2ac19c:{'default':_0x2ac19c};}const getDeveloperAuthHeaders=()=>{const _0xa7aa31={'kbVle':function(_0x58bdaf,_0x6817dc){return _0x58bdaf!==_0x6817dc;},'FNLMW':function(_0x3c7aa8,_0xd84388){return _0x3c7aa8!==_0xd84388;},'oiCmY':'No\x20API\x20key\x20configured.\x20Please\x20initialize\x20the\x20SDK\x20with\x20a\x20valid\x20developer\x20API\x20key.'};if(!(0x0,_apiKeyService[_0x224f(0x10)])())throw new Error(_0x224f(0x11));const _0x1e7f44=(0x0,_apiKeyService['getApiConfig'])();if(!(_0xa7aa31['kbVle'](_0x1e7f44,null)&&_0xa7aa31[_0x224f(0x12)](_0x1e7f44,void 0x0)&&_0x1e7f44[_0x224f(0x13)]))throw new Error(_0xa7aa31[_0x224f(0x14)]);return{...(0x0,_api[_0x224f(0x15)])(),'Authorization':_0x224f(0x16)+_0x1e7f44['apiKey'],'X-SDK-Version':'3.0.72','X-SDK-Platform':'react-native'};},WEB_CLIENT_ID=_0x224f(0x17),IOS_CLIENT_ID=_0x224f(0x17),OAUTH_CONFIG={'instagram':{'authUrl':_0x224f(0x18),'clientId':_0x224f(0x19),'redirectUri':_0x224f(0x1a),'scope':'user_profile,user_media','responseType':_0x224f(0x1b),'hasNativeSDK':![]},'youtube':{'authUrl':_api['API_CONFIG'][_0x224f(0x1c)]+_0x224f(0x1d),'clientId':_0x224f(0x17),'redirectUri':'onairosevents://auth/callback','scope':'https://www.googleapis.com/auth/youtube.readonly','responseType':'code','hasNativeSDK':!![]},'reddit':{'authUrl':_api[_0x224f(0x1e)][_0x224f(0x1c)]+_0x224f(0x1f),'clientId':_0x224f(0x20),'redirectUri':_0x224f(0x1a),'scope':_0x224f(0x21),'responseType':'code','hasNativeSDK':![]},'pinterest':{'authUrl':_api[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x22),'clientId':_0x224f(0x23),'redirectUri':_0x224f(0x1a),'scope':_0x224f(0x24),'responseType':_0x224f(0x1b),'hasNativeSDK':![]},'facebook':{'authUrl':_0x224f(0x25),'clientId':_0x224f(0x26),'redirectUri':_0x224f(0x1a),'scope':_0x224f(0x27),'responseType':_0x224f(0x1b),'hasNativeSDK':![]},'linkedin':{'authUrl':_api[_0x224f(0x1e)]['BASE_URL']+'/linkedin/authorize','clientId':'','redirectUri':_0x224f(0x1a),'scope':_0x224f(0x28),'responseType':_0x224f(0x1b),'hasNativeSDK':![]},'gmail':{'authUrl':_api['API_CONFIG'][_0x224f(0x1c)]+'/gmail/authorize','clientId':_0x224f(0x29),'redirectUri':_0x224f(0x1a),'scope':_0x224f(0x2a),'responseType':_0x224f(0x1b),'hasNativeSDK':![]},'email':{'hasNativeSDK':![],'authUrl':_api[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x2b)},'chatgpt':{'authUrl':_0x224f(0x2c),'clientId':'','redirectUri':'','scope':'','responseType':'','hasNativeSDK':![]},'claude':{'authUrl':'https://claude.ai/login','clientId':'','redirectUri':'','scope':'','responseType':'','hasNativeSDK':![]},'gemini':{'authUrl':_0x224f(0x2d),'clientId':'','redirectUri':'','scope':'','responseType':'','hasNativeSDK':![]},'grok':{'authUrl':_0x224f(0x2e),'clientId':'','redirectUri':'','scope':'','responseType':'','hasNativeSDK':![]}},hasNativeSDK=_0xf2687c=>{const _0x4b831c={'jCVRg':function(_0x3d68b0,_0x406593){return _0x3d68b0===_0x406593;}};var _0x4a034d;return(_0x4b831c[_0x224f(0x2f)](_0x4a034d=OAUTH_CONFIG[_0xf2687c],null)||_0x4a034d===void 0x0?void 0x0:_0x4a034d[_0x224f(0xb)])||![];};exports['hasNativeSDK']=hasNativeSDK;const testApiConnectivity=async()=>{const _0x57ea58={'fbsug':function(_0x39b504,_0x30a900){return _0x39b504===_0x30a900;},'EfpSe':function(_0x139b51,_0x1800da){return _0x139b51===_0x1800da;},'GASzm':function(_0x228324,_0x1c76c4){return _0x228324===_0x1c76c4;},'ZhLMk':_0x224f(0x30),'IQWeA':_0x224f(0x31),'pUdnv':'โ„น๏ธ\x20No\x20token\x20cache\x20to\x20clear','DMxQr':_0x224f(0x32),'hBJfn':'โœ…\x20[YOUTUBE\x20AUTH]\x20Full\x20YouTube\x20connection\x20with\x20persistent\x20access','oiTgZ':_0x224f(0x33),'ArFTk':_0x224f(0x34),'uYneh':function(_0x3c8d47,_0x1eb3f0,_0x57fcd3){return _0x3c8d47(_0x1eb3f0,_0x57fcd3);},'ciTVR':'https://www.google.com','YUssL':_0x224f(0x35),'YVspn':_0x224f(0x36),'WKlBd':_0x224f(0x37),'nyHnr':'โœ…\x20[CONNECTIVITY]\x20Google\x20is\x20reachable\x20-\x20internet\x20is\x20working','scGAH':_0x224f(0x38),'LvGTL':function(_0x11c9cc,_0x56aa08){return _0x11c9cc===_0x56aa08;},'jEnQg':'Ipxhu','ZrEIq':_0x224f(0x39),'cDNCz':function(_0x141f3d,_0x4a530f,_0x4e863f){return _0x141f3d(_0x4a530f,_0x4e863f);},'KRvmD':function(_0x5e8193,_0x358d89){return _0x5e8193(_0x358d89);},'EnHfw':function(_0x505cf4,_0x4bb851){return _0x505cf4===_0x4bb851;},'HHcbB':_0x224f(0x3a),'QnpRk':_0x224f(0x3b),'uxaVk':_0x224f(0x3c),'WyaQj':'TuvYZ','wbrLc':_0x224f(0x3d),'NtCGj':function(_0x2752b9,_0x4f6a6d){return _0x2752b9!==_0x4f6a6d;},'ZWiOm':function(_0x40672c,_0x34fcb2){return _0x40672c!==_0x34fcb2;},'emKEd':_0x224f(0x3e),'GOzBB':_0x224f(0x3f),'tsfWq':function(_0x6312be,_0x5dad95){return _0x6312be!==_0x5dad95;},'tCqYM':_0x224f(0x40),'jnZcR':_0x224f(0x41),'zkXKg':_0x224f(0x42)},_0x10c211={'googleTest':null,'api2Test':null};try{var _0x365605,_0x5c1d42;console[_0x224f(0x43)](_0x57ea58[_0x224f(0x44)]),console[_0x224f(0x43)](_0x57ea58[_0x224f(0x45)]);try{const _0xd56c55=await _0x57ea58[_0x224f(0x46)](fetch,_0x57ea58[_0x224f(0x47)],{'method':_0x57ea58[_0x224f(0x48)],'mode':_0x57ea58[_0x224f(0x49)]});_0x10c211[_0x224f(0x4a)]={'success':!![],'status':_0x57ea58[_0x224f(0x4b)]},console['log'](_0x57ea58[_0x224f(0x4c)]);}catch(_0x20f6f9){_0x10c211['googleTest']={'success':![],'error':_0x20f6f9[_0x224f(0x4d)]},console[_0x224f(0x4e)](_0x57ea58[_0x224f(0x4f)],_0x20f6f9[_0x224f(0x4d)]);}console[_0x224f(0x43)]('๐ŸŒ\x20[CONNECTIVITY]\x20Test\x202:\x20Checking\x20API\x20server...');try{if(_0x57ea58[_0x224f(0x50)](_0x57ea58[_0x224f(0x51)],_0x57ea58[_0x224f(0x52)])){var _0x53e08b,_0x49a703;_0x4d73c8[_0x224f(0x43)](_0x224f(0x53),_0x201d93),_0x533698=(_0x57ea58[_0x224f(0x54)](_0x53e08b=_0x21e32f['data'],null)||_0x57ea58[_0x224f(0x55)](_0x53e08b,void 0x0)||(_0x53e08b=_0x53e08b[_0x224f(0x56)])===null||_0x53e08b===void 0x0?void 0x0:_0x53e08b[_0x224f(0x57)])||(_0x57ea58[_0x224f(0x55)](_0x49a703=_0x46014f['data'],null)||_0x57ea58['EfpSe'](_0x49a703,void 0x0)||_0x57ea58[_0x224f(0x54)](_0x49a703=_0x49a703[_0x224f(0x56)],null)||_0x57ea58[_0x224f(0x58)](_0x49a703,void 0x0)?void 0x0:_0x49a703[_0x224f(0x59)])||_0x57ea58['ZhLMk'];}else{const _0x2b88db=new AbortController(),_0x19fd74=_0x57ea58[_0x224f(0x5a)](setTimeout,()=>_0x2b88db['abort'](),0x7530),_0x3d2d43=await _0x57ea58['cDNCz'](fetch,_api[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x5b),{'method':'GET','signal':_0x2b88db[_0x224f(0x5c)]});_0x57ea58[_0x224f(0x5d)](clearTimeout,_0x19fd74);const _0x4c3f30=await _0x3d2d43[_0x224f(0x5e)]()['catch'](()=>_0x224f(0x5f));_0x10c211[_0x224f(0x60)]={'success':_0x3d2d43['ok'],'status':_0x3d2d43[_0x224f(0x61)],'statusText':_0x3d2d43[_0x224f(0x62)],'response':_0x4c3f30[_0x224f(0x63)](0x0,0xc8)},_0x3d2d43['ok']?_0x57ea58[_0x224f(0x64)](_0x57ea58[_0x224f(0x65)],_0x57ea58['QnpRk'])?(_0x7ff0f0[_0x224f(0x43)](_0x224f(0x66)),_0x577222['log'](_0x57ea58['IQWeA'],_0x41dae1[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67))):console[_0x224f(0x43)](_0x57ea58[_0x224f(0x68)]):_0x57ea58[_0x224f(0x69)]===_0x57ea58[_0x224f(0x69)]?console[_0x224f(0x43)]('โš ๏ธ\x20[CONNECTIVITY]\x20API\x20server\x20responded\x20with\x20status:\x20'+_0x3d2d43[_0x224f(0x61)]):_0x1308ba['log'](_0x57ea58[_0x224f(0x6a)]);}}catch(_0xaceb85){_0x10c211[_0x224f(0x60)]={'success':![],'error':_0xaceb85[_0x224f(0x4d)],'name':_0xaceb85[_0x224f(0x57)]},console['error'](_0x57ea58[_0x224f(0x6b)],_0xaceb85['message']);}if((_0x365605=_0x10c211[_0x224f(0x60)])!==null&&_0x57ea58['NtCGj'](_0x365605,void 0x0)&&_0x365605['success'])return{'success':!![],'message':_0x224f(0x6c),'details':_0x10c211};else{if(_0x57ea58[_0x224f(0x6d)](_0x5c1d42=_0x10c211[_0x224f(0x4a)],null)&&_0x57ea58['ZWiOm'](_0x5c1d42,void 0x0)&&_0x5c1d42[_0x224f(0x6e)]){if(_0x57ea58[_0x224f(0x6d)](_0x57ea58[_0x224f(0x6f)],_0x57ea58['emKEd']))_0x28be2b['log'](_0x57ea58['DMxQr']),_0x4ee0dc['log'](_0x57ea58[_0x224f(0x70)]);else return{'success':![],'message':_0x57ea58[_0x224f(0x71)],'details':_0x10c211};}else return _0x57ea58[_0x224f(0x72)](_0x57ea58[_0x224f(0x73)],_0x57ea58[_0x224f(0x73)])?(_0x2f0415[_0x224f(0x43)]('โœ…\x20'+_0x4794d4+_0x224f(0x74)),!![]):{'success':![],'message':_0x57ea58['jnZcR'],'details':_0x10c211};}}catch(_0x9bf985){return console[_0x224f(0x4e)](_0x57ea58[_0x224f(0x75)],_0x9bf985[_0x224f(0x4d)]),{'success':![],'message':_0x224f(0x76)+_0x9bf985[_0x224f(0x4d)],'details':{'error':_0x9bf985[_0x224f(0x4d)],'results':_0x10c211}};}};exports[_0x224f(0x3)]=testApiConnectivity;const initiateOAuth=async(_0x1443d3,_0xa3e571)=>{const _0x57ae3b={'zAFrX':_0x224f(0x77),'oSFet':'๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20REFRESH\x20TOKEN\x20SENT\x20TO\x20BACKEND:','QFGdX':_0x224f(0x78),'icEgI':_0x224f(0x79),'KCsTg':_0x224f(0x7a),'LNBbo':_0x224f(0x7b),'cEUys':_0x224f(0x7c),'epcnG':'โš ๏ธ\x20Failed\x20to\x20fetch\x20YouTube\x20channel\x20info:','LLLCY':function(_0x3e5e9c,_0xfbc852){return _0x3e5e9c===_0xfbc852;},'uYGdF':function(_0xec18f3,_0x3f212f){return _0xec18f3===_0x3f212f;},'eEmvm':function(_0x12cec3,_0x467f62){return _0x12cec3===_0x467f62;},'JiEIr':'tVpfG','ZoOdl':'YBTrR','vAvxN':_0x224f(0x7d),'mVmMH':'๐Ÿ’ก\x20Check\x20Google\x20Sign-In\x20configuration:\x20offlineAccess,\x20forceCodeForRefreshToken','nTILS':_0x224f(0x7e),'DQbIr':_0x224f(0x7f),'LGHbb':_0x224f(0x80),'Euyvp':'email','sEfMP':function(_0xcd5dc0,_0x5ec09f){return _0xcd5dc0===_0x5ec09f;},'sfOgk':_0x224f(0x81),'FJpeB':_0x224f(0x82),'KvOLE':function(_0x33047f,_0x59241c){return _0x33047f!==_0x59241c;},'ipSpP':'raqqY','Fzvud':_0x224f(0x83),'gECTL':function(_0x137d1d,_0x62e651,_0x2b32db){return _0x137d1d(_0x62e651,_0x2b32db);},'jKqcU':function(_0x56f22c,_0x1fedfc){return _0x56f22c(_0x1fedfc);},'RUHdq':'AKBgv','lkrqX':function(_0x479155,_0x1b23f8){return _0x479155===_0x1b23f8;},'vEHAy':_0x224f(0x84),'xhnaK':'dOUfg','KDRzL':_0x224f(0x85),'kpYKp':'\x20\x20\x205.\x20iOS\x20simulator\x20network\x20sandbox\x20issue\x20-\x20try\x20on\x20physical\x20device','EikYD':_0x224f(0x86),'DGkGg':_0x224f(0x87),'wLxfX':_0x224f(0x88)};try{console[_0x224f(0x43)](_0x224f(0x89)+_0x1443d3),console[_0x224f(0x43)](_0x224f(0x8a)+_reactNative[_0x224f(0x8b)]['OS']+_0x224f(0x8c)+_reactNative[_0x224f(0x8b)]['Version']);if(_0x1443d3===_0x57ae3b['Euyvp'])return console[_0x224f(0x43)](_0x224f(0x8d)),_api['API_CONFIG'][_0x224f(0x1c)]+_0x224f(0x8e);let _0x135a8c;try{_0x57ae3b[_0x224f(0x8f)](_0x57ae3b[_0x224f(0x90)],_0x57ae3b['FJpeB'])?_0x14e231[_0x224f(0x43)]('โ„น๏ธ\x20Token\x20clearing\x20failed\x20or\x20not\x20needed:',_0x2e2324):(_0x135a8c=await(0x0,_api[_0x224f(0x91)])(),console[_0x224f(0x43)](_0x224f(0x92)));}catch(_0x32538f){if(_0x57ae3b[_0x224f(0x93)](_0x57ae3b[_0x224f(0x94)],_0x57ae3b[_0x224f(0x95)]))return console['error'](_0x224f(0x96)+_0x1443d3+_0x224f(0x97)),console[_0x224f(0x4e)]('โŒ\x20[OAUTH]\x20Please\x20log\x20in\x20first\x20before\x20connecting\x20platforms'),null;else{const _0x137cd4=_0x57ae3b[_0x224f(0x98)][_0x224f(0x99)]('|');let _0x279c21=0x0;while(!![]){switch(_0x137cd4[_0x279c21++]){case'0':_0x2c43f0['log'](_0x57ae3b[_0x224f(0x9a)]);continue;case'1':_0x303a5a[_0x224f(0x43)](_0x224f(0x9b),_0x1d39be[_0x224f(0x9c)]('4/')?_0x57ae3b[_0x224f(0x9d)]:_0x57ae3b['icEgI']);continue;case'2':_0x1d270d[_0x224f(0x43)](_0x224f(0x9e));continue;case'3':_0x2d3e55[_0x224f(0x43)](_0x57ae3b[_0x224f(0x9f)],_0x78ab6e);continue;case'4':_0xcefdcf[_0x224f(0x43)](_0x57ae3b[_0x224f(0xa0)]);continue;case'5':_0x4f6d50['log'](_0x224f(0xa1),_0x296782[_0x224f(0xa2)]);continue;case'6':_0x28ad46[_0x224f(0x43)](_0x57ae3b[_0x224f(0xa3)],_0x1ed53c['length']);continue;}break;}}}const _0x1e31dd=_api['API_CONFIG'][_0x224f(0x1c)]+'/'+_0x1443d3+_0x224f(0xa4);console[_0x224f(0x43)](_0x224f(0xa5)+_0x1e31dd),console[_0x224f(0x43)]('๐Ÿ”—\x20[OAUTH]\x20About\x20to\x20make\x20fetch\x20request...');const _0x2f768b={'platform':_0x1443d3,'timestamp':new Date()[_0x224f(0xa6)]()};console[_0x224f(0x43)](_0x224f(0xa7),_0x2f768b);const _0x17a92e=new AbortController(),_0xab6160=setTimeout(()=>{const _0x13e0d9={'Qgrvw':_0x57ae3b[_0x224f(0xa8)],'Siscj':function(_0x512b86,_0x5718f3){return _0x57ae3b['LLLCY'](_0x512b86,_0x5718f3);},'tmfzP':function(_0x2cd841,_0x25dbec){return _0x57ae3b['uYGdF'](_0x2cd841,_0x25dbec);},'qUZPH':function(_0x55de6e,_0x44e152){return _0x57ae3b[_0x224f(0xa9)](_0x55de6e,_0x44e152);},'hUIqg':function(_0x482b40,_0x3e5609){return _0x57ae3b['LLLCY'](_0x482b40,_0x3e5609);},'EFNXG':_0x224f(0x30)};if(_0x57ae3b['JiEIr']!==_0x57ae3b[_0x224f(0xaa)])console[_0x224f(0x43)](_0x224f(0xab)+_0x1443d3+'\x20-\x20aborting'),_0x17a92e[_0x224f(0xac)]();else{var _0x145ec8,_0x2a22fe;_0x498846[_0x224f(0x43)](_0x13e0d9[_0x224f(0xad)],_0x415ebf['status']),_0x56df6c=((_0x145ec8=_0x12aa51[_0x224f(0xae)])===null||_0x13e0d9[_0x224f(0xaf)](_0x145ec8,void 0x0)||_0x13e0d9[_0x224f(0xb0)](_0x145ec8=_0x145ec8[_0x224f(0x56)],null)||_0x13e0d9[_0x224f(0xb0)](_0x145ec8,void 0x0)?void 0x0:_0x145ec8[_0x224f(0x57)])||(_0x13e0d9[_0x224f(0xb0)](_0x2a22fe=_0x49f694[_0x224f(0xae)],null)||_0x13e0d9[_0x224f(0xaf)](_0x2a22fe,void 0x0)||_0x13e0d9['qUZPH'](_0x2a22fe=_0x2a22fe[_0x224f(0x56)],null)||_0x13e0d9['hUIqg'](_0x2a22fe,void 0x0)?void 0x0:_0x2a22fe[_0x224f(0x59)])||_0x13e0d9[_0x224f(0xb1)];}},0x7530),_0x528ce8=await _0x57ae3b[_0x224f(0xb2)](fetch,_0x1e31dd,{'method':'POST','headers':_0x135a8c,'body':JSON['stringify'](_0x2f768b),'signal':_0x17a92e[_0x224f(0x5c)]});_0x57ae3b[_0x224f(0xb3)](clearTimeout,_0xab6160),console[_0x224f(0x43)](_0x224f(0xb4)+_0x528ce8['status']+'\x20'+_0x528ce8[_0x224f(0x62)]);if(!_0x528ce8['ok']){const _0x49dcb6=await _0x528ce8[_0x224f(0x5e)]();return console[_0x224f(0x4e)]('โŒ\x20[OAUTH]\x20Error\x20initiating\x20OAuth\x20for\x20'+_0x1443d3+':\x20'+_0x528ce8[_0x224f(0x61)]+_0x224f(0xb5)+_0x49dcb6),null;}const _0x1c3390=await _0x528ce8[_0x224f(0xb6)]();console['log']('๐Ÿ“‹\x20[OAUTH]\x20Response\x20data\x20for\x20'+_0x1443d3+':',_0x1c3390);const _0x28bb4f=_0x1443d3+_0x224f(0xb7),_0x39fb0f=_0x1c3390[_0x28bb4f]||_0x1c3390[_0x224f(0xb8)]||null;return console[_0x224f(0x43)](_0x224f(0xb9)+_0x1443d3+_0x224f(0xba)+_0x28bb4f+'):',_0x39fb0f),_0x39fb0f;}catch(_0x3e2cfd){if(_0x57ae3b[_0x224f(0x93)](_0x57ae3b[_0x224f(0xbb)],_0x57ae3b['RUHdq']))_0x361bc1[_0x224f(0x4e)](_0x224f(0xbc)),_0x1626e1[_0x224f(0x4e)](_0x57ae3b[_0x224f(0xbd)]),_0x443692[_0x224f(0x4e)](_0x57ae3b[_0x224f(0xbe)]),_0x16514a[_0x224f(0xbf)](_0x57ae3b[_0x224f(0xc0)]);else{var _0xd37e38;if(_0x57ae3b[_0x224f(0xc1)](_0x3e2cfd[_0x224f(0x57)],_0x57ae3b[_0x224f(0xc2)])){if(_0x224f(0xc3)!==_0x57ae3b[_0x224f(0xc4)])console[_0x224f(0x4e)](_0x224f(0xc5)+_0x1443d3+_0x224f(0xc6));else return{'success':![],'error':_0x2f8d87[_0x224f(0x4d)]||_0x57ae3b[_0x224f(0xc7)]};}else{if(_0x57ae3b['KvOLE'](_0xd37e38=_0x3e2cfd['message'],null)&&_0x57ae3b[_0x224f(0x93)](_0xd37e38,void 0x0)&&_0xd37e38[_0x224f(0xc8)](_0x224f(0xc9))){if(_0x57ae3b[_0x224f(0xca)](_0x224f(0xcb),_0x57ae3b[_0x224f(0xcc)]))return _0x1709a6['error'](_0x224f(0xcd),_0x1cd908),null;else{const _0x1199a1=_0x224f(0xce)[_0x224f(0x99)]('|');let _0x457d01=0x0;while(!![]){switch(_0x1199a1[_0x457d01++]){case'0':console[_0x224f(0x4e)](_0x57ae3b[_0x224f(0xcf)]);continue;case'1':console[_0x224f(0x4e)](_0x224f(0xd0));continue;case'2':console[_0x224f(0x4e)]('โŒ\x20[OAUTH]\x20Network\x20request\x20failed\x20for\x20'+_0x1443d3+_0x224f(0xd1));continue;case'3':console[_0x224f(0x4e)]('\x20\x20\x204.\x20SSL/TLS\x20certificate\x20issue');continue;case'4':console['error'](_0x57ae3b['EikYD']);continue;case'5':console[_0x224f(0x4e)](_0x57ae3b[_0x224f(0xd2)]);continue;}break;}}}else{if(_0x57ae3b[_0x224f(0x8f)](_0x57ae3b['wLxfX'],_0x224f(0xd3)))return _0x152fec[_0x224f(0x4e)](_0x57ae3b['LGHbb']),![];else console[_0x224f(0x4e)](_0x224f(0xd4)+_0x1443d3+':',_0x3e2cfd);}}return null;}}};exports['initiateOAuth']=initiateOAuth;const initializeGoogleSignIn=()=>{const _0x4d6966={'lrJkQ':'https://www.googleapis.com/auth/youtube.readonly','qdycI':_0x224f(0xd5),'xAemG':_0x224f(0xd6),'pdQWK':_0x224f(0x59)};_googleSignin[_0x224f(0xd7)][_0x224f(0xd8)]({'webClientId':WEB_CLIENT_ID,'iosClientId':IOS_CLIENT_ID,'offlineAccess':!![],'forceCodeForRefreshToken':!![],'scopes':[_0x4d6966[_0x224f(0xd9)],_0x4d6966['qdycI'],_0x4d6966[_0x224f(0xda)],_0x4d6966[_0x224f(0xdb)]],'hostedDomain':'','accountName':''});},forceYouTubeReconnectionWithConsent=async _0x15c6e1=>{const _0x53e14f={'bvEpc':function(_0x2b168f,_0x5027bf){return _0x2b168f===_0x5027bf;},'VRxxR':function(_0x2a27e2,_0x5e3dea){return _0x2a27e2===_0x5e3dea;},'jfixL':function(_0x38fe51,_0x4034cf){return _0x38fe51===_0x4034cf;},'UXCkz':function(_0x468502,_0x4f235f){return _0x468502===_0x4f235f;},'RUFBI':'Unknown\x20Channel','TIyIR':_0x224f(0xdc),'UHvlp':function(_0x249bf2,_0x1d6a75){return _0x249bf2===_0x1d6a75;},'hWExU':_0x224f(0xdd),'RAxfQ':_0x224f(0x3c),'Sxdll':_0x224f(0xde),'OrqoP':_0x224f(0xdf),'yUxrO':_0x224f(0xe0),'XimXE':_0x224f(0xe1),'foDUY':_0x224f(0xe2),'uTJKr':_0x224f(0xe3),'EHFNF':_0x224f(0xe4),'bNTPa':'โŒ\x20[YOUTUBE\x20AUTH]\x20Username\x20is\x20required\x20for\x20YouTube\x20authentication','iWIpZ':_0x224f(0xe5),'NWsll':_0x224f(0xe6),'kJxaQ':_0x224f(0xe7),'eiXjP':_0x224f(0xe8),'DUWpE':_0x224f(0xe9),'BumnW':function(_0x1a8ad6,_0x51650d){return _0x1a8ad6!==_0x51650d;},'qGWCR':_0x224f(0xea),'Qmplj':_0x224f(0xeb),'boZSS':function(_0x4ad292,_0x5e567a){return _0x4ad292===_0x5e567a;},'WxhhT':_0x224f(0xec),'IKxzW':_0x224f(0xed),'UQGoB':_0x224f(0xee),'Gqpuf':function(_0x5817dc,_0x4d9e2b){return _0x5817dc!==_0x4d9e2b;},'fDrYI':_0x224f(0xef),'oVvOT':_0x224f(0xf0),'ioJTD':'Xrwow','gxIvP':_0x224f(0xf1),'YktdU':_0x224f(0xf2),'DuwQl':_0x224f(0xd6),'cXCAY':_0x224f(0x59),'xNmrA':_0x224f(0xf3),'feuxu':'โœ…\x20Sign-in\x20completed\x20-\x20checking\x20for\x20refresh\x20token...','OSgPE':_0x224f(0xf4),'rACsD':function(_0xba9462,_0x490c3b){return _0xba9462===_0x490c3b;},'jubIh':'๐Ÿ“‹\x20FULL\x20currentUser\x20object\x20from\x20forceYouTubeReconnectionWithConsent:','GwYKL':_0x224f(0xf5),'tbPQt':_0x224f(0xf6),'fMuAa':_0x224f(0xf7),'ZXigS':'-\x20ID\x20token:','bxBSE':'Present','ZhYcX':_0x224f(0xf8),'bjqpr':function(_0x34533b,_0x49b484){return _0x34533b!==_0x49b484;},'VyoCu':function(_0x6fb7b,_0x28d698){return _0x6fb7b===_0x28d698;},'HxyAl':function(_0x54ef8e,_0x4213df){return _0x54ef8e===_0x4213df;},'OTOAc':_0x224f(0xf9),'PCMvo':_0x224f(0x78),'ltsAm':'refreshToken','skALY':_0x224f(0xfa),'fWKza':function(_0xbf43b2,_0x1ca743){return _0xbf43b2!==_0x1ca743;},'vvYkk':_0x224f(0xfb),'ygZKz':_0x224f(0xfc),'NrDCc':function(_0x229916,_0x490e7a,_0x4d3159){return _0x229916(_0x490e7a,_0x4d3159);},'uLlcS':_0x224f(0xfd),'YVvnL':_0x224f(0xfe),'WWgXH':_0x224f(0xff),'RBeDO':_0x224f(0x100),'jghfx':function(_0x159e7c,_0x3aec14){return _0x159e7c===_0x3aec14;},'kNqHp':function(_0x1cf2ce,_0x594df1){return _0x1cf2ce===_0x594df1;},'mfsCY':function(_0x135855,_0x2aa1ef){return _0x135855===_0x2aa1ef;},'QgrYu':'โš ๏ธ\x20Failed\x20to\x20fetch\x20YouTube\x20channel\x20info:','krmDn':function(_0x3f6b43,_0x2e62da){return _0x3f6b43===_0x2e62da;},'XsUgk':function(_0x162b5b,_0x3ad580){return _0x162b5b===_0x3ad580;},'zjWRt':function(_0x2ab40f,_0xf38bf4){return _0x2ab40f===_0xf38bf4;},'BRppP':function(_0x4528b8,_0x346616){return _0x4528b8===_0x346616;},'CGyBf':function(_0x133fe4,_0x83dc37){return _0x133fe4===_0x83dc37;},'OwUMd':_0x224f(0x53),'yGUvn':function(_0x3be6e6,_0x238c06){return _0x3be6e6===_0x238c06;},'VZVYt':'NIsZh','fJENs':_0x224f(0x101),'WgWjp':'youtube','EUaAu':function(_0x4b0f18,_0x21c8e6){return _0x4b0f18===_0x21c8e6;},'MkTPP':function(_0x1477a9,_0x191b5f){return _0x1477a9===_0x191b5f;},'mmsww':function(_0x2fcd95,_0x96695f){return _0x2fcd95===_0x96695f;},'gHKZh':function(_0x3fd09d,_0x2e02d8){return _0x3fd09d===_0x2e02d8;},'GUpZy':function(_0x456819,_0x5bea00){return _0x456819===_0x5bea00;},'dXrIJ':function(_0x1b1b43,_0x505e30){return _0x1b1b43+_0x505e30;},'HOCSJ':_0x224f(0x102),'BpHkx':'๐Ÿ“ค\x20Sending\x20comprehensive\x20payload\x20with\x20REFRESH\x20TOKEN\x20to\x20backend:','efpqF':function(_0x5b6569,_0x314d05){return _0x5b6569===_0x314d05;},'hPcoN':function(_0x3d38aa,_0x474eeb){return _0x3d38aa===_0x474eeb;},'vtnJS':_0x224f(0x103),'hbNrM':_0x224f(0x104),'GKdyf':_0x224f(0x105),'XdYli':function(_0xbd3eb9,_0x4b9cbe){return _0xbd3eb9===_0x4b9cbe;},'qlWgs':function(_0x5a6fcf,_0x137fbf){return _0x5a6fcf===_0x137fbf;},'RkXjW':'๐Ÿš€\x20[YOUTUBE\x20REAUTH]\x20FULL\x20PAYLOAD:','UONvM':_0x224f(0x106),'GWnGJ':_0x224f(0x107),'niBkU':_0x224f(0x108),'yHQZb':function(_0x53e8de,_0x2b2f15){return _0x53e8de===_0x2b2f15;},'ucNyt':function(_0x549ccc,_0x2d703d){return _0x549ccc===_0x2d703d;},'ySKKJ':function(_0x28e0c2,_0x3e8d00){return _0x28e0c2===_0x3e8d00;},'qfSNw':_0x224f(0x109),'ubArX':'๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Mode:\x20Temporary\x20(expires\x20~1\x20hour)','RNOZZ':_0x224f(0x10a),'hMDGu':_0x224f(0x10b),'HiOKx':'๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20length:','RAPsI':_0x224f(0x7a),'XbdyT':'๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20type:','ClPwb':_0x224f(0xa1),'cnWxr':_0x224f(0x10c),'hyWgV':_0x224f(0x10d),'rarat':_0x224f(0x10e),'HpXXv':function(_0x1d756e,_0x49a6d9){return _0x1d756e!==_0x49a6d9;},'mHoIy':_0x224f(0x10f),'vJpzt':function(_0x332a1c,_0x5da72a,_0x506f87){return _0x332a1c(_0x5da72a,_0x506f87);},'yQjVw':_0x224f(0x110),'BHZjS':_0x224f(0x111),'RaLyJ':_0x224f(0x112),'VDmbI':_0x224f(0x113),'XlLUF':_0x224f(0x114),'RxHlB':'OSzvd','IOwwE':'0|5|6|1|2|4|3','tGaQj':'โŒ\x20CRITICAL:\x20No\x20refresh\x20token\x20even\x20after\x20consent\x20screen','HHNeF':_0x224f(0x115),'tUaLj':_0x224f(0x116),'hctym':_0x224f(0x117),'BeKRk':function(_0x47f5de,_0x1ec929){return _0x47f5de===_0x1ec929;},'hMKFV':_0x224f(0x118),'MsLPx':_0x224f(0x119)};try{var _0x42d06e,_0x2ba6b6,_0x4cf3e9;console['log'](_0x224f(0x11a)),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x11b)],_0x15c6e1);try{if(_0x53e14f[_0x224f(0x11c)](_0x53e14f[_0x224f(0x11d)],_0x53e14f[_0x224f(0x11d)])){var _0x5a2e35,_0x40e380;_0x12e555['log']('โš ๏ธ\x20Error\x20fetching\x20YouTube\x20channel\x20info:',_0x2266ab),_0x2528f9=(_0x53e14f[_0x224f(0x11e)](_0x5a2e35=_0x5f0f01[_0x224f(0xae)],null)||_0x53e14f[_0x224f(0x11f)](_0x5a2e35,void 0x0)||_0x53e14f[_0x224f(0x11e)](_0x5a2e35=_0x5a2e35[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x120)](_0x5a2e35,void 0x0)?void 0x0:_0x5a2e35[_0x224f(0x57)])||((_0x40e380=_0x9dd836[_0x224f(0xae)])===null||_0x53e14f['bvEpc'](_0x40e380,void 0x0)||_0x53e14f[_0x224f(0x121)](_0x40e380=_0x40e380[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x120)](_0x40e380,void 0x0)?void 0x0:_0x40e380[_0x224f(0x59)])||_0x53e14f['RUFBI'];}else await _googleSignin[_0x224f(0xd7)]['signOut'](),console[_0x224f(0x43)](_0x53e14f['Qmplj']);}catch(_0x166def){if(_0x53e14f[_0x224f(0x122)](_0x53e14f['WxhhT'],_0x53e14f['IKxzW'])){var _0x3e3c3a,_0x4b2a55;_0x391232[_0x224f(0x43)](_0x53e14f['TIyIR']),_0x4b02b0=((_0x3e3c3a=_0x1ede97['data'])===null||_0x53e14f['VRxxR'](_0x3e3c3a,void 0x0)||_0x53e14f[_0x224f(0x120)](_0x3e3c3a=_0x3e3c3a['user'],null)||_0x53e14f['UHvlp'](_0x3e3c3a,void 0x0)?void 0x0:_0x3e3c3a[_0x224f(0x57)])||((_0x4b2a55=_0x325dcd[_0x224f(0xae)])===null||_0x4b2a55===void 0x0||_0x53e14f[_0x224f(0x11f)](_0x4b2a55=_0x4b2a55['user'],null)||_0x53e14f[_0x224f(0x11e)](_0x4b2a55,void 0x0)?void 0x0:_0x4b2a55[_0x224f(0x59)])||_0x53e14f['hWExU'];}else console[_0x224f(0x43)](_0x53e14f[_0x224f(0x123)],_0x166def);}try{if(_0x53e14f['Gqpuf'](_0x53e14f[_0x224f(0x124)],_0x53e14f['oVvOT'])){const _0x463352=await _googleSignin[_0x224f(0xd7)]['getTokens']();_0x463352['accessToken']&&(_0x53e14f[_0x224f(0x125)]===_0x224f(0x126)?(await _googleSignin[_0x224f(0xd7)][_0x224f(0x127)](_0x463352[_0x224f(0x128)]),console[_0x224f(0x43)](_0x224f(0x129))):_0x534fb5['log'](_0x53e14f[_0x224f(0x12a)]));}else _0x105d2d[_0x224f(0x43)](_0x53e14f['Sxdll']),_0x24ea12[_0x224f(0x43)](_0x224f(0x12b)),_0x249f2e[_0x224f(0x43)](_0x53e14f['OrqoP']);}catch(_0x16e7a8){console[_0x224f(0x43)](_0x53e14f['gxIvP']);}console[_0x224f(0x43)](_0x224f(0x12c)),_googleSignin[_0x224f(0xd7)][_0x224f(0xd8)]({'webClientId':WEB_CLIENT_ID,'iosClientId':IOS_CLIENT_ID,'offlineAccess':!![],'forceCodeForRefreshToken':!![],'scopes':[_0x53e14f['YktdU'],_0x224f(0xd5),_0x53e14f[_0x224f(0x12d)],_0x53e14f[_0x224f(0x12e)]],'hostedDomain':'','accountName':''}),await _googleSignin[_0x224f(0xd7)][_0x224f(0x12f)](),console[_0x224f(0x43)]('โœ…\x20Play\x20Services\x20available'),console[_0x224f(0x43)](_0x224f(0x130)),console[_0x224f(0x43)](_0x53e14f['xNmrA']);const _0x598080=await _googleSignin[_0x224f(0xd7)][_0x224f(0x131)]();console['log'](_0x53e14f[_0x224f(0x132)]),console['log'](_0x53e14f[_0x224f(0x133)],_0x53e14f[_0x224f(0x11e)](_0x42d06e=_0x598080[_0x224f(0xae)],null)||_0x53e14f['boZSS'](_0x42d06e,void 0x0)||_0x53e14f[_0x224f(0x120)](_0x42d06e=_0x42d06e[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x134)](_0x42d06e,void 0x0)?void 0x0:_0x42d06e[_0x224f(0x59)]);const _0x11524d=await _googleSignin[_0x224f(0xd7)][_0x224f(0x135)](),_0x23e353=await _googleSignin[_0x224f(0xd7)]['getCurrentUser']();console[_0x224f(0x43)](_0x224f(0x136)),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x598080,null,0x2)),console['log']('๐Ÿ“‹\x20FULL\x20tokens\x20object\x20from\x20forceYouTubeReconnectionWithConsent:'),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x11524d,null,0x2)),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x138)]),console[_0x224f(0x43)](JSON['stringify'](_0x23e353,null,0x2)),console['log'](_0x53e14f[_0x224f(0x139)]),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x13a)],_0x11524d[_0x224f(0x128)]?_0x11524d[_0x224f(0x128)][_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0x53e14f[_0x224f(0x13b)]),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x13c)],_0x11524d[_0x224f(0x13d)]?_0x53e14f['bxBSE']:_0x224f(0xf7)),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x13e)],_0x53e14f['Gqpuf'](_0x2ba6b6=_0x598080[_0x224f(0xae)],null)&&_0x53e14f[_0x224f(0x13f)](_0x2ba6b6,void 0x0)&&_0x2ba6b6[_0x224f(0x78)]?_0x598080[_0x224f(0xae)][_0x224f(0x78)]['substring'](0x0,0x14)+_0x224f(0x67):_0x53e14f[_0x224f(0x13b)]),console['log'](_0x224f(0x140),_0x53e14f[_0x224f(0x141)](_0x23e353,null)&&_0x53e14f['Gqpuf'](_0x23e353,void 0x0)&&_0x23e353['serverAuthCode']?_0x23e353['serverAuthCode']['substring'](0x0,0x14)+_0x224f(0x67):_0x53e14f[_0x224f(0x13b)]);const _0x4932b3=((_0x4cf3e9=_0x598080[_0x224f(0xae)])===null||_0x53e14f[_0x224f(0x142)](_0x4cf3e9,void 0x0)?void 0x0:_0x4cf3e9[_0x224f(0x78)])||(_0x53e14f['HxyAl'](_0x23e353,null)||_0x23e353===void 0x0?void 0x0:_0x23e353[_0x224f(0x78)]);if(_0x4932b3){if(_0x53e14f['UXCkz']('HbUYW',_0x53e14f[_0x224f(0x143)])){const _0xce1766=_0x224f(0x144)[_0x224f(0x99)]('|');let _0xbaa18f=0x0;while(!![]){switch(_0xce1766[_0xbaa18f++]){case'0':_0x55d57b[_0x224f(0x43)](_0x224f(0x145));continue;case'1':_0x4bb14b[_0x224f(0x43)](_0x53e14f[_0x224f(0x146)]);continue;case'2':_0xe655f4[_0x224f(0x43)](_0x53e14f[_0x224f(0x147)]);continue;case'3':_0x53168b['log']('๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20sent:',_0x6975e?_0x53e14f['foDUY']:'No');continue;case'4':_0x2b5f21[_0x224f(0x43)](_0x53e14f['uTJKr']);continue;case'5':_0x59f66e[_0x224f(0x43)](_0x53e14f[_0x224f(0x148)]);continue;case'6':_0x2d64bc['log'](_0x224f(0x109));continue;}break;}}else{var _0x40abb9,_0x43837c,_0x821453,_0xb67fcf,_0x2ab3ad,_0x345a76;console['log']('โœ…\x20SUCCESS:\x20Got\x20refresh\x20token\x20after\x20consent!'),console['log'](_0x53e14f[_0x224f(0x149)],_0x4932b3['startsWith']('4/')?_0x53e14f[_0x224f(0x14a)]:_0x53e14f['ltsAm']),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x14b)],_0x4932b3[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67));let _0x1d14ed=_0x53e14f['RUFBI'],_0x3ce7f6=null;try{if(_0x53e14f[_0x224f(0x14c)](_0x53e14f[_0x224f(0x14d)],_0x224f(0x14e))){console[_0x224f(0x43)](_0x53e14f[_0x224f(0x14f)]);const _0x2bcf96=await _0x53e14f[_0x224f(0x150)](fetch,_0x53e14f['uLlcS'],{'headers':{'Authorization':_0x224f(0x16)+_0x11524d[_0x224f(0x128)],'Accept':'application/json'}});if(_0x2bcf96['ok']){if(_0x53e14f[_0x224f(0x151)]===_0x53e14f[_0x224f(0x152)])return _0x15fb82[_0x224f(0x4e)](_0x53e14f[_0x224f(0x153)]),![];else{const _0x4d3c93=await _0x2bcf96[_0x224f(0xb6)]();if(_0x4d3c93[_0x224f(0x154)]&&_0x4d3c93[_0x224f(0x154)]['length']>0x0)_0x1d14ed=_0x4d3c93[_0x224f(0x154)][0x0][_0x224f(0x155)][_0x224f(0x156)],_0x3ce7f6=_0x4d3c93[_0x224f(0x154)][0x0]['id'],console[_0x224f(0x43)](_0x224f(0x157),_0x1d14ed,_0x53e14f['RBeDO'],_0x3ce7f6);else{var _0x1289a1,_0x4ba1c6;console[_0x224f(0x43)]('โš ๏ธ\x20No\x20YouTube\x20channel\x20found\x20for\x20user'),_0x1d14ed=(_0x53e14f[_0x224f(0x158)](_0x1289a1=_0x598080[_0x224f(0xae)],null)||_0x53e14f[_0x224f(0x159)](_0x1289a1,void 0x0)||_0x53e14f[_0x224f(0x15a)](_0x1289a1=_0x1289a1[_0x224f(0x56)],null)||_0x1289a1===void 0x0?void 0x0:_0x1289a1[_0x224f(0x57)])||((_0x4ba1c6=_0x598080['data'])===null||_0x53e14f['jfixL'](_0x4ba1c6,void 0x0)||_0x53e14f[_0x224f(0x15b)](_0x4ba1c6=_0x4ba1c6[_0x224f(0x56)],null)||_0x4ba1c6===void 0x0?void 0x0:_0x4ba1c6['email'])||_0x224f(0xdd);}}}else{var _0x387506,_0x1b5e44;console[_0x224f(0x43)](_0x53e14f[_0x224f(0x15c)],_0x2bcf96['status']),_0x1d14ed=(_0x53e14f[_0x224f(0x121)](_0x387506=_0x598080[_0x224f(0xae)],null)||_0x387506===void 0x0||_0x53e14f[_0x224f(0x15d)](_0x387506=_0x387506[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x15e)](_0x387506,void 0x0)?void 0x0:_0x387506[_0x224f(0x57)])||(_0x53e14f[_0x224f(0x15f)](_0x1b5e44=_0x598080[_0x224f(0xae)],null)||_0x53e14f['BRppP'](_0x1b5e44,void 0x0)||_0x53e14f['CGyBf'](_0x1b5e44=_0x1b5e44['user'],null)||_0x53e14f[_0x224f(0x15a)](_0x1b5e44,void 0x0)?void 0x0:_0x1b5e44[_0x224f(0x59)])||_0x224f(0x30);}}else _0x294ef2[_0x224f(0xbf)]('โš ๏ธ\x20Still\x20no\x20refresh\x20token\x20after\x20reconnection');}catch(_0x4ff814){var _0xd45870,_0xcbd540;console[_0x224f(0x43)](_0x53e14f[_0x224f(0x160)],_0x4ff814),_0x1d14ed=(_0x53e14f[_0x224f(0x15e)](_0xd45870=_0x598080[_0x224f(0xae)],null)||_0xd45870===void 0x0||(_0xd45870=_0xd45870[_0x224f(0x56)])===null||_0x53e14f[_0x224f(0x11f)](_0xd45870,void 0x0)?void 0x0:_0xd45870['name'])||(_0x53e14f['UHvlp'](_0xcbd540=_0x598080['data'],null)||_0xcbd540===void 0x0||_0x53e14f[_0x224f(0x161)](_0xcbd540=_0xcbd540[_0x224f(0x56)],null)||_0xcbd540===void 0x0?void 0x0:_0xcbd540[_0x224f(0x59)])||_0x53e14f[_0x224f(0x162)];}let _0x4a5055=await(0x0,_jwtStorageService[_0x224f(0x163)])();(!_0x4a5055||_0x4a5055[_0x224f(0x164)]()[_0x224f(0x165)]<0x14)&&(_0x53e14f['BumnW'](_0x53e14f['VZVYt'],_0x53e14f[_0x224f(0x166)])?(console[_0x224f(0x43)](_0x53e14f[_0x224f(0x167)]),_0x4a5055=_0x53e14f[_0x224f(0x168)]):_0x4dd9a6['error'](_0x224f(0xd4)+_0x1e2528+':',_0x20dbb0));const _0x34519f={'session':{'username':_0x15c6e1,'platform':_0x53e14f[_0x224f(0x169)],'timestamp':new Date()[_0x224f(0xa6)](),'channelName':_0x1d14ed,'channelId':_0x3ce7f6,'forceConsent':!![]},'googleUser':(_0x40abb9=_0x598080[_0x224f(0xae)])===null||_0x53e14f[_0x224f(0x16a)](_0x40abb9,void 0x0)?void 0x0:_0x40abb9[_0x224f(0x56)],'accessToken':_0x11524d[_0x224f(0x128)],'idToken':_0x11524d[_0x224f(0x13d)],'refreshToken':_0x4932b3,'serverAuthCode':_0x4932b3,'refresh_token':_0x4932b3,'server_auth_code':_0x4932b3,'authCode':_0x4932b3,'userAccountInfo':{'username':_0x15c6e1,'email':(_0x43837c=_0x598080['data'])===null||_0x53e14f['HxyAl'](_0x43837c,void 0x0)||_0x53e14f[_0x224f(0x16b)](_0x43837c=_0x43837c[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x142)](_0x43837c,void 0x0)?void 0x0:_0x43837c[_0x224f(0x59)],'authToken':_0x4a5055,'channelName':_0x1d14ed,'channelId':_0x3ce7f6,'userIdentifier':_0x4a5055?'user-'+_0x4a5055['substring'](0x0,0xa):'youtube-'+(_0x53e14f[_0x224f(0x16c)](_0x821453=_0x598080[_0x224f(0xae)],null)||_0x821453===void 0x0||_0x53e14f[_0x224f(0x16d)](_0x821453=_0x821453[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x16c)](_0x821453,void 0x0)?void 0x0:_0x821453[_0x224f(0x59)]),'googleId':_0x53e14f[_0x224f(0x158)](_0xb67fcf=_0x598080[_0x224f(0xae)],null)||_0xb67fcf===void 0x0||(_0xb67fcf=_0xb67fcf[_0x224f(0x56)])===null||_0x53e14f[_0x224f(0x16e)](_0xb67fcf,void 0x0)?void 0x0:_0xb67fcf['id'],'refreshToken':_0x4932b3,'serverAuthCode':_0x4932b3},'tokenExpiry':new Date(_0x53e14f[_0x224f(0x16f)](Date[_0x224f(0x170)](),0xe10*0x3e8))[_0x224f(0xa6)](),'requestRefreshToken':!![],'debugInfo':{'hasRefreshToken':!![],'refreshTokenType':_0x4932b3[_0x224f(0x9c)]('4/')?_0x53e14f['PCMvo']:_0x224f(0x79),'configuredForRefresh':!![],'forcedConsent':!![],'consentMethod':_0x53e14f[_0x224f(0x171)],'refreshTokenValue':_0x4932b3}};console[_0x224f(0x43)](_0x53e14f[_0x224f(0x172)],{'hasAccessToken':!!_0x34519f[_0x224f(0x128)],'hasRefreshToken':!!_0x34519f[_0x224f(0x79)],'hasServerAuthCode':!!_0x34519f[_0x224f(0x78)],'refreshTokenType':_0x34519f['debugInfo'][_0x224f(0x173)],'userEmail':_0x53e14f[_0x224f(0x174)](_0x2ab3ad=_0x598080['data'],null)||_0x2ab3ad===void 0x0||_0x53e14f[_0x224f(0x15a)](_0x2ab3ad=_0x2ab3ad[_0x224f(0x56)],null)||_0x53e14f[_0x224f(0x175)](_0x2ab3ad,void 0x0)?void 0x0:_0x2ab3ad[_0x224f(0x59)],'forcedConsent':!![]}),console[_0x224f(0x43)](_0x224f(0x176)),console[_0x224f(0x43)](_0x224f(0x177)),console[_0x224f(0x43)]('\uD83D\uDE80 [YOUTUBE REAUTH] Method: POST'),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x178)],{'Content-Type':'application/json','Authorization':_0x4a5055?_0x4a5055[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0x53e14f[_0x224f(0x179)]}),console[_0x224f(0x43)](_0x53e14f['GKdyf'],{'hasAccessToken':!!_0x34519f[_0x224f(0x128)],'hasRefreshToken':!!_0x34519f[_0x224f(0x79)],'hasServerAuthCode':!!_0x34519f['serverAuthCode'],'refreshTokenType':_0x34519f[_0x224f(0x17a)][_0x224f(0x173)],'userEmail':_0x53e14f[_0x224f(0x17b)](_0x345a76=_0x598080[_0x224f(0xae)],null)||_0x53e14f[_0x224f(0x15f)](_0x345a76,void 0x0)||_0x53e14f[_0x224f(0x17c)](_0x345a76=_0x345a76[_0x224f(0x56)],null)||_0x53e14f['qlWgs'](_0x345a76,void 0x0)?void 0x0:_0x345a76[_0x224f(0x59)],'channelName':_0x1d14ed,'forcedConsent':!![],'requestRefreshToken':!![]}),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x17d)],JSON[_0x224f(0x137)](_0x34519f,null,0x2));const _0x4336c3=await fetch(_api['API_CONFIG']['BASE_URL']+_0x224f(0x17e),{'method':'POST','headers':{'Content-Type':'application/json',..._0x4a5055&&{'Authorization':_0x4a5055}},'body':JSON['stringify'](_0x34519f)});console[_0x224f(0x43)](_0x53e14f[_0x224f(0x17f)],_0x4336c3[_0x224f(0x61)]),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x180)],_0x4336c3[_0x224f(0x62)]),console['log'](_0x224f(0x181),_0x4336c3['headers']);if(_0x4336c3['ok']){var _0x52bdaf,_0x19c374;const _0x402eaf=await _0x4336c3[_0x224f(0xb6)]();console['log'](_0x53e14f[_0x224f(0x182)],JSON[_0x224f(0x137)](_0x402eaf,null,0x2));const _0x5a2054=_0x53e14f['XsUgk'](_0x53e14f['yHQZb'](_0x52bdaf=_0x402eaf[_0x224f(0x183)],null)||_0x53e14f['ucNyt'](_0x52bdaf,void 0x0)?void 0x0:_0x52bdaf[_0x224f(0x184)],!![])||(_0x53e14f[_0x224f(0x185)](_0x19c374=_0x402eaf[_0x224f(0x186)],null)||_0x53e14f[_0x224f(0x142)](_0x19c374,void 0x0)?void 0x0:_0x19c374[_0x224f(0x187)])===!![]||_0x53e14f['ySKKJ'](_0x402eaf[_0x224f(0x184)],!![])||_0x402eaf[_0x224f(0x4d)]&&_0x402eaf[_0x224f(0x4d)][_0x224f(0xc8)](_0x224f(0x188));if(_0x5a2054){const _0x202ce5=_0x224f(0x189)[_0x224f(0x99)]('|');let _0x500bff=0x0;while(!![]){switch(_0x202ce5[_0x500bff++]){case'0':console[_0x224f(0x43)](_0x53e14f[_0x224f(0x18a)]);continue;case'1':console['log'](_0x53e14f[_0x224f(0x18b)]);continue;case'2':console[_0x224f(0x43)](_0x53e14f[_0x224f(0x148)]);continue;case'3':console[_0x224f(0x43)](_0x53e14f[_0x224f(0x146)]);continue;case'4':console[_0x224f(0x43)](_0x53e14f[_0x224f(0x18c)]);continue;case'5':console[_0x224f(0x43)](_0x53e14f[_0x224f(0x147)]);continue;case'6':console['log'](_0x53e14f[_0x224f(0x18d)],_0x4932b3?_0x53e14f[_0x224f(0x18e)]:'No');continue;}break;}}else{if(_0x402eaf[_0x224f(0xa2)]||_0x402eaf['refreshTokenReceived']){const _0x1c27d6=_0x53e14f[_0x224f(0x18f)][_0x224f(0x99)]('|');let _0x4360f7=0x0;while(!![]){switch(_0x1c27d6[_0x4360f7++]){case'0':console[_0x224f(0x43)](_0x53e14f['HiOKx'],_0x4932b3[_0x224f(0x165)]);continue;case'1':console['log'](_0x53e14f['RAPsI'],_0x4932b3);continue;case'2':console[_0x224f(0x43)](_0x53e14f['XbdyT'],_0x4932b3['startsWith']('4/')?_0x53e14f[_0x224f(0x14a)]:_0x53e14f[_0x224f(0x190)]);continue;case'3':console[_0x224f(0x43)](_0x224f(0x7b));continue;case'4':console['log'](_0x53e14f[_0x224f(0x191)],_0x402eaf[_0x224f(0xa2)]);continue;case'5':console['log'](_0x224f(0x192));continue;case'6':console[_0x224f(0x43)]('โœ…\x20[YOUTUBE\x20REAUTH]\x20Backend\x20CONFIRMED\x20refresh\x20token\x20received');continue;}break;}}else return console['warn'](_0x224f(0x193)),console[_0x224f(0xbf)](_0x53e14f[_0x224f(0x194)],_0x402eaf),console[_0x224f(0xbf)](_0x53e14f['hyWgV']),![];}console[_0x224f(0x43)](_0x53e14f['rarat']);try{if(_0x53e14f[_0x224f(0x195)](_0x53e14f[_0x224f(0x196)],_0x224f(0x10f)))return _0x37f45e['warn'](_0x224f(0x193)),_0xae210f[_0x224f(0xbf)](_0x224f(0x10c),_0x354c3c),_0x258b25[_0x224f(0xbf)]('โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20Expected\x20hasRefreshToken\x20or\x20refreshTokenReceived\x20in\x20response'),![];else await _0x53e14f[_0x224f(0x197)](triggerTrainingRestart,_0x15c6e1,_0x4a5055),console[_0x224f(0x43)](_0x53e14f[_0x224f(0x198)]);}catch(_0x20f86d){_0x53e14f[_0x224f(0x15b)](_0x224f(0x111),_0x53e14f['BHZjS'])?(console[_0x224f(0xbf)](_0x53e14f['RaLyJ'],_0x20f86d),console['warn'](_0x53e14f[_0x224f(0x199)])):(_0x556aa5['log'](_0x53e14f[_0x224f(0x167)]),_0x5379c3=_0x53e14f[_0x224f(0x168)]);}return!![];}else{const _0x5e98c1=await _0x4336c3[_0x224f(0x5e)]();return console[_0x224f(0x4e)](_0x53e14f[_0x224f(0x19a)],_0x4336c3[_0x224f(0x61)],_0x5e98c1),console['error'](_0x224f(0x19b)),![];}}}else{if(_0x53e14f['bjqpr'](_0x224f(0x19c),_0x53e14f[_0x224f(0x19d)])){const _0x2356f2=_0x53e14f[_0x224f(0x19e)][_0x224f(0x99)]('|');let _0x5ddf1c=0x0;while(!![]){switch(_0x2356f2[_0x5ddf1c++]){case'0':console[_0x224f(0x4e)](_0x53e14f['tGaQj']);continue;case'1':console[_0x224f(0x4e)](_0x53e14f[_0x224f(0x19f)]);continue;case'2':console[_0x224f(0x4e)](_0x224f(0x1a0));continue;case'3':return![];case'4':console['error'](_0x224f(0x1a1));continue;case'5':console[_0x224f(0x4e)](_0x53e14f[_0x224f(0x1a2)]);continue;case'6':console[_0x224f(0x4e)](_0x53e14f['hctym']);continue;}break;}}else _0x3e4c4b[_0x224f(0x43)](_0x53e14f[_0x224f(0x1a3)]),_0x4abf34['log'](_0x53e14f[_0x224f(0x149)],_0x54baa2['startsWith']('4/')?_0x224f(0x78):'refreshToken');}}catch(_0x34ed5c){console[_0x224f(0x4e)](_0x224f(0x1a4),_0x34ed5c);if(_0x53e14f[_0x224f(0x1a5)](_0x34ed5c[_0x224f(0x1b)],_googleSignin['statusCodes'][_0x224f(0x1a6)]))console['error'](_0x53e14f[_0x224f(0x1a7)]),console['error'](_0x53e14f[_0x224f(0x1a8)]);else{if(_0x53e14f[_0x224f(0x11f)](_0x34ed5c[_0x224f(0x1b)],_googleSignin['statusCodes'][_0x224f(0x1a9)]))console[_0x224f(0x4e)]('โŒ\x20Sign-in\x20already\x20in\x20progress');else _0x34ed5c['code']===_googleSignin[_0x224f(0x1aa)][_0x224f(0x1ab)]&&console[_0x224f(0x4e)](_0x224f(0x1ac));}return![];}};exports[_0x224f(0xd)]=forceYouTubeReconnectionWithConsent;const forceYouTubeReconnectionWithRevoke=async _0x2034ad=>{const _0x5b069b={'ByJFe':_0x224f(0x1ad),'IevQy':_0x224f(0x1ae),'zPztc':'โœ…\x20Got\x20serverAuthCode\x20from\x20sign-in\x20response','pDoDd':_0x224f(0xfa),'PbINV':_0x224f(0xd6),'lcHQt':_0x224f(0x59),'CTUTn':function(_0x24686f,_0x1daedb){return _0x24686f!==_0x1daedb;},'eqcSl':_0x224f(0x1af),'cJqsF':_0x224f(0x1b0),'HLjrH':_0x224f(0xe9),'XWAOP':function(_0x3910cd,_0x1374cc){return _0x3910cd!==_0x1374cc;},'gchhY':'ifJEW','wjYvF':_0x224f(0x1b1),'CbvIY':function(_0x49c2b7,_0x3d8d33){return _0x49c2b7===_0x3d8d33;},'Nohdu':'ToNTX','tVzvK':_0x224f(0x1b2),'txmfD':_0x224f(0x1b3),'zBZyt':function(_0x56173d,_0x178175){return _0x56173d===_0x178175;},'gQsXk':'EXFVK','XDYTP':_0x224f(0x1b4)};try{if(_0x5b069b[_0x224f(0x1b5)](_0x5b069b[_0x224f(0x1b6)],_0x5b069b[_0x224f(0x1b6)]))return _0x2d63f1['error'](_0x5b069b[_0x224f(0x1b7)]),![];else{var _0x54d6fe;console['log'](_0x5b069b[_0x224f(0x1b8)]),console[_0x224f(0x43)](_0x5b069b[_0x224f(0x1b9)],_0x2034ad),initializeGoogleSignIn(),await _googleSignin[_0x224f(0xd7)][_0x224f(0x12f)]();try{if(_0x5b069b[_0x224f(0x1ba)](_0x5b069b[_0x224f(0x1bb)],_0x5b069b[_0x224f(0x1bc)]))await _googleSignin[_0x224f(0xd7)]['revokeAccess'](),console[_0x224f(0x43)](_0x224f(0x1bd));else return{'success':![],'error':_0xb2bc38['message']||_0x5b069b['IevQy']};}catch(_0x291049){_0x5b069b[_0x224f(0x1be)](_0x5b069b[_0x224f(0x1bf)],_0x5b069b[_0x224f(0x1bf)])?console['log'](_0x5b069b[_0x224f(0x1c0)],_0x291049):(_0x978e4e=_0x24e221[_0x224f(0xae)][_0x224f(0x78)],_0x41b7d2[_0x224f(0x43)](_0x5b069b['zPztc']),_0x4cc090[_0x224f(0x43)](_0x5b069b['pDoDd'],_0x503f9d['substring'](0x0,0x14)+_0x224f(0x67)));}await _googleSignin[_0x224f(0xd7)][_0x224f(0x1c1)](),console[_0x224f(0x43)](_0x224f(0x1c2)),console['log'](_0x5b069b[_0x224f(0x1c3)]);const _0x5fd42e=await _googleSignin[_0x224f(0xd7)][_0x224f(0x131)](),_0x5407e5=await _googleSignin[_0x224f(0xd7)][_0x224f(0x135)](),_0x54aa7a=await _googleSignin[_0x224f(0xd7)][_0x224f(0x1c4)](),_0xacabd9=(_0x5b069b[_0x224f(0x1c5)](_0x54d6fe=_0x5fd42e[_0x224f(0xae)],null)||_0x5b069b[_0x224f(0x1c5)](_0x54d6fe,void 0x0)?void 0x0:_0x54d6fe['serverAuthCode'])||(_0x54aa7a===null||_0x54aa7a===void 0x0?void 0x0:_0x54aa7a[_0x224f(0x78)]);return _0xacabd9?(console[_0x224f(0x43)](_0x224f(0x1c6)),console['log'](_0x5b069b[_0x224f(0x1c7)],_0xacabd9[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67)),!![]):(console[_0x224f(0x4e)](_0x224f(0x1c8)),![]);}}catch(_0x5c01db){if(_0x5b069b[_0x224f(0x1ba)](_0x5b069b[_0x224f(0x1c9)],_0x5b069b[_0x224f(0x1c9)]))_0x28f0d6[_0x224f(0xd7)][_0x224f(0xd8)]({'webClientId':_0x49dd0f,'iosClientId':_0x47d576,'offlineAccess':!![],'forceCodeForRefreshToken':!![],'scopes':[_0x224f(0xf2),_0x224f(0xd5),_0x5b069b[_0x224f(0x1ca)],_0x5b069b['lcHQt']],'hostedDomain':'','accountName':''});else return console[_0x224f(0x4e)](_0x5b069b[_0x224f(0x1cb)],_0x5c01db),![];}};function _0x224f(_0x4e574e,_0x224f4f){_0x4e574e=_0x4e574e-0x0;const _0x550f4e=_0x4e57();let _0x5a53fb=_0x550f4e[_0x4e574e];return _0x5a53fb;}exports[_0x224f(0xc)]=forceYouTubeReconnectionWithRevoke;const fixUserYouTubeConnection=async _0x1f498a=>{const _0x13d823={'mrlPr':'๐Ÿ”„\x20Method\x201:\x20Trying\x20forced\x20consent\x20via\x20configuration...','YIqUs':_0x224f(0x1cc)};console[_0x224f(0x43)](_0x224f(0x1cd)+_0x1f498a),console[_0x224f(0x43)](_0x13d823[_0x224f(0x1ce)]);let _0x152765=await forceYouTubeReconnectionWithConsent(_0x1f498a);if(_0x152765)return console['log']('โœ…\x20'+_0x1f498a+_0x224f(0x74)),!![];console['log'](_0x13d823[_0x224f(0x1cf)]),_0x152765=await forceYouTubeReconnectionWithRevoke(_0x1f498a);if(_0x152765)return console[_0x224f(0x43)]('โœ…\x20'+_0x1f498a+_0x224f(0x1d0)),!![];return console['error'](_0x224f(0x1d1)+_0x1f498a+_0x224f(0x1d2)),![];};exports['fixUserYouTubeConnection']=fixUserYouTubeConnection;const refreshGoogleTokens=async()=>{const _0x12567f={'ezStU':_0x224f(0x1d3),'zOScp':function(_0x44246e,_0x469a8d){return _0x44246e===_0x469a8d;},'FXZEc':_0x224f(0x118),'LiESO':_0x224f(0x119),'joguw':function(_0x7533a2,_0x5213b2){return _0x7533a2===_0x5213b2;},'iuShU':_0x224f(0x1d4),'YyhtS':'โŒ\x20Google\x20Play\x20Services\x20not\x20available','cTkgL':_0x224f(0x1d5),'azbwx':function(_0x37e638,_0x3d730f){return _0x37e638!==_0x3d730f;},'ndvWC':_0x224f(0x1d6),'YWHOK':_0x224f(0x1d7),'MoGAV':'โŒ\x20User\x20not\x20signed\x20in\x20to\x20Google,\x20cannot\x20refresh\x20tokens','IfQFb':_0x224f(0x1d8),'XeiUO':_0x224f(0x1d9),'Nzpti':_0x224f(0x1da),'YjOfe':_0x224f(0x1db),'iQbAR':_0x224f(0x1dc),'NjzLj':_0x224f(0x1dd),'YugCc':_0x224f(0xcd)};try{console[_0x224f(0x43)]('๐Ÿ”„\x20Attempting\x20to\x20refresh\x20Google\x20tokens...');const _0x1d0fa9=await _googleSignin[_0x224f(0xd7)][_0x224f(0x1c4)]();if(!_0x1d0fa9)return _0x12567f['azbwx'](_0x12567f['ndvWC'],_0x12567f[_0x224f(0x1de)])?(console[_0x224f(0x43)](_0x12567f[_0x224f(0x1df)]),null):_0x39d7d8[_0x224f(0xc8)](_0x224f(0x1e0))||_0x452546[_0x224f(0xc8)](_0x12567f[_0x224f(0x1e1)]);const _0x4bcc3d=await _googleSignin[_0x224f(0xd7)][_0x224f(0x135)]();return console[_0x224f(0x43)](_0x12567f[_0x224f(0x1e2)]),{'accessToken':_0x4bcc3d[_0x224f(0x128)],'idToken':_0x4bcc3d[_0x224f(0x13d)]};}catch(_0x3548af){console[_0x224f(0x4e)](_0x12567f['XeiUO'],_0x3548af);try{if(_0x12567f[_0x224f(0x1e3)](_0x12567f[_0x224f(0x1e4)],_0x224f(0x1e5))){console['log'](_0x12567f[_0x224f(0x1e6)]);const _0x56592d=await _googleSignin[_0x224f(0xd7)][_0x224f(0x131)](),_0xdbdef9=await _googleSignin['GoogleSignin'][_0x224f(0x135)]();return console[_0x224f(0x43)](_0x12567f['iQbAR']),{'accessToken':_0xdbdef9[_0x224f(0x128)],'idToken':_0xdbdef9['idToken']};}else{_0x29e884[_0x224f(0x4e)]('โŒ\x20Error\x20forcing\x20YouTube\x20consent:',_0x157754);if(_0x12567f['zOScp'](_0x63f224[_0x224f(0x1b)],_0x37b889[_0x224f(0x1aa)][_0x224f(0x1a6)]))_0x5cffe3['error'](_0x12567f[_0x224f(0x1e7)]),_0x34f7e0[_0x224f(0x4e)](_0x12567f['LiESO']);else{if(_0x12567f['joguw'](_0x2e4ea9[_0x224f(0x1b)],_0x547439['statusCodes'][_0x224f(0x1a9)]))_0x488299[_0x224f(0x4e)](_0x12567f[_0x224f(0x1e8)]);else _0x12567f['zOScp'](_0x35d8b6['code'],_0x205572['statusCodes'][_0x224f(0x1ab)])&&_0x29e7d6['error'](_0x12567f['YyhtS']);}return![];}}catch(_0x278f07){if(_0x12567f[_0x224f(0x1e3)](_0x12567f[_0x224f(0x1e9)],_0x12567f[_0x224f(0x1e9)]))_0x439495[_0x224f(0x43)](_0x12567f[_0x224f(0x1ea)],_0x12c6d1[_0x224f(0x173)]);else return console['error'](_0x12567f[_0x224f(0x1eb)],_0x278f07),null;}}},debugYouTubeTokens=async()=>{const _0x292ac2={'zCUqE':'๐Ÿ”\x20YouTube\x20Token\x20Debug:','PSCct':'Missing','fUilb':'Present','jhhhC':function(_0x47b2dd,_0x35c712){return _0x47b2dd!==_0x35c712;},'wkNFQ':function(_0x3bd1f8,_0x142f3d){return _0x3bd1f8===_0x142f3d;},'yWbNY':_0x224f(0x1ec),'npkEM':_0x224f(0x4e)};try{var _0x2d8d99;const _0x3ba9ea=await _googleSignin[_0x224f(0xd7)]['getTokens'](),_0x5e58f3=await _googleSignin[_0x224f(0xd7)][_0x224f(0x1c4)]();return console[_0x224f(0x43)](_0x292ac2['zCUqE'],{'accessToken':_0x3ba9ea[_0x224f(0x128)]?_0x3ba9ea[_0x224f(0x128)]['substring'](0x0,0x14)+'...':_0x292ac2[_0x224f(0x1ed)],'idToken':_0x3ba9ea['idToken']?_0x292ac2['fUilb']:_0x292ac2[_0x224f(0x1ed)],'serverAuthCode':_0x5e58f3!==null&&_0x292ac2['jhhhC'](_0x5e58f3,void 0x0)&&_0x5e58f3[_0x224f(0x78)]?_0x5e58f3[_0x224f(0x78)][_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0x224f(0xf7),'userEmail':(_0x5e58f3===null||_0x292ac2[_0x224f(0x1ee)](_0x5e58f3,void 0x0)||_0x292ac2[_0x224f(0x1ee)](_0x2d8d99=_0x5e58f3[_0x224f(0x56)],null)||_0x292ac2[_0x224f(0x1ee)](_0x2d8d99,void 0x0)?void 0x0:_0x2d8d99[_0x224f(0x59)])||_0x224f(0xf7)}),{'hasRefreshToken':!!(_0x292ac2[_0x224f(0x1ef)](_0x5e58f3,null)&&_0x5e58f3!==void 0x0&&_0x5e58f3[_0x224f(0x78)]),'refreshTokenType':_0x292ac2[_0x224f(0x1ef)](_0x5e58f3,null)&&_0x292ac2[_0x224f(0x1ef)](_0x5e58f3,void 0x0)&&_0x5e58f3[_0x224f(0x78)]?_0x224f(0x78):_0x292ac2[_0x224f(0x1f0)]};}catch(_0x38fd3b){return console[_0x224f(0x4e)](_0x224f(0x1f1),_0x38fd3b),{'hasRefreshToken':![],'refreshTokenType':_0x292ac2[_0x224f(0x1f2)]};}},reconnectYouTube=async _0x3c3155=>{const _0x1031b5={'kSUPJ':_0x224f(0xdc),'ZtUim':function(_0x5b6193,_0x3a8d48){return _0x5b6193===_0x3a8d48;},'vxMQm':function(_0xbee337,_0x4f3929){return _0xbee337===_0x4f3929;},'oAviS':'No\x20Channel','VVbFn':_0x224f(0x1ac),'dpmfZ':_0x224f(0x1f3),'uICyx':_0x224f(0x41),'YCOQO':function(_0xace0da,_0x5b7f6b){return _0xace0da!==_0x5b7f6b;},'ukwpD':_0x224f(0x1f4),'HXlxj':'ODtzz','JQrFK':_0x224f(0x1f5),'wKdMc':_0x224f(0x1f6),'ZozLl':function(_0x3f7c2d,_0x184023){return _0x3f7c2d!==_0x184023;},'xwMvh':_0x224f(0x1f7),'ruzwD':function(_0x190caa,_0x5b9fd4){return _0x190caa!==_0x5b9fd4;},'VGDWv':_0x224f(0x1f8),'wplTu':_0x224f(0x1f9),'LQSOO':function(_0x1a32a1,_0x2ef50b){return _0x1a32a1!==_0x2ef50b;},'hkFgJ':_0x224f(0x1fa),'idrEJ':_0x224f(0x1fb),'moDIG':_0x224f(0x1fc),'GqAne':_0x224f(0x1fd),'OMUDB':function(_0x50653a){return _0x50653a();},'GiPoZ':'yJnhP','yiYBj':'โš ๏ธ\x20Still\x20no\x20refresh\x20token\x20after\x20reconnection','iKwnA':_0x224f(0x1fe),'PoNpW':_0x224f(0x1ff)};try{if(_0x1031b5[_0x224f(0x200)](_0x1031b5[_0x224f(0x201)],_0x1031b5[_0x224f(0x202)])){console[_0x224f(0x43)](_0x1031b5['JQrFK']);try{await _googleSignin['GoogleSignin'][_0x224f(0x1c1)](),console[_0x224f(0x43)](_0x1031b5[_0x224f(0x203)]);}catch(_0x4a1dc9){_0x1031b5[_0x224f(0x204)](_0x1031b5['xwMvh'],_0x224f(0x205))?console['log'](_0x224f(0x206),_0x4a1dc9):_0x59faed[_0x224f(0x43)]('โš ๏ธ\x20[CONNECTIVITY]\x20API\x20server\x20responded\x20with\x20status:\x20'+_0x15615f[_0x224f(0x61)]);}try{if(_0x1031b5[_0x224f(0x207)](_0x1031b5[_0x224f(0x208)],_0x1031b5[_0x224f(0x208)])){var _0x2fe5cd,_0x680730;_0x208c69['log'](_0x1031b5[_0x224f(0x209)]),_0x145e54=(_0x1031b5[_0x224f(0x20a)](_0x2fe5cd=_0x1886de[_0x224f(0xae)],null)||_0x1031b5[_0x224f(0x20b)](_0x2fe5cd,void 0x0)||_0x1031b5['vxMQm'](_0x2fe5cd=_0x2fe5cd['user'],null)||_0x1031b5[_0x224f(0x20b)](_0x2fe5cd,void 0x0)?void 0x0:_0x2fe5cd['name'])||(_0x1031b5[_0x224f(0x20b)](_0x680730=_0x2fa891[_0x224f(0xae)],null)||_0x1031b5[_0x224f(0x20a)](_0x680730,void 0x0)||(_0x680730=_0x680730[_0x224f(0x56)])===null||_0x1031b5['vxMQm'](_0x680730,void 0x0)?void 0x0:_0x680730[_0x224f(0x59)])||_0x1031b5[_0x224f(0x20c)];}else{const _0x557c16=await _googleSignin[_0x224f(0xd7)]['getTokens']();_0x557c16[_0x224f(0x128)]&&(await _googleSignin[_0x224f(0xd7)]['clearCachedAccessToken'](_0x557c16[_0x224f(0x128)]),console['log'](_0x1031b5['wplTu']));}}catch(_0x1a0791){_0x1031b5[_0x224f(0x20d)](_0x224f(0x20e),_0x1031b5[_0x224f(0x20f)])?console[_0x224f(0x43)](_0x1031b5[_0x224f(0x210)],_0x1a0791):_0x46534e[_0x224f(0x4e)](_0x1031b5[_0x224f(0x211)]);}const _0x24000a=await initiateNativeAuth('youtube',_0x3c3155);if(_0x24000a){if(_0x1031b5[_0x224f(0x200)](_0x1031b5[_0x224f(0x212)],'goxaC')){console['log'](_0x1031b5[_0x224f(0x213)]);const _0x41b621=await _0x1031b5[_0x224f(0x214)](debugYouTubeTokens);if(_0x41b621[_0x224f(0xa2)])console[_0x224f(0x43)]('โœ…\x20Refresh\x20token\x20confirmed:',_0x41b621['refreshTokenType']);else{if(_0x1031b5['ZtUim'](_0x224f(0x215),_0x1031b5[_0x224f(0x216)]))console[_0x224f(0xbf)](_0x1031b5[_0x224f(0x217)]);else return _0x55022a[_0x224f(0x43)](_0x1031b5[_0x224f(0x218)]),new _0x5b8a30(_0x507cf8=>{const _0x48b914={'YITsr':function(_0x544e24,_0x450815){return _0x544e24(_0x450815);}};_0x56ecd3(()=>{_0xe5c561['log'](_0x224f(0x219)),_0x48b914['YITsr'](_0x507cf8,!![]);},0x3e8);});}return!![];}else _0x19bd65[_0x224f(0x43)](_0x224f(0x21a));}else return console[_0x224f(0x4e)](_0x1031b5['iKwnA']),![];}else return{'success':![],'message':_0x1031b5[_0x224f(0x21b)],'details':_0x24c870};}catch(_0x50dec3){return console[_0x224f(0x4e)](_0x1031b5[_0x224f(0x21c)],_0x50dec3),![];}};exports[_0x224f(0x6)]=reconnectYouTube;const initiateNativeAuth=async(_0x1cabc8,_0x4635e4)=>{const _0xd752d9={'dOvQo':function(_0x3a7b83,_0x4adccc){return _0x3a7b83===_0x4adccc;},'axWsE':_0x224f(0x84),'tBxMw':function(_0x9b934f,_0x307456){return _0x9b934f!==_0x307456;},'MrhKr':_0x224f(0xc9),'Hdzrf':'\x20\x20\x202.\x20API\x20server\x20(API\x20server)\x20is\x20unreachable','Ufjqg':'\x20\x20\x205.\x20iOS\x20simulator\x20network\x20sandbox\x20issue\x20-\x20try\x20on\x20physical\x20device','TUFSC':_0x224f(0x21d),'ZGmAo':_0x224f(0x112),'cuoaV':_0x224f(0x113),'xIKGP':_0x224f(0x21e),'WYJZD':_0x224f(0x3d),'IzSiX':_0x224f(0x219),'qFsLx':function(_0x3937fe,_0x1c5bd5){return _0x3937fe(_0x1c5bd5);},'zlbIB':function(_0x177cf4,_0x4473e6,_0x1370d1){return _0x177cf4(_0x4473e6,_0x1370d1);},'keEyt':_0x224f(0x38),'aWbfx':_0x224f(0x21f),'MQHdH':_0x224f(0x220),'XcoAV':_0x224f(0x157),'evNEi':'โŒ\x20Google\x20Sign-In\x20error:','iWBGw':_0x224f(0x221),'CvFMq':function(_0x2009c0,_0x21d54d){return _0x2009c0===_0x21d54d;},'CsfIR':_0x224f(0x21a),'MFURx':'โŒ\x20User\x20not\x20signed\x20in\x20to\x20Google,\x20cannot\x20refresh\x20tokens','huFtD':'โŒ\x20No\x20current\x20Google\x20user\x20found','PGanL':_0x224f(0x1b2),'vdJwD':function(_0x8fca1e,_0x308eb2){return _0x8fca1e(_0x308eb2);},'TFSHz':'โš ๏ธ\x20[YOUTUBE\x20AUTH]\x20Backend\x20did\x20not\x20confirm\x20refresh\x20token','UdUmN':_0x224f(0x222),'hAJQy':_0x224f(0x223),'iZrVO':function(_0x39234d,_0x4b3a4e){return _0x39234d!==_0x4b3a4e;},'VKMwo':function(_0x1e60bf,_0x8588b8,_0x2678f1){return _0x1e60bf(_0x8588b8,_0x2678f1);},'jbCUI':_0x224f(0x224),'EHPgy':'yKZiu','gfdqH':'๐Ÿ”—\x20Initiating\x20native\x20Google\x20Sign-In\x20for\x20YouTube','JzekQ':_0x224f(0x225),'WlJBA':'โŒ\x20[YOUTUBE\x20AUTH]\x20Username\x20is\x20required\x20for\x20YouTube\x20authentication','eshpl':'yqFGI','layif':function(_0x2a0857){return _0x2a0857();},'JdaCv':_0x224f(0x226),'lGMoo':'๐Ÿ”„\x20Signed\x20out\x20to\x20force\x20fresh\x20consent','MUiFa':_0x224f(0x227),'uZlKc':function(_0x56328b,_0x81b55a){return _0x56328b===_0x81b55a;},'psJGv':function(_0x3acce7,_0x51e05f){return _0x3acce7===_0x51e05f;},'TYPeL':_0x224f(0x228),'AzCef':_0x224f(0x229),'aVZrY':'๐Ÿ‘ค\x20Current\x20user\x20info:','CfLYh':function(_0x5a6864,_0x31b98d){return _0x5a6864===_0x31b98d;},'KjjoX':'๐Ÿ“‹\x20FULL\x20currentUser\x20object:','PWAUW':_0x224f(0x22a),'hsswV':_0x224f(0x22b),'pNEOP':function(_0x69208c,_0x11fce9){return _0x69208c!==_0x11fce9;},'QuoJC':function(_0x2e3ada,_0x4e529c){return _0x2e3ada!==_0x4e529c;},'EEDtg':_0x224f(0xf7),'Oacrk':_0x224f(0x22c),'wdpjk':function(_0x4a1c36,_0x4cd752){return _0x4a1c36!==_0x4cd752;},'NfXRA':_0x224f(0x22d),'cVHff':'-\x20tokens.accessToken:','mMFTD':function(_0xb2b039,_0x37e832){return _0xb2b039!==_0x37e832;},'eTvaD':_0x224f(0x22e),'twbDM':_0x224f(0xfa),'AmZuR':function(_0x428c51,_0x131840){return _0x428c51!==_0x131840;},'eICfA':function(_0x37481f,_0x49168d){return _0x37481f===_0x49168d;},'IPpjV':_0x224f(0x22f),'xFMZN':_0x224f(0x230),'ZURVv':'โŒ\x20CRITICAL:\x20No\x20refresh\x20token\x20available\x20-\x20YouTube\x20connection\x20will\x20fail\x20when\x20token\x20expires','uXLvA':_0x224f(0x231),'ocSjL':_0x224f(0x7e),'KsQSF':'โœ…\x20Refresh\x20token\x20available\x20for\x20YouTube\x20connection','fCcjc':'๐Ÿ”‘\x20Refresh\x20token\x20type:','sUWon':_0x224f(0x78),'MpYTy':_0x224f(0xfd),'bqRqX':_0x224f(0x232),'bEYyn':_0x224f(0x233),'LaxZa':_0x224f(0x100),'jIHRe':_0x224f(0xdc),'MswZi':function(_0x567031,_0x1bf460){return _0x567031===_0x1bf460;},'OPRWo':function(_0x587185,_0x1821a0){return _0x587185===_0x1821a0;},'nvsdU':function(_0x447845,_0x1b61c6){return _0x447845===_0x1b61c6;},'GdQTp':function(_0xd1a7d,_0x326fba){return _0xd1a7d===_0x326fba;},'FMQhD':_0x224f(0xdd),'iiIOa':'GyUma','xHgCA':_0x224f(0x234),'btVMU':function(_0x262e94,_0xc5d04b){return _0x262e94===_0xc5d04b;},'LqkUc':function(_0x1b0069,_0x1219ef){return _0x1b0069===_0x1219ef;},'hgibt':function(_0x1aa1e9,_0x59661d){return _0x1aa1e9===_0x59661d;},'Phfic':function(_0x5f4077,_0x1a5375){return _0x5f4077===_0x1a5375;},'OkTst':_0x224f(0x30),'ecGno':function(_0x840f1e,_0x201cec){return _0x840f1e===_0x201cec;},'nECIg':'sfeAl','CyhOl':'IEKZh','wIBAH':function(_0x5f1733,_0x57093c){return _0x5f1733===_0x57093c;},'XIeDn':function(_0x1cc336,_0x26287f){return _0x1cc336===_0x26287f;},'MstNz':function(_0x1852bf,_0x211201){return _0x1852bf===_0x211201;},'XgGCF':function(_0x138dad,_0x1f404b){return _0x138dad===_0x1f404b;},'FhKQL':'onairos_username','LfZIn':function(_0x43f664,_0xcbf611){return _0x43f664||_0xcbf611;},'pOlVT':function(_0x3e9abd,_0x2b32fe){return _0x3e9abd===_0x2b32fe;},'PpmMu':function(_0x1962d3,_0x15daa3){return _0x1962d3===_0x15daa3;},'nIMBL':_0x224f(0x235),'VjueN':function(_0x923faf,_0x410c85){return _0x923faf<_0x410c85;},'aPjlp':_0x224f(0x236),'PJWxt':'โ„น๏ธ\x20NOTE:\x20SDK\x20does\x20not\x20create\x20users\x20during\x20YouTube\x20connection','hznAI':_0x224f(0x237),'Qrhht':_0x224f(0x66),'SzKxb':_0x224f(0x31),'dCKWj':'๐Ÿ”—\x20Linking\x20YouTube\x20data\x20to\x20user:','gRuMW':_0x224f(0x238),'lFsHK':_0x224f(0x239),'UWTqr':function(_0x42aaf1,_0x439326){return _0x42aaf1===_0x439326;},'HlWwv':function(_0x3869ea,_0x263b2a){return _0x3869ea===_0x263b2a;},'cOoJK':function(_0x5da354,_0x5af42b){return _0x5da354===_0x5af42b;},'BnnIx':function(_0xcad04e,_0x398f8e){return _0xcad04e===_0x398f8e;},'MscNT':function(_0x2133e1,_0x340dab){return _0x2133e1===_0x340dab;},'UTZdM':function(_0x34d0a7,_0x4d9b15){return _0x34d0a7!==_0x4d9b15;},'icdcn':_0x224f(0x23a),'DvVjx':function(_0x4ea5cf,_0x9bf952){return _0x4ea5cf*_0x9bf952;},'qoYSs':_0x224f(0x79),'dSWgZ':_0x224f(0x1ec),'lmIEy':'๐Ÿ“ค\x20BACKEND\x20PAYLOAD\x20SUMMARY:','aqbWt':_0x224f(0x23b),'ypUzF':_0x224f(0x23c),'uYeCM':_0x224f(0x23d),'ssffK':_0x224f(0x23e),'utMao':_0x224f(0x23f),'aWTwu':function(_0xcf3930,_0x50ca54){return _0xcf3930===_0x50ca54;},'xKVgC':_0x224f(0x240),'IBLHh':_0x224f(0x241),'KpNgN':function(_0x5cb5d4,_0x26c5f1,_0x48e4d1){return _0x5cb5d4(_0x26c5f1,_0x48e4d1);},'mxBys':function(_0x417fb9,_0x3b3b5d){return _0x417fb9&&_0x3b3b5d;},'eaiZS':_0x224f(0x242),'kVBIE':function(_0x4b6278,_0x390fe0){return _0x4b6278===_0x390fe0;},'SdVox':_0x224f(0x243),'yHjjZ':'pcglN','zfLcR':_0x224f(0x244),'XdYAt':_0x224f(0x245),'YIYvn':function(_0x52a514,_0xfb815e){return _0x52a514===_0xfb815e;},'vIrSX':function(_0x330ee5,_0x2522ee){return _0x330ee5===_0x2522ee;},'DgwCf':_0x224f(0x188),'ESHix':_0x224f(0x246),'PaWYT':'hJjCZ','XWPia':_0x224f(0xde),'EZQSG':_0x224f(0x12b),'Chmoj':_0x224f(0xdf),'zWHXc':function(_0x59b504,_0x4fbddf){return _0x59b504!==_0x4fbddf;},'JBEBC':_0x224f(0x247),'JHIpc':_0x224f(0x248),'BOLew':_0x224f(0x249),'GkFTb':_0x224f(0x24a),'iNqeA':_0x224f(0x24b),'pwcsT':'WCjSR','qmqBZ':'Google\x20Sign-In\x20already\x20in\x20progress','EeXYW':function(_0x36d1da,_0x17c633){return _0x36d1da===_0x17c633;},'rNxPU':_0x224f(0x24c),'UAGfm':function(_0x4e972c,_0x29ec78){return _0x4e972c===_0x29ec78;},'xdvrX':_0x224f(0x24d),'wLnlF':function(_0x2ba01c,_0x1e7770){return _0x2ba01c===_0x1e7770;},'tadUH':_0x224f(0x24e)};if(_0x1cabc8===_0xd752d9['jbCUI']){if(_0xd752d9['tBxMw'](_0xd752d9[_0x224f(0x24f)],_0x224f(0x250))){console[_0x224f(0x43)](_0xd752d9[_0x224f(0x251)]);if(!_0x4635e4||_0xd752d9[_0x224f(0x252)](_0x4635e4['trim'](),'')){if(_0x224f(0x253)!==_0xd752d9[_0x224f(0x254)])return console[_0x224f(0x4e)](_0xd752d9[_0x224f(0x255)]),![];else{var _0x39e8e5;if(_0xd752d9[_0x224f(0x256)](_0x1e46ff[_0x224f(0x57)],_0xd752d9[_0x224f(0x257)]))_0xfd86be['error'](_0x224f(0xc5)+_0x1e8fef+_0x224f(0xc6));else{if(_0xd752d9[_0x224f(0x258)](_0x39e8e5=_0x5862e4[_0x224f(0x4d)],null)&&_0xd752d9[_0x224f(0x258)](_0x39e8e5,void 0x0)&&_0x39e8e5[_0x224f(0xc8)](_0xd752d9[_0x224f(0x259)])){const _0x3121f9=_0x224f(0x25a)[_0x224f(0x99)]('|');let _0x2fca2b=0x0;while(!![]){switch(_0x3121f9[_0x2fca2b++]){case'0':_0x3721bf['error'](_0xd752d9[_0x224f(0x25b)]);continue;case'1':_0x7ef1c8['error']('โŒ\x20[OAUTH]\x20Network\x20request\x20failed\x20for\x20'+_0x5879ca+_0x224f(0xd1));continue;case'2':_0x277439[_0x224f(0x4e)](_0x224f(0x86));continue;case'3':_0x21a9a4[_0x224f(0x4e)]('\x20\x20\x201.\x20No\x20internet\x20connection\x20on\x20device/simulator');continue;case'4':_0x3c624f[_0x224f(0x4e)](_0xd752d9['Ufjqg']);continue;case'5':_0xa9fc44[_0x224f(0x4e)](_0x224f(0x25c));continue;}break;}}else _0x205a32[_0x224f(0x4e)]('โŒ\x20[OAUTH]\x20Error\x20initiating\x20OAuth\x20for\x20'+_0x5e2e33+':',_0x2eb6f);}return null;}}try{if(_0xd752d9[_0x224f(0x258)](_0xd752d9[_0x224f(0x25d)],_0xd752d9[_0x224f(0x25d)]))_0x40ffd9[_0x224f(0x43)](_0xd752d9[_0x224f(0x25e)],_0x175735);else{var _0x55abb4,_0x51571f,_0x4e86c6,_0x2d9fcd,_0x486e08,_0x5b2104,_0x4b02a5,_0xa764b7,_0x12a559,_0x1b737b;_0xd752d9['layif'](initializeGoogleSignIn),await _googleSignin[_0x224f(0xd7)][_0x224f(0x12f)]();try{_0xd752d9[_0x224f(0x256)](_0xd752d9[_0x224f(0x25f)],_0xd752d9[_0x224f(0x25f)])?(await _googleSignin[_0x224f(0xd7)]['signOut'](),console[_0x224f(0x43)](_0xd752d9['lGMoo'])):(_0x59e3ae[_0x224f(0xbf)](_0xd752d9[_0x224f(0x260)],_0xacc486),_0xd4655b['warn'](_0xd752d9['cuoaV']));}catch(_0x4e3597){console['log'](_0xd752d9[_0x224f(0x25e)],_0x4e3597);}const _0x4f7291=await _googleSignin[_0x224f(0xd7)][_0x224f(0x131)]();console['log'](_0xd752d9['MUiFa'],_0xd752d9[_0x224f(0x256)](_0x55abb4=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9[_0x224f(0x261)](_0x55abb4,void 0x0)||_0xd752d9['psJGv'](_0x55abb4=_0x55abb4['user'],null)||_0xd752d9['CvFMq'](_0x55abb4,void 0x0)?void 0x0:_0x55abb4[_0x224f(0x59)]),console['log'](_0x224f(0x262)),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x4f7291,null,0x2));const _0x438f33=await _googleSignin[_0x224f(0xd7)][_0x224f(0x135)]();console[_0x224f(0x43)](_0xd752d9[_0x224f(0x263)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x264)]),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x438f33,null,0x2));const _0xd96a0a=await _googleSignin['GoogleSignin'][_0x224f(0x1c4)]();console['log'](_0xd752d9[_0x224f(0x265)],_0xd752d9[_0x224f(0x266)](_0xd96a0a,null)||_0xd96a0a===void 0x0||_0xd752d9[_0x224f(0x256)](_0x51571f=_0xd96a0a[_0x224f(0x56)],null)||_0x51571f===void 0x0?void 0x0:_0x51571f[_0x224f(0x59)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x267)]),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0xd96a0a,null,0x2));let _0x48669b=null;console['log'](_0xd752d9[_0x224f(0x268)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x269)],_0xd752d9[_0x224f(0x26a)](_0x4e86c6=_0x4f7291[_0x224f(0xae)],null)&&_0xd752d9[_0x224f(0x26b)](_0x4e86c6,void 0x0)&&_0x4e86c6[_0x224f(0x78)]?_0x224f(0x26c)+_0x4f7291[_0x224f(0xae)][_0x224f(0x78)][_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0xd752d9[_0x224f(0x26d)]),console['log'](_0xd752d9[_0x224f(0x26e)],_0xd752d9['wdpjk'](_0xd96a0a,null)&&_0xd752d9[_0x224f(0x26f)](_0xd96a0a,void 0x0)&&_0xd96a0a[_0x224f(0x78)]?_0x224f(0x26c)+_0xd96a0a[_0x224f(0x78)]['substring'](0x0,0x14)+'...':_0x224f(0xf7)),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x270)],_0x438f33[_0x224f(0x13d)]?_0x224f(0x26c)+_0x438f33[_0x224f(0x13d)][_0x224f(0x63)](0x0,0x14)+'...':_0x224f(0xf7)),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x271)],_0x438f33[_0x224f(0x128)]?_0x224f(0x26c)+_0x438f33[_0x224f(0x128)][_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0xd752d9[_0x224f(0x26d)]);if(_0xd96a0a!==null&&_0xd752d9[_0x224f(0x272)](_0xd96a0a,void 0x0)&&_0xd96a0a[_0x224f(0x78)])_0x48669b=_0xd96a0a[_0x224f(0x78)],console[_0x224f(0x43)](_0xd752d9[_0x224f(0x273)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x274)],_0x48669b[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67));else _0xd752d9[_0x224f(0x26f)](_0x2d9fcd=_0x4f7291[_0x224f(0xae)],null)&&_0xd752d9['AmZuR'](_0x2d9fcd,void 0x0)&&_0x2d9fcd[_0x224f(0x78)]&&(_0xd752d9['eICfA'](_0xd752d9[_0x224f(0x275)],_0xd752d9[_0x224f(0x275)])?(_0x48669b=_0x4f7291[_0x224f(0xae)][_0x224f(0x78)],console['log'](_0xd752d9[_0x224f(0x276)]),console['log'](_0xd752d9['twbDM'],_0x48669b[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67))):_0x1845cb[_0x224f(0x4e)](_0xd752d9[_0x224f(0x277)]));!_0x48669b?(console[_0x224f(0x4e)](_0xd752d9[_0x224f(0x278)]),console['error'](_0x224f(0x7d)),console[_0x224f(0x4e)](_0xd752d9['uXLvA']),console['warn'](_0xd752d9['ocSjL'])):(console[_0x224f(0x43)](_0xd752d9[_0x224f(0x279)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x27a)],_0x48669b[_0x224f(0x9c)]('4/')?_0xd752d9[_0x224f(0x27b)]:'refreshToken'));let _0x11a940=_0x224f(0x30),_0x47c241=null;try{console['log']('๐Ÿ“บ\x20Fetching\x20YouTube\x20channel\x20information...');const _0x49b815=await fetch(_0xd752d9['MpYTy'],{'headers':{'Authorization':'Bearer\x20'+_0x438f33[_0x224f(0x128)],'Accept':'application/json'}});if(_0x49b815['ok']){const _0xa81d9a=await _0x49b815[_0x224f(0xb6)]();if(_0xa81d9a['items']&&_0xa81d9a[_0x224f(0x154)][_0x224f(0x165)]>0x0)_0xd752d9['QuoJC'](_0xd752d9['bqRqX'],_0xd752d9[_0x224f(0x27c)])?(_0x11a940=_0xa81d9a[_0x224f(0x154)][0x0][_0x224f(0x155)][_0x224f(0x156)],_0x47c241=_0xa81d9a[_0x224f(0x154)][0x0]['id'],console[_0x224f(0x43)]('โœ…\x20YouTube\x20channel\x20found:',_0x11a940,_0xd752d9[_0x224f(0x27d)],_0x47c241)):(_0x1bee12[_0x224f(0x60)]={'success':![],'error':_0x1e3ca9['message'],'name':_0x391834[_0x224f(0x57)]},_0x46915a[_0x224f(0x4e)](_0xd752d9[_0x224f(0x27e)],_0x576035[_0x224f(0x4d)]));else{var _0x161861,_0x569c0e;console[_0x224f(0x43)](_0xd752d9[_0x224f(0x27f)]),_0x11a940=(_0xd752d9[_0x224f(0x280)](_0x161861=_0x4f7291['data'],null)||_0xd752d9['OPRWo'](_0x161861,void 0x0)||_0xd752d9['eICfA'](_0x161861=_0x161861[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x281)](_0x161861,void 0x0)?void 0x0:_0x161861[_0x224f(0x57)])||((_0x569c0e=_0x4f7291[_0x224f(0xae)])===null||_0x569c0e===void 0x0||_0xd752d9[_0x224f(0x281)](_0x569c0e=_0x569c0e[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x282)](_0x569c0e,void 0x0)?void 0x0:_0x569c0e['email'])||_0xd752d9[_0x224f(0x283)];}}else{if(_0xd752d9[_0x224f(0x284)](_0xd752d9[_0x224f(0x285)],_0xd752d9['iiIOa'])){var _0x4dc4e4,_0x5ef283;console['log'](_0xd752d9['xHgCA'],_0x49b815[_0x224f(0x61)]),_0x11a940=(_0xd752d9[_0x224f(0x286)](_0x4dc4e4=_0x4f7291[_0x224f(0xae)],null)||_0x4dc4e4===void 0x0||_0xd752d9['btVMU'](_0x4dc4e4=_0x4dc4e4[_0x224f(0x56)],null)||_0xd752d9['psJGv'](_0x4dc4e4,void 0x0)?void 0x0:_0x4dc4e4['name'])||(_0xd752d9[_0x224f(0x287)](_0x5ef283=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9['hgibt'](_0x5ef283,void 0x0)||_0xd752d9['Phfic'](_0x5ef283=_0x5ef283[_0x224f(0x56)],null)||_0x5ef283===void 0x0?void 0x0:_0x5ef283[_0x224f(0x59)])||_0xd752d9['OkTst'];}else _0xd752d9['zlbIB'](_0x1883a7,()=>{_0x4358a6['log'](_0xd752d9[_0x224f(0x288)]),_0xd752d9[_0x224f(0x289)](_0x397383,!![]);},0x3e8);}}catch(_0x373b59){if(_0xd752d9['ecGno'](_0xd752d9[_0x224f(0x28a)],_0xd752d9[_0x224f(0x28b)]))_0x19a6a3[_0x224f(0x4a)]={'success':![],'error':_0x253ea8['message']},_0x40e5b4[_0x224f(0x4e)](_0xd752d9['keEyt'],_0x377d05[_0x224f(0x4d)]);else{var _0x371df9,_0x31813e;console['log'](_0x224f(0x53),_0x373b59),_0x11a940=(_0xd752d9[_0x224f(0x28c)](_0x371df9=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9[_0x224f(0x28d)](_0x371df9,void 0x0)||_0xd752d9[_0x224f(0x28e)](_0x371df9=_0x371df9[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x266)](_0x371df9,void 0x0)?void 0x0:_0x371df9[_0x224f(0x57)])||(_0xd752d9[_0x224f(0x286)](_0x31813e=_0x4f7291[_0x224f(0xae)],null)||_0x31813e===void 0x0||_0xd752d9[_0x224f(0x28f)](_0x31813e=_0x31813e[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x252)](_0x31813e,void 0x0)?void 0x0:_0x31813e[_0x224f(0x59)])||_0xd752d9[_0x224f(0x290)];}}let _0xdd98ee=await(0x0,_jwtStorageService['getJWT'])();const _0x1064ee=await _asyncStorage[_0x224f(0x291)][_0x224f(0x292)](_0xd752d9[_0x224f(0x293)]),_0xc49749=_0xd752d9[_0x224f(0x294)](_0x1064ee,_0x4635e4)||(_0xd752d9[_0x224f(0x295)](_0x486e08=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9[_0x224f(0x28e)](_0x486e08,void 0x0)||_0xd752d9[_0x224f(0x296)](_0x486e08=_0x486e08['user'],null)||_0xd752d9[_0x224f(0x28e)](_0x486e08,void 0x0)?void 0x0:_0x486e08[_0x224f(0x59)])||_0xd752d9['nIMBL'];!_0xdd98ee||_0xd752d9[_0x224f(0x297)](_0xdd98ee['trim']()[_0x224f(0x165)],0x14)?(console['log'](_0xd752d9[_0x224f(0x298)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x299)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x29a)])):(console[_0x224f(0x43)](_0xd752d9[_0x224f(0x29b)]),console['log'](_0xd752d9[_0x224f(0x29c)],_0xdd98ee[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67)));console[_0x224f(0x43)](_0xd752d9[_0x224f(0x29d)],_0xc49749),console[_0x224f(0x43)](_0x224f(0x29e),_0xdd98ee?_0xdd98ee[_0x224f(0x63)](0x0,0x14)+_0x224f(0x67):_0xd752d9['gRuMW']),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x29f)],_0x11a940);const _0x1b2be5={'session':{'username':_0xc49749,'platform':_0xd752d9[_0x224f(0x2a0)],'timestamp':new Date()[_0x224f(0xa6)](),'channelName':_0x11a940,'channelId':_0x47c241},'googleUser':(_0x5b2104=_0x4f7291[_0x224f(0xae)])===null||_0x5b2104===void 0x0?void 0x0:_0x5b2104[_0x224f(0x56)],'accessToken':_0x438f33[_0x224f(0x128)],'idToken':_0x438f33['idToken'],'refreshToken':_0x48669b,'serverAuthCode':_0x48669b,'refresh_token':_0x48669b,'server_auth_code':_0x48669b,'authCode':_0x48669b,'userAccountInfo':{'username':_0xc49749,'email':_0xd752d9['UWTqr'](_0x4b02a5=_0x4f7291['data'],null)||_0x4b02a5===void 0x0||_0xd752d9['HlWwv'](_0x4b02a5=_0x4b02a5[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x2a1)](_0x4b02a5,void 0x0)?void 0x0:_0x4b02a5['email'],'authToken':_0xdd98ee,'channelName':_0x11a940,'channelId':_0x47c241,'userIdentifier':_0xdd98ee?_0x224f(0x2a2)+_0xdd98ee['substring'](0x0,0xa):'youtube-'+(_0xd752d9[_0x224f(0x2a3)](_0xa764b7=_0x4f7291['data'],null)||_0xa764b7===void 0x0||(_0xa764b7=_0xa764b7[_0x224f(0x56)])===null||_0xa764b7===void 0x0?void 0x0:_0xa764b7[_0x224f(0x59)]),'googleId':_0xd752d9['GdQTp'](_0x12a559=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9['BnnIx'](_0x12a559,void 0x0)||_0xd752d9['MscNT'](_0x12a559=_0x12a559[_0x224f(0x56)],null)||_0xd752d9[_0x224f(0x287)](_0x12a559,void 0x0)?void 0x0:_0x12a559['id'],'appleUserId':_0xd752d9['UTZdM'](_0xdd98ee,null)&&_0xd752d9[_0x224f(0x26f)](_0xdd98ee,void 0x0)&&_0xdd98ee['includes'](_0xd752d9[_0x224f(0x2a4)])?_0xdd98ee['split']('.')[0x1]:null,'refreshToken':_0x48669b,'serverAuthCode':_0x48669b},'tokenExpiry':new Date(Date[_0x224f(0x170)]()+_0xd752d9[_0x224f(0x2a5)](0xe10,0x3e8))[_0x224f(0xa6)](),'requestRefreshToken':!![],'debugInfo':{'hasRefreshToken':!!_0x48669b,'refreshTokenType':_0x48669b?_0x48669b['startsWith']('4/')?_0xd752d9[_0x224f(0x27b)]:_0xd752d9[_0x224f(0x2a6)]:_0xd752d9['dSWgZ'],'configuredForRefresh':!![],'forcedConsent':!![],'refreshTokenValue':_0x48669b}};console[_0x224f(0x43)](_0xd752d9[_0x224f(0x2a7)]),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x2a8)],!!_0x1b2be5['accessToken']),console[_0x224f(0x43)](_0xd752d9['ypUzF'],!!_0x1b2be5[_0x224f(0x79)]),console['log'](_0xd752d9[_0x224f(0x2a9)],!!_0x1b2be5['serverAuthCode']),console['log'](_0xd752d9[_0x224f(0x2aa)],_0x1b2be5['debugInfo']['refreshTokenType']),console[_0x224f(0x43)](_0xd752d9['utMao'],_0xd752d9[_0x224f(0x2ab)](_0x1b737b=_0x4f7291[_0x224f(0xae)],null)||_0xd752d9[_0x224f(0x2ac)](_0x1b737b,void 0x0)||_0xd752d9[_0x224f(0x2ad)](_0x1b737b=_0x1b737b[_0x224f(0x56)],null)||_0x1b737b===void 0x0?void 0x0:_0x1b737b['email']),console[_0x224f(0x43)](_0xd752d9['xKVgC'],_0x11a940),console[_0x224f(0x43)](_0xd752d9[_0x224f(0x2ae)]),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x1b2be5,null,0x2)),console['log']('๐Ÿ“ค\x20Sending\x20YouTube\x20auth\x20to\x20backend\x20with\x20refresh\x20token:',!!_0x48669b);const _0x22789c=await _0xd752d9[_0x224f(0x2af)](fetch,_api[_0x224f(0x1e)][_0x224f(0x1c)]+_0x224f(0x17e),{'method':'POST','headers':{'Content-Type':'application/json',..._0xd752d9[_0x224f(0x2b0)](_0xdd98ee,{'Authorization':_0xdd98ee})},'body':JSON[_0x224f(0x137)](_0x1b2be5)});console[_0x224f(0x43)](_0xd752d9['eaiZS'],_0x22789c[_0x224f(0x61)]),console[_0x224f(0x43)](_0x224f(0x2b1),_0x22789c[_0x224f(0x2b2)]);if(_0x22789c['ok']){if(_0xd752d9[_0x224f(0x2b3)](_0xd752d9[_0x224f(0x2b4)],_0xd752d9['yHjjZ']))return _0x26b0cb[_0x224f(0x4e)](_0xd752d9[_0x224f(0x2b5)],_0x189cb5),{'success':![],'isPending':![],'error':_0xd752d9[_0x224f(0x2b6)]};else{var _0xd5c206,_0x15e374;const _0x1b98d0=await _0x22789c[_0x224f(0xb6)]();console[_0x224f(0x43)](_0xd752d9['zfLcR']),console[_0x224f(0x43)](_0xd752d9['XdYAt']),console[_0x224f(0x43)](JSON[_0x224f(0x137)](_0x1b98d0,null,0x2));const _0x25d360=_0xd752d9[_0x224f(0x2b7)](_0xd752d9[_0x224f(0x2b7)](_0xd5c206=_0x1b98d0[_0x224f(0x183)],null)||_0xd752d9['CfLYh'](_0xd5c206,void 0x0)?void 0x0:_0xd5c206['isTemporaryMode'],!![])||(_0xd752d9['YIYvn'](_0x15e374=_0x1b98d0['temporaryMode'],null)||_0xd752d9[_0x224f(0x252)](_0x15e374,void 0x0)?void 0x0:_0x15e374[_0x224f(0x187)])===!![]||_0xd752d9[_0x224f(0x2b8)](_0x1b98d0[_0x224f(0x184)],!![])||_0x1b98d0[_0x224f(0x4d)]&&_0x1b98d0[_0x224f(0x4d)][_0x224f(0xc8)](_0xd752d9['DgwCf']);if(_0x25d360)_0xd752d9[_0x224f(0x2b9)](_0xd752d9[_0x224f(0x2ba)],_0xd752d9['PaWYT'])?(console[_0x224f(0x43)](_0xd752d9[_0x224f(0x2bb)]),console['log'](_0xd752d9[_0x224f(0x2bc)]),console['log'](_0xd752d9['Chmoj'])):(_0x19b1f5=_0x18fd7a[_0x224f(0x154)][0x0][_0x224f(0x155)][_0x224f(0x156)],_0x519bfb=_0x29608a[_0x224f(0x154)][0x0]['id'],_0x2ba09a[_0x224f(0x43)](_0xd752d9['XcoAV'],_0x16680b,_0x224f(0x100),_0x27c227));else{if(_0x1b98d0[_0x224f(0xa2)]||_0x1b98d0['refreshTokenReceived']){if(_0xd752d9[_0x224f(0x2bd)](_0xd752d9[_0x224f(0x2be)],_0xd752d9[_0x224f(0x2bf)]))console[_0x224f(0x43)]('โœ…\x20[YOUTUBE\x20AUTH]\x20Backend\x20confirmed\x20refresh\x20token\x20received'),console[_0x224f(0x43)](_0xd752d9['BOLew']);else{_0x4e3932[_0x224f(0x4e)](_0xd752d9[_0x224f(0x2c0)],_0x248732);if(_0xd752d9['dOvQo'](_0x1a6db8[_0x224f(0x1b)],_0x343fa5[_0x224f(0x1aa)][_0x224f(0x1a6)]))_0x1f97ec['log'](_0xd752d9[_0x224f(0x2c1)]);else{if(_0xd752d9['CvFMq'](_0x8c7ddb[_0x224f(0x1b)],_0x1bc717[_0x224f(0x1aa)][_0x224f(0x1a9)]))_0x41068f[_0x224f(0x43)](_0x224f(0x2c2));else _0xd752d9[_0x224f(0x256)](_0x4b5eb2[_0x224f(0x1b)],_0x536e84[_0x224f(0x1aa)]['PLAY_SERVICES_NOT_AVAILABLE'])&&_0x8733f0[_0x224f(0x43)](_0xd752d9['CsfIR']);}return![];}}else console[_0x224f(0xbf)](_0xd752d9[_0x224f(0x2c3)]),console[_0x224f(0xbf)](_0xd752d9[_0x224f(0x2c4)],Object[_0x224f(0x2c5)](_0x1b98d0)),console[_0x224f(0xbf)](_0xd752d9['hAJQy']);}return!![];}}else{const _0x2d42fe=await _0x22789c[_0x224f(0x5e)]();return console[_0x224f(0x4e)](_0xd752d9['GkFTb'],_0x22789c[_0x224f(0x61)]),console['error'](_0xd752d9[_0x224f(0x2c6)]),console[_0x224f(0x4e)](_0x2d42fe),![];}}}catch(_0x3e5fc6){console['error'](_0xd752d9[_0x224f(0x2c0)],_0x3e5fc6);if(_0x3e5fc6[_0x224f(0x1b)]===_googleSignin['statusCodes'][_0x224f(0x1a6)]){if(_0xd752d9['tBxMw'](_0xd752d9[_0x224f(0x2c7)],_0x224f(0x2c8)))console[_0x224f(0x43)](_0x224f(0x221));else{_0x3b2630['error']('Error\x20exchanging\x20code\x20for\x20token:\x20'+_0x27ce95['status']);throw new _0x1eecc3(_0x224f(0x2c9)+_0x1aa28c[_0x224f(0x61)]);}}else{if(_0xd752d9[_0x224f(0x2ca)](_0x3e5fc6['code'],_googleSignin['statusCodes'][_0x224f(0x1a9)]))console[_0x224f(0x43)](_0xd752d9[_0x224f(0x2cb)]);else{if(_0xd752d9[_0x224f(0x261)](_0x3e5fc6[_0x224f(0x1b)],_googleSignin[_0x224f(0x1aa)][_0x224f(0x1ab)])){if(_0xd752d9['EeXYW'](_0xd752d9['rNxPU'],_0x224f(0x24c)))console['log'](_0xd752d9[_0x224f(0x2cc)]);else return _0x519514['log'](_0xd752d9[_0x224f(0x2cd)]),null;}}}return![];}}else return _0x1326b3[_0x224f(0x4e)](_0xd752d9[_0x224f(0x2ce)]),![];}if(_0xd752d9[_0x224f(0x2cf)](_0x1cabc8,_0xd752d9['xdvrX'])){if(_0xd752d9[_0x224f(0x2d0)](_0xd752d9['tadUH'],_0x224f(0x2d1)))_0x1feaf6[_0x224f(0x43)](_0xd752d9[_0x224f(0x2d2)],_0x30b0b9);else return console['log']('Initiating\x20Facebook\x20Login\x20for\x20Instagram'),new Promise(_0x8d1c00=>{const _0x7b13b2={'ZZqAx':_0xd752d9[_0x224f(0x2c3)],'FWmdm':_0xd752d9[_0x224f(0x2c4)],'knkbX':_0xd752d9[_0x224f(0x2d3)]};_0xd752d9['iZrVO'](_0x224f(0x2d4),'xrpPm')?_0xd752d9[_0x224f(0x2d5)](setTimeout,()=>{console[_0x224f(0x43)]('Facebook\x20Login\x20completed\x20successfully'),_0xd752d9[_0x224f(0x2d6)](_0x8d1c00,!![]);},0x3e8):(_0x28ad92[_0x224f(0xbf)](_0x7b13b2['ZZqAx']),_0x1f224c['warn'](_0x7b13b2['FWmdm'],_0x16cb76[_0x224f(0x2c5)](_0x12f442)),_0x211639[_0x224f(0xbf)](_0x7b13b2[_0x224f(0x2d7)]));});}return![];};exports[_0x224f(0x9)]=initiateNativeAuth;const isOAuthCallback=_0x255ba5=>{const _0x2dd339={'GZoYu':_0x224f(0x1e0),'zbbAu':_0x224f(0x1d3)};return _0x255ba5['includes'](_0x2dd339[_0x224f(0x2d8)])||_0x255ba5['includes'](_0x2dd339[_0x224f(0x2d9)]);};exports[_0x224f(0x7)]=isOAuthCallback;const exchangeCodeForToken=async(_0x25b085,_0x2f1f56)=>{const _0x180798={'jdLzK':_0x224f(0x219),'ooTsl':function(_0x5eb5d5,_0x40876){return _0x5eb5d5(_0x40876);},'iPOdu':function(_0x4a4c37,_0x48c9b3,_0x3622bc){return _0x4a4c37(_0x48c9b3,_0x3622bc);},'BcazE':_0x224f(0x2da)};console[_0x224f(0x43)](_0x224f(0x2db)+_0x2f1f56);try{const _0x903620=_api[_0x224f(0x1e)][_0x224f(0x1c)]+'/'+_0x2f1f56+_0x224f(0x2dc),_0x42c866=await _0x180798['iPOdu'](fetch,_0x903620,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x224f(0x137)]({'code':_0x25b085,'platform':_0x2f1f56})});if(!_0x42c866['ok']){console[_0x224f(0x4e)](_0x224f(0x2dd)+_0x42c866[_0x224f(0x61)]);throw new Error(_0x224f(0x2c9)+_0x42c866[_0x224f(0x61)]);}const _0x15084e=await _0x42c866['json']();return console[_0x224f(0x43)](_0x224f(0x2de)+_0x2f1f56),_0x15084e;}catch(_0x37b02b){if(_0x180798[_0x224f(0x2df)]!==_0x224f(0x2da))_0x368235[_0x224f(0x43)](_0x180798[_0x224f(0x2e0)]),_0x180798['ooTsl'](_0x50a7b5,!![]);else return console[_0x224f(0x4e)]('Error\x20exchanging\x20code\x20for\x20token:',_0x37b02b),console['log'](_0x224f(0x2e1)),{'access_token':_0x2f1f56+_0x224f(0x2e2)+Math['random']()[_0x224f(0x2e3)](0x24)[_0x224f(0x63)](0x7),'refresh_token':_0x2f1f56+_0x224f(0x2e4)+Math[_0x224f(0x2e5)]()['toString'](0x24)[_0x224f(0x63)](0x7),'expires_in':0xe10};}};exports[_0x224f(0xf)]=exchangeCodeForToken;const refreshYouTubeTokens=async()=>{const _0x53673a={'Rmnco':_0x224f(0x42),'jRNgI':_0x224f(0x1ff),'UQLdk':_0x224f(0x1ad),'RpgOk':function(_0x4f89fc,_0x153186,_0x26803e){return _0x4f89fc(_0x153186,_0x26803e);},'wgtWp':function(_0x3ac63b,_0x1aaf36){return _0x3ac63b===_0x1aaf36;},'eSasx':function(_0x52c729,_0x3d101f){return _0x52c729*_0x3d101f;},'cFzUQ':function(_0x2dac0a,_0x35f80b){return _0x2dac0a!==_0x35f80b;},'InOpS':_0x224f(0x2e6),'RDxCA':_0x224f(0x2e7),'OelVV':_0x224f(0x2e8),'Xwskk':_0x224f(0x2e9)};try{var _0x1d36e4;console[_0x224f(0x43)](_0x224f(0x2ea));const _0x47d214=await _googleSignin['GoogleSignin'][_0x224f(0x135)]();if(!_0x47d214)return console[_0x224f(0x4e)](_0x224f(0x80)),![];const _0x199164=await _googleSignin[_0x224f(0xd7)]['getCurrentUser']();if(!_0x199164)return console[_0x224f(0x4e)]('โŒ\x20No\x20current\x20Google\x20user\x20found'),![];const _0x27e432=await(0x0,_jwtStorageService[_0x224f(0x163)])();if(!_0x27e432)return console[_0x224f(0x4e)](_0x53673a[_0x224f(0x2eb)]),![];const _0x2617b8=await _0x53673a[_0x224f(0x2ec)](fetch,_api[_0x224f(0x1e)][_0x224f(0x1c)]+_0x224f(0x2ed),{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x27e432},'body':JSON['stringify']({'accessToken':_0x47d214[_0x224f(0x128)],'idToken':_0x47d214[_0x224f(0x13d)],'refreshToken':_0x199164['serverAuthCode'],'userEmail':(_0x1d36e4=_0x199164[_0x224f(0x56)])===null||_0x53673a['wgtWp'](_0x1d36e4,void 0x0)?void 0x0:_0x1d36e4[_0x224f(0x59)],'tokenExpiry':new Date(Date[_0x224f(0x170)]()+_0x53673a[_0x224f(0x2ee)](0xe10,0x3e8))[_0x224f(0xa6)](),'timestamp':new Date()[_0x224f(0xa6)]()})});if(_0x2617b8['ok']){if(_0x53673a[_0x224f(0x2ef)](_0x53673a[_0x224f(0x2f0)],_0x224f(0x2e6)))return _0x486014[_0x224f(0x4e)](_0x53673a['Rmnco'],_0x5c84fc[_0x224f(0x4d)]),{'success':![],'message':_0x224f(0x76)+_0x1b7eef[_0x224f(0x4d)],'details':{'error':_0x34f849[_0x224f(0x4d)],'results':_0x3105f4}};else{const _0x57b926=await _0x2617b8[_0x224f(0xb6)]();return console[_0x224f(0x43)](_0x224f(0x2f1),_0x57b926),!![];}}else{if(_0x53673a['wgtWp'](_0x53673a[_0x224f(0x2f2)],_0x53673a['RDxCA'])){const _0x5ec2b7=await _0x2617b8[_0x224f(0x5e)]();return console[_0x224f(0x4e)](_0x53673a[_0x224f(0x2f3)],_0x2617b8[_0x224f(0x61)],_0x5ec2b7),![];}else return _0x5b332f[_0x224f(0x4e)](_0x53673a[_0x224f(0x2f4)],_0x2fc375),![];}}catch(_0x16207a){return console[_0x224f(0x4e)](_0x53673a[_0x224f(0x2f5)],_0x16207a),![];}};exports[_0x224f(0x5)]=refreshYouTubeTokens;const triggerTrainingRestart=async(_0x375980,_0x318235)=>{const _0x1509ab={'QVjZa':'User\x20cancelled\x20Google\x20Sign-In','DOqok':'2|4|3|5|0|1','yXhzY':_0x224f(0x25c),'uGwvN':_0x224f(0x87),'QspTm':'\x20\x20\x201.\x20No\x20internet\x20connection\x20on\x20device/simulator','Gyoha':_0x224f(0x86),'lSsAU':function(_0x4dfdd1,_0x3ffd3a){return _0x4dfdd1!==_0x3ffd3a;},'BeNJf':'MbUXL','rSAVY':_0x224f(0x2f6),'eWSTT':function(_0x218f50,_0x1d640f,_0x483872){return _0x218f50(_0x1d640f,_0x483872);},'iYVtA':_0x224f(0x2f7),'ajSGu':'youtube','wqwKX':'โŒ\x20[TRAINING\x20RESTART]\x20Training\x20restart\x20failed:','EJXcS':function(_0x4da32a,_0x474f65){return _0x4da32a!==_0x474f65;},'voXbc':_0x224f(0x2f8),'ucqNr':_0x224f(0x2f9)};try{if(_0x1509ab[_0x224f(0x2fa)](_0x1509ab[_0x224f(0x2fb)],_0x1509ab['BeNJf']))_0x467e97[_0x224f(0x43)](_0x1509ab[_0x224f(0x2fc)]);else{console[_0x224f(0x43)](_0x1509ab[_0x224f(0x2fd)],_0x375980);const _0x5488a8=await _0x1509ab[_0x224f(0x2fe)](fetch,_api[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x2ff),{'method':'POST','headers':{'Content-Type':'application/json','Authorization':_0x318235},'body':JSON['stringify']({'username':_0x375980,'reason':_0x1509ab['iYVtA'],'platform':_0x1509ab['ajSGu'],'timestamp':new Date()[_0x224f(0xa6)](),'requestNewTraining':!![]})});if(_0x5488a8['ok']){const _0x2312d0=await _0x5488a8[_0x224f(0xb6)]();console['log'](_0x224f(0x300),_0x2312d0);}else{const _0x128ad5=await _0x5488a8[_0x224f(0x5e)]();console[_0x224f(0x4e)](_0x1509ab[_0x224f(0x301)],_0x5488a8[_0x224f(0x61)],_0x128ad5);throw new Error(_0x224f(0x302)+_0x5488a8[_0x224f(0x61)]);}}}catch(_0x14a077){if(_0x1509ab[_0x224f(0x303)](_0x1509ab[_0x224f(0x304)],_0x1509ab[_0x224f(0x304)])){const _0x28f5ce=_0x1509ab[_0x224f(0x305)]['split']('|');let _0x207e14=0x0;while(!![]){switch(_0x28f5ce[_0x207e14++]){case'0':_0x156d05[_0x224f(0x4e)](_0x1509ab[_0x224f(0x306)]);continue;case'1':_0x13e904['error']('\x20\x20\x205.\x20iOS\x20simulator\x20network\x20sandbox\x20issue\x20-\x20try\x20on\x20physical\x20device');continue;case'2':_0xa307ed[_0x224f(0x4e)]('โŒ\x20[OAUTH]\x20Network\x20request\x20failed\x20for\x20'+_0x26b621+'.\x20Possible\x20causes:');continue;case'3':_0x4ce10d[_0x224f(0x4e)](_0x1509ab[_0x224f(0x307)]);continue;case'4':_0x40acd1[_0x224f(0x4e)](_0x1509ab[_0x224f(0x308)]);continue;case'5':_0x1c5a97[_0x224f(0x4e)](_0x1509ab[_0x224f(0x309)]);continue;}break;}}else{console[_0x224f(0x4e)](_0x1509ab[_0x224f(0x30a)],_0x14a077);throw _0x14a077;}}},testYouTubeRefreshToken=async _0x16582f=>{const _0x28b76f={'ckGrS':_0x224f(0x119),'TlzsB':_0x224f(0xee),'XwcAo':'No\x20API\x20key\x20configured.\x20Please\x20initialize\x20the\x20SDK\x20with\x20a\x20valid\x20developer\x20API\x20key.','Tqrmm':_0x224f(0x30b),'gZMUW':function(_0x1b9b64,_0x5b62a0){return _0x1b9b64!==_0x5b62a0;},'xClPB':_0x224f(0x30c),'YObRr':_0x224f(0x30d),'cxSCM':function(_0x1ff514){return _0x1ff514();},'SdjEd':_0x224f(0x30e),'Hnhwb':function(_0x22af97,_0x4c4dc7){return _0x22af97===_0x4c4dc7;},'ExGuP':_0x224f(0x30f),'FmAtB':function(_0xfd981,_0x3b2c80){return _0xfd981(_0x3b2c80);},'awsYC':_0x224f(0x310),'dcjPt':function(_0x2cfe65){return _0x2cfe65();},'inCPu':_0x224f(0x311),'EqeAD':_0x224f(0x21e),'OIszE':_0x224f(0x312),'UUnsP':_0x224f(0x313),'GKIAI':function(_0x3b762e,_0x37dff2){return _0x3b762e===_0x37dff2;}};console[_0x224f(0x43)](_0x28b76f['Tqrmm']),console['log'](_0x224f(0xe9),_0x16582f);try{if(_0x28b76f[_0x224f(0x314)](_0x28b76f[_0x224f(0x315)],_0x28b76f[_0x224f(0x316)])){const _0x194c1c=await _0x28b76f['cxSCM'](debugYouTubeTokens);console[_0x224f(0x43)](_0x28b76f[_0x224f(0x317)],_0x194c1c);if(!_0x194c1c[_0x224f(0xa2)]){if(_0x28b76f[_0x224f(0x318)](_0x28b76f[_0x224f(0x319)],_0x28b76f['ExGuP'])){console[_0x224f(0x43)](_0x224f(0x31a));const _0x57aa85=await _0x28b76f[_0x224f(0x31b)](fixUserYouTubeConnection,_0x16582f);if(_0x57aa85){console[_0x224f(0x43)](_0x28b76f['awsYC']);const _0x5142ac=await _0x28b76f[_0x224f(0x31c)](debugYouTubeTokens);console[_0x224f(0x43)](_0x28b76f[_0x224f(0x31d)],_0x5142ac);}else console[_0x224f(0x4e)](_0x28b76f[_0x224f(0x31e)]);}else _0x1153fa[_0x224f(0x4e)](_0x224f(0x118)),_0x46bea1[_0x224f(0x4e)](_0x28b76f[_0x224f(0x31f)]);}else _0x28b76f[_0x224f(0x318)](_0x224f(0x320),_0x28b76f[_0x224f(0x321)])?(_0x14583a[_0x224f(0x43)](_0x224f(0xab)+_0x42eec1+'\x20-\x20aborting'),_0x33dce9[_0x224f(0xac)]()):console[_0x224f(0x43)](_0x28b76f[_0x224f(0x322)]);}else _0x3b1eae['log'](_0x28b76f[_0x224f(0x323)],_0x1511d2);}catch(_0x17ce73){if(_0x28b76f[_0x224f(0x324)](_0x224f(0x325),'vMEpn'))console['error'](_0x224f(0x326),_0x17ce73);else throw new _0x2655ca(_0x28b76f[_0x224f(0x327)]);}};exports[_0x224f(0x2)]=testYouTubeRefreshToken;const requestEmailVerification=async(_0x478bd5,_0x2cd289=![])=>{const _0x55f458={'Ldlof':_0x224f(0x8d),'Rxfjw':'โŒ\x20YouTube\x20reconnection\x20failed','TqLdb':function(_0x3944bc,_0x462f05){return _0x3944bc===_0x462f05;},'dmjkQ':'QcKfX','KYrGi':function(_0x33dc8b){return _0x33dc8b();},'eewyf':_0x224f(0x328),'djtup':_0x224f(0x329),'riLQO':_0x224f(0x32a),'yZVAL':_0x224f(0x7f),'DrGDK':function(_0x2df47f,_0x406918){return _0x2df47f===_0x406918;},'PwrZz':_0x224f(0x32b),'fBjDP':_0x224f(0x32c)};try{if(_0x55f458[_0x224f(0x32d)](_0x55f458[_0x224f(0x32e)],_0x55f458[_0x224f(0x32e)])){console[_0x224f(0x43)](_0x224f(0x32f),_0x478bd5);const _0x3c0a96=await fetch(_api[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x330),{'method':'POST','headers':_0x55f458[_0x224f(0x331)](getDeveloperAuthHeaders),'body':JSON[_0x224f(0x137)]({'email':_0x478bd5,'action':_0x55f458[_0x224f(0x332)],'testMode':_0x2cd289})}),_0x3cbfdb=await _0x3c0a96[_0x224f(0xb6)]();if(_0x3c0a96['ok']){if(_0x55f458[_0x224f(0x333)]===_0x224f(0x329))return{'success':!![],'message':_0x3cbfdb['message']||_0x55f458[_0x224f(0x334)]};else{_0x1a0439[_0x224f(0x4e)]('โŒ\x20[TRAINING\x20RESTART]\x20Error\x20triggering\x20training\x20restart:',_0x439053);throw _0x378fad;}}else return{'success':![],'error':_0x3cbfdb[_0x224f(0x4d)]||_0x55f458[_0x224f(0x335)]};}else return _0xe7e719['log'](_0x55f458[_0x224f(0x336)]),_0x202a5e[_0x224f(0x1e)]['BASE_URL']+_0x224f(0x8e);}catch(_0x2fe5a7){return _0x55f458[_0x224f(0x337)](_0x55f458['PwrZz'],_0x55f458[_0x224f(0x338)])?(console['error'](_0x224f(0x339),_0x2fe5a7),{'success':![],'error':_0x55f458[_0x224f(0x33a)]}):(_0x42e07f['error'](_0x55f458[_0x224f(0x33b)]),![]);}};exports[_0x224f(0x4)]=requestEmailVerification;const verifyEmailCode=async(_0x2e5a5c,_0x4ec676,_0x377670=![])=>{const _0x50a73e={'DNGky':_0x224f(0x236),'rJMyV':'โ„น๏ธ\x20NOTE:\x20SDK\x20does\x20not\x20create\x20users\x20during\x20YouTube\x20connection','BFnGp':'โ„น๏ธ\x20User\x20should\x20authenticate\x20first\x20via\x20Google/Apple/Email\x20before\x20connecting\x20YouTube','cRIqZ':function(_0x1250a6,_0x587202){return _0x1250a6===_0x587202;},'AByVd':_0x224f(0x33c),'wtBSG':_0x224f(0x33d),'fMOVR':function(_0x111616,_0x55f883,_0x2708b9){return _0x111616(_0x55f883,_0x2708b9);},'cNkUD':_0x224f(0x33e),'eCZCo':_0x224f(0x33f),'ysFiZ':'Invalid\x20verification\x20code','TGmKg':_0x224f(0x340),'UkuMM':_0x224f(0x32c)};try{if(_0x50a73e['AByVd']===_0x50a73e[_0x224f(0x341)]){console[_0x224f(0x43)](_0x50a73e[_0x224f(0x342)],_0x2e5a5c);const _0x2a4055=await _0x50a73e[_0x224f(0x343)](fetch,_api['API_CONFIG'][_0x224f(0x1c)]+_0x224f(0x330),{'method':'POST','headers':getDeveloperAuthHeaders(),'body':JSON[_0x224f(0x137)]({'email':_0x2e5a5c,'code':_0x4ec676,'action':'verify','testMode':_0x377670})}),_0x13ff02=await _0x2a4055[_0x224f(0xb6)]();if(_0x2a4055['ok']){if(_0x50a73e[_0x224f(0x344)]!==_0x50a73e[_0x224f(0x344)])_0x28e031[_0x224f(0x43)](_0x50a73e[_0x224f(0x345)]),_0x104810['log'](_0x50a73e[_0x224f(0x346)]),_0x7060f3[_0x224f(0x43)](_0x50a73e[_0x224f(0x347)]);else return{'success':!![],'message':_0x13ff02[_0x224f(0x4d)]||_0x50a73e[_0x224f(0x348)],'existingUser':_0x13ff02['existingUser']||![],'token':_0x13ff02['token']};}else return{'success':![],'error':_0x13ff02[_0x224f(0x4d)]||_0x50a73e[_0x224f(0x349)]};}else{var _0x2d52a9;return(_0x50a73e[_0x224f(0x34a)](_0x2d52a9=_0x231c95[_0xe1a90f],null)||_0x50a73e[_0x224f(0x34a)](_0x2d52a9,void 0x0)?void 0x0:_0x2d52a9[_0x224f(0xb)])||![];}}catch(_0x5372ee){return console[_0x224f(0x4e)](_0x50a73e[_0x224f(0x34b)],_0x5372ee),{'success':![],'error':_0x50a73e[_0x224f(0x34c)]};}};exports['verifyEmailCode']=verifyEmailCode;const checkEmailVerificationStatus=async(_0x44d94e,_0x4ecf66=![])=>{const _0xe087a3={'xnXLc':_0x224f(0x1f1),'nxCxE':_0x224f(0x4e),'aVQgf':function(_0x1f3575,_0x4395e4,_0x29718d){return _0x1f3575(_0x4395e4,_0x29718d);},'AwhFK':function(_0x1d79cc){return _0x1d79cc();},'cSits':function(_0x32dd2c,_0x50dc3d){return _0x32dd2c===_0x50dc3d;},'hZJkl':_0x224f(0x34d),'nRcKP':_0x224f(0x220)};try{const _0x3d7966=await _0xe087a3['aVQgf'](fetch,_api[_0x224f(0x1e)][_0x224f(0x1c)]+_0x224f(0x34e),{'method':'POST','headers':_0xe087a3[_0x224f(0x34f)](getDeveloperAuthHeaders),'body':JSON[_0x224f(0x137)]({'email':_0x44d94e,'testMode':_0x4ecf66})}),_0x9d6fde=await _0x3d7966[_0x224f(0xb6)]();return{'success':_0x3d7966['ok'],'isPending':_0x9d6fde[_0x224f(0x350)]||![],'message':_0x9d6fde[_0x224f(0x4d)]};}catch(_0x1fc9a9){return _0xe087a3[_0x224f(0x351)]('grMme',_0xe087a3[_0x224f(0x352)])?(_0x4df31b['error'](_0xe087a3['xnXLc'],_0x5cc5ea),{'hasRefreshToken':![],'refreshTokenType':_0xe087a3[_0x224f(0x353)]}):(console[_0x224f(0x4e)](_0x224f(0x21f),_0x1fc9a9),{'success':![],'isPending':![],'error':_0xe087a3[_0x224f(0x354)]});}};exports[_0x224f(0x355)]=checkEmailVerificationStatus;const initializePlatformAuthService=()=>{const _0x205a22={'QppwV':_0x224f(0x356),'UoVDB':function(_0x4e8419){return _0x4e8419();}};console[_0x224f(0x43)](_0x205a22[_0x224f(0x357)]),_0x205a22['UoVDB'](initializeGoogleSignIn);};function _0x4e57(){const _0x5a8232=['defineProperty','__esModule','testYouTubeRefreshToken','testApiConnectivity','requestEmailVerification','refreshYouTubeTokens','reconnectYouTube','isOAuthCallback','initiateOAuth','initiateNativeAuth','initializePlatformAuthService','hasNativeSDK','forceYouTubeReconnectionWithRevoke','forceYouTubeReconnectionWithConsent','fixUserYouTubeConnection','exchangeCodeForToken','isApiKeyInitialized','SDK\x20not\x20initialized.\x20Developers\x20must\x20call\x20initializeApiKey()\x20before\x20using\x20auth\x20features.','FNLMW','apiKey','oiCmY','getApiHeaders','Bearer\x20','1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com','https://api.instagram.com/oauth/authorize','demo_instagram_client_id','onairosevents://auth/callback','code','BASE_URL','/youtube/authorize','API_CONFIG','/reddit/authorize','demo_reddit_client_id','identity,read','/pinterest/authorize','demo_pinterest_client_id','boards:read,pins:read','https://www.facebook.com/v12.0/dialog/oauth','demo_facebook_client_id','public_profile,email','openid\x20profile\x20email','demo_gmail_client_id','https://www.googleapis.com/auth/gmail.readonly','/email/authorize','https://chat.openai.com','https://gemini.google.com','https://x.com/i/grok','jCVRg','Unknown\x20Channel','๐Ÿ”‘\x20Token\x20preview:','โœ…\x20[YOUTUBE\x20AUTH]\x20Backend\x20confirmed\x20refresh\x20token\x20received','๐Ÿ”Œ\x20[CONNECTIVITY]\x20Running\x20comprehensive\x20network\x20diagnostics...','๐ŸŒ\x20[CONNECTIVITY]\x20Test\x201:\x20Checking\x20general\x20internet\x20(google.com)...','HEAD','no-cors','reachable','โŒ\x20[CONNECTIVITY]\x20Cannot\x20reach\x20Google\x20-\x20internet\x20may\x20be\x20down:','StlEf','iqdoV','pQFRA','โœ…\x20[CONNECTIVITY]\x20API\x20server\x20is\x20reachable','โŒ\x20[CONNECTIVITY]\x20Cannot\x20reach\x20API\x20server:','fwrKq','Internet\x20works\x20but\x20API\x20server\x20is\x20unreachable.\x20The\x20server\x20may\x20be\x20blocking\x20requests\x20from\x20this\x20device/simulator.','xcNpQ','No\x20internet\x20connectivity\x20detected.\x20Check\x20your\x20network\x20connection.','โŒ\x20[CONNECTIVITY]\x20Connectivity\x20test\x20failed:','log','oiTgZ','ArFTk','uYneh','ciTVR','YUssL','YVspn','googleTest','WKlBd','nyHnr','message','error','scGAH','LvGTL','jEnQg','ZrEIq','โš ๏ธ\x20Error\x20fetching\x20YouTube\x20channel\x20info:','fbsug','EfpSe','user','name','GASzm','email','cDNCz','/health','signal','KRvmD','text','Unable\x20to\x20read\x20response','api2Test','status','statusText','substring','EnHfw','HHcbB','โœ…\x20Found\x20existing\x20authentication\x20token\x20for\x20YouTube\x20auth','...','uxaVk','WyaQj','pUdnv','wbrLc','API\x20is\x20reachable','NtCGj','success','emKEd','hBJfn','GOzBB','tsfWq','tCqYM','\x20YouTube\x20connection\x20fixed\x20via\x20Method\x201!','zkXKg','Network\x20error:\x20','2|5|4|0|3|1|6','serverAuthCode','refreshToken','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Full\x20refresh\x20token:','๐ŸŽ‰\x20[YOUTUBE\x20REAUTH]\x20SUCCESS:\x20Full\x20YouTube\x20connection\x20with\x20refresh\x20tokens!','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20length:','๐Ÿ’ก\x20User\x20needs\x20to\x20reconnect\x20with\x20proper\x20consent\x20screen','โš ๏ธ\x20Continuing\x20without\x20refresh\x20token\x20-\x20connection\x20may\x20fail\x20later','Failed\x20to\x20send\x20verification\x20code','โŒ\x20Failed\x20to\x20get\x20fresh\x20tokens\x20from\x20Google\x20SDK','KdRbV','wJjBX','rpALz','AbortError','eZxIS','\x20\x20\x203.\x20DNS\x20resolution\x20failed','\x20\x20\x202.\x20API\x20server\x20(API\x20server)\x20is\x20unreachable','XcRyQ','๐Ÿš€\x20[OAUTH]\x20Starting\x20OAuth\x20for\x20platform:\x20','๐Ÿ“ฑ\x20[OAUTH]\x20Platform:\x20','Platform',',\x20Version:\x20','๐Ÿ“ง\x20[OAUTH]\x20Email\x20platform\x20selected,\x20returning\x20mock\x20auth\x20URL','/email/authorize?action=verify','sEfMP','sfOgk','getUserAuthHeaders','๐Ÿ”‘\x20[OAUTH]\x20Using\x20User\x20JWT\x20for\x20authentication','KvOLE','ipSpP','Fzvud','โŒ\x20[OAUTH]\x20User\x20not\x20authenticated\x20-\x20cannot\x20initiate\x20','\x20OAuth','zAFrX','split','oSFet','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20type:','startsWith','QFGdX','โœ…\x20[YOUTUBE\x20REAUTH]\x20Backend\x20CONFIRMED\x20refresh\x20token\x20received','KCsTg','LNBbo','โœ…\x20[YOUTUBE\x20REAUTH]\x20Response\x20hasRefreshToken:','hasRefreshToken','cEUys','/authorize','๐ŸŒ\x20[OAUTH]\x20Proxy\x20URL:\x20','toISOString','๐Ÿ“ค\x20[OAUTH]\x20Request\x20body:','epcnG','eEmvm','ZoOdl','โฐ\x20[OAUTH]\x20Request\x20timeout\x20for\x20','abort','Qgrvw','data','Siscj','tmfzP','EFNXG','gECTL','jKqcU','๐Ÿ“ก\x20[OAUTH]\x20Response\x20status:\x20','\x20-\x20','json','URL','url','๐Ÿ”—\x20[OAUTH]\x20Auth\x20URL\x20for\x20','\x20(key:\x20','RUHdq','โŒ\x20CRITICAL:\x20No\x20refresh\x20token\x20available\x20-\x20YouTube\x20connection\x20will\x20fail\x20when\x20token\x20expires','vAvxN','mVmMH','warn','nTILS','lkrqX','vEHAy','uKJwX','xhnaK','โŒ\x20[OAUTH]\x20Request\x20timeout\x20for\x20','\x20-\x20the\x20server\x20took\x20too\x20long\x20to\x20respond','DQbIr','includes','Network\x20request\x20failed','LLLCY','amQwa','KDRzL','โŒ\x20Re-authentication\x20also\x20failed:','2|1|5|4|3|0','kpYKp','\x20\x20\x201.\x20No\x20internet\x20connection\x20on\x20device/simulator','.\x20Possible\x20causes:','DGkGg','OrQwQ','โŒ\x20[OAUTH]\x20Error\x20initiating\x20OAuth\x20for\x20','openid','profile','GoogleSignin','configure','lrJkQ','xAemG','pdQWK','โš ๏ธ\x20No\x20YouTube\x20channel\x20found\x20for\x20user','No\x20Channel','๐Ÿ”„\x20[YOUTUBE\x20AUTH]\x20YouTube\x20connected\x20in\x20temporary\x20mode','โ„น๏ธ\x20[YOUTUBE\x20AUTH]\x20User\x20can\x20reconnect\x20later\x20for\x20refresh\x20tokens\x20if\x20needed','โœ…\x20[YOUTUBE\x20REAUTH]\x20Training\x20will\x20work,\x20but\x20connection\x20expires\x20in\x20~1\x20hour','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Connection\x20Details:','Yes','๐Ÿ”„\x20[YOUTUBE\x20REAUTH]\x20YouTube\x20connected\x20in\x20temporary\x20mode','๐ŸŽ‰\x20[YOUTUBE\x20REAUTH]\x20SUCCESS:\x20Temporary\x20YouTube\x20connection\x20established!','๐Ÿ”\x20Creating\x20authentication\x20token\x20for\x20YouTube\x20connection...','temp_token_for_youtube_connection','โœ…\x20Refresh\x20token\x20available\x20for\x20YouTube\x20connection','๐Ÿ”‘\x20Refresh\x20token\x20type:','๐Ÿ‘ค\x20User:','GnEOL','โœ…\x20Signed\x20out\x20-\x20consent\x20cache\x20cleared','yNVqR','MRUev','โ„น๏ธ\x20Sign\x20out\x20not\x20needed:','gDkst','jZzbs','โ„น๏ธ\x20No\x20token\x20cache\x20to\x20clear','https://www.googleapis.com/auth/youtube.readonly','๐Ÿ“ฑ\x20User\x20should\x20see:\x20\x22Allow\x20[App]\x20to\x20access\x20your\x20YouTube\x20account\x20when\x20you\x27re\x20not\x20using\x20the\x20app?\x22','๐Ÿ‘ค\x20User\x20email:','๐Ÿ”\x20Token\x20analysis:','-\x20Access\x20token:','Missing','-\x20ServerAuthCode\x20(userInfo):','XMfBD','๐Ÿ”‘\x20Refresh\x20token\x20preview:','YuPDJ','๐Ÿ“บ\x20Fetching\x20YouTube\x20channel\x20information...','https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true','ZaiOa','bpxyu','ID:','hlxHs','signOut_and_configure','๐Ÿš€\x20[YOUTUBE\x20REAUTH]\x20Headers:','NO\x20AUTH\x20TOKEN','๐Ÿš€\x20[YOUTUBE\x20REAUTH]\x20Payload\x20Summary:','๐Ÿ“ก\x20[YOUTUBE\x20REAUTH]\x20Response\x20Status:','๐Ÿ“ก\x20[YOUTUBE\x20REAUTH]\x20Response\x20Status\x20Text:','โœ…\x20[YOUTUBE\x20REAUTH]\x20Backend\x20Response\x20SUCCESS:','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Training\x20Ready:\x20Yes','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Refresh\x20token\x20sent:','6|4|3|5|1|2|0','โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20Response\x20data:','โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20Expected\x20hasRefreshToken\x20or\x20refreshTokenReceived\x20in\x20response','๐Ÿ”„\x20[YOUTUBE\x20REAUTH]\x20Signaling\x20training\x20system\x20to\x20restart...','IAQEu','โœ…\x20[YOUTUBE\x20REAUTH]\x20Training\x20restart\x20signal\x20sent\x20successfully','QdOCQ','โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20Training\x20restart\x20signal\x20failed:','โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20User\x20may\x20need\x20to\x20manually\x20restart\x20training','โŒ\x20[YOUTUBE\x20REAUTH]\x20Backend\x20processing\x20FAILED:','\x20\x20\x201.\x20Try\x20the\x20revoke\x20method:\x20forceYouTubeReconnectionWithRevoke()','โŒ\x20This\x20means\x20consent\x20screen\x20did\x20not\x20appear\x20or\x20user\x20denied\x20permissions','๐Ÿ’ก\x20Solutions:','โŒ\x20User\x20cancelled\x20sign-in\x20-\x20no\x20refresh\x20token\x20obtained','๐Ÿ’ก\x20User\x20must\x20click\x20\x22Allow\x22\x20to\x20get\x20refresh\x20token','๐Ÿ”„\x20FORCING\x20fresh\x20YouTube\x20consent\x20for\x20refresh\x20token...','DUWpE','BumnW','qGWCR','bvEpc','VRxxR','jfixL','UXCkz','boZSS','UQGoB','fDrYI','ioJTD','Xrwow','clearCachedAccessToken','accessToken','โœ…\x20Token\x20cache\x20cleared','RAxfQ','โœ…\x20[YOUTUBE\x20AUTH]\x20Training\x20will\x20work,\x20but\x20connection\x20expires\x20in\x20~1\x20hour','๐Ÿ”ง\x20Configuring\x20Google\x20Sign-In\x20for\x20forced\x20consent...','DuwQl','cXCAY','hasPlayServices','๐Ÿ”\x20Initiating\x20sign-in\x20-\x20consent\x20screen\x20should\x20appear...','signIn','feuxu','OSgPE','rACsD','getTokens','๐Ÿ“‹\x20FULL\x20userInfo\x20object\x20from\x20forceYouTubeReconnectionWithConsent:','stringify','jubIh','GwYKL','tbPQt','fMuAa','ZXigS','idToken','ZhYcX','Gqpuf','-\x20ServerAuthCode\x20(currentUser):','bjqpr','VyoCu','OTOAc','4|1|5|2|0|6|3','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20Mode:\x20Temporary\x20(expires\x20~1\x20hour)','yUxrO','XimXE','EHFNF','eiXjP','PCMvo','skALY','fWKza','vvYkk','XrGda','ygZKz','NrDCc','YVvnL','WWgXH','bNTPa','items','snippet','title','โœ…\x20YouTube\x20channel\x20found:','jghfx','kNqHp','UHvlp','mfsCY','QgrYu','krmDn','XsUgk','zjWRt','OwUMd','yGUvn','RUFBI','getJWT','trim','length','fJENs','iWIpZ','NWsll','WgWjp','EUaAu','MkTPP','mmsww','gHKZh','GUpZy','dXrIJ','now','HOCSJ','BpHkx','refreshTokenType','efpqF','hPcoN','๐Ÿš€\x20[YOUTUBE\x20REAUTH]\x20=====\x20SENDING\x20REAUTH\x20SIGNAL\x20TO\x20BACKEND\x20=====','๐Ÿš€\x20[YOUTUBE\x20REAUTH]\x20Endpoint:\x20https://API\x20server/youtube/native-auth','vtnJS','hbNrM','debugInfo','HxyAl','XdYli','RkXjW','/youtube/native-auth','UONvM','GWnGJ','๐Ÿ“ก\x20[YOUTUBE\x20REAUTH]\x20Response\x20Headers:','niBkU','validation','isTemporaryMode','ySKKJ','temporaryMode','enabled','temporary\x20access\x20token\x20mode','1|3|2|5|4|0|6','qfSNw','uTJKr','ubArX','RNOZZ','foDUY','hMDGu','ltsAm','ClPwb','๐Ÿ”‘\x20[YOUTUBE\x20REAUTH]\x20REFRESH\x20TOKEN\x20SENT\x20TO\x20BACKEND:','โš ๏ธ\x20[YOUTUBE\x20REAUTH]\x20Backend\x20did\x20NOT\x20confirm\x20refresh\x20token\x20reception','cnWxr','HpXXv','mHoIy','vJpzt','yQjVw','VDmbI','XlLUF','โŒ\x20[YOUTUBE\x20REAUTH]\x20This\x20means\x20the\x20reauth\x20signal\x20was\x20not\x20processed','nicNh','RxHlB','IOwwE','HHNeF','\x20\x20\x202.\x20Check\x20Google\x20Console\x20OAuth\x20configuration','\x20\x20\x203.\x20Ensure\x20user\x20clicks\x20\x22Allow\x22\x20on\x20consent\x20screen','tUaLj','kJxaQ','โŒ\x20Error\x20forcing\x20YouTube\x20consent:','BeKRk','SIGN_IN_CANCELLED','hMKFV','MsLPx','IN_PROGRESS','statusCodes','PLAY_SERVICES_NOT_AVAILABLE','โŒ\x20Google\x20Play\x20Services\x20not\x20available','โŒ\x20No\x20auth\x20token\x20found\x20for\x20YouTube\x20refresh','Invalid\x20verification\x20code','CPGsp','๐Ÿ”„\x20FORCING\x20YouTube\x20consent\x20via\x20REVOKE\x20method...','ZlvMV','โ„น๏ธ\x20No\x20existing\x20permissions\x20to\x20revoke:','๐Ÿ”\x20Signing\x20in\x20after\x20revoke\x20-\x20consent\x20screen\x20MUST\x20appear...','โŒ\x20Error\x20with\x20revoke\x20method:','CTUTn','eqcSl','ByJFe','cJqsF','HLjrH','XWAOP','gchhY','wjYvF','โœ…\x20Revoked\x20existing\x20permissions\x20-\x20fresh\x20consent\x20REQUIRED','CbvIY','Nohdu','tVzvK','signOut','โœ…\x20Signed\x20out\x20completely','txmfD','getCurrentUser','zBZyt','โœ…\x20SUCCESS:\x20Got\x20refresh\x20token\x20after\x20REVOKE\x20+\x20consent!','pDoDd','โŒ\x20Still\x20no\x20refresh\x20token\x20after\x20revoke\x20method','gQsXk','PbINV','XDYTP','๐Ÿ”„\x20Method\x202:\x20Trying\x20forced\x20consent\x20via\x20revoke...','๐Ÿ”ง\x20Fixing\x20YouTube\x20connection\x20for\x20user:\x20','mrlPr','YIqUs','\x20YouTube\x20connection\x20fixed\x20via\x20Method\x202!','โŒ\x20Failed\x20to\x20fix\x20','\x20YouTube\x20connection\x20with\x20both\x20methods','code=','โŒ\x20Sign-in\x20already\x20in\x20progress','โœ…\x20Refresh\x20token\x20confirmed:','SCvIO','nsxKY','โœ…\x20Successfully\x20refreshed\x20Google\x20tokens','โŒ\x20Failed\x20to\x20refresh\x20Google\x20tokens:','CkyRw','๐Ÿ”„\x20Refresh\x20failed,\x20attempting\x20re-authentication...','โœ…\x20Re-authentication\x20successful','afQdD','YWHOK','MoGAV','auth/callback','ezStU','IfQFb','azbwx','Nzpti','GRlXY','YjOfe','FXZEc','iuShU','NjzLj','cTkgL','YugCc','none','PSCct','wkNFQ','jhhhC','yWbNY','โŒ\x20Debug\x20tokens\x20failed:','npkEM','Initiating\x20Facebook\x20Login\x20for\x20Instagram','oWvMI','๐Ÿ”„\x20Forcing\x20fresh\x20YouTube\x20reconnection\x20for\x20refresh\x20token...','โœ…\x20Signed\x20out\x20from\x20Google','yQWAY','rkxJk','โœ…\x20Cleared\x20cached\x20access\x20token','fAFwY','โ„น๏ธ\x20Token\x20clearing\x20failed\x20or\x20not\x20needed:','YPGuk','โœ…\x20YouTube\x20reconnected\x20successfully\x20with\x20refresh\x20token','โŒ\x20YouTube\x20reconnection\x20failed','โŒ\x20YouTube\x20reconnection\x20error:','YCOQO','ukwpD','HXlxj','wKdMc','ZozLl','usBnm','โ„น๏ธ\x20Already\x20signed\x20out\x20or\x20sign\x20out\x20failed:','ruzwD','VGDWv','kSUPJ','ZtUim','vxMQm','oAviS','LQSOO','IMCGQ','hkFgJ','idrEJ','VVbFn','moDIG','GqAne','OMUDB','yJnhP','GiPoZ','yiYBj','dpmfZ','Facebook\x20Login\x20completed\x20successfully','Google\x20Play\x20Services\x20not\x20available','uICyx','PoNpW','โ„น๏ธ\x20Sign\x20out\x20not\x20needed\x20or\x20failed:','โŒ\x20Failed\x20to\x20fix\x20YouTube\x20connection','โŒ\x20Error\x20checking\x20email\x20verification\x20status:','Network\x20error','User\x20cancelled\x20Google\x20Sign-In','๐Ÿ”\x20[YOUTUBE\x20AUTH]\x20Response\x20data\x20keys:','โš ๏ธ\x20[YOUTUBE\x20AUTH]\x20Connection\x20may\x20fail\x20when\x20tokens\x20expire','youtube','RRHyg','xKDBp','โœ…\x20Google\x20Sign-In\x20successful:','๐Ÿ”‘\x20Got\x20Google\x20tokens','๐Ÿ“‹\x20FULL\x20tokens\x20object:','๐Ÿ”\x20REFRESH\x20TOKEN\x20EXTRACTION:','-\x20userInfo.data?.serverAuthCode:','-\x20currentUser?.serverAuthCode:','-\x20tokens.idToken:','โœ…\x20Got\x20serverAuthCode\x20(refresh\x20token\x20mechanism)','lYrlY','โœ…\x20Got\x20serverAuthCode\x20from\x20sign-in\x20response','๐Ÿ’ก\x20Check\x20Google\x20Sign-In\x20configuration:\x20offlineAccess,\x20forceCodeForRefreshToken','onZCZ','DSNom','โš ๏ธ\x20Failed\x20to\x20fetch\x20YouTube\x20channel\x20info:','youtube_user','โ„น๏ธ\x20No\x20valid\x20authentication\x20token\x20found\x20for\x20YouTube\x20connection','โ„น๏ธ\x20User\x20should\x20authenticate\x20first\x20via\x20Google/Apple/Email\x20before\x20connecting\x20YouTube','No\x20token','๐Ÿ“บ\x20YouTube\x20channel\x20name:','apple','-\x20hasAccessToken:','-\x20hasRefreshToken:','-\x20hasServerAuthCode:','-\x20refreshTokenType:','-\x20userEmail:','-\x20channelName:','๐Ÿ“‹\x20COMPLETE\x20BACKEND\x20PAYLOAD:','๐Ÿ“ก\x20Backend\x20response\x20status:','cAlrL','โœ…\x20YouTube\x20connection\x20successful','๐Ÿ“‹\x20COMPLETE\x20BACKEND\x20RESPONSE:','UhDho','Aswtg','XfsFc','โœ…\x20[YOUTUBE\x20AUTH]\x20Full\x20YouTube\x20connection\x20with\x20persistent\x20access','โŒ\x20YouTube\x20auth\x20failed:','๐Ÿ“‹\x20BACKEND\x20ERROR\x20RESPONSE:','LyOGc','instagram','NLMov','EHPgy','bJVez','gfdqH','CvFMq','vYaGr','JzekQ','WlJBA','dOvQo','axWsE','tBxMw','MrhKr','1|3|0|2|5|4','Hdzrf','\x20\x20\x204.\x20SSL/TLS\x20certificate\x20issue','eshpl','TUFSC','JdaCv','ZGmAo','uZlKc','๐Ÿ“‹\x20FULL\x20userInfo\x20object:','TYPeL','AzCef','aVZrY','CfLYh','KjjoX','PWAUW','hsswV','pNEOP','QuoJC','Present:\x20','EEDtg','Oacrk','iZrVO','NfXRA','cVHff','mMFTD','eTvaD','twbDM','IPpjV','xFMZN','xIKGP','ZURVv','KsQSF','fCcjc','sUWon','bEYyn','LaxZa','WYJZD','jIHRe','MswZi','nvsdU','GdQTp','FMQhD','OPRWo','iiIOa','btVMU','LqkUc','IzSiX','qFsLx','nECIg','CyhOl','wIBAH','XIeDn','MstNz','XgGCF','OkTst','default','getItem','FhKQL','LfZIn','pOlVT','PpmMu','VjueN','aPjlp','PJWxt','hznAI','Qrhht','SzKxb','dCKWj','๐Ÿ”‘\x20Using\x20auth\x20token\x20for\x20linking:','lFsHK','jbCUI','cOoJK','user-','Phfic','icdcn','DvVjx','qoYSs','lmIEy','aqbWt','uYeCM','ssffK','eICfA','aWTwu','HlWwv','IBLHh','KpNgN','mxBys','๐Ÿ“ก\x20Backend\x20response\x20headers:','headers','kVBIE','SdVox','aWbfx','MQHdH','ecGno','vIrSX','wdpjk','ESHix','XWPia','EZQSG','zWHXc','JBEBC','JHIpc','evNEi','iWBGw','Google\x20Sign-In\x20already\x20in\x20progress','TFSHz','UdUmN','keys','iNqeA','pwcsT','ElTdt','Token\x20exchange\x20failed\x20with\x20status\x20','BnnIx','qmqBZ','CsfIR','MFURx','huFtD','UAGfm','wLnlF','UPnAn','PGanL','hAJQy','eBGAh','VKMwo','vdJwD','knkbX','GZoYu','zbbAu','uwdGJ','Exchanging\x20code\x20for\x20token\x20for\x20platform:\x20','/token','Error\x20exchanging\x20code\x20for\x20token:\x20','Token\x20exchange\x20successful\x20for\x20','BcazE','jdLzK','Falling\x20back\x20to\x20simulated\x20token\x20response','_access_token_','toString','_refresh_token_','random','oGvqf','ofeIf','โŒ\x20YouTube\x20token\x20refresh\x20failed:','โŒ\x20Error\x20refreshing\x20YouTube\x20tokens:','๐Ÿ”„\x20Refreshing\x20YouTube\x20tokens...','UQLdk','RpgOk','/youtube/refresh-token','eSasx','cFzUQ','InOpS','โœ…\x20YouTube\x20tokens\x20refreshed\x20successfully:','RDxCA','OelVV','jRNgI','Xwskk','๐Ÿ”„\x20[TRAINING\x20RESTART]\x20Triggering\x20training\x20restart\x20for\x20user:','youtube_reauth','ecVqP','โŒ\x20[TRAINING\x20RESTART]\x20Error\x20triggering\x20training\x20restart:','lSsAU','BeNJf','QVjZa','rSAVY','eWSTT','/mobile-training/restart','โœ…\x20[TRAINING\x20RESTART]\x20Training\x20restart\x20successful:','wqwKX','Training\x20restart\x20failed:\x20','EJXcS','voXbc','DOqok','yXhzY','uGwvN','QspTm','Gyoha','ucqNr','๐Ÿงช\x20Testing\x20YouTube\x20refresh\x20token\x20functionality...','frXqP','XiXlD','๐Ÿ”\x20Current\x20token\x20status:','Vhtfs','โœ…\x20YouTube\x20connection\x20fixed!\x20Testing\x20again...','๐Ÿ”\x20New\x20token\x20status:','HJjzA','โœ…\x20Refresh\x20token\x20already\x20available','gZMUW','xClPB','YObRr','SdjEd','Hnhwb','ExGuP','โš ๏ธ\x20No\x20refresh\x20token\x20found\x20-\x20attempting\x20to\x20fix...','FmAtB','dcjPt','inCPu','EqeAD','ckGrS','SSSLE','OIszE','UUnsP','TlzsB','GKIAI','vMEpn','โŒ\x20Error\x20testing\x20YouTube\x20refresh\x20token:','XwcAo','request','uFXYc','Verification\x20code\x20sent\x20to\x20your\x20email','oTtPR','Network\x20error.\x20Please\x20check\x20your\x20connection\x20and\x20try\x20again.','TqLdb','dmjkQ','๐Ÿ“ง\x20Requesting\x20email\x20verification\x20for:','/email/verification','KYrGi','eewyf','djtup','riLQO','yZVAL','Ldlof','DrGDK','PwrZz','โŒ\x20Error\x20requesting\x20email\x20verification:','fBjDP','Rxfjw','krObX','๐Ÿ”\x20Verifying\x20email\x20code\x20for:','OExdW','Email\x20verified\x20successfully','โŒ\x20Error\x20verifying\x20email\x20code:','AByVd','wtBSG','fMOVR','cNkUD','DNGky','rJMyV','BFnGp','eCZCo','ysFiZ','cRIqZ','TGmKg','UkuMM','OMYwY','/email/verification/status','AwhFK','isPending','cSits','hZJkl','nxCxE','nRcKP','checkEmailVerificationStatus','๐Ÿ”ง\x20Platform\x20auth\x20service\x20initialized','QppwV'];_0x4e57=function(){return _0x5a8232;};return _0x4e57();}exports[_0x224f(0xa)]=initializePlatformAuthService;