@oxyhq/services 5.15.8 → 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 (148) 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 +178 -77
  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 +179 -78
  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 +1 -0
  95. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  96. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  97. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  98. package/lib/typescript/ui/stores/authStore.d.ts +4 -0
  99. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  100. package/package.json +6 -5
  101. package/src/core/OxyServices.ts +0 -1
  102. package/src/core/mixins/OxyServices.auth.ts +3 -8
  103. package/src/core/mixins/OxyServices.devices.ts +1 -4
  104. package/src/core/mixins/index.ts +2 -5
  105. package/src/crypto/index.ts +1 -0
  106. package/src/crypto/keyManager.ts +1 -0
  107. package/src/crypto/polyfill.ts +1 -0
  108. package/src/crypto/recoveryPhrase.ts +1 -0
  109. package/src/crypto/signatureService.ts +4 -5
  110. package/src/i18n/locales/ar-SA.json +1 -9
  111. package/src/i18n/locales/ca-ES.json +1 -9
  112. package/src/i18n/locales/de-DE.json +1 -9
  113. package/src/i18n/locales/en-US.json +3 -21
  114. package/src/i18n/locales/es-ES.json +3 -21
  115. package/src/i18n/locales/fr-FR.json +1 -9
  116. package/src/i18n/locales/it-IT.json +1 -9
  117. package/src/i18n/locales/ja-JP.json +1 -9
  118. package/src/i18n/locales/ko-KR.json +1 -9
  119. package/src/i18n/locales/pt-PT.json +1 -9
  120. package/src/i18n/locales/zh-CN.json +1 -9
  121. package/src/models/interfaces.ts +1 -1
  122. package/src/types/bip39.d.ts +1 -0
  123. package/src/types/buffer.d.ts +1 -0
  124. package/src/types/color.d.ts +1 -0
  125. package/src/types/elliptic.d.ts +1 -0
  126. package/src/types/expo-crypto.d.ts +1 -0
  127. package/src/types/expo-secure-store.d.ts +1 -0
  128. package/src/ui/context/OxyContext.tsx +35 -3
  129. package/src/ui/context/hooks/useAuthOperations.ts +212 -98
  130. package/src/ui/screens/AccountSettingsScreen.tsx +1 -201
  131. package/src/ui/screens/OxyAuthScreen.tsx +193 -69
  132. package/src/ui/screens/PrivacySettingsScreen.tsx +0 -2
  133. package/src/ui/screens/SessionManagementScreen.tsx +43 -26
  134. package/src/ui/stores/authStore.ts +31 -2
  135. package/lib/commonjs/core/mixins/OxyServices.totp.js +0 -53
  136. package/lib/commonjs/core/mixins/OxyServices.totp.js.map +0 -1
  137. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +0 -467
  138. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  139. package/lib/module/core/mixins/OxyServices.totp.js +0 -49
  140. package/lib/module/core/mixins/OxyServices.totp.js.map +0 -1
  141. package/lib/module/ui/components/profile/TwoFactorSetupModal.js +0 -460
  142. package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  143. package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -66
  144. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +0 -1
  145. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +0 -11
  146. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +0 -1
  147. package/src/core/mixins/OxyServices.totp.ts +0 -36
  148. package/src/ui/components/profile/TwoFactorSetupModal.tsx +0 -442
