@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,239 @@
1
+ import AsyncStorage from '@react-native-async-storage/async-storage';
2
+ /**
3
+ * JWT Token Storage Service - CORRECTED APPROACH
4
+ * Manages 3 DISTINCT JWT token types for different route families
5
+ *
6
+ * TOKEN TYPES:
7
+ * 1. Enoch JWT (enoch_token) - For /enoch/*, /api/auth/*, /mobile-training/enoch
8
+ * 2. Onairos JWT (onairos_jwt_token) - For /youtube/*, /gmail/*, social connections
9
+ * 3. Auth Token (auth_token) - For context-specific auth flows
10
+ */
11
+
12
+ export let TokenType = /*#__PURE__*/function (TokenType) {
13
+ TokenType["ENOCH"] = "enoch_token";
14
+ TokenType["ONAIROS"] = "onairos_jwt_token";
15
+ TokenType["AUTH"] = "auth_token";
16
+ return TokenType;
17
+ }({});
18
+
19
+ /**
20
+ * Route-based token mapping
21
+ * Determines which token type to use for which routes
22
+ */
23
+ export const getTokenTypeForRoute = route => {
24
+ const cleanRoute = route.toLowerCase();
25
+
26
+ // Enoch routes - use Enoch JWT
27
+ if (cleanRoute.includes('/enoch/') || cleanRoute.includes('/api/auth/') || cleanRoute.includes('/mobile-training/enoch')) {
28
+ return TokenType.ENOCH;
29
+ }
30
+
31
+ // Onairos routes - use Onairos JWT
32
+ if (cleanRoute.includes('/youtube/') || cleanRoute.includes('/gmail/') || cleanRoute.includes('/connectedaccounts') || cleanRoute.includes('/social/')) {
33
+ return TokenType.ONAIROS;
34
+ }
35
+
36
+ // Default to auth token for other routes
37
+ return TokenType.AUTH;
38
+ };
39
+
40
+ /**
41
+ * Store JWT token of specific type
42
+ * @param tokenType - Type of token to store
43
+ * @param token - JWT token to store
44
+ * @returns Promise<boolean> - Success status
45
+ */
46
+ export const storeJWT = async (tokenType, token) => {
47
+ try {
48
+ if (!token || token.trim() === '') {
49
+ console.warn(`⚠️ [JWT Storage] Attempted to store empty/null ${tokenType} token`);
50
+ return false;
51
+ }
52
+
53
+ // Validate JWT format (should have 3 parts separated by dots)
54
+ const parts = token.split('.');
55
+ if (parts.length !== 3) {
56
+ console.warn(`⚠️ [JWT Storage] Invalid JWT format for ${tokenType} - token should have 3 parts`);
57
+ return false;
58
+ }
59
+ await AsyncStorage.setItem(tokenType, token);
60
+ console.log(`✅ [JWT Storage] ${tokenType} token stored successfully`);
61
+ return true;
62
+ } catch (error) {
63
+ console.error(`❌ [JWT Storage] Failed to store ${tokenType} token:`, error);
64
+ return false;
65
+ }
66
+ };
67
+
68
+ /**
69
+ * Retrieve JWT token of specific type
70
+ * @param tokenType - Type of token to retrieve
71
+ * @returns Promise<string | null> - JWT token or null if not found
72
+ */
73
+ export const getJWT = async tokenType => {
74
+ try {
75
+ const token = await AsyncStorage.getItem(tokenType);
76
+ if (!token) {
77
+ console.log(`📭 [JWT Storage] No ${tokenType} token found in storage`);
78
+ return null;
79
+ }
80
+
81
+ // Validate JWT format
82
+ if (!isValidJWTFormat(token)) {
83
+ console.warn(`⚠️ [JWT Storage] Invalid JWT format found for ${tokenType}, removing`);
84
+ await clearJWT(tokenType);
85
+ return null;
86
+ }
87
+ console.log(`🔐 [JWT Storage] ${tokenType} token retrieved successfully`);
88
+ return token;
89
+ } catch (error) {
90
+ console.error(`❌ [JWT Storage] Failed to retrieve ${tokenType} token:`, error);
91
+ return null;
92
+ }
93
+ };
94
+
95
+ /**
96
+ * Get JWT token for specific route
97
+ * @param route - API route to get token for
98
+ * @returns Promise<string | null> - Appropriate JWT token or null
99
+ */
100
+ export const getJWTForRoute = async route => {
101
+ const tokenType = getTokenTypeForRoute(route);
102
+ const token = await getJWT(tokenType);
103
+ if (token) {
104
+ console.log(`🎯 [JWT Storage] Using ${tokenType} token for route: ${route}`);
105
+ } else {
106
+ console.warn(`⚠️ [JWT Storage] No ${tokenType} token available for route: ${route}`);
107
+ }
108
+ return token;
109
+ };
110
+
111
+ /**
112
+ * Clear JWT token of specific type
113
+ * @param tokenType - Type of token to clear
114
+ * @returns Promise<boolean> - Success status
115
+ */
116
+ export const clearJWT = async tokenType => {
117
+ try {
118
+ await AsyncStorage.removeItem(tokenType);
119
+ console.log(`✅ [JWT Storage] ${tokenType} token cleared successfully`);
120
+ return true;
121
+ } catch (error) {
122
+ console.error(`❌ [JWT Storage] Failed to clear ${tokenType} token:`, error);
123
+ return false;
124
+ }
125
+ };
126
+
127
+ /**
128
+ * Clear all JWT tokens
129
+ * @returns Promise<boolean> - Success status
130
+ */
131
+ export const clearAllJWT = async () => {
132
+ try {
133
+ await Promise.all([clearJWT(TokenType.ENOCH), clearJWT(TokenType.ONAIROS), clearJWT(TokenType.AUTH)]);
134
+ console.log('✅ [JWT Storage] All JWT tokens cleared successfully');
135
+ return true;
136
+ } catch (error) {
137
+ console.error('❌ [JWT Storage] Failed to clear all JWT tokens:', error);
138
+ return false;
139
+ }
140
+ };
141
+
142
+ /**
143
+ * Replace JWT token after verification - route-aware
144
+ * @param tokenType - Type of token being replaced
145
+ * @param newToken - New JWT token from verification response
146
+ * @returns Promise<boolean> - Success status
147
+ */
148
+ export const replaceJWTAfterVerification = async (tokenType, newToken) => {
149
+ try {
150
+ console.log(`🔄 [JWT Storage] Replacing ${tokenType} token after verification`);
151
+ if (!newToken || !isValidJWTFormat(newToken)) {
152
+ console.error(`❌ [JWT Storage] Invalid ${tokenType} token provided for replacement`);
153
+ return false;
154
+ }
155
+
156
+ // Clear old token first, then store new one
157
+ await clearJWT(tokenType);
158
+ const stored = await storeJWT(tokenType, newToken);
159
+ if (stored) {
160
+ console.log(`✅ [JWT Storage] ${tokenType} token successfully replaced after verification`);
161
+ }
162
+ return stored;
163
+ } catch (error) {
164
+ console.error(`❌ [JWT Storage] Failed to replace ${tokenType} token after verification:`, error);
165
+ return false;
166
+ }
167
+ };
168
+
169
+ /**
170
+ * Store Enoch JWT token (from email verification)
171
+ * @param token - Enoch JWT token
172
+ * @returns Promise<boolean> - Success status
173
+ */
174
+ export const storeEnochJWT = async token => {
175
+ return await storeJWT(TokenType.ENOCH, token);
176
+ };
177
+
178
+ /**
179
+ * Store Onairos JWT token (from sign-in/registration)
180
+ * @param token - Onairos JWT token
181
+ * @returns Promise<boolean> - Success status
182
+ */
183
+ export const storeOnairosJWT = async token => {
184
+ return await storeJWT(TokenType.ONAIROS, token);
185
+ };
186
+
187
+ /**
188
+ * Store Auth token (for context-specific flows)
189
+ * @param token - Auth token
190
+ * @returns Promise<boolean> - Success status
191
+ */
192
+ export const storeAuthToken = async token => {
193
+ return await storeJWT(TokenType.AUTH, token);
194
+ };
195
+
196
+ /**
197
+ * Validate JWT format
198
+ * @param token - Token to validate
199
+ * @returns boolean - True if valid JWT format
200
+ */
201
+ const isValidJWTFormat = token => {
202
+ if (!token || token.length < 20) return false;
203
+
204
+ // Check if it's an email address (invalid JWT)
205
+ if (token.includes('@') && token.includes('.') && !token.includes('Bearer') && token.length < 100) {
206
+ return false;
207
+ }
208
+
209
+ // Check if it has JWT structure (3 parts separated by dots)
210
+ const tokenParts = token.split('.');
211
+ if (tokenParts.length !== 3) return false;
212
+
213
+ // Additional validation - JWT should be longer than 50 characters typically
214
+ if (token.length < 50) return false;
215
+ return true;
216
+ };
217
+
218
+ /**
219
+ * Check if JWT token of specific type exists and is valid
220
+ * @param tokenType - Type of token to check
221
+ * @returns Promise<boolean> - True if valid token exists
222
+ */
223
+ export const hasValidJWT = async tokenType => {
224
+ const token = await getJWT(tokenType);
225
+ return token !== null;
226
+ };
227
+
228
+ /**
229
+ * Get all available tokens (for debugging)
230
+ * @returns Promise<Record<TokenType, string | null>> - All tokens
231
+ */
232
+ export const getAllTokens = async () => {
233
+ return {
234
+ [TokenType.ENOCH]: await getJWT(TokenType.ENOCH),
235
+ [TokenType.ONAIROS]: await getJWT(TokenType.ONAIROS),
236
+ [TokenType.AUTH]: await getJWT(TokenType.AUTH)
237
+ };
238
+ };
239
+ //# sourceMappingURL=jwtStorageService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AsyncStorage","TokenType","getTokenTypeForRoute","route","cleanRoute","toLowerCase","includes","ENOCH","ONAIROS","AUTH","storeJWT","tokenType","token","trim","console","warn","parts","split","length","setItem","log","error","getJWT","getItem","isValidJWTFormat","clearJWT","getJWTForRoute","removeItem","clearAllJWT","Promise","all","replaceJWTAfterVerification","newToken","stored","storeEnochJWT","storeOnairosJWT","storeAuthToken","tokenParts","hasValidJWT","getAllTokens"],"sourceRoot":"..\\..\\..\\src","sources":["services/jwtStorageService.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,172 @@
1
+ import { getAuthToken } from './authService';
2
+ // Migration functions no longer needed - backend handles all YouTube cases automatically
3
+ // import { checkAndFixYouTubeConnection, getYouTubeConnectionStatus, shouldShowYouTubeMigrationWarning } from './youtubeMigrationService';
4
+
5
+ const API_BASE_URL = 'https://api2.onairos.uk';
6
+
7
+ /**
8
+ * Mobile Training API Service
9
+ * Implements the updated training spec routes
10
+ */
11
+
12
+ // Training Status Route
13
+ export const getTrainingStatus = async username => {
14
+ try {
15
+ const authToken = await getAuthToken();
16
+ if (!authToken) {
17
+ throw new Error('No authentication token available');
18
+ }
19
+ const response = await fetch(`${API_BASE_URL}/mobile-training/status/${username}`, {
20
+ method: 'GET',
21
+ headers: {
22
+ 'Authorization': authToken,
23
+ 'Content-Type': 'application/json'
24
+ }
25
+ });
26
+ if (!response.ok) {
27
+ const errorData = await response.json();
28
+ throw new Error(errorData.error || `HTTP ${response.status}`);
29
+ }
30
+ return await response.json();
31
+ } catch (error) {
32
+ console.error('❌ Failed to get training status:', error);
33
+ throw error;
34
+ }
35
+ };
36
+
37
+ // Model Info Route
38
+ export const getModelInfo = async () => {
39
+ try {
40
+ const authToken = await getAuthToken();
41
+ if (!authToken) {
42
+ throw new Error('No authentication token available');
43
+ }
44
+ const response = await fetch(`${API_BASE_URL}/mobile-training/model-info`, {
45
+ method: 'GET',
46
+ headers: {
47
+ 'Authorization': authToken,
48
+ 'Content-Type': 'application/json'
49
+ }
50
+ });
51
+ if (!response.ok) {
52
+ const errorData = await response.json();
53
+ throw new Error(errorData.error || `HTTP ${response.status}`);
54
+ }
55
+ return await response.json();
56
+ } catch (error) {
57
+ console.error('❌ Failed to get model info:', error);
58
+ throw error;
59
+ }
60
+ };
61
+
62
+ // Health Check Route
63
+ export const getHealthCheck = async () => {
64
+ try {
65
+ const response = await fetch(`${API_BASE_URL}/mobile-training/health`, {
66
+ method: 'GET',
67
+ headers: {
68
+ 'Content-Type': 'application/json'
69
+ }
70
+ });
71
+ if (!response.ok) {
72
+ const errorData = await response.json();
73
+ throw new Error(errorData.error || `HTTP ${response.status}`);
74
+ }
75
+ return await response.json();
76
+ } catch (error) {
77
+ console.error('❌ Failed to get health check:', error);
78
+ throw error;
79
+ }
80
+ };
81
+
82
+ /**
83
+ * Start Enoch Training - Simplified Version
84
+ * Backend now handles all YouTube connection cases automatically (temporary mode, refresh tokens, etc.)
85
+ * No frontend migration checks needed anymore
86
+ */
87
+ export const startEnochTrainingWithYouTubeCheck = async trainingData => {
88
+ try {
89
+ console.log('🚀 Starting Enoch training for user:', trainingData.username, '(backend auto-handles YouTube)');
90
+
91
+ // ✅ SIMPLIFIED: Backend handles all YouTube connection cases automatically
92
+ console.log('🚀 [TRAINING] Starting training - backend handles all YouTube cases automatically');
93
+ console.log('ℹ️ [TRAINING] No migration checks needed:');
94
+ console.log(' - Temporary mode connections: Work automatically ✅');
95
+ console.log(' - Full refresh tokens: Auto-refresh when expired ✅');
96
+ console.log(' - Backend validation: Handles all edge cases ✅');
97
+
98
+ // ✅ Proceed with training - backend handles YouTube automatically
99
+ return await startEnochTraining(trainingData);
100
+ } catch (error) {
101
+ console.error('❌ Training error:', error);
102
+ throw error;
103
+ }
104
+ };
105
+
106
+ /**
107
+ * Start Enoch Training
108
+ * Updated to use the new /mobile-training/enoch endpoint with proper error handling
109
+ */
110
+ export const startEnochTraining = async trainingData => {
111
+ try {
112
+ const authToken = await getAuthToken();
113
+ if (!authToken) {
114
+ throw new Error('No authentication token available');
115
+ }
116
+ console.log('📤 Sending training data to /mobile-training/enoch:', trainingData);
117
+ const response = await fetch(`${API_BASE_URL}/mobile-training/enoch`, {
118
+ method: 'POST',
119
+ headers: {
120
+ 'Content-Type': 'application/json',
121
+ 'Authorization': authToken
122
+ },
123
+ body: JSON.stringify(trainingData)
124
+ });
125
+ console.log('📡 Training API response status:', response.status);
126
+ if (!response.ok) {
127
+ const errorText = await response.text();
128
+ console.error('❌ Training API failed with status:', response.status, 'Error:', errorText);
129
+
130
+ // Try to parse error response
131
+ try {
132
+ const errorData = JSON.parse(errorText);
133
+ throw new Error(errorData.error || `HTTP ${response.status}`);
134
+ } catch (parseError) {
135
+ throw new Error(`Training API failed: ${response.status} - ${errorText}`);
136
+ }
137
+ }
138
+ const result = await response.json();
139
+ console.log('📡 Training API response:', result);
140
+ return result;
141
+ } catch (error) {
142
+ console.error('❌ Training start error:', error);
143
+ throw error;
144
+ }
145
+ };
146
+
147
+ /**
148
+ * Helper function to check if training is in progress
149
+ */
150
+ export const isTrainingInProgress = async username => {
151
+ try {
152
+ const status = await getTrainingStatus(username);
153
+ return status.success && status.isTraining;
154
+ } catch (error) {
155
+ console.warn('⚠️ Could not check training status:', error);
156
+ return false;
157
+ }
158
+ };
159
+
160
+ /**
161
+ * Helper function to get training features info
162
+ */
163
+ export const getTrainingFeatures = async () => {
164
+ try {
165
+ const health = await getHealthCheck();
166
+ return health.features;
167
+ } catch (error) {
168
+ console.warn('⚠️ Could not get training features:', error);
169
+ return null;
170
+ }
171
+ };
172
+ //# sourceMappingURL=mobileTrainingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getAuthToken","API_BASE_URL","getTrainingStatus","username","authToken","Error","response","fetch","method","headers","ok","errorData","json","error","status","console","getModelInfo","getHealthCheck","startEnochTrainingWithYouTubeCheck","trainingData","log","startEnochTraining","body","JSON","stringify","errorText","text","parse","parseError","result","isTrainingInProgress","success","isTraining","warn","getTrainingFeatures","health","features"],"sourceRoot":"..\\..\\..\\src","sources":["services/mobileTrainingService.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ const CryptoJS = require('react-native-crypto-js');
2
+ import { getTemporaryPin } from './pinStorageUtils';
3
+
4
+ /**
5
+ * Service for encrypting PIN data before sending to APIs
6
+ */
7
+
8
+ // Encryption key - in production, this should come from a secure source
9
+ const ENCRYPTION_KEY = 'onairos-pin-encryption-key-2024';
10
+
11
+ /**
12
+ * Encrypt PIN using AES encryption
13
+ */
14
+ export const encryptPin = pin => {
15
+ try {
16
+ const encrypted = CryptoJS.AES.encrypt(pin, ENCRYPTION_KEY).toString();
17
+ console.log('🔐 PIN encrypted successfully');
18
+ return encrypted;
19
+ } catch (error) {
20
+ console.error('❌ Error encrypting PIN:', error);
21
+ throw error;
22
+ }
23
+ };
24
+
25
+ /**
26
+ * Decrypt PIN (for verification purposes)
27
+ */
28
+ export const decryptPin = encryptedPin => {
29
+ try {
30
+ const decrypted = CryptoJS.AES.decrypt(encryptedPin, ENCRYPTION_KEY);
31
+ const pin = decrypted.toString(CryptoJS.enc.Utf8);
32
+ console.log('🔓 PIN decrypted successfully');
33
+ return pin;
34
+ } catch (error) {
35
+ console.error('❌ Error decrypting PIN:', error);
36
+ throw error;
37
+ }
38
+ };
39
+
40
+ /**
41
+ * Get encrypted PIN for API transmission
42
+ */
43
+ export const getEncryptedPinForAPI = async () => {
44
+ try {
45
+ // Get the temporary PIN from memory
46
+ const pin = getTemporaryPin();
47
+ if (!pin) {
48
+ console.log('⚠️ No temporary PIN available for encryption');
49
+ return null;
50
+ }
51
+
52
+ // Encrypt the PIN
53
+ const encryptedPin = encryptPin(pin);
54
+ console.log('✅ PIN encrypted for API transmission');
55
+ return encryptedPin;
56
+ } catch (error) {
57
+ console.error('❌ Error getting encrypted PIN for API:', error);
58
+ return null;
59
+ }
60
+ };
61
+
62
+ /**
63
+ * Hash PIN for verification (one-way hash)
64
+ */
65
+ export const hashPin = pin => {
66
+ try {
67
+ const hash = CryptoJS.SHA256(pin + ENCRYPTION_KEY).toString();
68
+ console.log('🔒 PIN hashed successfully');
69
+ return hash;
70
+ } catch (error) {
71
+ console.error('❌ Error hashing PIN:', error);
72
+ throw error;
73
+ }
74
+ };
75
+ //# sourceMappingURL=pinEncryptionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CryptoJS","require","getTemporaryPin","ENCRYPTION_KEY","encryptPin","pin","encrypted","AES","encrypt","toString","console","log","error","decryptPin","encryptedPin","decrypted","decrypt","enc","Utf8","getEncryptedPinForAPI","hashPin","hash","SHA256"],"sourceRoot":"..\\..\\..\\src","sources":["services/pinEncryptionService.ts"],"mappings":"AAAA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,wBAAwB,CAAC;AAClD,SAASC,eAAe,QAAQ,mBAAmB;;AAEnD;AACA;AACA;;AAEA;AACA,MAAMC,cAAc,GAAG,iCAAiC;;AAExD;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,GAAW,IAAa;EACjD,IAAI;IACF,MAAMC,SAAS,GAAGN,QAAQ,CAACO,GAAG,CAACC,OAAO,CAACH,GAAG,EAAEF,cAAc,CAAC,CAACM,QAAQ,CAAC,CAAC;IACtEC,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC5C,OAAOL,SAAS;EAClB,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdF,OAAO,CAACE,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC;IAC/C,MAAMA,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAIC,YAAoB,IAAa;EAC1D,IAAI;IACF,MAAMC,SAAS,GAAGf,QAAQ,CAACO,GAAG,CAACS,OAAO,CAACF,YAAY,EAAEX,cAAc,CAAC;IACpE,MAAME,GAAG,GAAGU,SAAS,CAACN,QAAQ,CAACT,QAAQ,CAACiB,GAAG,CAACC,IAAI,CAAC;IACjDR,OAAO,CAACC,GAAG,CAAC,+BAA+B,CAAC;IAC5C,OAAON,GAAG;EACZ,CAAC,CAAC,OAAOO,KAAK,EAAE;IACdF,OAAO,CAACE,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC;IAC/C,MAAMA,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAG,MAAAA,CAAA,KAAoC;EACvE,IAAI;IACF;IACA,MAAMd,GAAG,GAAGH,eAAe,CAAC,CAAC;IAE7B,IAAI,CAACG,GAAG,EAAE;MACRK,OAAO,CAACC,GAAG,CAAC,8CAA8C,CAAC;MAC3D,OAAO,IAAI;IACb;;IAEA;IACA,MAAMG,YAAY,GAAGV,UAAU,CAACC,GAAG,CAAC;IACpCK,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;IAEnD,OAAOG,YAAY;EACrB,CAAC,CAAC,OAAOF,KAAK,EAAE;IACdF,OAAO,CAACE,KAAK,CAAC,wCAAwC,EAAEA,KAAK,CAAC;IAC9D,OAAO,IAAI;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMQ,OAAO,GAAIf,GAAW,IAAa;EAC9C,IAAI;IACF,MAAMgB,IAAI,GAAGrB,QAAQ,CAACsB,MAAM,CAACjB,GAAG,GAAGF,cAAc,CAAC,CAACM,QAAQ,CAAC,CAAC;IAC7DC,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;IACzC,OAAOU,IAAI;EACb,CAAC,CAAC,OAAOT,KAAK,EAAE;IACdF,OAAO,CAACE,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;IAC5C,MAAMA,KAAK;EACb;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ import { biometricPinService } from './biometricPinService';
2
+
3
+ /**
4
+ * Utility functions for PIN storage management
5
+ */
6
+
7
+ /**
8
+ * Get the stored PIN for training/authentication purposes
9
+ * This will prompt for biometric authentication
10
+ */
11
+ export const getStoredPinForTraining = async () => {
12
+ try {
13
+ console.log('🔓 Retrieving stored PIN for training...');
14
+
15
+ // Check if PIN is stored
16
+ const pinStored = await biometricPinService.isPinStored();
17
+ if (!pinStored) {
18
+ console.log('⚠️ No PIN stored in secure storage');
19
+ return null;
20
+ }
21
+
22
+ // Retrieve PIN with biometric authentication
23
+ const pin = await biometricPinService.retrievePinWithBiometric();
24
+ if (pin) {
25
+ console.log('✅ PIN retrieved successfully for training');
26
+ return pin;
27
+ } else {
28
+ console.log('❌ Failed to retrieve PIN or user cancelled authentication');
29
+ return null;
30
+ }
31
+ } catch (error) {
32
+ console.error('❌ Error retrieving stored PIN:', error);
33
+ return null;
34
+ }
35
+ };
36
+
37
+ /**
38
+ * Check if user has a PIN stored securely
39
+ */
40
+ export const hasStoredPin = async () => {
41
+ try {
42
+ return await biometricPinService.isPinStored();
43
+ } catch (error) {
44
+ console.error('❌ Error checking PIN storage:', error);
45
+ return false;
46
+ }
47
+ };
48
+
49
+ /**
50
+ * Remove stored PIN (for logout/reset purposes)
51
+ */
52
+ export const clearStoredPin = async () => {
53
+ try {
54
+ console.log('🗑️ Clearing stored PIN...');
55
+ return await biometricPinService.removePinFromStorage();
56
+ } catch (error) {
57
+ console.error('❌ Error clearing stored PIN:', error);
58
+ return false;
59
+ }
60
+ };
61
+
62
+ /**
63
+ * Get PIN for passing to training component
64
+ * This function can be called from the onboarding flow
65
+ */
66
+ export const getPinForTraining = async tempPin => {
67
+ // If a temporary PIN is provided (from the PIN input), use it
68
+ if (tempPin) {
69
+ console.log('📝 Using temporary PIN for training');
70
+ return tempPin;
71
+ }
72
+
73
+ // Otherwise, try to retrieve stored PIN
74
+ return await getStoredPinForTraining();
75
+ };
76
+
77
+ /**
78
+ * Store PIN temporarily in memory for training component
79
+ * This is used when PIN is entered but not yet stored biometrically
80
+ */
81
+ let temporaryPin = null;
82
+ export const setTemporaryPin = pin => {
83
+ temporaryPin = pin;
84
+ console.log('📝 Temporary PIN set for training');
85
+ };
86
+ export const getTemporaryPin = () => {
87
+ return temporaryPin;
88
+ };
89
+ export const clearTemporaryPin = () => {
90
+ temporaryPin = null;
91
+ console.log('🗑️ Temporary PIN cleared');
92
+ };
93
+ //# sourceMappingURL=pinStorageUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["biometricPinService","getStoredPinForTraining","console","log","pinStored","isPinStored","pin","retrievePinWithBiometric","error","hasStoredPin","clearStoredPin","removePinFromStorage","getPinForTraining","tempPin","temporaryPin","setTemporaryPin","getTemporaryPin","clearTemporaryPin"],"sourceRoot":"..\\..\\..\\src","sources":["services/pinStorageUtils.ts"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,uBAAuB;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAG,MAAAA,CAAA,KAAoC;EACzE,IAAI;IACFC,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;;IAEvD;IACA,MAAMC,SAAS,GAAG,MAAMJ,mBAAmB,CAACK,WAAW,CAAC,CAAC;IACzD,IAAI,CAACD,SAAS,EAAE;MACdF,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC;MACjD,OAAO,IAAI;IACb;;IAEA;IACA,MAAMG,GAAG,GAAG,MAAMN,mBAAmB,CAACO,wBAAwB,CAAC,CAAC;IAEhE,IAAID,GAAG,EAAE;MACPJ,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;MACxD,OAAOG,GAAG;IACZ,CAAC,MAAM;MACLJ,OAAO,CAACC,GAAG,CAAC,2DAA2D,CAAC;MACxE,OAAO,IAAI;IACb;EAEF,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdN,OAAO,CAACM,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;IACtD,OAAO,IAAI;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAG,MAAAA,CAAA,KAA8B;EACxD,IAAI;IACF,OAAO,MAAMT,mBAAmB,CAACK,WAAW,CAAC,CAAC;EAChD,CAAC,CAAC,OAAOG,KAAK,EAAE;IACdN,OAAO,CAACM,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;IACrD,OAAO,KAAK;EACd;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,cAAc,GAAG,MAAAA,CAAA,KAA8B;EAC1D,IAAI;IACFR,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;IACzC,OAAO,MAAMH,mBAAmB,CAACW,oBAAoB,CAAC,CAAC;EACzD,CAAC,CAAC,OAAOH,KAAK,EAAE;IACdN,OAAO,CAACM,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC;IACpD,OAAO,KAAK;EACd;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMI,iBAAiB,GAAG,MAAOC,OAAgB,IAA6B;EACnF;EACA,IAAIA,OAAO,EAAE;IACXX,OAAO,CAACC,GAAG,CAAC,qCAAqC,CAAC;IAClD,OAAOU,OAAO;EAChB;;EAEA;EACA,OAAO,MAAMZ,uBAAuB,CAAC,CAAC;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA,IAAIa,YAA2B,GAAG,IAAI;AAEtC,OAAO,MAAMC,eAAe,GAAIT,GAAW,IAAW;EACpDQ,YAAY,GAAGR,GAAG;EAClBJ,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC;AAClD,CAAC;AAED,OAAO,MAAMa,eAAe,GAAGA,CAAA,KAAqB;EAClD,OAAOF,YAAY;AACrB,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAGA,CAAA,KAAY;EAC3CH,YAAY,GAAG,IAAI;EACnBZ,OAAO,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAC1C,CAAC","ignoreList":[]}