@onairos/react-native 3.1.12 → 3.1.13

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 (604) hide show
  1. package/lib/commonjs/api/index.js +75 -1
  2. package/lib/commonjs/api/index.js.map +1 -1
  3. package/lib/commonjs/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  4. package/lib/commonjs/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  5. package/lib/commonjs/assets/icons/Facebookicon.png +0 -0
  6. package/lib/commonjs/assets/icons/Gmail.png +0 -0
  7. package/lib/commonjs/assets/icons/Linkedinicon.png +0 -0
  8. package/lib/commonjs/assets/icons/Redditicon.png +0 -0
  9. package/lib/commonjs/assets/icons/YouTubeicon2.png +0 -0
  10. package/lib/commonjs/assets/icons/YouTubeicon3.png +0 -0
  11. package/lib/commonjs/assets/icons/farcaster.png +0 -0
  12. package/lib/commonjs/assets/icons/instagram.png +0 -0
  13. package/lib/commonjs/assets/icons/pinterest.png +0 -0
  14. package/lib/commonjs/assets/icons/swerv_logo.png +0 -0
  15. package/lib/commonjs/assets/icons/twitter.jpg +0 -0
  16. package/lib/commonjs/assets/images/Checkbox.svg +3 -0
  17. package/lib/commonjs/assets/images/EnochE.svg +19 -0
  18. package/lib/commonjs/assets/images/Enochicon1.png +0 -0
  19. package/lib/commonjs/assets/images/Face_ID_logo.png +0 -0
  20. package/lib/commonjs/assets/images/Facebookicon.png +0 -0
  21. package/lib/commonjs/assets/images/Gmail.png +0 -0
  22. package/lib/commonjs/assets/images/Googlelogo.png +0 -0
  23. package/lib/commonjs/assets/images/Linkedinicon.png +0 -0
  24. package/lib/commonjs/assets/images/Onairoslogo.png +0 -0
  25. package/lib/commonjs/assets/images/Personalityprofile.svg +3 -0
  26. package/lib/commonjs/assets/images/Personalitytraits.svg +3 -0
  27. package/lib/commonjs/assets/images/Redditicon.png +0 -0
  28. package/lib/commonjs/assets/images/Userpreferences.svg +3 -0
  29. package/lib/commonjs/assets/images/YouTubeicon3.png +0 -0
  30. package/lib/commonjs/assets/images/arrow.svg +20 -0
  31. package/lib/commonjs/assets/images/basicproficon.svg +43 -0
  32. package/lib/commonjs/assets/images/basicprofile.svg +3 -0
  33. package/lib/commonjs/assets/images/checkmark.svg +4 -0
  34. package/lib/commonjs/assets/images/contentanalysis.svg +3 -0
  35. package/lib/commonjs/assets/images/contenticon.svg +23 -0
  36. package/lib/commonjs/assets/images/persona1.png +0 -0
  37. package/lib/commonjs/assets/images/persona2.png +0 -0
  38. package/lib/commonjs/assets/images/persona3.png +0 -0
  39. package/lib/commonjs/assets/images/persona4.png +0 -0
  40. package/lib/commonjs/assets/images/persona5.png +0 -0
  41. package/lib/commonjs/assets/images/personalityicon.svg +18 -0
  42. package/lib/commonjs/assets/images/x-close.svg +3 -0
  43. package/lib/commonjs/components/BodyText.js +27 -0
  44. package/lib/commonjs/components/BodyText.js.map +1 -0
  45. package/lib/commonjs/components/BrandMark.js +44 -0
  46. package/lib/commonjs/components/BrandMark.js.map +1 -0
  47. package/lib/commonjs/components/CodeInput.js +30 -0
  48. package/lib/commonjs/components/CodeInput.js.map +1 -0
  49. package/lib/commonjs/components/EmailInput.js +30 -0
  50. package/lib/commonjs/components/EmailInput.js.map +1 -0
  51. package/lib/commonjs/components/ExistingUserDataConfirmation.js +474 -0
  52. package/lib/commonjs/components/ExistingUserDataConfirmation.js.map +1 -0
  53. package/lib/commonjs/components/GoogleButton.js +55 -0
  54. package/lib/commonjs/components/GoogleButton.js.map +1 -0
  55. package/lib/commonjs/components/HeadingGroup.js +43 -0
  56. package/lib/commonjs/components/HeadingGroup.js.map +1 -0
  57. package/lib/commonjs/components/ModalHeader.js +99 -0
  58. package/lib/commonjs/components/ModalHeader.js.map +1 -0
  59. package/lib/commonjs/components/ModalSheet.js +41 -0
  60. package/lib/commonjs/components/ModalSheet.js.map +1 -0
  61. package/lib/commonjs/components/Onairos.js +1 -3
  62. package/lib/commonjs/components/Onairos.js.map +1 -1
  63. package/lib/commonjs/components/OnairosButton.js +171 -190
  64. package/lib/commonjs/components/OnairosButton.js.map +1 -1
  65. package/lib/commonjs/components/OnairosSignInButton.js +169 -0
  66. package/lib/commonjs/components/OnairosSignInButton.js.map +1 -0
  67. package/lib/commonjs/components/Overlay.js +5 -5
  68. package/lib/commonjs/components/Overlay.js.map +1 -1
  69. package/lib/commonjs/components/PersonaImage.js +60 -0
  70. package/lib/commonjs/components/PersonaImage.js.map +1 -0
  71. package/lib/commonjs/components/PersonaLoadingScreen.js +156 -0
  72. package/lib/commonjs/components/PersonaLoadingScreen.js.map +1 -0
  73. package/lib/commonjs/components/PersonalizationConsentScreen.js +316 -0
  74. package/lib/commonjs/components/PersonalizationConsentScreen.js.map +1 -0
  75. package/lib/commonjs/components/PinCreationScreen.js +393 -0
  76. package/lib/commonjs/components/PinCreationScreen.js.map +1 -0
  77. package/lib/commonjs/components/PinInput.js +282 -120
  78. package/lib/commonjs/components/PinInput.js.map +1 -1
  79. package/lib/commonjs/components/PlatformConnectorsStep.js +828 -0
  80. package/lib/commonjs/components/PlatformConnectorsStep.js.map +1 -0
  81. package/lib/commonjs/components/PlatformToggle.js +180 -0
  82. package/lib/commonjs/components/PlatformToggle.js.map +1 -0
  83. package/lib/commonjs/components/PrimaryButton.js +180 -0
  84. package/lib/commonjs/components/PrimaryButton.js.map +1 -0
  85. package/lib/commonjs/components/SignInMatchAnimation.js +197 -0
  86. package/lib/commonjs/components/SignInMatchAnimation.js.map +1 -0
  87. package/lib/commonjs/components/SignInStep.js +179 -0
  88. package/lib/commonjs/components/SignInStep.js.map +1 -0
  89. package/lib/commonjs/components/TrainingModal.js +808 -563
  90. package/lib/commonjs/components/TrainingModal.js.map +1 -1
  91. package/lib/commonjs/components/UniversalOnboarding.js +2304 -1283
  92. package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
  93. package/lib/commonjs/components/VerificationStep.js +154 -0
  94. package/lib/commonjs/components/VerificationStep.js.map +1 -0
  95. package/lib/commonjs/components/WelcomeScreen.js +385 -0
  96. package/lib/commonjs/components/WelcomeScreen.js.map +1 -0
  97. package/lib/commonjs/components/icons/Basicproficon.js +37 -0
  98. package/lib/commonjs/components/icons/Basicproficon.js.map +1 -0
  99. package/lib/commonjs/components/icons/Basicprofile.js +21 -0
  100. package/lib/commonjs/components/icons/Basicprofile.js.map +1 -0
  101. package/lib/commonjs/components/icons/Checkbox.js +21 -0
  102. package/lib/commonjs/components/icons/Checkbox.js.map +1 -0
  103. package/lib/commonjs/components/icons/Checkmark.js +27 -0
  104. package/lib/commonjs/components/icons/Checkmark.js.map +1 -0
  105. package/lib/commonjs/components/icons/Contentanalysis.js +21 -0
  106. package/lib/commonjs/components/icons/Contentanalysis.js.map +1 -0
  107. package/lib/commonjs/components/icons/Contenticon.js +39 -0
  108. package/lib/commonjs/components/icons/Contenticon.js.map +1 -0
  109. package/lib/commonjs/components/icons/EnochE.js +41 -0
  110. package/lib/commonjs/components/icons/EnochE.js.map +1 -0
  111. package/lib/commonjs/components/icons/Personalityicon.js +30 -0
  112. package/lib/commonjs/components/icons/Personalityicon.js.map +1 -0
  113. package/lib/commonjs/components/icons/Personalityprofile.js +21 -0
  114. package/lib/commonjs/components/icons/Personalityprofile.js.map +1 -0
  115. package/lib/commonjs/components/icons/Personalitytraits.js +21 -0
  116. package/lib/commonjs/components/icons/Personalitytraits.js.map +1 -0
  117. package/lib/commonjs/components/icons/Userpreferences.js +21 -0
  118. package/lib/commonjs/components/icons/Userpreferences.js.map +1 -0
  119. package/lib/commonjs/components/icons/index.js +84 -0
  120. package/lib/commonjs/components/icons/index.js.map +1 -0
  121. package/lib/commonjs/components/onboarding/OAuthWebView.js +134 -743
  122. package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
  123. package/lib/commonjs/config/api.js +34 -0
  124. package/lib/commonjs/config/api.js.map +1 -0
  125. package/lib/commonjs/context/AuthContext.js +345 -0
  126. package/lib/commonjs/context/AuthContext.js.map +1 -0
  127. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -0
  128. package/lib/commonjs/hooks/useConnectedAccounts.js.map +1 -0
  129. package/lib/commonjs/hooks/useConnections.js +120 -125
  130. package/lib/commonjs/hooks/useConnections.js.map +1 -1
  131. package/lib/commonjs/hooks/useUserConnections.js +148 -0
  132. package/lib/commonjs/hooks/useUserConnections.js.map +1 -0
  133. package/lib/commonjs/index.js +149 -27
  134. package/lib/commonjs/index.js.map +1 -1
  135. package/lib/commonjs/services/apiClient.js +302 -0
  136. package/lib/commonjs/services/apiClient.js.map +1 -0
  137. package/lib/commonjs/services/apiKeyService.js +8 -9
  138. package/lib/commonjs/services/apiKeyService.js.map +1 -1
  139. package/lib/commonjs/services/authService.js +935 -0
  140. package/lib/commonjs/services/authService.js.map +1 -0
  141. package/lib/commonjs/services/biometricPinService.js +184 -0
  142. package/lib/commonjs/services/biometricPinService.js.map +1 -0
  143. package/lib/commonjs/services/connectedAccountsService.js +268 -0
  144. package/lib/commonjs/services/connectedAccountsService.js.map +1 -0
  145. package/lib/commonjs/services/googleAuthService.js +268 -0
  146. package/lib/commonjs/services/googleAuthService.js.map +1 -0
  147. package/lib/commonjs/services/imageCompressionService.js +260 -0
  148. package/lib/commonjs/services/imageCompressionService.js.map +1 -0
  149. package/lib/commonjs/services/jwtStorageService.js +256 -0
  150. package/lib/commonjs/services/jwtStorageService.js.map +1 -0
  151. package/lib/commonjs/services/mobileTrainingService.js +185 -0
  152. package/lib/commonjs/services/mobileTrainingService.js.map +1 -0
  153. package/lib/commonjs/services/pinEncryptionService.js +84 -0
  154. package/lib/commonjs/services/pinEncryptionService.js.map +1 -0
  155. package/lib/commonjs/services/pinStorageUtils.js +105 -0
  156. package/lib/commonjs/services/pinStorageUtils.js.map +1 -0
  157. package/lib/commonjs/services/platformAuthService.js +956 -722
  158. package/lib/commonjs/services/platformAuthService.js.map +1 -1
  159. package/lib/commonjs/services/storageService.js +404 -0
  160. package/lib/commonjs/services/storageService.js.map +1 -0
  161. package/lib/commonjs/services/trainingApiHelpers.js +73 -0
  162. package/lib/commonjs/services/trainingApiHelpers.js.map +1 -0
  163. package/lib/commonjs/services/userConnectionsService.js +486 -0
  164. package/lib/commonjs/services/userConnectionsService.js.map +1 -0
  165. package/lib/commonjs/services/youtubeMigrationService.js +415 -0
  166. package/lib/commonjs/services/youtubeMigrationService.js.map +1 -0
  167. package/lib/commonjs/theme/index.js +249 -0
  168. package/lib/commonjs/theme/index.js.map +1 -0
  169. package/lib/commonjs/utils/eventUtils.js +288 -0
  170. package/lib/commonjs/utils/eventUtils.js.map +1 -0
  171. package/lib/commonjs/utils/haptics.js +66 -0
  172. package/lib/commonjs/utils/haptics.js.map +1 -0
  173. package/lib/commonjs/utils/imagePreloader.js +6 -0
  174. package/lib/commonjs/utils/imagePreloader.js.map +1 -0
  175. package/lib/module/api/index.js +72 -0
  176. package/lib/module/api/index.js.map +1 -1
  177. package/lib/module/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  178. package/lib/module/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  179. package/lib/module/assets/icons/Facebookicon.png +0 -0
  180. package/lib/module/assets/icons/Gmail.png +0 -0
  181. package/lib/module/assets/icons/Linkedinicon.png +0 -0
  182. package/lib/module/assets/icons/Redditicon.png +0 -0
  183. package/lib/module/assets/icons/YouTubeicon2.png +0 -0
  184. package/lib/module/assets/icons/YouTubeicon3.png +0 -0
  185. package/lib/module/assets/icons/farcaster.png +0 -0
  186. package/lib/module/assets/icons/instagram.png +0 -0
  187. package/lib/module/assets/icons/pinterest.png +0 -0
  188. package/lib/module/assets/icons/swerv_logo.png +0 -0
  189. package/lib/module/assets/icons/twitter.jpg +0 -0
  190. package/lib/module/assets/images/Checkbox.svg +3 -0
  191. package/lib/module/assets/images/EnochE.svg +19 -0
  192. package/lib/module/assets/images/Enochicon1.png +0 -0
  193. package/lib/module/assets/images/Face_ID_logo.png +0 -0
  194. package/lib/module/assets/images/Facebookicon.png +0 -0
  195. package/lib/module/assets/images/Gmail.png +0 -0
  196. package/lib/module/assets/images/Googlelogo.png +0 -0
  197. package/lib/module/assets/images/Linkedinicon.png +0 -0
  198. package/lib/module/assets/images/Onairoslogo.png +0 -0
  199. package/lib/module/assets/images/Personalityprofile.svg +3 -0
  200. package/lib/module/assets/images/Personalitytraits.svg +3 -0
  201. package/lib/module/assets/images/Redditicon.png +0 -0
  202. package/lib/module/assets/images/Userpreferences.svg +3 -0
  203. package/lib/module/assets/images/YouTubeicon3.png +0 -0
  204. package/lib/module/assets/images/arrow.svg +20 -0
  205. package/lib/module/assets/images/basicproficon.svg +43 -0
  206. package/lib/module/assets/images/basicprofile.svg +3 -0
  207. package/lib/module/assets/images/checkmark.svg +4 -0
  208. package/lib/module/assets/images/contentanalysis.svg +3 -0
  209. package/lib/module/assets/images/contenticon.svg +23 -0
  210. package/lib/module/assets/images/persona1.png +0 -0
  211. package/lib/module/assets/images/persona2.png +0 -0
  212. package/lib/module/assets/images/persona3.png +0 -0
  213. package/lib/module/assets/images/persona4.png +0 -0
  214. package/lib/module/assets/images/persona5.png +0 -0
  215. package/lib/module/assets/images/personalityicon.svg +18 -0
  216. package/lib/module/assets/images/x-close.svg +3 -0
  217. package/lib/module/components/BodyText.js +20 -0
  218. package/lib/module/components/BodyText.js.map +1 -0
  219. package/lib/module/components/BrandMark.js +37 -0
  220. package/lib/module/components/BrandMark.js.map +1 -0
  221. package/lib/module/components/CodeInput.js +23 -0
  222. package/lib/module/components/CodeInput.js.map +1 -0
  223. package/lib/module/components/EmailInput.js +23 -0
  224. package/lib/module/components/EmailInput.js.map +1 -0
  225. package/lib/module/components/ExistingUserDataConfirmation.js +465 -0
  226. package/lib/module/components/ExistingUserDataConfirmation.js.map +1 -0
  227. package/lib/module/components/GoogleButton.js +48 -0
  228. package/lib/module/components/GoogleButton.js.map +1 -0
  229. package/lib/module/components/HeadingGroup.js +36 -0
  230. package/lib/module/components/HeadingGroup.js.map +1 -0
  231. package/lib/module/components/ModalHeader.js +92 -0
  232. package/lib/module/components/ModalHeader.js.map +1 -0
  233. package/lib/module/components/ModalSheet.js +34 -0
  234. package/lib/module/components/ModalSheet.js.map +1 -0
  235. package/lib/module/components/Onairos.js +1 -3
  236. package/lib/module/components/Onairos.js.map +1 -1
  237. package/lib/module/components/OnairosButton.js +172 -192
  238. package/lib/module/components/OnairosButton.js.map +1 -1
  239. package/lib/module/components/OnairosSignInButton.js +160 -0
  240. package/lib/module/components/OnairosSignInButton.js.map +1 -0
  241. package/lib/module/components/Overlay.js +5 -5
  242. package/lib/module/components/Overlay.js.map +1 -1
  243. package/lib/module/components/PersonaImage.js +53 -0
  244. package/lib/module/components/PersonaImage.js.map +1 -0
  245. package/lib/module/components/PersonaLoadingScreen.js +148 -0
  246. package/lib/module/components/PersonaLoadingScreen.js.map +1 -0
  247. package/lib/module/components/PersonalizationConsentScreen.js +309 -0
  248. package/lib/module/components/PersonalizationConsentScreen.js.map +1 -0
  249. package/lib/module/components/PinCreationScreen.js +386 -0
  250. package/lib/module/components/PinCreationScreen.js.map +1 -0
  251. package/lib/module/components/PinInput.js +283 -120
  252. package/lib/module/components/PinInput.js.map +1 -1
  253. package/lib/module/components/PlatformConnectorsStep.js +820 -0
  254. package/lib/module/components/PlatformConnectorsStep.js.map +1 -0
  255. package/lib/module/components/PlatformToggle.js +173 -0
  256. package/lib/module/components/PlatformToggle.js.map +1 -0
  257. package/lib/module/components/PrimaryButton.js +172 -0
  258. package/lib/module/components/PrimaryButton.js.map +1 -0
  259. package/lib/module/components/SignInMatchAnimation.js +189 -0
  260. package/lib/module/components/SignInMatchAnimation.js.map +1 -0
  261. package/lib/module/components/SignInStep.js +171 -0
  262. package/lib/module/components/SignInStep.js.map +1 -0
  263. package/lib/module/components/TrainingModal.js +809 -565
  264. package/lib/module/components/TrainingModal.js.map +1 -1
  265. package/lib/module/components/UniversalOnboarding.js +2307 -1284
  266. package/lib/module/components/UniversalOnboarding.js.map +1 -1
  267. package/lib/module/components/VerificationStep.js +146 -0
  268. package/lib/module/components/VerificationStep.js.map +1 -0
  269. package/lib/module/components/WelcomeScreen.js +378 -0
  270. package/lib/module/components/WelcomeScreen.js.map +1 -0
  271. package/lib/module/components/icons/Basicproficon.js +30 -0
  272. package/lib/module/components/icons/Basicproficon.js.map +1 -0
  273. package/lib/module/components/icons/Basicprofile.js +14 -0
  274. package/lib/module/components/icons/Basicprofile.js.map +1 -0
  275. package/lib/module/components/icons/Checkbox.js +14 -0
  276. package/lib/module/components/icons/Checkbox.js.map +1 -0
  277. package/lib/module/components/icons/Checkmark.js +20 -0
  278. package/lib/module/components/icons/Checkmark.js.map +1 -0
  279. package/lib/module/components/icons/Contentanalysis.js +14 -0
  280. package/lib/module/components/icons/Contentanalysis.js.map +1 -0
  281. package/lib/module/components/icons/Contenticon.js +32 -0
  282. package/lib/module/components/icons/Contenticon.js.map +1 -0
  283. package/lib/module/components/icons/EnochE.js +34 -0
  284. package/lib/module/components/icons/EnochE.js.map +1 -0
  285. package/lib/module/components/icons/Personalityicon.js +23 -0
  286. package/lib/module/components/icons/Personalityicon.js.map +1 -0
  287. package/lib/module/components/icons/Personalityprofile.js +14 -0
  288. package/lib/module/components/icons/Personalityprofile.js.map +1 -0
  289. package/lib/module/components/icons/Personalitytraits.js +14 -0
  290. package/lib/module/components/icons/Personalitytraits.js.map +1 -0
  291. package/lib/module/components/icons/Userpreferences.js +14 -0
  292. package/lib/module/components/icons/Userpreferences.js.map +1 -0
  293. package/lib/module/components/icons/index.js +13 -0
  294. package/lib/module/components/icons/index.js.map +1 -0
  295. package/lib/module/components/onboarding/OAuthWebView.js +136 -744
  296. package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
  297. package/lib/module/config/api.js +26 -0
  298. package/lib/module/config/api.js.map +1 -0
  299. package/lib/module/context/AuthContext.js +335 -0
  300. package/lib/module/context/AuthContext.js.map +1 -0
  301. package/lib/module/hooks/useConnectedAccounts.js +106 -0
  302. package/lib/module/hooks/useConnectedAccounts.js.map +1 -0
  303. package/lib/module/hooks/useConnections.js +119 -125
  304. package/lib/module/hooks/useConnections.js.map +1 -1
  305. package/lib/module/hooks/useUserConnections.js +140 -0
  306. package/lib/module/hooks/useUserConnections.js.map +1 -0
  307. package/lib/module/index.js +51 -15
  308. package/lib/module/index.js.map +1 -1
  309. package/lib/module/services/apiClient.js +298 -0
  310. package/lib/module/services/apiClient.js.map +1 -0
  311. package/lib/module/services/apiKeyService.js +8 -9
  312. package/lib/module/services/apiKeyService.js.map +1 -1
  313. package/lib/module/services/authService.js +905 -0
  314. package/lib/module/services/authService.js.map +1 -0
  315. package/lib/module/services/biometricPinService.js +173 -0
  316. package/lib/module/services/biometricPinService.js.map +1 -0
  317. package/lib/module/services/connectedAccountsService.js +255 -0
  318. package/lib/module/services/connectedAccountsService.js.map +1 -0
  319. package/lib/module/services/googleAuthService.js +258 -0
  320. package/lib/module/services/googleAuthService.js.map +1 -0
  321. package/lib/module/services/imageCompressionService.js +250 -0
  322. package/lib/module/services/imageCompressionService.js.map +1 -0
  323. package/lib/module/services/jwtStorageService.js +239 -0
  324. package/lib/module/services/jwtStorageService.js.map +1 -0
  325. package/lib/module/services/mobileTrainingService.js +172 -0
  326. package/lib/module/services/mobileTrainingService.js.map +1 -0
  327. package/lib/module/services/pinEncryptionService.js +75 -0
  328. package/lib/module/services/pinEncryptionService.js.map +1 -0
  329. package/lib/module/services/pinStorageUtils.js +93 -0
  330. package/lib/module/services/pinStorageUtils.js.map +1 -0
  331. package/lib/module/services/platformAuthService.js +943 -704
  332. package/lib/module/services/platformAuthService.js.map +1 -1
  333. package/lib/module/services/storageService.js +383 -0
  334. package/lib/module/services/storageService.js.map +1 -0
  335. package/lib/module/services/trainingApiHelpers.js +67 -0
  336. package/lib/module/services/trainingApiHelpers.js.map +1 -0
  337. package/lib/module/services/userConnectionsService.js +476 -0
  338. package/lib/module/services/userConnectionsService.js.map +1 -0
  339. package/lib/module/services/youtubeMigrationService.js +404 -0
  340. package/lib/module/services/youtubeMigrationService.js.map +1 -0
  341. package/lib/module/theme/index.js +244 -0
  342. package/lib/module/theme/index.js.map +1 -0
  343. package/lib/module/utils/eventUtils.js +270 -0
  344. package/lib/module/utils/eventUtils.js.map +1 -0
  345. package/lib/module/utils/haptics.js +59 -0
  346. package/lib/module/utils/haptics.js.map +1 -0
  347. package/lib/module/utils/imagePreloader.js +3 -0
  348. package/lib/module/utils/imagePreloader.js.map +1 -0
  349. package/lib/typescript/api/index.d.ts +8 -0
  350. package/lib/typescript/api/index.d.ts.map +1 -1
  351. package/lib/typescript/components/BodyText.d.ts +10 -0
  352. package/lib/typescript/components/BodyText.d.ts.map +1 -0
  353. package/lib/typescript/components/BrandMark.d.ts +11 -0
  354. package/lib/typescript/components/BrandMark.d.ts.map +1 -0
  355. package/lib/typescript/components/CodeInput.d.ts +10 -0
  356. package/lib/typescript/components/CodeInput.d.ts.map +1 -0
  357. package/lib/typescript/components/EmailInput.d.ts +8 -0
  358. package/lib/typescript/components/EmailInput.d.ts.map +1 -0
  359. package/lib/typescript/components/ExistingUserDataConfirmation.d.ts +12 -0
  360. package/lib/typescript/components/ExistingUserDataConfirmation.d.ts.map +1 -0
  361. package/lib/typescript/components/GoogleButton.d.ts +11 -0
  362. package/lib/typescript/components/GoogleButton.d.ts.map +1 -0
  363. package/lib/typescript/components/HeadingGroup.d.ts +11 -0
  364. package/lib/typescript/components/HeadingGroup.d.ts.map +1 -0
  365. package/lib/typescript/components/ModalHeader.d.ts +11 -0
  366. package/lib/typescript/components/ModalHeader.d.ts.map +1 -0
  367. package/lib/typescript/components/ModalSheet.d.ts +13 -0
  368. package/lib/typescript/components/ModalSheet.d.ts.map +1 -0
  369. package/lib/typescript/components/Onairos.d.ts.map +1 -1
  370. package/lib/typescript/components/OnairosButton.d.ts +29 -4
  371. package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
  372. package/lib/typescript/components/OnairosSignInButton.d.ts +14 -0
  373. package/lib/typescript/components/OnairosSignInButton.d.ts.map +1 -0
  374. package/lib/typescript/components/PersonaImage.d.ts +8 -0
  375. package/lib/typescript/components/PersonaImage.d.ts.map +1 -0
  376. package/lib/typescript/components/PersonaLoadingScreen.d.ts +10 -0
  377. package/lib/typescript/components/PersonaLoadingScreen.d.ts.map +1 -0
  378. package/lib/typescript/components/PersonalizationConsentScreen.d.ts +10 -0
  379. package/lib/typescript/components/PersonalizationConsentScreen.d.ts.map +1 -0
  380. package/lib/typescript/components/PinCreationScreen.d.ts +10 -0
  381. package/lib/typescript/components/PinCreationScreen.d.ts.map +1 -0
  382. package/lib/typescript/components/PinInput.d.ts +11 -1
  383. package/lib/typescript/components/PinInput.d.ts.map +1 -1
  384. package/lib/typescript/components/PlatformConnectorsStep.d.ts +11 -0
  385. package/lib/typescript/components/PlatformConnectorsStep.d.ts.map +1 -0
  386. package/lib/typescript/components/PlatformToggle.d.ts +20 -0
  387. package/lib/typescript/components/PlatformToggle.d.ts.map +1 -0
  388. package/lib/typescript/components/PrimaryButton.d.ts +22 -0
  389. package/lib/typescript/components/PrimaryButton.d.ts.map +1 -0
  390. package/lib/typescript/components/SignInMatchAnimation.d.ts +9 -0
  391. package/lib/typescript/components/SignInMatchAnimation.d.ts.map +1 -0
  392. package/lib/typescript/components/SignInStep.d.ts +12 -0
  393. package/lib/typescript/components/SignInStep.d.ts.map +1 -0
  394. package/lib/typescript/components/TrainingModal.d.ts +12 -1
  395. package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
  396. package/lib/typescript/components/UniversalOnboarding.d.ts +14 -1
  397. package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
  398. package/lib/typescript/components/VerificationStep.d.ts +13 -0
  399. package/lib/typescript/components/VerificationStep.d.ts.map +1 -0
  400. package/lib/typescript/components/WelcomeScreen.d.ts +9 -0
  401. package/lib/typescript/components/WelcomeScreen.d.ts.map +1 -0
  402. package/lib/typescript/components/icons/Basicproficon.d.ts +5 -0
  403. package/lib/typescript/components/icons/Basicproficon.d.ts.map +1 -0
  404. package/lib/typescript/components/icons/Basicprofile.d.ts +5 -0
  405. package/lib/typescript/components/icons/Basicprofile.d.ts.map +1 -0
  406. package/lib/typescript/components/icons/Checkbox.d.ts +5 -0
  407. package/lib/typescript/components/icons/Checkbox.d.ts.map +1 -0
  408. package/lib/typescript/components/icons/Checkmark.d.ts +5 -0
  409. package/lib/typescript/components/icons/Checkmark.d.ts.map +1 -0
  410. package/lib/typescript/components/icons/Contentanalysis.d.ts +5 -0
  411. package/lib/typescript/components/icons/Contentanalysis.d.ts.map +1 -0
  412. package/lib/typescript/components/icons/Contenticon.d.ts +5 -0
  413. package/lib/typescript/components/icons/Contenticon.d.ts.map +1 -0
  414. package/lib/typescript/components/icons/EnochE.d.ts +5 -0
  415. package/lib/typescript/components/icons/EnochE.d.ts.map +1 -0
  416. package/lib/typescript/components/icons/Personalityicon.d.ts +5 -0
  417. package/lib/typescript/components/icons/Personalityicon.d.ts.map +1 -0
  418. package/lib/typescript/components/icons/Personalityprofile.d.ts +5 -0
  419. package/lib/typescript/components/icons/Personalityprofile.d.ts.map +1 -0
  420. package/lib/typescript/components/icons/Personalitytraits.d.ts +5 -0
  421. package/lib/typescript/components/icons/Personalitytraits.d.ts.map +1 -0
  422. package/lib/typescript/components/icons/Userpreferences.d.ts +5 -0
  423. package/lib/typescript/components/icons/Userpreferences.d.ts.map +1 -0
  424. package/lib/typescript/components/icons/index.d.ts +12 -0
  425. package/lib/typescript/components/icons/index.d.ts.map +1 -0
  426. package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
  427. package/lib/typescript/config/api.d.ts +24 -0
  428. package/lib/typescript/config/api.d.ts.map +1 -0
  429. package/lib/typescript/context/AuthContext.d.ts +34 -0
  430. package/lib/typescript/context/AuthContext.d.ts.map +1 -0
  431. package/lib/typescript/hooks/useConnectedAccounts.d.ts +11 -0
  432. package/lib/typescript/hooks/useConnectedAccounts.d.ts.map +1 -0
  433. package/lib/typescript/hooks/useConnections.d.ts +10 -5
  434. package/lib/typescript/hooks/useConnections.d.ts.map +1 -1
  435. package/lib/typescript/hooks/useUserConnections.d.ts +12 -0
  436. package/lib/typescript/hooks/useUserConnections.d.ts.map +1 -0
  437. package/lib/typescript/index.d.ts +24 -6
  438. package/lib/typescript/index.d.ts.map +1 -1
  439. package/lib/typescript/services/apiClient.d.ts +91 -0
  440. package/lib/typescript/services/apiClient.d.ts.map +1 -0
  441. package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
  442. package/lib/typescript/services/authService.d.ts +216 -0
  443. package/lib/typescript/services/authService.d.ts.map +1 -0
  444. package/lib/typescript/services/biometricPinService.d.ts +29 -0
  445. package/lib/typescript/services/biometricPinService.d.ts.map +1 -0
  446. package/lib/typescript/services/connectedAccountsService.d.ts +56 -0
  447. package/lib/typescript/services/connectedAccountsService.d.ts.map +1 -0
  448. package/lib/typescript/services/googleAuthService.d.ts +63 -0
  449. package/lib/typescript/services/googleAuthService.d.ts.map +1 -0
  450. package/lib/typescript/services/imageCompressionService.d.ts +37 -0
  451. package/lib/typescript/services/imageCompressionService.d.ts.map +1 -0
  452. package/lib/typescript/services/jwtStorageService.d.ts +86 -0
  453. package/lib/typescript/services/jwtStorageService.d.ts.map +1 -0
  454. package/lib/typescript/services/mobileTrainingService.d.ts +45 -0
  455. package/lib/typescript/services/mobileTrainingService.d.ts.map +1 -0
  456. package/lib/typescript/services/pinEncryptionService.d.ts +17 -0
  457. package/lib/typescript/services/pinEncryptionService.d.ts.map +1 -0
  458. package/lib/typescript/services/pinStorageUtils.d.ts +25 -0
  459. package/lib/typescript/services/pinStorageUtils.d.ts.map +1 -0
  460. package/lib/typescript/services/platformAuthService.d.ts +34 -109
  461. package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
  462. package/lib/typescript/services/storageService.d.ts +128 -0
  463. package/lib/typescript/services/storageService.d.ts.map +1 -0
  464. package/lib/typescript/services/trainingApiHelpers.d.ts +38 -0
  465. package/lib/typescript/services/trainingApiHelpers.d.ts.map +1 -0
  466. package/lib/typescript/services/userConnectionsService.d.ts +90 -0
  467. package/lib/typescript/services/userConnectionsService.d.ts.map +1 -0
  468. package/lib/typescript/services/youtubeMigrationService.d.ts +12 -0
  469. package/lib/typescript/services/youtubeMigrationService.d.ts.map +1 -0
  470. package/lib/typescript/theme/index.d.ts +416 -0
  471. package/lib/typescript/theme/index.d.ts.map +1 -0
  472. package/lib/typescript/types/index.d.ts +39 -0
  473. package/lib/typescript/types/index.d.ts.map +1 -1
  474. package/lib/typescript/utils/eventUtils.d.ts +108 -0
  475. package/lib/typescript/utils/eventUtils.d.ts.map +1 -0
  476. package/lib/typescript/utils/haptics.d.ts +11 -0
  477. package/lib/typescript/utils/haptics.d.ts.map +1 -0
  478. package/lib/typescript/utils/imagePreloader.d.ts +2 -0
  479. package/lib/typescript/utils/imagePreloader.d.ts.map +1 -0
  480. package/package.json +158 -145
  481. package/src/api/index.ts +41 -0
  482. package/src/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
  483. package/src/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
  484. package/src/assets/icons/Facebookicon.png +0 -0
  485. package/src/assets/icons/Gmail.png +0 -0
  486. package/src/assets/icons/Linkedinicon.png +0 -0
  487. package/src/assets/icons/Redditicon.png +0 -0
  488. package/src/assets/icons/YouTubeicon2.png +0 -0
  489. package/src/assets/icons/YouTubeicon3.png +0 -0
  490. package/src/assets/icons/farcaster.png +0 -0
  491. package/src/assets/icons/instagram.png +0 -0
  492. package/src/assets/icons/pinterest.png +0 -0
  493. package/src/assets/icons/swerv_logo.png +0 -0
  494. package/src/assets/icons/twitter.jpg +0 -0
  495. package/src/assets/images/Checkbox.svg +3 -0
  496. package/src/assets/images/EnochE.svg +19 -0
  497. package/src/assets/images/Enochicon1.png +0 -0
  498. package/src/assets/images/Face_ID_logo.png +0 -0
  499. package/src/assets/images/Facebookicon.png +0 -0
  500. package/src/assets/images/Gmail.png +0 -0
  501. package/src/assets/images/Googlelogo.png +0 -0
  502. package/src/assets/images/Linkedinicon.png +0 -0
  503. package/src/assets/images/Onairoslogo.png +0 -0
  504. package/src/assets/images/Personalityprofile.svg +3 -0
  505. package/src/assets/images/Personalitytraits.svg +3 -0
  506. package/src/assets/images/Redditicon.png +0 -0
  507. package/src/assets/images/Userpreferences.svg +3 -0
  508. package/src/assets/images/YouTubeicon3.png +0 -0
  509. package/src/assets/images/arrow.svg +20 -0
  510. package/src/assets/images/basicproficon.svg +43 -0
  511. package/src/assets/images/basicprofile.svg +3 -0
  512. package/src/assets/images/checkmark.svg +4 -0
  513. package/src/assets/images/contentanalysis.svg +3 -0
  514. package/src/assets/images/contenticon.svg +23 -0
  515. package/src/assets/images/persona1.png +0 -0
  516. package/src/assets/images/persona2.png +0 -0
  517. package/src/assets/images/persona3.png +0 -0
  518. package/src/assets/images/persona4.png +0 -0
  519. package/src/assets/images/persona5.png +0 -0
  520. package/src/assets/images/personalityicon.svg +18 -0
  521. package/src/assets/images/x-close.svg +3 -0
  522. package/src/components/BodyText.tsx +33 -0
  523. package/src/components/BrandMark.tsx +62 -0
  524. package/src/components/CodeInput.tsx +32 -0
  525. package/src/components/EmailInput.tsx +31 -0
  526. package/src/components/ExistingUserDataConfirmation.tsx +507 -0
  527. package/src/components/GoogleButton.tsx +55 -0
  528. package/src/components/HeadingGroup.tsx +49 -0
  529. package/src/components/ModalHeader.tsx +125 -0
  530. package/src/components/ModalSheet.tsx +57 -0
  531. package/src/components/Onairos.tsx +422 -424
  532. package/src/components/OnairosButton.tsx +339 -359
  533. package/src/components/OnairosSignInButton.tsx +166 -0
  534. package/src/components/Overlay.tsx +506 -506
  535. package/src/components/PersonaImage.tsx +79 -0
  536. package/src/components/PersonaLoadingScreen.tsx +201 -0
  537. package/src/components/PersonalizationConsentScreen.tsx +410 -0
  538. package/src/components/PinCreationScreen.tsx +492 -0
  539. package/src/components/PinInput.tsx +555 -343
  540. package/src/components/PlatformConnectorsStep.tsx +892 -0
  541. package/src/components/PlatformToggle.tsx +226 -0
  542. package/src/components/PrimaryButton.tsx +214 -0
  543. package/src/components/SignInMatchAnimation.tsx +225 -0
  544. package/src/components/SignInStep.tsx +217 -0
  545. package/src/components/TrainingModal.tsx +1047 -737
  546. package/src/components/UniversalOnboarding.tsx +2888 -1820
  547. package/src/components/VerificationStep.tsx +198 -0
  548. package/src/components/WelcomeScreen.tsx +473 -0
  549. package/src/components/icons/Basicproficon.tsx +30 -0
  550. package/src/components/icons/Basicprofile.tsx +17 -0
  551. package/src/components/icons/Checkbox.tsx +17 -0
  552. package/src/components/icons/Checkmark.tsx +24 -0
  553. package/src/components/icons/Contentanalysis.tsx +17 -0
  554. package/src/components/icons/Contenticon.tsx +30 -0
  555. package/src/components/icons/EnochE.tsx +39 -0
  556. package/src/components/icons/Personalityicon.tsx +22 -0
  557. package/src/components/icons/Personalityprofile.tsx +17 -0
  558. package/src/components/icons/Personalitytraits.tsx +17 -0
  559. package/src/components/icons/Userpreferences.tsx +17 -0
  560. package/src/components/icons/index.ts +12 -0
  561. package/src/components/onboarding/OAuthWebView.tsx +232 -838
  562. package/src/config/api.ts +25 -0
  563. package/src/context/AuthContext.tsx +393 -0
  564. package/src/hooks/useConnectedAccounts.ts +139 -0
  565. package/src/hooks/useConnections.ts +129 -131
  566. package/src/hooks/useUserConnections.ts +166 -0
  567. package/src/index.ts +94 -49
  568. package/src/services/apiClient.ts +337 -0
  569. package/src/services/apiKeyService.ts +9 -11
  570. package/src/services/authService.ts +1008 -0
  571. package/src/services/biometricPinService.ts +193 -0
  572. package/src/services/connectedAccountsService.ts +290 -0
  573. package/src/services/googleAuthService.ts +279 -0
  574. package/src/services/imageCompressionService.ts +303 -0
  575. package/src/services/jwtStorageService.ts +257 -0
  576. package/src/services/mobileTrainingService.ts +204 -0
  577. package/src/services/pinEncryptionService.ts +76 -0
  578. package/src/services/pinStorageUtils.ts +97 -0
  579. package/src/services/platformAuthService.ts +1346 -1113
  580. package/src/services/storageService.ts +452 -0
  581. package/src/services/trainingApiHelpers.ts +67 -0
  582. package/src/services/userConnectionsService.ts +557 -0
  583. package/src/services/youtubeMigrationService.ts +454 -0
  584. package/src/theme/index.ts +239 -0
  585. package/src/types/index.ts +265 -238
  586. package/src/utils/eventUtils.ts +303 -0
  587. package/src/utils/haptics.ts +59 -0
  588. package/src/utils/imagePreloader.ts +2 -0
  589. package/README.md +0 -375
  590. package/lib/commonjs/assets/images/email.png +0 -0
  591. package/lib/commonjs/assets/images/linkedin.png +0 -0
  592. package/lib/commonjs/assets/images/reddit.png +0 -0
  593. package/lib/commonjs/assets/images/youtube.png +0 -0
  594. package/lib/commonjs/components/UniversalOnboarding.tsx.new +0 -455
  595. package/lib/module/assets/images/email.png +0 -0
  596. package/lib/module/assets/images/linkedin.png +0 -0
  597. package/lib/module/assets/images/reddit.png +0 -0
  598. package/lib/module/assets/images/youtube.png +0 -0
  599. package/lib/module/components/UniversalOnboarding.tsx.new +0 -455
  600. package/src/assets/images/email.png +0 -0
  601. package/src/assets/images/linkedin.png +0 -0
  602. package/src/assets/images/reddit.png +0 -0
  603. package/src/assets/images/youtube.png +0 -0
  604. package/src/components/UniversalOnboarding.tsx.new +0 -455
