@onairos/react-native 3.7.2 → 3.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/lib/commonjs/api/index.js +219 -9
  2. package/lib/commonjs/components/BodyText.js +27 -9
  3. package/lib/commonjs/components/BrandMark.js +111 -10
  4. package/lib/commonjs/components/CodeInput.js +120 -9
  5. package/lib/commonjs/components/EmailInput.js +30 -8
  6. package/lib/commonjs/components/GoogleButton.js +56 -9
  7. package/lib/commonjs/components/HeadingGroup.js +43 -9
  8. package/lib/commonjs/components/LLMDataInputModal.js +664 -14
  9. package/lib/commonjs/components/ModalHeader.js +99 -9
  10. package/lib/commonjs/components/ModalSheet.js +47 -9
  11. package/lib/commonjs/components/Onairos.js +380 -14
  12. package/lib/commonjs/components/OnairosButton.js +313 -13
  13. package/lib/commonjs/components/OnairosSignInButton.js +130 -12
  14. package/lib/commonjs/components/Overlay.js +465 -13
  15. package/lib/commonjs/components/PersonaImage.js +137 -10
  16. package/lib/commonjs/components/PersonaLoadingScreen.js +318 -12
  17. package/lib/commonjs/components/PersonalizationConsentScreen.js +467 -13
  18. package/lib/commonjs/components/PinCreationScreen.js +403 -12
  19. package/lib/commonjs/components/PinInput.js +464 -9
  20. package/lib/commonjs/components/PlatformConnectorsStep.js +1311 -23
  21. package/lib/commonjs/components/PlatformList.js +137 -10
  22. package/lib/commonjs/components/PlatformToggle.js +180 -9
  23. package/lib/commonjs/components/PrimaryButton.js +180 -10
  24. package/lib/commonjs/components/SignInMatchAnimation.js +197 -9
  25. package/lib/commonjs/components/SignInStep.js +345 -12
  26. package/lib/commonjs/components/UniversalOnboarding.js +2780 -30
  27. package/lib/commonjs/components/VerificationStep.js +176 -11
  28. package/lib/commonjs/components/WelcomeScreen.js +461 -22
  29. package/lib/commonjs/components/icons/Basicproficon.js +37 -8
  30. package/lib/commonjs/components/icons/Basicprofile.js +21 -8
  31. package/lib/commonjs/components/icons/Checkbox.js +21 -8
  32. package/lib/commonjs/components/icons/Checkmark.js +27 -8
  33. package/lib/commonjs/components/icons/Contentanalysis.js +21 -8
  34. package/lib/commonjs/components/icons/Contenticon.js +39 -8
  35. package/lib/commonjs/components/icons/EnochE.js +41 -8
  36. package/lib/commonjs/components/icons/Personalityicon.js +30 -8
  37. package/lib/commonjs/components/icons/Personalityprofile.js +21 -8
  38. package/lib/commonjs/components/icons/Personalitytraits.js +21 -8
  39. package/lib/commonjs/components/icons/Userpreferences.js +21 -8
  40. package/lib/commonjs/components/icons/index.js +84 -17
  41. package/lib/commonjs/components/onboarding/OAuthWebView.js +1754 -18
  42. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -10
  43. package/lib/commonjs/components/onboarding/PinInput.js +283 -10
  44. package/lib/commonjs/components/onboarding/PlatformConnector.js +249 -11
  45. package/lib/commonjs/config/PLATFORM_APIS.md +849 -0
  46. package/lib/commonjs/config/api.js +56 -7
  47. package/lib/commonjs/constants/index.js +120 -7
  48. package/lib/commonjs/context/AuthContext.js +345 -10
  49. package/lib/commonjs/hooks/useConnectedAccounts.js +111 -9
  50. package/lib/commonjs/hooks/useConnections.js +102 -8
  51. package/lib/commonjs/hooks/useCredentials.js +178 -10
  52. package/lib/commonjs/hooks/useUserConnections.js +148 -10
  53. package/lib/commonjs/index.js +439 -34
  54. package/lib/commonjs/services/apiClient.js +298 -8
  55. package/lib/commonjs/services/biometricPinService.js +180 -8
  56. package/lib/commonjs/services/chatGPTConversationExtractor.js +155 -8
  57. package/lib/commonjs/services/chatGPTConversationService.js +275 -9
  58. package/lib/commonjs/services/claudeConversationExtractor.js +103 -8
  59. package/lib/commonjs/services/claudeConversationService.js +158 -9
  60. package/lib/commonjs/services/connectedAccountsService.js +310 -10
  61. package/lib/commonjs/services/googleAuthService.js +252 -11
  62. package/lib/commonjs/services/hingeDataExtractor.js +105 -8
  63. package/lib/commonjs/services/hingeDataService.js +150 -9
  64. package/lib/commonjs/services/imageCompressionService.js +260 -7
  65. package/lib/commonjs/services/instagramDataExtractor.js +126 -8
  66. package/lib/commonjs/services/instagramDataService.js +163 -9
  67. package/lib/commonjs/services/jwtStorageService.js +276 -7
  68. package/lib/commonjs/services/linkedinDOMExtractor.js +245 -7
  69. package/lib/commonjs/services/linkedinProfileService.js +222 -9
  70. package/lib/commonjs/services/linkedinScrapingService.js +230 -8
  71. package/lib/commonjs/services/llmDataStorage.js +294 -8
  72. package/lib/commonjs/services/mobileTrainingService.js +186 -8
  73. package/lib/commonjs/services/netflixDataExtractor.js +120 -8
  74. package/lib/commonjs/services/netflixDataService.js +198 -9
  75. package/lib/commonjs/services/pinEncryptionService.js +84 -8
  76. package/lib/commonjs/services/pinStorageUtils.js +105 -7
  77. package/lib/commonjs/services/platformAuthService.js +1484 -12
  78. package/lib/commonjs/services/sephoraDataExtractor.js +140 -8
  79. package/lib/commonjs/services/sephoraDataService.js +200 -9
  80. package/lib/commonjs/services/spotifyDataExtractor.js +148 -8
  81. package/lib/commonjs/services/spotifyDataService.js +241 -9
  82. package/lib/commonjs/services/storageService.js +404 -8
  83. package/lib/commonjs/services/telegramDataExtractor.js +115 -8
  84. package/lib/commonjs/services/telegramDataService.js +499 -9
  85. package/lib/commonjs/services/trainingApiHelpers.js +73 -7
  86. package/lib/commonjs/services/userConnectionsService.js +340 -10
  87. package/lib/commonjs/services/youtubeMigrationService.js +416 -10
  88. package/lib/commonjs/theme/index.js +250 -7
  89. package/lib/commonjs/types/ambient.d.js +2 -1
  90. package/lib/commonjs/types/declarations.d.js +2 -1
  91. package/lib/commonjs/types/index.js +6 -1
  92. package/lib/commonjs/types/node-fix.d.js +2 -1
  93. package/lib/commonjs/types/node-override.d.js +2 -1
  94. package/lib/commonjs/types/opacity.d.js +2 -1
  95. package/lib/commonjs/types.js +14 -1
  96. package/lib/commonjs/utils/Portal.js +98 -8
  97. package/lib/commonjs/utils/api.js +130 -9
  98. package/lib/commonjs/utils/assetRegistry.js +210 -35
  99. package/lib/commonjs/utils/auth.js +112 -9
  100. package/lib/commonjs/utils/connectorTests.js +613 -29
  101. package/lib/commonjs/utils/crypto.js +62 -8
  102. package/lib/commonjs/utils/debugHelper.js +64 -1
  103. package/lib/commonjs/utils/encryption.js +76 -7
  104. package/lib/commonjs/utils/eventUtils.js +288 -1
  105. package/lib/commonjs/utils/haptics.js +66 -9
  106. package/lib/commonjs/utils/imagePreloader.js +6 -1
  107. package/lib/commonjs/utils/networkDiagnostics.js +226 -8
  108. package/lib/commonjs/utils/onairosApi.js +350 -9
  109. package/lib/commonjs/utils/programmaticFlow.js +117 -9
  110. package/lib/commonjs/utils/retryHelper.js +220 -1
  111. package/lib/commonjs/utils/secureStorage.js +349 -10
  112. package/lib/commonjs/utils/webviewScripts/chatgpt.js +551 -1
  113. package/lib/commonjs/utils/webviewScripts/claude.js +376 -1
  114. package/lib/commonjs/utils/webviewScripts/hinge.js +411 -1
  115. package/lib/commonjs/utils/webviewScripts/index.js +698 -15
  116. package/lib/commonjs/utils/webviewScripts/instagram.js +454 -1
  117. package/lib/commonjs/utils/webviewScripts/linkedin.js +880 -1
  118. package/lib/commonjs/utils/webviewScripts/netflix.js +382 -1
  119. package/lib/commonjs/utils/webviewScripts/sephora.js +516 -1
  120. package/lib/commonjs/utils/webviewScripts/spotify.js +419 -1
  121. package/lib/commonjs/utils/webviewScripts/telegram.js +678 -1
  122. package/lib/module/api/index.js +211 -1
  123. package/lib/module/components/BodyText.js +20 -1
  124. package/lib/module/components/BrandMark.js +104 -1
  125. package/lib/module/components/CodeInput.js +113 -1
  126. package/lib/module/components/EmailInput.js +23 -1
  127. package/lib/module/components/GoogleButton.js +49 -1
  128. package/lib/module/components/HeadingGroup.js +36 -1
  129. package/lib/module/components/LLMDataInputModal.js +656 -7
  130. package/lib/module/components/ModalHeader.js +92 -1
  131. package/lib/module/components/ModalSheet.js +39 -1
  132. package/lib/module/components/Onairos.js +373 -1
  133. package/lib/module/components/OnairosButton.js +305 -1
  134. package/lib/module/components/OnairosSignInButton.js +121 -1
  135. package/lib/module/components/Overlay.js +456 -1
  136. package/lib/module/components/PersonaImage.js +129 -1
  137. package/lib/module/components/PersonaLoadingScreen.js +310 -1
  138. package/lib/module/components/PersonalizationConsentScreen.js +460 -1
  139. package/lib/module/components/PinCreationScreen.js +396 -1
  140. package/lib/module/components/PinInput.js +456 -1
  141. package/lib/module/components/PlatformConnectorsStep.js +1302 -6
  142. package/lib/module/components/PlatformList.js +129 -1
  143. package/lib/module/components/PlatformToggle.js +173 -1
  144. package/lib/module/components/PrimaryButton.js +172 -1
  145. package/lib/module/components/SignInMatchAnimation.js +189 -1
  146. package/lib/module/components/SignInStep.js +338 -1
  147. package/lib/module/components/UniversalOnboarding.js +2770 -1
  148. package/lib/module/components/VerificationStep.js +168 -1
  149. package/lib/module/components/WelcomeScreen.js +453 -1
  150. package/lib/module/components/icons/Basicproficon.js +30 -1
  151. package/lib/module/components/icons/Basicprofile.js +14 -1
  152. package/lib/module/components/icons/Checkbox.js +14 -1
  153. package/lib/module/components/icons/Checkmark.js +20 -1
  154. package/lib/module/components/icons/Contentanalysis.js +14 -1
  155. package/lib/module/components/icons/Contenticon.js +32 -1
  156. package/lib/module/components/icons/EnochE.js +34 -1
  157. package/lib/module/components/icons/Personalityicon.js +23 -1
  158. package/lib/module/components/icons/Personalityprofile.js +14 -1
  159. package/lib/module/components/icons/Personalitytraits.js +14 -1
  160. package/lib/module/components/icons/Userpreferences.js +14 -1
  161. package/lib/module/components/icons/index.js +13 -1
  162. package/lib/module/components/onboarding/OAuthWebView.js +1746 -1
  163. package/lib/module/components/onboarding/OnboardingHeader.js +66 -1
  164. package/lib/module/components/onboarding/PinInput.js +274 -1
  165. package/lib/module/components/onboarding/PlatformConnector.js +240 -1
  166. package/lib/module/config/PLATFORM_APIS.md +849 -0
  167. package/lib/module/config/api.js +47 -1
  168. package/lib/module/constants/index.js +114 -1
  169. package/lib/module/context/AuthContext.js +335 -1
  170. package/lib/module/hooks/useConnectedAccounts.js +106 -1
  171. package/lib/module/hooks/useConnections.js +95 -1
  172. package/lib/module/hooks/useCredentials.js +171 -6
  173. package/lib/module/hooks/useUserConnections.js +140 -1
  174. package/lib/module/index.js +172 -1
  175. package/lib/module/services/apiClient.js +295 -1
  176. package/lib/module/services/biometricPinService.js +169 -1
  177. package/lib/module/services/chatGPTConversationExtractor.js +149 -1
  178. package/lib/module/services/chatGPTConversationService.js +268 -1
  179. package/lib/module/services/claudeConversationExtractor.js +97 -1
  180. package/lib/module/services/claudeConversationService.js +151 -1
  181. package/lib/module/services/connectedAccountsService.js +293 -1
  182. package/lib/module/services/googleAuthService.js +241 -1
  183. package/lib/module/services/hingeDataExtractor.js +99 -1
  184. package/lib/module/services/hingeDataService.js +143 -1
  185. package/lib/module/services/imageCompressionService.js +250 -1
  186. package/lib/module/services/instagramDataExtractor.js +120 -1
  187. package/lib/module/services/instagramDataService.js +156 -1
  188. package/lib/module/services/jwtStorageService.js +257 -1
  189. package/lib/module/services/linkedinDOMExtractor.js +234 -1
  190. package/lib/module/services/linkedinProfileService.js +210 -1
  191. package/lib/module/services/linkedinScrapingService.js +219 -1
  192. package/lib/module/services/llmDataStorage.js +277 -1
  193. package/lib/module/services/mobileTrainingService.js +173 -1
  194. package/lib/module/services/netflixDataExtractor.js +114 -1
  195. package/lib/module/services/netflixDataService.js +191 -1
  196. package/lib/module/services/pinEncryptionService.js +74 -6
  197. package/lib/module/services/pinStorageUtils.js +93 -1
  198. package/lib/module/services/platformAuthService.js +1461 -1
  199. package/lib/module/services/sephoraDataExtractor.js +134 -1
  200. package/lib/module/services/sephoraDataService.js +193 -1
  201. package/lib/module/services/spotifyDataExtractor.js +142 -1
  202. package/lib/module/services/spotifyDataService.js +234 -1
  203. package/lib/module/services/storageService.js +383 -1
  204. package/lib/module/services/telegramDataExtractor.js +109 -1
  205. package/lib/module/services/telegramDataService.js +493 -1
  206. package/lib/module/services/trainingApiHelpers.js +67 -1
  207. package/lib/module/services/userConnectionsService.js +329 -1
  208. package/lib/module/services/youtubeMigrationService.js +405 -1
  209. package/lib/module/theme/index.js +245 -1
  210. package/lib/module/types.js +10 -1
  211. package/lib/module/utils/Portal.js +90 -1
  212. package/lib/module/utils/api.js +118 -1
  213. package/lib/module/utils/assetRegistry.js +200 -34
  214. package/lib/module/utils/auth.js +100 -1
  215. package/lib/module/utils/connectorTests.js +600 -27
  216. package/lib/module/utils/crypto.js +54 -1
  217. package/lib/module/utils/debugHelper.js +54 -1
  218. package/lib/module/utils/encryption.js +67 -1
  219. package/lib/module/utils/eventUtils.js +270 -1
  220. package/lib/module/utils/haptics.js +59 -8
  221. package/lib/module/utils/imagePreloader.js +3 -1
  222. package/lib/module/utils/networkDiagnostics.js +217 -1
  223. package/lib/module/utils/onairosApi.js +333 -1
  224. package/lib/module/utils/programmaticFlow.js +111 -1
  225. package/lib/module/utils/retryHelper.js +211 -1
  226. package/lib/module/utils/secureStorage.js +330 -6
  227. package/lib/module/utils/webviewScripts/chatgpt.js +545 -1
  228. package/lib/module/utils/webviewScripts/claude.js +370 -1
  229. package/lib/module/utils/webviewScripts/hinge.js +405 -1
  230. package/lib/module/utils/webviewScripts/index.js +434 -1
  231. package/lib/module/utils/webviewScripts/instagram.js +448 -1
  232. package/lib/module/utils/webviewScripts/linkedin.js +874 -1
  233. package/lib/module/utils/webviewScripts/netflix.js +376 -1
  234. package/lib/module/utils/webviewScripts/sephora.js +510 -1
  235. package/lib/module/utils/webviewScripts/spotify.js +413 -1
  236. package/lib/module/utils/webviewScripts/telegram.js +672 -1
  237. 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 _0x42fb25={'oCEyZ':function(_0x290ce8,_0x6e8323){return _0x290ce8===_0x6e8323;}};return __DEV__||_0x42fb25['oCEyZ'](process['env'][_0x4df3(0x0)],_0x4df3(0x1));},createMockResponse=_0x59ed1e=>{return Promise[_0x4df3(0x2)]({'data':_0x59ed1e,'status':0xc8,'statusText':'OK','headers':{},'config':{}});},apiInstance=axios['create']({'baseURL':API_ENDPOINTS[_0x4df3(0x3)],'timeout':0x2710,'headers':{'Content-Type':'application/json','Accept':'application/json'}});apiInstance[_0x4df3(0x4)]['response']['use'](_0x120d2a=>_0x120d2a,_0x24a275=>{const _0xd9a352={'RwjEF':function(_0x2bf04b){return _0x2bf04b();},'jYHki':_0x4df3(0x5),'pOGia':function(_0x5a1bd0,_0x1063d6){return _0x5a1bd0(_0x1063d6);}};if(_0xd9a352[_0x4df3(0x6)](isDevelopmentMode))return console[_0x4df3(0x7)](_0xd9a352[_0x4df3(0x8)],_0x24a275),_0xd9a352[_0x4df3(0x9)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});return Promise['reject'](_0x24a275);});function _0x4df3(_0x19785c,_0x4df3d4){_0x19785c=_0x19785c-0x0;const _0x551180=_0x1978();let _0x340166=_0x551180[_0x19785c];return _0x340166;}export const onairosApi={async 'get'(_0x4f3d8c){const _0x54bf8f={'IyCug':function(_0x23f972,_0x24fa9a){return _0x23f972===_0x24fa9a;},'STGHr':'web','XghgY':function(_0x1cdc15){return _0x1cdc15();},'HIdnO':function(_0x3a26cb,_0x24bac7){return _0x3a26cb(_0x24bac7);}};try{if(_0x54bf8f[_0x4df3(0xa)](Platform['OS'],_0x54bf8f['STGHr'])&&_0x54bf8f[_0x4df3(0xb)](isDevelopmentMode))return _0x54bf8f['HIdnO'](createMockResponse,{'success':!![],'data':{'mockData':!![]}});return await apiInstance[_0x4df3(0xc)](_0x4f3d8c);}catch(_0x3d0e01){console['error']('GET\x20'+_0x4f3d8c+_0x4df3(0xd),_0x3d0e01);if(_0x54bf8f[_0x4df3(0xb)](isDevelopmentMode))return _0x54bf8f[_0x4df3(0xe)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});throw _0x3d0e01;}},async 'post'(_0x1f11b3,_0x3a4ec1){const _0x6f16ca={'qLZIy':'Mock\x20verification\x20code\x20sent','RMnUU':_0x4df3(0xf),'NndlX':'xOnrw','XBwHJ':function(_0x586e96,_0x126018){return _0x586e96===_0x126018;},'jgWlR':function(_0x4fc33e){return _0x4fc33e();},'jwLME':function(_0x1124d3,_0x2c01e4){return _0x1124d3(_0x2c01e4);}};try{if(_0x6f16ca[_0x4df3(0x10)]!==_0x6f16ca[_0x4df3(0x11)]){if(_0x6f16ca[_0x4df3(0x12)](Platform['OS'],'web')&&_0x6f16ca['jgWlR'](isDevelopmentMode))return _0x6f16ca[_0x4df3(0x13)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});return await apiInstance[_0x4df3(0x14)](_0x1f11b3,_0x3a4ec1);}else return{'success':!![],'message':_0x6f16ca['qLZIy']};}catch(_0x472a17){console[_0x4df3(0x15)](_0x4df3(0x16)+_0x1f11b3+_0x4df3(0xd),_0x472a17);if(_0x6f16ca['jgWlR'](isDevelopmentMode))return _0x6f16ca[_0x4df3(0x13)](createMockResponse,{'success':!![],'data':{'mockData':!![]}});throw _0x472a17;}},async 'validateCredentials'(_0x4cb192){const _0x25499f={'hlEDa':function(_0x5b73ce,_0x2ee76c){return _0x5b73ce===_0x2ee76c;},'PCFpt':_0x4df3(0x17),'MICsu':_0x4df3(0x18),'SNWrO':function(_0x4d50f2,_0x2acd3a){return _0x4d50f2!==_0x2acd3a;},'gMuxq':'EhpqT','GGKdr':'TAGEx','vrmJG':function(_0x4d83dc){return _0x4d83dc();},'PeShv':function(_0x2c8406,_0x56b9fd){return _0x2c8406!==_0x56b9fd;},'MifXh':_0x4df3(0x19),'oQNqS':'Using\x20mock\x20validation\x20for:','OtJRb':'validate','AzGnM':function(_0xbd70f2,_0x375d82){return _0xbd70f2===_0x375d82;},'dktoz':_0x4df3(0x1a)};try{if(_0x25499f[_0x4df3(0x1b)](_0x25499f[_0x4df3(0x1c)],_0x25499f[_0x4df3(0x1d)])){var _0xf64ce8;if(_0x25499f['vrmJG'](isDevelopmentMode))return _0x25499f['PeShv']('AtskJ',_0x25499f['MifXh'])?_0x2a8159[_0x4df3(0x2)]({'data':_0x1005b9,'status':0xc8,'statusText':'OK','headers':{},'config':{}}):(console[_0x4df3(0x1e)](_0x25499f[_0x4df3(0x1f)],_0x4cb192),!![]);const _0x4b0c70=await this['post'](_0x25499f[_0x4df3(0x20)],{'username':_0x4cb192});return((_0xf64ce8=_0x4b0c70[_0x4df3(0x21)])===null||_0x25499f[_0x4df3(0x22)](_0xf64ce8,void 0x0)?void 0x0:_0xf64ce8[_0x4df3(0x23)])||![];}else{_0x48e845[_0x4df3(0x1e)](_0x4df3(0x24),_0x5d4460,_0x4df3(0x25),_0xd4fe2e);if(_0x25499f[_0x4df3(0x26)](_0xd24b1c[_0x4df3(0x27)],0x6)||_0x25499f[_0x4df3(0x26)](_0x5e97f2,_0x25499f['PCFpt']))return{'success':!![],'message':_0x4df3(0x28)};return{'success':![],'message':_0x25499f[_0x4df3(0x29)]};}}catch(_0x302494){return console[_0x4df3(0x15)](_0x25499f[_0x4df3(0x2a)],_0x302494),isDevelopmentMode();}},async 'getUserProfile'(_0x4d1451){const _0x29aadf={'hyilY':'Email\x20verified\x20successfully','VDNXE':function(_0x27e4cd){return _0x27e4cd();},'FZcuv':_0x4df3(0x2b),'hTmeI':'demo_user','YdorA':_0x4df3(0x2c),'BeFLN':_0x4df3(0x2d),'dlBON':_0x4df3(0x2e),'LOSmF':function(_0x32351c,_0x2089b9){return _0x32351c===_0x2089b9;},'fcWbK':function(_0x35cdc6,_0x2359c0){return _0x35cdc6===_0x2359c0;},'OqEEw':function(_0x1b9dc7,_0x2d1978){return _0x1b9dc7!==_0x2d1978;},'OtZGu':_0x4df3(0x2f)};try{var _0x166351;if(_0x29aadf['VDNXE'](isDevelopmentMode))return _0x29aadf['FZcuv']!==_0x29aadf[_0x4df3(0x30)]?{'success':!![],'message':_0x29aadf[_0x4df3(0x31)]}:{'username':_0x29aadf[_0x4df3(0x32)],'platforms':[_0x29aadf['YdorA'],_0x29aadf['BeFLN']],'createdAt':Date['now']()};apiInstance['defaults'][_0x4df3(0x33)][_0x4df3(0x34)]['Authorization']=_0x4df3(0x35)+_0x4d1451;const _0x1e7fe5=await this[_0x4df3(0xc)](_0x29aadf[_0x4df3(0x36)]);return _0x29aadf[_0x4df3(0x37)](_0x166351=_0x1e7fe5[_0x4df3(0x21)],null)||_0x29aadf[_0x4df3(0x38)](_0x166351,void 0x0)?void 0x0:_0x166351[_0x4df3(0x21)];}catch(_0x33c3b4){if(_0x29aadf[_0x4df3(0x39)](_0x29aadf[_0x4df3(0x3a)],_0x29aadf['OtZGu'])){if(_0x29aadf[_0x4df3(0x3b)](_0x196b67))return _0xfe5ff5[_0x4df3(0x7)](_0x4df3(0x5),_0x2f570e),_0xd7d358({'success':!![],'data':{'mockData':!![]}});return _0x2faf49[_0x4df3(0x3c)](_0x40a565);}else{console[_0x4df3(0x15)](_0x4df3(0x3d),_0x33c3b4);if(_0x29aadf['VDNXE'](isDevelopmentMode))return{'username':_0x4df3(0x3e),'platforms':[_0x29aadf[_0x4df3(0x3f)],_0x29aadf['BeFLN']],'createdAt':Date[_0x4df3(0x40)]()};throw _0x33c3b4;}}}};function _0x1978(){const _0x1a3dc3=['NODE_ENV','development','resolve','base','interceptors','API\x20error\x20in\x20development\x20mode,\x20using\x20fallback:','RwjEF','warn','jYHki','pOGia','IyCug','XghgY','get','\x20error:','HIdnO','eCMvU','RMnUU','NndlX','XBwHJ','jwLME','post','error','POST\x20','reviewer','Invalid\x20verification\x20code','AtskJ','Error\x20validating\x20credentials:','SNWrO','gMuxq','GGKdr','log','oQNqS','OtJRb','data','AzGnM','success','Mock:\x20Verifying\x20code\x20for:','code:','hlEDa','length','Email\x20verified\x20successfully','MICsu','dktoz','Vbxjh','instagram','youtube','user/profile','HjEEb','FZcuv','hyilY','hTmeI','headers','common','Bearer\x20','dlBON','LOSmF','fcWbK','OqEEw','OtZGu','VDNXE','reject','Error\x20fetching\x20user\x20profile:','demo_user','YdorA','now','lvVLS','Mock:\x20Sending\x20verification\x20code\x20to:','email/verify','Error\x20sending\x20verification\x20code:','Mock\x20verification\x20code\x20sent','Failed\x20to\x20send\x20verification\x20code','LnLcZ','NWVeT','Verification\x20code\x20sent\x20successfully','cvmsz','bOJWz','fsUdp','caEPy','message','sJjcR','CXRLS','AJPoa','dDnHX','txYBJ','qAGpl','Using\x20mock\x20validation\x20for:','uVhMw','icteY','Email\x20verified','Njzqn','Okbye','woFQR','cvoPE','OGAgl','email/verify/confirm','SpRBO','YsfYl','sTNFJ','Verification\x20failed'];_0x1978=function(){return _0x1a3dc3;};return _0x1978();}export const sendEmailVerificationCode=async _0x1415f6=>{const _0x1208cc={'UGjAF':_0x4df3(0x3e),'elQSQ':_0x4df3(0x2c),'cvmsz':_0x4df3(0x2d),'dDnHX':_0x4df3(0x1a),'xZSyH':function(_0x8e61f6){return _0x8e61f6();},'LnLcZ':_0x4df3(0x41),'NWVeT':_0x4df3(0x42),'bOJWz':_0x4df3(0x43),'fsUdp':function(_0x109402,_0x540684){return _0x109402===_0x540684;},'caEPy':function(_0x1ff381,_0x292458){return _0x1ff381===_0x292458;},'sJjcR':'Verification\x20code\x20sent','CXRLS':function(_0x43efa5,_0x18d7eb){return _0x43efa5!==_0x18d7eb;},'AJPoa':'jXXNd','txYBJ':_0x4df3(0x44),'oZRjz':_0x4df3(0x45),'qAGpl':_0x4df3(0x46)};try{var _0x11cab2;if(isDevelopmentMode())return _0x1208cc[_0x4df3(0x47)]===_0x1208cc[_0x4df3(0x47)]?(console[_0x4df3(0x1e)](_0x1208cc[_0x4df3(0x48)],_0x1415f6),{'success':!![],'message':_0x4df3(0x49)}):{'username':_0x1208cc['UGjAF'],'platforms':[_0x1208cc['elQSQ'],_0x1208cc[_0x4df3(0x4a)]],'createdAt':_0x40447e[_0x4df3(0x40)]()};const _0x1d71b6=await onairosApi[_0x4df3(0x14)](_0x1208cc[_0x4df3(0x4b)],{'email':_0x1415f6});return{'success':!![],'message':(_0x1208cc[_0x4df3(0x4c)](_0x11cab2=_0x1d71b6[_0x4df3(0x21)],null)||_0x1208cc[_0x4df3(0x4d)](_0x11cab2,void 0x0)?void 0x0:_0x11cab2[_0x4df3(0x4e)])||_0x1208cc[_0x4df3(0x4f)]};}catch(_0x2d3c5){if(_0x1208cc[_0x4df3(0x50)](_0x1208cc[_0x4df3(0x51)],_0x1208cc[_0x4df3(0x51)]))return _0x4eec70[_0x4df3(0x15)](_0x1208cc[_0x4df3(0x52)],_0x882844),_0x1208cc['xZSyH'](_0x3e3bd7);else{console[_0x4df3(0x15)](_0x1208cc[_0x4df3(0x53)],_0x2d3c5);if(isDevelopmentMode())return{'success':!![],'message':_0x1208cc['oZRjz']};return{'success':![],'message':_0x1208cc[_0x4df3(0x54)]};}}};export const confirmEmailVerificationCode=async(_0x3cafaa,_0x22739c)=>{const _0x4b52b1={'OGAgl':_0x4df3(0x55),'uslsP':function(_0x3b6293,_0x2dde91){return _0x3b6293(_0x2dde91);},'Okbye':_0x4df3(0x24),'mGLZu':_0x4df3(0x25),'woFQR':_0x4df3(0x17),'TfKLH':function(_0x3f71bd,_0x4c80cc){return _0x3f71bd!==_0x4c80cc;},'cvoPE':_0x4df3(0x56),'iecvp':_0x4df3(0x57),'SpRBO':function(_0x237556,_0x3687a3){return _0x237556===_0x3687a3;},'YsfYl':_0x4df3(0x58),'sTNFJ':_0x4df3(0x59)};try{var _0x39dc9e;if(isDevelopmentMode()){console[_0x4df3(0x1e)](_0x4b52b1[_0x4df3(0x5a)],_0x3cafaa,_0x4b52b1['mGLZu'],_0x22739c);if(_0x22739c['length']===0x6||_0x22739c===_0x4b52b1[_0x4df3(0x5b)])return _0x4b52b1['TfKLH'](_0x4b52b1[_0x4df3(0x5c)],_0x4b52b1['iecvp'])?{'success':!![],'message':_0x4df3(0x28)}:(_0x5a75ec[_0x4df3(0x1e)](_0x4b52b1[_0x4df3(0x5d)],_0x342b63),!![]);return{'success':![],'message':_0x4df3(0x18)};}const _0x41c1b5=await onairosApi[_0x4df3(0x14)](_0x4df3(0x5e),{'email':_0x3cafaa,'code':_0x22739c});return{'success':!![],'message':((_0x39dc9e=_0x41c1b5[_0x4df3(0x21)])===null||_0x4b52b1[_0x4df3(0x5f)](_0x39dc9e,void 0x0)?void 0x0:_0x39dc9e[_0x4df3(0x4e)])||_0x4b52b1[_0x4df3(0x60)]};}catch(_0x3bf3ba){if(_0x4df3(0x59)!==_0x4b52b1[_0x4df3(0x61)])return _0x4b52b1['uslsP'](_0x24521d,{'success':!![],'data':{'mockData':!![]}});else{console[_0x4df3(0x15)]('Error\x20verifying\x20email\x20code:',_0x3bf3ba);if(isDevelopmentMode())return{'success':![],'message':'Invalid\x20verification\x20code'};return{'success':![],'message':_0x4df3(0x62)};}}};
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
- 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:_0xa15470})=>{return React['createElement'](Text,{'style':[styles[_0x3cd4(0x0)],_0xa15470]},children);},styles=StyleSheet[_0x3cd4(0x1)]({'text':{...TEXT_STYLES[_0x3cd4(0x2)],'paddingHorizontal':0x14}});function _0x3cd4(_0x100306,_0x3cd438){_0x100306=_0x100306-0x0;const _0xe877de=_0x1003();let _0x38683c=_0xe877de[_0x100306];return _0x38683c;}function _0x1003(){const _0x3ae8ca=['text','create','body'];_0x1003=function(){return _0x3ae8ca;};return _0x1003();}export{BodyText};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
- function _0x4adb(){const _0x1aa0a2=['qzYuT','createElement','glowWrapper','glowLayer','redGlow','blueGlow','container','onairosLogo','logo','contain','relative','center','absolute','#FF4D6A','select','rgba(255,\x2077,\x20106,\x200.15)','#4D79FF','rgba(77,\x20121,\x20255,\x200.15)','hidden','brandMark'];_0x4adb=function(){return _0x1aa0a2;};return _0x4adb();}import React from'react';import{View,StyleSheet,Image,Platform}from'react-native';import{SHADOWS}from'../theme';import{BRAND_IMAGES}from'../utils/assetRegistry';function _0x2dfa(_0x4adb56,_0x2dfad0){_0x4adb56=_0x4adb56-0x0;const _0x5c706c=_0x4adb();let _0xc5e00e=_0x5c706c[_0x4adb56];return _0xc5e00e;}const BrandMark=({containerSize:containerSize=0x6e,imageSize:imageSize=0x6e,style:_0x1b7985,showGlow:showGlow=!![]})=>{const _0x16f370={'qzYuT':function(_0x19d09c,_0x5d4147){return _0x19d09c*_0x5d4147;}},_0x4a7c65=_0x16f370[_0x2dfa(0x0)](containerSize,0.2);return React[_0x2dfa(0x1)](View,{'style':[styles[_0x2dfa(0x2)],_0x1b7985]},showGlow&&React['createElement'](View,{'style':[styles[_0x2dfa(0x3)],styles[_0x2dfa(0x4)],{'width':containerSize,'height':containerSize,'borderRadius':_0x4a7c65}]}),showGlow&&React['createElement'](View,{'style':[styles[_0x2dfa(0x3)],styles[_0x2dfa(0x5)],{'width':containerSize,'height':containerSize,'borderRadius':_0x4a7c65}]}),React[_0x2dfa(0x1)](View,{'style':[styles[_0x2dfa(0x6)],{'width':containerSize,'height':containerSize,'borderRadius':_0x4a7c65}]},React['createElement'](Image,{'source':BRAND_IMAGES[_0x2dfa(0x7)],'style':[styles[_0x2dfa(0x8)],{'width':imageSize,'height':imageSize,'transform':[{'translateY':-0x1},{'translateX':-0x4}]}],'resizeMode':_0x2dfa(0x9)})));},styles=StyleSheet['create']({'glowWrapper':{'position':_0x2dfa(0xa),'alignItems':_0x2dfa(0xb),'justifyContent':'center'},'glowLayer':{'position':_0x2dfa(0xc),'backgroundColor':'transparent'},'redGlow':{'shadowColor':_0x2dfa(0xd),'shadowOffset':{'width':0x8,'height':0x8},'shadowOpacity':0.5,'shadowRadius':0x14,'elevation':0x8,...Platform[_0x2dfa(0xe)]({'android':{'backgroundColor':_0x2dfa(0xf)}})},'blueGlow':{'shadowColor':_0x2dfa(0x10),'shadowOffset':{'width':-0x8,'height':-0x8},'shadowOpacity':0.5,'shadowRadius':0x14,'elevation':0x8,...Platform[_0x2dfa(0xe)]({'android':{'backgroundColor':_0x2dfa(0x11)}})},'container':{'backgroundColor':'#FFFFFF','justifyContent':_0x2dfa(0xb),'alignItems':_0x2dfa(0xb),'overflow':_0x2dfa(0x12),...SHADOWS[_0x2dfa(0x13)]},'logo':{}});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,113 @@
1
- import React,{useRef,useState,useEffect}from'react';import{View,TextInput,StyleSheet,Pressable,Keyboard}from'react-native';import{COLORS}from'../theme';function _0x4e47(_0x54f3d3,_0x4e4718){_0x54f3d3=_0x54f3d3-0x0;const _0xebc83=_0x54f3();let _0x30651d=_0xebc83[_0x54f3d3];return _0x30651d;}const CodeInput=({length:length=0x6,onCodeChange:_0x44ddba,onCodeComplete:_0xe004f3})=>{const _0x950e64={'wHwFM':function(_0x4bdc48,_0x480f66){return _0x4bdc48===_0x480f66;},'ccfcg':'AXjBa','dyNrh':function(_0x350860,_0x3dec06){return _0x350860===_0x3dec06;},'nRlZe':function(_0x570ae4,_0x24d310){return _0x570ae4<_0x24d310;},'uMiCp':function(_0xa00bcf,_0x5a1343){return _0xa00bcf!==_0x5a1343;},'TuyBf':_0x4e47(0x0),'NfNny':function(_0x2a87ff,_0x4c1404){return _0x2a87ff<_0x4c1404;},'xGisy':function(_0x5b8e83,_0x42db4b){return _0x5b8e83(_0x42db4b);},'jVuqe':function(_0xac1ca8,_0x4ba320){return _0xac1ca8(_0x4ba320);},'sOotd':function(_0x5ad5f4,_0x2ea520){return _0x5ad5f4===_0x2ea520;},'Ilvtb':function(_0x3e7507,_0x165138){return _0x3e7507(_0x165138);},'HoyNI':function(_0x4ad91d,_0xcb5032){return _0x4ad91d(_0xcb5032);},'XFDiy':function(_0x3210a7,_0x4dacf8){return _0x3210a7===_0x4dacf8;},'PXqzo':function(_0x496374,_0x390461){return _0x496374(_0x390461);},'KyEri':function(_0x2cf8cc,_0x217335){return _0x2cf8cc(_0x217335);},'kDfYl':function(_0xad8336,_0x51ac72){return _0xad8336(_0x51ac72);},'uVxCL':function(_0x59a455,_0x292869){return _0x59a455(_0x292869);},'AHpLq':function(_0x5c4b15,_0x1c4671,_0x538230){return _0x5c4b15(_0x1c4671,_0x538230);},'JKBwy':_0x4e47(0x1),'QoeMO':_0x4e47(0x2),'EKayW':'oneTimeCode','azhCh':function(_0xe87a3a,_0x4ad01f){return _0xe87a3a(_0x4ad01f);}},[_0x1a7819,_0x586020]=_0x950e64[_0x4e47(0x3)](useState,Array(length)['fill']('')),[_0x2d5c07,_0x278dbe]=_0x950e64[_0x4e47(0x4)](useState,0x0),_0x3e87a9=_0x950e64[_0x4e47(0x5)](useRef,[]),_0x4dfc44=_0x950e64[_0x4e47(0x6)](useRef,null);_0x950e64['AHpLq'](useEffect,()=>{const _0x3e1963={'WvwYc':function(_0x55ea26,_0x47b92d){return _0x55ea26===_0x47b92d;},'yuqTF':function(_0x16376f,_0x1b25c2){return _0x950e64[_0x4e47(0x7)](_0x16376f,_0x1b25c2);},'aYDSg':function(_0x368abb,_0x1ef8b8){return _0x368abb(_0x1ef8b8);},'xWGCm':function(_0x454186,_0x2959d5){return _0x950e64['dyNrh'](_0x454186,_0x2959d5);}};if(_0x950e64[_0x4e47(0x8)]('MYSha',_0x950e64[_0x4e47(0x9)])){var _0x5deaeb;_0x3e1963[_0x4e47(0xa)](_0x5deaeb=_0x24d7fd[_0x4e47(0xb)],null)||_0x5deaeb===void 0x0||_0x5deaeb[_0x4e47(0xc)]();}else setTimeout(()=>{if(_0x950e64[_0x4e47(0xd)](_0x950e64[_0x4e47(0xe)],_0x950e64[_0x4e47(0xe)])){var _0x3a61aa;_0x950e64[_0x4e47(0xf)](_0x3a61aa=_0x4dfc44['current'],null)||_0x950e64[_0x4e47(0xd)](_0x3a61aa,void 0x0)||_0x3a61aa[_0x4e47(0xc)]();}else{const _0x1dd1df=_0x505592[_0x4e47(0x10)](/[^0-9]/g,''),_0x18d7f5=_0x1dd1df[_0x4e47(0x11)](0x0,_0xf02524)[_0x4e47(0x12)]('');while(_0x3e1963[_0x4e47(0x13)](_0x18d7f5[_0x4e47(0x14)],_0x1efd58)){_0x18d7f5[_0x4e47(0x15)]('');}_0x37af39(_0x18d7f5),_0x3e1963[_0x4e47(0x16)](_0x4204d7,_0x15e025['min'](_0x1dd1df['length'],_0x3305d1-0x1));const _0x11bde2=_0x18d7f5[_0x4e47(0x17)]('');_0x197b3d===null||_0x1ec467===void 0x0||_0x3e1963[_0x4e47(0x16)](_0xde48bf,_0x11bde2),_0x3e1963['WvwYc'](_0x1dd1df['length'],_0x27e122)&&(_0x3e1963[_0x4e47(0xa)](_0x1d38a,null)||_0x3e1963[_0x4e47(0x18)](_0x11e90a,void 0x0)||_0x197cfe(_0x11bde2),_0x56c5cb[_0x4e47(0x19)]());}},0x64);},[]);const _0x24bf54=_0x33f8f1=>{const _0x58f2c9=_0x33f8f1[_0x4e47(0x10)](/[^0-9]/g,''),_0x4390d0=_0x58f2c9[_0x4e47(0x11)](0x0,length)[_0x4e47(0x12)]('');while(_0x950e64[_0x4e47(0x1a)](_0x4390d0[_0x4e47(0x14)],length)){_0x4390d0['push']('');}_0x950e64['xGisy'](_0x586020,_0x4390d0),_0x950e64[_0x4e47(0x1b)](_0x278dbe,Math[_0x4e47(0x1c)](_0x58f2c9['length'],length-0x1));const _0x540fc8=_0x4390d0[_0x4e47(0x17)]('');_0x950e64[_0x4e47(0x1d)](_0x44ddba,null)||_0x44ddba===void 0x0||_0x950e64[_0x4e47(0x1e)](_0x44ddba,_0x540fc8),_0x950e64[_0x4e47(0x1d)](_0x58f2c9['length'],length)&&(_0xe004f3===null||_0xe004f3===void 0x0||_0x950e64[_0x4e47(0x1f)](_0xe004f3,_0x540fc8),Keyboard['dismiss']());},_0x44cd7c=()=>{var _0x375ab7;_0x950e64['XFDiy'](_0x375ab7=_0x4dfc44[_0x4e47(0xb)],null)||_0x950e64[_0x4e47(0xd)](_0x375ab7,void 0x0)||_0x375ab7[_0x4e47(0xc)]();};return React['createElement'](View,{'style':styles['container']},React[_0x4e47(0x20)](TextInput,{'ref':_0x4dfc44,'style':styles[_0x4e47(0x21)],'value':_0x1a7819['join'](''),'onChangeText':_0x24bf54,'keyboardType':_0x950e64[_0x4e47(0x22)],'maxLength':length,'autoComplete':_0x950e64[_0x4e47(0x23)],'textContentType':_0x950e64[_0x4e47(0x24)],'caretHidden':!![]}),React[_0x4e47(0x20)](Pressable,{'style':styles[_0x4e47(0x25)],'onPress':_0x44cd7c},_0x950e64[_0x4e47(0x26)](Array,length)[_0x4e47(0x27)](0x0)[_0x4e47(0x28)]((_0x1bb93c,_0x481839)=>React['createElement'](View,{'key':_0x481839,'style':[styles[_0x4e47(0x29)],_0x1a7819[_0x481839]?styles['boxFilled']:null,_0x2d5c07===_0x481839&&!_0x1a7819[_0x481839]?styles[_0x4e47(0x2a)]:null]},React['createElement'](TextInput,{'style':styles['boxText'],'value':_0x1a7819[_0x481839],'editable':![],'pointerEvents':_0x4e47(0x2b)})))));},styles=StyleSheet[_0x4e47(0x2c)]({'container':{'width':'100%'},'hiddenInput':{'position':_0x4e47(0x2d),'opacity':0x0,'height':0x0,'width':0x0},'boxesContainer':{'flexDirection':'row','justifyContent':_0x4e47(0x2e),'width':_0x4e47(0x2f)},'box':{'width':0x30,'height':0x38,'borderWidth':1.5,'borderColor':_0x4e47(0x30),'borderRadius':0xc,'justifyContent':_0x4e47(0x31),'alignItems':_0x4e47(0x31),'backgroundColor':_0x4e47(0x32)},'boxFilled':{'borderColor':COLORS[_0x4e47(0x33)],'backgroundColor':_0x4e47(0x34)},'boxFocused':{'borderColor':_0x4e47(0x35),'borderWidth':0x2},'boxText':{'fontSize':0x18,'fontWeight':'600','color':COLORS[_0x4e47(0x36)],'textAlign':_0x4e47(0x31)}});export{CodeInput};function _0x54f3(){const _0x52712e=['MYSha','number-pad','sms-otp','PXqzo','KyEri','kDfYl','uVxCL','nRlZe','uMiCp','TuyBf','WvwYc','current','focus','wHwFM','ccfcg','dyNrh','replace','slice','split','yuqTF','length','push','aYDSg','join','xWGCm','dismiss','NfNny','jVuqe','min','sOotd','Ilvtb','HoyNI','createElement','hiddenInput','JKBwy','QoeMO','EKayW','boxesContainer','azhCh','fill','map','box','boxFocused','none','create','absolute','space-between','100%','#E0E0E0','center','#FAFAFA','grey600','#FFFFFF','#D4A536','grey800'];_0x54f3=function(){return _0x52712e;};return _0x54f3();}export default CodeInput;
1
+ import React, { useRef, useState, useEffect } from 'react';
2
+ import { View, TextInput, StyleSheet, 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(View, {
45
+ style: styles.boxesContainer
46
+ }, Array(length).fill(0).map((_, index) => /*#__PURE__*/React.createElement(View, {
47
+ key: index,
48
+ style: [styles.box, code[index] ? styles.boxFilled : null, focusedIndex === index && !code[index] ? styles.boxFocused : null]
49
+ }, /*#__PURE__*/React.createElement(TextInput, {
50
+ style: styles.boxText,
51
+ value: code[index],
52
+ editable: false,
53
+ pointerEvents: "none"
54
+ })))), /*#__PURE__*/React.createElement(TextInput, {
55
+ ref: hiddenInputRef,
56
+ style: styles.hiddenInput,
57
+ value: code.join(''),
58
+ onChangeText: handleHiddenInputChange,
59
+ keyboardType: "number-pad",
60
+ maxLength: length,
61
+ autoComplete: "sms-otp",
62
+ textContentType: "oneTimeCode",
63
+ caretHidden: true,
64
+ selectionColor: "transparent"
65
+ }));
66
+ };
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ width: '100%'
70
+ },
71
+ hiddenInput: {
72
+ position: 'absolute',
73
+ top: 0,
74
+ left: 0,
75
+ right: 0,
76
+ bottom: 0,
77
+ color: 'transparent',
78
+ backgroundColor: 'transparent',
79
+ fontSize: 1
80
+ },
81
+ boxesContainer: {
82
+ flexDirection: 'row',
83
+ justifyContent: 'space-between',
84
+ width: '100%'
85
+ },
86
+ box: {
87
+ width: 48,
88
+ height: 56,
89
+ borderWidth: 1.5,
90
+ borderColor: '#E0E0E0',
91
+ borderRadius: 12,
92
+ justifyContent: 'center',
93
+ alignItems: 'center',
94
+ backgroundColor: '#FAFAFA'
95
+ },
96
+ boxFilled: {
97
+ borderColor: COLORS.grey600,
98
+ backgroundColor: '#FFFFFF'
99
+ },
100
+ boxFocused: {
101
+ borderColor: '#D4A536',
102
+ borderWidth: 2
103
+ },
104
+ boxText: {
105
+ fontSize: 24,
106
+ fontWeight: '600',
107
+ color: COLORS.grey800,
108
+ textAlign: 'center'
109
+ }
110
+ });
111
+ export { CodeInput };
112
+ export default CodeInput;
113
+ //# sourceMappingURL=CodeInput.js.map
@@ -1 +1,23 @@
1
- function _0x30e8(){var _0x179735=['AUtKa','hasOwnProperty','call','apply','email-address','email','ZmSeD','none','pYomU','input','style','create'];_0x30e8=function(){return _0x179735;};return _0x30e8();}function _extends(){var _0x5ac7cd={'AUtKa':function(_0x24d79d,_0x10eb40){return _0x24d79d<_0x10eb40;}};return _extends=Object['assign']?Object['assign']['bind']():function(_0x383e4d){for(var _0x324834=0x1;_0x5ac7cd[_0x1800(0x0)](_0x324834,arguments['length']);_0x324834++){var _0x4ffb7c=arguments[_0x324834];for(var _0x63fda5 in _0x4ffb7c)({}[_0x1800(0x1)][_0x1800(0x2)](_0x4ffb7c,_0x63fda5)&&(_0x383e4d[_0x63fda5]=_0x4ffb7c[_0x63fda5]));}return _0x383e4d;},_extends[_0x1800(0x3)](null,arguments);}import React from'react';function _0x1800(_0x30e8ec,_0x1800c2){_0x30e8ec=_0x30e8ec-0x0;var _0x3fb51e=_0x30e8();var _0x5c3aff=_0x3fb51e[_0x30e8ec];return _0x5c3aff;}import{TextInput,StyleSheet}from'react-native';const EmailInput=_0x3bf820=>{var _0x5aecaa={'ZmSeD':_0x1800(0x4),'pYomU':_0x1800(0x5)};return React['createElement'](TextInput,_extends({},_0x3bf820,{'keyboardType':_0x5aecaa[_0x1800(0x6)],'autoCapitalize':_0x1800(0x7),'autoComplete':_0x5aecaa[_0x1800(0x8)],'style':[styles[_0x1800(0x9)],_0x3bf820[_0x1800(0xa)]]}));},styles=StyleSheet[_0x1800(0xb)]({'input':{'borderWidth':0x1,'borderColor':'#E0E0E0','borderRadius':0x8,'padding':0xc,'fontSize':0x10}});export{EmailInput};export default EmailInput;
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';import{TouchableOpacity,Text,Image,StyleSheet}from'react-native';import{BRAND_IMAGES}from'../utils/assetRegistry';const GoogleButton=({onPress:_0x29096a,style:_0x3a270e,disabled:disabled=![]})=>{const _0x1b7a1e={'VAlAr':_0xb889(0x0)};return React['createElement'](TouchableOpacity,{'style':[styles[_0xb889(0x1)],_0x3a270e,disabled&&styles[_0xb889(0x2)]],'onPress':_0x29096a,'disabled':disabled},React[_0xb889(0x3)](Image,{'source':BRAND_IMAGES[_0xb889(0x4)],'style':styles[_0xb889(0x5)],'resizeMode':_0xb889(0x6)}),React['createElement'](Text,{'style':styles['text']},_0x1b7a1e[_0xb889(0x7)]));},styles=StyleSheet[_0xb889(0x8)]({'button':{'flexDirection':_0xb889(0x9),'alignItems':'center','justifyContent':'center','backgroundColor':_0xb889(0xa),'borderWidth':0x1,'borderColor':_0xb889(0xb),'borderRadius':0x8,'paddingVertical':0xc,'paddingHorizontal':0x10},'disabled':{'opacity':0.5},'icon':{'width':0x14,'height':0x14,'marginRight':0x8},'text':{'fontSize':0x10,'fontWeight':'500','color':_0xb889(0xc)}});function _0x4b36(){const _0x317bf7=['Continue\x20with\x20Google','button','disabled','createElement','googleLogo','icon','contain','VAlAr','create','row','#FFFFFF','#E0E0E0','#333333'];_0x4b36=function(){return _0x317bf7;};return _0x4b36();}function _0xb889(_0x4b3613,_0xb889d0){_0x4b3613=_0x4b3613-0x0;const _0x2a2a48=_0x4b36();let _0x1293aa=_0x2a2a48[_0x4b3613];return _0x1293aa;}export{GoogleButton};export default GoogleButton;
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';function _0x3569(_0x1db241,_0x356922){_0x1db241=_0x1db241-0x0;const _0x1b1e41=_0x1db2();let _0x33e63c=_0x1b1e41[_0x1db241];return _0x33e63c;}import{TEXT_STYLES}from'../theme';function _0x1db2(){const _0x4ec79a=['Onairos','createElement','container','kicker','create','center','IBM\x20Plex\x20Sans','700','welcomeTitle'];_0x1db2=function(){return _0x4ec79a;};return _0x1db2();}const HeadingGroup=({kicker:kicker='Welcome\x20to',title:title=_0x3569(0x0),style:_0x4f4f87})=>{return React[_0x3569(0x1)](View,{'style':[styles[_0x3569(0x2)],_0x4f4f87]},React[_0x3569(0x1)](Text,{'style':styles[_0x3569(0x3)]},kicker),React[_0x3569(0x1)](Text,{'style':styles['title']},title));},styles=StyleSheet[_0x3569(0x4)]({'container':{'alignItems':_0x3569(0x5)},'kicker':{...TEXT_STYLES[_0x3569(0x3)],'fontFamily':_0x3569(0x6),'fontWeight':_0x3569(0x7),'marginBottom':0x4},'title':{...TEXT_STYLES[_0x3569(0x8)],'fontFamily':_0x3569(0x6),'fontWeight':_0x3569(0x7)}});export{HeadingGroup};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