@onairos/react-native 2.0.5 → 2.0.6

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.
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useConnections = void 0;
7
7
  var _react = require("react");
8
+ var _reactNative = require("react-native");
8
9
  var Keychain = _interopRequireWildcard(require("react-native-keychain"));
9
10
  var _constants = require("../constants");
10
11
  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); }
@@ -12,7 +13,9 @@ const useConnections = () => {
12
13
  const [isConnecting, setIsConnecting] = (0, _react.useState)(false);
13
14
  const getConnectionStatus = (0, _react.useCallback)(async () => {
14
15
  try {
15
- const stored = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.connections);
16
+ const stored = await Keychain.getGenericPassword({
17
+ service: _constants.STORAGE_KEYS.connections
18
+ });
16
19
  if (stored) {
17
20
  return JSON.parse(stored.password);
18
21
  }
@@ -32,23 +35,43 @@ const useConnections = () => {
32
35
  const connectPlatform = (0, _react.useCallback)(async platform => {
33
36
  setIsConnecting(true);
34
37
  try {
35
- // Temporarily disabled OAuth integration
36
- console.log(`OAuth integration temporarily disabled for ${platform}`);
38
+ console.log(`[OAuth] Starting connection for ${platform}`);
37
39
 
38
- // Simulate successful connection for testing
39
- const status = await getConnectionStatus();
40
- status[platform] = {
41
- userName: `Test User (${platform})`,
42
- connected: true
43
- };
44
- await saveConnectionStatus(status);
40
+ // Get OAuth URL from API
41
+ const oauthEndpoint = _constants.API_ENDPOINTS.oauth[platform];
42
+ if (!oauthEndpoint) {
43
+ throw new Error(`No OAuth endpoint configured for ${platform}`);
44
+ }
45
+ const apiUrl = `${_constants.API_ENDPOINTS.base}${oauthEndpoint}`;
46
+ console.log(`[OAuth] Fetching URL from: ${apiUrl}`);
47
+ const response = await fetch(apiUrl);
48
+ if (!response.ok) {
49
+ throw new Error(`API request failed with status ${response.status}`);
50
+ }
51
+ const {
52
+ url
53
+ } = await response.json();
54
+ if (!url) {
55
+ throw new Error('No OAuth URL received from API');
56
+ }
57
+ console.log(`[OAuth] Opening URL: ${url}`);
58
+
59
+ // Check if URL can be opened
60
+ const canOpen = await _reactNative.Linking.canOpenURL(url);
61
+ if (!canOpen) {
62
+ throw new Error(`Cannot open URL: ${url}`);
63
+ }
64
+
65
+ // Open OAuth URL
66
+ await _reactNative.Linking.openURL(url);
67
+ console.log(`[OAuth] URL opened successfully`);
45
68
  } catch (error) {
46
- console.error(`Error connecting to ${platform}:`, error);
69
+ console.error(`[OAuth] Error connecting to ${platform}:`, error);
47
70
  throw error;
48
71
  } finally {
49
72
  setIsConnecting(false);
50
73
  }
51
- }, [getConnectionStatus, saveConnectionStatus]);
74
+ }, []);
52
75
  const disconnectPlatform = (0, _react.useCallback)(async platform => {
53
76
  try {
54
77
  const status = await getConnectionStatus();
@@ -61,9 +84,10 @@ const useConnections = () => {
61
84
  }, [getConnectionStatus, saveConnectionStatus]);
62
85
  const handleOAuthCallback = (0, _react.useCallback)(async (platform, data) => {
63
86
  try {
87
+ console.log(`[OAuth] Handling callback for ${platform}:`, data);
64
88
  const status = await getConnectionStatus();
65
89
  status[platform] = {
66
- userName: data.userName || `Test User (${platform})`,
90
+ userName: data.userName || `User (${platform})`,
67
91
  connected: true
68
92
  };
69
93
  await saveConnectionStatus(status);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","Keychain","_interopRequireWildcard","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useConnections","isConnecting","setIsConnecting","useState","getConnectionStatus","useCallback","stored","getGenericPassword","STORAGE_KEYS","connections","JSON","parse","password","error","console","saveConnectionStatus","status","setGenericPassword","stringify","connectPlatform","platform","log","userName","connected","disconnectPlatform","handleOAuthCallback","data","exports"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useConnections.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","Keychain","_interopRequireWildcard","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useConnections","isConnecting","setIsConnecting","useState","getConnectionStatus","useCallback","stored","getGenericPassword","service","STORAGE_KEYS","connections","JSON","parse","password","error","console","saveConnectionStatus","status","setGenericPassword","stringify","connectPlatform","platform","log","oauthEndpoint","API_ENDPOINTS","oauth","Error","apiUrl","base","response","fetch","ok","url","json","canOpen","Linking","canOpenURL","openURL","disconnectPlatform","handleOAuthCallback","data","userName","connected","exports"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useConnections.ts"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,9 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
11
11
  const useCredentials = () => {
12
12
  const hasCredentials = (0, _react.useCallback)(async () => {
13
13
  try {
14
- const credentials = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.credentials);
14
+ const credentials = await Keychain.getGenericPassword({
15
+ service: _constants.STORAGE_KEYS.credentials
16
+ });
15
17
  return !!credentials;
16
18
  } catch (error) {
17
19
  console.error('Error checking credentials:', error);
@@ -20,7 +22,9 @@ const useCredentials = () => {
20
22
  }, []);
21
23
  const getCredentials = (0, _react.useCallback)(async () => {
22
24
  try {
23
- const credentials = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.credentials);
25
+ const credentials = await Keychain.getGenericPassword({
26
+ service: _constants.STORAGE_KEYS.credentials
27
+ });
24
28
  if (credentials) {
25
29
  return JSON.parse(credentials.password);
26
30
  }
@@ -32,11 +36,15 @@ const useCredentials = () => {
32
36
  }, []);
33
37
  const storeCredentials = (0, _react.useCallback)(async (username, userPin, accessToken) => {
34
38
  try {
35
- await Keychain.setGenericPassword(_constants.STORAGE_KEYS.credentials, JSON.stringify({
36
- username,
39
+ const options = {
40
+ accessControl: Keychain.ACCESS_CONTROL.BIOMETRY_ANY,
41
+ accessible: Keychain.ACCESSIBLE.WHEN_UNLOCKED,
42
+ service: _constants.STORAGE_KEYS.credentials
43
+ };
44
+ await Keychain.setGenericPassword(username, JSON.stringify({
37
45
  userPin,
38
46
  accessToken
39
- }));
47
+ }), options);
40
48
  return true;
41
49
  } catch (error) {
42
50
  console.error('Error storing credentials:', error);
@@ -45,7 +53,9 @@ const useCredentials = () => {
45
53
  }, []);
46
54
  const clearCredentials = (0, _react.useCallback)(async () => {
47
55
  try {
48
- await Keychain.resetGenericPassword(_constants.STORAGE_KEYS.credentials);
56
+ await Keychain.resetGenericPassword({
57
+ service: _constants.STORAGE_KEYS.credentials
58
+ });
49
59
  } catch (error) {
50
60
  console.error('Error clearing credentials:', error);
51
61
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","Keychain","_interopRequireWildcard","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useCredentials","hasCredentials","useCallback","credentials","getGenericPassword","STORAGE_KEYS","error","console","getCredentials","JSON","parse","password","storeCredentials","username","userPin","accessToken","setGenericPassword","stringify","clearCredentials","resetGenericPassword","validateCredentials","response","fetch","method","headers","body","data","json","isValid","valid","exports"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useCredentials.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","Keychain","_interopRequireWildcard","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useCredentials","hasCredentials","useCallback","credentials","getGenericPassword","service","STORAGE_KEYS","error","console","getCredentials","JSON","parse","password","storeCredentials","username","userPin","accessToken","options","accessControl","ACCESS_CONTROL","BIOMETRY_ANY","accessible","ACCESSIBLE","WHEN_UNLOCKED","setGenericPassword","stringify","clearCredentials","resetGenericPassword","validateCredentials","response","fetch","method","headers","body","data","json","isValid","valid","exports"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useCredentials.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,14 @@
1
1
  import { useState, useCallback } from 'react';
2
+ import { Linking } from 'react-native';
2
3
  import * as Keychain from 'react-native-keychain';
3
- import { STORAGE_KEYS } from '../constants';
4
+ import { API_ENDPOINTS, STORAGE_KEYS } from '../constants';
4
5
  export const useConnections = () => {
5
6
  const [isConnecting, setIsConnecting] = useState(false);
6
7
  const getConnectionStatus = useCallback(async () => {
7
8
  try {
8
- const stored = await Keychain.getGenericPassword(STORAGE_KEYS.connections);
9
+ const stored = await Keychain.getGenericPassword({
10
+ service: STORAGE_KEYS.connections
11
+ });
9
12
  if (stored) {
10
13
  return JSON.parse(stored.password);
11
14
  }
@@ -25,23 +28,43 @@ export const useConnections = () => {
25
28
  const connectPlatform = useCallback(async platform => {
26
29
  setIsConnecting(true);
27
30
  try {
28
- // Temporarily disabled OAuth integration
29
- console.log(`OAuth integration temporarily disabled for ${platform}`);
31
+ console.log(`[OAuth] Starting connection for ${platform}`);
30
32
 
31
- // Simulate successful connection for testing
32
- const status = await getConnectionStatus();
33
- status[platform] = {
34
- userName: `Test User (${platform})`,
35
- connected: true
36
- };
37
- await saveConnectionStatus(status);
33
+ // Get OAuth URL from API
34
+ const oauthEndpoint = API_ENDPOINTS.oauth[platform];
35
+ if (!oauthEndpoint) {
36
+ throw new Error(`No OAuth endpoint configured for ${platform}`);
37
+ }
38
+ const apiUrl = `${API_ENDPOINTS.base}${oauthEndpoint}`;
39
+ console.log(`[OAuth] Fetching URL from: ${apiUrl}`);
40
+ const response = await fetch(apiUrl);
41
+ if (!response.ok) {
42
+ throw new Error(`API request failed with status ${response.status}`);
43
+ }
44
+ const {
45
+ url
46
+ } = await response.json();
47
+ if (!url) {
48
+ throw new Error('No OAuth URL received from API');
49
+ }
50
+ console.log(`[OAuth] Opening URL: ${url}`);
51
+
52
+ // Check if URL can be opened
53
+ const canOpen = await Linking.canOpenURL(url);
54
+ if (!canOpen) {
55
+ throw new Error(`Cannot open URL: ${url}`);
56
+ }
57
+
58
+ // Open OAuth URL
59
+ await Linking.openURL(url);
60
+ console.log(`[OAuth] URL opened successfully`);
38
61
  } catch (error) {
39
- console.error(`Error connecting to ${platform}:`, error);
62
+ console.error(`[OAuth] Error connecting to ${platform}:`, error);
40
63
  throw error;
41
64
  } finally {
42
65
  setIsConnecting(false);
43
66
  }
44
- }, [getConnectionStatus, saveConnectionStatus]);
67
+ }, []);
45
68
  const disconnectPlatform = useCallback(async platform => {
46
69
  try {
47
70
  const status = await getConnectionStatus();
@@ -54,9 +77,10 @@ export const useConnections = () => {
54
77
  }, [getConnectionStatus, saveConnectionStatus]);
55
78
  const handleOAuthCallback = useCallback(async (platform, data) => {
56
79
  try {
80
+ console.log(`[OAuth] Handling callback for ${platform}:`, data);
57
81
  const status = await getConnectionStatus();
58
82
  status[platform] = {
59
- userName: data.userName || `Test User (${platform})`,
83
+ userName: data.userName || `User (${platform})`,
60
84
  connected: true
61
85
  };
62
86
  await saveConnectionStatus(status);
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useCallback","Keychain","STORAGE_KEYS","useConnections","isConnecting","setIsConnecting","getConnectionStatus","stored","getGenericPassword","connections","JSON","parse","password","error","console","saveConnectionStatus","status","setGenericPassword","stringify","connectPlatform","platform","log","userName","connected","disconnectPlatform","handleOAuthCallback","data"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useConnections.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useCallback","Linking","Keychain","API_ENDPOINTS","STORAGE_KEYS","useConnections","isConnecting","setIsConnecting","getConnectionStatus","stored","getGenericPassword","service","connections","JSON","parse","password","error","console","saveConnectionStatus","status","setGenericPassword","stringify","connectPlatform","platform","log","oauthEndpoint","oauth","Error","apiUrl","base","response","fetch","ok","url","json","canOpen","canOpenURL","openURL","disconnectPlatform","handleOAuthCallback","data","userName","connected"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useConnections.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,9 @@ import { STORAGE_KEYS } from '../constants';
4
4
  export const useCredentials = () => {
5
5
  const hasCredentials = useCallback(async () => {
6
6
  try {
7
- const credentials = await Keychain.getGenericPassword(STORAGE_KEYS.credentials);
7
+ const credentials = await Keychain.getGenericPassword({
8
+ service: STORAGE_KEYS.credentials
9
+ });
8
10
  return !!credentials;
9
11
  } catch (error) {
10
12
  console.error('Error checking credentials:', error);
@@ -13,7 +15,9 @@ export const useCredentials = () => {
13
15
  }, []);
14
16
  const getCredentials = useCallback(async () => {
15
17
  try {
16
- const credentials = await Keychain.getGenericPassword(STORAGE_KEYS.credentials);
18
+ const credentials = await Keychain.getGenericPassword({
19
+ service: STORAGE_KEYS.credentials
20
+ });
17
21
  if (credentials) {
18
22
  return JSON.parse(credentials.password);
19
23
  }
@@ -25,11 +29,15 @@ export const useCredentials = () => {
25
29
  }, []);
26
30
  const storeCredentials = useCallback(async (username, userPin, accessToken) => {
27
31
  try {
28
- await Keychain.setGenericPassword(STORAGE_KEYS.credentials, JSON.stringify({
29
- username,
32
+ const options = {
33
+ accessControl: Keychain.ACCESS_CONTROL.BIOMETRY_ANY,
34
+ accessible: Keychain.ACCESSIBLE.WHEN_UNLOCKED,
35
+ service: STORAGE_KEYS.credentials
36
+ };
37
+ await Keychain.setGenericPassword(username, JSON.stringify({
30
38
  userPin,
31
39
  accessToken
32
- }));
40
+ }), options);
33
41
  return true;
34
42
  } catch (error) {
35
43
  console.error('Error storing credentials:', error);
@@ -38,7 +46,9 @@ export const useCredentials = () => {
38
46
  }, []);
39
47
  const clearCredentials = useCallback(async () => {
40
48
  try {
41
- await Keychain.resetGenericPassword(STORAGE_KEYS.credentials);
49
+ await Keychain.resetGenericPassword({
50
+ service: STORAGE_KEYS.credentials
51
+ });
42
52
  } catch (error) {
43
53
  console.error('Error clearing credentials:', error);
44
54
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Keychain","STORAGE_KEYS","useCredentials","hasCredentials","credentials","getGenericPassword","error","console","getCredentials","JSON","parse","password","storeCredentials","username","userPin","accessToken","setGenericPassword","stringify","clearCredentials","resetGenericPassword","validateCredentials","response","fetch","method","headers","body","data","json","isValid","valid"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useCredentials.ts"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AACjD,SAASC,YAAY,QAAQ,cAAc;AAG3C,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,cAAc,GAAGJ,WAAW,CAAC,YAA8B;IAC/D,IAAI;MACF,MAAMK,WAAW,GAAG,MAAMJ,QAAQ,CAACK,kBAAkB,CAACJ,YAAY,CAACG,WAAW,CAAC;MAC/E,OAAO,CAAC,CAACA,WAAW;IACtB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACnD,OAAO,KAAK;IACd;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,cAAc,GAAGT,WAAW,CAAC,YAAY;IAC7C,IAAI;MACF,MAAMK,WAAW,GAAG,MAAMJ,QAAQ,CAACK,kBAAkB,CAACJ,YAAY,CAACG,WAAW,CAAC;MAC/E,IAAIA,WAAW,EAAE;QACf,OAAOK,IAAI,CAACC,KAAK,CAACN,WAAW,CAACO,QAAQ,CAAC;MACzC;MACA,OAAO,IAAI;IACb,CAAC,CAAC,OAAOL,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;MAClD,OAAO,IAAI;IACb;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMM,gBAAgB,GAAGb,WAAW,CAAC,OACnCc,QAAgB,EAChBC,OAAe,EACfC,WAAmB,KACE;IACrB,IAAI;MACF,MAAMf,QAAQ,CAACgB,kBAAkB,CAC/Bf,YAAY,CAACG,WAAW,EACxBK,IAAI,CAACQ,SAAS,CAAC;QAAEJ,QAAQ;QAAEC,OAAO;QAAEC;MAAY,CAAC,CACnD,CAAC;MACD,OAAO,IAAI;IACb,CAAC,CAAC,OAAOT,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;MAClD,OAAO,KAAK;IACd;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMY,gBAAgB,GAAGnB,WAAW,CAAC,YAA2B;IAC9D,IAAI;MACF,MAAMC,QAAQ,CAACmB,oBAAoB,CAAClB,YAAY,CAACG,WAAW,CAAC;IAC/D,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IACrD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMc,mBAAmB,GAAGrB,WAAW,CAAC,MAAOc,QAAgB,IAAiC;IAC9F,IAAI;MACF,MAAMQ,QAAQ,GAAG,MAAMC,KAAK,CAAC,kCAAkC,EAAE;QAC/DC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE;QAClB,CAAC;QACDC,IAAI,EAAEhB,IAAI,CAACQ,SAAS,CAAC;UAAEJ;QAAS,CAAC;MACnC,CAAC,CAAC;MAEF,MAAMa,IAAI,GAAG,MAAML,QAAQ,CAACM,IAAI,CAAC,CAAC;MAClC,OAAO;QACLC,OAAO,EAAEF,IAAI,CAACG,KAAK;QACnBzB,WAAW,EAAEsB,IAAI,CAACtB;MACpB,CAAC;IACH,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;MACrD,OAAO;QAAEsB,OAAO,EAAE;MAAM,CAAC;IAC3B;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLzB,cAAc;IACdK,cAAc;IACdI,gBAAgB;IAChBM,gBAAgB;IAChBE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Keychain","STORAGE_KEYS","useCredentials","hasCredentials","credentials","getGenericPassword","service","error","console","getCredentials","JSON","parse","password","storeCredentials","username","userPin","accessToken","options","accessControl","ACCESS_CONTROL","BIOMETRY_ANY","accessible","ACCESSIBLE","WHEN_UNLOCKED","setGenericPassword","stringify","clearCredentials","resetGenericPassword","validateCredentials","response","fetch","method","headers","body","data","json","isValid","valid"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useCredentials.ts"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,12 @@
1
- import OnairosButton from './components/OnairosButton';
2
- import * as AuthUtils from './utils/auth';
3
- import * as CryptoUtils from './utils/crypto';
4
- import * as ApiUtils from './utils/api';
5
-
6
- // Export the main component
7
- export default OnairosButton;
8
-
9
- // Export utilities for advanced usage
10
- export { AuthUtils, CryptoUtils, ApiUtils };
11
- //# sourceMappingURL=index.js.mapxport { LoadingScreen } from './components/screens/LoadingScreen';
1
+ // Components
2
+ export { OnairosButton } from './components/OnairosButton';
3
+ export { UniversalOnboarding } from './components/UniversalOnboarding';
4
+ export { Overlay } from './components/Overlay';
5
+
6
+ // Screen Components
7
+ export { ConnectorScreen } from './components/screens/ConnectorScreen';
8
+ export { PinCreationScreen } from './components/screens/PinCreationScreen';
9
+ export { LoadingScreen } from './components/screens/LoadingScreen';
12
10
 
13
11
  // Onboarding Components
14
12
  export { OAuthWebView } from './components/onboarding/OAuthWebView';
@@ -1 +1 @@
1
- {"version":3,"names":["OnairosButton","AuthUtils","CryptoUtils","ApiUtils"],"sourceRoot":"..\\..\\src","sources":["index.js"],"mappings":"AAAA,OAAOA,aAAa,MAAM,4BAA4B;AACtD,OAAO,KAAKC,SAAS,MAAM,cAAc;AACzC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,QAAQ,MAAM,aAAa;;AAEvC;AACA,eAAeH,aAAa;;AAE5B;AACA,SACEC,SAAS,EACTC,WAAW,EACXC,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["OnairosButton","UniversalOnboarding","Overlay","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useConnections","useCredentials","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,OAAO,QAAQ,sBAAsB;;AAE9C;AACA,SAASC,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAkBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -1,5 +1,5 @@
1
1
  import { useState, useCallback } from 'react';
2
- import { Linking } from 'react-native';
2
+ import { Linking, Platform } from 'react-native';
3
3
  import * as Keychain from 'react-native-keychain';
4
4
  import { API_ENDPOINTS, STORAGE_KEYS } from '../constants';
5
5
  import type { ConnectionStatus } from '../types';
@@ -9,7 +9,7 @@ export const useConnections = () => {
9
9
 
10
10
  const getConnectionStatus = useCallback(async (): Promise<ConnectionStatus> => {
11
11
  try {
12
- const stored = await Keychain.getGenericPassword(STORAGE_KEYS.connections);
12
+ const stored = await Keychain.getGenericPassword({ service: STORAGE_KEYS.connections });
13
13
  if (stored) {
14
14
  return JSON.parse(stored.password);
15
15
  }
@@ -34,24 +34,46 @@ export const useConnections = () => {
34
34
  const connectPlatform = useCallback(async (platform: string) => {
35
35
  setIsConnecting(true);
36
36
  try {
37
- // Temporarily disabled OAuth integration
38
- console.log(`OAuth integration temporarily disabled for ${platform}`);
37
+ console.log(`[OAuth] Starting connection for ${platform}`);
39
38
 
40
- // Simulate successful connection for testing
41
- const status = await getConnectionStatus();
42
- status[platform as keyof ConnectionStatus] = {
43
- userName: `Test User (${platform})`,
44
- connected: true
45
- };
46
- await saveConnectionStatus(status);
39
+ // Get OAuth URL from API
40
+ const oauthEndpoint = API_ENDPOINTS.oauth[platform as keyof typeof API_ENDPOINTS.oauth];
41
+ if (!oauthEndpoint) {
42
+ throw new Error(`No OAuth endpoint configured for ${platform}`);
43
+ }
44
+
45
+ const apiUrl = `${API_ENDPOINTS.base}${oauthEndpoint}`;
46
+ console.log(`[OAuth] Fetching URL from: ${apiUrl}`);
47
+
48
+ const response = await fetch(apiUrl);
49
+ if (!response.ok) {
50
+ throw new Error(`API request failed with status ${response.status}`);
51
+ }
52
+
53
+ const { url } = await response.json();
54
+ if (!url) {
55
+ throw new Error('No OAuth URL received from API');
56
+ }
57
+
58
+ console.log(`[OAuth] Opening URL: ${url}`);
47
59
 
60
+ // Check if URL can be opened
61
+ const canOpen = await Linking.canOpenURL(url);
62
+ if (!canOpen) {
63
+ throw new Error(`Cannot open URL: ${url}`);
64
+ }
65
+
66
+ // Open OAuth URL
67
+ await Linking.openURL(url);
68
+ console.log(`[OAuth] URL opened successfully`);
69
+
48
70
  } catch (error) {
49
- console.error(`Error connecting to ${platform}:`, error);
71
+ console.error(`[OAuth] Error connecting to ${platform}:`, error);
50
72
  throw error;
51
73
  } finally {
52
74
  setIsConnecting(false);
53
75
  }
54
- }, [getConnectionStatus, saveConnectionStatus]);
76
+ }, []);
55
77
 
56
78
  const disconnectPlatform = useCallback(async (platform: string) => {
57
79
  try {
@@ -66,9 +88,10 @@ export const useConnections = () => {
66
88
 
67
89
  const handleOAuthCallback = useCallback(async (platform: string, data: any) => {
68
90
  try {
91
+ console.log(`[OAuth] Handling callback for ${platform}:`, data);
69
92
  const status = await getConnectionStatus();
70
93
  status[platform as keyof ConnectionStatus] = {
71
- userName: data.userName || `Test User (${platform})`,
94
+ userName: data.userName || `User (${platform})`,
72
95
  connected: true
73
96
  };
74
97
  await saveConnectionStatus(status);
@@ -6,7 +6,9 @@ import type { CredentialsResult } from '../types';
6
6
  export const useCredentials = () => {
7
7
  const hasCredentials = useCallback(async (): Promise<boolean> => {
8
8
  try {
9
- const credentials = await Keychain.getGenericPassword(STORAGE_KEYS.credentials);
9
+ const credentials = await Keychain.getGenericPassword({
10
+ service: STORAGE_KEYS.credentials
11
+ });
10
12
  return !!credentials;
11
13
  } catch (error) {
12
14
  console.error('Error checking credentials:', error);
@@ -16,7 +18,9 @@ export const useCredentials = () => {
16
18
 
17
19
  const getCredentials = useCallback(async () => {
18
20
  try {
19
- const credentials = await Keychain.getGenericPassword(STORAGE_KEYS.credentials);
21
+ const credentials = await Keychain.getGenericPassword({
22
+ service: STORAGE_KEYS.credentials
23
+ });
20
24
  if (credentials) {
21
25
  return JSON.parse(credentials.password);
22
26
  }
@@ -33,9 +37,16 @@ export const useCredentials = () => {
33
37
  accessToken: string
34
38
  ): Promise<boolean> => {
35
39
  try {
40
+ const options: Keychain.Options = {
41
+ accessControl: Keychain.ACCESS_CONTROL.BIOMETRY_ANY,
42
+ accessible: Keychain.ACCESSIBLE.WHEN_UNLOCKED,
43
+ service: STORAGE_KEYS.credentials
44
+ };
45
+
36
46
  await Keychain.setGenericPassword(
37
- STORAGE_KEYS.credentials,
38
- JSON.stringify({ username, userPin, accessToken })
47
+ username,
48
+ JSON.stringify({ userPin, accessToken }),
49
+ options
39
50
  );
40
51
  return true;
41
52
  } catch (error) {
@@ -46,7 +57,9 @@ export const useCredentials = () => {
46
57
 
47
58
  const clearCredentials = useCallback(async (): Promise<void> => {
48
59
  try {
49
- await Keychain.resetGenericPassword(STORAGE_KEYS.credentials);
60
+ await Keychain.resetGenericPassword({
61
+ service: STORAGE_KEYS.credentials
62
+ });
50
63
  } catch (error) {
51
64
  console.error('Error clearing credentials:', error);
52
65
  }