@@ -1,467 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TwoFactorSetupModal = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- var _vectorIcons = require("@expo/vector-icons");
10
- var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
11
- var _useThemeStyles = require("../../hooks/useThemeStyles");
12
- var _useColorScheme = require("../../hooks/use-color-scheme");
13
- var _useI18n = require("../../hooks/useI18n");
14
- var _fonts = require("../../styles/fonts");
15
- var _OxyContext = require("../../context/OxyContext");
16
- var _authStore = require("../../stores/authStore");
17
- var _sonner = require("../../../lib/sonner");
18
- var _jsxRuntime = require("react/jsx-runtime");
19
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
- 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); }
21
- const TwoFactorSetupModal = ({
22
- visible,
23
- onClose,
24
- isEnabled,
25
- theme = 'light',
26
- onSave
27
- }) => {
28
- const {
29
- t
30
- } = (0, _useI18n.useI18n)();
31
- const colorScheme = (0, _useColorScheme.useColorScheme)();
32
- const themeStyles = (0, _useThemeStyles.useThemeStyles)(theme || 'light', colorScheme);
33
- const colors = themeStyles.colors;
34
- const {
35
- oxyServices,
36
- activeSessionId
37
- } = (0, _OxyContext.useOxy)();
38
- const updateUser = (0, _authStore.useAuthStore)(state => state.updateUser);
39
- const [totpSetupUrl, setTotpSetupUrl] = (0, _react.useState)(null);
40
- const [totpCode, setTotpCode] = (0, _react.useState)('');
41
- const [isBusy, setIsBusy] = (0, _react.useState)(false);
42
- const [showRecoveryCodes, setShowRecoveryCodes] = (0, _react.useState)(false);
43
- const [recoveryCodes, setRecoveryCodes] = (0, _react.useState)(null);
44
- const [recoveryKey, setRecoveryKey] = (0, _react.useState)(null);
45
- (0, _react.useEffect)(() => {
46
- if (visible && !isEnabled) {
47
- setTotpSetupUrl(null);
48
- setTotpCode('');
49
- setShowRecoveryCodes(false);
50
- setRecoveryCodes(null);
51
- setRecoveryKey(null);
52
- }
53
- }, [visible, isEnabled]);
54
- const handleGenerateQR = async () => {
55
- if (!activeSessionId || !oxyServices) {
56
- _sonner.toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
57
- return;
58
- }
59
- setIsBusy(true);
60
- try {
61
- const {
62
- otpauthUrl
63
- } = await oxyServices.startTotpEnrollment(activeSessionId);
64
- setTotpSetupUrl(otpauthUrl);
65
- } catch (e) {
66
- _sonner.toast.error(e?.message || t('editProfile.toasts.totpStartFailed') || 'Failed to start TOTP enrollment');
67
- } finally {
68
- setIsBusy(false);
69
- }
70
- };
71
- const handleVerify = async () => {
72
- if (!activeSessionId || !oxyServices) {
73
- _sonner.toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
74
- return;
75
- }
76
- if (totpCode.length !== 6) {
77
- _sonner.toast.error(t('editProfile.toasts.invalidCode') || 'Please enter a 6-digit code');
78
- return;
79
- }
80
- setIsBusy(true);
81
- try {
82
- const result = await oxyServices.verifyTotpEnrollment(activeSessionId, totpCode);
83
- await updateUser({
84
- privacySettings: {
85
- twoFactorEnabled: true
86
- }
87
- }, oxyServices);
88
- if (result?.backupCodes || result?.recoveryKey) {
89
- setRecoveryCodes(result.backupCodes || null);
90
- setRecoveryKey(result.recoveryKey || null);
91
- setShowRecoveryCodes(true);
92
- } else {
93
- _sonner.toast.success(t('editProfile.toasts.twoFactorEnabled') || 'Two‑Factor Authentication enabled');
94
- onSave?.();
95
- onClose();
96
- }
97
- } catch (e) {
98
- _sonner.toast.error(e?.message || t('editProfile.toasts.invalidCode') || 'Invalid code');
99
- } finally {
100
- setIsBusy(false);
101
- }
102
- };
103
- const handleDisable = async () => {
104
- if (!activeSessionId || !oxyServices) {
105
- _sonner.toast.error(t('editProfile.toasts.noActiveSession') || 'No active session');
106
- return;
107
- }
108
- if (totpCode.length !== 6) {
109
- _sonner.toast.error(t('editProfile.toasts.invalidCode') || 'Please enter a 6-digit code');
110
- return;
111
- }
112
- setIsBusy(true);
113
- try {
114
- // Verify code before disabling
115
- await oxyServices.verifyTotpEnrollment(activeSessionId, totpCode);
116
- await updateUser({
117
- privacySettings: {
118
- twoFactorEnabled: false
119
- }
120
- }, oxyServices);
121
- _sonner.toast.success(t('editProfile.toasts.twoFactorDisabled') || 'Two‑Factor Authentication disabled');
122
- onSave?.();
123
- onClose();
124
- } catch (e) {
125
- _sonner.toast.error(e?.message || t('editProfile.toasts.invalidCode') || 'Invalid code');
126
- } finally {
127
- setIsBusy(false);
128
- }
129
- };
130
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
131
- visible: visible,
132
- animationType: "slide",
133
- transparent: true,
134
- onRequestClose: onClose,
135
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
136
- style: styles.modalOverlay,
137
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
138
- style: [styles.modalContent, {
139
- backgroundColor: colors.background
140
- }],
141
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
142
- style: styles.modalHeader,
143
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
144
- onPress: onClose,
145
- style: styles.closeButton,
146
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
147
- name: "close",
148
- size: 24,
149
- color: colors.text
150
- })
151
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
152
- style: [styles.modalTitle, {
153
- color: colors.text
154
- }],
155
- children: t('editProfile.items.twoFactor.title') || 'Two‑Factor Authentication'
156
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
157
- style: {
158
- width: 40
159
- }
160
- })]
161
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
162
- style: styles.modalBody,
163
- children: showRecoveryCodes ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
164
- style: styles.recoverySection,
165
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
166
- style: [styles.sectionTitle, {
167
- color: colors.text
168
- }],
169
- children: t('editProfile.items.twoFactor.saveCodes') || 'Save These Codes'
170
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
171
- style: [styles.description, {
172
- color: colors.secondaryText
173
- }],
174
- children: t('editProfile.items.twoFactor.recoveryDescription') || 'Backup codes and your Recovery Key are shown only once. Store them securely.'
175
- }), recoveryCodes && recoveryCodes.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
176
- style: styles.recoveryCodesContainer,
177
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
178
- style: [styles.recoveryLabel, {
179
- color: colors.text
180
- }],
181
- children: "Backup Codes"
182
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
183
- style: [styles.codesBox, {
184
- backgroundColor: colors.card,
185
- borderColor: colors.border
186
- }],
187
- children: recoveryCodes.map((code, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
188
- style: [styles.codeText, {
189
- color: colors.text
190
- }],
191
- children: code
192
- }, idx))
193
- })]
194
- }), recoveryKey && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
195
- style: styles.recoveryCodesContainer,
196
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
197
- style: [styles.recoveryLabel, {
198
- color: colors.text
199
- }],
200
- children: "Recovery Key"
201
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
202
- style: [styles.codesBox, {
203
- backgroundColor: colors.card,
204
- borderColor: colors.border
205
- }],
206
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
207
- style: [styles.codeText, {
208
- color: colors.text
209
- }],
210
- children: recoveryKey
211
- })
212
- })]
213
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
214
- style: [styles.primaryButton, {
215
- backgroundColor: colors.tint
216
- }],
217
- onPress: () => {
218
- setShowRecoveryCodes(false);
219
- onSave?.();
220
- onClose();
221
- },
222
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
223
- style: styles.primaryButtonText,
224
- children: t('editProfile.items.twoFactor.saved') || 'I saved them'
225
- })
226
- })]
227
- }) : isEnabled ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
228
- style: styles.disableSection,
229
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
230
- style: [styles.description, {
231
- color: colors.secondaryText
232
- }],
233
- children: t('editProfile.items.twoFactor.disableDescription') || 'Two‑Factor Authentication is currently enabled. To disable, enter a code from your authenticator app.'
234
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
235
- style: styles.inputGroup,
236
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
237
- style: [styles.label, {
238
- color: colors.text
239
- }],
240
- children: t('editProfile.items.twoFactor.enterCode') || 'Enter 6‑digit code'
241
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
242
- style: [styles.input, {
243
- backgroundColor: colors.card,
244
- color: colors.text,
245
- borderColor: colors.border
246
- }],
247
- value: totpCode,
248
- onChangeText: setTotpCode,
249
- placeholder: "123456",
250
- placeholderTextColor: colors.secondaryText,
251
- keyboardType: "number-pad",
252
- maxLength: 6,
253
- selectionColor: colors.tint
254
- })]
255
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
256
- style: [styles.primaryButton, {
257
- backgroundColor: '#FF3B30'
258
- }],
259
- disabled: isBusy || totpCode.length !== 6,
260
- onPress: handleDisable,
261
- children: isBusy ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
262
- size: "small",
263
- color: "#fff"
264
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
265
- style: styles.primaryButtonText,
266
- children: t('editProfile.items.twoFactor.disable') || 'Disable'
267
- })
268
- })]
269
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
270
- style: styles.enableSection,
271
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
272
- style: [styles.description, {
273
- color: colors.secondaryText
274
- }],
275
- 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.'
276
- }), !totpSetupUrl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
277
- style: [styles.primaryButton, {
278
- backgroundColor: colors.tint
279
- }],
280
- disabled: isBusy,
281
- onPress: handleGenerateQR,
282
- children: isBusy ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
283
- size: "small",
284
- color: "#fff"
285
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
286
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
287
- name: "shield-checkmark",
288
- size: 18,
289
- color: "#fff"
290
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
291
- style: styles.primaryButtonText,
292
- children: t('editProfile.items.twoFactor.generateQR') || 'Generate QR Code'
293
- })]
294
- })
295
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
296
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
297
- style: [styles.qrContainer, {
298
- backgroundColor: '#fff'
299
- }],
300
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeQrcodeSvg.default, {
301
- value: totpSetupUrl,
302
- size: 180
303
- })
304
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
305
- style: styles.inputGroup,
306
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
307
- style: [styles.label, {
308
- color: colors.text
309
- }],
310
- children: t('editProfile.items.twoFactor.enterCode') || 'Enter 6‑digit code'
311
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
312
- style: [styles.input, {
313
- backgroundColor: colors.card,
314
- color: colors.text,
315
- borderColor: colors.border
316
- }],
317
- value: totpCode,
318
- onChangeText: setTotpCode,
319
- placeholder: "123456",
320
- placeholderTextColor: colors.secondaryText,
321
- keyboardType: "number-pad",
322
- maxLength: 6,
323
- selectionColor: colors.tint
324
- })]
325
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
326
- style: [styles.primaryButton, {
327
- backgroundColor: colors.tint
328
- }],
329
- disabled: isBusy || totpCode.length !== 6,
330
- onPress: handleVerify,
331
- children: isBusy ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
332
- size: "small",
333
- color: "#fff"
334
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
335
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
336
- name: "checkmark-circle",
337
- size: 18,
338
- color: "#fff"
339
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
340
- style: styles.primaryButtonText,
341
- children: t('editProfile.items.twoFactor.verify') || 'Verify & Enable'
342
- })]
343
- })
344
- })]
345
- })]
346
- })
347
- })]
348
- })
349
- })
350
- });
351
- };
352
- exports.TwoFactorSetupModal = TwoFactorSetupModal;
353
- const styles = _reactNative.StyleSheet.create({
354
- modalOverlay: {
355
- flex: 1,
356
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
357
- justifyContent: 'flex-end'
358
- },
359
- modalContent: {
360
- borderTopLeftRadius: 20,
361
- borderTopRightRadius: 20,
362
- paddingTop: _reactNative.Platform.OS === 'ios' ? 20 : 16,
363
- maxHeight: '80%'
364
- },
365
- modalHeader: {
366
- flexDirection: 'row',
367
- alignItems: 'center',
368
- justifyContent: 'space-between',
369
- paddingHorizontal: 16,
370
- paddingBottom: 16,
371
- borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
372
- borderBottomColor: '#E5E5EA'
373
- },
374
- closeButton: {
375
- width: 40,
376
- height: 40,
377
- alignItems: 'center',
378
- justifyContent: 'center'
379
- },
380
- modalTitle: {
381
- fontSize: 18,
382
- fontWeight: '600',
383
- fontFamily: _fonts.fontFamilies.phuduSemiBold,
384
- flex: 1,
385
- textAlign: 'center'
386
- },
387
- modalBody: {
388
- padding: 16
389
- },
390
- enableSection: {
391
- gap: 24,
392
- alignItems: 'center'
393
- },
394
- disableSection: {
395
- gap: 24
396
- },
397
- recoverySection: {
398
- gap: 24
399
- },
400
- sectionTitle: {
401
- fontSize: 20,
402
- fontWeight: '700',
403
- fontFamily: _fonts.fontFamilies.phuduBold
404
- },
405
- description: {
406
- fontSize: 14,
407
- lineHeight: 20
408
- },
409
- qrContainer: {
410
- padding: 16,
411
- borderRadius: 16,
412
- alignItems: 'center',
413
- justifyContent: 'center'
414
- },
415
- inputGroup: {
416
- width: '100%',
417
- gap: 8
418
- },
419
- label: {
420
- fontSize: 14,
421
- fontWeight: '600',
422
- fontFamily: _fonts.fontFamilies.phuduSemiBold
423
- },
424
- input: {
425
- borderWidth: _reactNative.StyleSheet.hairlineWidth,
426
- borderRadius: 12,
427
- padding: 16,
428
- fontSize: 16,
429
- minHeight: 52,
430
- textAlign: 'center'
431
- },
432
- primaryButton: {
433
- flexDirection: 'row',
434
- alignItems: 'center',
435
- justifyContent: 'center',
436
- gap: 8,
437
- paddingVertical: 12,
438
- paddingHorizontal: 16,
439
- borderRadius: 12,
440
- width: '100%'
441
- },
442
- primaryButtonText: {
443
- color: '#fff',
444
- fontSize: 16,
445
- fontWeight: '600',
446
- fontFamily: _fonts.fontFamilies.phuduSemiBold
447
- },
448
- recoveryCodesContainer: {
449
- gap: 8
450
- },
451
- recoveryLabel: {
452
- fontSize: 16,
453
- fontWeight: '600',
454
- fontFamily: _fonts.fontFamilies.phuduSemiBold
455
- },
456
- codesBox: {
457
- padding: 16,
458
- borderRadius: 12,
459
- borderWidth: _reactNative.StyleSheet.hairlineWidth,
460
- gap: 8
461
- },
462
- codeText: {
463
- fontSize: 14,
464
- fontFamily: _reactNative.Platform.OS === 'web' ? 'monospace' : 'monospace'
465
- }
466
- });
467
- //# sourceMappingURL=TwoFactorSetupModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_reactNativeQrcodeSvg","_interopRequireDefault","_useThemeStyles","_useColorScheme","_useI18n","_fonts","_OxyContext","_authStore","_sonner","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TwoFactorSetupModal","visible","onClose","isEnabled","theme","onSave","useI18n","colorScheme","useColorScheme","themeStyles","useThemeStyles","colors","oxyServices","activeSessionId","useOxy","updateUser","useAuthStore","state","totpSetupUrl","setTotpSetupUrl","useState","totpCode","setTotpCode","isBusy","setIsBusy","showRecoveryCodes","setShowRecoveryCodes","recoveryCodes","setRecoveryCodes","recoveryKey","setRecoveryKey","useEffect","handleGenerateQR","toast","error","otpauthUrl","startTotpEnrollment","message","handleVerify","length","result","verifyTotpEnrollment","privacySettings","twoFactorEnabled","backupCodes","success","handleDisable","jsx","Modal","animationType","transparent","onRequestClose","children","View","style","styles","modalOverlay","jsxs","modalContent","backgroundColor","background","modalHeader","TouchableOpacity","onPress","closeButton","Ionicons","name","size","color","text","Text","modalTitle","width","ScrollView","modalBody","recoverySection","sectionTitle","description","secondaryText","recoveryCodesContainer","recoveryLabel","codesBox","card","borderColor","border","map","code","idx","codeText","primaryButton","tint","primaryButtonText","disableSection","inputGroup","label","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","keyboardType","maxLength","selectionColor","disabled","ActivityIndicator","enableSection","Fragment","qrContainer","exports","StyleSheet","create","flex","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","Platform","OS","maxHeight","flexDirection","alignItems","paddingHorizontal","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","height","fontSize","fontWeight","fontFamily","fontFamilies","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,49 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * TOTP Enrollment Methods Mixin
5
- */
6
-
7
- export function OxyServicesTotpMixin(Base) {
8
- return class extends Base {
9
- constructor(...args) {
10
- super(...args);
11
- }
12
- async startTotpEnrollment(sessionId) {
13
- try {
14
- return await this.makeRequest('POST', '/api/auth/totp/enroll/start', {
15
- sessionId
16
- }, {
17
- cache: false
18
- });
19
- } catch (error) {
20
- throw this.handleError(error);
21
- }
22
- }
23
- async verifyTotpEnrollment(sessionId, code) {
24
- try {
25
- return await this.makeRequest('POST', '/api/auth/totp/enroll/verify', {
26
- sessionId,
27
- code
28
- }, {
29
- cache: false
30
- });
31
- } catch (error) {
32
- throw this.handleError(error);
33
- }
34
- }
35
- async disableTotp(sessionId, code) {
36
- try {
37
- return await this.makeRequest('POST', '/api/auth/totp/disable', {
38
- sessionId,
39
- code
40
- }, {
41
- cache: false
42
- });
43
- } catch (error) {
44
- throw this.handleError(error);
45
- }
46
- }
47
- };
48
- }
49
- //# sourceMappingURL=OxyServices.totp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["OxyServicesTotpMixin","Base","constructor","args","startTotpEnrollment","sessionId","makeRequest","cache","error","handleError","verifyTotpEnrollment","code","disableTotp"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.totp.ts"],"mappings":";;AAAA;AACA;AACA;;AAGA,OAAO,SAASA,oBAAoBA,CAAmCC,IAAO,EAAE;EAC9E,OAAO,cAAcA,IAAI,CAAC;IACxBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;MAC1B,KAAK,CAAC,GAAIA,IAAc,CAAC;IAC3B;IACA,MAAMC,mBAAmBA,CAACC,SAAiB,EAAkF;MAC3H,IAAI;QACF,OAAO,MAAM,IAAI,CAACC,WAAW,CAAC,MAAM,EAAE,6BAA6B,EAAE;UAAED;QAAU,CAAC,EAAE;UAAEE,KAAK,EAAE;QAAM,CAAC,CAAC;MACvG,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;IAEA,MAAME,oBAAoBA,CAACL,SAAiB,EAAEM,IAAY,EAA+E;MACvI,IAAI;QACF,OAAO,MAAM,IAAI,CAACL,WAAW,CAAC,MAAM,EAAE,8BAA8B,EAAE;UAAED,SAAS;UAAEM;QAAK,CAAC,EAAE;UAAEJ,KAAK,EAAE;QAAM,CAAC,CAAC;MAC9G,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;IAEA,MAAMI,WAAWA,CAACP,SAAiB,EAAEM,IAAY,EAAkC;MACjF,IAAI;QACF,OAAO,MAAM,IAAI,CAACL,WAAW,CAAC,MAAM,EAAE,wBAAwB,EAAE;UAAED,SAAS;UAAEM;QAAK,CAAC,EAAE;UAAEJ,KAAK,EAAE;QAAM,CAAC,CAAC;MACxG,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}