@onairos/react-native 3.1.18 → 3.2.1
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.
- package/README.md +374 -403
- package/lib/commonjs/api/index.js +1 -75
- package/lib/commonjs/api/index.js.map +1 -1
- package/lib/commonjs/assets/images/email.png +0 -0
- package/lib/commonjs/assets/images/linkedin.png +0 -0
- package/lib/commonjs/assets/images/reddit.png +0 -0
- package/lib/commonjs/assets/images/youtube.png +0 -0
- package/lib/commonjs/components/DataRequestModal.js.map +1 -1
- package/lib/commonjs/components/DataRequestScreen.js.map +1 -1
- package/lib/commonjs/components/EmailVerificationModal.js.map +1 -1
- package/lib/commonjs/components/Onairos.js +3 -1
- package/lib/commonjs/components/Onairos.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +190 -171
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/components/Overlay.js +5 -5
- package/lib/commonjs/components/Overlay.js.map +1 -1
- package/lib/commonjs/components/PinInput.js +120 -282
- package/lib/commonjs/components/PinInput.js.map +1 -1
- package/lib/commonjs/components/PlatformList.js.map +1 -1
- package/lib/commonjs/components/TrainingModal.js +563 -808
- package/lib/commonjs/components/TrainingModal.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +1296 -2302
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.tsx.new +455 -0
- package/lib/commonjs/components/onboarding/OAuthWebView.js +743 -134
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/components/onboarding/OnboardingHeader.js.map +1 -1
- package/lib/commonjs/components/onboarding/PinInput.js.map +1 -1
- package/lib/commonjs/components/onboarding/PlatformConnector.js.map +1 -1
- package/lib/commonjs/components/screens/ConnectorScreen.js.map +1 -1
- package/lib/commonjs/components/screens/LoadingScreen.js.map +1 -1
- package/lib/commonjs/components/screens/PinCreationScreen.js.map +1 -1
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useConnections.js +125 -120
- package/lib/commonjs/hooks/useConnections.js.map +1 -1
- package/lib/commonjs/hooks/useCredentials.js.map +1 -1
- package/lib/commonjs/index.js +27 -157
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/lib/commonjs/services/apiKeyService.js +106 -105
- package/lib/commonjs/services/apiKeyService.js.map +1 -1
- package/lib/commonjs/services/oauthService.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +722 -956
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/commonjs/types/ambient.d.js.map +1 -1
- package/lib/commonjs/types/declarations.d.js.map +1 -1
- package/lib/commonjs/types/index.d.js.map +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/types/node-fix.d.js.map +1 -1
- package/lib/commonjs/types/node-override.d.js.map +1 -1
- package/lib/commonjs/types/opacity.d.js.map +1 -1
- package/lib/commonjs/types/types.d.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/Portal.js +4 -4
- package/lib/commonjs/utils/Portal.js.map +1 -1
- package/lib/commonjs/utils/api.js +24 -24
- package/lib/commonjs/utils/api.js.map +1 -1
- package/lib/commonjs/utils/auth.js +18 -18
- package/lib/commonjs/utils/auth.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +13 -13
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/debugHelper.js.map +1 -1
- package/lib/commonjs/utils/encryption.js +12 -12
- package/lib/commonjs/utils/encryption.js.map +1 -1
- package/lib/commonjs/utils/onairosApi.js.map +1 -1
- package/lib/commonjs/utils/programmaticFlow.js +16 -16
- package/lib/commonjs/utils/programmaticFlow.js.map +1 -1
- package/lib/commonjs/utils/retryHelper.js +27 -27
- package/lib/commonjs/utils/retryHelper.js.map +1 -1
- package/lib/commonjs/utils/secureStorage.js.map +1 -1
- package/lib/module/api/index.js +0 -72
- package/lib/module/api/index.js.map +1 -1
- package/lib/module/assets/images/email.png +0 -0
- package/lib/module/assets/images/linkedin.png +0 -0
- package/lib/module/assets/images/reddit.png +0 -0
- package/lib/module/assets/images/youtube.png +0 -0
- package/lib/module/components/DataRequestModal.js.map +1 -1
- package/lib/module/components/DataRequestScreen.js.map +1 -1
- package/lib/module/components/EmailVerificationModal.js.map +1 -1
- package/lib/module/components/Onairos.js +3 -1
- package/lib/module/components/Onairos.js.map +1 -1
- package/lib/module/components/OnairosButton.js +192 -172
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/components/Overlay.js +5 -5
- package/lib/module/components/Overlay.js.map +1 -1
- package/lib/module/components/PinInput.js +120 -283
- package/lib/module/components/PinInput.js.map +1 -1
- package/lib/module/components/PlatformList.js.map +1 -1
- package/lib/module/components/TrainingModal.js +565 -809
- package/lib/module/components/TrainingModal.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +1297 -2305
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.tsx.new +455 -0
- package/lib/module/components/onboarding/OAuthWebView.js +744 -136
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/components/onboarding/OnboardingHeader.js.map +1 -1
- package/lib/module/components/onboarding/PinInput.js.map +1 -1
- package/lib/module/components/onboarding/PlatformConnector.js.map +1 -1
- package/lib/module/components/screens/ConnectorScreen.js.map +1 -1
- package/lib/module/components/screens/LoadingScreen.js.map +1 -1
- package/lib/module/components/screens/PinCreationScreen.js.map +1 -1
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/hooks/useConnections.js +125 -119
- package/lib/module/hooks/useConnections.js.map +1 -1
- package/lib/module/hooks/useCredentials.js.map +1 -1
- package/lib/module/index.js +17 -55
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/lib/module/services/apiKeyService.js +106 -105
- package/lib/module/services/apiKeyService.js.map +1 -1
- package/lib/module/services/oauthService.js.map +1 -1
- package/lib/module/services/platformAuthService.js +704 -943
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/module/types/ambient.d.js.map +1 -1
- package/lib/module/types/declarations.d.js.map +1 -1
- package/lib/module/types/index.d.js.map +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/types/node-fix.d.js.map +1 -1
- package/lib/module/types/node-override.d.js.map +1 -1
- package/lib/module/types/opacity.d.js.map +1 -1
- package/lib/module/types/types.d.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/Portal.js +4 -4
- package/lib/module/utils/Portal.js.map +1 -1
- package/lib/module/utils/api.js +24 -24
- package/lib/module/utils/api.js.map +1 -1
- package/lib/module/utils/auth.js +18 -18
- package/lib/module/utils/auth.js.map +1 -1
- package/lib/module/utils/crypto.js +13 -13
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/debugHelper.js.map +1 -1
- package/lib/module/utils/encryption.js +12 -12
- package/lib/module/utils/encryption.js.map +1 -1
- package/lib/module/utils/onairosApi.js.map +1 -1
- package/lib/module/utils/programmaticFlow.js +16 -16
- package/lib/module/utils/programmaticFlow.js.map +1 -1
- package/lib/module/utils/retryHelper.js +27 -27
- package/lib/module/utils/retryHelper.js.map +1 -1
- package/lib/module/utils/secureStorage.js.map +1 -1
- package/lib/typescript/api/index.d.ts +7 -15
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/components/DataRequestModal.d.ts +10 -10
- package/lib/typescript/components/DataRequestScreen.d.ts +10 -10
- package/lib/typescript/components/EmailVerificationModal.d.ts +10 -10
- package/lib/typescript/components/Onairos.d.ts +3 -3
- package/lib/typescript/components/Onairos.d.ts.map +1 -1
- package/lib/typescript/components/OnairosButton.d.ts +11 -36
- package/lib/typescript/components/OnairosButton.d.ts.map +1 -1
- package/lib/typescript/components/Overlay.d.ts +3 -3
- package/lib/typescript/components/PinInput.d.ts +3 -13
- package/lib/typescript/components/PinInput.d.ts.map +1 -1
- package/lib/typescript/components/PlatformList.d.ts +3 -3
- package/lib/typescript/components/TrainingModal.d.ts +3 -14
- package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts +3 -16
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts +9 -9
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OnboardingHeader.d.ts +10 -10
- package/lib/typescript/components/onboarding/PinInput.d.ts +3 -3
- package/lib/typescript/components/onboarding/PlatformConnector.d.ts +12 -12
- package/lib/typescript/components/screens/ConnectorScreen.d.ts +8 -8
- package/lib/typescript/components/screens/LoadingScreen.d.ts +8 -8
- package/lib/typescript/components/screens/PinCreationScreen.d.ts +9 -9
- package/lib/typescript/constants/index.d.ts +52 -52
- package/lib/typescript/hooks/useConnections.d.ts +8 -13
- package/lib/typescript/hooks/useConnections.d.ts.map +1 -1
- package/lib/typescript/hooks/useCredentials.d.ts +8 -8
- package/lib/typescript/index.d.ts +17 -38
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiKeyService.d.ts +131 -131
- package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
- package/lib/typescript/services/oauthService.d.ts +49 -49
- package/lib/typescript/services/platformAuthService.d.ts +143 -68
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +228 -264
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +268 -266
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/Portal.d.ts +13 -13
- package/lib/typescript/utils/api.d.ts +5 -5
- package/lib/typescript/utils/auth.d.ts +5 -5
- package/lib/typescript/utils/crypto.d.ts +3 -3
- package/lib/typescript/utils/debugHelper.d.ts +28 -28
- package/lib/typescript/utils/encryption.d.ts +18 -18
- package/lib/typescript/utils/onairosApi.d.ts +86 -86
- package/lib/typescript/utils/programmaticFlow.d.ts +22 -22
- package/lib/typescript/utils/retryHelper.d.ts +68 -68
- package/lib/typescript/utils/secureStorage.d.ts +93 -93
- package/package.json +149 -145
- package/src/api/index.ts +110 -151
- package/src/assets/images/email.png +0 -0
- package/src/assets/images/linkedin.png +0 -0
- package/src/assets/images/reddit.png +0 -0
- package/src/assets/images/youtube.png +0 -0
- package/src/components/DataRequestScreen.tsx +355 -355
- package/src/components/EmailVerificationModal.tsx +363 -363
- package/src/components/Onairos.tsx +424 -422
- package/src/components/OnairosButton.tsx +359 -339
- package/src/components/Overlay.tsx +506 -506
- package/src/components/PinInput.tsx +343 -555
- package/src/components/PlatformList.tsx +144 -144
- package/src/components/TrainingModal.tsx +737 -1047
- package/src/components/UniversalOnboarding.tsx +1839 -2888
- package/src/components/UniversalOnboarding.tsx.new +455 -0
- package/src/components/onboarding/OAuthWebView.tsx +838 -232
- package/src/hooks/useConnections.ts +163 -161
- package/src/hooks/useCredentials.ts +174 -174
- package/src/index.js +14 -14
- package/src/index.ts +49 -99
- package/src/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/src/services/apiKeyService.ts +921 -919
- package/src/services/platformAuthService.ts +1113 -1346
- package/src/types/ambient.d.ts +28 -28
- package/src/types/index.ts +241 -265
- package/src/types/node-fix.d.ts +18 -18
- package/src/types/node-override.d.ts +23 -23
- package/src/types/opacity.d.ts +15 -15
- package/src/types/types.d.ts +17 -17
- package/src/types.ts +6 -4
- package/src/utils/Portal.tsx +82 -82
- package/src/utils/api.js +111 -111
- package/src/utils/auth.js +103 -103
- package/src/utils/crypto.js +59 -59
- package/src/utils/encryption.ts +68 -68
- package/src/utils/programmaticFlow.ts +112 -112
- package/src/utils/retryHelper.ts +274 -274
- package/types/index.d.ts +213 -213
- package/types/node-env.d.ts +14 -14
- package/lib/commonjs/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/lib/commonjs/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/lib/commonjs/assets/icons/Facebookicon.png +0 -0
- package/lib/commonjs/assets/icons/Gmail.png +0 -0
- package/lib/commonjs/assets/icons/Linkedinicon.png +0 -0
- package/lib/commonjs/assets/icons/Redditicon.png +0 -0
- package/lib/commonjs/assets/icons/YouTubeicon2.png +0 -0
- package/lib/commonjs/assets/icons/YouTubeicon3.png +0 -0
- package/lib/commonjs/assets/icons/farcaster.png +0 -0
- package/lib/commonjs/assets/icons/instagram.png +0 -0
- package/lib/commonjs/assets/icons/pinterest.png +0 -0
- package/lib/commonjs/assets/icons/swerv_logo.png +0 -0
- package/lib/commonjs/assets/icons/twitter.jpg +0 -0
- package/lib/commonjs/assets/images/Checkbox.svg +0 -3
- package/lib/commonjs/assets/images/EnochE.svg +0 -19
- package/lib/commonjs/assets/images/Enochicon1.png +0 -0
- package/lib/commonjs/assets/images/Face_ID_logo.png +0 -0
- package/lib/commonjs/assets/images/Facebookicon.png +0 -0
- package/lib/commonjs/assets/images/Gmail.png +0 -0
- package/lib/commonjs/assets/images/Googlelogo.png +0 -0
- package/lib/commonjs/assets/images/Linkedinicon.png +0 -0
- package/lib/commonjs/assets/images/Onairoslogo.png +0 -0
- package/lib/commonjs/assets/images/Personalityprofile.svg +0 -3
- package/lib/commonjs/assets/images/Personalitytraits.svg +0 -3
- package/lib/commonjs/assets/images/Redditicon.png +0 -0
- package/lib/commonjs/assets/images/Userpreferences.svg +0 -3
- package/lib/commonjs/assets/images/YouTubeicon3.png +0 -0
- package/lib/commonjs/assets/images/arrow.svg +0 -20
- package/lib/commonjs/assets/images/basicproficon.svg +0 -43
- package/lib/commonjs/assets/images/basicprofile.svg +0 -3
- package/lib/commonjs/assets/images/checkmark.svg +0 -4
- package/lib/commonjs/assets/images/contentanalysis.svg +0 -3
- package/lib/commonjs/assets/images/contenticon.svg +0 -23
- package/lib/commonjs/assets/images/persona1.png +0 -0
- package/lib/commonjs/assets/images/persona2.png +0 -0
- package/lib/commonjs/assets/images/persona3.png +0 -0
- package/lib/commonjs/assets/images/persona4.png +0 -0
- package/lib/commonjs/assets/images/persona5.png +0 -0
- package/lib/commonjs/assets/images/personalityicon.svg +0 -18
- package/lib/commonjs/assets/images/x-close.svg +0 -3
- package/lib/commonjs/components/BodyText.js +0 -27
- package/lib/commonjs/components/BodyText.js.map +0 -1
- package/lib/commonjs/components/BrandMark.js +0 -44
- package/lib/commonjs/components/BrandMark.js.map +0 -1
- package/lib/commonjs/components/CodeInput.js +0 -30
- package/lib/commonjs/components/CodeInput.js.map +0 -1
- package/lib/commonjs/components/EmailInput.js +0 -30
- package/lib/commonjs/components/EmailInput.js.map +0 -1
- package/lib/commonjs/components/ExistingUserDataConfirmation.js +0 -474
- package/lib/commonjs/components/ExistingUserDataConfirmation.js.map +0 -1
- package/lib/commonjs/components/GoogleButton.js +0 -55
- package/lib/commonjs/components/GoogleButton.js.map +0 -1
- package/lib/commonjs/components/HeadingGroup.js +0 -43
- package/lib/commonjs/components/HeadingGroup.js.map +0 -1
- package/lib/commonjs/components/ModalHeader.js +0 -99
- package/lib/commonjs/components/ModalHeader.js.map +0 -1
- package/lib/commonjs/components/ModalSheet.js +0 -47
- package/lib/commonjs/components/ModalSheet.js.map +0 -1
- package/lib/commonjs/components/OnairosSignInButton.js +0 -129
- package/lib/commonjs/components/OnairosSignInButton.js.map +0 -1
- package/lib/commonjs/components/PersonaImage.js +0 -60
- package/lib/commonjs/components/PersonaImage.js.map +0 -1
- package/lib/commonjs/components/PersonaLoadingScreen.js +0 -156
- package/lib/commonjs/components/PersonaLoadingScreen.js.map +0 -1
- package/lib/commonjs/components/PersonalizationConsentScreen.js +0 -316
- package/lib/commonjs/components/PersonalizationConsentScreen.js.map +0 -1
- package/lib/commonjs/components/PinCreationScreen.js +0 -393
- package/lib/commonjs/components/PinCreationScreen.js.map +0 -1
- package/lib/commonjs/components/PlatformConnectorsStep.js +0 -828
- package/lib/commonjs/components/PlatformConnectorsStep.js.map +0 -1
- package/lib/commonjs/components/PlatformToggle.js +0 -180
- package/lib/commonjs/components/PlatformToggle.js.map +0 -1
- package/lib/commonjs/components/PrimaryButton.js +0 -180
- package/lib/commonjs/components/PrimaryButton.js.map +0 -1
- package/lib/commonjs/components/SignInMatchAnimation.js +0 -197
- package/lib/commonjs/components/SignInMatchAnimation.js.map +0 -1
- package/lib/commonjs/components/SignInStep.js +0 -179
- package/lib/commonjs/components/SignInStep.js.map +0 -1
- package/lib/commonjs/components/VerificationStep.js +0 -154
- package/lib/commonjs/components/VerificationStep.js.map +0 -1
- package/lib/commonjs/components/WelcomeScreen.js +0 -401
- package/lib/commonjs/components/WelcomeScreen.js.map +0 -1
- package/lib/commonjs/components/icons/Basicproficon.js +0 -37
- package/lib/commonjs/components/icons/Basicproficon.js.map +0 -1
- package/lib/commonjs/components/icons/Basicprofile.js +0 -21
- package/lib/commonjs/components/icons/Basicprofile.js.map +0 -1
- package/lib/commonjs/components/icons/Checkbox.js +0 -21
- package/lib/commonjs/components/icons/Checkbox.js.map +0 -1
- package/lib/commonjs/components/icons/Checkmark.js +0 -27
- package/lib/commonjs/components/icons/Checkmark.js.map +0 -1
- package/lib/commonjs/components/icons/Contentanalysis.js +0 -21
- package/lib/commonjs/components/icons/Contentanalysis.js.map +0 -1
- package/lib/commonjs/components/icons/Contenticon.js +0 -39
- package/lib/commonjs/components/icons/Contenticon.js.map +0 -1
- package/lib/commonjs/components/icons/EnochE.js +0 -41
- package/lib/commonjs/components/icons/EnochE.js.map +0 -1
- package/lib/commonjs/components/icons/Personalityicon.js +0 -30
- package/lib/commonjs/components/icons/Personalityicon.js.map +0 -1
- package/lib/commonjs/components/icons/Personalityprofile.js +0 -21
- package/lib/commonjs/components/icons/Personalityprofile.js.map +0 -1
- package/lib/commonjs/components/icons/Personalitytraits.js +0 -21
- package/lib/commonjs/components/icons/Personalitytraits.js.map +0 -1
- package/lib/commonjs/components/icons/Userpreferences.js +0 -21
- package/lib/commonjs/components/icons/Userpreferences.js.map +0 -1
- package/lib/commonjs/components/icons/index.js +0 -84
- package/lib/commonjs/components/icons/index.js.map +0 -1
- package/lib/commonjs/config/api.js +0 -34
- package/lib/commonjs/config/api.js.map +0 -1
- package/lib/commonjs/context/AuthContext.js +0 -345
- package/lib/commonjs/context/AuthContext.js.map +0 -1
- package/lib/commonjs/hooks/useConnectedAccounts.js +0 -111
- package/lib/commonjs/hooks/useConnectedAccounts.js.map +0 -1
- package/lib/commonjs/hooks/useUserConnections.js +0 -148
- package/lib/commonjs/hooks/useUserConnections.js.map +0 -1
- package/lib/commonjs/services/apiClient.js +0 -302
- package/lib/commonjs/services/apiClient.js.map +0 -1
- package/lib/commonjs/services/authService.js +0 -935
- package/lib/commonjs/services/authService.js.map +0 -1
- package/lib/commonjs/services/biometricPinService.js +0 -184
- package/lib/commonjs/services/biometricPinService.js.map +0 -1
- package/lib/commonjs/services/connectedAccountsService.js +0 -268
- package/lib/commonjs/services/connectedAccountsService.js.map +0 -1
- package/lib/commonjs/services/googleAuthService.js +0 -268
- package/lib/commonjs/services/googleAuthService.js.map +0 -1
- package/lib/commonjs/services/imageCompressionService.js +0 -260
- package/lib/commonjs/services/imageCompressionService.js.map +0 -1
- package/lib/commonjs/services/jwtStorageService.js +0 -256
- package/lib/commonjs/services/jwtStorageService.js.map +0 -1
- package/lib/commonjs/services/mobileTrainingService.js +0 -185
- package/lib/commonjs/services/mobileTrainingService.js.map +0 -1
- package/lib/commonjs/services/pinEncryptionService.js +0 -84
- package/lib/commonjs/services/pinEncryptionService.js.map +0 -1
- package/lib/commonjs/services/pinStorageUtils.js +0 -105
- package/lib/commonjs/services/pinStorageUtils.js.map +0 -1
- package/lib/commonjs/services/storageService.js +0 -404
- package/lib/commonjs/services/storageService.js.map +0 -1
- package/lib/commonjs/services/trainingApiHelpers.js +0 -73
- package/lib/commonjs/services/trainingApiHelpers.js.map +0 -1
- package/lib/commonjs/services/userConnectionsService.js +0 -486
- package/lib/commonjs/services/userConnectionsService.js.map +0 -1
- package/lib/commonjs/services/youtubeMigrationService.js +0 -415
- package/lib/commonjs/services/youtubeMigrationService.js.map +0 -1
- package/lib/commonjs/theme/index.js +0 -249
- package/lib/commonjs/theme/index.js.map +0 -1
- package/lib/commonjs/utils/eventUtils.js +0 -288
- package/lib/commonjs/utils/eventUtils.js.map +0 -1
- package/lib/commonjs/utils/haptics.js +0 -66
- package/lib/commonjs/utils/haptics.js.map +0 -1
- package/lib/commonjs/utils/imagePreloader.js +0 -6
- package/lib/commonjs/utils/imagePreloader.js.map +0 -1
- package/lib/module/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/lib/module/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/lib/module/assets/icons/Facebookicon.png +0 -0
- package/lib/module/assets/icons/Gmail.png +0 -0
- package/lib/module/assets/icons/Linkedinicon.png +0 -0
- package/lib/module/assets/icons/Redditicon.png +0 -0
- package/lib/module/assets/icons/YouTubeicon2.png +0 -0
- package/lib/module/assets/icons/YouTubeicon3.png +0 -0
- package/lib/module/assets/icons/farcaster.png +0 -0
- package/lib/module/assets/icons/instagram.png +0 -0
- package/lib/module/assets/icons/pinterest.png +0 -0
- package/lib/module/assets/icons/swerv_logo.png +0 -0
- package/lib/module/assets/icons/twitter.jpg +0 -0
- package/lib/module/assets/images/Checkbox.svg +0 -3
- package/lib/module/assets/images/EnochE.svg +0 -19
- package/lib/module/assets/images/Enochicon1.png +0 -0
- package/lib/module/assets/images/Face_ID_logo.png +0 -0
- package/lib/module/assets/images/Facebookicon.png +0 -0
- package/lib/module/assets/images/Gmail.png +0 -0
- package/lib/module/assets/images/Googlelogo.png +0 -0
- package/lib/module/assets/images/Linkedinicon.png +0 -0
- package/lib/module/assets/images/Onairoslogo.png +0 -0
- package/lib/module/assets/images/Personalityprofile.svg +0 -3
- package/lib/module/assets/images/Personalitytraits.svg +0 -3
- package/lib/module/assets/images/Redditicon.png +0 -0
- package/lib/module/assets/images/Userpreferences.svg +0 -3
- package/lib/module/assets/images/YouTubeicon3.png +0 -0
- package/lib/module/assets/images/arrow.svg +0 -20
- package/lib/module/assets/images/basicproficon.svg +0 -43
- package/lib/module/assets/images/basicprofile.svg +0 -3
- package/lib/module/assets/images/checkmark.svg +0 -4
- package/lib/module/assets/images/contentanalysis.svg +0 -3
- package/lib/module/assets/images/contenticon.svg +0 -23
- package/lib/module/assets/images/persona1.png +0 -0
- package/lib/module/assets/images/persona2.png +0 -0
- package/lib/module/assets/images/persona3.png +0 -0
- package/lib/module/assets/images/persona4.png +0 -0
- package/lib/module/assets/images/persona5.png +0 -0
- package/lib/module/assets/images/personalityicon.svg +0 -18
- package/lib/module/assets/images/x-close.svg +0 -3
- package/lib/module/components/BodyText.js +0 -20
- package/lib/module/components/BodyText.js.map +0 -1
- package/lib/module/components/BrandMark.js +0 -37
- package/lib/module/components/BrandMark.js.map +0 -1
- package/lib/module/components/CodeInput.js +0 -23
- package/lib/module/components/CodeInput.js.map +0 -1
- package/lib/module/components/EmailInput.js +0 -23
- package/lib/module/components/EmailInput.js.map +0 -1
- package/lib/module/components/ExistingUserDataConfirmation.js +0 -465
- package/lib/module/components/ExistingUserDataConfirmation.js.map +0 -1
- package/lib/module/components/GoogleButton.js +0 -48
- package/lib/module/components/GoogleButton.js.map +0 -1
- package/lib/module/components/HeadingGroup.js +0 -36
- package/lib/module/components/HeadingGroup.js.map +0 -1
- package/lib/module/components/ModalHeader.js +0 -92
- package/lib/module/components/ModalHeader.js.map +0 -1
- package/lib/module/components/ModalSheet.js +0 -39
- package/lib/module/components/ModalSheet.js.map +0 -1
- package/lib/module/components/OnairosSignInButton.js +0 -120
- package/lib/module/components/OnairosSignInButton.js.map +0 -1
- package/lib/module/components/PersonaImage.js +0 -53
- package/lib/module/components/PersonaImage.js.map +0 -1
- package/lib/module/components/PersonaLoadingScreen.js +0 -148
- package/lib/module/components/PersonaLoadingScreen.js.map +0 -1
- package/lib/module/components/PersonalizationConsentScreen.js +0 -309
- package/lib/module/components/PersonalizationConsentScreen.js.map +0 -1
- package/lib/module/components/PinCreationScreen.js +0 -386
- package/lib/module/components/PinCreationScreen.js.map +0 -1
- package/lib/module/components/PlatformConnectorsStep.js +0 -820
- package/lib/module/components/PlatformConnectorsStep.js.map +0 -1
- package/lib/module/components/PlatformToggle.js +0 -173
- package/lib/module/components/PlatformToggle.js.map +0 -1
- package/lib/module/components/PrimaryButton.js +0 -172
- package/lib/module/components/PrimaryButton.js.map +0 -1
- package/lib/module/components/SignInMatchAnimation.js +0 -189
- package/lib/module/components/SignInMatchAnimation.js.map +0 -1
- package/lib/module/components/SignInStep.js +0 -171
- package/lib/module/components/SignInStep.js.map +0 -1
- package/lib/module/components/VerificationStep.js +0 -146
- package/lib/module/components/VerificationStep.js.map +0 -1
- package/lib/module/components/WelcomeScreen.js +0 -393
- package/lib/module/components/WelcomeScreen.js.map +0 -1
- package/lib/module/components/icons/Basicproficon.js +0 -30
- package/lib/module/components/icons/Basicproficon.js.map +0 -1
- package/lib/module/components/icons/Basicprofile.js +0 -14
- package/lib/module/components/icons/Basicprofile.js.map +0 -1
- package/lib/module/components/icons/Checkbox.js +0 -14
- package/lib/module/components/icons/Checkbox.js.map +0 -1
- package/lib/module/components/icons/Checkmark.js +0 -20
- package/lib/module/components/icons/Checkmark.js.map +0 -1
- package/lib/module/components/icons/Contentanalysis.js +0 -14
- package/lib/module/components/icons/Contentanalysis.js.map +0 -1
- package/lib/module/components/icons/Contenticon.js +0 -32
- package/lib/module/components/icons/Contenticon.js.map +0 -1
- package/lib/module/components/icons/EnochE.js +0 -34
- package/lib/module/components/icons/EnochE.js.map +0 -1
- package/lib/module/components/icons/Personalityicon.js +0 -23
- package/lib/module/components/icons/Personalityicon.js.map +0 -1
- package/lib/module/components/icons/Personalityprofile.js +0 -14
- package/lib/module/components/icons/Personalityprofile.js.map +0 -1
- package/lib/module/components/icons/Personalitytraits.js +0 -14
- package/lib/module/components/icons/Personalitytraits.js.map +0 -1
- package/lib/module/components/icons/Userpreferences.js +0 -14
- package/lib/module/components/icons/Userpreferences.js.map +0 -1
- package/lib/module/components/icons/index.js +0 -13
- package/lib/module/components/icons/index.js.map +0 -1
- package/lib/module/config/api.js +0 -26
- package/lib/module/config/api.js.map +0 -1
- package/lib/module/context/AuthContext.js +0 -335
- package/lib/module/context/AuthContext.js.map +0 -1
- package/lib/module/hooks/useConnectedAccounts.js +0 -106
- package/lib/module/hooks/useConnectedAccounts.js.map +0 -1
- package/lib/module/hooks/useUserConnections.js +0 -140
- package/lib/module/hooks/useUserConnections.js.map +0 -1
- package/lib/module/services/apiClient.js +0 -298
- package/lib/module/services/apiClient.js.map +0 -1
- package/lib/module/services/authService.js +0 -905
- package/lib/module/services/authService.js.map +0 -1
- package/lib/module/services/biometricPinService.js +0 -173
- package/lib/module/services/biometricPinService.js.map +0 -1
- package/lib/module/services/connectedAccountsService.js +0 -255
- package/lib/module/services/connectedAccountsService.js.map +0 -1
- package/lib/module/services/googleAuthService.js +0 -258
- package/lib/module/services/googleAuthService.js.map +0 -1
- package/lib/module/services/imageCompressionService.js +0 -250
- package/lib/module/services/imageCompressionService.js.map +0 -1
- package/lib/module/services/jwtStorageService.js +0 -239
- package/lib/module/services/jwtStorageService.js.map +0 -1
- package/lib/module/services/mobileTrainingService.js +0 -172
- package/lib/module/services/mobileTrainingService.js.map +0 -1
- package/lib/module/services/pinEncryptionService.js +0 -75
- package/lib/module/services/pinEncryptionService.js.map +0 -1
- package/lib/module/services/pinStorageUtils.js +0 -93
- package/lib/module/services/pinStorageUtils.js.map +0 -1
- package/lib/module/services/storageService.js +0 -383
- package/lib/module/services/storageService.js.map +0 -1
- package/lib/module/services/trainingApiHelpers.js +0 -67
- package/lib/module/services/trainingApiHelpers.js.map +0 -1
- package/lib/module/services/userConnectionsService.js +0 -476
- package/lib/module/services/userConnectionsService.js.map +0 -1
- package/lib/module/services/youtubeMigrationService.js +0 -404
- package/lib/module/services/youtubeMigrationService.js.map +0 -1
- package/lib/module/theme/index.js +0 -244
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/utils/eventUtils.js +0 -270
- package/lib/module/utils/eventUtils.js.map +0 -1
- package/lib/module/utils/haptics.js +0 -59
- package/lib/module/utils/haptics.js.map +0 -1
- package/lib/module/utils/imagePreloader.js +0 -3
- package/lib/module/utils/imagePreloader.js.map +0 -1
- package/lib/typescript/components/BodyText.d.ts +0 -10
- package/lib/typescript/components/BodyText.d.ts.map +0 -1
- package/lib/typescript/components/BrandMark.d.ts +0 -11
- package/lib/typescript/components/BrandMark.d.ts.map +0 -1
- package/lib/typescript/components/CodeInput.d.ts +0 -10
- package/lib/typescript/components/CodeInput.d.ts.map +0 -1
- package/lib/typescript/components/EmailInput.d.ts +0 -8
- package/lib/typescript/components/EmailInput.d.ts.map +0 -1
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts +0 -12
- package/lib/typescript/components/ExistingUserDataConfirmation.d.ts.map +0 -1
- package/lib/typescript/components/GoogleButton.d.ts +0 -11
- package/lib/typescript/components/GoogleButton.d.ts.map +0 -1
- package/lib/typescript/components/HeadingGroup.d.ts +0 -11
- package/lib/typescript/components/HeadingGroup.d.ts.map +0 -1
- package/lib/typescript/components/ModalHeader.d.ts +0 -11
- package/lib/typescript/components/ModalHeader.d.ts.map +0 -1
- package/lib/typescript/components/ModalSheet.d.ts +0 -13
- package/lib/typescript/components/ModalSheet.d.ts.map +0 -1
- package/lib/typescript/components/OnairosSignInButton.d.ts +0 -13
- package/lib/typescript/components/OnairosSignInButton.d.ts.map +0 -1
- package/lib/typescript/components/PersonaImage.d.ts +0 -8
- package/lib/typescript/components/PersonaImage.d.ts.map +0 -1
- package/lib/typescript/components/PersonaLoadingScreen.d.ts +0 -10
- package/lib/typescript/components/PersonaLoadingScreen.d.ts.map +0 -1
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts +0 -10
- package/lib/typescript/components/PersonalizationConsentScreen.d.ts.map +0 -1
- package/lib/typescript/components/PinCreationScreen.d.ts +0 -10
- package/lib/typescript/components/PinCreationScreen.d.ts.map +0 -1
- package/lib/typescript/components/PlatformConnectorsStep.d.ts +0 -11
- package/lib/typescript/components/PlatformConnectorsStep.d.ts.map +0 -1
- package/lib/typescript/components/PlatformToggle.d.ts +0 -20
- package/lib/typescript/components/PlatformToggle.d.ts.map +0 -1
- package/lib/typescript/components/PrimaryButton.d.ts +0 -22
- package/lib/typescript/components/PrimaryButton.d.ts.map +0 -1
- package/lib/typescript/components/SignInMatchAnimation.d.ts +0 -9
- package/lib/typescript/components/SignInMatchAnimation.d.ts.map +0 -1
- package/lib/typescript/components/SignInStep.d.ts +0 -12
- package/lib/typescript/components/SignInStep.d.ts.map +0 -1
- package/lib/typescript/components/VerificationStep.d.ts +0 -13
- package/lib/typescript/components/VerificationStep.d.ts.map +0 -1
- package/lib/typescript/components/WelcomeScreen.d.ts +0 -9
- package/lib/typescript/components/WelcomeScreen.d.ts.map +0 -1
- package/lib/typescript/components/icons/Basicproficon.d.ts +0 -5
- package/lib/typescript/components/icons/Basicproficon.d.ts.map +0 -1
- package/lib/typescript/components/icons/Basicprofile.d.ts +0 -5
- package/lib/typescript/components/icons/Basicprofile.d.ts.map +0 -1
- package/lib/typescript/components/icons/Checkbox.d.ts +0 -5
- package/lib/typescript/components/icons/Checkbox.d.ts.map +0 -1
- package/lib/typescript/components/icons/Checkmark.d.ts +0 -5
- package/lib/typescript/components/icons/Checkmark.d.ts.map +0 -1
- package/lib/typescript/components/icons/Contentanalysis.d.ts +0 -5
- package/lib/typescript/components/icons/Contentanalysis.d.ts.map +0 -1
- package/lib/typescript/components/icons/Contenticon.d.ts +0 -5
- package/lib/typescript/components/icons/Contenticon.d.ts.map +0 -1
- package/lib/typescript/components/icons/EnochE.d.ts +0 -5
- package/lib/typescript/components/icons/EnochE.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalityicon.d.ts +0 -5
- package/lib/typescript/components/icons/Personalityicon.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalityprofile.d.ts +0 -5
- package/lib/typescript/components/icons/Personalityprofile.d.ts.map +0 -1
- package/lib/typescript/components/icons/Personalitytraits.d.ts +0 -5
- package/lib/typescript/components/icons/Personalitytraits.d.ts.map +0 -1
- package/lib/typescript/components/icons/Userpreferences.d.ts +0 -5
- package/lib/typescript/components/icons/Userpreferences.d.ts.map +0 -1
- package/lib/typescript/components/icons/index.d.ts +0 -12
- package/lib/typescript/components/icons/index.d.ts.map +0 -1
- package/lib/typescript/config/api.d.ts +0 -24
- package/lib/typescript/config/api.d.ts.map +0 -1
- package/lib/typescript/context/AuthContext.d.ts +0 -34
- package/lib/typescript/context/AuthContext.d.ts.map +0 -1
- package/lib/typescript/hooks/useConnectedAccounts.d.ts +0 -11
- package/lib/typescript/hooks/useConnectedAccounts.d.ts.map +0 -1
- package/lib/typescript/hooks/useUserConnections.d.ts +0 -12
- package/lib/typescript/hooks/useUserConnections.d.ts.map +0 -1
- package/lib/typescript/services/apiClient.d.ts +0 -91
- package/lib/typescript/services/apiClient.d.ts.map +0 -1
- package/lib/typescript/services/authService.d.ts +0 -216
- package/lib/typescript/services/authService.d.ts.map +0 -1
- package/lib/typescript/services/biometricPinService.d.ts +0 -29
- package/lib/typescript/services/biometricPinService.d.ts.map +0 -1
- package/lib/typescript/services/connectedAccountsService.d.ts +0 -56
- package/lib/typescript/services/connectedAccountsService.d.ts.map +0 -1
- package/lib/typescript/services/googleAuthService.d.ts +0 -63
- package/lib/typescript/services/googleAuthService.d.ts.map +0 -1
- package/lib/typescript/services/imageCompressionService.d.ts +0 -37
- package/lib/typescript/services/imageCompressionService.d.ts.map +0 -1
- package/lib/typescript/services/jwtStorageService.d.ts +0 -86
- package/lib/typescript/services/jwtStorageService.d.ts.map +0 -1
- package/lib/typescript/services/mobileTrainingService.d.ts +0 -45
- package/lib/typescript/services/mobileTrainingService.d.ts.map +0 -1
- package/lib/typescript/services/pinEncryptionService.d.ts +0 -17
- package/lib/typescript/services/pinEncryptionService.d.ts.map +0 -1
- package/lib/typescript/services/pinStorageUtils.d.ts +0 -25
- package/lib/typescript/services/pinStorageUtils.d.ts.map +0 -1
- package/lib/typescript/services/storageService.d.ts +0 -128
- package/lib/typescript/services/storageService.d.ts.map +0 -1
- package/lib/typescript/services/trainingApiHelpers.d.ts +0 -38
- package/lib/typescript/services/trainingApiHelpers.d.ts.map +0 -1
- package/lib/typescript/services/userConnectionsService.d.ts +0 -90
- package/lib/typescript/services/userConnectionsService.d.ts.map +0 -1
- package/lib/typescript/services/youtubeMigrationService.d.ts +0 -12
- package/lib/typescript/services/youtubeMigrationService.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts +0 -416
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/utils/eventUtils.d.ts +0 -108
- package/lib/typescript/utils/eventUtils.d.ts.map +0 -1
- package/lib/typescript/utils/haptics.d.ts +0 -11
- package/lib/typescript/utils/haptics.d.ts.map +0 -1
- package/lib/typescript/utils/imagePreloader.d.ts +0 -2
- package/lib/typescript/utils/imagePreloader.d.ts.map +0 -1
- package/src/assets/fonts/EBGaramond-VariableFont_wght.ttf +0 -0
- package/src/assets/fonts/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/src/assets/icons/Facebookicon.png +0 -0
- package/src/assets/icons/Gmail.png +0 -0
- package/src/assets/icons/Linkedinicon.png +0 -0
- package/src/assets/icons/Redditicon.png +0 -0
- package/src/assets/icons/YouTubeicon2.png +0 -0
- package/src/assets/icons/YouTubeicon3.png +0 -0
- package/src/assets/icons/farcaster.png +0 -0
- package/src/assets/icons/instagram.png +0 -0
- package/src/assets/icons/pinterest.png +0 -0
- package/src/assets/icons/swerv_logo.png +0 -0
- package/src/assets/icons/twitter.jpg +0 -0
- package/src/assets/images/Checkbox.svg +0 -3
- package/src/assets/images/EnochE.svg +0 -19
- package/src/assets/images/Enochicon1.png +0 -0
- package/src/assets/images/Face_ID_logo.png +0 -0
- package/src/assets/images/Facebookicon.png +0 -0
- package/src/assets/images/Gmail.png +0 -0
- package/src/assets/images/Googlelogo.png +0 -0
- package/src/assets/images/Linkedinicon.png +0 -0
- package/src/assets/images/Onairoslogo.png +0 -0
- package/src/assets/images/Personalityprofile.svg +0 -3
- package/src/assets/images/Personalitytraits.svg +0 -3
- package/src/assets/images/Redditicon.png +0 -0
- package/src/assets/images/Userpreferences.svg +0 -3
- package/src/assets/images/YouTubeicon3.png +0 -0
- package/src/assets/images/arrow.svg +0 -20
- package/src/assets/images/basicproficon.svg +0 -43
- package/src/assets/images/basicprofile.svg +0 -3
- package/src/assets/images/checkmark.svg +0 -4
- package/src/assets/images/contentanalysis.svg +0 -3
- package/src/assets/images/contenticon.svg +0 -23
- package/src/assets/images/persona1.png +0 -0
- package/src/assets/images/persona2.png +0 -0
- package/src/assets/images/persona3.png +0 -0
- package/src/assets/images/persona4.png +0 -0
- package/src/assets/images/persona5.png +0 -0
- package/src/assets/images/personalityicon.svg +0 -18
- package/src/assets/images/x-close.svg +0 -3
- package/src/components/BodyText.tsx +0 -33
- package/src/components/BrandMark.tsx +0 -62
- package/src/components/CodeInput.tsx +0 -32
- package/src/components/EmailInput.tsx +0 -31
- package/src/components/ExistingUserDataConfirmation.tsx +0 -507
- package/src/components/GoogleButton.tsx +0 -55
- package/src/components/HeadingGroup.tsx +0 -49
- package/src/components/ModalHeader.tsx +0 -125
- package/src/components/ModalSheet.tsx +0 -59
- package/src/components/OnairosSignInButton.tsx +0 -132
- package/src/components/PersonaImage.tsx +0 -79
- package/src/components/PersonaLoadingScreen.tsx +0 -201
- package/src/components/PersonalizationConsentScreen.tsx +0 -410
- package/src/components/PinCreationScreen.tsx +0 -492
- package/src/components/PlatformConnectorsStep.tsx +0 -892
- package/src/components/PlatformToggle.tsx +0 -226
- package/src/components/PrimaryButton.tsx +0 -214
- package/src/components/SignInMatchAnimation.tsx +0 -225
- package/src/components/SignInStep.tsx +0 -217
- package/src/components/VerificationStep.tsx +0 -198
- package/src/components/WelcomeScreen.tsx +0 -490
- package/src/components/icons/Basicproficon.tsx +0 -30
- package/src/components/icons/Basicprofile.tsx +0 -17
- package/src/components/icons/Checkbox.tsx +0 -17
- package/src/components/icons/Checkmark.tsx +0 -24
- package/src/components/icons/Contentanalysis.tsx +0 -17
- package/src/components/icons/Contenticon.tsx +0 -30
- package/src/components/icons/EnochE.tsx +0 -39
- package/src/components/icons/Personalityicon.tsx +0 -22
- package/src/components/icons/Personalityprofile.tsx +0 -17
- package/src/components/icons/Personalitytraits.tsx +0 -17
- package/src/components/icons/Userpreferences.tsx +0 -17
- package/src/components/icons/index.ts +0 -12
- package/src/config/api.ts +0 -25
- package/src/context/AuthContext.tsx +0 -393
- package/src/hooks/useConnectedAccounts.ts +0 -139
- package/src/hooks/useUserConnections.ts +0 -166
- package/src/services/apiClient.ts +0 -337
- package/src/services/authService.ts +0 -1008
- package/src/services/biometricPinService.ts +0 -193
- package/src/services/connectedAccountsService.ts +0 -290
- package/src/services/googleAuthService.ts +0 -279
- package/src/services/imageCompressionService.ts +0 -303
- package/src/services/jwtStorageService.ts +0 -257
- package/src/services/mobileTrainingService.ts +0 -204
- package/src/services/pinEncryptionService.ts +0 -76
- package/src/services/pinStorageUtils.ts +0 -97
- package/src/services/storageService.ts +0 -452
- package/src/services/trainingApiHelpers.ts +0 -67
- package/src/services/userConnectionsService.ts +0 -557
- package/src/services/youtubeMigrationService.ts +0 -454
- package/src/theme/index.ts +0 -239
- package/src/utils/eventUtils.ts +0 -303
- package/src/utils/haptics.ts +0 -59
- package/src/utils/imagePreloader.ts +0 -2
|
@@ -1,935 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.verifyToken = exports.updateUserOnboardedStatus = exports.saveOnairosUsername = exports.saveEnochToken = exports.saveAuthToken = exports.saveAdminStatus = exports.removeAuthToken = exports.isAuthenticated = exports.isAdminEmail = exports.getUserProfile = exports.getOnairosUsername = exports.getEventTimer = exports.getEnochToken = exports.getAuthToken = exports.getAdminStatus = exports.ensureAuthentication = exports.debugAuthStorage = exports.createOrUpdateProfile = exports.clearAllAuthTokens = exports.checkEnochOnairosConnection = exports.authenticateWithOnairosSignIn = exports.authenticateWithOnairos = exports.authenticateWithApple = void 0;
|
|
7
|
-
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
8
|
-
var _api = require("../config/api");
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
-
// API base URL
|
|
12
|
-
const API_BASE_URL = _api.API_CONFIG.BASE_URL;
|
|
13
|
-
|
|
14
|
-
// Interface for authentication responses
|
|
15
|
-
|
|
16
|
-
// Interface for Apple authentication payload
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Interface for the timer response from backend
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Interface for the profile response from backend
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Interface for creating/updating user profile
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Authenticate with Apple
|
|
32
|
-
* @param appleAuthData Data from Apple authentication
|
|
33
|
-
* @returns Authentication response with token and user data
|
|
34
|
-
*/
|
|
35
|
-
/**
|
|
36
|
-
* Authenticate with Onairos (similar to Apple authentication)
|
|
37
|
-
* @param onairosAuthData Data from Onairos authentication
|
|
38
|
-
* @returns Authentication response with token and user data
|
|
39
|
-
*/
|
|
40
|
-
const authenticateWithOnairos = async onairosAuthData => {
|
|
41
|
-
try {
|
|
42
|
-
console.log('🔑 Authenticating with Onairos...');
|
|
43
|
-
|
|
44
|
-
// For Onairos, we already have the JWT token from TrainingModal
|
|
45
|
-
// We just need to create a proper user object like Apple does
|
|
46
|
-
|
|
47
|
-
// Store the token in all the expected locations
|
|
48
|
-
// CRITICAL FIX: Store as Onairos token (OAuth gives Onairos JWT)
|
|
49
|
-
const {
|
|
50
|
-
TokenType,
|
|
51
|
-
storeJWT
|
|
52
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./jwtStorageService')));
|
|
53
|
-
await storeJWT(TokenType.ONAIROS, onairosAuthData.token);
|
|
54
|
-
|
|
55
|
-
// Extract username from email or use stored username
|
|
56
|
-
const storedUsername = await _asyncStorage.default.getItem('onairos_username');
|
|
57
|
-
const userName = storedUsername || onairosAuthData.email.split('@')[0] || 'Onairos User';
|
|
58
|
-
|
|
59
|
-
// Store username and email
|
|
60
|
-
await _asyncStorage.default.setItem('onairos_username', userName);
|
|
61
|
-
await _asyncStorage.default.setItem('user_email', onairosAuthData.email);
|
|
62
|
-
console.log('🔑 Onairos auth token stored:', `${onairosAuthData.token.substring(0, 20)}...`);
|
|
63
|
-
console.log('👤 User info:', {
|
|
64
|
-
email: onairosAuthData.email,
|
|
65
|
-
username: userName
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
token: onairosAuthData.token,
|
|
69
|
-
user: {
|
|
70
|
-
id: Date.now().toString(),
|
|
71
|
-
// Generate a unique ID
|
|
72
|
-
name: userName,
|
|
73
|
-
email: onairosAuthData.email,
|
|
74
|
-
profilePicture: ''
|
|
75
|
-
},
|
|
76
|
-
onairos: {
|
|
77
|
-
hasConnectedOnairos: true,
|
|
78
|
-
onairosUserId: Date.now().toString(),
|
|
79
|
-
lastConnectedAt: new Date().toISOString()
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
} catch (error) {
|
|
83
|
-
console.error('❌ Onairos authentication error:', error);
|
|
84
|
-
throw error;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Authenticate with Onairos using the standardized /login/signin endpoint
|
|
90
|
-
* @param credentials Email and password for Onairos sign-in
|
|
91
|
-
* @returns Authentication response with token and user data
|
|
92
|
-
*/
|
|
93
|
-
exports.authenticateWithOnairos = authenticateWithOnairos;
|
|
94
|
-
const authenticateWithOnairosSignIn = async credentials => {
|
|
95
|
-
try {
|
|
96
|
-
console.log('🔑 Signing in with Onairos via /login/signin endpoint...');
|
|
97
|
-
const response = await fetch(`${API_BASE_URL}/login/signin`, {
|
|
98
|
-
method: 'POST',
|
|
99
|
-
headers: (0, _api.getApiHeaders)(),
|
|
100
|
-
body: JSON.stringify(credentials)
|
|
101
|
-
});
|
|
102
|
-
if (!response.ok) {
|
|
103
|
-
const errorData = await response.json();
|
|
104
|
-
throw new Error(errorData.error || 'Onairos sign-in failed');
|
|
105
|
-
}
|
|
106
|
-
const authData = await response.json();
|
|
107
|
-
console.log('✅ Onairos sign-in successful');
|
|
108
|
-
|
|
109
|
-
// Check for authentication token first - this is the most critical part
|
|
110
|
-
if (!authData.token) {
|
|
111
|
-
throw new Error('No authentication token returned from Onairos sign-in');
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Log if result field is missing or unexpected (but don't fail)
|
|
115
|
-
if (!authData.result || authData.result !== "User logged in successfully" && authData.result !== "User created successfully") {
|
|
116
|
-
console.warn('🔑 Onairos sign-in: Unexpected or missing result field:', authData.result);
|
|
117
|
-
console.warn('🔑 Onairos sign-in: Proceeding with authentication since token is present');
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// CRITICAL FIX: Store as Onairos token (sign-in gives Onairos JWT)
|
|
121
|
-
const {
|
|
122
|
-
TokenType,
|
|
123
|
-
storeJWT
|
|
124
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./jwtStorageService')));
|
|
125
|
-
await storeJWT(TokenType.ONAIROS, authData.token);
|
|
126
|
-
|
|
127
|
-
// Store username from standardized response
|
|
128
|
-
if (authData.username) {
|
|
129
|
-
await _asyncStorage.default.setItem('onairos_username', authData.username);
|
|
130
|
-
}
|
|
131
|
-
await _asyncStorage.default.setItem('user_email', credentials.email);
|
|
132
|
-
console.log('🔑 Onairos sign-in token stored:', `${authData.token.substring(0, 20)}...`);
|
|
133
|
-
return {
|
|
134
|
-
token: authData.token,
|
|
135
|
-
user: {
|
|
136
|
-
id: Date.now().toString(),
|
|
137
|
-
name: authData.username,
|
|
138
|
-
email: credentials.email,
|
|
139
|
-
profilePicture: ''
|
|
140
|
-
},
|
|
141
|
-
onairos: {
|
|
142
|
-
hasConnectedOnairos: true,
|
|
143
|
-
onairosUserId: Date.now().toString(),
|
|
144
|
-
lastConnectedAt: new Date().toISOString()
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
} catch (error) {
|
|
148
|
-
console.error('❌ Onairos sign-in error:', error);
|
|
149
|
-
throw error;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
exports.authenticateWithOnairosSignIn = authenticateWithOnairosSignIn;
|
|
153
|
-
const authenticateWithApple = async appleAuthData => {
|
|
154
|
-
try {
|
|
155
|
-
const userName = appleAuthData.fullName ? `${appleAuthData.fullName.givenName || ''} ${appleAuthData.fullName.familyName || ''}`.trim() : 'Onairos User';
|
|
156
|
-
|
|
157
|
-
// Call the Apple authentication endpoint - backend should return proper Enoch JWT
|
|
158
|
-
console.log('🍎 Authenticating with Apple via backend...');
|
|
159
|
-
const appleAuthResponse = await fetch(`${API_BASE_URL}/enoch/auth/apple`, {
|
|
160
|
-
method: 'POST',
|
|
161
|
-
headers: (0, _api.getApiHeaders)(),
|
|
162
|
-
body: JSON.stringify({
|
|
163
|
-
identity_token: appleAuthData.identityToken,
|
|
164
|
-
nonce: appleAuthData.nonce,
|
|
165
|
-
user_identifier: appleAuthData.user,
|
|
166
|
-
// Always present
|
|
167
|
-
email: appleAuthData.email,
|
|
168
|
-
// Can be null if user hides email
|
|
169
|
-
name: userName
|
|
170
|
-
})
|
|
171
|
-
});
|
|
172
|
-
if (!appleAuthResponse.ok) {
|
|
173
|
-
const errorData = await appleAuthResponse.json();
|
|
174
|
-
throw new Error(errorData.error || 'Apple authentication failed');
|
|
175
|
-
}
|
|
176
|
-
const authData = await appleAuthResponse.json();
|
|
177
|
-
console.log('✅ Apple authentication successful');
|
|
178
|
-
|
|
179
|
-
// CRITICAL: Log detailed Apple authentication response for comparison
|
|
180
|
-
console.log('🍎 ===== APPLE AUTHENTICATION DETAILS =====');
|
|
181
|
-
console.log('🍎 Response status:', appleAuthResponse.status);
|
|
182
|
-
console.log('🍎 Response ok:', appleAuthResponse.ok);
|
|
183
|
-
console.log('🍎 Response result field:', authData.result);
|
|
184
|
-
console.log('🍎 Response token present:', !!authData.token);
|
|
185
|
-
console.log('🍎 Response username present:', !!authData.username);
|
|
186
|
-
if (authData.token) {
|
|
187
|
-
console.log('🍎 Token preview:', `${authData.token.substring(0, 30)}...${authData.token.substring(authData.token.length - 10)}`);
|
|
188
|
-
console.log('🍎 Token length:', authData.token.length);
|
|
189
|
-
console.log('🍎 Token parts count:', authData.token.split('.').length);
|
|
190
|
-
}
|
|
191
|
-
console.log('🍎 ===== END APPLE AUTHENTICATION DETAILS =====');
|
|
192
|
-
|
|
193
|
-
// Check for authentication token first - this is the most critical part
|
|
194
|
-
if (!authData.token) {
|
|
195
|
-
throw new Error('No authentication token returned from Apple auth');
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// Log if result field is missing or unexpected (but don't fail)
|
|
199
|
-
if (!authData.result || authData.result !== "User logged in successfully" && authData.result !== "User created successfully") {
|
|
200
|
-
console.warn('🍎 Apple auth: Unexpected or missing result field:', authData.result);
|
|
201
|
-
console.warn('🍎 Apple auth: Proceeding with authentication since token is present');
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// CRITICAL FIX: Store as Onairos token (Apple sign-in gives Onairos JWT)
|
|
205
|
-
console.log('💾 Storing Apple-returned token as Onairos JWT');
|
|
206
|
-
const {
|
|
207
|
-
TokenType,
|
|
208
|
-
storeJWT
|
|
209
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./jwtStorageService')));
|
|
210
|
-
await storeJWT(TokenType.ONAIROS, authData.token);
|
|
211
|
-
|
|
212
|
-
// Store username from standardized response
|
|
213
|
-
if (authData.username) {
|
|
214
|
-
await _asyncStorage.default.setItem('onairos_username', authData.username);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Store the Apple user's email if available, otherwise use Apple user identifier
|
|
218
|
-
if (appleAuthData.email) {
|
|
219
|
-
await _asyncStorage.default.setItem('user_email', appleAuthData.email);
|
|
220
|
-
console.log('📧 Apple user email stored:', appleAuthData.email);
|
|
221
|
-
} else {
|
|
222
|
-
// Apple user chose "Hide My Email" - use Apple user identifier as fallback
|
|
223
|
-
const fallbackEmail = `apple_${appleAuthData.user}@privaterelay.apple.com`;
|
|
224
|
-
await _asyncStorage.default.setItem('user_email', fallbackEmail);
|
|
225
|
-
console.log('📧 Apple user email hidden - using fallback:', fallbackEmail);
|
|
226
|
-
}
|
|
227
|
-
console.log('🔑 Apple auth token stored:', `${authData.token.substring(0, 20)}...`);
|
|
228
|
-
|
|
229
|
-
// DEBUG: Log Apple token details to compare with Onairos tokens
|
|
230
|
-
console.log('🔍 DEBUG: Apple token details:');
|
|
231
|
-
console.log('🔍 DEBUG: Token length:', authData.token.length);
|
|
232
|
-
console.log('🔍 DEBUG: Token parts:', authData.token.split('.').length);
|
|
233
|
-
console.log('🔍 DEBUG: Token preview:', `${authData.token.substring(0, 50)}...`);
|
|
234
|
-
try {
|
|
235
|
-
const tokenParts = authData.token.split('.');
|
|
236
|
-
if (tokenParts.length === 3) {
|
|
237
|
-
console.log('🔍 DEBUG: Apple JWT header (base64):', tokenParts[0].substring(0, 30) + '...');
|
|
238
|
-
console.log('🔍 DEBUG: Apple JWT payload (base64):', tokenParts[1].substring(0, 30) + '...');
|
|
239
|
-
console.log('🔍 DEBUG: Apple JWT signature (base64):', tokenParts[2].substring(0, 30) + '...');
|
|
240
|
-
}
|
|
241
|
-
} catch (decodeError) {
|
|
242
|
-
console.log('🔍 DEBUG: Could not analyze Apple JWT structure:', decodeError);
|
|
243
|
-
}
|
|
244
|
-
return {
|
|
245
|
-
token: authData.token,
|
|
246
|
-
user: {
|
|
247
|
-
id: Date.now().toString(),
|
|
248
|
-
// Generate a unique ID since standardized response doesn't include user.id
|
|
249
|
-
name: authData.username,
|
|
250
|
-
email: appleAuthData.email || '',
|
|
251
|
-
profilePicture: ''
|
|
252
|
-
},
|
|
253
|
-
onairos: authData.onairos || {
|
|
254
|
-
hasConnectedOnairos: false,
|
|
255
|
-
// Default to false for fresh Apple users
|
|
256
|
-
onairosUserId: undefined,
|
|
257
|
-
lastConnectedAt: undefined
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
} catch (error) {
|
|
261
|
-
console.error('❌ Apple authentication error:', error);
|
|
262
|
-
|
|
263
|
-
// CRITICAL: Log detailed Apple authentication error
|
|
264
|
-
console.error('🚨 ===== APPLE AUTHENTICATION ERROR =====');
|
|
265
|
-
console.error('🚨 Error type:', error instanceof Error ? error.constructor.name : typeof error);
|
|
266
|
-
console.error('🚨 Error message:', error instanceof Error ? error.message : String(error));
|
|
267
|
-
console.error('🚨 Error stack:', error instanceof Error ? error.stack : 'No stack trace');
|
|
268
|
-
console.error('🚨 Apple auth data provided:', JSON.stringify(appleAuthData, null, 2));
|
|
269
|
-
console.error('🚨 ===== END APPLE ERROR DETAILS =====');
|
|
270
|
-
throw error;
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Save authentication token
|
|
276
|
-
* @param token JWT token
|
|
277
|
-
*/
|
|
278
|
-
exports.authenticateWithApple = authenticateWithApple;
|
|
279
|
-
const saveAuthToken = async token => {
|
|
280
|
-
try {
|
|
281
|
-
await _asyncStorage.default.setItem('auth_token', token);
|
|
282
|
-
} catch (error) {
|
|
283
|
-
console.error('Error saving auth token:', error);
|
|
284
|
-
throw error;
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Debug function to check all auth-related storage
|
|
290
|
-
*/
|
|
291
|
-
exports.saveAuthToken = saveAuthToken;
|
|
292
|
-
const debugAuthStorage = async () => {
|
|
293
|
-
console.log('🔍 [AUTH STORAGE DEBUG] Checking all auth-related storage:');
|
|
294
|
-
const authToken = await _asyncStorage.default.getItem('auth_token');
|
|
295
|
-
const onairosJwt = await _asyncStorage.default.getItem('onairos_jwt_token');
|
|
296
|
-
const enochToken = await _asyncStorage.default.getItem('enoch_token');
|
|
297
|
-
const userEmail = await _asyncStorage.default.getItem('user_email');
|
|
298
|
-
const onairosUsername = await _asyncStorage.default.getItem('onairos_username');
|
|
299
|
-
const authMethod = await _asyncStorage.default.getItem('auth_method');
|
|
300
|
-
console.log('🔑 auth_token:', authToken ? `"${authToken}"` : 'null');
|
|
301
|
-
console.log('🔑 onairos_jwt_token:', onairosJwt ? `"${onairosJwt}"` : 'null');
|
|
302
|
-
console.log('🔑 enoch_token:', enochToken ? `"${enochToken}"` : 'null');
|
|
303
|
-
console.log('🔑 user_email:', userEmail ? `"${userEmail}"` : 'null');
|
|
304
|
-
console.log('🔑 onairos_username:', onairosUsername ? `"${onairosUsername}"` : 'null');
|
|
305
|
-
console.log('🔑 auth_method:', authMethod ? `"${authMethod}"` : 'null');
|
|
306
|
-
|
|
307
|
-
// Check if any token is actually an email
|
|
308
|
-
const allTokens = [authToken, onairosJwt, enochToken];
|
|
309
|
-
allTokens.forEach((token, index) => {
|
|
310
|
-
const tokenNames = ['auth_token', 'onairos_jwt_token', 'enoch_token'];
|
|
311
|
-
if (token && token.includes('@') && token.includes('.')) {
|
|
312
|
-
console.error(`❌ [AUTH STORAGE DEBUG] ${tokenNames[index]} contains email instead of JWT: "${token}"`);
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
};
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Clear all auth tokens and start fresh
|
|
319
|
-
*/
|
|
320
|
-
exports.debugAuthStorage = debugAuthStorage;
|
|
321
|
-
const clearAllAuthTokens = async () => {
|
|
322
|
-
console.log('🧹 [AUTH DEBUG] Clearing all auth tokens via centralized service...');
|
|
323
|
-
|
|
324
|
-
// CRITICAL FIX: Clear all JWT token types
|
|
325
|
-
const {
|
|
326
|
-
clearAllJWT
|
|
327
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./jwtStorageService')));
|
|
328
|
-
await clearAllJWT();
|
|
329
|
-
|
|
330
|
-
// Clear other auth-related data
|
|
331
|
-
await _asyncStorage.default.multiRemove(['user_email', 'onairos_username', 'auth_method']);
|
|
332
|
-
console.log('✅ [AUTH DEBUG] All auth tokens and data cleared');
|
|
333
|
-
};
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Get saved authentication token - CRITICAL FIX: Try all token types
|
|
337
|
-
* @returns Saved JWT token or null if not found
|
|
338
|
-
*/
|
|
339
|
-
exports.clearAllAuthTokens = clearAllAuthTokens;
|
|
340
|
-
const getAuthToken = async () => {
|
|
341
|
-
try {
|
|
342
|
-
console.log('🔑 [AUTH DEBUG] Checking all available JWT tokens...');
|
|
343
|
-
|
|
344
|
-
// CRITICAL FIX: Try all token types in priority order
|
|
345
|
-
const {
|
|
346
|
-
TokenType,
|
|
347
|
-
getJWT
|
|
348
|
-
} = await Promise.resolve().then(() => _interopRequireWildcard(require('./jwtStorageService')));
|
|
349
|
-
|
|
350
|
-
// Try Onairos token first (most common for main app usage)
|
|
351
|
-
let token = await getJWT(TokenType.ONAIROS);
|
|
352
|
-
if (token) {
|
|
353
|
-
console.log('✅ [AUTH DEBUG] Found Onairos JWT token:', `${token.substring(0, 20)}...`);
|
|
354
|
-
return token;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
// Try Enoch token second (for Enoch-specific routes)
|
|
358
|
-
token = await getJWT(TokenType.ENOCH);
|
|
359
|
-
if (token) {
|
|
360
|
-
console.log('✅ [AUTH DEBUG] Found Enoch JWT token:', `${token.substring(0, 20)}...`);
|
|
361
|
-
return token;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// Try Auth token last (for context-specific flows)
|
|
365
|
-
token = await getJWT(TokenType.AUTH);
|
|
366
|
-
if (token) {
|
|
367
|
-
console.log('✅ [AUTH DEBUG] Found Auth token:', `${token.substring(0, 20)}...`);
|
|
368
|
-
return token;
|
|
369
|
-
}
|
|
370
|
-
console.warn('❌ [AUTH DEBUG] No valid JWT tokens found in any storage location');
|
|
371
|
-
return null;
|
|
372
|
-
} catch (error) {
|
|
373
|
-
console.error('❌ [AUTH DEBUG] Error during token retrieval:', error);
|
|
374
|
-
return null;
|
|
375
|
-
}
|
|
376
|
-
};
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Remove authentication token (logout)
|
|
380
|
-
*/
|
|
381
|
-
exports.getAuthToken = getAuthToken;
|
|
382
|
-
const removeAuthToken = async () => {
|
|
383
|
-
try {
|
|
384
|
-
await _asyncStorage.default.removeItem('auth_token');
|
|
385
|
-
} catch (error) {
|
|
386
|
-
console.error('Error removing auth token:', error);
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Validate if user is properly authenticated
|
|
392
|
-
* @returns boolean indicating if user has valid authentication
|
|
393
|
-
*/
|
|
394
|
-
exports.removeAuthToken = removeAuthToken;
|
|
395
|
-
const isAuthenticated = async () => {
|
|
396
|
-
try {
|
|
397
|
-
const token = await getAuthToken();
|
|
398
|
-
return token !== null && token.length > 50;
|
|
399
|
-
} catch (error) {
|
|
400
|
-
console.error('❌ [AUTH VALIDATION] Error checking authentication status:', error);
|
|
401
|
-
return false;
|
|
402
|
-
}
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
/**
|
|
406
|
-
* Ensure authentication is available before making API calls
|
|
407
|
-
* @param apiName - Name of the API being called (for logging)
|
|
408
|
-
* @returns boolean indicating if authentication is available
|
|
409
|
-
*/
|
|
410
|
-
exports.isAuthenticated = isAuthenticated;
|
|
411
|
-
const ensureAuthentication = async apiName => {
|
|
412
|
-
const isAuth = await isAuthenticated();
|
|
413
|
-
if (!isAuth) {
|
|
414
|
-
console.warn(`⚠️ [${apiName}] No valid authentication available - API call may return limited data`);
|
|
415
|
-
} else {
|
|
416
|
-
console.log(`✅ [${apiName}] Authentication validated for API call`);
|
|
417
|
-
}
|
|
418
|
-
return isAuth;
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* Get saved Enoch authentication token specifically
|
|
423
|
-
* @returns Saved Enoch JWT token or null if not found
|
|
424
|
-
*/
|
|
425
|
-
exports.ensureAuthentication = ensureAuthentication;
|
|
426
|
-
const getEnochToken = async () => {
|
|
427
|
-
try {
|
|
428
|
-
return await _asyncStorage.default.getItem('enoch_token');
|
|
429
|
-
} catch (error) {
|
|
430
|
-
console.error('Error getting Enoch token:', error);
|
|
431
|
-
return null;
|
|
432
|
-
}
|
|
433
|
-
};
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Save Enoch authentication token specifically
|
|
437
|
-
* @param token Enoch JWT token
|
|
438
|
-
*/
|
|
439
|
-
exports.getEnochToken = getEnochToken;
|
|
440
|
-
const saveEnochToken = async token => {
|
|
441
|
-
try {
|
|
442
|
-
await _asyncStorage.default.setItem('enoch_token', token);
|
|
443
|
-
await _asyncStorage.default.setItem('auth_token', token); // Also save as general auth token
|
|
444
|
-
} catch (error) {
|
|
445
|
-
console.error('Error saving Enoch token:', error);
|
|
446
|
-
throw error;
|
|
447
|
-
}
|
|
448
|
-
};
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* Verify token with backend
|
|
452
|
-
* @returns Boolean indicating if token is valid
|
|
453
|
-
*/
|
|
454
|
-
exports.saveEnochToken = saveEnochToken;
|
|
455
|
-
const verifyToken = async () => {
|
|
456
|
-
try {
|
|
457
|
-
const token = await getAuthToken();
|
|
458
|
-
if (!token) {
|
|
459
|
-
console.warn('🔒 [TOKEN VERIFY] No token available for verification');
|
|
460
|
-
return false;
|
|
461
|
-
}
|
|
462
|
-
console.log('🔒 [TOKEN VERIFY] Verifying token with backend...');
|
|
463
|
-
console.log('🔒 [TOKEN VERIFY] Token preview:', `${token.substring(0, 20)}...`);
|
|
464
|
-
const response = await fetch(`${API_BASE_URL}/api/auth/verify`, {
|
|
465
|
-
method: 'GET',
|
|
466
|
-
headers: (0, _api.getAuthHeaders)(token)
|
|
467
|
-
});
|
|
468
|
-
console.log('🔒 [TOKEN VERIFY] Verification response status:', response.status);
|
|
469
|
-
if (response.ok) {
|
|
470
|
-
console.log('✅ [TOKEN VERIFY] Token is valid');
|
|
471
|
-
return true;
|
|
472
|
-
} else {
|
|
473
|
-
const errorText = await response.text();
|
|
474
|
-
console.warn('❌ [TOKEN VERIFY] Token verification failed:', response.status, errorText);
|
|
475
|
-
return false;
|
|
476
|
-
}
|
|
477
|
-
} catch (error) {
|
|
478
|
-
console.error('❌ [TOKEN VERIFY] Token verification error:', error);
|
|
479
|
-
return false;
|
|
480
|
-
}
|
|
481
|
-
};
|
|
482
|
-
|
|
483
|
-
/**
|
|
484
|
-
* Get user profile from backend using stored token
|
|
485
|
-
* Note: This endpoint doesn't exist as GET, so we'll try to fetch via other means
|
|
486
|
-
* @returns User profile data
|
|
487
|
-
*/
|
|
488
|
-
exports.verifyToken = verifyToken;
|
|
489
|
-
const getUserProfile = async () => {
|
|
490
|
-
try {
|
|
491
|
-
var _token;
|
|
492
|
-
// Try to get the Enoch token first, then fall back to general auth token
|
|
493
|
-
let token = await getEnochToken();
|
|
494
|
-
if (!token) {
|
|
495
|
-
token = await getAuthToken();
|
|
496
|
-
}
|
|
497
|
-
if (!token) {
|
|
498
|
-
throw new Error('No authentication token found');
|
|
499
|
-
}
|
|
500
|
-
console.log('🔍 Attempting to fetch user profile with token:', ((_token = token) === null || _token === void 0 ? void 0 : _token.substring(0, 20)) + '...');
|
|
501
|
-
|
|
502
|
-
// First try to get profile from Enoch user endpoint
|
|
503
|
-
try {
|
|
504
|
-
console.log('🔍 Attempting to fetch user profile from Enoch endpoint...');
|
|
505
|
-
const response = await fetch(`${API_BASE_URL}/enoch/user/profile`, {
|
|
506
|
-
method: 'GET',
|
|
507
|
-
headers: (0, _api.getAuthHeaders)(token)
|
|
508
|
-
});
|
|
509
|
-
if (response.ok) {
|
|
510
|
-
const userData = await response.json();
|
|
511
|
-
console.log('✅ User profile fetched successfully from Enoch endpoint');
|
|
512
|
-
|
|
513
|
-
// Use JWT user ID if available, otherwise use the response ID
|
|
514
|
-
const userId = userData.id || userData._id;
|
|
515
|
-
|
|
516
|
-
// Transform the response to match expected format
|
|
517
|
-
return {
|
|
518
|
-
id: userId,
|
|
519
|
-
name: userData.name || 'Onairos User',
|
|
520
|
-
email: userData.email,
|
|
521
|
-
description: userData.bio || userData.description || '',
|
|
522
|
-
photoUrl: userData.photoUrl || userData.photo_url || '',
|
|
523
|
-
profilePicture: userData.photoUrl || userData.photo_url || '',
|
|
524
|
-
interests: userData.interests || [],
|
|
525
|
-
verified: userData.verified || false,
|
|
526
|
-
createdAt: userData.createdAt || new Date().toISOString(),
|
|
527
|
-
updatedAt: userData.updatedAt || new Date().toISOString(),
|
|
528
|
-
onboarded: userData.onboarded || false
|
|
529
|
-
};
|
|
530
|
-
} else {
|
|
531
|
-
console.warn('⚠️ Enoch profile endpoint failed:', response.status, await response.text());
|
|
532
|
-
}
|
|
533
|
-
} catch (enochError) {
|
|
534
|
-
console.warn('⚠️ Error with Enoch profile endpoint:', enochError);
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
// Try to create a profile using the POST endpoint (since that's what exists)
|
|
538
|
-
try {
|
|
539
|
-
console.log('🔍 Attempting to create/get profile via POST endpoint...');
|
|
540
|
-
|
|
541
|
-
// Get user data from AsyncStorage (no JWT decoding needed)
|
|
542
|
-
const storedUserEmail = await _asyncStorage.default.getItem('user_email');
|
|
543
|
-
const storedUserName = await _asyncStorage.default.getItem('onairos_username');
|
|
544
|
-
const userEmail = storedUserEmail || 'user@example.com';
|
|
545
|
-
const userName = storedUserName || 'Onairos User';
|
|
546
|
-
console.log('📧 Using stored user email:', userEmail);
|
|
547
|
-
console.log('👤 Using stored user name:', userName);
|
|
548
|
-
|
|
549
|
-
// Try to create/update profile with real user info
|
|
550
|
-
const response = await fetch(`${API_BASE_URL}/api/user/profile`, {
|
|
551
|
-
method: 'PUT',
|
|
552
|
-
// ✅ FIXED: Changed from POST to PUT to match backend
|
|
553
|
-
headers: (0, _api.getAuthHeaders)(token),
|
|
554
|
-
body: JSON.stringify({
|
|
555
|
-
name: userName,
|
|
556
|
-
bio: 'Welcome to Onairos!',
|
|
557
|
-
interests: [],
|
|
558
|
-
photo_url: ''
|
|
559
|
-
})
|
|
560
|
-
});
|
|
561
|
-
if (response.ok) {
|
|
562
|
-
const profileData = await response.json();
|
|
563
|
-
console.log('✅ Profile created/updated successfully:', profileData);
|
|
564
|
-
if (profileData.success && profileData.profile) {
|
|
565
|
-
// Use the response ID from the profile creation
|
|
566
|
-
const userId = profileData.profile.id;
|
|
567
|
-
return {
|
|
568
|
-
id: userId,
|
|
569
|
-
name: profileData.profile.name,
|
|
570
|
-
email: userEmail,
|
|
571
|
-
description: profileData.profile.bio || '',
|
|
572
|
-
photoUrl: profileData.profile.photo_url || '',
|
|
573
|
-
profilePicture: profileData.profile.photo_url || '',
|
|
574
|
-
interests: [],
|
|
575
|
-
verified: false,
|
|
576
|
-
createdAt: profileData.profile.updated_at || new Date().toISOString(),
|
|
577
|
-
updatedAt: profileData.profile.updated_at || new Date().toISOString(),
|
|
578
|
-
onboarded: false
|
|
579
|
-
};
|
|
580
|
-
}
|
|
581
|
-
} else {
|
|
582
|
-
const errorText = await response.text();
|
|
583
|
-
console.warn('⚠️ Profile creation endpoint failed:', response.status, errorText);
|
|
584
|
-
}
|
|
585
|
-
} catch (createError) {
|
|
586
|
-
console.warn('⚠️ Error with profile creation endpoint:', createError);
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
// If all endpoints fail, throw an error instead of returning fallback
|
|
590
|
-
console.error('❌ All profile endpoints failed and no JWT user ID available');
|
|
591
|
-
throw new Error('Unable to determine user ID from authentication token');
|
|
592
|
-
} catch (error) {
|
|
593
|
-
console.error('Error fetching user profile:', error);
|
|
594
|
-
throw error;
|
|
595
|
-
}
|
|
596
|
-
};
|
|
597
|
-
|
|
598
|
-
/**
|
|
599
|
-
* Create or update user profile
|
|
600
|
-
* @param profileData Profile data to create/update
|
|
601
|
-
* @returns Profile response from backend
|
|
602
|
-
*/
|
|
603
|
-
exports.getUserProfile = getUserProfile;
|
|
604
|
-
const createOrUpdateProfile = async profileData => {
|
|
605
|
-
try {
|
|
606
|
-
const token = await getAuthToken();
|
|
607
|
-
if (!token) {
|
|
608
|
-
throw new Error('No authentication token found');
|
|
609
|
-
}
|
|
610
|
-
const response = await fetch(`${API_BASE_URL}/api/user/profile`, {
|
|
611
|
-
method: 'PUT',
|
|
612
|
-
// ✅ FIXED: Changed from POST to PUT to match backend
|
|
613
|
-
headers: (0, _api.getAuthHeaders)(token),
|
|
614
|
-
body: JSON.stringify(profileData)
|
|
615
|
-
});
|
|
616
|
-
if (!response.ok) {
|
|
617
|
-
const errorData = await response.json();
|
|
618
|
-
throw new Error(errorData.message || 'Failed to create/update profile');
|
|
619
|
-
}
|
|
620
|
-
return await response.json();
|
|
621
|
-
} catch (error) {
|
|
622
|
-
console.error('Error creating/updating profile:', error);
|
|
623
|
-
throw error;
|
|
624
|
-
}
|
|
625
|
-
};
|
|
626
|
-
|
|
627
|
-
/**
|
|
628
|
-
* Update user's onboarded status
|
|
629
|
-
* @returns Promise that resolves when update is successful
|
|
630
|
-
*/
|
|
631
|
-
exports.createOrUpdateProfile = createOrUpdateProfile;
|
|
632
|
-
const updateUserOnboardedStatus = async () => {
|
|
633
|
-
try {
|
|
634
|
-
const token = await getAuthToken();
|
|
635
|
-
if (!token) {
|
|
636
|
-
throw new Error('No authentication token found');
|
|
637
|
-
}
|
|
638
|
-
const response = await fetch(`${API_BASE_URL}/enoch/auth/update-onboarded`, {
|
|
639
|
-
method: 'POST',
|
|
640
|
-
headers: (0, _api.getAuthHeaders)(token),
|
|
641
|
-
body: JSON.stringify({
|
|
642
|
-
onboarded: true
|
|
643
|
-
})
|
|
644
|
-
});
|
|
645
|
-
if (!response.ok) {
|
|
646
|
-
throw new Error('Failed to update onboarded status');
|
|
647
|
-
}
|
|
648
|
-
} catch (error) {
|
|
649
|
-
console.error('Error updating onboarded status:', error);
|
|
650
|
-
throw error;
|
|
651
|
-
}
|
|
652
|
-
};
|
|
653
|
-
|
|
654
|
-
/**
|
|
655
|
-
* Fetch the current timer status from the backend
|
|
656
|
-
* @returns Timer information including expiry and duration
|
|
657
|
-
*/
|
|
658
|
-
exports.updateUserOnboardedStatus = updateUserOnboardedStatus;
|
|
659
|
-
const getEventTimer = async () => {
|
|
660
|
-
try {
|
|
661
|
-
const token = await getAuthToken();
|
|
662
|
-
console.log('🕐 Starting timer fetch. Token available:', !!token);
|
|
663
|
-
|
|
664
|
-
// Enhanced token logging for debugging
|
|
665
|
-
if (token) {
|
|
666
|
-
console.log('🔑 [TOKEN DEBUG] Token preview:', `${token.substring(0, 20)}...`);
|
|
667
|
-
console.log('🔑 [TOKEN DEBUG] Token length:', token.length);
|
|
668
|
-
|
|
669
|
-
// Check if token looks like a JWT
|
|
670
|
-
const tokenParts = token.split('.');
|
|
671
|
-
if (tokenParts.length === 3) {
|
|
672
|
-
console.log('🔑 [TOKEN DEBUG] Token appears to be a valid JWT format (3 parts)');
|
|
673
|
-
} else {
|
|
674
|
-
console.warn('🔑 [TOKEN DEBUG] Token does not appear to be JWT format (expected 3 parts, got', tokenParts.length, ')');
|
|
675
|
-
}
|
|
676
|
-
} else {
|
|
677
|
-
console.warn('🔑 [TOKEN DEBUG] No token available - will only try public endpoint');
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
// Try authenticated endpoint first if we have a token
|
|
681
|
-
if (token) {
|
|
682
|
-
try {
|
|
683
|
-
console.log('🕐 Fetching timer from authenticated endpoint:', `${API_BASE_URL}/enoch/event/timer`);
|
|
684
|
-
const response = await fetch(`${API_BASE_URL}/enoch/event/timer`, {
|
|
685
|
-
method: 'GET',
|
|
686
|
-
headers: (0, _api.getAuthHeaders)(token)
|
|
687
|
-
});
|
|
688
|
-
if (response.ok) {
|
|
689
|
-
const timerData = await response.json();
|
|
690
|
-
console.log('✅ Timer data received from authenticated endpoint:', timerData);
|
|
691
|
-
|
|
692
|
-
// Handle both direct timer data and wrapped response formats
|
|
693
|
-
if (timerData.success !== undefined) {
|
|
694
|
-
// If wrapped in success object, extract the timer data
|
|
695
|
-
return timerData.success ? timerData : timerData;
|
|
696
|
-
} else {
|
|
697
|
-
// Direct timer data format
|
|
698
|
-
return timerData;
|
|
699
|
-
}
|
|
700
|
-
} else {
|
|
701
|
-
const errorText = await response.text();
|
|
702
|
-
console.warn('⚠️ Authenticated timer endpoint failed:', response.status, errorText);
|
|
703
|
-
|
|
704
|
-
// Enhanced logging for token-related issues
|
|
705
|
-
if (response.status === 403) {
|
|
706
|
-
console.error('🚫 [TOKEN ERROR] 403 Forbidden - Token validation failed');
|
|
707
|
-
console.error('🔍 [TOKEN ERROR] This likely indicates an invalid or expired token');
|
|
708
|
-
console.error('🔍 [TOKEN ERROR] Token used:', token ? `${token.substring(0, 20)}...` : 'No token');
|
|
709
|
-
console.error('🔍 [TOKEN ERROR] Full error response:', errorText);
|
|
710
|
-
|
|
711
|
-
// Try to parse error response for more details
|
|
712
|
-
try {
|
|
713
|
-
const errorData = JSON.parse(errorText);
|
|
714
|
-
if (errorData.error) {
|
|
715
|
-
console.error('🔍 [TOKEN ERROR] Backend error message:', errorData.error);
|
|
716
|
-
}
|
|
717
|
-
if (errorData.code) {
|
|
718
|
-
console.error('🔍 [TOKEN ERROR] Error code:', errorData.code);
|
|
719
|
-
}
|
|
720
|
-
} catch (parseError) {
|
|
721
|
-
console.error('🔍 [TOKEN ERROR] Could not parse error response');
|
|
722
|
-
}
|
|
723
|
-
} else if (response.status === 401) {
|
|
724
|
-
console.error('🚫 [AUTH ERROR] 401 Unauthorized - Missing or invalid authentication');
|
|
725
|
-
console.error('🔍 [AUTH ERROR] Token used:', token ? `${token.substring(0, 20)}...` : 'No token');
|
|
726
|
-
} else {
|
|
727
|
-
console.error('🚫 [API ERROR] Unexpected error status:', response.status);
|
|
728
|
-
console.error('🔍 [API ERROR] Token used:', token ? `${token.substring(0, 20)}...` : 'No token');
|
|
729
|
-
}
|
|
730
|
-
}
|
|
731
|
-
} catch (authError) {
|
|
732
|
-
console.warn('⚠️ Error with authenticated timer endpoint:', authError);
|
|
733
|
-
console.error('🔍 [NETWORK ERROR] Failed to reach authenticated timer endpoint');
|
|
734
|
-
console.error('🔍 [NETWORK ERROR] Token used:', token ? `${token.substring(0, 20)}...` : 'No token');
|
|
735
|
-
console.error('🔍 [NETWORK ERROR] Error details:', authError instanceof Error ? authError.message : authError);
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
// Try public endpoint as fallback
|
|
740
|
-
try {
|
|
741
|
-
console.log('🕐 Fetching timer from public endpoint:', `${API_BASE_URL}/enoch/event/public/timer`);
|
|
742
|
-
const response = await fetch(`${API_BASE_URL}/enoch/event/public/timer`, {
|
|
743
|
-
method: 'GET',
|
|
744
|
-
headers: (0, _api.getApiHeaders)()
|
|
745
|
-
});
|
|
746
|
-
if (response.ok) {
|
|
747
|
-
const timerData = await response.json();
|
|
748
|
-
console.log('✅ Timer data received from public endpoint:', timerData);
|
|
749
|
-
|
|
750
|
-
// Handle both direct timer data and wrapped response formats
|
|
751
|
-
if (timerData.success !== undefined) {
|
|
752
|
-
// If wrapped in success object, extract the timer data
|
|
753
|
-
return timerData.success ? timerData : timerData;
|
|
754
|
-
} else {
|
|
755
|
-
// Direct timer data format
|
|
756
|
-
return timerData;
|
|
757
|
-
}
|
|
758
|
-
} else {
|
|
759
|
-
const errorText = await response.text();
|
|
760
|
-
console.warn('⚠️ Public timer endpoint failed:', response.status, errorText);
|
|
761
|
-
}
|
|
762
|
-
} catch (publicError) {
|
|
763
|
-
console.warn('⚠️ Error with public timer endpoint:', publicError);
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
// If both API endpoints fail, provide a realistic fallback timer
|
|
767
|
-
console.log('⚠️ Both timer endpoints failed, using fallback timer');
|
|
768
|
-
const nowInSeconds = Math.floor(Date.now() / 1000);
|
|
769
|
-
const eventTimeInSeconds = nowInSeconds + 3600; // 1 hour from now
|
|
770
|
-
const secondsRemaining = eventTimeInSeconds - nowInSeconds;
|
|
771
|
-
|
|
772
|
-
// Calculate countdown components
|
|
773
|
-
const days = Math.floor(secondsRemaining / (24 * 60 * 60));
|
|
774
|
-
const hours = Math.floor(secondsRemaining % (24 * 60 * 60) / (60 * 60));
|
|
775
|
-
const minutes = Math.floor(secondsRemaining % (60 * 60) / 60);
|
|
776
|
-
const seconds = Math.floor(secondsRemaining % 60);
|
|
777
|
-
return {
|
|
778
|
-
timerExpiry: eventTimeInSeconds,
|
|
779
|
-
timerDuration: 3600,
|
|
780
|
-
isReady: false,
|
|
781
|
-
testMode: true,
|
|
782
|
-
countdown: {
|
|
783
|
-
total: secondsRemaining,
|
|
784
|
-
days,
|
|
785
|
-
hours,
|
|
786
|
-
minutes,
|
|
787
|
-
seconds
|
|
788
|
-
}
|
|
789
|
-
};
|
|
790
|
-
} catch (error) {
|
|
791
|
-
console.error('❌ Error in getEventTimer:', error);
|
|
792
|
-
|
|
793
|
-
// Final fallback timer (30 minutes)
|
|
794
|
-
const nowInSeconds = Math.floor(Date.now() / 1000);
|
|
795
|
-
const eventTimeInSeconds = nowInSeconds + 1800; // 30 minutes from now
|
|
796
|
-
|
|
797
|
-
return {
|
|
798
|
-
timerExpiry: eventTimeInSeconds,
|
|
799
|
-
timerDuration: 1800,
|
|
800
|
-
isReady: false,
|
|
801
|
-
testMode: true,
|
|
802
|
-
countdown: {
|
|
803
|
-
total: 1800,
|
|
804
|
-
days: 0,
|
|
805
|
-
hours: 0,
|
|
806
|
-
minutes: 30,
|
|
807
|
-
seconds: 0
|
|
808
|
-
}
|
|
809
|
-
};
|
|
810
|
-
}
|
|
811
|
-
};
|
|
812
|
-
|
|
813
|
-
/**
|
|
814
|
-
* Check if a user email has admin privileges
|
|
815
|
-
* @param email User email to check
|
|
816
|
-
* @returns True if user is an admin
|
|
817
|
-
*/
|
|
818
|
-
exports.getEventTimer = getEventTimer;
|
|
819
|
-
const isAdminEmail = email => {
|
|
820
|
-
if (!email) {
|
|
821
|
-
console.log('🔒 [Admin Check] No email provided');
|
|
822
|
-
return false;
|
|
823
|
-
}
|
|
824
|
-
const adminEmails = ['nicholas.berry@onairos.uk', 'zion.darko@onairos.uk', 'admin@enoch.events', 'admin@onairos.uk'];
|
|
825
|
-
const isAdmin = adminEmails.includes(email.toLowerCase());
|
|
826
|
-
if (isAdmin) {
|
|
827
|
-
console.log('🔑 [Admin Check] Admin access granted for:', email);
|
|
828
|
-
} else {
|
|
829
|
-
console.log('🚫 [Admin Check] No admin access for:', email);
|
|
830
|
-
}
|
|
831
|
-
return isAdmin;
|
|
832
|
-
};
|
|
833
|
-
|
|
834
|
-
/**
|
|
835
|
-
* Get the current admin status from AsyncStorage
|
|
836
|
-
* This could be used for caching admin status between sessions
|
|
837
|
-
*/
|
|
838
|
-
exports.isAdminEmail = isAdminEmail;
|
|
839
|
-
const getAdminStatus = async () => {
|
|
840
|
-
try {
|
|
841
|
-
const adminStatus = await _asyncStorage.default.getItem('user_admin_status');
|
|
842
|
-
return adminStatus === 'true';
|
|
843
|
-
} catch (error) {
|
|
844
|
-
console.error('Error getting admin status:', error);
|
|
845
|
-
return false;
|
|
846
|
-
}
|
|
847
|
-
};
|
|
848
|
-
|
|
849
|
-
/**
|
|
850
|
-
* Save admin status to AsyncStorage
|
|
851
|
-
* @param isAdmin Whether the user is an admin
|
|
852
|
-
*/
|
|
853
|
-
exports.getAdminStatus = getAdminStatus;
|
|
854
|
-
const saveAdminStatus = async isAdmin => {
|
|
855
|
-
try {
|
|
856
|
-
await _asyncStorage.default.setItem('user_admin_status', isAdmin.toString());
|
|
857
|
-
} catch (error) {
|
|
858
|
-
console.error('Error saving admin status:', error);
|
|
859
|
-
}
|
|
860
|
-
};
|
|
861
|
-
|
|
862
|
-
/**
|
|
863
|
-
* Get stored Onairos username for API calls
|
|
864
|
-
* This is used for data connector APIs (Reddit, etc.) that need the username
|
|
865
|
-
* @returns Stored username or null if not found
|
|
866
|
-
*/
|
|
867
|
-
exports.saveAdminStatus = saveAdminStatus;
|
|
868
|
-
const getOnairosUsername = async () => {
|
|
869
|
-
try {
|
|
870
|
-
return await _asyncStorage.default.getItem('onairos_username');
|
|
871
|
-
} catch (error) {
|
|
872
|
-
console.error('Error getting Onairos username:', error);
|
|
873
|
-
return null;
|
|
874
|
-
}
|
|
875
|
-
};
|
|
876
|
-
|
|
877
|
-
/**
|
|
878
|
-
* Save Onairos username for API calls
|
|
879
|
-
* @param username Username to store
|
|
880
|
-
*/
|
|
881
|
-
exports.getOnairosUsername = getOnairosUsername;
|
|
882
|
-
const saveOnairosUsername = async username => {
|
|
883
|
-
try {
|
|
884
|
-
await _asyncStorage.default.setItem('onairos_username', username);
|
|
885
|
-
} catch (error) {
|
|
886
|
-
console.error('Error saving Onairos username:', error);
|
|
887
|
-
}
|
|
888
|
-
};
|
|
889
|
-
|
|
890
|
-
/**
|
|
891
|
-
* Check if user has connected Onairos to Enoch before
|
|
892
|
-
* This checks for actual usage/training data, not just account existence
|
|
893
|
-
* @param userIdentifier - Email, username, or user ID to check
|
|
894
|
-
* @returns Promise<boolean> - true if user has connected Onairos features to Enoch
|
|
895
|
-
*/
|
|
896
|
-
exports.saveOnairosUsername = saveOnairosUsername;
|
|
897
|
-
const checkEnochOnairosConnection = async userIdentifier => {
|
|
898
|
-
try {
|
|
899
|
-
console.log('🔍 Checking Enoch-Onairos connection status for:', userIdentifier);
|
|
900
|
-
const token = await getAuthToken();
|
|
901
|
-
const response = await fetch(`${API_BASE_URL}/enoch/user/onairos-connection-status`, {
|
|
902
|
-
method: 'POST',
|
|
903
|
-
headers: token ? (0, _api.getAuthHeaders)(token) : (0, _api.getApiHeaders)(),
|
|
904
|
-
body: JSON.stringify({
|
|
905
|
-
userIdentifier,
|
|
906
|
-
// Can be email, username, or user ID
|
|
907
|
-
checkType: 'comprehensive' // Check training data, connected platforms, etc.
|
|
908
|
-
})
|
|
909
|
-
});
|
|
910
|
-
if (response.ok) {
|
|
911
|
-
const data = await response.json();
|
|
912
|
-
console.log('✅ Enoch-Onairos connection status:', data);
|
|
913
|
-
return {
|
|
914
|
-
hasConnectedOnairos: data.hasConnectedOnairos || false,
|
|
915
|
-
onairosUserId: data.onairosUserId,
|
|
916
|
-
lastConnectedAt: data.lastConnectedAt,
|
|
917
|
-
connectionDetails: data.connectionDetails
|
|
918
|
-
};
|
|
919
|
-
} else {
|
|
920
|
-
console.warn('⚠️ Connection status check failed:', response.status);
|
|
921
|
-
// Default to false if API call fails
|
|
922
|
-
return {
|
|
923
|
-
hasConnectedOnairos: false
|
|
924
|
-
};
|
|
925
|
-
}
|
|
926
|
-
} catch (error) {
|
|
927
|
-
console.error('❌ Error checking Enoch-Onairos connection:', error);
|
|
928
|
-
// Default to false if error occurs
|
|
929
|
-
return {
|
|
930
|
-
hasConnectedOnairos: false
|
|
931
|
-
};
|
|
932
|
-
}
|
|
933
|
-
};
|
|
934
|
-
exports.checkEnochOnairosConnection = checkEnochOnairosConnection;
|
|
935
|
-
//# sourceMappingURL=authService.js.map
|