@onairos/react-native 1.0.0

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 (130) hide show
  1. package/README.md +334 -0
  2. package/lib/commonjs/components/DataRequestModal.js +176 -0
  3. package/lib/commonjs/components/DataRequestModal.js.map +1 -0
  4. package/lib/commonjs/components/Notification.js +106 -0
  5. package/lib/commonjs/components/Notification.js.map +1 -0
  6. package/lib/commonjs/components/OnairosButton.js +575 -0
  7. package/lib/commonjs/components/OnairosButton.js.map +1 -0
  8. package/lib/commonjs/components/Overlay.js +818 -0
  9. package/lib/commonjs/components/Overlay.js.map +1 -0
  10. package/lib/commonjs/components/UniversalOnboarding.js +173 -0
  11. package/lib/commonjs/components/UniversalOnboarding.js.map +1 -0
  12. package/lib/commonjs/components/onboarding/OAuthWebView.js +137 -0
  13. package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -0
  14. package/lib/commonjs/components/onboarding/OnboardingHeader.js +74 -0
  15. package/lib/commonjs/components/onboarding/OnboardingHeader.js.map +1 -0
  16. package/lib/commonjs/components/onboarding/PinInput.js +283 -0
  17. package/lib/commonjs/components/onboarding/PinInput.js.map +1 -0
  18. package/lib/commonjs/components/onboarding/PlatformConnector.js +244 -0
  19. package/lib/commonjs/components/onboarding/PlatformConnector.js.map +1 -0
  20. package/lib/commonjs/components/screens/ConnectorScreen.js +145 -0
  21. package/lib/commonjs/components/screens/ConnectorScreen.js.map +1 -0
  22. package/lib/commonjs/components/screens/LoadingScreen.js +91 -0
  23. package/lib/commonjs/components/screens/LoadingScreen.js.map +1 -0
  24. package/lib/commonjs/components/screens/PinCreationScreen.js +61 -0
  25. package/lib/commonjs/components/screens/PinCreationScreen.js.map +1 -0
  26. package/lib/commonjs/constants/index.js +78 -0
  27. package/lib/commonjs/constants/index.js.map +1 -0
  28. package/lib/commonjs/hooks/useConnections.js +89 -0
  29. package/lib/commonjs/hooks/useConnections.js.map +1 -0
  30. package/lib/commonjs/hooks/useCredentials.js +85 -0
  31. package/lib/commonjs/hooks/useCredentials.js.map +1 -0
  32. package/lib/commonjs/index.js +282 -0
  33. package/lib/commonjs/index.js.map +1 -0
  34. package/lib/commonjs/services/oauthService.js +362 -0
  35. package/lib/commonjs/services/oauthService.js.map +1 -0
  36. package/lib/commonjs/types/declarations.d.js +2 -0
  37. package/lib/commonjs/types/declarations.d.js.map +1 -0
  38. package/lib/commonjs/types/index.js +2 -0
  39. package/lib/commonjs/types/index.js.map +1 -0
  40. package/lib/commonjs/utils/api.js +129 -0
  41. package/lib/commonjs/utils/api.js.map +1 -0
  42. package/lib/commonjs/utils/auth.js +111 -0
  43. package/lib/commonjs/utils/auth.js.map +1 -0
  44. package/lib/commonjs/utils/crypto.js +62 -0
  45. package/lib/commonjs/utils/crypto.js.map +1 -0
  46. package/lib/commonjs/utils/debugHelper.js +64 -0
  47. package/lib/commonjs/utils/debugHelper.js.map +1 -0
  48. package/lib/commonjs/utils/onairosApi.js +270 -0
  49. package/lib/commonjs/utils/onairosApi.js.map +1 -0
  50. package/lib/commonjs/utils/secureStorage.js +210 -0
  51. package/lib/commonjs/utils/secureStorage.js.map +1 -0
  52. package/lib/module/components/DataRequestModal.js +168 -0
  53. package/lib/module/components/DataRequestModal.js.map +1 -0
  54. package/lib/module/components/Notification.js +99 -0
  55. package/lib/module/components/Notification.js.map +1 -0
  56. package/lib/module/components/OnairosButton.js +550 -0
  57. package/lib/module/components/OnairosButton.js.map +1 -0
  58. package/lib/module/components/Overlay.js +825 -0
  59. package/lib/module/components/Overlay.js.map +1 -0
  60. package/lib/module/components/UniversalOnboarding.js +164 -0
  61. package/lib/module/components/UniversalOnboarding.js.map +1 -0
  62. package/lib/module/components/onboarding/OAuthWebView.js +128 -0
  63. package/lib/module/components/onboarding/OAuthWebView.js.map +1 -0
  64. package/lib/module/components/onboarding/OnboardingHeader.js +66 -0
  65. package/lib/module/components/onboarding/OnboardingHeader.js.map +1 -0
  66. package/lib/module/components/onboarding/PinInput.js +274 -0
  67. package/lib/module/components/onboarding/PinInput.js.map +1 -0
  68. package/lib/module/components/onboarding/PlatformConnector.js +235 -0
  69. package/lib/module/components/onboarding/PlatformConnector.js.map +1 -0
  70. package/lib/module/components/screens/ConnectorScreen.js +137 -0
  71. package/lib/module/components/screens/ConnectorScreen.js.map +1 -0
  72. package/lib/module/components/screens/LoadingScreen.js +83 -0
  73. package/lib/module/components/screens/LoadingScreen.js.map +1 -0
  74. package/lib/module/components/screens/PinCreationScreen.js +53 -0
  75. package/lib/module/components/screens/PinCreationScreen.js.map +1 -0
  76. package/lib/module/constants/index.js +72 -0
  77. package/lib/module/constants/index.js.map +1 -0
  78. package/lib/module/hooks/useConnections.js +81 -0
  79. package/lib/module/hooks/useConnections.js.map +1 -0
  80. package/lib/module/hooks/useCredentials.js +77 -0
  81. package/lib/module/hooks/useCredentials.js.map +1 -0
  82. package/lib/module/index.js +34 -0
  83. package/lib/module/index.js.map +1 -0
  84. package/lib/module/services/oauthService.js +352 -0
  85. package/lib/module/services/oauthService.js.map +1 -0
  86. package/lib/module/types/declarations.d.js +2 -0
  87. package/lib/module/types/declarations.d.js.map +1 -0
  88. package/lib/module/types/index.js +2 -0
  89. package/lib/module/types/index.js.map +1 -0
  90. package/lib/module/utils/api.js +117 -0
  91. package/lib/module/utils/api.js.map +1 -0
  92. package/lib/module/utils/auth.js +99 -0
  93. package/lib/module/utils/auth.js.map +1 -0
  94. package/lib/module/utils/crypto.js +54 -0
  95. package/lib/module/utils/crypto.js.map +1 -0
  96. package/lib/module/utils/debugHelper.js +54 -0
  97. package/lib/module/utils/debugHelper.js.map +1 -0
  98. package/lib/module/utils/onairosApi.js +256 -0
  99. package/lib/module/utils/onairosApi.js.map +1 -0
  100. package/lib/module/utils/secureStorage.js +196 -0
  101. package/lib/module/utils/secureStorage.js.map +1 -0
  102. package/package.json +115 -0
  103. package/src/components/DataRequestModal.tsx +187 -0
  104. package/src/components/Notification.js +101 -0
  105. package/src/components/OnairosButton.js +604 -0
  106. package/src/components/OnairosButton.tsx +182 -0
  107. package/src/components/Overlay.js +854 -0
  108. package/src/components/Overlay.tsx +272 -0
  109. package/src/components/UniversalOnboarding.tsx +184 -0
  110. package/src/components/onboarding/OAuthWebView.tsx +134 -0
  111. package/src/components/onboarding/OnboardingHeader.tsx +70 -0
  112. package/src/components/onboarding/PinInput.tsx +356 -0
  113. package/src/components/onboarding/PlatformConnector.tsx +297 -0
  114. package/src/components/screens/ConnectorScreen.tsx +152 -0
  115. package/src/components/screens/LoadingScreen.tsx +100 -0
  116. package/src/components/screens/PinCreationScreen.tsx +67 -0
  117. package/src/constants/index.ts +78 -0
  118. package/src/hooks/useConnections.ts +90 -0
  119. package/src/hooks/useCredentials.ts +83 -0
  120. package/src/index.js +14 -0
  121. package/src/index.ts +82 -0
  122. package/src/services/oauthService.ts +360 -0
  123. package/src/types/declarations.d.ts +26 -0
  124. package/src/types/index.ts +82 -0
  125. package/src/utils/api.js +112 -0
  126. package/src/utils/auth.js +104 -0
  127. package/src/utils/crypto.js +60 -0
  128. package/src/utils/debugHelper.ts +53 -0
  129. package/src/utils/onairosApi.ts +303 -0
  130. package/src/utils/secureStorage.ts +230 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConnectorScreen = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _OnboardingHeader = require("../onboarding/OnboardingHeader");
