@oxyhq/services 5.15.9 → 5.16.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 (147) hide show
  1. package/lib/commonjs/core/OxyServices.js +0 -1
  2. package/lib/commonjs/core/OxyServices.js.map +1 -1
  3. package/lib/commonjs/core/mixins/OxyServices.auth.js +3 -6
  4. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  5. package/lib/commonjs/core/mixins/OxyServices.devices.js +1 -1
  6. package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -1
  7. package/lib/commonjs/core/mixins/index.js +11 -12
  8. package/lib/commonjs/core/mixins/index.js.map +1 -1
  9. package/lib/commonjs/crypto/signatureService.js +3 -2
  10. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  11. package/lib/commonjs/i18n/locales/ar-SA.json +1 -9
  12. package/lib/commonjs/i18n/locales/ca-ES.json +1 -9
  13. package/lib/commonjs/i18n/locales/de-DE.json +1 -9
  14. package/lib/commonjs/i18n/locales/en-US.json +3 -21
  15. package/lib/commonjs/i18n/locales/es-ES.json +3 -21
  16. package/lib/commonjs/i18n/locales/fr-FR.json +1 -9
  17. package/lib/commonjs/i18n/locales/it-IT.json +1 -9
  18. package/lib/commonjs/i18n/locales/ja-JP.json +1 -9
  19. package/lib/commonjs/i18n/locales/ko-KR.json +1 -9
  20. package/lib/commonjs/i18n/locales/pt-PT.json +1 -9
  21. package/lib/commonjs/i18n/locales/zh-CN.json +1 -9
  22. package/lib/commonjs/ui/context/OxyContext.js +24 -4
  23. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  24. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +217 -100
  25. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  26. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -319
  27. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  28. package/lib/commonjs/ui/screens/OxyAuthScreen.js +16 -7
  29. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  30. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +0 -1
  31. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  32. package/lib/commonjs/ui/screens/SessionManagementScreen.js +43 -29
  33. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  34. package/lib/commonjs/ui/stores/authStore.js +14 -1
  35. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  36. package/lib/module/core/OxyServices.js +0 -1
  37. package/lib/module/core/OxyServices.js.map +1 -1
  38. package/lib/module/core/mixins/OxyServices.auth.js +3 -6
  39. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  40. package/lib/module/core/mixins/OxyServices.devices.js +1 -1
  41. package/lib/module/core/mixins/OxyServices.devices.js.map +1 -1
  42. package/lib/module/core/mixins/index.js +1 -2
  43. package/lib/module/core/mixins/index.js.map +1 -1
  44. package/lib/module/crypto/signatureService.js +3 -2
  45. package/lib/module/crypto/signatureService.js.map +1 -1
  46. package/lib/module/i18n/locales/ar-SA.json +1 -9
  47. package/lib/module/i18n/locales/ca-ES.json +1 -9
  48. package/lib/module/i18n/locales/de-DE.json +1 -9
  49. package/lib/module/i18n/locales/en-US.json +3 -21
  50. package/lib/module/i18n/locales/es-ES.json +3 -21
  51. package/lib/module/i18n/locales/fr-FR.json +1 -9
  52. package/lib/module/i18n/locales/it-IT.json +1 -9
  53. package/lib/module/i18n/locales/ja-JP.json +1 -9
  54. package/lib/module/i18n/locales/ko-KR.json +1 -9
  55. package/lib/module/i18n/locales/pt-PT.json +1 -9
  56. package/lib/module/i18n/locales/zh-CN.json +1 -9
  57. package/lib/module/ui/context/OxyContext.js +24 -4
  58. package/lib/module/ui/context/OxyContext.js.map +1 -1
  59. package/lib/module/ui/context/hooks/useAuthOperations.js +217 -100
  60. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/module/ui/screens/AccountSettingsScreen.js +2 -319
  62. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  63. package/lib/module/ui/screens/OxyAuthScreen.js +16 -7
  64. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  65. package/lib/module/ui/screens/PrivacySettingsScreen.js +0 -1
  66. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  67. package/lib/module/ui/screens/SessionManagementScreen.js +44 -29
  68. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  69. package/lib/module/ui/stores/authStore.js +14 -1
  70. package/lib/module/ui/stores/authStore.js.map +1 -1
  71. package/lib/typescript/core/OxyServices.d.ts +0 -1
  72. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  73. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +3 -4
  74. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  75. package/lib/typescript/core/mixins/OxyServices.devices.d.ts +1 -4
  76. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  77. package/lib/typescript/core/mixins/index.d.ts +1 -64
  78. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  79. package/lib/typescript/crypto/signatureService.d.ts +2 -1
  80. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  81. package/lib/typescript/models/interfaces.d.ts +1 -1
  82. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  83. package/lib/typescript/types/bip39.d.ts +1 -0
  84. package/lib/typescript/types/buffer.d.ts +1 -0
  85. package/lib/typescript/types/color.d.ts +1 -0
  86. package/lib/typescript/types/elliptic.d.ts +1 -0
  87. package/lib/typescript/types/expo-crypto.d.ts +1 -0
  88. package/lib/typescript/types/expo-secure-store.d.ts +1 -0
  89. package/lib/typescript/ui/context/OxyContext.d.ts +11 -3
  90. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  91. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +13 -5
  92. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  93. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  94. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  95. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  96. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  97. package/lib/typescript/ui/stores/authStore.d.ts +4 -0
  98. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  99. package/package.json +6 -5
  100. package/src/core/OxyServices.ts +0 -1
  101. package/src/core/mixins/OxyServices.auth.ts +3 -8
  102. package/src/core/mixins/OxyServices.devices.ts +1 -4
  103. package/src/core/mixins/index.ts +2 -5
  104. package/src/crypto/index.ts +1 -0
  105. package/src/crypto/keyManager.ts +1 -0
  106. package/src/crypto/polyfill.ts +1 -0
  107. package/src/crypto/recoveryPhrase.ts +1 -0
  108. package/src/crypto/signatureService.ts +4 -5
  109. package/src/i18n/locales/ar-SA.json +1 -9
  110. package/src/i18n/locales/ca-ES.json +1 -9
  111. package/src/i18n/locales/de-DE.json +1 -9
  112. package/src/i18n/locales/en-US.json +3 -21
  113. package/src/i18n/locales/es-ES.json +3 -21
  114. package/src/i18n/locales/fr-FR.json +1 -9
  115. package/src/i18n/locales/it-IT.json +1 -9
  116. package/src/i18n/locales/ja-JP.json +1 -9
  117. package/src/i18n/locales/ko-KR.json +1 -9
  118. package/src/i18n/locales/pt-PT.json +1 -9
  119. package/src/i18n/locales/zh-CN.json +1 -9
  120. package/src/models/interfaces.ts +1 -1
  121. package/src/types/bip39.d.ts +1 -0
  122. package/src/types/buffer.d.ts +1 -0
  123. package/src/types/color.d.ts +1 -0
  124. package/src/types/elliptic.d.ts +1 -0
  125. package/src/types/expo-crypto.d.ts +1 -0
  126. package/src/types/expo-secure-store.d.ts +1 -0
  127. package/src/ui/context/OxyContext.tsx +35 -3
  128. package/src/ui/context/hooks/useAuthOperations.ts +212 -98
  129. package/src/ui/screens/AccountSettingsScreen.tsx +1 -201
  130. package/src/ui/screens/OxyAuthScreen.tsx +16 -8
  131. package/src/ui/screens/PrivacySettingsScreen.tsx +0 -2
  132. package/src/ui/screens/SessionManagementScreen.tsx +43 -26
  133. package/src/ui/stores/authStore.ts +31 -2
  134. package/lib/commonjs/core/mixins/OxyServices.totp.js +0 -53
  135. package/lib/commonjs/core/mixins/OxyServices.totp.js.map +0 -1
  136. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +0 -467
  137. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  138. package/lib/module/core/mixins/OxyServices.totp.js +0 -49
  139. package/lib/module/core/mixins/OxyServices.totp.js.map +0 -1
  140. package/lib/module/ui/components/profile/TwoFactorSetupModal.js +0 -460
  141. package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  142. package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -66
  143. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +0 -1
  144. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +0 -11
  145. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +0 -1
  146. package/src/core/mixins/OxyServices.totp.ts +0 -36
  147. package/src/ui/components/profile/TwoFactorSetupModal.tsx +0 -442
