@oxy.so/services 12.2.1 → 12.4.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.
- package/README.md +1 -1
- package/lib/commonjs/index.js +17 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/client.js +54 -0
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +11 -10
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +19 -18
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyEmailPanel.js +251 -0
- package/lib/commonjs/ui/components/signIn/OxyEmailPanel.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +40 -33
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +51 -19
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignInSecurityPanel.js +154 -0
- package/lib/commonjs/ui/components/signIn/OxySignInSecurityPanel.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/ReauthStep.js +6 -4
- package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/SessionsSection.js +200 -0
- package/lib/commonjs/ui/components/signIn/SessionsSection.js.map +1 -0
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js +6 -0
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/accountSecurityState.js +74 -0
- package/lib/commonjs/ui/components/signIn/accountSecurityState.js.map +1 -0
- package/lib/commonjs/ui/navigation/routes.js +1 -1
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/navigation/screenComponents.js +4 -0
- package/lib/commonjs/ui/navigation/screenComponents.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +8 -196
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInEmailScreen.js +19 -0
- package/lib/commonjs/ui/screens/SignInEmailScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/SignInSecurityScreen.js +30 -0
- package/lib/commonjs/ui/screens/SignInSecurityScreen.js.map +1 -0
- package/lib/module/index.js +5 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/client.js +11 -1
- package/lib/module/ui/client.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +12 -11
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +20 -19
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyEmailPanel.js +246 -0
- package/lib/module/ui/components/signIn/OxyEmailPanel.js.map +1 -0
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +40 -33
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js +52 -20
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignInSecurityPanel.js +149 -0
- package/lib/module/ui/components/signIn/OxySignInSecurityPanel.js.map +1 -0
- package/lib/module/ui/components/signIn/ReauthStep.js +6 -4
- package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/module/ui/components/signIn/SessionsSection.js +194 -0
- package/lib/module/ui/components/signIn/SessionsSection.js.map +1 -0
- package/lib/module/ui/components/signIn/accountFlowParts.js +6 -0
- package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/module/ui/components/signIn/accountSecurityState.js +69 -0
- package/lib/module/ui/components/signIn/accountSecurityState.js.map +1 -0
- package/lib/module/ui/navigation/routes.js +1 -1
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/navigation/screenComponents.js +4 -0
- package/lib/module/ui/navigation/screenComponents.js.map +1 -1
- package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/module/ui/screens/AccountSecurityPanelScreen.js +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +9 -197
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInEmailScreen.js +17 -0
- package/lib/module/ui/screens/SignInEmailScreen.js.map +1 -0
- package/lib/module/ui/screens/SignInSecurityScreen.js +26 -0
- package/lib/module/ui/screens/SignInSecurityScreen.js.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +4 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +8 -1
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts +3 -2
- package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyEmailPanel.d.ts +21 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyEmailPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts +2 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts +5 -4
- package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxySignInSecurityPanel.d.ts +25 -0
- package/lib/typescript/commonjs/ui/components/signIn/OxySignInSecurityPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +8 -2
- package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/SessionsSection.d.ts +9 -0
- package/lib/typescript/commonjs/ui/components/signIn/SessionsSection.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/accountSecurityState.d.ts +26 -0
- package/lib/typescript/commonjs/ui/components/signIn/accountSecurityState.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/screenComponents.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +2 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +3 -2
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/SignInEmailScreen.d.ts +6 -0
- package/lib/typescript/commonjs/ui/screens/SignInEmailScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/SignInSecurityScreen.d.ts +6 -0
- package/lib/typescript/commonjs/ui/screens/SignInSecurityScreen.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +4 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/client.d.ts +8 -1
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts +3 -2
- package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyEmailPanel.d.ts +21 -0
- package/lib/typescript/module/ui/components/signIn/OxyEmailPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts +2 -1
- package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts +5 -4
- package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxySignInSecurityPanel.d.ts +25 -0
- package/lib/typescript/module/ui/components/signIn/OxySignInSecurityPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +8 -2
- package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/SessionsSection.d.ts +9 -0
- package/lib/typescript/module/ui/components/signIn/SessionsSection.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/accountSecurityState.d.ts +26 -0
- package/lib/typescript/module/ui/components/signIn/accountSecurityState.d.ts.map +1 -0
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/screenComponents.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +2 -0
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +3 -2
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/SignInEmailScreen.d.ts +6 -0
- package/lib/typescript/module/ui/screens/SignInEmailScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/SignInSecurityScreen.d.ts +6 -0
- package/lib/typescript/module/ui/screens/SignInSecurityScreen.d.ts.map +1 -0
- package/package.json +5 -5
- package/src/index.ts +7 -2
- package/src/ui/client.ts +16 -1
- package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +11 -8
- package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +15 -16
- package/src/ui/components/signIn/OxyEmailPanel.tsx +258 -0
- package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +27 -15
- package/src/ui/components/signIn/OxyPasswordPanel.tsx +49 -14
- package/src/ui/components/signIn/OxySignInSecurityPanel.tsx +147 -0
- package/src/ui/components/signIn/ReauthStep.tsx +13 -4
- package/src/ui/components/signIn/SessionsSection.tsx +218 -0
- package/src/ui/components/signIn/accountFlowParts.tsx +6 -0
- package/src/ui/components/signIn/accountSecurityState.tsx +75 -0
- package/src/ui/navigation/routes.ts +5 -1
- package/src/ui/navigation/screenComponents.ts +4 -0
- package/src/ui/navigation/surfaceRegistry.ts +2 -0
- package/src/ui/screens/AccountSecurityPanelScreen.tsx +1 -1
- package/src/ui/screens/ManageAccountScreen.tsx +8 -241
- package/src/ui/screens/SignInEmailScreen.tsx +13 -0
- package/src/ui/screens/SignInSecurityScreen.tsx +19 -0
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* QR → Commons scans and signs with its key → both screens show the same
|
|
8
8
|
* code → the person confirms it's them with a code sent to the account's
|
|
9
|
-
* email (+ the authenticator's code) →
|
|
9
|
+
* email, or its password when it has none (+ the authenticator's code) →
|
|
10
|
+
* linked
|
|
10
11
|
*
|
|
11
12
|
* Afterwards the account is self-custodied: its root is the key Commons holds,
|
|
12
13
|
* its email, password and authenticator are deleted, and its phrase in Commons
|
|
@@ -22,11 +23,11 @@ import { useTheme } from '@oxy.so/bloom/theme';
|
|
|
22
23
|
import { Text } from '@oxy.so/bloom/typography';
|
|
23
24
|
import { useOxy } from "../../context/oxyRuntimeContext.js";
|
|
24
25
|
import { loadIdentityCrypto } from "../../utils/identityCrypto.js";
|
|
25
|
-
import { useSignInMethods } from "../../hooks/queries/useAuthMethods.js";
|
|
26
26
|
import { useI18n } from "../../hooks/useI18n.js";
|
|
27
27
|
import { OxyAuthScreen, OxyAuthScreenHeader } from "./OxyAuthScreen.js";
|
|
28
28
|
import { ReauthStep } from "./ReauthStep.js";
|
|
29
29
|
import { AccountFlowAction, AccountFlowErrorLine, AccountFlowNote, describeSignInError } from "./accountFlowParts.js";
|
|
30
|
+
import { accountSecurityFallback, useAccountSecurityState } from "./accountSecurityState.js";
|
|
30
31
|
|
|
31
32
|
/** How often the page asks whether Commons has signed. */
|
|
32
33
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -44,17 +45,14 @@ export const OxyLinkCommonsPanel = ({
|
|
|
44
45
|
t
|
|
45
46
|
} = useI18n();
|
|
46
47
|
const {
|
|
47
|
-
user,
|
|
48
48
|
oxyServices
|
|
49
49
|
} = useOxy();
|
|
50
50
|
const [step, setStep] = useState({
|
|
51
51
|
name: 'opening'
|
|
52
52
|
});
|
|
53
53
|
const [error, setError] = useState(null);
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
enabled: !alreadyLinked
|
|
57
|
-
});
|
|
54
|
+
const security = useAccountSecurityState();
|
|
55
|
+
const alreadyLinked = security.keyed;
|
|
58
56
|
const open = useCallback(() => {
|
|
59
57
|
setError(null);
|
|
60
58
|
setStep({
|
|
@@ -74,10 +72,10 @@ export const OxyLinkCommonsPanel = ({
|
|
|
74
72
|
// One request per visit, opened once the page knows the account has no root.
|
|
75
73
|
const opened = useRef(false);
|
|
76
74
|
useEffect(() => {
|
|
77
|
-
if (alreadyLinked || opened.current) return;
|
|
75
|
+
if (alreadyLinked || !security.personal || opened.current) return;
|
|
78
76
|
opened.current = true;
|
|
79
77
|
open();
|
|
80
|
-
}, [alreadyLinked, open]);
|
|
78
|
+
}, [alreadyLinked, security.personal, open]);
|
|
81
79
|
|
|
82
80
|
// While the QR shows, ask whether Commons has signed; a request only lives a
|
|
83
81
|
// few minutes, and an expired one says so instead of waiting forever.
|
|
@@ -139,32 +137,41 @@ export const OxyLinkCommonsPanel = ({
|
|
|
139
137
|
})
|
|
140
138
|
});
|
|
141
139
|
}
|
|
140
|
+
if (!security.personal) return accountSecurityFallback(security, t('linkCommons.title'), t);
|
|
142
141
|
switch (step.name) {
|
|
143
142
|
case 'confirm':
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
143
|
+
{
|
|
144
|
+
// The proof depends on what the account has: wait for it rather than
|
|
145
|
+
// guess (an authenticator left out would only fail the confirmation).
|
|
146
|
+
const fallback = accountSecurityFallback(security, t('linkCommons.confirmTitle'), t);
|
|
147
|
+
if (fallback || !security.methods.data) return fallback;
|
|
148
|
+
const {
|
|
149
|
+
hasEmail,
|
|
150
|
+
totpEnabled
|
|
151
|
+
} = security.methods.data;
|
|
152
|
+
return /*#__PURE__*/_jsx(ReauthStep, {
|
|
153
|
+
title: t('linkCommons.confirmTitle'),
|
|
154
|
+
description: hasEmail ? t('linkCommons.confirmDescription') : t('linkCommons.confirmPasswordDescription'),
|
|
155
|
+
action: "link_commons"
|
|
156
|
+
// The mailbox proves it when there is one; the password only without.
|
|
157
|
+
,
|
|
158
|
+
allowPassword: !hasEmail,
|
|
159
|
+
allowEmail: hasEmail,
|
|
160
|
+
totpEnabled: totpEnabled,
|
|
161
|
+
submitLabel: t('linkCommons.confirm'),
|
|
162
|
+
onSubmit: async proof => {
|
|
163
|
+
await oxyServices.identity.links.complete(step.link.linkId, proof);
|
|
164
|
+
setStep({
|
|
165
|
+
name: 'done'
|
|
166
|
+
});
|
|
167
|
+
onLinked?.();
|
|
168
|
+
},
|
|
169
|
+
secondary: {
|
|
170
|
+
label: t('linkCommons.cancel'),
|
|
171
|
+
onPress: () => cancel(step.link)
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
168
175
|
case 'done':
|
|
169
176
|
return /*#__PURE__*/_jsx(OxyAuthScreen, {
|
|
170
177
|
children: /*#__PURE__*/_jsx(OxyAuthScreenHeader, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","StyleSheet","View","QRCode","Button","Loading","useTheme","Text","useOxy","loadIdentityCrypto","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","StyleSheet","View","QRCode","Button","Loading","useTheme","Text","useOxy","loadIdentityCrypto","useI18n","OxyAuthScreen","OxyAuthScreenHeader","ReauthStep","AccountFlowAction","AccountFlowErrorLine","AccountFlowNote","describeSignInError","accountSecurityFallback","useAccountSecurityState","jsx","_jsx","jsxs","_jsxs","IDENTITY_LINK_POLL_MS","QR_PLATE_BG","QR_FOREGROUND","QR_SIZE","OxyLinkCommonsPanel","onLinked","theme","t","oxyServices","step","setStep","name","error","setError","security","alreadyLinked","keyed","open","identity","links","create","then","link","catch","reason","opened","personal","current","stopped","poll","Date","now","expiresAt","state","get","linkId","status","publicKey","deriveIdentityLinkCode","code","timer","setTimeout","clearTimeout","cancel","cancelled","undefined","children","title","description","fallback","methods","data","hasEmail","totpEnabled","action","allowPassword","allowEmail","submitLabel","onSubmit","proof","complete","secondary","label","onPress","message","pending","testID","accessibilityLabel","split","join","style","styles","color","colors","text","slice","appearance","tone","size","fullWidth","plateRow","plate","borderColor","border","value","qrPayload","backgroundColor","variant","alignItems","padding","borderRadius","borderWidth","hairlineWidth","fontSize","lineHeight","fontWeight","letterSpacing","textAlign"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/OxyLinkCommonsPanel.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Setting or
|
|
5
|
-
* is optional: the account signs in with a code by email without
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Setting, changing or removing the account's password, from its settings. A
|
|
5
|
+
* password is optional: the account signs in with a code by email without
|
|
6
|
+
* one, and it can be removed while the account has an email. Each change is
|
|
7
|
+
* confirmed with the current password (when there is one) or a code sent to
|
|
8
|
+
* the account's email, plus the authenticator's code when it has one.
|
|
8
9
|
*/
|
|
9
10
|
|
|
10
11
|
import { useState } from 'react';
|
|
@@ -15,12 +16,13 @@ import { toast } from '@oxy.so/bloom/toast';
|
|
|
15
16
|
import { PASSWORD_MAX_LENGTH, PASSWORD_MIN_LENGTH } from '@oxy.so/contracts/client';
|
|
16
17
|
import { useQueryClient } from '@tanstack/react-query';
|
|
17
18
|
import { useOxy } from "../../context/oxyRuntimeContext.js";
|
|
18
|
-
import { useSignInMethods } from "../../hooks/queries/useAuthMethods.js";
|
|
19
19
|
import { queryKeys } from "../../hooks/queries/queryKeys.js";
|
|
20
20
|
import { useI18n } from "../../hooks/useI18n.js";
|
|
21
|
-
import {
|
|
21
|
+
import { SubtleLink } from "../authChooser/primitives.js";
|
|
22
|
+
import { OxyAuthScreen, OxyAuthScreenHeader } from "./OxyAuthScreen.js";
|
|
22
23
|
import { ReauthStep } from "./ReauthStep.js";
|
|
23
24
|
import { AccountFlowField } from "./accountFlowParts.js";
|
|
25
|
+
import { accountSecurityFallback, useAccountSecurityState } from "./accountSecurityState.js";
|
|
24
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
27
|
export const OxyPasswordPanel = ({
|
|
26
28
|
onDone,
|
|
@@ -30,18 +32,15 @@ export const OxyPasswordPanel = ({
|
|
|
30
32
|
t
|
|
31
33
|
} = useI18n();
|
|
32
34
|
const {
|
|
33
|
-
oxyServices
|
|
34
|
-
user
|
|
35
|
+
oxyServices
|
|
35
36
|
} = useOxy();
|
|
36
37
|
const queryClient = useQueryClient();
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
enabled: !keyed
|
|
40
|
-
});
|
|
38
|
+
const state = useAccountSecurityState();
|
|
39
|
+
const [removing, setRemoving] = useState(false);
|
|
41
40
|
const [password, setPassword] = useState('');
|
|
42
41
|
const [repeat, setRepeat] = useState('');
|
|
43
42
|
const [signOutOthers, setSignOutOthers] = useState(false);
|
|
44
|
-
if (keyed) {
|
|
43
|
+
if (state.keyed) {
|
|
45
44
|
return /*#__PURE__*/_jsx(OxyAuthScreen, {
|
|
46
45
|
children: /*#__PURE__*/_jsx(OxyAuthScreenHeader, {
|
|
47
46
|
title: t('signInSecurity.password.title'),
|
|
@@ -49,8 +48,38 @@ export const OxyPasswordPanel = ({
|
|
|
49
48
|
})
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
const fallback = accountSecurityFallback(state, t('signInSecurity.password.title'), t);
|
|
52
|
+
if (fallback || !state.methods.data) return fallback;
|
|
53
|
+
const {
|
|
54
|
+
hasEmail,
|
|
55
|
+
hasPassword,
|
|
56
|
+
totpEnabled
|
|
57
|
+
} = state.methods.data;
|
|
58
|
+
const refresh = () => void queryClient.invalidateQueries({
|
|
59
|
+
queryKey: queryKeys.signInMethods.all
|
|
60
|
+
});
|
|
61
|
+
if (removing) {
|
|
62
|
+
return /*#__PURE__*/_jsx(ReauthStep, {
|
|
63
|
+
title: t('signInSecurity.password.removeTitle'),
|
|
64
|
+
description: t('signInSecurity.password.removeDescription'),
|
|
65
|
+
action: "change_password",
|
|
66
|
+
allowPassword: true,
|
|
67
|
+
totpEnabled: totpEnabled,
|
|
68
|
+
submitLabel: t('signInSecurity.password.remove'),
|
|
69
|
+
destructive: true,
|
|
70
|
+
onSubmit: async reauth => {
|
|
71
|
+
await oxyServices.auth.password.remove(reauth);
|
|
72
|
+
refresh();
|
|
73
|
+
toast.success(t('signInSecurity.password.removed'));
|
|
74
|
+
setRemoving(false);
|
|
75
|
+
onDone?.();
|
|
76
|
+
},
|
|
77
|
+
secondary: {
|
|
78
|
+
label: t('common.cancel'),
|
|
79
|
+
onPress: () => setRemoving(false)
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
54
83
|
return /*#__PURE__*/_jsxs(ReauthStep, {
|
|
55
84
|
title: hasPassword ? t('signInSecurity.password.changeTitle') : t('signInSecurity.password.setTitle'),
|
|
56
85
|
description: t('signInSecurity.password.description', {
|
|
@@ -58,7 +87,8 @@ export const OxyPasswordPanel = ({
|
|
|
58
87
|
}),
|
|
59
88
|
action: "change_password",
|
|
60
89
|
allowPassword: hasPassword,
|
|
61
|
-
|
|
90
|
+
allowEmail: hasEmail,
|
|
91
|
+
totpEnabled: totpEnabled,
|
|
62
92
|
submitLabel: t('signInSecurity.password.save'),
|
|
63
93
|
validate: () => {
|
|
64
94
|
if (password.length < PASSWORD_MIN_LENGTH || password.length > PASSWORD_MAX_LENGTH) {
|
|
@@ -74,9 +104,7 @@ export const OxyPasswordPanel = ({
|
|
|
74
104
|
reauth,
|
|
75
105
|
revokeOtherSessions: signOutOthers
|
|
76
106
|
});
|
|
77
|
-
|
|
78
|
-
queryKey: queryKeys.signInMethods.all
|
|
79
|
-
});
|
|
107
|
+
refresh();
|
|
80
108
|
toast.success(t('signInSecurity.password.saved'));
|
|
81
109
|
onDone?.();
|
|
82
110
|
},
|
|
@@ -111,7 +139,11 @@ export const OxyPasswordPanel = ({
|
|
|
111
139
|
onCheckedChange: setSignOutOthers,
|
|
112
140
|
testID: "password-sign-out-others"
|
|
113
141
|
})
|
|
114
|
-
})
|
|
142
|
+
}), hasPassword && hasEmail ? /*#__PURE__*/_jsx(SubtleLink, {
|
|
143
|
+
label: t('signInSecurity.password.remove'),
|
|
144
|
+
onPress: () => setRemoving(true),
|
|
145
|
+
testID: "password-remove"
|
|
146
|
+
}) : null]
|
|
115
147
|
});
|
|
116
148
|
};
|
|
117
149
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","StyleSheet","Field","Switch","toast","PASSWORD_MAX_LENGTH","PASSWORD_MIN_LENGTH","useQueryClient","useOxy","
|
|
1
|
+
{"version":3,"names":["useState","StyleSheet","Field","Switch","toast","PASSWORD_MAX_LENGTH","PASSWORD_MIN_LENGTH","useQueryClient","useOxy","queryKeys","useI18n","SubtleLink","OxyAuthScreen","OxyAuthScreenHeader","ReauthStep","AccountFlowField","accountSecurityFallback","useAccountSecurityState","jsx","_jsx","jsxs","_jsxs","OxyPasswordPanel","onDone","onCancel","t","oxyServices","queryClient","state","removing","setRemoving","password","setPassword","repeat","setRepeat","signOutOthers","setSignOutOthers","keyed","children","title","description","fallback","methods","data","hasEmail","hasPassword","totpEnabled","refresh","invalidateQueries","queryKey","signInMethods","all","action","allowPassword","submitLabel","destructive","onSubmit","reauth","auth","remove","success","secondary","label","onPress","min","allowEmail","validate","length","set","newPassword","revokeOtherSessions","undefined","value","onChange","error","autoComplete","secureTextEntry","testID","autoFocus","style","styles","row","checked","onCheckedChange","create","flexDirection","alignItems","justifyContent","gap"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/OxyPasswordPanel.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* "Sign-in & security": every way the signed-in account signs in, each with
|
|
5
|
+
* its state, and every place it is signed in. One page, rendered by the
|
|
6
|
+
* account dialog's "Manage your account" (`SignInSecurity`) and by the
|
|
7
|
+
* Accounts app's security page.
|
|
8
|
+
*
|
|
9
|
+
* Each method opens its own panel: the email (`SignInEmail`), the password
|
|
10
|
+
* (`SignInPassword`), the authenticator app (`SignInAuthenticator`) and
|
|
11
|
+
* linking Commons (`LinkCommons`). An account with a Commons key signs in with
|
|
12
|
+
* Commons, so it sees only that; an organization, project or bot has no
|
|
13
|
+
* methods of its own, only its sessions.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { View } from 'react-native';
|
|
17
|
+
import { GroupedSection, GroupedSectionItem } from '@oxy.so/bloom/grouped-section';
|
|
18
|
+
import { useTheme } from '@oxy.so/bloom/theme';
|
|
19
|
+
import { useOxy } from "../../context/oxyRuntimeContext.js";
|
|
20
|
+
import { useI18n } from "../../hooks/useI18n.js";
|
|
21
|
+
import { SettingsIcon } from "../SettingsIcon.js";
|
|
22
|
+
import { AccountFlowNotice } from "./accountFlowParts.js";
|
|
23
|
+
import { useAccountSecurityState } from "./accountSecurityState.js";
|
|
24
|
+
import { SessionsSection } from "./SessionsSection.js";
|
|
25
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
+
export const OxySignInSecurityPanel = ({
|
|
27
|
+
onOpen
|
|
28
|
+
}) => {
|
|
29
|
+
const theme = useTheme();
|
|
30
|
+
const {
|
|
31
|
+
t
|
|
32
|
+
} = useI18n();
|
|
33
|
+
const {
|
|
34
|
+
user,
|
|
35
|
+
showBottomSheet
|
|
36
|
+
} = useOxy();
|
|
37
|
+
const {
|
|
38
|
+
keyed,
|
|
39
|
+
personal,
|
|
40
|
+
methods
|
|
41
|
+
} = useAccountSecurityState();
|
|
42
|
+
const open = route => () => onOpen ? onOpen(route) : showBottomSheet?.(route);
|
|
43
|
+
const on = theme.colors.success;
|
|
44
|
+
const off = theme.colors.textTertiary;
|
|
45
|
+
const renderMethods = () => {
|
|
46
|
+
if (keyed) {
|
|
47
|
+
return /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
48
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
49
|
+
name: "key",
|
|
50
|
+
color: on
|
|
51
|
+
}),
|
|
52
|
+
title: t('signInSecurity.commons.title'),
|
|
53
|
+
description: t('linkCommons.already'),
|
|
54
|
+
showChevron: false,
|
|
55
|
+
disabled: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!personal) {
|
|
59
|
+
return /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
60
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
61
|
+
name: "information",
|
|
62
|
+
color: off
|
|
63
|
+
}),
|
|
64
|
+
title: t('signInSecurity.notPersonal'),
|
|
65
|
+
showChevron: false,
|
|
66
|
+
disabled: true
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (!methods.data) {
|
|
70
|
+
return methods.isError ? /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
71
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
72
|
+
name: "alert-circle",
|
|
73
|
+
color: theme.colors.error
|
|
74
|
+
}),
|
|
75
|
+
title: t('signInSecurity.loadFailed'),
|
|
76
|
+
description: t('signInSecurity.retry'),
|
|
77
|
+
onPress: () => void methods.refetch(),
|
|
78
|
+
testID: "sign-in-security-retry"
|
|
79
|
+
}) : /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
80
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
81
|
+
name: "sync",
|
|
82
|
+
color: theme.colors.primary
|
|
83
|
+
}),
|
|
84
|
+
title: t('common.status.loading'),
|
|
85
|
+
showChevron: false,
|
|
86
|
+
disabled: true
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const {
|
|
90
|
+
hasEmail,
|
|
91
|
+
hasPassword,
|
|
92
|
+
totpEnabled,
|
|
93
|
+
backupCodesRemaining
|
|
94
|
+
} = methods.data;
|
|
95
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
96
|
+
children: [/*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
97
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
98
|
+
name: "email",
|
|
99
|
+
color: hasEmail ? on : off
|
|
100
|
+
}),
|
|
101
|
+
title: t('signInSecurity.email.title'),
|
|
102
|
+
description: hasEmail ? user?.email ?? t('signInSecurity.status.on') : t('signInSecurity.email.none'),
|
|
103
|
+
onPress: open('SignInEmail'),
|
|
104
|
+
testID: "sign-in-security-email"
|
|
105
|
+
}), /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
106
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
107
|
+
name: "key",
|
|
108
|
+
color: hasPassword ? on : off
|
|
109
|
+
}),
|
|
110
|
+
title: t('signInSecurity.password.title'),
|
|
111
|
+
description: hasPassword ? t('signInSecurity.status.on') : t('signInSecurity.password.row'),
|
|
112
|
+
onPress: open('SignInPassword'),
|
|
113
|
+
testID: "sign-in-security-password"
|
|
114
|
+
}), /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
115
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
116
|
+
name: "shield-check",
|
|
117
|
+
color: totpEnabled ? on : off
|
|
118
|
+
}),
|
|
119
|
+
title: t('signInSecurity.totp.title'),
|
|
120
|
+
description: totpEnabled ? t('signInSecurity.totp.onWithCodes', {
|
|
121
|
+
count: backupCodesRemaining
|
|
122
|
+
}) : t('signInSecurity.totp.row'),
|
|
123
|
+
onPress: open('SignInAuthenticator'),
|
|
124
|
+
testID: "sign-in-security-totp"
|
|
125
|
+
}), /*#__PURE__*/_jsx(GroupedSectionItem, {
|
|
126
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
127
|
+
name: "link",
|
|
128
|
+
color: theme.colors.primary
|
|
129
|
+
}),
|
|
130
|
+
title: t('linkCommons.title'),
|
|
131
|
+
description: t('linkCommons.row'),
|
|
132
|
+
onPress: open('LinkCommons'),
|
|
133
|
+
testID: "sign-in-security-commons"
|
|
134
|
+
})]
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
const noEmail = personal && !keyed && methods.data?.hasEmail === false;
|
|
138
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
139
|
+
children: [/*#__PURE__*/_jsx(GroupedSection, {
|
|
140
|
+
title: t('signInSecurity.methodsTitle'),
|
|
141
|
+
children: renderMethods()
|
|
142
|
+
}), noEmail ? /*#__PURE__*/_jsx(AccountFlowNotice, {
|
|
143
|
+
type: "warning",
|
|
144
|
+
testID: "sign-in-security-no-email",
|
|
145
|
+
children: t('signInSecurity.noEmailWarning')
|
|
146
|
+
}) : null, /*#__PURE__*/_jsx(SessionsSection, {})]
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=OxySignInSecurityPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","GroupedSection","GroupedSectionItem","useTheme","useOxy","useI18n","SettingsIcon","AccountFlowNotice","useAccountSecurityState","SessionsSection","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","OxySignInSecurityPanel","onOpen","theme","t","user","showBottomSheet","keyed","personal","methods","open","route","on","colors","success","off","textTertiary","renderMethods","icon","name","color","title","description","showChevron","disabled","data","isError","error","onPress","refetch","testID","primary","hasEmail","hasPassword","totpEnabled","backupCodesRemaining","children","email","count","noEmail","type"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/OxySignInSecurityPanel.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* "Confirm it's you": the fresh proof a sensitive change carries (`reauth`) —
|
|
5
5
|
* a code sent to the account's email for THIS change, or the current password
|
|
6
|
-
* where the change accepts one
|
|
7
|
-
*
|
|
6
|
+
* where the change accepts one (the only proof of an account without an
|
|
7
|
+
* email) — plus the authenticator's code (or a backup code) when the account
|
|
8
|
+
* has one. The screen that needs it puts its own fields
|
|
8
9
|
* above (`children`) and names its own action; this owns the proof.
|
|
9
10
|
*/
|
|
10
11
|
|
|
@@ -23,6 +24,7 @@ export const ReauthStep = ({
|
|
|
23
24
|
description,
|
|
24
25
|
action,
|
|
25
26
|
allowPassword = false,
|
|
27
|
+
allowEmail = true,
|
|
26
28
|
totpEnabled,
|
|
27
29
|
submitLabel,
|
|
28
30
|
destructive,
|
|
@@ -37,7 +39,7 @@ export const ReauthStep = ({
|
|
|
37
39
|
const {
|
|
38
40
|
oxyServices
|
|
39
41
|
} = useOxy();
|
|
40
|
-
const [mode, setMode] = useState(allowPassword ? 'password' : 'email');
|
|
42
|
+
const [mode, setMode] = useState(allowPassword || !allowEmail ? 'password' : 'email');
|
|
41
43
|
const [verificationId, setVerificationId] = useState(null);
|
|
42
44
|
const [emailCode, setEmailCode] = useState('');
|
|
43
45
|
const [password, setPassword] = useState('');
|
|
@@ -188,7 +190,7 @@ export const ReauthStep = ({
|
|
|
188
190
|
onPress: sendCode,
|
|
189
191
|
disabled: pending,
|
|
190
192
|
testID: "reauth-resend"
|
|
191
|
-
}) : null, allowPassword ? /*#__PURE__*/_jsx(SubtleLink, {
|
|
193
|
+
}) : null, allowPassword && allowEmail ? /*#__PURE__*/_jsx(SubtleLink, {
|
|
192
194
|
label: mode === 'password' ? t('reauth.useEmail') : t('reauth.usePassword'),
|
|
193
195
|
onPress: () => {
|
|
194
196
|
setError(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","View","Button","EMAIL_CODE_LENGTH","TOTP_DIGITS","useOxy","useI18n","SubtleLink","OxyAuthScreen","OxyAuthScreenHeader","AccountFlowAction","AccountFlowCodeField","AccountFlowErrorLine","AccountFlowField","AccountFlowNote","AccountFlowNotice","BACKUP_CODE_LENGTH","describeSignInError","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ReauthStep","title","description","action","allowPassword","totpEnabled","submitLabel","destructive","validate","onSubmit","secondary","children","t","oxyServices","mode","setMode","verificationId","setVerificationId","emailCode","setEmailCode","password","setPassword","totpCode","setTotpCode","useBackupCode","setUseBackupCode","pending","setPending","error","setError","run","work","catch","reason","finally","sendCode","started","auth","requestReauthCode","submit","invalid","totp","trim","proof","code","replace","length","needsCode","label","value","onChange","disabled","autoComplete","secureTextEntry","autoFocus","testID","type","groupEvery","undefined","onPress","message","style","flexDirection","alignItems","gap","appearance","tone","size","flex","minWidth"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/ReauthStep.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,0BAA0B;AACzE,SAASC,MAAM,QAAQ,oCAAiC;AACxD,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,oBAAiB;AACpE,SACEC,iBAAiB,EACjBC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,QACd,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useState","View","Button","EMAIL_CODE_LENGTH","TOTP_DIGITS","useOxy","useI18n","SubtleLink","OxyAuthScreen","OxyAuthScreenHeader","AccountFlowAction","AccountFlowCodeField","AccountFlowErrorLine","AccountFlowField","AccountFlowNote","AccountFlowNotice","BACKUP_CODE_LENGTH","describeSignInError","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ReauthStep","title","description","action","allowPassword","allowEmail","totpEnabled","submitLabel","destructive","validate","onSubmit","secondary","children","t","oxyServices","mode","setMode","verificationId","setVerificationId","emailCode","setEmailCode","password","setPassword","totpCode","setTotpCode","useBackupCode","setUseBackupCode","pending","setPending","error","setError","run","work","catch","reason","finally","sendCode","started","auth","requestReauthCode","submit","invalid","totp","trim","proof","code","replace","length","needsCode","label","value","onChange","disabled","autoComplete","secureTextEntry","autoFocus","testID","type","groupEvery","undefined","onPress","message","style","flexDirection","alignItems","gap","appearance","tone","size","flex","minWidth"],"sourceRoot":"../../../../../src","sources":["ui/components/signIn/ReauthStep.tsx"],"mappings":"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","ignoreList":[]}
|