@oxy.so/services 1.0.3 → 1.2.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/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/LanguageBridge.js +51 -0
- package/lib/commonjs/ui/components/LanguageBridge.js.map +1 -0
- package/lib/commonjs/ui/components/OxyAuthChooser.js +95 -140
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyConsentScreen.js +132 -2
- package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +19 -1
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +8 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +35 -25
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +2 -3
- package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignUpView.js +12 -127
- package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js +40 -0
- package/lib/commonjs/ui/components/authChooser/signInFailureMessage.js.map +1 -0
- package/lib/commonjs/ui/components/authChooser/types.js +4 -6
- package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +15 -2
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +3 -1
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -1
- package/lib/commonjs/ui/hooks/useProfileEditing.js +14 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +225 -9
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +10 -0
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/LanguageBridge.js +47 -0
- package/lib/module/ui/components/LanguageBridge.js.map +1 -0
- package/lib/module/ui/components/OxyAuthChooser.js +97 -142
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyConsentScreen.js +132 -2
- package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +19 -1
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +8 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js +35 -25
- package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignInRequestView.js +2 -3
- package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignUpView.js +14 -129
- package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/module/ui/components/authChooser/signInFailureMessage.js +36 -0
- package/lib/module/ui/components/authChooser/signInFailureMessage.js.map +1 -0
- package/lib/module/ui/components/authChooser/types.js +4 -6
- package/lib/module/ui/components/authChooser/types.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +15 -2
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/accountDialogSnapshot.js +3 -1
- package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -1
- package/lib/module/ui/hooks/useProfileEditing.js +14 -0
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +225 -9
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +12 -2
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/LanguageBridge.d.ts +19 -0
- package/lib/typescript/commonjs/ui/components/LanguageBridge.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -4
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts +17 -1
- package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +14 -0
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +11 -12
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts +10 -13
- package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +16 -0
- package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +11 -13
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +3 -2
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +20 -2
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +1 -0
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +29 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/LanguageBridge.d.ts +19 -0
- package/lib/typescript/module/ui/components/LanguageBridge.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -4
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts +17 -1
- package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts +14 -0
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +11 -12
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts +10 -13
- package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +16 -0
- package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/authChooser/types.d.ts +11 -13
- package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +3 -2
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +20 -2
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +1 -0
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +29 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/index.ts +2 -1
- package/src/ui/components/LanguageBridge.tsx +44 -0
- package/src/ui/components/OxyAuthChooser.tsx +106 -156
- package/src/ui/components/OxyConsentScreen.tsx +127 -0
- package/src/ui/components/OxyProvider.tsx +17 -0
- package/src/ui/components/__tests__/LanguageBridge.test.tsx +81 -0
- package/src/ui/components/__tests__/OxyConsentScreen.test.tsx +32 -0
- package/src/ui/components/authChooser/AccountsMenuView.tsx +7 -0
- package/src/ui/components/authChooser/SignInEntryView.tsx +41 -44
- package/src/ui/components/authChooser/SignInRequestView.tsx +1 -4
- package/src/ui/components/authChooser/SignUpView.tsx +16 -114
- package/src/ui/components/authChooser/signInFailureMessage.ts +39 -0
- package/src/ui/components/authChooser/types.ts +11 -13
- package/src/ui/context/OxyContext.tsx +1 -1
- package/src/ui/context/hooks/useAuthOperations.ts +10 -5
- package/src/ui/context/oxyContextTypes.ts +16 -2
- package/src/ui/hooks/accountDialogSnapshot.ts +2 -0
- package/src/ui/hooks/useProfileEditing.ts +15 -0
- package/src/ui/screens/EditProfileFieldScreen.tsx +202 -7
- package/src/ui/screens/ManageAccountScreen.tsx +12 -0
- package/src/ui/types/navigation.ts +30 -0
- package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js +0 -50
- package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js.map +0 -1
- package/lib/module/ui/components/authChooser/useUsernameAvailability.js +0 -46
- package/lib/module/ui/components/authChooser/useUsernameAvailability.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts +0 -16
- package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts +0 -16
- package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts.map +0 -1
- package/src/ui/components/authChooser/useUsernameAvailability.ts +0 -60
|
@@ -3,48 +3,33 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Account creation (`signup` view).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
6
|
+
* Web: the account AND its self-custody identity are created at the identity
|
|
7
|
+
* origin (`id.oxy.so`), in the same window a passkey sign-in uses — never on
|
|
8
|
+
* this page, whatever its origin (one identity, two carriers). The sign-in
|
|
9
|
+
* entry's "create an account" link opens that window directly; this view is
|
|
10
|
+
* what `openAccountDialog('signup')` lands on, and offers the same one action.
|
|
11
|
+
*
|
|
12
|
+
* Native: Commons owns identity creation. Deep-link straight in when Commons is
|
|
13
|
+
* installed, else lead with the "Get Commons" acquisition CTA.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import {
|
|
17
|
-
import { TextInput, View } from 'react-native';
|
|
16
|
+
import { View } from 'react-native';
|
|
18
17
|
import { Button } from '@oxy.so/bloom/button';
|
|
19
18
|
import { Text } from '@oxy.so/bloom/typography';
|
|
20
|
-
import {
|
|
21
|
-
import { Dividerish, SubtleLink } from "./primitives.js";
|
|
19
|
+
import { SubtleLink } from "./primitives.js";
|
|
22
20
|
import { authChooserStyles as styles } from "./styles.js";
|
|
23
|
-
import { useUsernameAvailability } from "./useUsernameAvailability.js";
|
|
24
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
22
|
const SignUpView = ({
|
|
26
23
|
snapshot,
|
|
27
24
|
theme,
|
|
28
25
|
t,
|
|
29
|
-
oxyServices,
|
|
30
26
|
passkeyMode,
|
|
31
|
-
onCreateWithPasskey,
|
|
32
|
-
createPending,
|
|
33
27
|
onOpenHub,
|
|
34
28
|
onCreateIdentityInCommons,
|
|
35
29
|
onGetCommons,
|
|
36
30
|
onBackToSignIn
|
|
37
31
|
}) => {
|
|
38
|
-
|
|
39
|
-
const {
|
|
40
|
-
status: usernameStatus,
|
|
41
|
-
check: checkUsername
|
|
42
|
-
} = useUsernameAvailability(oxyServices, t);
|
|
43
|
-
const canSubmit = username.trim().length >= 3 && usernameStatus === 'available' && !createPending;
|
|
44
|
-
|
|
45
|
-
// Native — Commons owns identity creation. Deep-link straight in when it is
|
|
46
|
-
// installed, else lead with the same "Get Commons" acquisition CTA.
|
|
47
|
-
if (!isWebBrowser()) {
|
|
32
|
+
if (passkeyMode === 'none') {
|
|
48
33
|
const commonsInstalled = snapshot.commonsAvailability === 'available';
|
|
49
34
|
return /*#__PURE__*/_jsxs(View, {
|
|
50
35
|
style: styles.centeredBlock,
|
|
@@ -60,88 +45,19 @@ const SignUpView = ({
|
|
|
60
45
|
})]
|
|
61
46
|
});
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
// Web, first-party Oxy origin. Commons leads with a "Get Commons" CTA; passkey
|
|
65
|
-
// creation is the de-emphasized alternative underneath for someone who doesn't
|
|
66
|
-
// want to install anything — a secondary button introduced by its own "No
|
|
67
|
-
// Commons?" framing, the same subordination the sign-in surfaces use.
|
|
68
|
-
if (passkeyMode === 'direct') {
|
|
69
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
70
|
-
style: styles.signInBlock,
|
|
71
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
72
|
-
style: [styles.qrHeadline, {
|
|
73
|
-
color: theme.colors.text
|
|
74
|
-
}],
|
|
75
|
-
children: t('signup.commonsHeadline')
|
|
76
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
77
|
-
style: [styles.mutedText, {
|
|
78
|
-
color: theme.colors.textSecondary
|
|
79
|
-
}],
|
|
80
|
-
children: t('signup.commonsExplainer')
|
|
81
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
82
|
-
variant: "primary",
|
|
83
|
-
onPress: onGetCommons,
|
|
84
|
-
style: styles.primaryButton,
|
|
85
|
-
children: t('accountSwitcher.getCommons')
|
|
86
|
-
}), /*#__PURE__*/_jsx(Dividerish, {
|
|
87
|
-
theme: theme,
|
|
88
|
-
label: t('signin.or')
|
|
89
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
90
|
-
style: [styles.mutedText, {
|
|
91
|
-
color: theme.colors.textSecondary
|
|
92
|
-
}],
|
|
93
|
-
children: t('signup.passkeyAlternative')
|
|
94
|
-
}), /*#__PURE__*/_jsx(TextInput, {
|
|
95
|
-
style: [styles.usernameInput, {
|
|
96
|
-
borderColor: theme.colors.border,
|
|
97
|
-
color: theme.colors.text
|
|
98
|
-
}],
|
|
99
|
-
placeholder: t('signup.usernamePlaceholder'),
|
|
100
|
-
placeholderTextColor: theme.colors.textSecondary,
|
|
101
|
-
value: username,
|
|
102
|
-
autoCapitalize: "none",
|
|
103
|
-
autoCorrect: false,
|
|
104
|
-
autoComplete: "username",
|
|
105
|
-
onChangeText: value => {
|
|
106
|
-
setUsername(value);
|
|
107
|
-
checkUsername(value.trim());
|
|
108
|
-
},
|
|
109
|
-
testID: "signup-username-input"
|
|
110
|
-
}), /*#__PURE__*/_jsx(UsernameStatusText, {
|
|
111
|
-
status: usernameStatus,
|
|
112
|
-
theme: theme,
|
|
113
|
-
t: t
|
|
114
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
115
|
-
variant: "secondary",
|
|
116
|
-
onPress: () => onCreateWithPasskey(username.trim()),
|
|
117
|
-
disabled: !canSubmit,
|
|
118
|
-
style: styles.secondaryButton,
|
|
119
|
-
testID: "signup-create-button",
|
|
120
|
-
children: createPending ? t('signup.creating') : t('signup.createAccount')
|
|
121
|
-
}), /*#__PURE__*/_jsx(SubtleLink, {
|
|
122
|
-
label: t('signup.backToSignInLink'),
|
|
123
|
-
theme: theme,
|
|
124
|
-
onPress: onBackToSignIn
|
|
125
|
-
})]
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Web, non-Oxy origin (b2): a passkey ceremony cannot run locally here — the
|
|
130
|
-
// same WebAuthn RP-ID boundary the sign-in surfaces hit — so this opens the
|
|
131
|
-
// auth.oxy.so hub popup. Completing EITHER a sign-in OR a fresh sign-up there
|
|
132
|
-
// relays the resulting session back through the SAME poll/socket engine.
|
|
133
48
|
return /*#__PURE__*/_jsxs(View, {
|
|
134
49
|
style: styles.centeredBlock,
|
|
135
50
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
136
51
|
style: [styles.mutedText, {
|
|
137
52
|
color: theme.colors.textSecondary
|
|
138
53
|
}],
|
|
139
|
-
children: t('
|
|
54
|
+
children: t('accountSwitcher.passkeyHint')
|
|
140
55
|
}), /*#__PURE__*/_jsx(Button, {
|
|
141
56
|
variant: "primary",
|
|
142
57
|
onPress: onOpenHub,
|
|
143
58
|
style: styles.primaryButton,
|
|
144
|
-
|
|
59
|
+
testID: "signup-open-identity",
|
|
60
|
+
children: t('signup.createAccount')
|
|
145
61
|
}), /*#__PURE__*/_jsx(SubtleLink, {
|
|
146
62
|
label: t('signup.backToSignInLink'),
|
|
147
63
|
theme: theme,
|
|
@@ -149,36 +65,5 @@ const SignUpView = ({
|
|
|
149
65
|
})]
|
|
150
66
|
});
|
|
151
67
|
};
|
|
152
|
-
|
|
153
|
-
/** The inline availability verdict. Network FAILURES are toasted, never shown here. */
|
|
154
|
-
const UsernameStatusText = ({
|
|
155
|
-
status,
|
|
156
|
-
theme,
|
|
157
|
-
t
|
|
158
|
-
}) => {
|
|
159
|
-
if (status === 'idle') return null;
|
|
160
|
-
if (status === 'checking') {
|
|
161
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
162
|
-
style: [styles.mutedText, {
|
|
163
|
-
color: theme.colors.textSecondary
|
|
164
|
-
}],
|
|
165
|
-
children: t('signup.usernameChecking')
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
if (status === 'available') {
|
|
169
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
170
|
-
style: [styles.mutedText, {
|
|
171
|
-
color: theme.colors.success
|
|
172
|
-
}],
|
|
173
|
-
children: t('signup.usernameAvailable')
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
177
|
-
style: [styles.mutedText, {
|
|
178
|
-
color: theme.colors.error
|
|
179
|
-
}],
|
|
180
|
-
children: t('signup.usernameTaken')
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
68
|
export default SignUpView;
|
|
184
69
|
//# sourceMappingURL=SignUpView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["View","Button","Text","SubtleLink","authChooserStyles","styles","jsx","_jsx","jsxs","_jsxs","SignUpView","snapshot","theme","t","passkeyMode","onOpenHub","onCreateIdentityInCommons","onGetCommons","onBackToSignIn","commonsInstalled","commonsAvailability","style","centeredBlock","children","variant","onPress","primaryButton","label","mutedText","color","colors","textSecondary","testID"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/SignUpView.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,IAAI,QAAQ,cAAc;AACnC,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,IAAI,QAAQ,0BAA0B;AAE/C,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,iBAAiB,IAAIC,MAAM,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiBvD,MAAMC,UAAqC,GAAGA,CAAC;EAC7CC,QAAQ;EACRC,KAAK;EACLC,CAAC;EACDC,WAAW;EACXC,SAAS;EACTC,yBAAyB;EACzBC,YAAY;EACZC;AACF,CAAC,KAAK;EACJ,IAAIJ,WAAW,KAAK,MAAM,EAAE;IAC1B,MAAMK,gBAAgB,GAAGR,QAAQ,CAACS,mBAAmB,KAAK,WAAW;IACrE,oBACEX,KAAA,CAACT,IAAI;MAACqB,KAAK,EAAEhB,MAAM,CAACiB,aAAc;MAAAC,QAAA,gBAChChB,IAAA,CAACN,MAAM;QACLuB,OAAO,EAAC,SAAS;QACjBC,OAAO,EAAEN,gBAAgB,GAAGH,yBAAyB,GAAGC,YAAa;QACrEI,KAAK,EAAEhB,MAAM,CAACqB,aAAc;QAAAH,QAAA,EAE3BJ,gBAAgB,GAAGN,CAAC,CAAC,wBAAwB,CAAC,GAAGA,CAAC,CAAC,4BAA4B;MAAC,CAC3E,CAAC,eACTN,IAAA,CAACJ,UAAU;QAACwB,KAAK,EAAEd,CAAC,CAAC,yBAAyB,CAAE;QAACD,KAAK,EAAEA,KAAM;QAACa,OAAO,EAAEP;MAAe,CAAE,CAAC;IAAA,CACtF,CAAC;EAEX;EAEA,oBACET,KAAA,CAACT,IAAI;IAACqB,KAAK,EAAEhB,MAAM,CAACiB,aAAc;IAAAC,QAAA,gBAChChB,IAAA,CAACL,IAAI;MAACmB,KAAK,EAAE,CAAChB,MAAM,CAACuB,SAAS,EAAE;QAAEC,KAAK,EAAEjB,KAAK,CAACkB,MAAM,CAACC;MAAc,CAAC,CAAE;MAAAR,QAAA,EACpEV,CAAC,CAAC,6BAA6B;IAAC,CAC7B,CAAC,eACPN,IAAA,CAACN,MAAM;MAACuB,OAAO,EAAC,SAAS;MAACC,OAAO,EAAEV,SAAU;MAACM,KAAK,EAAEhB,MAAM,CAACqB,aAAc;MAACM,MAAM,EAAC,sBAAsB;MAAAT,QAAA,EACrGV,CAAC,CAAC,sBAAsB;IAAC,CACpB,CAAC,eACTN,IAAA,CAACJ,UAAU;MAACwB,KAAK,EAAEd,CAAC,CAAC,yBAAyB,CAAE;MAACD,KAAK,EAAEA,KAAM;MAACa,OAAO,EAAEP;IAAe,CAAE,CAAC;EAAA,CACtF,CAAC;AAEX,CAAC;AAED,eAAeR,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The localized toast for a failed sign-in attempt.
|
|
5
|
+
*
|
|
6
|
+
* One responsibility: turn the controller's machine-readable
|
|
7
|
+
* `signIn.failure` into copy. The controller ships no user-facing prose — its
|
|
8
|
+
* raw `signIn.error` is English or a server string, kept for diagnostics only.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The toast for `failure`, or `null` when there is nothing to report: a
|
|
13
|
+
* `'cancelled'` attempt is the user's own choice (they closed the window), and
|
|
14
|
+
* the surface already offers "Try again" without scolding them for it.
|
|
15
|
+
*/
|
|
16
|
+
export function signInFailureMessage(failure, t) {
|
|
17
|
+
switch (failure) {
|
|
18
|
+
case 'cancelled':
|
|
19
|
+
return null;
|
|
20
|
+
case 'denied':
|
|
21
|
+
return t('accountSwitcher.signInFailures.denied');
|
|
22
|
+
case 'expired':
|
|
23
|
+
return t('accountSwitcher.signInFailures.expired');
|
|
24
|
+
case 'network':
|
|
25
|
+
return t('accountSwitcher.signInFailures.network');
|
|
26
|
+
case 'not-configured':
|
|
27
|
+
return t('accountSwitcher.signInFailures.notConfigured');
|
|
28
|
+
case 'unsupported-flow':
|
|
29
|
+
return t('accountSwitcher.signInFailures.unsupportedFlow');
|
|
30
|
+
case 'claim-failed':
|
|
31
|
+
return t('accountSwitcher.signInFailures.claimFailed');
|
|
32
|
+
default:
|
|
33
|
+
return t('accountSwitcher.signInFailures.generic');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=signInFailureMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["signInFailureMessage","failure","t"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/signInFailureMessage.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,oBAAoBA,CAClCC,OAAmC,EACnCC,CAAY,EACG;EACf,QAAQD,OAAO;IACb,KAAK,WAAW;MACd,OAAO,IAAI;IACb,KAAK,QAAQ;MACX,OAAOC,CAAC,CAAC,uCAAuC,CAAC;IACnD,KAAK,SAAS;MACZ,OAAOA,CAAC,CAAC,wCAAwC,CAAC;IACpD,KAAK,SAAS;MACZ,OAAOA,CAAC,CAAC,wCAAwC,CAAC;IACpD,KAAK,gBAAgB;MACnB,OAAOA,CAAC,CAAC,8CAA8C,CAAC;IAC1D,KAAK,kBAAkB;MACrB,OAAOA,CAAC,CAAC,gDAAgD,CAAC;IAC5D,KAAK,cAAc;MACjB,OAAOA,CAAC,CAAC,4CAA4C,CAAC;IACxD;MACE,OAAOA,CAAC,CAAC,wCAAwC,CAAC;EACtD;AACF","ignoreList":[]}
|
|
@@ -40,13 +40,11 @@ import { APP_COLOR_NAMES, APP_COLOR_PRESETS } from '@oxy.so/bloom/theme';
|
|
|
40
40
|
/** The account-menu row actions the container wires (deep-links / sheets / sign-out). */
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
* Where a
|
|
43
|
+
* Where a passkey sign-in or sign-up can run from the current surface.
|
|
44
44
|
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* `'
|
|
48
|
-
* `'hub'` = any other web origin; it runs in the auth.oxy.so popup instead.
|
|
49
|
-
* `'none'` = native, where Commons owns identity.
|
|
45
|
+
* `'hub'` = web: it runs at the identity origin (`id.oxy.so`) in a popup, on
|
|
46
|
+
* every web origin, first-party or not.
|
|
47
|
+
* `'none'` = native, where Commons owns identity.
|
|
50
48
|
*/
|
|
51
49
|
|
|
52
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","APP_COLOR_PRESETS","resolveAccentHex","color","fallback","preset","toPreset","hex","undefined","includes"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,EAAEC,iBAAiB,QAA0C,qBAAqB;;AAM1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;;AAMA;;
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","APP_COLOR_PRESETS","resolveAccentHex","color","fallback","preset","toPreset","hex","undefined","includes"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,EAAEC,iBAAiB,QAA0C,qBAAqB;;AAM1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;;AAMA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAACC,KAAoB,EAAEC,QAAgB,EAAU;EAC/E,MAAMC,MAAM,GAAGC,QAAQ,CAACH,KAAK,CAAC;EAC9B,OAAOE,MAAM,GAAGJ,iBAAiB,CAACI,MAAM,CAAC,CAACE,GAAG,GAAGH,QAAQ;AAC1D;;AAEA;AACA,OAAO,SAASE,QAAQA,CAACH,KAAoB,EAA4B;EACvE,IAAI,CAACA,KAAK,EAAE,OAAOK,SAAS;EAC5B,OAAQR,eAAe,CAAuBS,QAAQ,CAACN,KAAK,CAAC,GACxDA,KAAK,GACNK,SAAS;AACf","ignoreList":[]}
|
|
@@ -206,7 +206,9 @@ export const useAuthOperations = ({
|
|
|
206
206
|
*/
|
|
207
207
|
const logout = useCallback(async targetSessionId => {
|
|
208
208
|
const activeSessionId = runtime.getSnapshot().activeSessionId;
|
|
209
|
-
if (!activeSessionId) return
|
|
209
|
+
if (!activeSessionId) return {
|
|
210
|
+
status: 'signed-out'
|
|
211
|
+
};
|
|
210
212
|
const sessionToLogout = targetSessionId || activeSessionId;
|
|
211
213
|
try {
|
|
212
214
|
// Resolve the device account backing this session from the
|
|
@@ -234,6 +236,9 @@ export const useAuthOperations = ({
|
|
|
234
236
|
clearPersistedAuthSafe(store, logger);
|
|
235
237
|
await clearSessionState();
|
|
236
238
|
}
|
|
239
|
+
return {
|
|
240
|
+
status: 'signed-out'
|
|
241
|
+
};
|
|
237
242
|
} catch (error) {
|
|
238
243
|
const isInvalid = isInvalidSessionError(error);
|
|
239
244
|
|
|
@@ -245,7 +250,9 @@ export const useAuthOperations = ({
|
|
|
245
250
|
// The active session is invalid → full sign-out; clear persisted state.
|
|
246
251
|
clearPersistedAuthSafe(store, logger);
|
|
247
252
|
await clearSessionState();
|
|
248
|
-
return
|
|
253
|
+
return {
|
|
254
|
+
status: 'signed-out'
|
|
255
|
+
};
|
|
249
256
|
}
|
|
250
257
|
handleAuthError(error, {
|
|
251
258
|
defaultMessage: 'Logout failed',
|
|
@@ -255,6 +262,12 @@ export const useAuthOperations = ({
|
|
|
255
262
|
logger,
|
|
256
263
|
status: isInvalid ? 401 : undefined
|
|
257
264
|
});
|
|
265
|
+
// Nothing was revoked and the session is still installed here. Say so,
|
|
266
|
+
// rather than letting a caller close its surface as if it had worked.
|
|
267
|
+
return {
|
|
268
|
+
status: 'failed',
|
|
269
|
+
error
|
|
270
|
+
};
|
|
258
271
|
}
|
|
259
272
|
}, [clearSessionState, store, logger, onError, runtime, sessionClient, syncFromClient]);
|
|
260
273
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","SignatureService","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","clearPersistedAuthSafe","store","logger","clear","catch","clearError","useAuthOperations","oxyServices","runtime","saveActiveSessionId","clearSessionState","switchSession","sessionClient","syncFromClient","onAuthStateChange","onError","identityBinding","refreshPinnedAccountId","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challengeResponse","requestChallenge","challenge","signature","timestamp","signChallenge","fullUser","sessionResponse","verifyChallenge","deviceSecret","deviceId","save","sessionId","userId","user","id","accessToken","expiresAt","persistError","pinStore","toLowerCase","accountId","pinError","registerAndActivate","registrationError","getCurrentUser","allDeviceSessions","fallbackDeviceId","fallbackUserId","error","__DEV__","existingSession","find","session","toString","logoutSession","logoutError","mergeSessions","filter","merge","batch","setActiveSessionId","setAccount","signIn","setLoading","setError","message","defaultMessage","code","setAuthError","msg","logout","targetSessionId","activeSessionId","getSnapshot","sessionToLogout","targetAccountId","getState","accounts","account","Error","signOut","remainingAccounts","length","isInvalid","
|
|
1
|
+
{"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","SignatureService","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","clearPersistedAuthSafe","store","logger","clear","catch","clearError","useAuthOperations","oxyServices","runtime","saveActiveSessionId","clearSessionState","switchSession","sessionClient","syncFromClient","onAuthStateChange","onError","identityBinding","refreshPinnedAccountId","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challengeResponse","requestChallenge","challenge","signature","timestamp","signChallenge","fullUser","sessionResponse","verifyChallenge","deviceSecret","deviceId","save","sessionId","userId","user","id","accessToken","expiresAt","persistError","pinStore","toLowerCase","accountId","pinError","registerAndActivate","registrationError","getCurrentUser","allDeviceSessions","fallbackDeviceId","fallbackUserId","error","__DEV__","existingSession","find","session","toString","logoutSession","logoutError","mergeSessions","filter","merge","batch","setActiveSessionId","setAccount","signIn","setLoading","setError","message","defaultMessage","code","setAuthError","msg","logout","targetSessionId","activeSessionId","getSnapshot","status","sessionToLogout","targetAccountId","getState","accounts","account","Error","signOut","remainingAccounts","length","isInvalid","undefined","logoutAll","logoutAllSessions","all"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,11 +27,13 @@ export const EMPTY_ACCOUNT_DIALOG_SNAPSHOT = {
|
|
|
27
27
|
qrPayload: null,
|
|
28
28
|
expiresAt: null,
|
|
29
29
|
error: null,
|
|
30
|
+
failure: null,
|
|
30
31
|
route: null,
|
|
31
32
|
routeFailed: false,
|
|
32
33
|
pushSentAt: null,
|
|
33
34
|
openedAt: null,
|
|
34
|
-
progress: 'idle'
|
|
35
|
+
progress: 'idle',
|
|
36
|
+
attempt: 0
|
|
35
37
|
},
|
|
36
38
|
commonsAvailability: 'unknown'
|
|
37
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EMPTY_ACCOUNT_DIALOG_SNAPSHOT","view","directory","activeContext","activatingContextId","removingContextId","removingPrincipalId","loading","error","signIn","phase","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability"],"sourceRoot":"../../../../src","sources":["ui/hooks/accountDialogSnapshot.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAAoD,GAAG;EAClEC,IAAI,EAAE,UAAU;EAChBC,SAAS,EAAE,IAAI;EACfC,aAAa,EAAE,IAAI;EACnBC,mBAAmB,EAAE,IAAI;EACzBC,iBAAiB,EAAE,IAAI;EACvBC,mBAAmB,EAAE,IAAI;EACzBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE;IACNC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfL,KAAK,EAAE,IAAI;IACXM,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"names":["EMPTY_ACCOUNT_DIALOG_SNAPSHOT","view","directory","activeContext","activatingContextId","removingContextId","removingPrincipalId","loading","error","signIn","phase","authorizeCode","qrPayload","expiresAt","failure","route","routeFailed","pushSentAt","openedAt","progress","attempt","commonsAvailability"],"sourceRoot":"../../../../src","sources":["ui/hooks/accountDialogSnapshot.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAAoD,GAAG;EAClEC,IAAI,EAAE,UAAU;EAChBC,SAAS,EAAE,IAAI;EACfC,aAAa,EAAE,IAAI;EACnBC,mBAAmB,EAAE,IAAI;EACzBC,iBAAiB,EAAE,IAAI;EACvBC,mBAAmB,EAAE,IAAI;EACzBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE;IACNC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfL,KAAK,EAAE,IAAI;IACXM,OAAO,EAAE,IAAI;IACbC,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE,MAAM;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,mBAAmB,EAAE;AACvB,CAAC","ignoreList":[]}
|
|
@@ -53,6 +53,13 @@ export const useProfileEditing = () => {
|
|
|
53
53
|
if (updates.birthday !== undefined) {
|
|
54
54
|
updateData.birthday = updates.birthday;
|
|
55
55
|
}
|
|
56
|
+
if (updates.dateOfBirth !== undefined) {
|
|
57
|
+
// '' clears it — `updateData.dateOfBirth` is `string | null`
|
|
58
|
+
// per the contract, and there is no separate blank sentinel for
|
|
59
|
+
// a structured date the way `blankToNull` gives every free-text
|
|
60
|
+
// field.
|
|
61
|
+
updateData.dateOfBirth = updates.dateOfBirth === '' ? null : updates.dateOfBirth;
|
|
62
|
+
}
|
|
56
63
|
|
|
57
64
|
// Handle name field
|
|
58
65
|
if (updates.firstName !== undefined || updates.lastName !== undefined) {
|
|
@@ -106,6 +113,13 @@ export const useProfileEditing = () => {
|
|
|
106
113
|
if (typeof value !== 'string') return false;
|
|
107
114
|
updates.birthday = value;
|
|
108
115
|
break;
|
|
116
|
+
case 'dateOfBirth':
|
|
117
|
+
// '' clears it (the picker's "no complete date selected"
|
|
118
|
+
// state) — `updateUserProfile`'s `dateOfBirth` block treats
|
|
119
|
+
// an empty string the same as `null`.
|
|
120
|
+
if (typeof value !== 'string') return false;
|
|
121
|
+
updates.dateOfBirth = value;
|
|
122
|
+
break;
|
|
109
123
|
case 'location':
|
|
110
124
|
if (!isProfileLocationArray(value)) return false;
|
|
111
125
|
updates.locations = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useUpdateProfile","useAuthStore","isProfileLocationArray","value","Array","isArray","every","item","isProfileLinkMetadataArray","useProfileEditing","updateProfileMutation","saveProfile","updates","updateData","username","undefined","email","bio","locations","links","linksMetadata","avatar","phone","address","birthday","firstName","lastName","currentUser","getState","user","currentName","name","first","last","mutateAsync","error","updateField","field","map","link","url","isSaving","isPending"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,gBAAgB,QAAQ,oCAAiC;AAClE,SAASC,YAAY,QAAQ,wBAAqB;
|
|
1
|
+
{"version":3,"names":["useCallback","useUpdateProfile","useAuthStore","isProfileLocationArray","value","Array","isArray","every","item","isProfileLinkMetadataArray","useProfileEditing","updateProfileMutation","saveProfile","updates","updateData","username","undefined","email","bio","locations","links","linksMetadata","avatar","phone","address","birthday","dateOfBirth","firstName","lastName","currentUser","getState","user","currentName","name","first","last","mutateAsync","error","updateField","field","map","link","url","isSaving","isPending"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":"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","ignoreList":[]}
|