@onairos/react-native 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/assets/icons/spotify.png +0 -0
  3. package/lib/commonjs/assets/images/spotify.png +0 -0
  4. package/lib/commonjs/components/BodyText.js +27 -9
  5. package/lib/commonjs/components/BrandMark.js +111 -10
  6. package/lib/commonjs/components/CodeInput.js +116 -9
  7. package/lib/commonjs/components/EmailInput.js +30 -8
  8. package/lib/commonjs/components/GoogleButton.js +56 -9
  9. package/lib/commonjs/components/HeadingGroup.js +43 -9
  10. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  11. package/lib/commonjs/components/ModalHeader.js +99 -9
  12. package/lib/commonjs/components/ModalSheet.js +47 -9
  13. package/lib/commonjs/components/Onairos.js +380 -14
  14. package/lib/commonjs/components/OnairosButton.js +313 -13
  15. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  16. package/lib/commonjs/components/Overlay.js +465 -13
  17. package/lib/commonjs/components/PersonaImage.js +137 -10
  18. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  19. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  20. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  21. package/lib/commonjs/components/PinInput.js +464 -9
  22. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  23. package/lib/commonjs/components/PlatformList.js +137 -10
  24. package/lib/commonjs/components/PlatformToggle.js +180 -9
  25. package/lib/commonjs/components/PrimaryButton.js +180 -10
  26. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  27. package/lib/commonjs/components/SignInStep.js +345 -12
  28. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  29. package/lib/commonjs/components/VerificationStep.js +176 -11
  30. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  31. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  32. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  33. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  34. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  35. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  36. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  37. package/lib/commonjs/components/icons/EnochE.js +41 -8
  38. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  39. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  40. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  41. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  42. package/lib/commonjs/components/icons/index.js +84 -17
  43. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  44. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  45. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  46. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  47. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  48. package/lib/commonjs/config/api.js +56 -7
  49. package/lib/commonjs/constants/index.js +120 -7
  50. package/lib/commonjs/context/AuthContext.js +345 -10
  51. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  52. package/lib/commonjs/hooks/useConnections.js +102 -8
  53. package/lib/commonjs/hooks/useCredentials.js +178 -10
  54. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  55. package/lib/commonjs/index.js +439 -34
  56. package/lib/commonjs/services/apiClient.js +298 -8
  57. package/lib/commonjs/services/biometricPinService.js +180 -8
  58. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  59. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  60. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  61. package/lib/commonjs/services/claudeConversationService.js +158 -9
  62. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  63. package/lib/commonjs/services/googleAuthService.js +252 -11
  64. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  65. package/lib/commonjs/services/hingeDataService.js +150 -9
  66. package/lib/commonjs/services/imageCompressionService.js +260 -7
  67. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  68. package/lib/commonjs/services/instagramDataService.js +163 -9
  69. package/lib/commonjs/services/jwtStorageService.js +276 -7
  70. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  71. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  72. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  73. package/lib/commonjs/services/llmDataStorage.js +294 -8
  74. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  75. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  76. package/lib/commonjs/services/netflixDataService.js +198 -9
  77. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  78. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  79. package/lib/commonjs/services/platformAuthService.js +1484 -12
  80. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  81. package/lib/commonjs/services/sephoraDataService.js +200 -9
  82. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  83. package/lib/commonjs/services/spotifyDataService.js +241 -9
  84. package/lib/commonjs/services/storageService.js +404 -8
  85. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  86. package/lib/commonjs/services/telegramDataService.js +499 -9
  87. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  88. package/lib/commonjs/services/userConnectionsService.js +340 -10
  89. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  90. package/lib/commonjs/theme/index.js +250 -7
  91. package/lib/commonjs/types/ambient.d.js +2 -1
  92. package/lib/commonjs/types/declarations.d.js +2 -1
  93. package/lib/commonjs/types/index.js +6 -1
  94. package/lib/commonjs/types/node-fix.d.js +2 -1
  95. package/lib/commonjs/types/node-override.d.js +2 -1
  96. package/lib/commonjs/types/opacity.d.js +2 -1
  97. package/lib/commonjs/types.js +14 -1
  98. package/lib/commonjs/utils/Portal.js +98 -8
  99. package/lib/commonjs/utils/api.js +130 -9
  100. package/lib/commonjs/utils/assetRegistry.js +210 -35
  101. package/lib/commonjs/utils/auth.js +112 -9
  102. package/lib/commonjs/utils/connectorTests.js +613 -29
  103. package/lib/commonjs/utils/crypto.js +62 -8
  104. package/lib/commonjs/utils/debugHelper.js +64 -1
  105. package/lib/commonjs/utils/encryption.js +76 -7
  106. package/lib/commonjs/utils/eventUtils.js +288 -1
  107. package/lib/commonjs/utils/haptics.js +66 -9
  108. package/lib/commonjs/utils/imagePreloader.js +6 -1
  109. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  110. package/lib/commonjs/utils/onairosApi.js +350 -9
  111. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  112. package/lib/commonjs/utils/retryHelper.js +220 -1
  113. package/lib/commonjs/utils/secureStorage.js +349 -10
  114. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  115. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  116. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  117. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  118. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  119. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  120. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  121. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  122. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  123. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  124. package/lib/module/api/index.js +211 -1
  125. package/lib/module/assets/icons/spotify.png +0 -0
  126. package/lib/module/assets/images/spotify.png +0 -0
  127. package/lib/module/components/BodyText.js +20 -1
  128. package/lib/module/components/BrandMark.js +104 -1
  129. package/lib/module/components/CodeInput.js +109 -1
  130. package/lib/module/components/EmailInput.js +23 -1
  131. package/lib/module/components/GoogleButton.js +49 -1
  132. package/lib/module/components/HeadingGroup.js +36 -1
  133. package/lib/module/components/LLMDataInputModal.js +656 -7
  134. package/lib/module/components/ModalHeader.js +92 -1
  135. package/lib/module/components/ModalSheet.js +39 -1
  136. package/lib/module/components/Onairos.js +373 -1
  137. package/lib/module/components/OnairosButton.js +305 -1
  138. package/lib/module/components/OnairosSignInButton.js +121 -1
  139. package/lib/module/components/Overlay.js +456 -1
  140. package/lib/module/components/PersonaImage.js +129 -1
  141. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  142. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  143. package/lib/module/components/PinCreationScreen.js +396 -1
  144. package/lib/module/components/PinInput.js +456 -1
  145. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  146. package/lib/module/components/PlatformList.js +129 -1
  147. package/lib/module/components/PlatformToggle.js +173 -1
  148. package/lib/module/components/PrimaryButton.js +172 -1
  149. package/lib/module/components/SignInMatchAnimation.js +189 -1
  150. package/lib/module/components/SignInStep.js +338 -1
  151. package/lib/module/components/UniversalOnboarding.js +2770 -1
  152. package/lib/module/components/VerificationStep.js +168 -1
  153. package/lib/module/components/WelcomeScreen.js +453 -1
  154. package/lib/module/components/icons/Basicproficon.js +30 -1
  155. package/lib/module/components/icons/Basicprofile.js +14 -1
  156. package/lib/module/components/icons/Checkbox.js +14 -1
  157. package/lib/module/components/icons/Checkmark.js +20 -1
  158. package/lib/module/components/icons/Contentanalysis.js +14 -1
  159. package/lib/module/components/icons/Contenticon.js +32 -1
  160. package/lib/module/components/icons/EnochE.js +34 -1
  161. package/lib/module/components/icons/Personalityicon.js +23 -1
  162. package/lib/module/components/icons/Personalityprofile.js +14 -1
  163. package/lib/module/components/icons/Personalitytraits.js +14 -1
  164. package/lib/module/components/icons/Userpreferences.js +14 -1
  165. package/lib/module/components/icons/index.js +13 -1
  166. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  167. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  168. package/lib/module/components/onboarding/PinInput.js +274 -1
  169. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  170. package/lib/module/config/PLATFORM_APIS.md +849 -0
  171. package/lib/module/config/api.js +47 -1
  172. package/lib/module/constants/index.js +114 -1
  173. package/lib/module/context/AuthContext.js +335 -1
  174. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  175. package/lib/module/hooks/useConnections.js +95 -1
  176. package/lib/module/hooks/useCredentials.js +171 -6
  177. package/lib/module/hooks/useUserConnections.js +140 -1
  178. package/lib/module/index.js +172 -1
  179. package/lib/module/services/apiClient.js +295 -1
  180. package/lib/module/services/biometricPinService.js +169 -1
  181. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  182. package/lib/module/services/chatGPTConversationService.js +268 -1
  183. package/lib/module/services/claudeConversationExtractor.js +97 -1
  184. package/lib/module/services/claudeConversationService.js +151 -1
  185. package/lib/module/services/connectedAccountsService.js +293 -1
  186. package/lib/module/services/googleAuthService.js +241 -1
  187. package/lib/module/services/hingeDataExtractor.js +99 -1
  188. package/lib/module/services/hingeDataService.js +143 -1
  189. package/lib/module/services/imageCompressionService.js +250 -1
  190. package/lib/module/services/instagramDataExtractor.js +120 -1
  191. package/lib/module/services/instagramDataService.js +156 -1
  192. package/lib/module/services/jwtStorageService.js +257 -1
  193. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  194. package/lib/module/services/linkedinProfileService.js +210 -1
  195. package/lib/module/services/linkedinScrapingService.js +219 -1
  196. package/lib/module/services/llmDataStorage.js +277 -1
  197. package/lib/module/services/mobileTrainingService.js +173 -1
  198. package/lib/module/services/netflixDataExtractor.js +114 -1
  199. package/lib/module/services/netflixDataService.js +191 -1
  200. package/lib/module/services/pinEncryptionService.js +74 -6
  201. package/lib/module/services/pinStorageUtils.js +93 -1
  202. package/lib/module/services/platformAuthService.js +1461 -1
  203. package/lib/module/services/sephoraDataExtractor.js +134 -1
  204. package/lib/module/services/sephoraDataService.js +193 -1
  205. package/lib/module/services/spotifyDataExtractor.js +142 -1
  206. package/lib/module/services/spotifyDataService.js +234 -1
  207. package/lib/module/services/storageService.js +383 -1
  208. package/lib/module/services/telegramDataExtractor.js +109 -1
  209. package/lib/module/services/telegramDataService.js +493 -1
  210. package/lib/module/services/trainingApiHelpers.js +67 -1
  211. package/lib/module/services/userConnectionsService.js +329 -1
  212. package/lib/module/services/youtubeMigrationService.js +405 -1
  213. package/lib/module/theme/index.js +245 -1
  214. package/lib/module/types.js +10 -1
  215. package/lib/module/utils/Portal.js +90 -1
  216. package/lib/module/utils/api.js +118 -1
  217. package/lib/module/utils/assetRegistry.js +200 -34
  218. package/lib/module/utils/auth.js +100 -1
  219. package/lib/module/utils/connectorTests.js +600 -27
  220. package/lib/module/utils/crypto.js +54 -1
  221. package/lib/module/utils/debugHelper.js +54 -1
  222. package/lib/module/utils/encryption.js +67 -1
  223. package/lib/module/utils/eventUtils.js +270 -1
  224. package/lib/module/utils/haptics.js +59 -8
  225. package/lib/module/utils/imagePreloader.js +3 -1
  226. package/lib/module/utils/networkDiagnostics.js +217 -1
  227. package/lib/module/utils/onairosApi.js +333 -1
  228. package/lib/module/utils/programmaticFlow.js +111 -1
  229. package/lib/module/utils/retryHelper.js +211 -1
  230. package/lib/module/utils/secureStorage.js +330 -6
  231. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  232. package/lib/module/utils/webviewScripts/claude.js +370 -1
  233. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  234. package/lib/module/utils/webviewScripts/index.js +434 -1
  235. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  236. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  237. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  238. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  239. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  240. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  241. package/package.json +2 -2
