@oxyhq/services 14.1.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/index.js +4 -21
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/SignInAccountChooser.js +189 -0
- package/lib/commonjs/ui/components/SignInAccountChooser.js.map +1 -0
- package/lib/commonjs/ui/components/SignInModal.js +350 -131
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +340 -1547
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +61 -64
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +9 -9
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +7 -8
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +14 -33
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js +170 -0
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +2 -5
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +2 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +1 -0
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +17 -18
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +93 -68
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileScreen.js +187 -0
- package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +3 -7
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +231 -95
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +15 -2
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/linkFormat.js +38 -0
- package/lib/commonjs/ui/screens/linkFormat.js.map +1 -0
- package/lib/commonjs/ui/session/authStore.js +146 -0
- package/lib/commonjs/ui/session/authStore.js.map +1 -0
- package/lib/commonjs/ui/session/createSessionClient.js +23 -17
- package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
- package/lib/commonjs/ui/session/index.js +13 -7
- package/lib/commonjs/ui/session/index.js.map +1 -1
- package/lib/commonjs/ui/session/tokenTransport.js +19 -31
- package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
- package/lib/commonjs/ui/utils/isWebBrowser.js +13 -0
- package/lib/commonjs/ui/utils/isWebBrowser.js.map +1 -0
- package/lib/commonjs/utils/deviceFlowSignIn.js +13 -16
- package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/module/index.js +2 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/SignInAccountChooser.js +183 -0
- package/lib/module/ui/components/SignInAccountChooser.js.map +1 -0
- package/lib/module/ui/components/SignInModal.js +352 -134
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +342 -1551
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +60 -63
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +7 -7
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +5 -6
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +14 -33
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/usePasswordSignIn.js +165 -0
- package/lib/module/ui/hooks/usePasswordSignIn.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +2 -5
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +1 -0
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -20
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +91 -66
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileScreen.js +182 -0
- package/lib/module/ui/screens/EditProfileScreen.js.map +1 -0
- package/lib/module/ui/screens/ManageAccountScreen.js +3 -7
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +233 -97
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +15 -2
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/linkFormat.js +31 -0
- package/lib/module/ui/screens/linkFormat.js.map +1 -0
- package/lib/module/ui/session/authStore.js +143 -0
- package/lib/module/ui/session/authStore.js.map +1 -0
- package/lib/module/ui/session/createSessionClient.js +22 -16
- package/lib/module/ui/session/createSessionClient.js.map +1 -1
- package/lib/module/ui/session/index.js +9 -9
- package/lib/module/ui/session/index.js.map +1 -1
- package/lib/module/ui/session/tokenTransport.js +20 -33
- package/lib/module/ui/session/tokenTransport.js.map +1 -1
- package/lib/module/ui/utils/isWebBrowser.js +11 -0
- package/lib/module/ui/utils/isWebBrowser.js.map +1 -0
- package/lib/module/utils/deviceFlowSignIn.js +14 -17
- package/lib/module/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -3
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts +29 -0
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +15 -10
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +36 -42
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +18 -23
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +4 -6
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +6 -7
- package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts +31 -0
- package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +0 -1
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
- 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/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts +14 -0
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +13 -12
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/linkFormat.d.ts +23 -0
- package/lib/typescript/commonjs/ui/screens/linkFormat.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/session/authStore.d.ts +33 -0
- package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +19 -15
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/index.d.ts +9 -9
- package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +13 -19
- package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/isWebBrowser.d.ts +9 -0
- package/lib/typescript/commonjs/ui/utils/isWebBrowser.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts +7 -7
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +15 -13
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -3
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts +29 -0
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SignInModal.d.ts +15 -10
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +36 -42
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +18 -23
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +4 -6
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +6 -7
- package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts +31 -0
- package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +0 -1
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
- 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/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts +14 -0
- package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +13 -12
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/linkFormat.d.ts +23 -0
- package/lib/typescript/module/ui/screens/linkFormat.d.ts.map +1 -0
- package/lib/typescript/module/ui/session/authStore.d.ts +33 -0
- package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -0
- package/lib/typescript/module/ui/session/createSessionClient.d.ts +19 -15
- package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/index.d.ts +9 -9
- package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/tokenTransport.d.ts +13 -19
- package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/isWebBrowser.d.ts +9 -0
- package/lib/typescript/module/ui/utils/isWebBrowser.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/storageHelpers.d.ts +7 -7
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +15 -13
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +2 -6
- package/src/ui/components/SignInAccountChooser.tsx +162 -0
- package/src/ui/components/SignInModal.tsx +309 -139
- package/src/ui/context/OxyContext.tsx +532 -1785
- package/src/ui/context/hooks/useAuthOperations.ts +65 -76
- package/src/ui/hooks/mutations/mutationKeys.ts +1 -1
- package/src/ui/hooks/mutations/useAccountMutations.ts +7 -7
- package/src/ui/hooks/queries/queryKeys.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +8 -9
- package/src/ui/hooks/useAuth.ts +14 -35
- package/src/ui/hooks/usePasswordSignIn.ts +207 -0
- package/src/ui/hooks/useProfileEditing.ts +2 -8
- package/src/ui/hooks/useSessionManagement.ts +1 -1
- package/src/ui/navigation/routes.ts +3 -1
- package/src/ui/screens/ConnectedAppsScreen.tsx +23 -24
- package/src/ui/screens/EditProfileFieldScreen.tsx +102 -66
- package/src/ui/screens/EditProfileScreen.tsx +155 -0
- package/src/ui/screens/ManageAccountScreen.tsx +3 -7
- package/src/ui/screens/OxyAuthScreen.tsx +259 -112
- package/src/ui/screens/ProfileScreen.tsx +15 -2
- package/src/ui/screens/__tests__/linkFormat.test.ts +73 -0
- package/src/ui/screens/linkFormat.ts +37 -0
- package/src/ui/session/__tests__/createSessionClient.test.ts +22 -7
- package/src/ui/session/__tests__/tokenTransport.test.ts +37 -49
- package/src/ui/session/authStore.ts +164 -0
- package/src/ui/session/createSessionClient.ts +30 -17
- package/src/ui/session/index.ts +10 -9
- package/src/ui/session/tokenTransport.ts +26 -36
- package/src/ui/utils/isWebBrowser.ts +8 -0
- package/src/ui/utils/storageHelpers.ts +7 -7
- package/src/utils/__tests__/deviceFlowSignIn.test.ts +50 -131
- package/src/utils/deviceFlowSignIn.ts +19 -26
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js +0 -243
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js.map +0 -1
- package/lib/commonjs/ui/context/silentSessionRestore.js +0 -56
- package/lib/commonjs/ui/context/silentSessionRestore.js.map +0 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +0 -28
- package/lib/commonjs/ui/hooks/useWebSSO.js.map +0 -1
- package/lib/commonjs/ui/session/projectSessionState.js +0 -86
- package/lib/commonjs/ui/session/projectSessionState.js.map +0 -1
- package/lib/commonjs/ui/session/sessionClientHost.js +0 -30
- package/lib/commonjs/ui/session/sessionClientHost.js.map +0 -1
- package/lib/commonjs/ui/utils/activeAuthuser.js +0 -142
- package/lib/commonjs/ui/utils/activeAuthuser.js.map +0 -1
- package/lib/commonjs/utils/crossApex.js +0 -74
- package/lib/commonjs/utils/crossApex.js.map +0 -1
- package/lib/module/ui/context/inSessionTokenRefresh.js +0 -238
- package/lib/module/ui/context/inSessionTokenRefresh.js.map +0 -1
- package/lib/module/ui/context/silentSessionRestore.js +0 -53
- package/lib/module/ui/context/silentSessionRestore.js.map +0 -1
- package/lib/module/ui/hooks/useWebSSO.js +0 -24
- package/lib/module/ui/hooks/useWebSSO.js.map +0 -1
- package/lib/module/ui/session/projectSessionState.js +0 -79
- package/lib/module/ui/session/projectSessionState.js.map +0 -1
- package/lib/module/ui/session/sessionClientHost.js +0 -26
- package/lib/module/ui/session/sessionClientHost.js.map +0 -1
- package/lib/module/ui/utils/activeAuthuser.js +0 -134
- package/lib/module/ui/utils/activeAuthuser.js.map +0 -1
- package/lib/module/utils/crossApex.js +0 -69
- package/lib/module/utils/crossApex.js.map +0 -1
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts +0 -106
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts +0 -36
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +0 -19
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts +0 -45
- package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts +0 -14
- package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts +0 -67
- package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/crossApex.d.ts +0 -55
- package/lib/typescript/commonjs/utils/crossApex.d.ts.map +0 -1
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts +0 -106
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts.map +0 -1
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts +0 -36
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +0 -19
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +0 -1
- package/lib/typescript/module/ui/session/projectSessionState.d.ts +0 -45
- package/lib/typescript/module/ui/session/projectSessionState.d.ts.map +0 -1
- package/lib/typescript/module/ui/session/sessionClientHost.d.ts +0 -14
- package/lib/typescript/module/ui/session/sessionClientHost.d.ts.map +0 -1
- package/lib/typescript/module/ui/utils/activeAuthuser.d.ts +0 -67
- package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +0 -1
- package/lib/typescript/module/utils/crossApex.d.ts +0 -55
- package/lib/typescript/module/utils/crossApex.d.ts.map +0 -1
- package/src/ui/context/inSessionTokenRefresh.ts +0 -264
- package/src/ui/context/silentSessionRestore.ts +0 -53
- package/src/ui/hooks/useWebSSO.ts +0 -23
- package/src/ui/session/__tests__/projectSessionState.test.ts +0 -114
- package/src/ui/session/__tests__/sessionClientHost.test.ts +0 -43
- package/src/ui/session/projectSessionState.ts +0 -85
- package/src/ui/session/sessionClientHost.ts +0 -27
- package/src/ui/utils/activeAuthuser.ts +0 -142
- package/src/utils/crossApex.ts +0 -75
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure link-display helpers for the profile "links" editor. Kept out of the
|
|
3
|
+
* screen component so the string-coercion guard can be unit-tested without
|
|
4
|
+
* rendering the whole React Native screen.
|
|
5
|
+
*/
|
|
6
|
+
/** Strip the protocol and any trailing slash from a link URL for display. */
|
|
7
|
+
export declare const getLinkTitle: (url: string) => string;
|
|
8
|
+
/** Human-readable description for a link URL. */
|
|
9
|
+
export declare const getLinkDescription: (url: string) => string;
|
|
10
|
+
export interface LinkListItem {
|
|
11
|
+
id: string;
|
|
12
|
+
url: string;
|
|
13
|
+
title: string;
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build editable list items from a raw links array. The array can come from
|
|
18
|
+
* legacy or untrusted profile data whose elements are not guaranteed to be
|
|
19
|
+
* strings, so each entry is coerced with `String(item ?? '')` before formatting
|
|
20
|
+
* — a non-string element must never crash the editor.
|
|
21
|
+
*/
|
|
22
|
+
export declare function linksToListItems(links: readonly unknown[]): LinkListItem[];
|
|
23
|
+
//# sourceMappingURL=linkFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkFormat.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/linkFormat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MACW,CAAC;AAEvD,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAA0B,CAAC;AAE5E,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,YAAY,EAAE,CAU1E"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform `AuthStateStore` for `@oxyhq/services`.
|
|
3
|
+
*
|
|
4
|
+
* The device-first session model persists the rotating refresh-token family
|
|
5
|
+
* head per origin (web) / per device (native). `@oxyhq/core` owns the store
|
|
6
|
+
* shape + logic (`createWebAuthStateStore` / `createNativeAuthStateStore`); this
|
|
7
|
+
* module only supplies the platform storage seam and wires the native device
|
|
8
|
+
* token to the SHARED keychain so every native Oxy app joins one DeviceSession:
|
|
9
|
+
*
|
|
10
|
+
* - web → `createWebAuthStateStore()` (localStorage, in-memory fallback).
|
|
11
|
+
* - native → `createNativeAuthStateStore(secureKV)` for the SESSION blob
|
|
12
|
+
* (refresh token) over `expo-secure-store` (AsyncStorage fallback), with the
|
|
13
|
+
* long-lived DEVICE token delegated to `KeyManager`'s shared keychain
|
|
14
|
+
* (`group.so.oxy.shared`) instead of per-app storage — so an in-app login on
|
|
15
|
+
* any native Oxy app attributes to the SAME server-side DeviceSession.
|
|
16
|
+
*
|
|
17
|
+
* `expo-secure-store` is loaded via a runtime-computed dynamic import (the same
|
|
18
|
+
* optional-native-module pattern `OxyProvider` uses for netinfo / keyboard
|
|
19
|
+
* controller), so the web bundle never pulls it and a device without it falls
|
|
20
|
+
* back to AsyncStorage rather than crashing.
|
|
21
|
+
*/
|
|
22
|
+
import { type AuthStateStore } from '@oxyhq/core';
|
|
23
|
+
/**
|
|
24
|
+
* Build the platform {@link AuthStateStore} for this runtime.
|
|
25
|
+
*
|
|
26
|
+
* Native additionally routes the device token through the shared keychain so
|
|
27
|
+
* every native Oxy app shares one server-side DeviceSession; the session blob
|
|
28
|
+
* (refresh token) stays per-app in SecureStore. Best-effort keychain access —
|
|
29
|
+
* a locked/failed shared-keychain read degrades to "no device token" rather
|
|
30
|
+
* than throwing out of cold boot / refresh.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createPlatformAuthStateStore(): AuthStateStore;
|
|
33
|
+
//# sourceMappingURL=authStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/authStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AAmFrB;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,IAAI,cAAc,CA2C7D"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { SessionClient } from '@oxyhq/core';
|
|
3
|
-
import { createSessionClientHost } from './sessionClientHost';
|
|
1
|
+
import { SessionClient, createSessionClientHost, type AuthStateStore, type OxyServices } from '@oxyhq/core';
|
|
4
2
|
/**
|
|
5
|
-
*
|
|
6
|
-
* adapter (Task 1) and the platform `TokenTransport` (Task 3) over the given
|
|
7
|
-
* `OxyServices` instance, and returns both the client and the host — the host
|
|
8
|
-
* is returned (not just the client) so `OxyContext` (Fase 3-B) can call
|
|
9
|
-
* `host.setCurrentAccountId(...)` as the active account changes.
|
|
3
|
+
* Wire a `SessionClient` for `@oxyhq/services`.
|
|
10
4
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
5
|
+
* The platform-agnostic parts (host adapter, client, projection helpers) live
|
|
6
|
+
* ONCE in `@oxyhq/core`; this thin factory only injects the pieces specific to
|
|
7
|
+
* the RN/Expo SDK:
|
|
8
|
+
*
|
|
9
|
+
* - `socket.io-client`'s `io`, STATICALLY imported (socket.io-client is a real
|
|
10
|
+
* dependency of `@oxyhq/services`) so realtime session sync never relies on
|
|
11
|
+
* core's lazy dynamic import of a bare specifier — bundler-fragile in
|
|
12
|
+
* Metro/Expo-web against the published core dist.
|
|
13
|
+
* - the device-first {@link createTokenTransport}, which mints a fallback token
|
|
14
|
+
* by rotating the persisted refresh family (`store`).
|
|
15
|
+
*
|
|
16
|
+
* `onUnauthenticated` fires when an applied device state has zero accounts (a
|
|
17
|
+
* device signout-all): the provider clears the persisted store + local state so
|
|
18
|
+
* a reload does not try to restore a dead session. The host is returned
|
|
19
|
+
* alongside the client so the caller can call `host.setCurrentAccountId(...)`
|
|
20
|
+
* as the active account changes.
|
|
17
21
|
*/
|
|
18
|
-
export declare function createSessionClient(oxyServices: OxyServices): {
|
|
22
|
+
export declare function createSessionClient(oxyServices: OxyServices, store: AuthStateStore, onUnauthenticated?: () => void): {
|
|
19
23
|
client: SessionClient;
|
|
20
24
|
host: ReturnType<typeof createSessionClientHost>;
|
|
21
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSessionClient.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/createSessionClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createSessionClient.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/createSessionClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,EACrB,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAC7B;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CAClD,CAKA"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Session-sync integration layer
|
|
2
|
+
* Session-sync integration layer — intra-package use only.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* `@oxyhq/core` owns the platform-agnostic `SessionClient`, its host adapter,
|
|
5
|
+
* and the pure `DeviceSessionState → services` projection helpers; those are
|
|
6
|
+
* re-exported straight from core here so `OxyContext` has one import site.
|
|
7
|
+
* `@oxyhq/services` supplies only the two platform pieces: the thin
|
|
8
|
+
* `createSessionClient` factory (injects socket.io-client `io` + the
|
|
9
|
+
* device-first token transport) and the `AuthStateStore` factory.
|
|
10
10
|
*/
|
|
11
11
|
export { createSessionClient } from './createSessionClient';
|
|
12
|
-
export { createSessionClientHost } from './sessionClientHost';
|
|
13
12
|
export { createTokenTransport } from './tokenTransport';
|
|
14
|
-
export {
|
|
13
|
+
export { createPlatformAuthStateStore } from './authStore';
|
|
14
|
+
export { createSessionClientHost, accountIdsOf, activeSessionIdOf, activeUserOf, deviceStateToClientSessions, } from '@oxyhq/core';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,aAAa,CAAC"}
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AuthStateStore, type OxyServices, type TokenTransport } from '@oxyhq/core';
|
|
2
2
|
/**
|
|
3
|
-
* Platform `TokenTransport` for `SessionClient
|
|
4
|
-
* none is currently held, reusing the SAME primitives `OxyContext`'s cold
|
|
5
|
-
* boot already relies on (never re-implemented here):
|
|
3
|
+
* Platform `TokenTransport` for `SessionClient` (device-first model).
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* `ensureActiveToken` is the fallback the client uses when a `session_state`
|
|
6
|
+
* push arrived WITHOUT an embedded `activeToken` and the app currently holds no
|
|
7
|
+
* bearer. It mints one through the ONE unified refresh path
|
|
8
|
+
* (`refreshPersistedSession`): rotate the persisted refresh-token family
|
|
9
|
+
* (`POST /auth/refresh-token`) and, on native, fall back to the shared-keychain
|
|
10
|
+
* re-mint. There is no FedCM/silent-iframe arm anymore — the per-origin
|
|
11
|
+
* persisted refresh token is the durable web credential.
|
|
9
12
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* `ensureActiveToken` treats a PRESENT token as sufficient in this phase; it
|
|
14
|
-
* does not decode/match the token's subject against `state.activeAccountId`
|
|
15
|
-
* (that refinement is Fase 3-B). Account switching itself is server-driven
|
|
16
|
-
* via the `activeToken` carried in the sync envelope — this transport is
|
|
17
|
-
* only the fallback used when the envelope carried no token.
|
|
18
|
-
*
|
|
19
|
-
* A failed mint is logged and swallowed: it must never throw out of
|
|
20
|
-
* `ensureActiveToken`, since that would crash the caller (the SessionClient
|
|
21
|
-
* socket handler in Fase 3-B).
|
|
13
|
+
* Concurrent pushes coalesce onto one in-flight mint. A failure is logged and
|
|
14
|
+
* swallowed: this method must never throw out (it runs inside the socket state
|
|
15
|
+
* handler).
|
|
22
16
|
*/
|
|
23
|
-
export declare function createTokenTransport(oxyServices: OxyServices): TokenTransport;
|
|
17
|
+
export declare function createTokenTransport(oxyServices: OxyServices, store: AuthStateStore): TokenTransport;
|
|
24
18
|
//# sourceMappingURL=tokenTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenTransport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/tokenTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenTransport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/session/tokenTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,GACpB,cAAc,CAsChB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web-browser detection for `@oxyhq/services`.
|
|
3
|
+
*
|
|
4
|
+
* The predicate now lives ONCE in `@oxyhq/core` (`isWebBrowser`) so services and
|
|
5
|
+
* auth-sdk share the exact same DOM probe. This module re-exposes it under the
|
|
6
|
+
* existing internal import path so consumers stay unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export { isWebBrowser } from '@oxyhq/core';
|
|
9
|
+
//# sourceMappingURL=isWebBrowser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isWebBrowser.d.ts","sourceRoot":"","sources":["../../../../../src/ui/utils/isWebBrowser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -10,13 +10,13 @@ export interface SessionStorageKeys {
|
|
|
10
10
|
language: string;
|
|
11
11
|
/**
|
|
12
12
|
* DURABLE "this device/app has had a signed-in Oxy session before" hint.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
13
|
+
* Originally read at cold boot to drive the FedCM-era smart `sso-bounce`
|
|
14
|
+
* gate (a returning visitor still got one establish bounce; a first-time
|
|
15
|
+
* anonymous visitor was never force-redirected). That gate and
|
|
16
|
+
* `allowSsoBounce` were deleted in the device-first cutover — this storage
|
|
17
|
+
* key is currently defined but not read anywhere; kept rather than removed
|
|
18
|
+
* here since deleting a storage key is a logic change, out of scope for a
|
|
19
|
+
* comment sweep. Flag for a follow-up dead-field cleanup.
|
|
20
20
|
*/
|
|
21
21
|
priorSession: string;
|
|
22
22
|
}
|
|
@@ -30,9 +30,14 @@
|
|
|
30
30
|
* claim->commit sequence here keeps native and web identical and
|
|
31
31
|
* unit-testable.
|
|
32
32
|
*/
|
|
33
|
-
import { type
|
|
33
|
+
import { type SessionLoginResponse, type User } from '@oxyhq/core';
|
|
34
34
|
interface DeviceFlowClaimResult {
|
|
35
35
|
accessToken?: string;
|
|
36
|
+
/** Rotating refresh-token family head minted by `/auth/session/claim` on the
|
|
37
|
+
* trusted lane. Not on the core method's typed return, so read defensively;
|
|
38
|
+
* threaded into `commitSession` so the QR sign-in persists a durable session
|
|
39
|
+
* that survives a reload without a redirect. */
|
|
40
|
+
refreshToken?: string;
|
|
36
41
|
sessionId?: string;
|
|
37
42
|
deviceId?: string;
|
|
38
43
|
expiresAt?: string;
|
|
@@ -44,10 +49,8 @@ interface DeviceFlowClaimResult {
|
|
|
44
49
|
* trivially unit-testable with a stub and never pulls the RN/Expo runtime into
|
|
45
50
|
* a test bundle.
|
|
46
51
|
*
|
|
47
|
-
* Extends {@link SsoEstablishClient} (`requestSsoEstablishUrl`) so the WEB
|
|
48
|
-
* post-claim durable-session hop can be driven off the same client.
|
|
49
52
|
*/
|
|
50
|
-
export interface DeviceFlowClient
|
|
53
|
+
export interface DeviceFlowClient {
|
|
51
54
|
/**
|
|
52
55
|
* Exchange the device-flow `sessionToken` for the first access + refresh
|
|
53
56
|
* token, planting them on the client. Single-use; replay is rejected by the
|
|
@@ -71,15 +74,14 @@ export interface CompleteDeviceFlowSignInOptions {
|
|
|
71
74
|
* registers the account into the device's server-authoritative session set,
|
|
72
75
|
* persists it durably, and hydrates the full user profile. Runs AFTER the
|
|
73
76
|
* bearer is planted so its bearer-protected calls succeed.
|
|
77
|
+
*
|
|
78
|
+
* The `refreshToken` extra (optional; not on the public `SessionLoginResponse`
|
|
79
|
+
* type) carries the rotating refresh family so the commit funnel persists a
|
|
80
|
+
* durable session.
|
|
74
81
|
*/
|
|
75
|
-
commitSession: (session: SessionLoginResponse
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
* ({@link establishIdpSessionAfterClaim}). Omit in production — the defaults
|
|
79
|
-
* resolve to `window.*` (and no-op off-web / on native). Tests inject fakes to
|
|
80
|
-
* drive the web path deterministically.
|
|
81
|
-
*/
|
|
82
|
-
establishDeps?: EstablishAfterClaimDeps;
|
|
82
|
+
commitSession: (session: SessionLoginResponse & {
|
|
83
|
+
refreshToken?: string;
|
|
84
|
+
}) => Promise<void>;
|
|
83
85
|
}
|
|
84
86
|
/**
|
|
85
87
|
* Complete a device-flow sign-in: claim the first access token with the secret
|
|
@@ -90,6 +92,6 @@ export interface CompleteDeviceFlowSignInOptions {
|
|
|
90
92
|
* Throws if the claim did not return a usable session, or if either the claim
|
|
91
93
|
* or the commit fails; callers surface a retry UI.
|
|
92
94
|
*/
|
|
93
|
-
export declare function completeDeviceFlowSignIn({ oxyServices, sessionId, sessionToken, commitSession,
|
|
95
|
+
export declare function completeDeviceFlowSignIn({ oxyServices, sessionId, sessionToken, commitSession, }: CompleteDeviceFlowSignInOptions): Promise<User>;
|
|
94
96
|
export {};
|
|
95
97
|
//# sourceMappingURL=deviceFlowSignIn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFlowSignIn.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceFlowSignIn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAGL,KAAK,
|
|
1
|
+
{"version":3,"file":"deviceFlowSignIn.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceFlowSignIn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,IAAI,EACV,MAAM,aAAa,CAAC;AAErB,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;oDAGgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAAC;CAC3F;AAED,MAAM,WAAW,+BAA+B;IAC9C,6EAA6E;IAC7E,WAAW,EAAE,gBAAgB,CAAC;IAC9B,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;OAUG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7F;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CjD"}
|
|
@@ -31,12 +31,12 @@ export { useAssetStore, useAssets as useAssetsStore, useAsset, useUploadProgress
|
|
|
31
31
|
export { useAssets, setOxyAssetInstance } from './ui/hooks/useAssets.js';
|
|
32
32
|
export { useFileDownloadUrl } from './ui/hooks/useFileDownloadUrl.js';
|
|
33
33
|
export { useFollow, useFollowerCounts } from './ui/hooks/useFollow.js';
|
|
34
|
-
export { useUserProfile, useUserProfiles, useCurrentUser, useUserById, useUserByUsername, useUsersBySessions, usePrivacySettings,
|
|
34
|
+
export { useUserProfile, useUserProfiles, useCurrentUser, useUserById, useUserByUsername, useUsersBySessions, usePrivacySettings, useConnectedApps, } from './ui/hooks/queries/useAccountQueries.js';
|
|
35
35
|
export { useSessions, useSession, useDeviceSessions, useUserDevices, useSecurityInfo, useAccountStorageUsage, } from './ui/hooks/queries/useServicesQueries.js';
|
|
36
36
|
export { useSecurityActivity, useRecentSecurityActivity, useInfiniteSecurityActivity, } from './ui/hooks/queries/useSecurityQueries.js';
|
|
37
37
|
export { useUserSubscription, useUserPayments, useUserWallet, useUserWalletTransactions, } from './ui/hooks/queries/usePaymentQueries.js';
|
|
38
38
|
export type { Subscription, SubscriptionPlan, SubscriptionStatus, SubscriptionFeatures, Payment, Wallet, WalletTransaction, WalletTransactionType, WalletTransactionStatus, WalletPagination, WalletTransactionsResponse, } from './ui/hooks/queries/paymentTypes.js';
|
|
39
|
-
export { useUpdateProfile, useUploadAvatar, useUpdateAccountSettings, useUpdatePrivacySettings, useUpdateNotificationPreferences, useUpdateUserPreferences,
|
|
39
|
+
export { useUpdateProfile, useUploadAvatar, useUpdateAccountSettings, useUpdatePrivacySettings, useUpdateNotificationPreferences, useUpdateUserPreferences, useRevokeConnectedApp, useUploadFile, } from './ui/hooks/mutations/useAccountMutations.js';
|
|
40
40
|
export { useSwitchSession, useLogoutSession, useLogoutAll, useUpdateDeviceName, useRemoveDevice, } from './ui/hooks/mutations/useServicesMutations.js';
|
|
41
41
|
export { createProfileMutation, createGenericMutation, } from './ui/hooks/mutations/mutationFactory.js';
|
|
42
42
|
export type { ProfileMutationConfig, GenericMutationConfig, } from './ui/hooks/mutations/mutationFactory.js';
|
|
@@ -47,7 +47,6 @@ export type { MutationStatus } from './ui/hooks/useMutationStatus.js';
|
|
|
47
47
|
export { useOnlineStatus } from './ui/hooks/useOnlineStatus.js';
|
|
48
48
|
export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage, } from './ui/utils/errorHandlers.js';
|
|
49
49
|
export type { HandleAuthErrorOptions } from './ui/utils/errorHandlers.js';
|
|
50
|
-
export { CrossApexDirectSignInError, isCrossApexWeb } from './utils/crossApex.js';
|
|
51
50
|
export { useFileFiltering } from './ui/hooks/useFileFiltering.js';
|
|
52
51
|
export type { ViewMode, SortBy, SortOrder } from './ui/hooks/useFileFiltering.js';
|
|
53
52
|
export { default as Avatar } from './ui/components/Avatar.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAAyB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4BAAyB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAoB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAoB,CAAC;AAKhF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA4B,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,EACH,aAAa,EACb,SAAS,IAAI,cAAc,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,2BAAwB,CAAC;AAKhC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,yBAAsB,CAAC;AAKpE,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { SwitchableAccount } from '../hooks/useSwitchableAccounts.js';
|
|
3
|
+
export interface SignInAccountChooserProps {
|
|
4
|
+
/** Accounts available on this device / in the caller's graph, current first. */
|
|
5
|
+
accounts: SwitchableAccount[];
|
|
6
|
+
/** Selecting a row — the active account continues, others switch into. */
|
|
7
|
+
onSelectAccount: (account: SwitchableAccount) => void;
|
|
8
|
+
/** "Use another account" → reveal the sign-in options (password / QR / add). */
|
|
9
|
+
onUseAnother: () => void;
|
|
10
|
+
/** The account id currently being switched into (shows a per-row spinner). */
|
|
11
|
+
pendingAccountId?: string | null;
|
|
12
|
+
/** Disables every row while a selection is in flight. */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Google-style account chooser (React Native). Lists every account the user can
|
|
17
|
+
* continue as — device sign-ins + linked graph accounts, from
|
|
18
|
+
* {@link SwitchableAccount} — plus a "Use another account" affordance. Rendered
|
|
19
|
+
* as the FRONT screen of the sign-in surfaces (`SignInModal` web,
|
|
20
|
+
* `OxyAuthScreen` native) whenever accounts exist; selecting a row funnels into
|
|
21
|
+
* the SAME `switchToAccount` path the account switcher uses. When no accounts
|
|
22
|
+
* exist the surfaces skip this and show the sign-in options directly.
|
|
23
|
+
*
|
|
24
|
+
* Presentational + chrome-agnostic (no modal/sheet wrapper, no data fetching) so
|
|
25
|
+
* both containers reuse it and it is unit-testable in isolation.
|
|
26
|
+
*/
|
|
27
|
+
export declare const SignInAccountChooser: React.FC<SignInAccountChooserProps>;
|
|
28
|
+
export default SignInAccountChooser;
|
|
29
|
+
//# sourceMappingURL=SignInAccountChooser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignInAccountChooser.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInAccountChooser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAgC,CAAC;AAExE,MAAM,WAAW,yBAAyB;IACtC,gFAAgF;IAChF,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,gFAAgF;IAChF,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4EpE,CAAC;AAoDF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SignInModal
|
|
2
|
+
* SignInModal — web-first centered sign-in modal.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Two phases, Google-style:
|
|
5
|
+
* 1. Account chooser (FRONT screen, shown when the device/user already has
|
|
6
|
+
* accounts): pick an account to continue as — one tap switches through the
|
|
7
|
+
* SAME `switchToAccount` path the account switcher uses — or "Use another
|
|
8
|
+
* account" to reveal the sign-in options.
|
|
9
|
+
* 2. Sign-in options: the first-party password flow (identifier → password →
|
|
10
|
+
* optional 2FA, `usePasswordSignIn`) as the PRIMARY action, with the
|
|
11
|
+
* cross-app device flow (same-device deep-link + "sign in on another device"
|
|
12
|
+
* QR) as a SECONDARY option below an "or" divider.
|
|
7
13
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* Animates with a fade + scale effect.
|
|
14
|
+
* When there are no accounts the modal opens straight on the sign-in options.
|
|
15
|
+
* The device-flow machinery lives in the shared `useOxyAuthSession` hook (the
|
|
16
|
+
* native `OxyAuthScreen` consumes it too — neither container re-implements the
|
|
17
|
+
* transport). Animates with a fade + scale; per-phase content cross-fades and
|
|
18
|
+
* respects reduced motion.
|
|
14
19
|
*/
|
|
15
20
|
import type React from 'react';
|
|
16
21
|
export declare const showSignInModal: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8B/B,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,eAAe,YAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAqB,CAAC;AAEvD,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,GAAI,UAAU,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAGxF,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAkBxB,CAAC;AAybF,eAAe,WAAW,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
3
|
import { OxyServices } from '@oxyhq/core';
|
|
4
|
-
import type { User, ApiError, SessionLoginResponse } from '@oxyhq/core';
|
|
5
|
-
import type { AccountNode, CreateAccountInput } from '@oxyhq/core';
|
|
6
|
-
import type { ClientSession } from '@oxyhq/core';
|
|
4
|
+
import type { User, ApiError, SessionLoginResponse, AccountNode, CreateAccountInput, ClientSession } from '@oxyhq/core';
|
|
7
5
|
import type { UseFollowHook } from '../hooks/useFollow.types.js';
|
|
8
6
|
import { useLanguageManagement } from '../hooks/useLanguageManagement.js';
|
|
9
7
|
import type { RouteName } from '../navigation/routes.js';
|
|
@@ -20,16 +18,12 @@ export interface OxyContextState {
|
|
|
20
18
|
/**
|
|
21
19
|
* Whether the initial auth determination has concluded.
|
|
22
20
|
*
|
|
23
|
-
* `false` from mount until the FIRST
|
|
21
|
+
* `false` from mount until the FIRST device-first cold boot resolves —
|
|
24
22
|
* during that window `isAuthenticated: false` is UNDETERMINED, not a
|
|
25
|
-
* definitive "logged out". Flips to `true` exactly once the
|
|
23
|
+
* definitive "logged out". Flips to `true` exactly once the boot concludes
|
|
26
24
|
* (a session was committed OR none exists) and never reverts. Consumers should
|
|
27
25
|
* defer their first auth-dependent fetch until this is `true` so a cold-boot
|
|
28
26
|
* web reload with an existing session does not fetch anonymous data.
|
|
29
|
-
*
|
|
30
|
-
* On native, cold boot runs only the `stored-session` step, so this resolves
|
|
31
|
-
* promptly. It is set in the restore `finally`, so the success, no-session,
|
|
32
|
-
* and error paths all reach `true` — it can never get stuck `false`.
|
|
33
27
|
*/
|
|
34
28
|
isAuthResolved: boolean;
|
|
35
29
|
isStorageReady: boolean;
|
|
@@ -45,22 +39,31 @@ export interface OxyContextState {
|
|
|
45
39
|
* Sign in with a username/email + password.
|
|
46
40
|
*
|
|
47
41
|
* Commits a successful session into context state through the SAME path the
|
|
48
|
-
*
|
|
49
|
-
* the
|
|
50
|
-
* caller can branch on the
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* This is the keyless native sign-in path for the slimmed Accounts app, which
|
|
55
|
-
* no longer holds a local cryptographic identity key.
|
|
42
|
+
* QR device-flow and cold boot use (so `isAuthenticated` / `user` update and
|
|
43
|
+
* the rotating refresh family is persisted). Returns a discriminated result
|
|
44
|
+
* so the caller can branch on the two-factor-required case — which creates NO
|
|
45
|
+
* session; the caller completes the 2FA challenge with the returned
|
|
46
|
+
* `loginToken` via {@link OxyContextState.completeTwoFactorSignIn}.
|
|
56
47
|
*/
|
|
57
48
|
signInWithPassword: (identifier: string, password: string, opts?: {
|
|
58
49
|
deviceName?: string;
|
|
59
50
|
deviceFingerprint?: string;
|
|
60
51
|
}) => Promise<PasswordSignInResult>;
|
|
61
52
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
53
|
+
* Complete a 2FA-gated password sign-in started by {@link signInWithPassword}.
|
|
54
|
+
* Presents the short-lived `loginToken` with a TOTP `token` or a `backupCode`;
|
|
55
|
+
* on success the session is committed exactly like a one-step sign-in.
|
|
56
|
+
*/
|
|
57
|
+
completeTwoFactorSignIn: (params: {
|
|
58
|
+
loginToken: string;
|
|
59
|
+
token?: string;
|
|
60
|
+
backupCode?: string;
|
|
61
|
+
deviceName?: string;
|
|
62
|
+
}) => Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Commit a session obtained out-of-band (the "Sign in with Oxy" QR device
|
|
65
|
+
* flow). Plants tokens, persists the rotating refresh family, registers the
|
|
66
|
+
* account into the device set, and hydrates the full user profile.
|
|
64
67
|
*/
|
|
65
68
|
handleWebSession: (session: SessionLoginResponse) => Promise<void>;
|
|
66
69
|
logout: (targetSessionId?: string) => Promise<void>;
|
|
@@ -86,10 +89,9 @@ export interface OxyContextState {
|
|
|
86
89
|
* supplied via the `clientId` prop. Required for the cross-app device
|
|
87
90
|
* sign-in flow: the sign-in components send it to
|
|
88
91
|
* `POST /auth/session/create` so the API can identify the requesting app by
|
|
89
|
-
* its real registered client id
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* configuration error in that case.
|
|
92
|
+
* its real registered client id. `null` when the consuming app did not
|
|
93
|
+
* configure a client id — the device sign-in flow surfaces a configuration
|
|
94
|
+
* error in that case.
|
|
93
95
|
*/
|
|
94
96
|
clientId: string | null;
|
|
95
97
|
oxyServices: OxyServices;
|
|
@@ -102,36 +104,29 @@ export interface OxyContextState {
|
|
|
102
104
|
/** Every account the caller can access — own personal root, owned, and shared — from `listAccounts()`. */
|
|
103
105
|
accounts: AccountNode[];
|
|
104
106
|
/**
|
|
105
|
-
* Switch the active session INTO an account from the {@link accounts} graph
|
|
106
|
-
* (a managed org/project/bot, or an account shared with the caller).
|
|
107
|
+
* Switch the active session INTO an account from the {@link accounts} graph.
|
|
107
108
|
*
|
|
108
|
-
* Uniform with every other account switch: if the account is already on
|
|
109
|
-
*
|
|
109
|
+
* Uniform with every other account switch: if the account is already on this
|
|
110
|
+
* device's multi-account set, switches straight through the same
|
|
110
111
|
* server-authoritative `SessionClient.switchAccount()` path {@link switchSession}
|
|
111
|
-
* uses
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
* account list exactly like a device sign-in from then on. Either way,
|
|
116
|
-
* afterwards `user` IS the target account, every request authenticates as
|
|
117
|
-
* it, and the account graph + all React Query data are refreshed/invalidated.
|
|
112
|
+
* uses. Only the FIRST switch into an account mints+plants a real session via
|
|
113
|
+
* `oxyServices.switchToAccount` and registers it into the device set, so it
|
|
114
|
+
* survives reload and appears in the device account list exactly like a device
|
|
115
|
+
* sign-in from then on. Either way, afterwards `user` IS the target account.
|
|
118
116
|
*/
|
|
119
117
|
switchToAccount: (accountId: string) => Promise<void>;
|
|
120
118
|
refreshAccounts: () => Promise<void>;
|
|
121
119
|
createAccount: (data: CreateAccountInput) => Promise<AccountNode>;
|
|
122
120
|
}
|
|
123
|
-
declare const OxyContext: React.Context<OxyContextState | null>;
|
|
124
121
|
/**
|
|
125
122
|
* Result of {@link OxyContextState.signInWithPassword}.
|
|
126
123
|
*
|
|
127
|
-
* `'ok'` — the password was accepted and the
|
|
128
|
-
*
|
|
129
|
-
* use), so `isAuthenticated` / `user` are updated and the session is durably persisted;
|
|
130
|
-
* the caller can proceed (e.g. navigate into the app).
|
|
124
|
+
* `'ok'` — the password was accepted and the session committed (so
|
|
125
|
+
* `isAuthenticated` / `user` are updated and the refresh family persisted).
|
|
131
126
|
*
|
|
132
127
|
* `'2fa_required'` — the account has two-factor auth enabled, so NO session was
|
|
133
|
-
* created.
|
|
134
|
-
*
|
|
128
|
+
* created. Complete the challenge with the returned short-lived `loginToken`
|
|
129
|
+
* via {@link OxyContextState.completeTwoFactorSignIn}.
|
|
135
130
|
*/
|
|
136
131
|
export type PasswordSignInResult = {
|
|
137
132
|
status: 'ok';
|
|
@@ -157,5 +152,4 @@ export interface OxyContextProviderProps {
|
|
|
157
152
|
export declare const OxyProvider: React.FC<OxyContextProviderProps>;
|
|
158
153
|
export declare const OxyContextProvider: React.FC<OxyContextProviderProps>;
|
|
159
154
|
export declare const useOxy: () => OxyContextState;
|
|
160
|
-
export default OxyContext;
|
|
161
155
|
//# sourceMappingURL=OxyContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
|