@onairos/react-native 3.0.72 โ†’ 3.0.73

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 (47) hide show
  1. package/lib/commonjs/components/Onairos.js.map +1 -1
  2. package/lib/commonjs/index.js +23 -504
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/services/apiKeyService.js +93 -14
  5. package/lib/commonjs/services/apiKeyService.js.map +1 -1
  6. package/lib/commonjs/services/platformAuthService.js +223 -9
  7. package/lib/commonjs/services/platformAuthService.js.map +1 -1
  8. package/lib/commonjs/types/index.js +4 -0
  9. package/lib/commonjs/types.js +12 -0
  10. package/lib/commonjs/types.js.map +1 -1
  11. package/lib/commonjs/utils/programmaticFlow.js +117 -0
  12. package/lib/commonjs/utils/programmaticFlow.js.map +1 -0
  13. package/lib/module/components/Onairos.js.map +1 -1
  14. package/lib/module/index.js +17 -64
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/services/apiKeyService.js +90 -11
  17. package/lib/module/services/apiKeyService.js.map +1 -1
  18. package/lib/module/services/platformAuthService.js +217 -8
  19. package/lib/module/services/platformAuthService.js.map +1 -1
  20. package/lib/module/types/index.js +1 -1
  21. package/lib/module/types.js +8 -0
  22. package/lib/module/types.js.map +1 -1
  23. package/lib/module/utils/programmaticFlow.js +111 -0
  24. package/lib/module/utils/programmaticFlow.js.map +1 -0
  25. package/lib/typescript/components/Onairos.d.ts +1 -29
  26. package/lib/typescript/components/Onairos.d.ts.map +1 -1
  27. package/lib/typescript/index.d.ts +10 -40
  28. package/lib/typescript/index.d.ts.map +1 -1
  29. package/lib/typescript/services/apiKeyService.d.ts +18 -0
  30. package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
  31. package/lib/typescript/services/platformAuthService.d.ts +26 -0
  32. package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
  33. package/lib/typescript/types/index.d.ts +144 -78
  34. package/lib/typescript/types/index.d.ts.map +1 -1
  35. package/lib/typescript/types.d.ts +56 -0
  36. package/lib/typescript/types.d.ts.map +1 -1
  37. package/lib/typescript/utils/programmaticFlow.d.ts +23 -0
  38. package/lib/typescript/utils/programmaticFlow.d.ts.map +1 -0
  39. package/package.json +1 -1
  40. package/src/components/Onairos.tsx +1 -30
  41. package/src/index.ts +23 -132
  42. package/src/services/apiKeyService.ts +84 -8
  43. package/src/services/platformAuthService.ts +260 -4
  44. package/src/types/index.d.ts +110 -0
  45. package/src/types/index.ts +148 -74
  46. package/src/types.ts +59 -0
  47. package/src/utils/programmaticFlow.ts +113 -0
@@ -1,3 +1,14 @@
1
+ // Admin key for backend validation
2
+ export const ADMIN_API_KEY = 'OnairosIsAUnicorn2025';
3
+
4
+ // API key types
5
+ export let ApiKeyType = /*#__PURE__*/function (ApiKeyType) {
6
+ ApiKeyType["DEVELOPER"] = "developer";
7
+ ApiKeyType["ADMIN"] = "admin";
8
+ ApiKeyType["INVALID"] = "invalid";
9
+ return ApiKeyType;
10
+ }({});
11
+
1
12
  /**
2
13
  * API Key Service for Onairos React Native SDK
3
14
  *
@@ -10,6 +21,12 @@
10
21
  * 3. Cache validation results for performance
11
22
  * 4. Include API key in all authenticated requests
12
23
  * 5. Handle API key errors gracefully with developer-friendly messages
24
+ *
25
+ * Backend Integration:
26
+ * - All API requests include: Authorization: Bearer {apiKey}
27
+ * - Backend should validate API keys on each request
28
+ * - Admin key "OnairosIsAUnicorn2025" has full permissions
29
+ * - Developer keys have limited permissions based on validation response
13
30
  */
14
31
 
15
32
  // Global configuration state
@@ -82,6 +99,32 @@ export const initializeApiKey = async config => {
82
99
  }
83
100
  };
84
101
 
