@onairos/react-native 3.0.0 → 3.0.2

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 (32) hide show
  1. package/lib/commonjs/api/index.js +105 -86
  2. package/lib/commonjs/api/index.js.map +1 -1
  3. package/lib/commonjs/components/OnairosButton.js +21 -13
  4. package/lib/commonjs/components/OnairosButton.js.map +1 -1
  5. package/lib/commonjs/components/UniversalOnboarding.js +18 -0
  6. package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
  7. package/lib/commonjs/index.js +367 -12
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/services/oauthService.js +101 -192
  10. package/lib/commonjs/services/oauthService.js.map +1 -1
  11. package/lib/commonjs/utils/secureStorage.js +129 -42
  12. package/lib/commonjs/utils/secureStorage.js.map +1 -1
  13. package/lib/module/api/index.js +105 -86
  14. package/lib/module/api/index.js.map +1 -1
  15. package/lib/module/components/OnairosButton.js +22 -14
  16. package/lib/module/components/OnairosButton.js.map +1 -1
  17. package/lib/module/components/UniversalOnboarding.js +19 -1
  18. package/lib/module/components/UniversalOnboarding.js.map +1 -1
  19. package/lib/module/index.js +11 -10
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/services/oauthService.js +83 -192
  22. package/lib/module/services/oauthService.js.map +1 -1
  23. package/lib/module/utils/secureStorage.js +129 -42
  24. package/lib/module/utils/secureStorage.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/api/index.ts +86 -101
  27. package/src/components/OnairosButton.tsx +23 -14
  28. package/src/components/UniversalOnboarding.tsx +13 -0
  29. package/src/index.ts +2 -4
  30. package/src/services/oauthService.ts +419 -534
  31. package/src/types/index.ts +5 -0
  32. package/src/utils/secureStorage.ts +140 -57
@@ -4,18 +4,113 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.verifyCredentials = exports.updateCredentials = exports.storeCredentials = exports.hasCredentials = exports.getCredentials = exports.generateDeviceUsername = exports.deleteCredentials = void 0;
7
+ var Keychain = _interopRequireWildcard(require("react-native-keychain"));
7
8
  var _reactNative = require("react-native");
8
- var _crypto = require("./crypto");
9
- // Temporary in-memory storage
10
- let mockStorage = {};
9
+ var _constants = require("../constants");
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
+ // Define OnairosCredentials interface locally to avoid circular dependencies
12
+
13
+ // Create a mock storage for environments without Keychain access (like Expo Go)
14
+ const mockStorage = {};
15
+
16
+ // Check if running in Expo Go or environments without native module access
17
+ const isKeychainAvailable = () => {
18
+ try {
19
+ return typeof Keychain.getGenericPassword === 'function';
20
+ } catch (e) {
21
+ return false;
22
+ }
23
+ };
24
+
25
+ // Wrapper for getGenericPassword that falls back to mock storage
26
+ const safeGetGenericPassword = async options => {
27
+ try {
28
+ if (isKeychainAvailable()) {
29
+ return await Keychain.getGenericPassword(options);
30
+ } else {
31
+ // Fall back to mock storage in memory
32
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
33
+ return mockStorage[key] || null;
34
+ }
35
+ } catch (error) {
36
+ console.warn('Keychain access failed, using mock storage', error);
37
+ // Fall back to mock storage on error
38
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
39
+ return mockStorage[key] || null;
40
+ }
41
+ };
42
+
43
+ // Wrapper for setGenericPassword that falls back to mock storage
44
+ const safeSetGenericPassword = async (username, password, options) => {
45
+ try {
46
+ if (isKeychainAvailable()) {
47
+ return await Keychain.setGenericPassword(username, password, options);
48
+ } else {
49
+ // Fall back to mock storage in memory
50
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
51
+ mockStorage[key] = {
52
+ username,
53
+ password
54
+ };
55
+ return true;
56
+ }
57
+ } catch (error) {
58
+ console.warn('Keychain access failed, using mock storage', error);
59
+ // Fall back to mock storage on error
60
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
61
+ mockStorage[key] = {
62
+ username,
63
+ password
64
+ };
65
+ return true;
66
+ }
67
+ };
68
+
69
+ // Wrapper for resetGenericPassword that falls back to mock storage
70
+ const safeResetGenericPassword = async options => {
71
+ try {
72
+ if (isKeychainAvailable()) {
73
+ return await Keychain.resetGenericPassword(options);
74
+ } else {
75
+ // Fall back to mock storage in memory
76
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
77
+ delete mockStorage[key];
78
+ return true;
79
+ }
80
+ } catch (error) {
81
+ console.warn('Keychain access failed, using mock storage', error);
82
+ // Fall back to mock storage on error
83
+ const key = (options === null || options === void 0 ? void 0 : options.service) || 'default';
84
+ delete mockStorage[key];
85
+ return true;
86
+ }
87
+ };
11
88
 