@@ -0,0 +1,404 @@
1
+ import { GoogleSignin } from '@react-native-google-signin/google-signin';
2
+ import { Alert } from 'react-native';
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+
5
+ // 🔑 CRITICAL: Using the same client ID for both web and iOS to avoid audience errors
6
+ const WEB_CLIENT_ID = '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com';
7
+ const IOS_CLIENT_ID = '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com';
8
+
9
+ // Configuration for Google Sign-In with refresh token support
10
+ const configureGoogleSignInForRefreshTokens = () => {
11
+ GoogleSignin.configure({
12
+ webClientId: WEB_CLIENT_ID,
13
+ // ✅ CRITICAL: Web client ID for refresh tokens
14
+ iosClientId: IOS_CLIENT_ID,
15
+ // ✅ iOS client ID for native auth
16
+
17
+ // 🔑 CRITICAL: These are the missing parameters that fix the refresh token issue
18
+ offlineAccess: true,
19
+ // ← Enables refresh tokens
20
+ forceCodeForRefreshToken: true,
21
+ // ← Forces refresh token generation
22
+
23
+ // ✅ Enhanced scopes for YouTube
24
+ scopes: ['https://www.googleapis.com/auth/youtube.readonly', 'openid', 'profile', 'email'],
25
+ // 🚀 Additional settings (helps with refresh tokens)
26
+ hostedDomain: '',
27
+ accountName: ''
28
+ });
29
+ };
30
+
31
+ // Check if user needs YouTube migration
32
+ export const checkYouTubeMigrationNeeded = async username => {
33
+ try {
34
+ const response = await fetch(`https://api2.onairos.uk/youtube/validate-connection/${username}`);
35
+ const result = await response.json();
36
+ if (result.success && result.validation) {
37
+ var _result$validation, _result$temporaryMode, _result$temporaryMode2;
38
+ // ✅ NEW: Check if this is temporary mode (matches exact backend response fields)
39
+ const isTemporaryMode = ((_result$validation = result.validation) === null || _result$validation === void 0 ? void 0 : _result$validation.isTemporaryMode) === true || ((_result$temporaryMode = result.temporaryMode) === null || _result$temporaryMode === void 0 ? void 0 : _result$temporaryMode.enabled) === true || result.isTemporaryMode === true || result.message && result.message.includes('temporary access token mode');
40
+ const needsReconnection = result.validation.needsReconnection;
41
+ const hasRefreshToken = result.validation.hasRefreshToken;
42
+ console.log('🔍 YouTube migration check:', {
43
+ username,
44
+ needsReconnection,
45
+ hasRefreshToken,
46
+ isTemporaryMode,
47
+ temporaryModeEnabled: (_result$temporaryMode2 = result.temporaryMode) === null || _result$temporaryMode2 === void 0 ? void 0 : _result$temporaryMode2.enabled,
48
+ message: result.message
49
+ });
50
+ if (isTemporaryMode) {
51
+ console.log('🔄 User using temporary mode - connection working correctly');
52
+ console.log('⚠️ No refresh capability but training can proceed');
53
+ return false; // Don't flag temporary mode as needing migration
54
+ } else if (needsReconnection) {
55
+ console.log('🔧 User needs YouTube migration for refresh token');
56
+ return true; // Only flag genuinely old connections
57
+ } else {
58
+ console.log('✅ YouTube connection fully working with refresh tokens');
59
+ return false; // Connection is perfect
60
+ }
61
+ }
62
+ return false;
63
+ } catch (error) {
64
+ console.error('❌ Error checking YouTube migration status:', error);
65
+ return false;
66
+ }
67
+ };
68
+
69
+ // ✅ NEW: Enhanced function to get detailed YouTube connection status
70
+ export const getYouTubeConnectionStatus = async username => {
71
+ try {
72
+ const response = await fetch(`https://api2.onairos.uk/youtube/validate-connection/${username}`);
73
+ const result = await response.json();
74
+ console.log('📋 Complete YouTube status response:', result);
75
+ if (result.success && result.validation) {
76
+ var _result$validation2, _result$temporaryMode3;
77
+ // Check for temporary mode (prioritize exact backend fields)
78
+ const isTemporaryMode = ((_result$validation2 = result.validation) === null || _result$validation2 === void 0 ? void 0 : _result$validation2.isTemporaryMode) === true || ((_result$temporaryMode3 = result.temporaryMode) === null || _result$temporaryMode3 === void 0 ? void 0 : _result$temporaryMode3.enabled) === true || result.isTemporaryMode === true || result.message && result.message.includes('temporary access token mode');
79
+ const hasRefreshToken = result.validation.hasRefreshToken === true;
80
+ const needsReconnection = result.validation.needsReconnection === true;
81
+ if (isTemporaryMode) {
82
+ console.log('🔄 YouTube connected in temporary mode');
83
+ console.log('✅ Training will work, but connection expires in ~1 hour');
84
+ return {
85
+ isReady: true,
86
+ mode: 'temporary',
87
+ needsMigration: false,
88
+ trainingReady: true,
89
+ details: result
90
+ };
91
+ } else if (hasRefreshToken) {
92
+ console.log('✅ YouTube connected with refresh tokens');
93
+ return {
94
+ isReady: true,
95
+ mode: 'full',
96
+ needsMigration: false,
97
+ trainingReady: true,
98
+ details: result
99
+ };
100
+ } else if (needsReconnection) {
101
+ console.log('⚠️ YouTube connected but needs migration');
102
+ return {
103
+ isReady: false,
104
+ mode: 'limited',
105
+ needsMigration: true,
106
+ trainingReady: false,
107
+ details: result
108
+ };
109
+ } else {
110
+ console.log('❓ YouTube connection status unclear');
111
+ return {
112
+ isReady: false,
113
+ mode: 'none',
114
+ needsMigration: false,
115
+ trainingReady: false,
116
+ details: result
117
+ };
118
+ }
119
+ }
120
+ console.log('❌ No YouTube connection found');
121
+ return {
122
+ isReady: false,
123
+ mode: 'none',
124
+ needsMigration: false,
125
+ trainingReady: false,
126
+ details: result
127
+ };
128
+ } catch (error) {
129
+ console.error('❌ Error getting YouTube connection status:', error);
130
+ return {
131
+ isReady: false,
132
+ mode: 'none',
133
+ needsMigration: false,
134
+ trainingReady: false,
135
+ details: {
136
+ error: error instanceof Error ? error.message : String(error)
137
+ }
138
+ };
139
+ }
140
+ };
141
+
142
+ // Show user-friendly migration prompt
143
+ const showYouTubeMigrationPrompt = async () => {
144
+ return new Promise(resolve => {
145
+ Alert.alert('YouTube Connection Upgrade', 'To improve your training experience, we need to upgrade your YouTube connection. This prevents interruptions during data collection.\n\n✅ One-time upgrade\n✅ Takes 30 seconds\n✅ No data loss\n\nUpgrade now?', [{
146
+ text: 'Skip for Now',
147
+ style: 'cancel',
148
+ onPress: () => resolve(false)
149
+ }, {
150
+ text: 'Upgrade Now',
151
+ style: 'default',
152
+ onPress: () => resolve(true)
153
+ }]);
154
+ });
155
+ };
156
+
157
+ // Force YouTube reconnection with consent screen
158
+ const forceYouTubeReconnection = async username => {
159
+ try {
160
+ var _user, _user2, _user3, _user4;
161
+ console.log('🔄 Starting YouTube migration for user:', username);
162
+
163
+ // 1. Configure for refresh tokens
164
+ configureGoogleSignInForRefreshTokens();
165
+
166
+ // 2. Complete sign out to clear cached consent
167
+ await GoogleSignin.signOut();
168
+ console.log('✅ Signed out - consent cache cleared');
169
+
170
+ // 3. Clear cached tokens if available
171
+ try {
172
+ const existingTokens = await GoogleSignin.getTokens();
173
+ if (existingTokens.accessToken) {
174
+ await GoogleSignin.clearCachedAccessToken(existingTokens.accessToken);
175
+ console.log('✅ Token cache cleared');
176
+ }
177
+ } catch (clearError) {
178
+ console.log('ℹ️ No token cache to clear');
179
+ }
180
+
181
+ // 4. Check Google Play Services
182
+ await GoogleSignin.hasPlayServices();
183
+
184
+ // 5. Sign in (this will show consent screen)
185
+ console.log('🔐 Initiating sign-in - consent screen should appear...');
186
+ const userInfo = await GoogleSignin.signIn();
187
+
188
+ // 6. Get tokens after consent
189
+ const tokens = await GoogleSignin.getTokens();
190
+ const currentUser = await GoogleSignin.getCurrentUser();
191
+
192
+ // 7. Analyze tokens thoroughly (serverAuthCode is the refresh token mechanism in React Native)
193
+ let finalRefreshToken = null;
194
+ let refreshTokenSource = 'None';
195
+
196
+ // Check for server auth code from sign-in response (primary method)
197
+ if (userInfo.serverAuthCode) {
198
+ finalRefreshToken = userInfo.serverAuthCode;
199
+ refreshTokenSource = 'Server auth code from sign-in';
200
+ }
201
+ // Check current user server auth code (backup method)
202
+ else if (currentUser !== null && currentUser !== void 0 && currentUser.serverAuthCode) {
203
+ finalRefreshToken = currentUser.serverAuthCode;
204
+ refreshTokenSource = 'Current user server auth code';
205
+ }
206
+ console.log('🔍 Token Analysis:', {
207
+ hasAccessToken: !!tokens.accessToken,
208
+ hasIdToken: !!tokens.idToken,
209
+ hasServerAuthCode: !!userInfo.serverAuthCode,
210
+ hasCurrentUserAuthCode: !!(currentUser !== null && currentUser !== void 0 && currentUser.serverAuthCode),
211
+ refreshTokenSource: refreshTokenSource,
212
+ finalRefreshToken: finalRefreshToken ? 'Available' : 'MISSING!',
213
+ userEmail: (_user = userInfo.user) === null || _user === void 0 ? void 0 : _user.email
214
+ });
215
+ if (!finalRefreshToken) {
216
+ console.error('❌ No refresh token received - Google Console configuration may be incorrect');
217
+ console.error('💡 This usually means:');
218
+ console.error(' 1. offlineAccess: true is missing from configuration');
219
+ console.error(' 2. forceCodeForRefreshToken: true is missing');
220
+ console.error(' 3. User did not grant offline access permission');
221
+ return false;
222
+ }
223
+ console.log('✅ Got refresh token after consent:', finalRefreshToken.substring(0, 20) + '...');
224
+ console.log('🔑 Refresh token source:', refreshTokenSource);
225
+
226
+ // 8. Get existing authentication token
227
+ let authToken = (await AsyncStorage.getItem('onairos_jwt_token')) || (await AsyncStorage.getItem('enoch_token')) || (await AsyncStorage.getItem('auth_token'));
228
+ if (!authToken) {
229
+ console.warn('⚠️ No authentication token found for YouTube migration');
230
+ authToken = 'migration_token_placeholder';
231
+ }
232
+
233
+ // 9. Send enhanced payload to backend
234
+ const backendPayload = {
235
+ session: {
236
+ username: username,
237
+ platform: 'youtube',
238
+ channelName: ((_user2 = userInfo.user) === null || _user2 === void 0 ? void 0 : _user2.name) || 'YouTube Channel',
239
+ channelId: null
240
+ },
241
+ googleUser: userInfo.user,
242
+ accessToken: tokens.accessToken,
243
+ idToken: tokens.idToken,
244
+ refreshToken: finalRefreshToken,
245
+ serverAuthCode: userInfo.serverAuthCode,
246
+ userAccountInfo: {
247
+ username: username,
248
+ email: (_user3 = userInfo.user) === null || _user3 === void 0 ? void 0 : _user3.email,
249
+ authToken: authToken,
250
+ channelName: ((_user4 = userInfo.user) === null || _user4 === void 0 ? void 0 : _user4.name) || 'YouTube Channel',
251
+ channelId: null
252
+ }
253
+ };
254
+ console.log('📤 Sending migration payload to backend...');
255
+
256
+ // 10. Send to backend
257
+ const response = await fetch('https://api2.onairos.uk/youtube/native-auth', {
258
+ method: 'POST',
259
+ headers: {
260
+ 'Content-Type': 'application/json',
261
+ 'x-api-key': 'your-api-key',
262
+ // Use your existing API key if needed
263
+ ...(authToken !== 'migration_token_placeholder' && {
264
+ 'Authorization': `Bearer ${authToken}`
265
+ })
266
+ },
267
+ body: JSON.stringify(backendPayload)
268
+ });
269
+ const result = await response.json();
270
+ if (result.success) {
271
+ console.log('✅ YouTube migration successful');
272
+
273
+ // Track migration success
274
+ await trackMigrationAttempt(username, true);
275
+ return true;
276
+ } else {
277
+ console.error('❌ Backend rejected YouTube migration:', result.error);
278
+ await trackMigrationAttempt(username, false, result.error);
279
+ return false;
280
+ }
281
+ } catch (error) {
282
+ console.error('❌ YouTube migration failed:', error);
283
+ await trackMigrationAttempt(username, false, error instanceof Error ? error.message : 'Unknown error');
284
+ return false;
285
+ }
286
+ };
287
+
288
+ // Track migration attempts for monitoring
289
+ const trackMigrationAttempt = async (username, success, error) => {
290
+ try {
291
+ await fetch('https://api2.onairos.uk/youtube/migration-status', {
292
+ method: 'POST',
293
+ headers: {
294
+ 'Content-Type': 'application/json'
295
+ },
296
+ body: JSON.stringify({
297
+ username,
298
+ success,
299
+ error: error || null,
300
+ timestamp: new Date().toISOString()
301
+ })
302
+ });
303
+ } catch (trackError) {
304
+ console.error('❌ Failed to track migration attempt:', trackError);
305
+ }
306
+ };
307
+
308
+ // ✅ NEW: Explicit function to check if user should see migration warnings
309
+ export const shouldShowYouTubeMigrationWarning = async username => {
310
+ try {
311
+ console.log('🔍 [MIGRATION WARNING] Checking if user should see migration warning:', username);
312
+ const response = await fetch(`https://api2.onairos.uk/youtube/validate-connection/${username}`);
313
+ const result = await response.json();
314
+ if (result.success && result.validation) {
315
+ var _result$validation3, _result$temporaryMode4;
316
+ // Check for temporary mode (prioritize exact backend fields)
317
+ const isTemporaryMode = ((_result$validation3 = result.validation) === null || _result$validation3 === void 0 ? void 0 : _result$validation3.isTemporaryMode) === true || ((_result$temporaryMode4 = result.temporaryMode) === null || _result$temporaryMode4 === void 0 ? void 0 : _result$temporaryMode4.enabled) === true || result.isTemporaryMode === true;
318
+ const hasAccessToken = result.validation.hasAccessToken === true;
319
+ const hasRefreshToken = result.validation.hasRefreshToken === true;
320
+ const needsReconnection = result.validation.needsReconnection === true;
321
+ console.log('📊 [MIGRATION WARNING] Status check:', {
322
+ username,
323
+ hasAccessToken,
324
+ hasRefreshToken,
325
+ needsReconnection,
326
+ isTemporaryMode,
327
+ connectedAt: result.validation.connectedAt
328
+ });
329
+ if (isTemporaryMode) {
330
+ console.log('🚫 [MIGRATION WARNING] NO WARNING - user is in temporary mode (working correctly)');
331
+ return false; // Don't show migration warning
332
+ } else if (hasAccessToken && !hasRefreshToken && needsReconnection) {
333
+ console.log('⚠️ [MIGRATION WARNING] SHOW WARNING - genuinely old connection needs update');
334
+ return true; // Show migration warning for genuinely broken connections
335
+ } else {
336
+ console.log('✅ [MIGRATION WARNING] NO WARNING - connection is working properly');
337
+ return false; // Don't show warning for working connections
338
+ }
339
+ }
340
+ console.log('ℹ️ [MIGRATION WARNING] NO WARNING - no YouTube connection found');
341
+ return false; // Don't show warning if no connection
342
+ } catch (error) {
343
+ console.error('❌ [MIGRATION WARNING] Error checking migration warning status:', error);
344
+ return false; // Don't show warning on error
345
+ }
346
+ };
347
+
348
+ // Main function to check and fix YouTube connection
349
+ export const checkAndFixYouTubeConnection = async username => {
350
+ try {
351
+ console.log('🔄 Checking YouTube connection for user:', username);
352
+
353
+ // 1. First check if user should see migration warning at all
354
+ const shouldShowWarning = await shouldShowYouTubeMigrationWarning(username);
355
+ if (!shouldShowWarning) {
356
+ console.log('🚫 [MIGRATION] NO MIGRATION NEEDED - user connection is working correctly');
357
+ console.log('✅ [MIGRATION] User can proceed with training normally');
358
+ return true; // Return success - no migration needed
359
+ }
360
+
361
+ // 2. Double-check migration is actually needed (for safety)
362
+ const needsMigration = await checkYouTubeMigrationNeeded(username);
363
+ if (!needsMigration) {
364
+ console.log('✅ [MIGRATION] YouTube connection working properly - no migration needed');
365
+ return true;
366
+ }
367
+ console.log('🔧 [MIGRATION] User needs YouTube migration for refresh token (genuinely old connection)');
368
+
369
+ // 2. Show user-friendly prompt
370
+ const userConfirmed = await showYouTubeMigrationPrompt();
371
+ if (!userConfirmed) {
372
+ console.log('ℹ️ User declined YouTube migration');
373
+ return false;
374
+ }
375
+
376
+ // 3. Attempt migration
377
+ const migrationSuccess = await forceYouTubeReconnection(username);
378
+ if (migrationSuccess) {
379
+ // Show success message
380
+ Alert.alert('YouTube Upgraded! ✅', 'Your YouTube connection has been upgraded successfully. Training will now work seamlessly without interruptions.', [{
381
+ text: 'Great!',
382
+ style: 'default'
383
+ }]);
384
+ return true;
385
+ } else {
386
+ // Show failure message
387
+ Alert.alert('Upgrade Failed ❌', 'YouTube connection upgrade failed. Please try again later or contact support if the problem persists.', [{
388
+ text: 'OK',
389
+ style: 'default'
390
+ }]);
391
+ return false;
392
+ }
393
+ } catch (error) {
394
+ console.error('❌ Error in YouTube connection check:', error);
395
+ return false;
396
+ }
397
+ };
398
+
399
+ // Optional: Reconnect function for manual use
400
+ export const reconnectYouTube = async username => {
401
+ console.log('🔄 Manual YouTube reconnection requested for:', username);
402
+ return await forceYouTubeReconnection(username);
403
+ };
404
+ //# sourceMappingURL=youtubeMigrationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GoogleSignin","Alert","AsyncStorage","WEB_CLIENT_ID","IOS_CLIENT_ID","configureGoogleSignInForRefreshTokens","configure","webClientId","iosClientId","offlineAccess","forceCodeForRefreshToken","scopes","hostedDomain","accountName","checkYouTubeMigrationNeeded","username","response","fetch","result","json","success","validation","_result$validation","_result$temporaryMode","_result$temporaryMode2","isTemporaryMode","temporaryMode","enabled","message","includes","needsReconnection","hasRefreshToken","console","log","temporaryModeEnabled","error","getYouTubeConnectionStatus","_result$validation2","_result$temporaryMode3","isReady","mode","needsMigration","trainingReady","details","Error","String","showYouTubeMigrationPrompt","Promise","resolve","alert","text","style","onPress","forceYouTubeReconnection","_user","_user2","_user3","_user4","signOut","existingTokens","getTokens","accessToken","clearCachedAccessToken","clearError","hasPlayServices","userInfo","signIn","tokens","currentUser","getCurrentUser","finalRefreshToken","refreshTokenSource","serverAuthCode","hasAccessToken","hasIdToken","idToken","hasServerAuthCode","hasCurrentUserAuthCode","userEmail","user","email","substring","authToken","getItem","warn","backendPayload","session","platform","channelName","name","channelId","googleUser","refreshToken","userAccountInfo","method","headers","body","JSON","stringify","trackMigrationAttempt","timestamp","Date","toISOString","trackError","shouldShowYouTubeMigrationWarning","_result$validation3","_result$temporaryMode4","connectedAt","checkAndFixYouTubeConnection","shouldShowWarning","userConfirmed","migrationSuccess","reconnectYouTube"],"sourceRoot":"..\\..\\..\\src","sources":["services/youtubeMigrationService.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,244 @@
1
+ import { Platform } from 'react-native';
2
+
3
+ // Color Tokens as specified in the design brief
4
+ export const COLORS = {
5
+ // Welcome Screen Specific Colors
6
+ surface: '#FAFAFA',
7
+ grey400: '#9CA3AF',
8
+ grey500: '#86888E',
9
+ grey600: '#62646C',
10
+ grey700: '#374151',
11
+ grey800: '#1F242F',
12
+ // PrimaryButton exact tokens
13
+ btnGradStart: '#29292B',
14
+ btnGradEnd: '#17181C',
15
+ btnBorder: 'rgba(0,0,0,0.20)',
16
+ btnShadowOuter: 'rgba(0,0,0,0.10)',
17
+ btnInnerShadow: 'rgba(0,0,0,0.06)',
18
+ btnLabel: '#FFFFFF',
19
+ iconCircleGradientStart: '#0A090E',
20
+ iconCircleGradientEnd: '#17171B',
21
+ // Legacy colors (preserved for backward compatibility)
22
+ primary: '#FFD700',
23
+ primaryDark: '#E9B104',
24
+ primaryLight: '#FFDF33',
25
+ background: {
26
+ dark: '#000000',
27
+ medium: '#121212',
28
+ light: '#1C2526'
29
+ },
30
+ text: {
31
+ primary: '#FFFFFF',
32
+ secondary: '#B0B0B0',
33
+ tertiary: '#808080',
34
+ gold: '#FFD700'
35
+ },
36
+ ui: {
37
+ cardBackground: 'rgba(255, 255, 255, 0.1)',
38
+ divider: 'rgba(255, 255, 255, 0.1)',
39
+ inputBackground: 'rgba(255, 255, 255, 0.1)',
40
+ buttonBackground: 'rgba(255, 255, 255, 0.1)'
41
+ },
42
+ status: {
43
+ success: '#4BB543',
44
+ error: '#FF3B30',
45
+ warning: '#FF9500',
46
+ info: '#5AC8FA'
47
+ },
48
+ transparent: 'transparent',
49
+ overlay: 'rgba(0, 0, 0, 0.7)'
50
+ };
51
+
52
+ // Typography - Font families and weights as specified
53
+ export const FONTS = {
54
+ families: {
55
+ ibmPlexSans: Platform.OS === 'ios' ? 'IBM Plex Sans' : 'IBM Plex Sans',
56
+ ibmPlexSansBold: Platform.OS === 'ios' ? 'IBM Plex Sans' : 'IBM Plex Sans',
57
+ inter: Platform.OS === 'ios' ? 'Inter' : 'Inter-Regular',
58
+ // Legacy families
59
+ base: Platform.OS === 'ios' ? 'System' : 'Roboto',
60
+ serif: Platform.OS === 'ios' ? 'Georgia' : 'serif'
61
+ },
62
+ weights: {
63
+ light: '300',
64
+ regular: '400',
65
+ medium: '500',
66
+ semibold: '600',
67
+ bold: '700'
68
+ },
69
+ sizes: {
70
+ xs: 12,
71
+ sm: 14,
72
+ md: 16,
73
+ lg: 18,
74
+ xl: 20,
75
+ xxl: 24,
76
+ xxxl: 28,
77
+ title: 32,
78
+ large: 42,
79
+ // Welcome screen specific sizes
80
+ kicker: 18,
81
+ welcomeTitle: 48,
82
+ body: 16,
83
+ buttonLabel: 16
84
+ },
85
+ lineHeights: {
86
+ // Welcome screen specific line heights
87
+ kicker: 20,
88
+ // 111%
89
+ welcomeTitle: 54,
90
+ // 112.5%
91
+ body: 24,
92
+ // 150%
93
+ // Legacy line heights
94
+ sm: 16,
95
+ md: 20,
96
+ lg: 24,
97
+ xl: 28
98
+ },
99
+ letterSpacing: {
100
+ kicker: -0.24,
101
+ tight: -0.5,
102
+ normal: 0,
103
+ wide: 0.5
104
+ }
105
+ };
106
+
107
+ // Spacing tokens
108
+ export const SPACING = {
109
+ xs: 4,
110
+ sm: 8,
111
+ md: 16,
112
+ lg: 24,
113
+ xl: 32,
114
+ xxl: 48,
115
+ xxxl: 64,
116
+ // Welcome screen specific spacing
117
+ modalTopPadding: 118,
118
+ modalHorizontal: 24
119
+ };
120
+
121
+ // Border radius tokens
122
+ export const BORDER_RADIUS = {
123
+ xs: 4,
124
+ sm: 8,
125
+ md: 16,
126
+ lg: 24,
127
+ xl: 32,
128
+ pill: 100,
129
+ circle: 999,
130
+ // Welcome screen specific radii
131
+ modalTop: 24,
132
+ buttonPill: 100
133
+ };
134
+
135
+ // Shadow tokens
136
+ export const SHADOWS = {
137
+ small: {
138
+ shadowColor: COLORS.primary,
139
+ shadowOffset: {
140
+ width: 0,
141
+ height: 2
142
+ },
143
+ shadowOpacity: 0.3,
144
+ shadowRadius: 4,
145
+ elevation: 3
146
+ },
147
+ medium: {
148
+ shadowColor: COLORS.primary,
149
+ shadowOffset: {
150
+ width: 0,
151
+ height: 4
152
+ },
153
+ shadowOpacity: 0.5,
154
+ shadowRadius: 8,
155
+ elevation: 5
156
+ },
157
+ large: {
158
+ shadowColor: COLORS.primary,
159
+ shadowOffset: {
160
+ width: 0,
161
+ height: 6
162
+ },
163
+ shadowOpacity: 0.8,
164
+ shadowRadius: 16,
165
+ elevation: 8
166
+ },
167
+ // Welcome screen specific shadows
168
+ button: {
169
+ // Inner shadow (simulated via overlay)
170
+ inner: {
171
+ shadowColor: COLORS.btnInnerShadow,
172
+ shadowOffset: {
173
+ width: 0,
174
+ height: -36
175
+ },
176
+ shadowOpacity: 1,
177
+ shadowRadius: 21.1
178
+ },
179
+ // Outer shadow
180
+ outer: {
181
+ shadowColor: COLORS.btnShadowOuter,
182
+ shadowOffset: {
183
+ width: 20,
184
+ height: 30
185
+ },
186
+ shadowOpacity: 1,
187
+ shadowRadius: 40,
188
+ elevation: 8
189
+ }
190
+ },
191
+ brandMark: {
192
+ shadowColor: '#000000',
193
+ shadowOffset: {
194
+ width: 0,
195
+ height: 4
196
+ },
197
+ shadowOpacity: 0.1,
198
+ shadowRadius: 8,
199
+ elevation: 4
200
+ }
201
+ };
202
+
203
+ // Typography style objects for easy use
204
+ export const TEXT_STYLES = {
205
+ // Welcome screen typography
206
+ kicker: {
207
+ fontFamily: FONTS.families.ibmPlexSansBold,
208
+ fontWeight: FONTS.weights.bold,
209
+ fontSize: FONTS.sizes.kicker,
210
+ lineHeight: FONTS.lineHeights.kicker,
211
+ letterSpacing: FONTS.letterSpacing.kicker,
212
+ color: COLORS.grey500
213
+ },
214
+ welcomeTitle: {
215
+ fontFamily: FONTS.families.ibmPlexSansBold,
216
+ fontWeight: FONTS.weights.bold,
217
+ fontSize: FONTS.sizes.welcomeTitle,
218
+ lineHeight: FONTS.lineHeights.welcomeTitle,
219
+ color: COLORS.grey800
220
+ },
221
+ body: {
222
+ fontFamily: FONTS.families.inter,
223
+ fontWeight: FONTS.weights.regular,
224
+ fontSize: FONTS.sizes.body,
225
+ lineHeight: FONTS.lineHeights.body,
226
+ textAlign: 'center',
227
+ color: COLORS.grey600
228
+ },
229
+ buttonLabel: {
230
+ fontFamily: FONTS.families.inter,
231
+ fontWeight: FONTS.weights.semibold,
232
+ fontSize: FONTS.sizes.buttonLabel,
233
+ color: COLORS.btnLabel
234
+ }
235
+ };
236
+ export default {
237
+ COLORS,
238
+ FONTS,
239
+ SPACING,
240
+ BORDER_RADIUS,
241
+ SHADOWS,
242
+ TEXT_STYLES
243
+ };
244
+ //# sourceMappingURL=index.js.map