102
+ /**
103
+ * Determine API key type
104
+ * @param apiKey The API key to check
105
+ * @returns The type of API key
106
+ */
107
+ export const getApiKeyType = apiKey => {
108
+ if (apiKey === ADMIN_API_KEY) {
109
+ return ApiKeyType.ADMIN;
110
+ }
111
+
112
+ // Developer keys should be at least 32 characters and start with specific prefix
113
+ if (apiKey.length >= 32 && (apiKey.startsWith('dev_') || apiKey.startsWith('pk_'))) {
114
+ return ApiKeyType.DEVELOPER;
115
+ }
116
+ return ApiKeyType.INVALID;
117
+ };
118
+
119
+ /**
120
+ * Check if API key is admin key
121
+ * @param apiKey The API key to check
122
+ * @returns True if admin key
123
+ */
124
+ export const isAdminKey = apiKey => {
125
+ return apiKey === ADMIN_API_KEY;
126
+ };
127
+
85
128
  /**
86
129
  * Validate an API key with the Onairos backend
87
130
  * @param apiKey The API key to validate
@@ -92,6 +135,31 @@ export const validateApiKey = async apiKey => {
92
135
  var _globalConfig2, _globalConfig3;
93
136
  console.log('๐Ÿ” Validating API key...');
94
137
 
138
+ // Check if it's an admin key
139
+ if (isAdminKey(apiKey)) {
140
+ console.log('๐Ÿ”‘ Admin key detected - granting full permissions');
141
+ return {
142
+ isValid: true,
143
+ permissions: ['*'],
144
+ // Full permissions for admin
145
+ rateLimits: {
146
+ remaining: 999999,
147
+ resetTime: Date.now() + 24 * 60 * 60 * 1000 // 24 hours
148
+ },
149
+ keyType: ApiKeyType.ADMIN
150
+ };
151
+ }
152
+
153
+ // Check basic format for developer keys
154
+ const keyType = getApiKeyType(apiKey);
155
+ if (keyType === ApiKeyType.INVALID) {
156
+ return {
157
+ isValid: false,
158
+ error: 'Invalid API key format. Developer keys must be at least 32 characters and start with "dev_" or "pk_"',
159
+ keyType: ApiKeyType.INVALID
160
+ };
161
+ }
162
+
95
163
  // Check cache first
96
164
  const cached = validationCache.get(apiKey);
97
165
  if (cached && Date.now() - cached.timestamp < CACHE_DURATION) {
@@ -114,12 +182,15 @@ export const validateApiKey = async apiKey => {
114
182
  headers: {
115
183
  'Content-Type': 'application/json',
116
184
  'Authorization': `Bearer ${apiKey}`,
117
- 'User-Agent': 'OnairosReactNative/1.0'
185
+ 'User-Agent': 'OnairosReactNative/1.0',
186
+ 'X-API-Key-Type': keyType
118
187
  },
119
188
  body: JSON.stringify({
120
189
  environment,
121
- sdk_version: '3.0.71',
122
- platform: 'react-native'
190
+ sdk_version: '3.0.72',
191
+ platform: 'react-native',
192
+ keyType,
193
+ timestamp: new Date().toISOString()
123
194
  }),
124
195
  signal: controller.signal
125
196
  });
@@ -130,7 +201,8 @@ export const validateApiKey = async apiKey => {
130
201
  const result = {
131
202
  isValid: true,
132
203
  permissions: data.permissions || [],
133
- rateLimits: data.rateLimits || null
204
+ rateLimits: data.rateLimits || null,
205
+ keyType: keyType
134
206
  };
135
207
 
136
208
  // Cache the successful result
@@ -147,7 +219,8 @@ export const validateApiKey = async apiKey => {
147
219
  const errorMessage = data.error || `HTTP ${response.status}: ${response.statusText}`;
148
220
  const result = {
149
221
  isValid: false,
150
- error: errorMessage
222
+ error: errorMessage,
223
+ keyType: keyType
151
224
  };
152
225
 
153
226
  // Don't cache failed results
@@ -163,14 +236,16 @@ export const validateApiKey = async apiKey => {
163
236
  console.error('โฑ๏ธ API key validation timeout');
164
237
  return {
165
238
  isValid: false,
166
- error: errorMessage
239
+ error: errorMessage,
240
+ keyType: keyType
167
241
  };
168
242
  }
169
243
  const errorMessage = `Network error during API key validation: ${fetchError.message}`;
170
244
  console.error('๐ŸŒ Network error during API key validation:', fetchError);
171
245
  return {
172
246
  isValid: false,
173
- error: errorMessage
247
+ error: errorMessage,
248
+ keyType: keyType
174
249
  };
175
250
  }
176
251
  } catch (error) {
@@ -178,7 +253,8 @@ export const validateApiKey = async apiKey => {
178
253
  console.error('โŒ API key validation error:', error);
179
254
  return {
180
255
  isValid: false,
181
- error: errorMessage
256
+ error: errorMessage,
257
+ keyType: ApiKeyType.INVALID
182
258
  };
183
259
  }
184
260
  };
@@ -217,12 +293,15 @@ export const getAuthHeaders = () => {
217
293
  if (!((_globalConfig7 = globalConfig) !== null && _globalConfig7 !== void 0 && _globalConfig7.apiKey)) {
218
294
  throw new Error('SDK not initialized. Call initializeApiKey() first.');
219
295
  }
296
+ const keyType = getApiKeyType(globalConfig.apiKey);
220
297
  return {
221
298
  'Content-Type': 'application/json',
222
299
  'Authorization': `Bearer ${globalConfig.apiKey}`,
223
- 'User-Agent': 'OnairosReactNative/3.0.71',
224
- 'X-SDK-Version': '3.0.71',
225
- 'X-SDK-Environment': globalConfig.environment || 'production'
300
+ 'User-Agent': 'OnairosReactNative/3.0.72',
301
+ 'X-SDK-Version': '3.0.72',
302
+ 'X-SDK-Environment': globalConfig.environment || 'production',
303
+ 'X-API-Key-Type': keyType,
304
+ 'X-Timestamp': new Date().toISOString()
226
305
  };
227
306
  };
228
307
 
@@ -1 +1 @@
1
- {"version":3,"names":["globalConfig","validationCache","Map","isInitialized","CACHE_DURATION","API_ENDPOINTS","production","staging","development","initializeApiKey","config","console","log","apiKey","Error","length","environment","enableLogging","timeout","retryAttempts","apiKeyPrefix","substring","validation","validateApiKey","isValid","error","permissions","rateLimits","_globalConfig2","_globalConfig3","cached","get","Date","now","timestamp","_globalConfig","result","baseUrl","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","sdk_version","platform","signal","clearTimeout","data","json","ok","success","_globalConfig4","set","_globalConfig5","errorMessage","status","statusText","fetchError","name","message","getApiConfig","getApiKey","_globalConfig6","isApiKeyInitialized","getAuthHeaders","_globalConfig7","makeAuthenticatedRequest","endpoint","options","url","startsWith","clearValidationCache","_globalConfig8","clear","resetApiKeyService"],"sourceRoot":"..\\..\\..\\src","sources":["services/apiKeyService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ADMIN_API_KEY","ApiKeyType","globalConfig","validationCache","Map","isInitialized","CACHE_DURATION","API_ENDPOINTS","production","staging","development","initializeApiKey","config","console","log","apiKey","Error","length","environment","enableLogging","timeout","retryAttempts","apiKeyPrefix","substring","validation","validateApiKey","isValid","error","permissions","rateLimits","getApiKeyType","ADMIN","startsWith","DEVELOPER","INVALID","isAdminKey","_globalConfig2","_globalConfig3","remaining","resetTime","Date","now","keyType","cached","get","timestamp","_globalConfig","result","baseUrl","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","sdk_version","platform","toISOString","signal","clearTimeout","data","json","ok","success","_globalConfig4","set","_globalConfig5","errorMessage","status","statusText","fetchError","name","message","getApiConfig","getApiKey","_globalConfig6","isApiKeyInitialized","getAuthHeaders","_globalConfig7","makeAuthenticatedRequest","endpoint","options","url","clearValidationCache","_globalConfig8","clear","resetApiKeyService"],"sourceRoot":"..\\..\\..\\src","sources":["services/apiKeyService.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,51 @@
1
1
  import AsyncStorage from '@react-native-async-storage/async-storage';
2
2
  import { makeAuthenticatedRequest } from './apiKeyService';
3
3
 
4
+ // ๐Ÿ”‘ CRITICAL: Initialize API key service for authentication
5
+ let isApiKeyInitialized = false;
6
+
7
+ /**
8
+ * Initialize the API key service with the admin key for testing
9
+ * This ensures all API requests include proper authentication headers
10
+ */
11
+ export const initializePlatformAuthService = async () => {
12
+ if (isApiKeyInitialized) {
13
+ console.log('๐Ÿ”‘ API key service already initialized');
14
+ return;
15
+ }
16
+ try {
17
+ // Import the initialization function
18
+ const {
19
+ initializeApiKey,
20
+ ADMIN_API_KEY
21
+ } = await import('./apiKeyService');
22
+
23
+ // Initialize with admin key for testing/development
24
+ await initializeApiKey({
25
+ apiKey: ADMIN_API_KEY,
26
+ // 'OnairosIsAUnicorn2025'
27
+ environment: 'development',
28
+ enableLogging: true,
29
+ timeout: 30000
30
+ });
31
+ isApiKeyInitialized = true;
32
+ console.log('โœ… Platform auth service initialized with admin key');
33
+ } catch (error) {
34
+ console.error('โŒ Failed to initialize platform auth service:', error);
35
+ throw error;
36
+ }
37
+ };
38
+
39
+ /**
40
+ * Ensure API key is initialized before making authenticated requests
41
+ */
42
+ const ensureApiKeyInitialized = async () => {
43
+ if (!isApiKeyInitialized) {
44
+ console.log('๐Ÿ”‘ API key not initialized, initializing now...');
45
+ await initializePlatformAuthService();
46
+ }
47
+ };
48
+
4
49
  // Configuration for each platform's authentication