@@ -1 +1,211 @@
1
- import axios from'axios';import{Platform}from'react-native';import{API_ENDPOINTS}from'../constants';const isDevelopmentMode=()=>{const _0x44f701={'Frkhg':function(_0x1ccb7a,_0x2b8f60){return _0x1ccb7a===_0x2b8f60;}};return __DEV__||_0x44f701['Frkhg'](process[_0x3108(0x0)]['NODE_ENV'],_0x3108(0x1));},createMockResponse=_0xcf794e=>{return Promise[_0x3108(0x2)]({'data':_0xcf794e,'status':0xc8,'statusText':'OK','headers':{},'config':{}});},apiInstance=axios['create']({'baseURL':API_ENDPOINTS[_0x3108(0x3)],'timeout':0x2710,'headers':{'Content-Type':'application/json','Accept':'application/json'}});function _0x57cb(){const _0x25e37d=['env','development','resolve','base','response','use','API\x20error\x20in\x20development\x20mode,\x20using\x20fallback:','warn','zDMmM','zXWws','reject','Error\x20sending\x20verification\x20code:','Mock\x20verification\x20code\x20sent','Failed\x20to\x20send\x20verification\x20code','zqota','OsOMP','RxRQI','YCbHL','UBuWE','get','error','OmhTr','xPGWK','iHHRI','VsPTj','wBLHw','GET\x20','\x20error:','eihvU','log','Using\x20mock\x20validation\x20for:','web','RSlDp','lQgVT','vBTYf','post','bObpl','upZmP','Invalid\x20verification\x20code','POST\x20','BUiSS','hlNvn','hSkgt','syexj','Error\x20validating\x20credentials:','FcLbk','rwOEa','gmLTi','FxgZn','yyLSA','rLqre','data','success','xiuFk','demo_user','youtube','kgwdy','user/profile','YOpat','RTBaO','Kgzgf','tWWGP','now','defaults','Bearer\x20','jTHHK','YLbwa','AeuLS','lPVhV','GVDal','Verification\x20code\x20sent\x20successfully','email/verify','AFnhe','kyfEM','JTLTt','nLtCi','jLWrb','message','uwCvK','vrBEU','oumcE','Sldru','NODE_ENV','instagram','Email\x20verified\x20successfully','YQLyr','TcOef','code:','email/verify/confirm','Email\x20verified','Verification\x20failed','MzsMT','PYLgm','sWgRI','yIgtg','BWIBv','mBanJ','UXylP','length','IFKQP','iMTSP','TfAkW','GkowR','KjjcN','vLihU','TbFWT','GdHgC','uEZjZ','DweqG','yltpC'];_0x57cb=function(){return _0x25e37d;};return _0x57cb();}apiInstance['interceptors'][_0x3108(0x4)][_0x3108(0x5)](_0x16603c=>_0x16603c,_0x3a9751=>{const _0x4fa90e={'zDMmM':_0x3108(0x6),'zXWws':function(_0x18aaed,_0x4c8823){return _0x18aaed(_0x4c8823);}};if(isDevelopmentMode())return console[_0x3108(0x7)](_0x4fa90e[_0x3108(0x8)],_0x3a9751),_0x4fa90e[_0x3108(0x9)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});return Promise[_0x3108(0xa)](_0x3a9751);});export const onairosApi={async 'get'(_0x4c7d6e){const _0x3cc92e={'ZdVrH':_0x3108(0xb),'OmhTr':function(_0x453e72){return _0x453e72();},'zUXNy':_0x3108(0xc),'xPGWK':_0x3108(0xd),'RxRQI':function(_0x42a8e6,_0x24c291){return _0x42a8e6===_0x24c291;},'YCbHL':_0x3108(0xe),'ebRoh':function(_0x347e19,_0x29a884){return _0x347e19===_0x29a884;},'UBuWE':'web','lezHD':function(_0x41380c,_0x1702eb){return _0x41380c(_0x1702eb);},'iHHRI':function(_0x239270,_0x39a27e){return _0x239270!==_0x39a27e;},'VsPTj':'ZfSgo','wBLHw':_0x3108(0xf),'eihvU':function(_0x11b7b8){return _0x11b7b8();}};try{if(_0x3cc92e[_0x3108(0x10)](_0x3cc92e[_0x3108(0x11)],_0x3cc92e[_0x3108(0x11)])){if(_0x3cc92e['ebRoh'](Platform['OS'],_0x3cc92e[_0x3108(0x12)])&&isDevelopmentMode())return _0x3cc92e['lezHD'](createMockResponse,{'success':!![],'data':{'mockData':!![]}});return await apiInstance[_0x3108(0x13)](_0x4c7d6e);}else{_0x284aeb[_0x3108(0x14)](_0x3cc92e['ZdVrH'],_0x5b8ac8);if(_0x3cc92e[_0x3108(0x15)](_0x12a33b))return{'success':!![],'message':_0x3cc92e['zUXNy']};return{'success':![],'message':_0x3cc92e[_0x3108(0x16)]};}}catch(_0x344098){if(_0x3cc92e[_0x3108(0x17)](_0x3cc92e[_0x3108(0x18)],_0x3cc92e[_0x3108(0x19)])){console['error'](_0x3108(0x1a)+_0x4c7d6e+_0x3108(0x1b),_0x344098);if(_0x3cc92e[_0x3108(0x1c)](isDevelopmentMode))return createMockResponse({'success':!![],'data':{'mockData':!![]}});throw _0x344098;}else return _0x553534[_0x3108(0x1d)](_0x3108(0x1e),_0x121307),!![];}},async 'post'(_0x97c0de,_0x356908){const _0xe7012c={'syexj':function(_0x28040f,_0x39db0c){return _0x28040f(_0x39db0c);},'vBTYf':_0x3108(0x1f),'bObpl':function(_0x575710,_0x5c8e17){return _0x575710!==_0x5c8e17;},'eOnje':function(_0x9ac969){return _0x9ac969();},'BUiSS':function(_0x353e71,_0x4fb123){return _0x353e71===_0x4fb123;},'hlNvn':_0x3108(0x20),'hSkgt':_0x3108(0x21)};try{if(Platform['OS']===_0xe7012c[_0x3108(0x22)]&&isDevelopmentMode())return createMockResponse({'success':!![],'data':{'mockData':!![]}});return await apiInstance[_0x3108(0x23)](_0x97c0de,_0x356908);}catch(_0x5cbe8f){if(_0xe7012c[_0x3108(0x24)](_0x3108(0x25),_0x3108(0x25)))return{'success':![],'message':_0x3108(0x26)};else{console['error'](_0x3108(0x27)+_0x97c0de+_0x3108(0x1b),_0x5cbe8f);if(_0xe7012c['eOnje'](isDevelopmentMode))return _0xe7012c[_0x3108(0x28)](_0xe7012c[_0x3108(0x29)],_0xe7012c[_0x3108(0x2a)])?_0xe7012c[_0x3108(0x2b)](_0xf907c1,{'success':!![],'data':{'mockData':!![]}}):_0xe7012c[_0x3108(0x2b)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});throw _0x5cbe8f;}}},async 'validateCredentials'(_0x2e3f66){const _0x2246cf={'gmLTi':function(_0x522f19){return _0x522f19();},'FxgZn':function(_0x52bfa2,_0x255e48){return _0x52bfa2(_0x255e48);},'FcLbk':function(_0x1deecc,_0x1b0b4a){return _0x1deecc!==_0x1b0b4a;},'rwOEa':'eAnIJ','qTxeo':_0x3108(0x1e),'yyLSA':'validate','rLqre':function(_0x3d356c,_0x139b1e){return _0x3d356c===_0x139b1e;},'xiuFk':_0x3108(0x2c)};try{if(_0x2246cf[_0x3108(0x2d)](_0x2246cf[_0x3108(0x2e)],_0x2246cf[_0x3108(0x2e)])){_0x4f99be['error'](_0x3108(0x1a)+_0x235059+_0x3108(0x1b),_0xf9e4de);if(_0x2246cf[_0x3108(0x2f)](_0x8c66e8))return _0x2246cf[_0x3108(0x30)](_0x34ffb2,{'success':!![],'data':{'mockData':!![]}});throw _0x5b5992;}else{var _0x4c2174;if(_0x2246cf[_0x3108(0x2f)](isDevelopmentMode))return console['log'](_0x2246cf['qTxeo'],_0x2e3f66),!![];const _0x2a2546=await this[_0x3108(0x23)](_0x2246cf[_0x3108(0x31)],{'username':_0x2e3f66});return(_0x2246cf[_0x3108(0x32)](_0x4c2174=_0x2a2546[_0x3108(0x33)],null)||_0x4c2174===void 0x0?void 0x0:_0x4c2174[_0x3108(0x34)])||![];}}catch(_0x472383){return console['error'](_0x2246cf[_0x3108(0x35)],_0x472383),isDevelopmentMode();}},async 'getUserProfile'(_0x4e9fe8){const _0x51f12e={'HvPhY':'Error\x20fetching\x20user\x20profile:','lPVhV':function(_0x597203){return _0x597203();},'Kgzgf':_0x3108(0x36),'GVDal':_0x3108(0x37),'YOpat':function(_0x4e1b33){return _0x4e1b33();},'RTBaO':_0x3108(0x38),'tWWGP':'instagram','jTHHK':_0x3108(0x39),'YLbwa':function(_0x406408,_0x165825){return _0x406408===_0x165825;},'AeuLS':'HpAPx'};try{var _0x5633b7;if(_0x51f12e[_0x3108(0x3a)](isDevelopmentMode)){if(_0x51f12e[_0x3108(0x3b)]!==_0x51f12e[_0x3108(0x3b)]){_0x3ceeac[_0x3108(0x14)](_0x3108(0x27)+_0x58f0a6+_0x3108(0x1b),_0x388742);if(_0x30dcb2())return _0x4b68f1({'success':!![],'data':{'mockData':!![]}});throw _0x317046;}else return{'username':_0x51f12e[_0x3108(0x3c)],'platforms':[_0x51f12e[_0x3108(0x3d)],_0x3108(0x37)],'createdAt':Date[_0x3108(0x3e)]()};}apiInstance[_0x3108(0x3f)]['headers']['common']['Authorization']=_0x3108(0x40)+_0x4e9fe8;const _0x1b826b=await this['get'](_0x51f12e[_0x3108(0x41)]);return(_0x5633b7=_0x1b826b[_0x3108(0x33)])===null||_0x51f12e[_0x3108(0x42)](_0x5633b7,void 0x0)?void 0x0:_0x5633b7[_0x3108(0x33)];}catch(_0x1d0ef0){if(_0x51f12e['YLbwa'](_0x51f12e[_0x3108(0x43)],'HpAPx')){console['error']('Error\x20fetching\x20user\x20profile:',_0x1d0ef0);if(_0x51f12e[_0x3108(0x44)](isDevelopmentMode))return{'username':_0x51f12e[_0x3108(0x3c)],'platforms':[_0x51f12e[_0x3108(0x3d)],_0x3108(0x37)],'createdAt':Date[_0x3108(0x3e)]()};throw _0x1d0ef0;}else{_0xf4f97e[_0x3108(0x14)](_0x51f12e['HvPhY'],_0xf438e9);if(_0x51f12e[_0x3108(0x44)](_0x10c3da))return{'username':_0x51f12e[_0x3108(0x3c)],'platforms':['instagram',_0x51f12e[_0x3108(0x45)]],'createdAt':_0x5986ce[_0x3108(0x3e)]()};throw _0x4c9c30;}}}};function _0x3108(_0x57cbcd,_0x31089c){_0x57cbcd=_0x57cbcd-0x0;const _0x466a51=_0x57cb();let _0x36dedc=_0x466a51[_0x57cbcd];return _0x36dedc;}export const sendEmailVerificationCode=async _0x201a81=>{const _0x410501={'PaEOL':function(_0x5c0bda){return _0x5c0bda();},'JTLTt':'Mock:\x20Sending\x20verification\x20code\x20to:','vWXZE':_0x3108(0x46),'nLtCi':_0x3108(0x47),'jLWrb':function(_0x4fecb5,_0x400907){return _0x4fecb5===_0x400907;},'vpFjc':'Error\x20sending\x20verification\x20code:','zfxfN':function(_0x1a13c1){return _0x1a13c1();},'uwCvK':function(_0x2c52d8,_0x88b3fb){return _0x2c52d8!==_0x88b3fb;},'vrBEU':_0x3108(0x48),'oumcE':_0x3108(0x49),'Sldru':_0x3108(0xc)};try{var _0x266901;if(_0x410501['PaEOL'](isDevelopmentMode))return console['log'](_0x410501[_0x3108(0x4a)],_0x201a81),{'success':!![],'message':_0x410501['vWXZE']};const _0x3984af=await onairosApi[_0x3108(0x23)](_0x410501[_0x3108(0x4b)],{'email':_0x201a81});return{'success':!![],'message':(_0x410501[_0x3108(0x4c)](_0x266901=_0x3984af[_0x3108(0x33)],null)||_0x266901===void 0x0?void 0x0:_0x266901[_0x3108(0x4d)])||'Verification\x20code\x20sent'};}catch(_0x46ed45){console[_0x3108(0x14)](_0x410501['vpFjc'],_0x46ed45);if(_0x410501['zfxfN'](isDevelopmentMode))return _0x410501[_0x3108(0x4e)](_0x410501[_0x3108(0x4f)],_0x410501[_0x3108(0x50)])?{'success':!![],'message':_0x410501[_0x3108(0x51)]}:_0xeabfc7||_0x2d4e13['env'][_0x3108(0x52)]==='development';return{'success':![],'message':'Failed\x20to\x20send\x20verification\x20code'};}};export const confirmEmailVerificationCode=async(_0x958a77,_0x560254)=>{const _0x520b75={'DDrao':_0x3108(0x53),'GkowR':_0x3108(0x37),'GdHgC':_0x3108(0x54),'PYLgm':function(_0x451edd,_0x37fab4){return _0x451edd!==_0x37fab4;},'QShLP':_0x3108(0x55),'MzsMT':function(_0x1c48d7){return _0x1c48d7();},'sWgRI':_0x3108(0x56),'BWIBv':'Mock:\x20Verifying\x20code\x20for:','mBanJ':_0x3108(0x57),'UXylP':function(_0x32e1f7,_0x48d07b){return _0x32e1f7===_0x48d07b;},'IFKQP':'reviewer','DweqG':_0x3108(0x26),'iMTSP':_0x3108(0x58),'KjjcN':function(_0x47e0a0,_0x14fc5d){return _0x47e0a0===_0x14fc5d;},'TfAkW':_0x3108(0x59),'TbFWT':'yspMr','uEZjZ':function(_0xe7db60){return _0xe7db60();},'yltpC':_0x3108(0x5a)};try{if(_0x520b75['PYLgm']('WbBCj',_0x520b75['QShLP'])){var _0x3cb2fb;if(_0x520b75[_0x3108(0x5b)](isDevelopmentMode)){if(_0x520b75[_0x3108(0x5c)](_0x520b75[_0x3108(0x5d)],_0x3108(0x5e))){console['log'](_0x520b75[_0x3108(0x5f)],_0x958a77,_0x520b75[_0x3108(0x60)],_0x560254);if(_0x520b75[_0x3108(0x61)](_0x560254[_0x3108(0x62)],0x6)||_0x520b75['UXylP'](_0x560254,_0x520b75[_0x3108(0x63)]))return{'success':!![],'message':_0x3108(0x54)};return{'success':![],'message':_0x520b75['DweqG']};}else return _0x241698({'success':!![],'data':{'mockData':!![]}});}const _0x44a3dc=await onairosApi['post'](_0x520b75[_0x3108(0x64)],{'email':_0x958a77,'code':_0x560254});return{'success':!![],'message':(_0x520b75['KjjcN'](_0x3cb2fb=_0x44a3dc['data'],null)||_0x520b75[_0x3108(0x61)](_0x3cb2fb,void 0x0)?void 0x0:_0x3cb2fb[_0x3108(0x4d)])||_0x520b75[_0x3108(0x65)]};}else return{'username':_0x3108(0x36),'platforms':[_0x520b75['DDrao'],_0x520b75[_0x3108(0x66)]],'createdAt':_0x1a2f28[_0x3108(0x3e)]()};}catch(_0x3c021e){if(_0x520b75[_0x3108(0x67)](_0x3108(0x68),_0x520b75[_0x3108(0x69)]))return{'success':!![],'message':_0x520b75[_0x3108(0x6a)]};else{console[_0x3108(0x14)]('Error\x20verifying\x20email\x20code:',_0x3c021e);if(_0x520b75[_0x3108(0x6b)](isDevelopmentMode))return{'success':![],'message':_0x520b75[_0x3108(0x6c)]};return{'success':![],'message':_0x520b75[_0x3108(0x6d)]};}}};
1
+ import axios from 'axios';
2
+ import { Platform } from 'react-native';
3
+ import { API_ENDPOINTS } from '../constants';
4
+
5
+ // Check if running in development mode
6
+ const isDevelopmentMode = () => {
7
+ return __DEV__ || process.env.NODE_ENV === 'development';
8
+ };
9
+
10
+ // Create mock response helper
11
+ const createMockResponse = data => {
12
+ return Promise.resolve({
13
+ data,
14
+ status: 200,
15
+ statusText: 'OK',
16
+ headers: {},
17
+ config: {}
18
+ });
19
+ };
20
+
21
+ // Create API instance
22
+ const apiInstance = axios.create({
23
+ baseURL: API_ENDPOINTS.base,
24
+ timeout: 10000,
25
+ headers: {
26
+ 'Content-Type': 'application/json',
27
+ 'Accept': 'application/json'
28
+ }
29
+ });
30
+
31
+ // Add error handling interceptor
32
+ apiInstance.interceptors.response.use(response => response, error => {
33
+ if (isDevelopmentMode()) {
34
+ console.warn('API error in development mode, using fallback:', error);
35
+ return createMockResponse({
36
+ success: true,
37
+ data: {
38
+ mockData: true
39
+ }
40
+ });
41
+ }
42
+ return Promise.reject(error);
43
+ });
44
+
45
+ // API service with Expo compatibility
46
+ export const onairosApi = {
47
+ // Core API methods with fallbacks
48
+ async get(url) {
49
+ try {
50
+ if (Platform.OS === 'web' && isDevelopmentMode()) {
51
+ return createMockResponse({
52
+ success: true,
53
+ data: {
54
+ mockData: true
55
+ }
56
+ });
57
+ }
58
+ return await apiInstance.get(url);
59
+ } catch (error) {
60
+ console.error(`GET ${url} error:`, error);
61
+ if (isDevelopmentMode()) {
62
+ return createMockResponse({
63
+ success: true,
64
+ data: {
65
+ mockData: true
66
+ }
67
+ });
68
+ }
69
+ throw error;
70
+ }
71
+ },
72
+ async post(url, data) {
73
+ try {
74
+ if (Platform.OS === 'web' && isDevelopmentMode()) {
75
+ return createMockResponse({
76
+ success: true,
77
+ data: {
78
+ mockData: true
79
+ }
80
+ });
81
+ }
82
+ return await apiInstance.post(url, data);
83
+ } catch (error) {
84
+ console.error(`POST ${url} error:`, error);
85
+ if (isDevelopmentMode()) {
86
+ return createMockResponse({
87
+ success: true,
88
+ data: {
89
+ mockData: true
90
+ }
91
+ });
92
+ }
93
+ throw error;
94
+ }
95
+ },
96
+ // Helper methods for specific API endpoints
97
+ async validateCredentials(username) {
98
+ try {
99
+ var _response$data;
100
+ if (isDevelopmentMode()) {
101
+ console.log('Using mock validation for:', username);
102
+ return true;
103
+ }
104
+ const response = await this.post('validate', {
105
+ username
106
+ });
107
+ return ((_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.success) || false;
108
+ } catch (error) {
109
+ console.error('Error validating credentials:', error);
110
+ return isDevelopmentMode(); // Return true in dev mode to allow flow to continue
111
+ }
112
+ },
113
+ async getUserProfile(token) {
114
+ try {
115
+ var _response$data2;
116
+ if (isDevelopmentMode()) {
117
+ return {
118
+ username: 'demo_user',
119
+ platforms: ['instagram', 'youtube'],
120
+ createdAt: Date.now()
121
+ };
122
+ }
123
+ apiInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
124
+ const response = await this.get('user/profile');
125
+ return (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.data;
126
+ } catch (error) {
127
+ console.error('Error fetching user profile:', error);
128
+ if (isDevelopmentMode()) {
129
+ return {
130
+ username: 'demo_user',
131
+ platforms: ['instagram', 'youtube'],
132
+ createdAt: Date.now()
133
+ };
134
+ }
135
+ throw error;
136
+ }
137
+ }
138
+ };
139
+
140
+ // Email verification functions for WelcomeScreen
141
+ export const sendEmailVerificationCode = async email => {
142
+ try {
143
+ var _response$data3;
144
+ if (isDevelopmentMode()) {
145
+ console.log('Mock: Sending verification code to:', email);
146
+ return {
147
+ success: true,
148
+ message: 'Verification code sent successfully'
149
+ };
150
+ }
151
+ const response = await onairosApi.post('email/verify', {
152
+ email
153
+ });
154
+ return {
155
+ success: true,
156
+ message: ((_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.message) || 'Verification code sent'
157
+ };
158
+ } catch (error) {
159
+ console.error('Error sending verification code:', error);
160
+ if (isDevelopmentMode()) {
161
+ return {
162
+ success: true,
163
+ message: 'Mock verification code sent'
164
+ };
165
+ }
166
+ return {
167
+ success: false,
168
+ message: 'Failed to send verification code'
169
+ };
170
+ }
171
+ };
172
+ export const confirmEmailVerificationCode = async (email, code) => {
173
+ try {
174
+ var _response$data4;
175
+ if (isDevelopmentMode()) {
176
+ console.log('Mock: Verifying code for:', email, 'code:', code);
177
+ // Accept any 6-digit code in dev mode
178
+ if (code.length === 6 || code === 'reviewer') {
179
+ return {
180
+ success: true,
181
+ message: 'Email verified successfully'
182
+ };
183
+ }
184
+ return {
185
+ success: false,
186
+ message: 'Invalid verification code'
187
+ };
188
+ }
189
+ const response = await onairosApi.post('email/verify/confirm', {
190
+ email,
191
+ code
192
+ });
193
+ return {
194
+ success: true,
195
+ message: ((_response$data4 = response.data) === null || _response$data4 === void 0 ? void 0 : _response$data4.message) || 'Email verified'
196
+ };
197
+ } catch (error) {
198
+ console.error('Error verifying email code:', error);
199
+ if (isDevelopmentMode()) {
200
+ return {
201
+ success: false,
202
+ message: 'Invalid verification code'
203
+ };
204
+ }
205
+ return {
206
+ success: false,
207
+ message: 'Verification failed'
208
+ };
209
+ }
210
+ };
211
+ //# sourceMappingURL=index.js.map
@@ -1 +1,20 @@
1
- function _0x3f27(){const _0x1b32d2=['text','body'];_0x3f27=function(){return _0x1b32d2;};return _0x3f27();}import React from'react';import{Text,StyleSheet}from'react-native';import{TEXT_STYLES}from'../theme';const BodyText=({children:children='The\x20secure,\x20portable\x20persona\x20built\x20from\x20your\x20data.\x20Every\x20app\x20personalized\x20while\x20your\x20data\x20stays\x20yours.',style:_0x524e04})=>{return React['createElement'](Text,{'style':[styles[_0x4574(0x0)],_0x524e04]},children);},styles=StyleSheet['create']({'text':{...TEXT_STYLES[_0x4574(0x1)],'paddingHorizontal':0x14}});export{BodyText};function _0x4574(_0x3f2720,_0x45740e){_0x3f2720=_0x3f2720-0x0;const _0x55e492=_0x3f27();let _0xd3e50a=_0x55e492[_0x3f2720];return _0xd3e50a;}export default BodyText;
1
+ import React from 'react';
2
+ import { Text, StyleSheet } from 'react-native';
3
+ import { TEXT_STYLES } from '../theme';
4
+ const BodyText = ({
5
+ children = "The secure, portable persona built from your data. Every app personalized while your data stays yours.",
6
+ style
7
+ }) => {
8
+ return /*#__PURE__*/React.createElement(Text, {
9
+ style: [styles.text, style]
10
+ }, children);
11
+ };
12
+ const styles = StyleSheet.create({
13
+ text: {
14
+ ...TEXT_STYLES.body,
15
+ paddingHorizontal: 20 // Add horizontal padding for nice text wrapping
16
+ }
17
+ });
18
+ export { BodyText };
19
+ export default BodyText;
20
+ //# sourceMappingURL=BodyText.js.map
@@ -1 +1,104 @@
1
- import React from'react';import{View,StyleSheet,Image,Platform}from'react-native';import{SHADOWS}from'../theme';function _0x58e5(_0x36dde1,_0x58e58e){_0x36dde1=_0x36dde1-0x0;const _0x382017=_0x36dd();let _0xda6d06=_0x382017[_0x36dde1];return _0xda6d06;}import{BRAND_IMAGES}from'../utils/assetRegistry';const BrandMark=({containerSize:containerSize=0x6e,imageSize:imageSize=0x6e,style:_0x2cbf0f,showGlow:showGlow=!![]})=>{const _0x459143=containerSize*0.2;return React[_0x58e5(0x0)](View,{'style':[styles[_0x58e5(0x1)],_0x2cbf0f]},showGlow&&React[_0x58e5(0x0)](View,{'style':[styles[_0x58e5(0x2)],styles[_0x58e5(0x3)],{'width':containerSize,'height':containerSize,'borderRadius':_0x459143}]}),showGlow&&React[_0x58e5(0x0)](View,{'style':[styles[_0x58e5(0x2)],styles[_0x58e5(0x4)],{'width':containerSize,'height':containerSize,'borderRadius':_0x459143}]}),React[_0x58e5(0x0)](View,{'style':[styles['container'],{'width':containerSize,'height':containerSize,'borderRadius':_0x459143}]},React[_0x58e5(0x0)](Image,{'source':BRAND_IMAGES['onairosLogo'],'style':[styles['logo'],{'width':imageSize,'height':imageSize,'transform':[{'translateY':-0x1},{'translateX':-0x4}]}],'resizeMode':'contain'})));},styles=StyleSheet[_0x58e5(0x5)]({'glowWrapper':{'position':_0x58e5(0x6),'alignItems':_0x58e5(0x7),'justifyContent':_0x58e5(0x7)},'glowLayer':{'position':'absolute','backgroundColor':'transparent'},'redGlow':{'shadowColor':'#FF4D6A','shadowOffset':{'width':0x8,'height':0x8},'shadowOpacity':0.5,'shadowRadius':0x14,'elevation':0x8,...Platform[_0x58e5(0x8)]({'android':{'backgroundColor':'rgba(255,\x2077,\x20106,\x200.15)'}})},'blueGlow':{'shadowColor':_0x58e5(0x9),'shadowOffset':{'width':-0x8,'height':-0x8},'shadowOpacity':0.5,'shadowRadius':0x14,'elevation':0x8,...Platform['select']({'android':{'backgroundColor':_0x58e5(0xa)}})},'container':{'backgroundColor':'#FFFFFF','justifyContent':_0x58e5(0x7),'alignItems':_0x58e5(0x7),'overflow':_0x58e5(0xb),...SHADOWS[_0x58e5(0xc)]},'logo':{}});function _0x36dd(){const _0x411151=['createElement','glowWrapper','glowLayer','redGlow','blueGlow','create','relative','center','select','#4D79FF','rgba(77,\x20121,\x20255,\x200.15)','hidden','brandMark'];_0x36dd=function(){return _0x411151;};return _0x36dd();}export{BrandMark};export default BrandMark;
1
+ import React from 'react';
2
+ import { View, StyleSheet, Image, Platform } from 'react-native';
3
+ import { SHADOWS } from '../theme';
4
+ import { BRAND_IMAGES } from '../utils/assetRegistry';
5
+ const BrandMark = ({
6
+ containerSize = 110,
7
+ imageSize = 110,
8
+ style,
9
+ showGlow = true
10
+ }) => {
11
+ const borderRadius = containerSize * 0.2;
12
+ return /*#__PURE__*/React.createElement(View, {
13
+ style: [styles.glowWrapper, style]
14
+ }, showGlow && /*#__PURE__*/React.createElement(View, {
15
+ style: [styles.glowLayer, styles.redGlow, {
16
+ width: containerSize,
17
+ height: containerSize,
18
+ borderRadius
19
+ }]
20
+ }), showGlow && /*#__PURE__*/React.createElement(View, {
21
+ style: [styles.glowLayer, styles.blueGlow, {
22
+ width: containerSize,
23
+ height: containerSize,
24
+ borderRadius
25
+ }]
26
+ }), /*#__PURE__*/React.createElement(View, {
27
+ style: [styles.container, {
28
+ width: containerSize,
29
+ height: containerSize,
30
+ borderRadius
31
+ }]
32
+ }, /*#__PURE__*/React.createElement(Image, {
33
+ source: BRAND_IMAGES.onairosLogo,
34
+ style: [styles.logo, {
35
+ width: imageSize,
36
+ height: imageSize,
37
+ transform: [{
38
+ translateY: -1
39
+ }, {
40
+ translateX: -4
41
+ }] // Nudge logo slightly up and left
42
+ }],
43
+ resizeMode: "contain"
44
+ })));
45
+ };
46
+ const styles = StyleSheet.create({
47
+ glowWrapper: {
48
+ position: 'relative',
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ },
52
+ glowLayer: {
53
+ position: 'absolute',
54
+ backgroundColor: 'transparent'
55
+ },
56
+ redGlow: {
57
+ // Red/pink glow - offset to bottom-right
58
+ shadowColor: '#FF4D6A',
59
+ shadowOffset: {
60
+ width: 8,
61
+ height: 8
62
+ },
63
+ shadowOpacity: 0.5,
64
+ shadowRadius: 20,
65
+ elevation: 8,
66
+ // For Android, we need a background to show shadow
67
+ ...Platform.select({
68
+ android: {
69
+ backgroundColor: 'rgba(255, 77, 106, 0.15)'
70
+ }
71
+ })
72
+ },
73
+ blueGlow: {
74
+ // Blue/cyan glow - offset to top-left
75
+ shadowColor: '#4D79FF',
76
+ shadowOffset: {
77
+ width: -8,
78
+ height: -8
79
+ },
80
+ shadowOpacity: 0.5,
81
+ shadowRadius: 20,
82
+ elevation: 8,
83
+ // For Android, we need a background to show shadow
84
+ ...Platform.select({
85
+ android: {
86
+ backgroundColor: 'rgba(77, 121, 255, 0.15)'
87
+ }
88
+ })
89
+ },
90
+ container: {
91
+ backgroundColor: '#FFFFFF',
92
+ justifyContent: 'center',
93
+ alignItems: 'center',
94
+ overflow: 'hidden',
95
+ // Clip logo at container edges
96
+ ...SHADOWS.brandMark
97
+ },
98
+ logo: {
99
+ // Logo styling is handled via props for flexibility
100
+ }
101
+ });
102
+ export { BrandMark };
103
+ export default BrandMark;
104
+ //# sourceMappingURL=BrandMark.js.map
@@ -1 +1,109 @@
1
- import React,{useRef,useState,useEffect}from'react';import{View,TextInput,StyleSheet,Pressable,Keyboard}from'react-native';import{COLORS}from'../theme';function _0x131f(_0x56a6cc,_0x131f8e){_0x56a6cc=_0x56a6cc-0x0;const _0x22d8e0=_0x56a6();let _0x52d361=_0x22d8e0[_0x56a6cc];return _0x52d361;}function _0x56a6(){const _0x380f7c=['OklUg','number-pad','ygZXz','fill','HeVAv','mvjAH','IsPhr','EwJrX','current','replace','slice','split','push','min','length','cyZum','SYWZb','olXlL','Ekcdp','EjrPa','dismiss','skwbU','Rjlep','dCPuQ','focus','container','createElement','hiddenInput','join','ntsHR','sms-otp','oneTimeCode','boxesContainer','map','box','boxFilled','boxFocused','boxText','none','create','absolute','space-between','#E0E0E0','center','grey600','#D4A536','600','grey800'];_0x56a6=function(){return _0x380f7c;};return _0x56a6();}const CodeInput=({length:length=0x6,onCodeChange:_0x42e3d2,onCodeComplete:_0x1a3982})=>{const _0x5eb84a={'EwJrX':function(_0x179a56,_0x46d07a){return _0x179a56===_0x46d07a;},'IsPhr':function(_0x1422e5,_0x115aa1,_0x350465){return _0x1422e5(_0x115aa1,_0x350465);},'wvrTU':function(_0x4ea5df,_0x2828a3){return _0x4ea5df===_0x2828a3;},'pDmII':function(_0x420fa8,_0x27d9e9){return _0x420fa8===_0x27d9e9;},'skwbU':function(_0x9c9d11,_0x40b9a0){return _0x9c9d11(_0x40b9a0);},'RQdAN':function(_0x396484,_0x4cdfea){return _0x396484<_0x4cdfea;},'SwyrW':function(_0x1ff600,_0x172212){return _0x1ff600-_0x172212;},'cyZum':function(_0x571528,_0x4e4350){return _0x571528(_0x4e4350);},'SYWZb':function(_0x58190e,_0x26b398){return _0x58190e===_0x26b398;},'olXlL':function(_0x347455,_0x3c30da){return _0x347455===_0x3c30da;},'Ekcdp':_0x131f(0x0),'EjrPa':function(_0x1d9a7d,_0x3e39d9){return _0x1d9a7d===_0x3e39d9;},'TQzGL':function(_0x5b5587,_0x38c38d){return _0x5b5587===_0x38c38d;},'Rjlep':function(_0x192c11,_0x38a78b){return _0x192c11===_0x38a78b;},'dCPuQ':function(_0x25ef7b,_0x182894){return _0x25ef7b===_0x182894;},'ygZXz':function(_0x590a23,_0x36aced){return _0x590a23(_0x36aced);},'HeVAv':function(_0x557f36,_0x4cf703){return _0x557f36(_0x4cf703);},'mvjAH':function(_0x2420ec,_0x4fea6b){return _0x2420ec(_0x4fea6b);},'ntsHR':_0x131f(0x1)},[_0x103b11,_0x24e131]=useState(_0x5eb84a[_0x131f(0x2)](Array,length)[_0x131f(0x3)]('')),[_0x5d979c,_0x202fb0]=_0x5eb84a[_0x131f(0x4)](useState,0x0),_0x528e69=_0x5eb84a[_0x131f(0x5)](useRef,[]),_0x256139=useRef(null);useEffect(()=>{_0x5eb84a[_0x131f(0x6)](setTimeout,()=>{var _0x58c32f;_0x5eb84a[_0x131f(0x7)](_0x58c32f=_0x256139[_0x131f(0x8)],null)||_0x58c32f===void 0x0||_0x58c32f['focus']();},0x64);},[]);const _0x21d39f=_0x4427d8=>{const _0x570728=_0x4427d8[_0x131f(0x9)](/[^0-9]/g,''),_0x4ab284=_0x570728[_0x131f(0xa)](0x0,length)[_0x131f(0xb)]('');while(_0x5eb84a['RQdAN'](_0x4ab284['length'],length)){_0x4ab284[_0x131f(0xc)]('');}_0x5eb84a['skwbU'](_0x24e131,_0x4ab284),_0x5eb84a['skwbU'](_0x202fb0,Math[_0x131f(0xd)](_0x570728[_0x131f(0xe)],_0x5eb84a['SwyrW'](length,0x1)));const _0x55cb2f=_0x4ab284['join']('');_0x42e3d2===null||_0x42e3d2===void 0x0||_0x5eb84a[_0x131f(0xf)](_0x42e3d2,_0x55cb2f),_0x5eb84a[_0x131f(0x10)](_0x570728[_0x131f(0xe)],length)&&(_0x5eb84a[_0x131f(0x11)](_0x5eb84a[_0x131f(0x12)],_0x5eb84a[_0x131f(0x12)])?(_0x5eb84a[_0x131f(0x13)](_0x1a3982,null)||_0x5eb84a['TQzGL'](_0x1a3982,void 0x0)||_0x5eb84a['cyZum'](_0x1a3982,_0x55cb2f),Keyboard[_0x131f(0x14)]()):(_0x5eb84a['wvrTU'](_0x38cfba,null)||_0x5eb84a['pDmII'](_0x2b3a33,void 0x0)||_0x5eb84a[_0x131f(0x15)](_0x247cda,_0x78e93d),_0x5423df[_0x131f(0x14)]()));},_0x9f1591=()=>{var _0x16a12c;_0x5eb84a[_0x131f(0x16)](_0x16a12c=_0x256139[_0x131f(0x8)],null)||_0x5eb84a[_0x131f(0x17)](_0x16a12c,void 0x0)||_0x16a12c[_0x131f(0x18)]();};return React['createElement'](View,{'style':styles[_0x131f(0x19)]},React[_0x131f(0x1a)](TextInput,{'ref':_0x256139,'style':styles[_0x131f(0x1b)],'value':_0x103b11[_0x131f(0x1c)](''),'onChangeText':_0x21d39f,'keyboardType':_0x5eb84a[_0x131f(0x1d)],'maxLength':length,'autoComplete':_0x131f(0x1e),'textContentType':_0x131f(0x1f),'caretHidden':!![]}),React[_0x131f(0x1a)](Pressable,{'style':styles[_0x131f(0x20)],'onPress':_0x9f1591},_0x5eb84a['mvjAH'](Array,length)['fill'](0x0)[_0x131f(0x21)]((_0x44cc01,_0xb204ff)=>React[_0x131f(0x1a)](View,{'key':_0xb204ff,'style':[styles[_0x131f(0x22)],_0x103b11[_0xb204ff]?styles[_0x131f(0x23)]:null,_0x5d979c===_0xb204ff&&!_0x103b11[_0xb204ff]?styles[_0x131f(0x24)]:null]},React[_0x131f(0x1a)](TextInput,{'style':styles[_0x131f(0x25)],'value':_0x103b11[_0xb204ff],'editable':![],'pointerEvents':_0x131f(0x26)})))));},styles=StyleSheet[_0x131f(0x27)]({'container':{'width':'100%'},'hiddenInput':{'position':_0x131f(0x28),'opacity':0x0,'height':0x0,'width':0x0},'boxesContainer':{'flexDirection':'row','justifyContent':_0x131f(0x29),'width':'100%'},'box':{'width':0x30,'height':0x38,'borderWidth':1.5,'borderColor':_0x131f(0x2a),'borderRadius':0xc,'justifyContent':_0x131f(0x2b),'alignItems':_0x131f(0x2b),'backgroundColor':'#FAFAFA'},'boxFilled':{'borderColor':COLORS[_0x131f(0x2c)],'backgroundColor':'#FFFFFF'},'boxFocused':{'borderColor':_0x131f(0x2d),'borderWidth':0x2},'boxText':{'fontSize':0x18,'fontWeight':_0x131f(0x2e),'color':COLORS[_0x131f(0x2f)],'textAlign':_0x131f(0x2b)}});export{CodeInput};export default CodeInput;
1
+ import React, { useRef, useState, useEffect } from 'react';
2
+ import { View, TextInput, StyleSheet, Pressable, Keyboard } from 'react-native';
3
+ import { COLORS } from '../theme';
4
+ const CodeInput = ({
5
+ length = 6,
6
+ onCodeChange,
7
+ onCodeComplete
8
+ }) => {
9
+ const [code, setCode] = useState(Array(length).fill(''));
10
+ const [focusedIndex, setFocusedIndex] = useState(0);
11
+ const inputRefs = useRef([]);
12
+ const hiddenInputRef = useRef(null);
13
+ useEffect(() => {
14
+ // Focus the hidden input on mount
15
+ setTimeout(() => {
16
+ var _hiddenInputRef$curre;
17
+ (_hiddenInputRef$curre = hiddenInputRef.current) === null || _hiddenInputRef$curre === void 0 || _hiddenInputRef$curre.focus();
18
+ }, 100);
19
+ }, []);
20
+ const handleHiddenInputChange = text => {
21
+ // Only allow numbers
22
+ const numericText = text.replace(/[^0-9]/g, '');
23
+ const newCode = numericText.slice(0, length).split('');
24
+
25
+ // Pad with empty strings
26
+ while (newCode.length < length) {
27
+ newCode.push('');
28
+ }
29
+ setCode(newCode);
30
+ setFocusedIndex(Math.min(numericText.length, length - 1));
31
+ const codeString = newCode.join('');
32
+ onCodeChange === null || onCodeChange === void 0 || onCodeChange(codeString);
33
+ if (numericText.length === length) {
34
+ onCodeComplete === null || onCodeComplete === void 0 || onCodeComplete(codeString);
35
+ Keyboard.dismiss();
36
+ }
37
+ };
38
+ const handleBoxPress = () => {
39
+ var _hiddenInputRef$curre2;
40
+ (_hiddenInputRef$curre2 = hiddenInputRef.current) === null || _hiddenInputRef$curre2 === void 0 || _hiddenInputRef$curre2.focus();
41
+ };
42
+ return /*#__PURE__*/React.createElement(View, {
43
+ style: styles.container
44
+ }, /*#__PURE__*/React.createElement(TextInput, {
45
+ ref: hiddenInputRef,
46
+ style: styles.hiddenInput,
47
+ value: code.join(''),
48
+ onChangeText: handleHiddenInputChange,
49
+ keyboardType: "number-pad",
50
+ maxLength: length,
51
+ autoComplete: "sms-otp",
52
+ textContentType: "oneTimeCode",
53
+ caretHidden: true
54
+ }), /*#__PURE__*/React.createElement(Pressable, {
55
+ style: styles.boxesContainer,
56
+ onPress: handleBoxPress
57
+ }, Array(length).fill(0).map((_, index) => /*#__PURE__*/React.createElement(View, {
58
+ key: index,
59
+ style: [styles.box, code[index] ? styles.boxFilled : null, focusedIndex === index && !code[index] ? styles.boxFocused : null]
60
+ }, /*#__PURE__*/React.createElement(TextInput, {
61
+ style: styles.boxText,
62
+ value: code[index],
63
+ editable: false,
64
+ pointerEvents: "none"
65
+ })))));
66
+ };
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ width: '100%'
70
+ },
71
+ hiddenInput: {
72
+ position: 'absolute',
73
+ opacity: 0,
74
+ height: 0,
75
+ width: 0
76
+ },
77
+ boxesContainer: {
78
+ flexDirection: 'row',
79
+ justifyContent: 'space-between',
80
+ width: '100%'
81
+ },
82
+ box: {
83
+ width: 48,
84
+ height: 56,
85
+ borderWidth: 1.5,
86
+ borderColor: '#E0E0E0',
87
+ borderRadius: 12,
88
+ justifyContent: 'center',
89
+ alignItems: 'center',
90
+ backgroundColor: '#FAFAFA'
91
+ },
92
+ boxFilled: {
93
+ borderColor: COLORS.grey600,
94
+ backgroundColor: '#FFFFFF'
95
+ },
96
+ boxFocused: {
97
+ borderColor: '#D4A536',
98
+ borderWidth: 2
99
+ },
100
+ boxText: {
101
+ fontSize: 24,
102
+ fontWeight: '600',
103
+ color: COLORS.grey800,
104
+ textAlign: 'center'
105
+ }
106
+ });
107
+ export { CodeInput };
108
+ export default CodeInput;
109
+ //# sourceMappingURL=CodeInput.js.map
@@ -1 +1,23 @@
1
- function _0x5215(_0x1c33d5,_0x5215ee){_0x1c33d5=_0x1c33d5-0x0;var _0x2ecc55=_0x1c33();var _0x4922dd=_0x2ecc55[_0x1c33d5];return _0x4922dd;}function _extends(){var _0x37101a={'jWejD':function(_0x18a3a0,_0x58c067){return _0x18a3a0<_0x58c067;}};return _extends=Object[_0x5215(0x0)]?Object[_0x5215(0x0)][_0x5215(0x1)]():function(_0x15dea9){for(var _0x549637=0x1;_0x37101a[_0x5215(0x2)](_0x549637,arguments[_0x5215(0x3)]);_0x549637++){var _0x1ebfc0=arguments[_0x549637];for(var _0x4ce1f0 in _0x1ebfc0)({}['hasOwnProperty'][_0x5215(0x4)](_0x1ebfc0,_0x4ce1f0)&&(_0x15dea9[_0x4ce1f0]=_0x1ebfc0[_0x4ce1f0]));}return _0x15dea9;},_extends[_0x5215(0x5)](null,arguments);}import React from'react';import{TextInput,StyleSheet}from'react-native';const EmailInput=_0x190b53=>{var _0x328752={'QUETD':_0x5215(0x6)};return React[_0x5215(0x7)](TextInput,_extends({},_0x190b53,{'keyboardType':_0x5215(0x8),'autoCapitalize':_0x328752[_0x5215(0x9)],'autoComplete':_0x5215(0xa),'style':[styles[_0x5215(0xb)],_0x190b53[_0x5215(0xc)]]}));},styles=StyleSheet[_0x5215(0xd)]({'input':{'borderWidth':0x1,'borderColor':_0x5215(0xe),'borderRadius':0x8,'padding':0xc,'fontSize':0x10}});export{EmailInput};export default EmailInput;function _0x1c33(){var _0x3af607=['assign','bind','jWejD','length','call','apply','none','createElement','email-address','QUETD','email','input','style','create','#E0E0E0'];_0x1c33=function(){return _0x3af607;};return _0x1c33();}
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import React from 'react';
3
+ import { TextInput, StyleSheet } from 'react-native';
4
+ const EmailInput = props => {
5
+ return /*#__PURE__*/React.createElement(TextInput, _extends({}, props, {
6
+ keyboardType: "email-address",
7
+ autoCapitalize: "none",
8
+ autoComplete: "email",
9
+ style: [styles.input, props.style]
10
+ }));
11
+ };
12
+ const styles = StyleSheet.create({
13
+ input: {
14
+ borderWidth: 1,
15
+ borderColor: '#E0E0E0',
16
+ borderRadius: 8,
17
+ padding: 12,
18
+ fontSize: 16
19
+ }
20
+ });
21
+ export { EmailInput };
22
+ export default EmailInput;
23
+ //# sourceMappingURL=EmailInput.js.map
@@ -1 +1,49 @@
1
- import React from'react';function _0x10ac(_0x20c67f,_0x10ac5a){_0x20c67f=_0x20c67f-0x0;const _0x5427d9=_0x20c6();let _0x1b10fb=_0x5427d9[_0x20c67f];return _0x1b10fb;}import{TouchableOpacity,Text,Image,StyleSheet}from'react-native';import{BRAND_IMAGES}from'../utils/assetRegistry';const GoogleButton=({onPress:_0x46a45e,style:_0x488546,disabled:disabled=![]})=>{const _0x280c10={'ysukO':_0x10ac(0x0),'URGYz':'Continue\x20with\x20Google'};return React['createElement'](TouchableOpacity,{'style':[styles[_0x10ac(0x1)],_0x488546,disabled&&styles['disabled']],'onPress':_0x46a45e,'disabled':disabled},React[_0x10ac(0x2)](Image,{'source':BRAND_IMAGES[_0x10ac(0x3)],'style':styles['icon'],'resizeMode':_0x280c10[_0x10ac(0x4)]}),React[_0x10ac(0x2)](Text,{'style':styles['text']},_0x280c10['URGYz']));},styles=StyleSheet['create']({'button':{'flexDirection':_0x10ac(0x5),'alignItems':'center','justifyContent':'center','backgroundColor':'#FFFFFF','borderWidth':0x1,'borderColor':'#E0E0E0','borderRadius':0x8,'paddingVertical':0xc,'paddingHorizontal':0x10},'disabled':{'opacity':0.5},'icon':{'width':0x14,'height':0x14,'marginRight':0x8},'text':{'fontSize':0x10,'fontWeight':_0x10ac(0x6),'color':_0x10ac(0x7)}});export{GoogleButton};export default GoogleButton;function _0x20c6(){const _0x1fff46=['contain','button','createElement','googleLogo','ysukO','row','500','#333333'];_0x20c6=function(){return _0x1fff46;};return _0x20c6();}
1
+ import React from 'react';
2
+ import { TouchableOpacity, Text, Image, StyleSheet } from 'react-native';
3
+ import { BRAND_IMAGES } from '../utils/assetRegistry';
4
+ const GoogleButton = ({
5
+ onPress,
6
+ style,
7
+ disabled = false
8
+ }) => {
9
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
10
+ style: [styles.button, style, disabled && styles.disabled],
11
+ onPress: onPress,
12
+ disabled: disabled
13
+ }, /*#__PURE__*/React.createElement(Image, {
14
+ source: BRAND_IMAGES.googleLogo,
15
+ style: styles.icon,
16
+ resizeMode: "contain"
17
+ }), /*#__PURE__*/React.createElement(Text, {
18
+ style: styles.text
19
+ }, "Continue with Google"));
20
+ };
21
+ const styles = StyleSheet.create({
22
+ button: {
23
+ flexDirection: 'row',
24
+ alignItems: 'center',
25
+ justifyContent: 'center',
26
+ backgroundColor: '#FFFFFF',
27
+ borderWidth: 1,
28
+ borderColor: '#E0E0E0',
29
+ borderRadius: 8,
30
+ paddingVertical: 12,
31
+ paddingHorizontal: 16
32
+ },
33
+ disabled: {
34
+ opacity: 0.5
35
+ },
36
+ icon: {
37
+ width: 20,
38
+ height: 20,
39
+ marginRight: 8
40
+ },
41
+ text: {
42
+ fontSize: 16,
43
+ fontWeight: '500',
44
+ color: '#333333'
45
+ }
46
+ });
47
+ export { GoogleButton };
48
+ export default GoogleButton;
49
+ //# sourceMappingURL=GoogleButton.js.map
@@ -1 +1,36 @@
1
- import React from'react';import{View,Text,StyleSheet}from'react-native';import{TEXT_STYLES}from'../theme';const HeadingGroup=({kicker:kicker='Welcome\x20to',title:title=_0x13e3(0x0),style:_0x5efef8})=>{return React[_0x13e3(0x1)](View,{'style':[styles[_0x13e3(0x2)],_0x5efef8]},React[_0x13e3(0x1)](Text,{'style':styles[_0x13e3(0x3)]},kicker),React[_0x13e3(0x1)](Text,{'style':styles[_0x13e3(0x4)]},title));},styles=StyleSheet[_0x13e3(0x5)]({'container':{'alignItems':_0x13e3(0x6)},'kicker':{...TEXT_STYLES[_0x13e3(0x3)],'fontFamily':_0x13e3(0x7),'fontWeight':_0x13e3(0x8),'marginBottom':0x4},'title':{...TEXT_STYLES[_0x13e3(0x9)],'fontFamily':_0x13e3(0x7),'fontWeight':_0x13e3(0x8)}});export{HeadingGroup};function _0x1d7e(){const _0x5b0b2a=['Onairos','createElement','container','kicker','title','create','center','IBM\x20Plex\x20Sans','700','welcomeTitle'];_0x1d7e=function(){return _0x5b0b2a;};return _0x1d7e();}function _0x13e3(_0x1d7ea5,_0x13e3c0){_0x1d7ea5=_0x1d7ea5-0x0;const _0x1c4d80=_0x1d7e();let _0x5dd9b4=_0x1c4d80[_0x1d7ea5];return _0x5dd9b4;}export default HeadingGroup;
1
+ import React from 'react';
2
+ import { View, Text, StyleSheet } from 'react-native';
3
+ import { TEXT_STYLES } from '../theme';
4
+ const HeadingGroup = ({
5
+ kicker = "Welcome to",
6
+ title = "Onairos",
7
+ style
8
+ }) => {
9
+ return /*#__PURE__*/React.createElement(View, {
10
+ style: [styles.container, style]
11
+ }, /*#__PURE__*/React.createElement(Text, {
12
+ style: styles.kicker
13
+ }, kicker), /*#__PURE__*/React.createElement(Text, {
14
+ style: styles.title
15
+ }, title));
16
+ };
17
+ const styles = StyleSheet.create({
18
+ container: {
19
+ alignItems: 'center'
20
+ },
21
+ kicker: {
22
+ ...TEXT_STYLES.kicker,
23
+ fontFamily: 'IBM Plex Sans',
24
+ fontWeight: '700',
25
+ // Force bold weight
26
+ marginBottom: 4 // Small gap between kicker and title
27
+ },
28
+ title: {
29
+ ...TEXT_STYLES.welcomeTitle,
30
+ fontFamily: 'IBM Plex Sans',
31
+ fontWeight: '700' // Force bold weight
32
+ }
33
+ });
34
+ export { HeadingGroup };
35
+ export default HeadingGroup;
36
+ //# sourceMappingURL=HeadingGroup.js.map