@@ -1,460 +0,0 @@
1
- "use strict";
2
-
3
- import React, { useState, useEffect } from 'react';
4
- import { View, Text, TextInput, TouchableOpacity, StyleSheet, Modal, Platform, ScrollView, ActivityIndicator } from 'react-native';
5
- import { Ionicons } from '@expo/vector-icons';
6
- import QRCode from 'react-native-qrcode-svg';
7
- import { useThemeStyles } from '../../hooks/useThemeStyles';
8
- import { useColorScheme } from '../../hooks/use-color-scheme';
9
- import { useI18n } from '../../hooks/useI18n';
10
- import { fontFamilies } from '../../styles/fonts';
11
- import { useOxy } from '../../context/OxyContext';
12
- import { useAuthStore } from '../../stores/authStore';
13
- import { toast } from '../../../lib/sonner';
14
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
- export const TwoFactorSetupModal = ({
16
- visible,
17
- onClose,
18
- isEnabled,
19
- theme = 'light',
20
- onSave
21
- }) => {
22
- const {
23
- t
24
- } = useI18n();
25
- const colorScheme = useColorScheme();
26
- const themeStyles = useThemeStyles(theme || 'light', colorScheme);
27
- const colors = themeStyles.colors;
28
- const {
29
- oxyServices,
30
- activeSessionId
31
- } = useOxy();
32
- const updateUser = useAuthStore(state => state.updateUser);
33
- const [totpSetupUrl, setTotpSetupUrl] = useState(null);
34
- const [totpCode, setTotpCode] = useState('');
35
- const [isBusy, setIsBusy] = useState(false);
36
- const [showRecoveryCodes, setShowRecoveryCodes] = useState(false);
37
- const [recoveryCodes, setRecoveryCodes] = useState(null);
38
- const [recoveryKey, setRecoveryKey] = useState(null);
39
- useEffect(() => {
40
- if (visible && !isEnabled) {
41
- setTotpSetupUrl(null);
42
- setTotpCode('');
43
- setShowRecoveryCodes(false);
44
- setRecoveryCodes(null);
45
- setRecoveryKey(null);
46
- }
47
- }, [visible, isEnabled]);
48
- const handleGenerateQR = async () => {
49
- if (!activeSessionId || !oxyServices) {
50
- toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
51
- return;
52
- }
53
- setIsBusy(true);
54
- try {
55
- const {
56
- otpauthUrl
57
- } = await oxyServices.startTotpEnrollment(activeSessionId);
58
- setTotpSetupUrl(otpauthUrl);
59
- } catch (e) {
60
- toast.error(e?.message || t('editProfile.toasts.totpStartFailed') || 'Failed to start TOTP enrollment');
61
- } finally {
62
- setIsBusy(false);
63
- }
64
- };
65
- const handleVerify = async () => {
66
- if (!activeSessionId || !oxyServices) {
67
- toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
68
- return;
69
- }
70
- if (totpCode.length !== 6) {
71
- toast.error(t('editProfile.toasts.invalidCode') || 'Please enter a 6-digit code');
72
- return;
73
- }
74
- setIsBusy(true);
75
- try {
76
- const result = await oxyServices.verifyTotpEnrollment(activeSessionId, totpCode);
77
- await updateUser({
78
- privacySettings: {
79
- twoFactorEnabled: true
80
- }
81
- }, oxyServices);
82
- if (result?.backupCodes || result?.recoveryKey) {
83
- setRecoveryCodes(result.backupCodes || null);
84
- setRecoveryKey(result.recoveryKey || null);
85
- setShowRecoveryCodes(true);
86
- } else {
87
- toast.success(t('editProfile.toasts.twoFactorEnabled') || 'Two‑Factor Authentication enabled');
88
- onSave?.();
89
- onClose();
90
- }
91
- } catch (e) {
92
- toast.error(e?.message || t('editProfile.toasts.invalidCode') || 'Invalid code');
93
- } finally {
94
- setIsBusy(false);
95
- }
96
- };
97
- const handleDisable = async () => {
98
- if (!activeSessionId || !oxyServices) {
99
- toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
100
- return;
101
- }
102
- if (totpCode.length !== 6) {
103
- toast.error(t('editProfile.toasts.invalidCode') || 'Please enter a 6-digit code');
104
- return;
105
- }
106
- setIsBusy(true);
107
- try {
108
- // Verify code before disabling
109
- await oxyServices.verifyTotpEnrollment(activeSessionId, totpCode);
110
- await updateUser({
111
- privacySettings: {
112
- twoFactorEnabled: false
113
- }
114
- }, oxyServices);
115
- toast.success(t('editProfile.toasts.twoFactorDisabled') || 'Two‑Factor Authentication disabled');
116
- onSave?.();
117
- onClose();
118
- } catch (e) {
119
- toast.error(e?.message || t('editProfile.toasts.invalidCode') || 'Invalid code');
120
- } finally {
121
- setIsBusy(false);
122
- }
123
- };
124
- return /*#__PURE__*/_jsx(Modal, {
125
- visible: visible,
126
- animationType: "slide",
127
- transparent: true,
128
- onRequestClose: onClose,
129
- children: /*#__PURE__*/_jsx(View, {
130
- style: styles.modalOverlay,
131
- children: /*#__PURE__*/_jsxs(View, {
132
- style: [styles.modalContent, {
133
- backgroundColor: colors.background
134
- }],
135
- children: [/*#__PURE__*/_jsxs(View, {
136
- style: styles.modalHeader,
137
- children: [/*#__PURE__*/_jsx(TouchableOpacity, {
138
- onPress: onClose,
139
- style: styles.closeButton,
140
- children: /*#__PURE__*/_jsx(Ionicons, {
141
- name: "close",
142
- size: 24,
143
- color: colors.text
144
- })
145
- }), /*#__PURE__*/_jsx(Text, {
146
- style: [styles.modalTitle, {
147
- color: colors.text
148
- }],
149
- children: t('editProfile.items.twoFactor.title') || 'Two‑Factor Authentication'
150
- }), /*#__PURE__*/_jsx(View, {
151
- style: {
152
- width: 40
153
- }
154
- })]
155
- }), /*#__PURE__*/_jsx(ScrollView, {
156
- style: styles.modalBody,
157
- children: showRecoveryCodes ? /*#__PURE__*/_jsxs(View, {
158
- style: styles.recoverySection,
159
- children: [/*#__PURE__*/_jsx(Text, {
160
- style: [styles.sectionTitle, {
161
- color: colors.text
162
- }],
163
- children: t('editProfile.items.twoFactor.saveCodes') || 'Save These Codes'
164
- }), /*#__PURE__*/_jsx(Text, {
165
- style: [styles.description, {
166
- color: colors.secondaryText
167
- }],
168
- children: t('editProfile.items.twoFactor.recoveryDescription') || 'Backup codes and your Recovery Key are shown only once. Store them securely.'
169
- }), recoveryCodes && recoveryCodes.length > 0 && /*#__PURE__*/_jsxs(View, {
170
- style: styles.recoveryCodesContainer,
171
- children: [/*#__PURE__*/_jsx(Text, {
172
- style: [styles.recoveryLabel, {
173
- color: colors.text
174
- }],
175
- children: "Backup Codes"
176
- }), /*#__PURE__*/_jsx(View, {
177
- style: [styles.codesBox, {
178
- backgroundColor: colors.card,
179
- borderColor: colors.border
180
- }],
181
- children: recoveryCodes.map((code, idx) => /*#__PURE__*/_jsx(Text, {
182
- style: [styles.codeText, {
183
- color: colors.text
184
- }],
185
- children: code
186
- }, idx))
187
- })]
188
- }), recoveryKey && /*#__PURE__*/_jsxs(View, {
189
- style: styles.recoveryCodesContainer,
190
- children: [/*#__PURE__*/_jsx(Text, {
191
- style: [styles.recoveryLabel, {
192
- color: colors.text
193
- }],
194
- children: "Recovery Key"
195
- }), /*#__PURE__*/_jsx(View, {
196
- style: [styles.codesBox, {
197
- backgroundColor: colors.card,
198
- borderColor: colors.border
199
- }],
200
- children: /*#__PURE__*/_jsx(Text, {
201
- style: [styles.codeText, {
202
- color: colors.text
203
- }],
204
- children: recoveryKey
205
- })
206
- })]
207
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
208
- style: [styles.primaryButton, {
209
- backgroundColor: colors.tint
210
- }],
211
- onPress: () => {
212
- setShowRecoveryCodes(false);
213
- onSave?.();
214
- onClose();
215
- },
216
- children: /*#__PURE__*/_jsx(Text, {
217
- style: styles.primaryButtonText,
218
- children: t('editProfile.items.twoFactor.saved') || 'I saved them'
219
- })
220
- })]
221
- }) : isEnabled ? /*#__PURE__*/_jsxs(View, {
222
- style: styles.disableSection,
223
- children: [/*#__PURE__*/_jsx(Text, {
224
- style: [styles.description, {
225
- color: colors.secondaryText
226
- }],
227
- children: t('editProfile.items.twoFactor.disableDescription') || 'Two‑Factor Authentication is currently enabled. To disable, enter a code from your authenticator app.'
228
- }), /*#__PURE__*/_jsxs(View, {
229
- style: styles.inputGroup,
230
- children: [/*#__PURE__*/_jsx(Text, {
231
- style: [styles.label, {
232
- color: colors.text
233
- }],
234
- children: t('editProfile.items.twoFactor.enterCode') || 'Enter 6‑digit code'
235
- }), /*#__PURE__*/_jsx(TextInput, {
236
- style: [styles.input, {
237
- backgroundColor: colors.card,
238
- color: colors.text,
239
- borderColor: colors.border
240
- }],
241
- value: totpCode,
242
- onChangeText: setTotpCode,
243
- placeholder: "123456",
244
- placeholderTextColor: colors.secondaryText,
245
- keyboardType: "number-pad",
246
- maxLength: 6,
247
- selectionColor: colors.tint
248
- })]
249
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
250
- style: [styles.primaryButton, {
251
- backgroundColor: '#FF3B30'
252
- }],
253
- disabled: isBusy || totpCode.length !== 6,
254
- onPress: handleDisable,
255
- children: isBusy ? /*#__PURE__*/_jsx(ActivityIndicator, {
256
- size: "small",
257
- color: "#fff"
258
- }) : /*#__PURE__*/_jsx(Text, {
259
- style: styles.primaryButtonText,
260
- children: t('editProfile.items.twoFactor.disable') || 'Disable'
261
- })
262
- })]
263
- }) : /*#__PURE__*/_jsxs(View, {
264
- style: styles.enableSection,
265
- children: [/*#__PURE__*/_jsx(Text, {
266
- style: [styles.description, {
267
- color: colors.secondaryText
268
- }],
269
- children: t('editProfile.items.twoFactor.description') || 'Protect your account with a 6‑digit code from an authenticator app. Scan the QR code then enter the code to enable.'
270
- }), !totpSetupUrl ? /*#__PURE__*/_jsx(TouchableOpacity, {
271
- style: [styles.primaryButton, {
272
- backgroundColor: colors.tint
273
- }],
274
- disabled: isBusy,
275
- onPress: handleGenerateQR,
276
- children: isBusy ? /*#__PURE__*/_jsx(ActivityIndicator, {
277
- size: "small",
278
- color: "#fff"
279
- }) : /*#__PURE__*/_jsxs(_Fragment, {
280
- children: [/*#__PURE__*/_jsx(Ionicons, {
281
- name: "shield-checkmark",
282
- size: 18,
283
- color: "#fff"
284
- }), /*#__PURE__*/_jsx(Text, {
285
- style: styles.primaryButtonText,
286
- children: t('editProfile.items.twoFactor.generateQR') || 'Generate QR Code'
287
- })]
288
- })
289
- }) : /*#__PURE__*/_jsxs(_Fragment, {
290
- children: [/*#__PURE__*/_jsx(View, {
291
- style: [styles.qrContainer, {
292
- backgroundColor: '#fff'
293
- }],
294
- children: /*#__PURE__*/_jsx(QRCode, {
295
- value: totpSetupUrl,
296
- size: 180
297
- })
298
- }), /*#__PURE__*/_jsxs(View, {
299
- style: styles.inputGroup,
300
- children: [/*#__PURE__*/_jsx(Text, {
301
- style: [styles.label, {
302
- color: colors.text
303
- }],
304
- children: t('editProfile.items.twoFactor.enterCode') || 'Enter 6‑digit code'
305
- }), /*#__PURE__*/_jsx(TextInput, {
306
- style: [styles.input, {
307
- backgroundColor: colors.card,
308
- color: colors.text,
309
- borderColor: colors.border
310
- }],
311
- value: totpCode,
312
- onChangeText: setTotpCode,
313
- placeholder: "123456",
314
- placeholderTextColor: colors.secondaryText,
315
- keyboardType: "number-pad",
316
- maxLength: 6,
317
- selectionColor: colors.tint
318
- })]
319
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
320
- style: [styles.primaryButton, {
321
- backgroundColor: colors.tint
322
- }],
323
- disabled: isBusy || totpCode.length !== 6,
324
- onPress: handleVerify,
325
- children: isBusy ? /*#__PURE__*/_jsx(ActivityIndicator, {
326
- size: "small",
327
- color: "#fff"
328
- }) : /*#__PURE__*/_jsxs(_Fragment, {
329
- children: [/*#__PURE__*/_jsx(Ionicons, {
330
- name: "checkmark-circle",
331
- size: 18,
332
- color: "#fff"
333
- }), /*#__PURE__*/_jsx(Text, {
334
- style: styles.primaryButtonText,
335
- children: t('editProfile.items.twoFactor.verify') || 'Verify & Enable'
336
- })]
337
- })
338
- })]
339
- })]
340
- })
341
- })]
342
- })
343
- })
344
- });
345
- };
346
- const styles = StyleSheet.create({
347
- modalOverlay: {
348
- flex: 1,
349
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
350
- justifyContent: 'flex-end'
351
- },
352
- modalContent: {
353
- borderTopLeftRadius: 20,
354
- borderTopRightRadius: 20,
355
- paddingTop: Platform.OS === 'ios' ? 20 : 16,
356
- maxHeight: '80%'
357
- },
358
- modalHeader: {
359
- flexDirection: 'row',
360
- alignItems: 'center',
361
- justifyContent: 'space-between',
362
- paddingHorizontal: 16,
363
- paddingBottom: 16,
364
- borderBottomWidth: StyleSheet.hairlineWidth,
365
- borderBottomColor: '#E5E5EA'
366
- },
367
- closeButton: {
368
- width: 40,
369
- height: 40,
370
- alignItems: 'center',
371
- justifyContent: 'center'
372
- },
373
- modalTitle: {
374
- fontSize: 18,
375
- fontWeight: '600',
376
- fontFamily: fontFamilies.phuduSemiBold,
377
- flex: 1,
378
- textAlign: 'center'
379
- },
380
- modalBody: {
381
- padding: 16
382
- },
383
- enableSection: {
384
- gap: 24,
385
- alignItems: 'center'
386
- },
387
- disableSection: {
388
- gap: 24
389
- },
390
- recoverySection: {
391
- gap: 24
392
- },
393
- sectionTitle: {
394
- fontSize: 20,
395
- fontWeight: '700',
396
- fontFamily: fontFamilies.phuduBold
397
- },
398
- description: {
399
- fontSize: 14,
400
- lineHeight: 20
401
- },
402
- qrContainer: {
403
- padding: 16,
404
- borderRadius: 16,
405
- alignItems: 'center',
406
- justifyContent: 'center'
407
- },
408
- inputGroup: {
409
- width: '100%',
410
- gap: 8
411
- },
412
- label: {
413
- fontSize: 14,
414
- fontWeight: '600',
415
- fontFamily: fontFamilies.phuduSemiBold
416
- },
417
- input: {
418
- borderWidth: StyleSheet.hairlineWidth,
419
- borderRadius: 12,
420
- padding: 16,
421
- fontSize: 16,
422
- minHeight: 52,
423
- textAlign: 'center'
424
- },
425
- primaryButton: {
426
- flexDirection: 'row',
427
- alignItems: 'center',
428
- justifyContent: 'center',
429
- gap: 8,
430
- paddingVertical: 12,
431
- paddingHorizontal: 16,
432
- borderRadius: 12,
433
- width: '100%'
434
- },
435
- primaryButtonText: {
436
- color: '#fff',
437
- fontSize: 16,
438
- fontWeight: '600',
439
- fontFamily: fontFamilies.phuduSemiBold
440
- },
441
- recoveryCodesContainer: {
442
- gap: 8
443
- },
444
- recoveryLabel: {
445
- fontSize: 16,
446
- fontWeight: '600',
447
- fontFamily: fontFamilies.phuduSemiBold
448
- },
449
- codesBox: {
450
- padding: 16,
451
- borderRadius: 12,
452
- borderWidth: StyleSheet.hairlineWidth,
453
- gap: 8
454
- },
455
- codeText: {
456
- fontSize: 14,
457
- fontFamily: Platform.OS === 'web' ? 'monospace' : 'monospace'
458
- }
459
- });
460
- //# sourceMappingURL=TwoFactorSetupModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useState","useEffect","View","Text","TextInput","TouchableOpacity","StyleSheet","Modal","Platform","ScrollView","ActivityIndicator","Ionicons","QRCode","useThemeStyles","useColorScheme","useI18n","fontFamilies","useOxy","useAuthStore","toast","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TwoFactorSetupModal","visible","onClose","isEnabled","theme","onSave","t","colorScheme","themeStyles","colors","oxyServices","activeSessionId","updateUser","state","totpSetupUrl","setTotpSetupUrl","totpCode","setTotpCode","isBusy","setIsBusy","showRecoveryCodes","setShowRecoveryCodes","recoveryCodes","setRecoveryCodes","recoveryKey","setRecoveryKey","handleGenerateQR","error","otpauthUrl","startTotpEnrollment","e","message","handleVerify","length","result","verifyTotpEnrollment","privacySettings","twoFactorEnabled","backupCodes","success","handleDisable","animationType","transparent","onRequestClose","children","style","styles","modalOverlay","modalContent","backgroundColor","background","modalHeader","onPress","closeButton","name","size","color","text","modalTitle","width","modalBody","recoverySection","sectionTitle","description","secondaryText","recoveryCodesContainer","recoveryLabel","codesBox","card","borderColor","border","map","code","idx","codeText","primaryButton","tint","primaryButtonText","disableSection","inputGroup","label","input","value","onChangeText","placeholder","placeholderTextColor","keyboardType","maxLength","selectionColor","disabled","enableSection","qrContainer","create","flex","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","OS","maxHeight","flexDirection","alignItems","paddingHorizontal","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","height","fontSize","fontWeight","fontFamily","phuduSemiBold","textAlign","padding","gap","phuduBold","lineHeight","borderRadius","borderWidth","minHeight","paddingVertical"],"sourceRoot":"../../../../../src","sources":["ui/components/profile/TwoFactorSetupModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,66 +0,0 @@
1
- /**
2
- * TOTP Enrollment Methods Mixin
3
- */
4
- import type { OxyServicesBase } from '../OxyServices.base';
5
- export declare function OxyServicesTotpMixin<T extends typeof OxyServicesBase>(Base: T): {
6
- new (...args: any[]): {
7
- startTotpEnrollment(sessionId: string): Promise<{
8
- secret: string;
9
- otpauthUrl: string;
10
- issuer: string;
11
- label: string;
12
- }>;
13
- verifyTotpEnrollment(sessionId: string, code: string): Promise<{
14
- enabled: boolean;
15
- backupCodes?: string[];
16
- recoveryKey?: string;
17
- }>;
18
- disableTotp(sessionId: string, code: string): Promise<{
19
- disabled: boolean;
20
- }>;
21
- httpService: import("../HttpService").HttpService;
22
- cloudURL: string;
23
- config: import("../OxyServices.base").OxyConfig;
24
- makeRequest<T_1>(method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE", url: string, data?: any, options?: import("../HttpService").RequestOptions): Promise<T_1>;
25
- getBaseURL(): string;
26
- getClient(): import("../HttpService").HttpService;
27
- getMetrics(): {
28
- totalRequests: number;
29
- successfulRequests: number;
30
- failedRequests: number;
31
- cacheHits: number;
32
- cacheMisses: number;
33
- averageResponseTime: number;
34
- };
35
- clearCache(): void;
36
- clearCacheEntry(key: string): void;
37
- getCacheStats(): {
38
- size: number;
39
- hits: number;
40
- misses: number;
41
- hitRate: number;
42
- };
43
- getCloudURL(): string;
44
- setTokens(accessToken: string, refreshToken?: string): void;
45
- clearTokens(): void;
46
- getCurrentUserId(): string | null;
47
- hasValidToken(): boolean;
48
- getAccessToken(): string | null;
49
- waitForAuth(timeoutMs?: number): Promise<boolean>;
50
- withAuthRetry<T_1>(operation: () => Promise<T_1>, operationName: string, options?: {
51
- maxRetries?: number;
52
- retryDelay?: number;
53
- authTimeoutMs?: number;
54
- }): Promise<T_1>;
55
- validate(): Promise<boolean>;
56
- handleError(error: unknown): Error;
57
- healthCheck(): Promise<{
58
- status: string;
59
- users?: number;
60
- timestamp?: string;
61
- [key: string]: any;
62
- }>;
63
- };
64
- __resetTokensForTests(): void;
65
- } & T;
66
- //# sourceMappingURL=OxyServices.totp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OxyServices.totp.d.ts","sourceRoot":"","sources":["../../../../src/core/mixins/OxyServices.totp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,eAAe,EAAE,IAAI,EAAE,CAAC;kBAErD,GAAG,EAAE;uCAGW,MAAM,GAAG,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;wCAQtF,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;+BAQ3G,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC;YAAE,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAUsjJ,CAAC;sBAA0B,CAAC;yBAA6B,CAAC;;;;;;iBAAuhG,CAAC;qBAAwB,CAAC;;;;;MAFtvP"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- interface TwoFactorSetupModalProps {
3
- visible: boolean;
4
- onClose: () => void;
5
- isEnabled: boolean;
6
- theme?: 'light' | 'dark';
7
- onSave?: () => void;
8
- }
9
- export declare const TwoFactorSetupModal: React.FC<TwoFactorSetupModalProps>;
10
- export {};
11
- //# sourceMappingURL=TwoFactorSetupModal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TwoFactorSetupModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/profile/TwoFactorSetupModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAsBnD,UAAU,wBAAwB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgSlE,CAAC"}
@@ -1,36 +0,0 @@
1
- /**
2
- * TOTP Enrollment Methods Mixin
3
- */
4
- import type { OxyServicesBase } from '../OxyServices.base';
5
-
6
- export function OxyServicesTotpMixin<T extends typeof OxyServicesBase>(Base: T) {
7
- return class extends Base {
8
- constructor(...args: any[]) {
9
- super(...(args as [any]));
10
- }
11
- async startTotpEnrollment(sessionId: string): Promise<{ secret: string; otpauthUrl: string; issuer: string; label: string }> {
12
- try {
13
- return await this.makeRequest('POST', '/api/auth/totp/enroll/start', { sessionId }, { cache: false });
14
- } catch (error) {
15
- throw this.handleError(error);
16
- }
17
- }
18
-
19
- async verifyTotpEnrollment(sessionId: string, code: string): Promise<{ enabled: boolean; backupCodes?: string[]; recoveryKey?: string }> {
20
- try {
21
- return await this.makeRequest('POST', '/api/auth/totp/enroll/verify', { sessionId, code }, { cache: false });
22
- } catch (error) {
23
- throw this.handleError(error);
24
- }
25
- }
26
-
27
- async disableTotp(sessionId: string, code: string): Promise<{ disabled: boolean }> {
28
- try {
29
- return await this.makeRequest('POST', '/api/auth/totp/disable', { sessionId, code }, { cache: false });
30
- } catch (error) {
31
- throw this.handleError(error);
32
- }
33
- }
34
- };
35
- }
36
-