5
50
  let PLATFORM_AUTH_CONFIG = {
6
51
  instagram: {
@@ -761,17 +806,25 @@ export const requestEmailVerification = async (email, testMode = false) => {
761
806
  };
762
807
  }
763
808
 
764
- // In test mode, always return success
809
+ // In test mode, always return success with mock request ID
765
810
  if (testMode) {
766
- console.log('๐Ÿงช Test mode: Always returning success');
811
+ console.log('๐Ÿงช Test mode: Always returning success with mock request ID');
812
+ const mockRequestId = 'test-request-' + Date.now();
813
+
814
+ // Store request info for tracking
815
+ await AsyncStorage.setItem('email_verification_request_id', mockRequestId);
816
+ await AsyncStorage.setItem('email_verification_request_email', email);
767
817
  return {
768
818
  success: true,
769
- message: 'Email verification sent successfully (test mode)'
819
+ message: 'Email verification sent successfully (test mode)',
820
+ requestId: mockRequestId
770
821
  };
771
822
  }
772
823
 
773
824
  // Production mode: Make real API call with API key authentication
774
825
  try {
826
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
827
+ await ensureApiKeyInitialized();
775
828
  const response = await makeAuthenticatedRequest('/email/verification', {
776
829
  method: 'POST',
777
830
  body: JSON.stringify({
@@ -783,9 +836,15 @@ export const requestEmailVerification = async (email, testMode = false) => {
783
836
  console.log('๐Ÿ“ก Email verification API response:', result);
784
837
  if (response.ok && result.success) {
785
838
  console.log('โœ… Email verification request sent');
839
+
840
+ // Store request info for tracking
841
+ const requestId = result.requestId || result.id || 'req-' + Date.now();
842
+ await AsyncStorage.setItem('email_verification_request_id', requestId);
843
+ await AsyncStorage.setItem('email_verification_request_email', email);
786
844
  return {
787
845
  success: true,
788
- message: result.message || 'Email verification sent successfully'
846
+ message: result.message || 'Email verification sent successfully',
847
+ requestId: requestId
789
848
  };
790
849
  } else {
791
850
  console.error('โŒ Email verification request failed:', result.error);
@@ -827,18 +886,27 @@ export const verifyEmailCode = async (email, code, testMode = false) => {
827
886
  };
828
887
  }
829
888
 
830
- // In test mode, always return success
889
+ // In test mode, always return success with mock JWT token
831
890
  if (testMode) {
832
- console.log('๐Ÿงช Test mode: Always returning success');
891
+ console.log('๐Ÿงช Test mode: Always returning success with mock JWT token');
892
+ const mockToken = 'test-jwt-token-' + Date.now();
893
+
894
+ // Store mock token for API requests
895
+ await AsyncStorage.setItem('email_verification_token', mockToken);
896
+ await AsyncStorage.setItem('onairos_jwt_token', mockToken);
897
+ await AsyncStorage.setItem('email_verification_email', email);
833
898
  return {
834
899
  success: true,
835
900
  message: 'Email verification successful (test mode)',
836
- existingUser: false
901
+ existingUser: false,
902
+ jwtToken: mockToken
837
903
  };
838
904
  }
839
905
 
840
906
  // Production mode: Make real API call with API key authentication
841
907
  try {
908
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
909
+ await ensureApiKeyInitialized();
842
910
  const response = await makeAuthenticatedRequest('/email/verification', {
843
911
  method: 'POST',
844
912
  body: JSON.stringify({
@@ -851,10 +919,25 @@ export const verifyEmailCode = async (email, code, testMode = false) => {
851
919
  console.log('๐Ÿ“ก Email verification API response:', result);
852
920
  if (response.ok && result.success) {
853
921
  console.log('โœ… Email verification successful');
922
+
923
+ // ๐ŸŽซ CRITICAL: Store JWT token from email verification response
924
+ const jwtToken = result.token || result.jwtToken || result.jwt || result.authToken;
925
+ if (jwtToken) {
926
+ console.log('๐ŸŽซ Storing JWT token from email verification response');
927
+ await AsyncStorage.setItem('email_verification_token', jwtToken);
928
+ await AsyncStorage.setItem('onairos_jwt_token', jwtToken);
929
+ await AsyncStorage.setItem('enoch_token', jwtToken);
930
+ await AsyncStorage.setItem('auth_token', jwtToken);
931
+ await AsyncStorage.setItem('email_verification_email', email);
932
+ await AsyncStorage.setItem('token_timestamp', Date.now().toString());
933
+ } else {
934
+ console.warn('โš ๏ธ No JWT token received from email verification API');
935
+ }
854
936
  return {
855
937
  success: true,
856
938
  message: result.message || 'Email verification successful',
857
- existingUser: result.existingUser || false
939
+ existingUser: result.existingUser || false,
940
+ jwtToken: jwtToken
858
941
  };
859
942
  } else {
860
943
  console.error('โŒ Email verification failed:', result.error);
@@ -895,6 +978,8 @@ export const checkEmailVerificationStatus = async (email, testMode = false) => {
895
978
 
896
979
  // Production mode: Make real API call with API key authentication
897
980
  try {
981
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
982
+ await ensureApiKeyInitialized();
898
983
  const response = await makeAuthenticatedRequest(`/email/verify/status/${encodeURIComponent(email)}`, {
899
984
  method: 'GET'
900
985
  });
@@ -975,4 +1060,128 @@ export const disconnectPlatform = async (platform, username) => {
975
1060
  };
976
1061
  }
977
1062
  };
1063
+
1064
+ /**
1065
+ * ๐Ÿ” STORE PIN AFTER BIOMETRIC AUTHENTICATION
1066
+ * Send PIN separately to /store-pin/web endpoint after biometric Face ID verification
1067
+ */
1068
+ export const storePinAfterBiometric = async (username, pin, jwtToken) => {
1069
+ try {
1070
+ console.log('๐Ÿ” Storing PIN after biometric authentication for user:', username);
1071
+ console.log('๐Ÿ”‘ PIN length:', pin.length);
1072
+ console.log('๐ŸŽซ JWT token provided:', !!jwtToken);
1073
+ if (!username || !pin) {
1074
+ return {
1075
+ success: false,
1076
+ error: 'Username and PIN are required'
1077
+ };
1078
+ }
1079
+ if (pin.length < 4) {
1080
+ return {
1081
+ success: false,
1082
+ error: 'PIN must be at least 4 digits'
1083
+ };
1084
+ }
1085
+
1086
+ // Get JWT token from storage if not provided
1087
+ let authToken = jwtToken;
1088
+ if (!authToken) {
1089
+ authToken = (await AsyncStorage.getItem('onairos_jwt_token')) || (await AsyncStorage.getItem('enoch_token')) || (await AsyncStorage.getItem('auth_token')) || (await AsyncStorage.getItem('email_verification_token'));
1090
+ }
1091
+ if (!authToken) {
1092
+ console.warn('โš ๏ธ No JWT token available for PIN storage');
1093
+ return {
1094
+ success: false,
1095
+ error: 'No authentication token available'
1096
+ };
1097
+ }
1098
+ console.log('๐Ÿ“ค Sending PIN to /store-pin/web endpoint');
1099
+
1100
+ // Make authenticated request to store PIN
1101
+ const response = await makeAuthenticatedRequest('/store-pin/web', {
1102
+ method: 'POST',
1103
+ headers: {
1104
+ 'Authorization': `Bearer ${authToken}`
1105
+ },
1106
+ body: JSON.stringify({
1107
+ username,
1108
+ pin
1109
+ })
1110
+ });
1111
+ console.log('๐Ÿ“ก PIN storage response status:', response.status);
1112
+ if (!response.ok) {
1113
+ const errorText = await response.text();
1114
+ console.error('โŒ PIN storage failed:', errorText);
1115
+ return {
1116
+ success: false,
1117
+ error: `PIN storage failed: ${response.status} - ${errorText}`
1118
+ };
1119
+ }
1120
+ const result = await response.json();
1121
+ console.log('๐Ÿ“ฅ PIN storage response:', result);
1122
+ if (result.success) {
1123
+ console.log('โœ… PIN stored successfully after biometric authentication');
1124
+
1125
+ // Store PIN locally for future use
1126
+ await AsyncStorage.setItem('user_pin_stored', 'true');
1127
+ await AsyncStorage.setItem('pin_storage_timestamp', Date.now().toString());
1128
+ return {
1129
+ success: true,
1130
+ message: result.message || 'PIN stored successfully'
1131
+ };
1132
+ } else {
1133
+ console.error('โŒ PIN storage API returned error:', result.error);
1134
+ return {
1135
+ success: false,
1136
+ error: result.error || 'PIN storage failed'
1137
+ };
1138
+ }
1139
+ } catch (error) {
1140
+ console.error('โŒ Error storing PIN after biometric authentication:', error);
1141
+ return {
1142
+ success: false,
1143
+ error: error instanceof Error ? error.message : 'PIN storage failed'
1144
+ };
1145
+ }
1146
+ };
1147
+
1148
+ /**
1149
+ * ๐ŸŽซ GET STORED JWT TOKEN
1150
+ * Helper function to retrieve stored JWT token from email verification or other sources
1151
+ */
1152
+ export const getStoredJwtToken = async () => {
1153
+ try {
1154
+ console.log('๐ŸŽซ Retrieving stored JWT token...');
1155
+
1156
+ // Try different storage keys in order of preference
1157
+ const tokenSources = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token'];
1158
+ for (const source of tokenSources) {
1159
+ const token = await AsyncStorage.getItem(source);
1160
+ if (token && token.length > 20) {
1161
+ console.log(`โœ… JWT token found in ${source}:`, token.substring(0, 20) + '...');
1162
+ return token;
1163
+ }
1164
+ }
1165
+ console.warn('โš ๏ธ No JWT token found in storage');
1166
+ return null;
1167
+ } catch (error) {
1168
+ console.error('โŒ Error retrieving JWT token:', error);
1169
+ return null;
1170
+ }
1171
+ };
1172
+
1173
+ /**
1174
+ * ๐ŸŽซ CLEAR STORED TOKENS
1175
+ * Helper function to clear all stored tokens (useful for logout)
1176
+ */
1177
+ export const clearStoredTokens = async () => {
1178
+ try {
1179
+ console.log('๐Ÿงน Clearing all stored tokens...');
1180
+ const tokenKeys = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token', 'email_verification_email', 'email_verification_request_id', 'email_verification_request_email', 'token_timestamp', 'user_pin_stored', 'pin_storage_timestamp'];
1181
+ await Promise.all(tokenKeys.map(key => AsyncStorage.removeItem(key)));
1182
+ console.log('โœ… All tokens cleared successfully');
1183
+ } catch (error) {
1184
+ console.error('โŒ Error clearing tokens:', error);
1185
+ }
1186
+ };
978
1187
  //# sourceMappingURL=platformAuthService.js.map