10
+ var _PlatformConnector = require("../onboarding/PlatformConnector");
11
+ var _oauthService = require("../../services/oauthService");
12
+ var _secureStorage = require("../../utils/secureStorage");
13
+ 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); }
14
+ const ConnectorScreen = ({
15
+ onComplete,
16
+ onClose,
17
+ AppName
18
+ }) => {
19
+ const [connections, setConnections] = (0, _react.useState)({});
20
+ const [isConnecting, setIsConnecting] = (0, _react.useState)(false);
21
+
22
+ // Load initial connection status
23
+ (0, _react.useEffect)(() => {
24
+ loadConnectionStatus();
25
+ }, []);
26
+
27
+ // Load connection status from secure storage
28
+ const loadConnectionStatus = (0, _react.useCallback)(async () => {
29
+ try {
30
+ const credentials = await (0, _secureStorage.getCredentials)();
31
+ if (credentials !== null && credentials !== void 0 && credentials.platforms) {
32
+ const connectionStatus = {};
33
+
34
+ // Transform platforms data to connection status format
35
+ Object.entries(credentials.platforms).forEach(([platform, data]) => {
36
+ if (data && 'username' in data) {
37
+ connectionStatus[platform] = {
38
+ userName: data.username
39
+ };
40
+ }
41
+ });
42
+ setConnections(connectionStatus);
43
+ }
44
+ } catch (error) {
45
+ console.error('Error loading connection status:', error);
46
+ }
47
+ }, []);
48
+
49
+ // Handle platform connection
50
+ const handleConnect = (0, _react.useCallback)(async platform => {
51
+ try {
52
+ setIsConnecting(true);
53
+
54
+ // Start OAuth flow
55
+ const connectionData = await (0, _oauthService.connectPlatform)(platform);
56
+
57
+ // Get current credentials
58
+ const credentials = await (0, _secureStorage.getCredentials)();
59
+ if (!credentials) {
60
+ throw new Error('No credentials found');
61
+ }
62
+
63
+ // Update platforms in credentials
64
+ const updatedPlatforms = {
65
+ ...credentials.platforms,
66
+ [platform]: {
67
+ token: connectionData.token,
68
+ username: connectionData.username,
69
+ userId: connectionData.userId
70
+ }
71
+ };
72
+
73
+ // Update stored credentials
74
+ await (0, _secureStorage.updateCredentials)({
75
+ platforms: updatedPlatforms
76
+ });
77
+
78
+ // Refresh connection status
79
+ await loadConnectionStatus();
80
+ } catch (error) {
81
+ console.error(`Error connecting to ${platform}:`, error);
82
+ } finally {
83
+ setIsConnecting(false);
84
+ }
85
+ }, [loadConnectionStatus]);
86
+
87
+ // Handle platform disconnection
88
+ const handleDisconnect = (0, _react.useCallback)(async platform => {
89
+ try {
90
+ setIsConnecting(true);
91
+
92
+ // Get current credentials
93
+ const credentials = await (0, _secureStorage.getCredentials)();
94
+ if (!credentials || !credentials.platforms) {
95
+ throw new Error('No credentials or platforms found');
96
+ }
97
+
98
+ // Create updated platforms object without the disconnected platform
99
+ const updatedPlatforms = {
100
+ ...credentials.platforms
101
+ };
102
+ delete updatedPlatforms[platform];
103
+
104
+ // Update stored credentials
105
+ await (0, _secureStorage.updateCredentials)({
106
+ platforms: updatedPlatforms
107
+ });
108
+
109
+ // Refresh connection status
110
+ await loadConnectionStatus();
111
+ } catch (error) {
112
+ console.error(`Error disconnecting from ${platform}:`, error);
113
+ } finally {
114
+ setIsConnecting(false);
115
+ }
116
+ }, [loadConnectionStatus]);
117
+
118
+ // Check if user can proceed to next step
119
+ const canProceed = (0, _react.useCallback)(() => {
120
+ const connectedPlatforms = Object.values(connections).filter(Boolean).length;
121
+ return connectedPlatforms >= 2;
122
+ }, [connections]);
123
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
124
+ style: styles.container
125
+ }, /*#__PURE__*/_react.default.createElement(_OnboardingHeader.OnboardingHeader, {
126
+ title: "Connect Your Platforms",
127
+ subtitle: `Connecting to ${AppName}`,
128
+ onClose: onClose
129
+ }), /*#__PURE__*/_react.default.createElement(_PlatformConnector.PlatformConnector, {
130
+ connections: connections,
131
+ onConnect: handleConnect,
132
+ onDisconnect: handleDisconnect,
133
+ isLoading: isConnecting,
134
+ canProceed: canProceed(),
135
+ onProceed: onComplete
136
+ }));
137
+ };
138
+ exports.ConnectorScreen = ConnectorScreen;
139
+ const styles = _reactNative.StyleSheet.create({
140
+ container: {
141
+ flex: 1,
142
+ backgroundColor: '#fff'
143
+ }
144
+ });
145
+ //# sourceMappingURL=ConnectorScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OnboardingHeader","_PlatformConnector","_oauthService","_secureStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ConnectorScreen","onComplete","onClose","AppName","connections","setConnections","useState","isConnecting","setIsConnecting","useEffect","loadConnectionStatus","useCallback","credentials","getCredentials","platforms","connectionStatus","entries","forEach","platform","data","userName","username","error","console","handleConnect","connectionData","connectPlatform","Error","updatedPlatforms","token","userId","updateCredentials","handleDisconnect","canProceed","connectedPlatforms","values","filter","Boolean","length","createElement","SafeAreaView","style","styles","container","OnboardingHeader","title","subtitle","PlatformConnector","onConnect","onDisconnect","isLoading","onProceed","exports","StyleSheet","create","flex","backgroundColor"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/screens/ConnectorScreen.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAA8E,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AASvE,MAAMkB,eAA+C,GAAGA,CAAC;EAC9DC,UAAU;EACVC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAmB,CAAC,CAAC,CAAC;EACpE,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;;EAEvD;EACA,IAAAG,gBAAS,EAAC,MAAM;IACdC,oBAAoB,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMA,oBAAoB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACnD,IAAI;MACF,MAAMC,WAAW,GAAG,MAAM,IAAAC,6BAAc,EAAC,CAAC;MAE1C,IAAID,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEE,SAAS,EAAE;QAC1B,MAAMC,gBAAkC,GAAG,CAAC,CAAC;;QAE7C;QACAlB,MAAM,CAACmB,OAAO,CAACJ,WAAW,CAACE,SAAS,CAAC,CAACG,OAAO,CAAC,CAAC,CAACC,QAAQ,EAAEC,IAAI,CAAC,KAAK;UAClE,IAAIA,IAAI,IAAI,UAAU,IAAIA,IAAI,EAAE;YAC9BJ,gBAAgB,CAACG,QAAQ,CAA2B,GAAG;cACrDE,QAAQ,EAAED,IAAI,CAACE;YACjB,CAAC;UACH;QACF,CAAC,CAAC;QAEFhB,cAAc,CAACU,gBAAgB,CAAC;MAClC;IACF,CAAC,CAAC,OAAOO,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAME,aAAa,GAAG,IAAAb,kBAAW,EAAC,MAAOO,QAAgB,IAAK;IAC5D,IAAI;MACFV,eAAe,CAAC,IAAI,CAAC;;MAErB;MACA,MAAMiB,cAAc,GAAG,MAAM,IAAAC,6BAAe,EAACR,QAAQ,CAAC;;MAEtD;MACA,MAAMN,WAAW,GAAG,MAAM,IAAAC,6BAAc,EAAC,CAAC;MAE1C,IAAI,CAACD,WAAW,EAAE;QAChB,MAAM,IAAIe,KAAK,CAAC,sBAAsB,CAAC;MACzC;;MAEA;MACA,MAAMC,gBAAgB,GAAG;QACvB,GAAGhB,WAAW,CAACE,SAAS;QACxB,CAACI,QAAQ,GAAG;UACVW,KAAK,EAAEJ,cAAc,CAACI,KAAK;UAC3BR,QAAQ,EAAEI,cAAc,CAACJ,QAAQ;UACjCS,MAAM,EAAEL,cAAc,CAACK;QACzB;MACF,CAAC;;MAED;MACA,MAAM,IAAAC,gCAAiB,EAAC;QACtBjB,SAAS,EAAEc;MACb,CAAC,CAAC;;MAEF;MACA,MAAMlB,oBAAoB,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOY,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uBAAuBJ,QAAQ,GAAG,EAAEI,KAAK,CAAC;IAC1D,CAAC,SAAS;MACRd,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACE,oBAAoB,CAAC,CAAC;;EAE1B;EACA,MAAMsB,gBAAgB,GAAG,IAAArB,kBAAW,EAAC,MAAOO,QAAgB,IAAK;IAC/D,IAAI;MACFV,eAAe,CAAC,IAAI,CAAC;;MAErB;MACA,MAAMI,WAAW,GAAG,MAAM,IAAAC,6BAAc,EAAC,CAAC;MAE1C,IAAI,CAACD,WAAW,IAAI,CAACA,WAAW,CAACE,SAAS,EAAE;QAC1C,MAAM,IAAIa,KAAK,CAAC,mCAAmC,CAAC;MACtD;;MAEA;MACA,MAAMC,gBAAgB,GAAG;QAAE,GAAGhB,WAAW,CAACE;MAAU,CAAC;MACrD,OAAOc,gBAAgB,CAACV,QAAQ,CAAkC;;MAElE;MACA,MAAM,IAAAa,gCAAiB,EAAC;QACtBjB,SAAS,EAAEc;MACb,CAAC,CAAC;;MAEF;MACA,MAAMlB,oBAAoB,CAAC,CAAC;IAC9B,CAAC,CAAC,OAAOY,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,4BAA4BJ,QAAQ,GAAG,EAAEI,KAAK,CAAC;IAC/D,CAAC,SAAS;MACRd,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACE,oBAAoB,CAAC,CAAC;;EAE1B;EACA,MAAMuB,UAAU,GAAG,IAAAtB,kBAAW,EAAC,MAAM;IACnC,MAAMuB,kBAAkB,GAAGrC,MAAM,CAACsC,MAAM,CAAC/B,WAAW,CAAC,CAACgC,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;IAC5E,OAAOJ,kBAAkB,IAAI,CAAC;EAChC,CAAC,EAAE,CAAC9B,WAAW,CAAC,CAAC;EAEjB,oBACE/B,MAAA,CAAAkB,OAAA,CAAAgD,aAAA,CAAC/D,YAAA,CAAAgE,YAAY;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBACpCtE,MAAA,CAAAkB,OAAA,CAAAgD,aAAA,CAAC9D,iBAAA,CAAAmE,gBAAgB;IACfC,KAAK,EAAC,wBAAwB;IAC9BC,QAAQ,EAAE,iBAAiB3C,OAAO,EAAG;IACrCD,OAAO,EAAEA;EAAQ,CAClB,CAAC,eAEF7B,MAAA,CAAAkB,OAAA,CAAAgD,aAAA,CAAC7D,kBAAA,CAAAqE,iBAAiB;IAChB3C,WAAW,EAAEA,WAAY;IACzB4C,SAAS,EAAExB,aAAc;IACzByB,YAAY,EAAEjB,gBAAiB;IAC/BkB,SAAS,EAAE3C,YAAa;IACxB0B,UAAU,EAAEA,UAAU,CAAC,CAAE;IACzBkB,SAAS,EAAElD;EAAW,CACvB,CACW,CAAC;AAEnB,CAAC;AAACmD,OAAA,CAAApD,eAAA,GAAAA,eAAA;AAEF,MAAM0C,MAAM,GAAGW,uBAAU,CAACC,MAAM,CAAC;EAC/BX,SAAS,EAAE;IACTY,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LoadingScreen = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _constants = require("../../constants");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const LoadingScreen = ({
12
+ message,
13
+ progress,
14
+ eta
15
+ }) => {
16
+ // Calculate progress percentage for display
17
+ const progressPercent = progress ? Math.round(progress * 100) : undefined;
18
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
19
+ style: styles.container
20
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
21
+ style: styles.content
22
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
23
+ size: "large",
24
+ color: _constants.COLORS.primary,
25
+ style: styles.spinner
26
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
27
+ style: styles.message
28
+ }, message), progressPercent !== undefined && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
29
+ style: styles.progressContainer
30
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
31
+ style: styles.progressBarBackground
32
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
33
+ style: [styles.progressBar, {
34
+ width: `${progressPercent}%`
35
+ }]
36
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
37
+ style: styles.progressText
38
+ }, progressPercent, "%")), eta && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
39
+ style: styles.etaText
40
+ }, eta)));
41
+ };
42
+ exports.LoadingScreen = LoadingScreen;
43
+ const styles = _reactNative.StyleSheet.create({
44
+ container: {
45
+ flex: 1,
46
+ backgroundColor: '#fff',
47
+ justifyContent: 'center',
48
+ alignItems: 'center'
49
+ },
50
+ content: {
51
+ width: '80%',
52
+ alignItems: 'center',
53
+ padding: 24
54
+ },
55
+ spinner: {
56
+ marginBottom: 24
57
+ },
58
+ message: {
59
+ fontSize: 18,
60
+ fontWeight: '600',
61
+ color: '#000',
62
+ textAlign: 'center',
63
+ marginBottom: 24
64
+ },
65
+ progressContainer: {
66
+ width: '100%',
67
+ marginBottom: 8
68
+ },
69
+ progressBarBackground: {
70
+ height: 8,
71
+ backgroundColor: '#eee',
72
+ borderRadius: 4,
73
+ overflow: 'hidden',
74
+ marginBottom: 8
75
+ },
76
+ progressBar: {
77
+ height: '100%',
78
+ backgroundColor: _constants.COLORS.primary
79
+ },
80
+ progressText: {
81
+ fontSize: 14,
82
+ color: '#666',
83
+ textAlign: 'right'
84
+ },
85
+ etaText: {
86
+ fontSize: 14,
87
+ color: '#666',
88
+ marginTop: 8
89
+ }
90
+ });
91
+ //# sourceMappingURL=LoadingScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_constants","e","__esModule","default","LoadingScreen","message","progress","eta","progressPercent","Math","round","undefined","createElement","SafeAreaView","style","styles","container","View","content","ActivityIndicator","size","color","COLORS","primary","spinner","Text","progressContainer","progressBarBackground","progressBar","width","progressText","etaText","exports","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","padding","marginBottom","fontSize","fontWeight","textAlign","height","borderRadius","overflow","marginTop"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/screens/LoadingScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PinCreationScreen = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _OnboardingHeader = require("../onboarding/OnboardingHeader");
10
+ var _PinInput = require("../onboarding/PinInput");
11
+ var _secureStorage = require("../../utils/secureStorage");
12
+ 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); }
13
+ const PinCreationScreen = ({
14
+ onComplete,
15
+ onBack,
16
+ onClose,
17
+ AppName
18
+ }) => {
19
+ // Handle PIN submission
20
+ const handlePinSubmit = (0, _react.useCallback)(async pin => {
21
+ try {
22
+ // Get current credentials
23
+ const credentials = await (0, _secureStorage.getCredentials)();
24
+ if (!credentials) {
25
+ throw new Error('No credentials found');
26
+ }
27
+
28
+ // Update credentials with PIN
29
+ await (0, _secureStorage.updateCredentials)({
30
+ userPin: pin
31
+ });
32
+
33
+ // Move to next step
34
+ onComplete();
35
+ } catch (error) {
36
+ console.error('Error saving PIN:', error);
37
+ }
38
+ }, [onComplete]);
39
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
40
+ style: styles.container
41
+ }, /*#__PURE__*/_react.default.createElement(_OnboardingHeader.OnboardingHeader, {
42
+ title: "Create a PIN",
43
+ subtitle: `Secure your ${AppName} account`,
44
+ showBackButton: true,
45
+ onBack: onBack,
46
+ onClose: onClose
47
+ }), /*#__PURE__*/_react.default.createElement(_PinInput.PinInput, {
48
+ onSubmit: handlePinSubmit,
49
+ minLength: 8,
50
+ requireSpecialChar: true,
51
+ requireNumber: true
52
+ }));
53
+ };
54
+ exports.PinCreationScreen = PinCreationScreen;
55
+ const styles = _reactNative.StyleSheet.create({
56
+ container: {
57
+ flex: 1,
58
+ backgroundColor: '#fff'
59
+ }
60
+ });
61
+ //# sourceMappingURL=PinCreationScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OnboardingHeader","_PinInput","_secureStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PinCreationScreen","onComplete","onBack","onClose","AppName","handlePinSubmit","useCallback","pin","credentials","getCredentials","Error","updateCredentials","userPin","error","console","createElement","SafeAreaView","style","styles","container","OnboardingHeader","title","subtitle","showBackButton","PinInput","onSubmit","minLength","requireSpecialChar","requireNumber","exports","StyleSheet","create","flex","backgroundColor"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/screens/PinCreationScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.STORAGE_KEYS = exports.PLATFORMS = exports.PIN_REQUIREMENTS = exports.DEEP_LINK_CONFIG = exports.COLORS = exports.API_ENDPOINTS = void 0;
7
+ const COLORS = exports.COLORS = {
8
+ primary: '#00BFA5',
9
+ headerBg: '#E0F2F1',
10
+ text: {
11
+ primary: '#000000',
12
+ secondary: '#757575'
13
+ },
14
+ border: '#EEEEEE',
15
+ success: '#4CAF50',
16
+ error: '#F44336',
17
+ instagram: '#E4405F',
18
+ pinterest: '#BD081C',
19
+ reddit: '#FF4500',
20
+ youtube: '#FF0000'
21
+ };
22
+ const PLATFORMS = exports.PLATFORMS = {
23
+ instagram: {
24
+ name: 'Instagram',
25
+ icon: 'instagram',
26
+ color: COLORS.instagram,
27
+ description: 'Connect your Instagram account to train your AI model'
28
+ },
29
+ pinterest: {
30
+ name: 'Pinterest',
31
+ icon: 'pinterest',
32
+ color: COLORS.pinterest,
33
+ description: 'Use your Pinterest boards for AI training'
34
+ },
35
+ reddit: {
36
+ name: 'Reddit',
37
+ icon: 'reddit',
38
+ color: COLORS.reddit,
39
+ description: 'Connect Reddit to enhance your AI model'
40
+ },
41
+ youtube: {
42
+ name: 'YouTube',
43
+ icon: 'youtube',
44
+ color: COLORS.youtube,
45
+ description: 'Use YouTube data to improve AI recommendations'
46
+ }
47
+ };
48
+ const API_ENDPOINTS = exports.API_ENDPOINTS = {
49
+ base: 'https://api2.onairos.uk',
50
+ oauth: {
51
+ instagram: '/instagram/auth',
52
+ pinterest: '/pinterest/auth',
53
+ reddit: '/reddit/auth',
54
+ youtube: '/youtube/auth'
55
+ },
56
+ callback: {
57
+ instagram: '/instagram/callback',
58
+ pinterest: '/pinterest/callback',
59
+ reddit: '/reddit/callback',
60
+ youtube: '/youtube/callback'
61
+ }
62
+ };
63
+ const STORAGE_KEYS = exports.STORAGE_KEYS = {
64
+ credentials: 'onairos_credentials',
65
+ connections: 'onairos_connections'
66
+ };
67
+ const PIN_REQUIREMENTS = exports.PIN_REQUIREMENTS = {
68
+ minLength: 8,
69
+ requireUppercase: true,
70
+ requireLowercase: true,
71
+ requireNumber: true,
72
+ requireSpecialChar: true
73
+ };
74
+ const DEEP_LINK_CONFIG = exports.DEEP_LINK_CONFIG = {
75
+ scheme: 'onairosreact',
76
+ host: 'authenticate'
77
+ };
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COLORS","exports","primary","headerBg","text","secondary","border","success","error","instagram","pinterest","reddit","youtube","PLATFORMS","name","icon","color","description","API_ENDPOINTS","base","oauth","callback","STORAGE_KEYS","credentials","connections","PIN_REQUIREMENTS","minLength","requireUppercase","requireLowercase","requireNumber","requireSpecialChar","DEEP_LINK_CONFIG","scheme","host"],"sourceRoot":"..\\..\\..\\src","sources":["constants/index.ts"],"mappings":";;;;;;AAEO,MAAMA,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,SAAS;EACnBC,IAAI,EAAE;IACJF,OAAO,EAAE,SAAS;IAClBG,SAAS,EAAE;EACb,CAAC;EACDC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,SAAS,EAAE,SAAS;EACpBC,SAAS,EAAE,SAAS;EACpBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE;AACX,CAAC;AAEM,MAAMC,SAAyC,GAAAZ,OAAA,CAAAY,SAAA,GAAG;EACvDJ,SAAS,EAAE;IACTK,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEhB,MAAM,CAACS,SAAS;IACvBQ,WAAW,EAAE;EACf,CAAC;EACDP,SAAS,EAAE;IACTI,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,KAAK,EAAEhB,MAAM,CAACU,SAAS;IACvBO,WAAW,EAAE;EACf,CAAC;EACDN,MAAM,EAAE;IACNG,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE,QAAQ;IACdC,KAAK,EAAEhB,MAAM,CAACW,MAAM;IACpBM,WAAW,EAAE;EACf,CAAC;EACDL,OAAO,EAAE;IACPE,IAAI,EAAE,SAAS;IACfC,IAAI,EAAE,SAAS;IACfC,KAAK,EAAEhB,MAAM,CAACY,OAAO;IACrBK,WAAW,EAAE;EACf;AACF,CAAC;AAEM,MAAMC,aAAa,GAAAjB,OAAA,CAAAiB,aAAA,GAAG;EAC3BC,IAAI,EAAE,yBAAyB;EAC/BC,KAAK,EAAE;IACLX,SAAS,EAAE,iBAAiB;IAC5BC,SAAS,EAAE,iBAAiB;IAC5BC,MAAM,EAAE,cAAc;IACtBC,OAAO,EAAE;EACX,CAAC;EACDS,QAAQ,EAAE;IACRZ,SAAS,EAAE,qBAAqB;IAChCC,SAAS,EAAE,qBAAqB;IAChCC,MAAM,EAAE,kBAAkB;IAC1BC,OAAO,EAAE;EACX;AACF,CAAC;AAEM,MAAMU,YAAY,GAAArB,OAAA,CAAAqB,YAAA,GAAG;EAC1BC,WAAW,EAAE,qBAAqB;EAClCC,WAAW,EAAE;AACf,CAAC;AAEM,MAAMC,gBAAgB,GAAAxB,OAAA,CAAAwB,gBAAA,GAAG;EAC9BC,SAAS,EAAE,CAAC;EACZC,gBAAgB,EAAE,IAAI;EACtBC,gBAAgB,EAAE,IAAI;EACtBC,aAAa,EAAE,IAAI;EACnBC,kBAAkB,EAAE;AACtB,CAAC;AAEM,MAAMC,gBAAgB,GAAA9B,OAAA,CAAA8B,gBAAA,GAAG;EAC9BC,MAAM,EAAE,cAAc;EACtBC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useConnections = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var Keychain = _interopRequireWildcard(require("react-native-keychain"));
10
+ var _constants = require("../constants");
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
+ const useConnections = () => {
13
+ const [isConnecting, setIsConnecting] = (0, _react.useState)(false);
14
+ const getConnectionStatus = (0, _react.useCallback)(async () => {
15
+ try {
16
+ const stored = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.connections);
17
+ if (stored) {
18
+ return JSON.parse(stored.password);
19
+ }
20
+ return {};
21
+ } catch (error) {
22
+ console.error('Error getting connection status:', error);
23
+ return {};
24
+ }
25
+ }, []);
26
+ const saveConnectionStatus = (0, _react.useCallback)(async status => {
27
+ try {
28
+ await Keychain.setGenericPassword(_constants.STORAGE_KEYS.connections, JSON.stringify(status));
29
+ } catch (error) {
30
+ console.error('Error saving connection status:', error);
31
+ }
32
+ }, []);
33
+ const connectPlatform = (0, _react.useCallback)(async platform => {
34
+ setIsConnecting(true);
35
+ try {
36
+ // Get OAuth URL from API
37
+ const response = await fetch(`${_constants.API_ENDPOINTS.base}${_constants.API_ENDPOINTS.oauth[platform]}`);
38
+ const {
39
+ url
40
+ } = await response.json();
41
+ if (!url) {
42
+ throw new Error('No OAuth URL received');
43
+ }
44
+
45
+ // Open OAuth URL
46
+ await _reactNative.Linking.openURL(url);
47
+
48
+ // Connection status will be updated when the OAuth callback is received
49
+ // This is handled in the UniversalOnboarding component
50
+ } catch (error) {
51
+ console.error(`Error connecting to ${platform}:`, error);
52
+ throw error;
53
+ } finally {
54
+ setIsConnecting(false);
55
+ }
56
+ }, []);
57
+ const disconnectPlatform = (0, _react.useCallback)(async platform => {
58
+ try {
59
+ const status = await getConnectionStatus();
60
+ delete status[platform];
61
+ await saveConnectionStatus(status);
62
+ } catch (error) {
63
+ console.error(`Error disconnecting ${platform}:`, error);
64
+ throw error;
65
+ }
66
+ }, [getConnectionStatus, saveConnectionStatus]);
67
+ const handleOAuthCallback = (0, _react.useCallback)(async (platform, data) => {
68
+ try {
69
+ const status = await getConnectionStatus();
70
+ status[platform] = {
71
+ userName: data.userName
72
+ };
73
+ await saveConnectionStatus(status);
74
+ return true;
75
+ } catch (error) {
76
+ console.error('Error handling OAuth callback:', error);
77
+ return false;
78
+ }
79
+ }, [getConnectionStatus, saveConnectionStatus]);
80
+ return {
81
+ isConnecting,
82
+ connectPlatform,
83
+ disconnectPlatform,
84
+ getConnectionStatus,
85
+ handleOAuthCallback
86
+ };
87
+ };
88
+ exports.useConnections = useConnections;
89
+ //# sourceMappingURL=useConnections.js.map
@@ -0,0 +1 @@
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","STORAGE_KEYS","connections","JSON","parse","password","error","console","saveConnectionStatus","status","setGenericPassword","stringify","connectPlatform","platform","response","fetch","API_ENDPOINTS","base","oauth","url","json","Error","Linking","openURL","disconnectPlatform","handleOAuthCallback","data","userName","exports"],"sourceRoot":"..\\..\\..\\src","sources":["hooks/useConnections.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCredentials = void 0;
7
+ var _react = require("react");
8
+ var Keychain = _interopRequireWildcard(require("react-native-keychain"));
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
+ const useCredentials = () => {
12
+ const hasCredentials = (0, _react.useCallback)(async () => {
13
+ try {
14
+ const credentials = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.credentials);
15
+ return !!credentials;
16
+ } catch (error) {
17
+ console.error('Error checking credentials:', error);
18
+ return false;
19
+ }
20
+ }, []);
21
+ const getCredentials = (0, _react.useCallback)(async () => {
22
+ try {
23
+ const credentials = await Keychain.getGenericPassword(_constants.STORAGE_KEYS.credentials);
24
+ if (credentials) {
25
+ return JSON.parse(credentials.password);
26
+ }
27
+ return null;
28
+ } catch (error) {
29
+ console.error('Error getting credentials:', error);
30
+ return null;
31
+ }
32
+ }, []);
33
+ const storeCredentials = (0, _react.useCallback)(async (username, userPin, accessToken) => {
34
+ try {
35
+ await Keychain.setGenericPassword(_constants.STORAGE_KEYS.credentials, JSON.stringify({
36
+ username,
37
+ userPin,
38
+ accessToken
39
+ }));
40
+ return true;
41
+ } catch (error) {
42
+ console.error('Error storing credentials:', error);
43
+ return false;
44
+ }
45
+ }, []);
46
+ const clearCredentials = (0, _react.useCallback)(async () => {
47
+ try {
48
+ await Keychain.resetGenericPassword(_constants.STORAGE_KEYS.credentials);
49
+ } catch (error) {
50
+ console.error('Error clearing credentials:', error);
51
+ }
52
+ }, []);
53
+ const validateCredentials = (0, _react.useCallback)(async username => {
54
+ try {
55
+ const response = await fetch(`https://api2.onairos.uk/validate`, {
56
+ method: 'POST',
57
+ headers: {
58
+ 'Content-Type': 'application/json'
59
+ },
60
+ body: JSON.stringify({
61
+ username
62
+ })
63
+ });
64
+ const data = await response.json();
65
+ return {
66
+ isValid: data.valid,
67
+ credentials: data.credentials
68
+ };
69
+ } catch (error) {
70
+ console.error('Error validating credentials:', error);
71
+ return {
72
+ isValid: false
73
+ };
74
+ }
75
+ }, []);
76
+ return {
77
+ hasCredentials,
78
+ getCredentials,
79
+ storeCredentials,
80
+ clearCredentials,
81
+ validateCredentials
82
+ };
83
+ };
84
+ exports.useCredentials = useCredentials;
85
+ //# sourceMappingURL=useCredentials.js.map
@@ -0,0 +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":[]}