12
89
  /**
13
90
  * Store credentials in memory (temporary solution)
14
91
  */
15
- const storeCredentials = async (credentials, options = {}) => {
92
+ const storeCredentials = async credentials => {
16
93
  try {
17
- console.log('[Mock] Storing credentials:', credentials.username);
18
- mockStorage[credentials.username] = JSON.stringify(credentials);
94
+ const existingCredentials = await getCredentials();
95
+ const updatedCredentials = {
96
+ ...existingCredentials,
97
+ ...credentials,
98
+ createdAt: (existingCredentials === null || existingCredentials === void 0 ? void 0 : existingCredentials.createdAt) || Date.now()
99
+ };
100
+ const username = updatedCredentials.username;
101
+ if (!username) {
102
+ throw new Error('Username is required for storing credentials');
103
+ }
104
+ const options = {
105
+ service: _constants.STORAGE_KEYS.credentials
106
+ };
107
+
108
+ // Only use secure storage options on real devices
109
+ if (_reactNative.Platform.OS !== 'web' && isKeychainAvailable()) {
110
+ options.accessControl = Keychain.ACCESS_CONTROL.BIOMETRY_ANY_OR_DEVICE_PASSCODE;
111
+ options.accessible = Keychain.ACCESSIBLE.WHEN_UNLOCKED;
112
+ }
113
+ await safeSetGenericPassword(username, JSON.stringify(updatedCredentials), options);
19
114
  return true;
20
115
  } catch (error) {
21
116
  console.error('Error storing credentials:', error);
@@ -27,16 +122,17 @@ const storeCredentials = async (credentials, options = {}) => {
27
122
  * Retrieve credentials from memory (temporary solution)
28
123
  */
29
124
  exports.storeCredentials = storeCredentials;
30
- const getCredentials = async (options = {}) => {
125
+ const getCredentials = async () => {
31
126
  try {
32
- // Get the first stored credential (temporary solution)
33
- const storedCredential = Object.values(mockStorage)[0];
34
- if (!storedCredential) {
35
- return null;
127
+ const credentials = await safeGetGenericPassword({
128
+ service: _constants.STORAGE_KEYS.credentials
129
+ });
130
+ if (credentials) {
131
+ return JSON.parse(credentials.password);
36
132
  }
37
- return JSON.parse(storedCredential);
133
+ return null;
38
134
  } catch (error) {
39
- console.error('Error retrieving credentials:', error);
135
+ console.error('Error getting credentials:', error);
40
136
  return null;
41
137
  }
42
138
  };
@@ -47,9 +143,12 @@ const getCredentials = async (options = {}) => {
47
143
  exports.getCredentials = getCredentials;
48
144
  const hasCredentials = async () => {
49
145
  try {
50
- return Object.keys(mockStorage).length > 0;
146
+ const credentials = await safeGetGenericPassword({
147
+ service: _constants.STORAGE_KEYS.credentials
148
+ });
149
+ return !!credentials;
51
150
  } catch (error) {
52
- console.error('Error checking for credentials:', error);
151
+ console.error('Error checking credentials:', error);
53
152
  return false;
54
153
  }
55
154
  };
@@ -60,7 +159,9 @@ const hasCredentials = async () => {
60
159
  exports.hasCredentials = hasCredentials;
61
160
  const deleteCredentials = async () => {
62
161
  try {
63
- mockStorage = {};
162
+ await safeResetGenericPassword({
163
+ service: _constants.STORAGE_KEYS.credentials
164
+ });
64
165
  return true;
65
166
  } catch (error) {
66
167
  console.error('Error deleting credentials:', error);
@@ -72,45 +173,31 @@ const deleteCredentials = async () => {
72
173
  * Update specific fields in the stored credentials
73
174
  */
74
175
  exports.deleteCredentials = deleteCredentials;
75
- const updateCredentials = async (updates, options = {}) => {
76
- try {
77
- const currentCredentials = await getCredentials(options);
78
- if (!currentCredentials) {
79
- return false;
80
- }
81
- const updatedCredentials = {
82
- ...currentCredentials,
83
- ...updates
84
- };
85
- return await storeCredentials(updatedCredentials, options);
86
- } catch (error) {
87
- console.error('Error updating credentials:', error);
88
- return false;
89
- }
176
+ const updateCredentials = async credentials => {
177
+ return storeCredentials(credentials);
90
178
  };
91
179
 
92
180
  /**
93
181
  * Generate a device-specific unique username
94
182
  */
95
183
  exports.updateCredentials = updateCredentials;
96
- const generateDeviceUsername = async () => {
97
- try {
98
- const deviceInfo = `${_reactNative.Platform.OS}-${_reactNative.Platform.Version}-${Date.now()}`;
99
- const username = `onairos_${(0, _crypto.sha256)(deviceInfo).substring(0, 10)}`;
100
- return username;
101
- } catch (error) {
102
- console.error('Error generating device username:', error);
103
- return `onairos_${Date.now().toString(36)}`;
104
- }
184
+ const generateDeviceUsername = () => {
185
+ const randomId = Math.random().toString(36).substring(2, 10);
186
+ return `dev_${randomId}`;
105
187
  };
106
188
 
107
189
  /**
108
190
  * Verify credentials (temporary mock implementation)
109
191
  */
110
192
  exports.generateDeviceUsername = generateDeviceUsername;
111
- const verifyCredentials = async credentials => {
193
+ const verifyCredentials = async username => {
112
194
  try {
113
- console.log('[Mock] Verifying credentials for:', credentials.username);
195
+ // For Expo Go or development, always return true
196
+ if (!isKeychainAvailable()) {
197
+ return true;
198
+ }
199
+
200
+ // TODO: Implement actual verification with API
114
201
  return true;
115
202
  } catch (error) {
116
203
  console.error('Error verifying credentials:', error);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_crypto","mockStorage","storeCredentials","credentials","options","console","log","username","JSON","stringify","error","exports","getCredentials","storedCredential","Object","values","parse","hasCredentials","keys","length","deleteCredentials","updateCredentials","updates","currentCredentials","updatedCredentials","generateDeviceUsername","deviceInfo","Platform","OS","Version","Date","now","sha256","substring","toString","verifyCredentials"],"sourceRoot":"..\\..\\..\\src","sources":["utils/secureStorage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Keychain","_interopRequireWildcard","require","_reactNative","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","mockStorage","isKeychainAvailable","getGenericPassword","safeGetGenericPassword","options","key","service","error","console","warn","safeSetGenericPassword","username","password","setGenericPassword","safeResetGenericPassword","resetGenericPassword","storeCredentials","credentials","existingCredentials","getCredentials","updatedCredentials","createdAt","Date","now","Error","STORAGE_KEYS","Platform","OS","accessControl","ACCESS_CONTROL","BIOMETRY_ANY_OR_DEVICE_PASSCODE","accessible","ACCESSIBLE","WHEN_UNLOCKED","JSON","stringify","exports","parse","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","randomId","Math","random","toString","substring","verifyCredentials"],"sourceRoot":"..\\..\\..\\src","sources":["utils/secureStorage.ts"],"mappings":"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","ignoreList":[]}
@@ -1,114 +1,133 @@
1
1
  import axios from 'axios';
2
+ import { Platform } from 'react-native';
3
+ import { API_ENDPOINTS } from '../constants';
2
4
 
3
- /**
4
- * Onairos API service for handling API requests
5
- */
5
+ // Check if running in development mode
6
+ const isDevelopmentMode = () => {
7
+ return __DEV__ || process.env.NODE_ENV === 'development';
8
+ };
9
+
10
+ // Create mock response helper
11
+ const createMockResponse = data => {
12
+ return Promise.resolve({
13
+ data
14
+ });
15
+ };
16
+
17
+ // Create API instance
18
+ const apiInstance = axios.create({
19
+ baseURL: API_ENDPOINTS.base,
20
+ timeout: 10000,
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ 'Accept': 'application/json'
24
+ }
25
+ });
26
+
27
+ // Add error handling interceptor
28
+ apiInstance.interceptors.response.use(response => response, error => {
29
+ if (isDevelopmentMode()) {
30
+ console.warn('API error in development mode, using fallback:', error);
31
+ return createMockResponse({
32
+ success: true,
33
+ data: {
34
+ mockData: true
35
+ }
36
+ });
37
+ }
38
+ return Promise.reject(error);
39
+ });
40
+
41
+ // API service with Expo compatibility
6
42
  export const onairosApi = {
7
- baseUrl: 'https://api2.onairos.uk',
8
- /**
9
- * Make a GET request to the API
10
- * @param endpoint The endpoint to request
11
- * @returns The response data
12
- */
13
- get: async endpoint => {
43
+ // Core API methods with fallbacks
44
+ async get(url) {
14
45
  try {
15
- const response = await axios.get(`${onairosApi.baseUrl}/${endpoint}`);
16
- return response.data;
46
+ if (Platform.OS === 'web' && isDevelopmentMode()) {
47
+ return createMockResponse({
48
+ success: true,
49
+ data: {
50
+ mockData: true
51
+ }
52
+ });
53
+ }
54
+ return await apiInstance.get(url);
17
55
  } catch (error) {
18
- console.error(`GET ${endpoint} error:`, error);
56
+ console.error(`GET ${url} error:`, error);
57
+ if (isDevelopmentMode()) {
58
+ return createMockResponse({
59
+ success: true,
60
+ data: {
61
+ mockData: true
62
+ }
63
+ });
64
+ }
19
65
  throw error;
20
66
  }
21
67
  },
22
- /**
23
- * Make a POST request to the API
24
- * @param endpoint The endpoint to request
25
- * @param data The data to send
26
- * @returns The response data
27
- */
28
- post: async (endpoint, data) => {
68
+ async post(url, data) {
29
69
  try {
30
- const response = await axios.post(`${onairosApi.baseUrl}/${endpoint}`, data);
31
- return response.data;
70
+ if (Platform.OS === 'web' && isDevelopmentMode()) {
71
+ return createMockResponse({
72
+ success: true,
73
+ data: {
74
+ mockData: true
75
+ }
76
+ });
77
+ }
78
+ return await apiInstance.post(url, data);
32
79
  } catch (error) {
33
- console.error(`POST ${endpoint} error:`, error);
80
+ console.error(`POST ${url} error:`, error);
81
+ if (isDevelopmentMode()) {
82
+ return createMockResponse({
83
+ success: true,
84
+ data: {
85
+ mockData: true
86
+ }
87
+ });
88
+ }
34
89
  throw error;
35
90
  }
36
91
  },
37
- /**
38
- * Get the server's public key for encryption
39
- * @returns The server's public key
40
- */
41
- getServerPublicKey: async () => {
92
+ // Helper methods for specific API endpoints
93
+ async validateCredentials(username) {
42
94
  try {
43
- const response = await onairosApi.get('public/getPublicKey');
44
- return response.publicKey;
45
- } catch (error) {
46
- console.error('Error getting server public key:', error);
47
- return '';
48
- }
49
- },
50
- /**
51
- * Validate credentials with the server
52
- * @param username The username to validate
53
- * @returns Whether the credentials are valid
54
- */
55
- validateCredentials: async username => {
56
- try {
57
- const response = await onairosApi.post('validate', {
95
+ var _response$data;
96
+ if (isDevelopmentMode()) {
97
+ console.log('Using mock validation for:', username);
98
+ return true;
99
+ }
100
+ const response = await this.post('validate', {
58
101
  username
59
102
  });
60
- return response.valid === true;
103
+ return ((_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.success) || false;
61
104
  } catch (error) {
62
105
  console.error('Error validating credentials:', error);
63
- return false;
106
+ return isDevelopmentMode(); // Return true in dev mode to allow flow to continue
64
107
  }
65
108
  },
66
- /**
67
- * Get account information for a user
68
- * @param username The username to get account info for
69
- * @returns The account information
70
- */
71
- getAccountInfo: async username => {
109
+ async getUserProfile(token) {
72
110
  try {
73
- const response = await onairosApi.post('getAccountInfo', {
74
- Info: {
75
- username
76
- }
77
- });
78
- return response.AccountInfo;
79
- } catch (error) {
80
- console.error('Error getting account info:', error);
81
- return null;
82
- }
83
- },
84
- /**
85
- * Get API URL and token for a user
86
- * @param params The parameters for the request
87
- * @returns The API URL and token
88
- */
89
- getApiUrl: async params => {
90
- try {
91
- const response = await onairosApi.post('getAPIUrlMobile', {
92
- Info: {
93
- storage: 'local',
94
- appId: params.appId,
95
- confirmations: params.confirmations,
96
- developerURL: 'devURL',
97
- EncryptedUserPin: params.encryptedModelKey,
98
- account: params.username,
99
- proofMode: false
100
- }
101
- });
102
- if (response && response.apiUrl && response.token) {
111
+ var _response$data2;
112
+ if (isDevelopmentMode()) {
103
113
  return {
104
- apiUrl: response.apiUrl,
105
- token: response.token
114
+ username: 'demo_user',
115
+ platforms: ['instagram', 'youtube'],
116
+ createdAt: Date.now()
106
117
  };
107
- } else {
108
- throw new Error('Invalid response from getAPIUrlMobile');
109
118
  }
119
+ apiInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
120
+ const response = await this.get('user/profile');
121
+ return (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.data;
110
122
  } catch (error) {
111
- console.error('Error getting API URL:', error);
123
+ console.error('Error fetching user profile:', error);
124
+ if (isDevelopmentMode()) {
125
+ return {
126
+ username: 'demo_user',
127
+ platforms: ['instagram', 'youtube'],
128
+ createdAt: Date.now()
129
+ };
130
+ }
112
131
  throw error;
113
132
  }
114
133
  }
@@ -1 +1 @@
1
- {"version":3,"names":["axios","onairosApi","baseUrl","get","endpoint","response","data","error","console","post","getServerPublicKey","publicKey","validateCredentials","username","valid","getAccountInfo","Info","AccountInfo","getApiUrl","params","storage","appId","confirmations","developerURL","EncryptedUserPin","encryptedModelKey","account","proofMode","apiUrl","token","Error"],"sourceRoot":"..\\..\\..\\src","sources":["api/index.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAG;EACxBC,OAAO,EAAE,yBAAyB;EAElC;AACF;AACA;AACA;AACA;EACEC,GAAG,EAAE,MAAOC,QAAgB,IAAK;IAC/B,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAML,KAAK,CAACG,GAAG,CAAC,GAAGF,UAAU,CAACC,OAAO,IAAIE,QAAQ,EAAE,CAAC;MACrE,OAAOC,QAAQ,CAACC,IAAI;IACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,OAAOH,QAAQ,SAAS,EAAEG,KAAK,CAAC;MAC9C,MAAMA,KAAK;IACb;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEE,IAAI,EAAE,MAAAA,CAAOL,QAAgB,EAAEE,IAAS,KAAK;IAC3C,IAAI;MACF,MAAMD,QAAQ,GAAG,MAAML,KAAK,CAACS,IAAI,CAC/B,GAAGR,UAAU,CAACC,OAAO,IAAIE,QAAQ,EAAE,EACnCE,IACF,CAAC;MACD,OAAOD,QAAQ,CAACC,IAAI;IACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,QAAQH,QAAQ,SAAS,EAAEG,KAAK,CAAC;MAC/C,MAAMA,KAAK;IACb;EACF,CAAC;EAED;AACF;AACA;AACA;EACEG,kBAAkB,EAAE,MAAAA,CAAA,KAAY;IAC9B,IAAI;MACF,MAAML,QAAQ,GAAG,MAAMJ,UAAU,CAACE,GAAG,CAAC,qBAAqB,CAAC;MAC5D,OAAOE,QAAQ,CAACM,SAAS;IAC3B,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxD,OAAO,EAAE;IACX;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEK,mBAAmB,EAAE,MAAOC,QAAgB,IAAK;IAC/C,IAAI;MACF,MAAMR,QAAQ,GAAG,MAAMJ,UAAU,CAACQ,IAAI,CAAC,UAAU,EAAE;QAAEI;MAAS,CAAC,CAAC;MAChE,OAAOR,QAAQ,CAACS,KAAK,KAAK,IAAI;IAChC,CAAC,CAAC,OAAOP,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;MACrD,OAAO,KAAK;IACd;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEQ,cAAc,EAAE,MAAOF,QAAgB,IAAK;IAC1C,IAAI;MACF,MAAMR,QAAQ,GAAG,MAAMJ,UAAU,CAACQ,IAAI,CAAC,gBAAgB,EAAE;QACvDO,IAAI,EAAE;UAAEH;QAAS;MACnB,CAAC,CAAC;MACF,OAAOR,QAAQ,CAACY,WAAW;IAC7B,CAAC,CAAC,OAAOV,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACnD,OAAO,IAAI;IACb;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEW,SAAS,EAAE,MAAOC,MAKjB,IAAK;IACJ,IAAI;MACF,MAAMd,QAAQ,GAAG,MAAMJ,UAAU,CAACQ,IAAI,CAAC,iBAAiB,EAAE;QACxDO,IAAI,EAAE;UACJI,OAAO,EAAE,OAAO;UAChBC,KAAK,EAAEF,MAAM,CAACE,KAAK;UACnBC,aAAa,EAAEH,MAAM,CAACG,aAAa;UACnCC,YAAY,EAAE,QAAQ;UACtBC,gBAAgB,EAAEL,MAAM,CAACM,iBAAiB;UAC1CC,OAAO,EAAEP,MAAM,CAACN,QAAQ;UACxBc,SAAS,EAAE;QACb;MACF,CAAC,CAAC;MAEF,IAAItB,QAAQ,IAAIA,QAAQ,CAACuB,MAAM,IAAIvB,QAAQ,CAACwB,KAAK,EAAE;QACjD,OAAO;UACLD,MAAM,EAAEvB,QAAQ,CAACuB,MAAM;UACvBC,KAAK,EAAExB,QAAQ,CAACwB;QAClB,CAAC;MACH,CAAC,MAAM;QACL,MAAM,IAAIC,KAAK,CAAC,uCAAuC,CAAC;MAC1D;IACF,CAAC,CAAC,OAAOvB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;MAC9C,MAAMA,KAAK;IACb;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["axios","Platform","API_ENDPOINTS","isDevelopmentMode","__DEV__","process","env","NODE_ENV","createMockResponse","data","Promise","resolve","apiInstance","create","baseURL","base","timeout","headers","interceptors","response","use","error","console","warn","success","mockData","reject","onairosApi","get","url","OS","post","validateCredentials","username","_response$data","log","getUserProfile","token","_response$data2","platforms","createdAt","Date","now","defaults","common"],"sourceRoot":"..\\..\\..\\src","sources":["api/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useCallback } from 'react';
2
- import { TouchableOpacity, Text, StyleSheet, View, ActivityIndicator, Alert } from 'react-native';
2
+ import { TouchableOpacity, Text, StyleSheet, View, ActivityIndicator } from 'react-native';
3
3
  import { UniversalOnboarding } from './UniversalOnboarding';
4
4
  import { Overlay } from './Overlay';
5
- import { hasCredentials, getCredentials, clearCredentials } from '../utils/secureStorage';
5
+ import { hasCredentials, getCredentials, deleteCredentials as clearCredentials } from '../utils/secureStorage';
6
6
  import { onairosApi } from '../api';
7
7
 
8
8
  /**
@@ -41,6 +41,7 @@ export const OnairosButton = ({
41
41
  const shouldProceed = await preCheck();
42
42
  if (!shouldProceed) {
43
43
  onRejection === null || onRejection === void 0 || onRejection('Precheck validation failed');
44
+ setIsLoading(false);
44
45
  return;
45
46
  }
46
47
  }
@@ -50,32 +51,39 @@ export const OnairosButton = ({
50
51
  if (hasStoredCreds) {
51
52
  // If credentials exist, fetch them and verify
52
53
  const credentials = await getCredentials();
53
- if (!credentials || !credentials.username || !credentials.userPin) {
54
+ if (!credentials || !credentials.username) {
54
55
  // Invalid credentials, clear and start fresh
55
56
  await clearCredentials();
56
57
  setShowOnboarding(true);
58
+ setIsLoading(false);
57
59
  return;
58
60
  }
61
+ try {
62
+ // Validate credentials with server - catch errors here to prevent crashing
63
+ const isValid = await onairosApi.validateCredentials(credentials.username);
64
+ if (!isValid) {
65
+ // Clear invalid credentials
66
+ await clearCredentials();
67
+ setShowOnboarding(true);
68
+ setIsLoading(false);
69
+ return;
70
+ }
59
71
 
60
- // Validate credentials with server
61
- const isValid = await onairosApi.validateCredentials(credentials.username);
62
- if (!isValid) {
63
- // Clear invalid credentials
64
- await clearCredentials();
72
+ // Store and display overlay with valid credentials
73
+ setStoredCredentials(credentials);
74
+ setShowOverlay(true);
75
+ } catch (validationError) {
76
+ console.warn('Validation error, proceeding to onboarding:', validationError);
65
77
  setShowOnboarding(true);
66
- return;
67
78
  }
68
-
69
- // Store and display overlay with valid credentials
70
- setStoredCredentials(credentials);
71
- setShowOverlay(true);
72
79
  } else {
73
80
  // If no credentials, show onboarding
74
81
  setShowOnboarding(true);
75
82
  }
76
83
  } catch (error) {
77
84
  console.error('Error during button press flow:', error);
78
- Alert.alert('Error', 'An error occurred. Please try again later.');
85
+ // Fall back to onboarding on error
86
+ setShowOnboarding(true);
79
87
  onRejection === null || onRejection === void 0 || onRejection(error instanceof Error ? error.message : 'Unknown error');
80
88
  } finally {
81
89
  setIsLoading(false);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","View","ActivityIndicator","Alert","UniversalOnboarding","Overlay","hasCredentials","getCredentials","clearCredentials","onairosApi","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","userPin","isValid","validateCredentials","error","console","alert","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","style","onPress","disabled","accessibilityLabel","size","Fragment","visible","onClose","onComplete","test","modelKey","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useCallback","TouchableOpacity","Text","StyleSheet","View","ActivityIndicator","UniversalOnboarding","Overlay","hasCredentials","getCredentials","deleteCredentials","clearCredentials","onairosApi","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","credentials","username","isValid","validateCredentials","validationError","console","warn","error","Error","message","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","style","onPress","disabled","accessibilityLabel","size","Fragment","visible","onClose","onComplete","test","modelKey","userPin","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}