@oxyhq/services 10.0.0 → 10.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/ui/components/SignInModal.js +24 -11
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +5 -1
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +66 -25
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/utils/deviceFlowSignIn.js +55 -0
- package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -0
- package/lib/module/ui/components/SignInModal.js +24 -11
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +5 -1
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +66 -25
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/utils/deviceFlowSignIn.js +51 -0
- package/lib/module/utils/deviceFlowSignIn.js.map +1 -0
- package/lib/typescript/commonjs/ui/components/SignInModal.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/hooks/mutations/useServicesMutations.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +61 -0
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SignInModal.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/hooks/mutations/useServicesMutations.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +61 -0
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/ui/components/SignInModal.tsx +25 -11
- package/src/ui/context/OxyContext.tsx +8 -4
- package/src/ui/screens/OxyAuthScreen.tsx +67 -25
- package/src/utils/__tests__/deviceFlowSignIn.test.ts +104 -0
- package/src/utils/deviceFlowSignIn.ts +76 -0
|
@@ -23,6 +23,7 @@ import { useOxy } from "../context/OxyContext.js";
|
|
|
23
23
|
import QRCode from 'react-native-qrcode-svg';
|
|
24
24
|
import OxyLogo from "../components/OxyLogo.js";
|
|
25
25
|
import { createDebugLogger } from '@oxyhq/core';
|
|
26
|
+
import { completeDeviceFlowSignIn } from "../../utils/deviceFlowSignIn.js";
|
|
26
27
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
28
|
const debug = createDebugLogger('OxyAuthScreen');
|
|
28
29
|
const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
|
|
@@ -94,7 +95,6 @@ const OxyAuthScreen = ({
|
|
|
94
95
|
const bloomTheme = useTheme();
|
|
95
96
|
const {
|
|
96
97
|
oxyServices,
|
|
97
|
-
signIn,
|
|
98
98
|
switchSession,
|
|
99
99
|
clientId
|
|
100
100
|
} = useOxy();
|
|
@@ -108,24 +108,41 @@ const OxyAuthScreen = ({
|
|
|
108
108
|
const isProcessingRef = useRef(false);
|
|
109
109
|
const linkingHandledRef = useRef(false);
|
|
110
110
|
|
|
111
|
-
// Handle successful authorization
|
|
112
|
-
|
|
111
|
+
// Handle successful authorization.
|
|
112
|
+
//
|
|
113
|
+
// The auth-session socket / poll (or deep-link return) hands us the
|
|
114
|
+
// authorized `sessionId`. Before any session-management code can touch it we
|
|
115
|
+
// MUST first exchange the secret `sessionToken` (held only by this client,
|
|
116
|
+
// generated for THIS flow) for the first access token via
|
|
117
|
+
// `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
118
|
+
// code-for-token exchange (RFC 8628 §3.4).
|
|
119
|
+
//
|
|
120
|
+
// Without that exchange the SDK has no bearer token, so the subsequent
|
|
121
|
+
// `switchSession` -> `getTokenBySession` call (`GET /session/token/:id`) 401s
|
|
122
|
+
// against the C1-hardened API — the session is authorized server-side but the
|
|
123
|
+
// app never becomes authenticated and the sheet sits "Waiting for
|
|
124
|
+
// authorization..." forever. Once `claimSessionByToken` plants the tokens in
|
|
125
|
+
// the HttpService, the rest of the session wiring flows through the normal
|
|
126
|
+
// `switchSession` path. This mirrors `SignInModal`'s web flow exactly.
|
|
127
|
+
const handleAuthSuccess = useCallback(async (sessionId, sessionToken) => {
|
|
113
128
|
if (isProcessingRef.current) return;
|
|
114
129
|
isProcessingRef.current = true;
|
|
115
130
|
try {
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
131
|
+
// Claim the first access token with the secret sessionToken, then
|
|
132
|
+
// hydrate the session. The claim step is what the native screen was
|
|
133
|
+
// previously missing — see `completeDeviceFlowSignIn`. `switchSession`
|
|
134
|
+
// is always provided by the context here; the helper requires it.
|
|
135
|
+
if (!switchSession) {
|
|
136
|
+
throw new Error('Session management unavailable');
|
|
137
|
+
}
|
|
138
|
+
const user = await completeDeviceFlowSignIn({
|
|
139
|
+
oxyServices,
|
|
140
|
+
sessionId,
|
|
141
|
+
sessionToken,
|
|
142
|
+
switchSession
|
|
143
|
+
});
|
|
144
|
+
if (onAuthenticated) {
|
|
145
|
+
onAuthenticated(user);
|
|
129
146
|
}
|
|
130
147
|
} catch (err) {
|
|
131
148
|
debug.error('Error completing auth:', err);
|
|
@@ -159,7 +176,9 @@ const OxyAuthScreen = ({
|
|
|
159
176
|
debug.log('Auth update received:', payload);
|
|
160
177
|
if (payload.status === 'authorized' && payload.sessionId) {
|
|
161
178
|
cleanup();
|
|
162
|
-
|
|
179
|
+
// `sessionToken` is this flow's secret credential (in closure) — pass
|
|
180
|
+
// it through so `handleAuthSuccess` can claim the first access token.
|
|
181
|
+
handleAuthSuccess(payload.sessionId, sessionToken);
|
|
163
182
|
} else if (payload.status === 'cancelled') {
|
|
164
183
|
cleanup();
|
|
165
184
|
setError('Authorization was denied.');
|
|
@@ -170,8 +189,11 @@ const OxyAuthScreen = ({
|
|
|
170
189
|
});
|
|
171
190
|
socket.on('connect_error', err => {
|
|
172
191
|
debug.log('Socket connection error, falling back to polling:', err instanceof Error ? err.message : null);
|
|
173
|
-
//
|
|
192
|
+
// Realtime transport errored — reflect the honest connection state. The
|
|
193
|
+
// poll is already running (started unconditionally in
|
|
194
|
+
// `generateAuthSession`), so `startPolling` here is a no-op backstop.
|
|
174
195
|
socket.disconnect();
|
|
196
|
+
setConnectionType('polling');
|
|
175
197
|
startPolling(sessionToken);
|
|
176
198
|
});
|
|
177
199
|
socket.on('disconnect', () => {
|
|
@@ -179,9 +201,13 @@ const OxyAuthScreen = ({
|
|
|
179
201
|
});
|
|
180
202
|
}, [oxyServices, handleAuthSuccess]);
|
|
181
203
|
|
|
182
|
-
// Start polling for authorization
|
|
204
|
+
// Start polling for authorization.
|
|
205
|
+
//
|
|
206
|
+
// Idempotent: if a poll interval is already running this is a no-op, so the
|
|
207
|
+
// `connect_error` path (which also calls this) cannot stack a second interval
|
|
208
|
+
// on top of the always-on poll started in `generateAuthSession`.
|
|
183
209
|
const startPolling = useCallback(sessionToken => {
|
|
184
|
-
|
|
210
|
+
if (pollingIntervalRef.current) return;
|
|
185
211
|
pollingIntervalRef.current = setInterval(async () => {
|
|
186
212
|
if (isProcessingRef.current) return;
|
|
187
213
|
try {
|
|
@@ -190,7 +216,9 @@ const OxyAuthScreen = ({
|
|
|
190
216
|
});
|
|
191
217
|
if (response.authorized && response.sessionId) {
|
|
192
218
|
cleanup();
|
|
193
|
-
|
|
219
|
+
// Pass the original sessionToken (in closure) through; the claim
|
|
220
|
+
// exchange needs it to mint the first access token.
|
|
221
|
+
handleAuthSuccess(response.sessionId, sessionToken);
|
|
194
222
|
} else if (response.status === 'cancelled') {
|
|
195
223
|
cleanup();
|
|
196
224
|
setError('Authorization was denied.');
|
|
@@ -253,14 +281,17 @@ const OxyAuthScreen = ({
|
|
|
253
281
|
});
|
|
254
282
|
setIsWaiting(true);
|
|
255
283
|
|
|
256
|
-
//
|
|
284
|
+
// Socket is the fast path; the poll is a transport-independent backstop
|
|
285
|
+
// that guarantees completion even if the socket connects but silently
|
|
286
|
+
// never delivers auth_update (RN transport / idle-timeout).
|
|
257
287
|
connectSocket(sessionToken);
|
|
288
|
+
startPolling(sessionToken);
|
|
258
289
|
} catch (err) {
|
|
259
290
|
setError((err instanceof Error ? err.message : null) || 'Failed to create auth session');
|
|
260
291
|
} finally {
|
|
261
292
|
setIsLoading(false);
|
|
262
293
|
}
|
|
263
|
-
}, [oxyServices, connectSocket, clientId]);
|
|
294
|
+
}, [oxyServices, connectSocket, startPolling, clientId]);
|
|
264
295
|
|
|
265
296
|
// Generate a random session token
|
|
266
297
|
const generateSessionToken = () => {
|
|
@@ -334,10 +365,20 @@ const OxyAuthScreen = ({
|
|
|
334
365
|
return;
|
|
335
366
|
}
|
|
336
367
|
if (params.sessionId) {
|
|
368
|
+
// The deep-link return carries only `session_id` — the secret
|
|
369
|
+
// `sessionToken` for this flow lives in component state (generated in
|
|
370
|
+
// `generateAuthSession`). Without it we cannot claim the first access
|
|
371
|
+
// token, so the flow would 401 in `handleAuthSuccess`. If it is somehow
|
|
372
|
+
// unavailable, fall through to the socket/poll path (which carries the
|
|
373
|
+
// token in closure) rather than attempting an unauthenticated claim.
|
|
374
|
+
const flowSessionToken = authSession?.sessionToken;
|
|
375
|
+
if (!flowSessionToken) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
337
378
|
cleanup();
|
|
338
|
-
handleAuthSuccess(params.sessionId);
|
|
379
|
+
handleAuthSuccess(params.sessionId, flowSessionToken);
|
|
339
380
|
}
|
|
340
|
-
}, [cleanup, handleAuthSuccess]);
|
|
381
|
+
}, [authSession, cleanup, handleAuthSuccess]);
|
|
341
382
|
useEffect(() => {
|
|
342
383
|
if (Platform.OS === 'web') {
|
|
343
384
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Linking","Platform","io","useTheme","Button","Loading","useOxy","QRCode","OxyLogo","createDebugLogger","jsx","_jsx","jsxs","_jsxs","debug","OXY_ACCOUNTS_WEB_URL","OXY_AUTH_WEB_URL","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","resolveAuthWebBaseUrl","baseURL","authWebUrl","url","URL","port","origin","hostname","startsWith","slice","resolveAuthRedirectUri","authRedirectUri","initialUrl","getInitialURL","parsed","search","hash","toString","getRedirectParams","sessionId","searchParams","get","undefined","error","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","bloomTheme","oxyServices","signIn","switchSession","clientId","authSession","setAuthSession","isLoading","setIsLoading","setError","isWaiting","setIsWaiting","connectionType","setConnectionType","socketRef","pollingIntervalRef","isProcessingRef","linkingHandledRef","handleAuthSuccess","current","user","getTokenBySession","getUserBySession","err","connectSocket","sessionToken","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","cleanup","Error","message","disconnect","startPolling","setInterval","response","makeRequest","cache","authorized","clearInterval","generateAuthSession","generateSessionToken","expiresAt","Date","now","chars","result","i","charAt","Math","floor","random","length","getQRData","handleOpenAuth","authBaseUrl","config","webUrl","set","redirectUri","openURL","handleRefresh","handleAuthRedirect","params","OS","subscription","addEventListener","then","catch","remove","style","styles","container","backgroundColor","colors","background","children","size","loadingText","className","errorText","variant","onPress","width","borderRadius","header","title","subtitle","qrContainer","qrWrapper","value","color","qrHint","dividerContainer","divider","dividerText","icon","fillColor","card","buttonIcon","statusContainer","flex","statusText","footer","footerText","footerLink","cancelButton","cancelText","create","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderWidth","flexDirection","marginVertical","height","marginHorizontal","marginRight","marginLeft"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Linking","Platform","io","useTheme","Button","Loading","useOxy","QRCode","OxyLogo","createDebugLogger","completeDeviceFlowSignIn","jsx","_jsx","jsxs","_jsxs","debug","OXY_ACCOUNTS_WEB_URL","OXY_AUTH_WEB_URL","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","resolveAuthWebBaseUrl","baseURL","authWebUrl","url","URL","port","origin","hostname","startsWith","slice","resolveAuthRedirectUri","authRedirectUri","initialUrl","getInitialURL","parsed","search","hash","toString","getRedirectParams","sessionId","searchParams","get","undefined","error","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","bloomTheme","oxyServices","switchSession","clientId","authSession","setAuthSession","isLoading","setIsLoading","setError","isWaiting","setIsWaiting","connectionType","setConnectionType","socketRef","pollingIntervalRef","isProcessingRef","linkingHandledRef","handleAuthSuccess","sessionToken","current","Error","user","err","connectSocket","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","cleanup","message","disconnect","startPolling","setInterval","response","makeRequest","cache","authorized","clearInterval","generateAuthSession","generateSessionToken","expiresAt","Date","now","chars","result","i","charAt","Math","floor","random","length","getQRData","handleOpenAuth","authBaseUrl","config","webUrl","set","redirectUri","openURL","handleRefresh","handleAuthRedirect","params","flowSessionToken","OS","subscription","addEventListener","then","catch","remove","style","styles","container","backgroundColor","colors","background","children","size","loadingText","className","errorText","variant","onPress","width","borderRadius","header","title","subtitle","qrContainer","qrWrapper","value","color","qrHint","dividerContainer","divider","dividerText","icon","fillColor","card","buttonIcon","statusContainer","flex","statusText","footer","footerText","footerLink","cancelButton","cancelText","create","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderWidth","flexDirection","marginVertical","height","marginHorizontal","marginRight","marginLeft"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shared, pure orchestration for completing the cross-app device-flow sign-in
|
|
5
|
+
* (the QR-code / "Open Oxy Auth" path used on native and web).
|
|
6
|
+
*
|
|
7
|
+
* THE BUG THIS FIXES (native): once another authenticated device approves the
|
|
8
|
+
* pending AuthSession, the originating client is notified (socket / poll /
|
|
9
|
+
* deep-link) with the authorized `sessionId`. Before any session-management
|
|
10
|
+
* code can use it, the client MUST exchange the secret 128-bit `sessionToken`
|
|
11
|
+
* (held only by this client, generated for THIS flow) for the first access
|
|
12
|
+
* token via `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
13
|
+
* code-for-token exchange (RFC 8628 §3.4).
|
|
14
|
+
*
|
|
15
|
+
* Skipping the claim leaves the SDK with NO bearer token, so the subsequent
|
|
16
|
+
* `switchSession` -> `getTokenBySession` (`GET /session/token/:id`) call 401s
|
|
17
|
+
* against the C1-hardened API: the session is authorized server-side but the
|
|
18
|
+
* app never becomes authenticated and the UI sits "Waiting for
|
|
19
|
+
* authorization..." forever. The web `SignInModal` already claimed first; the
|
|
20
|
+
* native `OxyAuthScreen` did not. Consolidating the claim→switch sequence here
|
|
21
|
+
* keeps both paths identical and unit-testable, and prevents future drift.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The minimal `OxyServices` surface this orchestration needs. Kept as a
|
|
26
|
+
* structural type (rather than importing the full client) so the helper is
|
|
27
|
+
* trivially unit-testable with a stub and never pulls the RN/Expo runtime into
|
|
28
|
+
* a test bundle.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Complete a device-flow sign-in: claim the first access token with the secret
|
|
33
|
+
* `sessionToken` (planting the bearer), then hydrate the session via
|
|
34
|
+
* `switchSession`. Returns the authenticated user.
|
|
35
|
+
*
|
|
36
|
+
* Throws if either the claim or the switch fails; callers surface a retry UI.
|
|
37
|
+
*/
|
|
38
|
+
export async function completeDeviceFlowSignIn({
|
|
39
|
+
oxyServices,
|
|
40
|
+
sessionId,
|
|
41
|
+
sessionToken,
|
|
42
|
+
switchSession
|
|
43
|
+
}) {
|
|
44
|
+
// 1) Plant the bearer + refresh tokens. Without this the bearer-protected
|
|
45
|
+
// `getTokenBySession` inside `switchSession` 401s (the native regression).
|
|
46
|
+
await oxyServices.claimSessionByToken(sessionToken);
|
|
47
|
+
|
|
48
|
+
// 2) Bearer is now planted — hydrate the session through the normal path.
|
|
49
|
+
return switchSession(sessionId);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=deviceFlowSignIn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["completeDeviceFlowSignIn","oxyServices","sessionId","sessionToken","switchSession","claimSessionByToken"],"sourceRoot":"../../../src","sources":["utils/deviceFlowSignIn.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeA,wBAAwBA,CAAC;EAC7CC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAC+B,CAAC,EAAiB;EACjD;EACA;EACA,MAAMH,WAAW,CAACI,mBAAmB,CAACF,YAAY,CAAC;;EAEnD;EACA,OAAOC,aAAa,CAACF,SAAS,CAAC;AACjC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyD/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,EAmYxB,CAAC;AA8FF,eAAe,WAAW,CAAC"}
|
|
@@ -45,7 +45,7 @@ export interface OxyContextState {
|
|
|
45
45
|
handlePopupSession: (session: SessionLoginResponse) => Promise<void>;
|
|
46
46
|
logout: (targetSessionId?: string) => Promise<void>;
|
|
47
47
|
logoutAll: () => Promise<void>;
|
|
48
|
-
switchSession: (sessionId: string) => Promise<
|
|
48
|
+
switchSession: (sessionId: string) => Promise<User>;
|
|
49
49
|
removeSession: (sessionId: string) => Promise<void>;
|
|
50
50
|
refreshSessions: () => Promise<void>;
|
|
51
51
|
setLanguage: (languageId: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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
|
|
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,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAOvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAGlC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAG3C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;OAGG;IACH,kBAAkB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGrE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAC9B,KAAK,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CACH,CAAC;IACF,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAG7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,oBAAoB,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACpF;AAED,QAAA,MAAM,UAAU,uCAA8C,CAAC;AAM/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AA8JD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA64CzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,mCAAc,CAAC;AA4D9C,eAAO,MAAM,MAAM,QAAO,eAMzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Switch active session
|
|
3
3
|
*/
|
|
4
|
-
export declare const useSwitchSession: () => import("@tanstack/react-query").UseMutationResult<
|
|
4
|
+
export declare const useSwitchSession: () => import("@tanstack/react-query").UseMutationResult<import("@oxyhq/core").User, Error, string, unknown>;
|
|
5
5
|
/**
|
|
6
6
|
* Logout from a session
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useServicesMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useServicesMutations.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useServicesMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useServicesMutations.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,gBAAgB,6GAuB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;EAiD5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,qFAuBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,sFAuB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,yFAoB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2F3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAib5C,CAAC;AA6FF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, pure orchestration for completing the cross-app device-flow sign-in
|
|
3
|
+
* (the QR-code / "Open Oxy Auth" path used on native and web).
|
|
4
|
+
*
|
|
5
|
+
* THE BUG THIS FIXES (native): once another authenticated device approves the
|
|
6
|
+
* pending AuthSession, the originating client is notified (socket / poll /
|
|
7
|
+
* deep-link) with the authorized `sessionId`. Before any session-management
|
|
8
|
+
* code can use it, the client MUST exchange the secret 128-bit `sessionToken`
|
|
9
|
+
* (held only by this client, generated for THIS flow) for the first access
|
|
10
|
+
* token via `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
11
|
+
* code-for-token exchange (RFC 8628 §3.4).
|
|
12
|
+
*
|
|
13
|
+
* Skipping the claim leaves the SDK with NO bearer token, so the subsequent
|
|
14
|
+
* `switchSession` -> `getTokenBySession` (`GET /session/token/:id`) call 401s
|
|
15
|
+
* against the C1-hardened API: the session is authorized server-side but the
|
|
16
|
+
* app never becomes authenticated and the UI sits "Waiting for
|
|
17
|
+
* authorization..." forever. The web `SignInModal` already claimed first; the
|
|
18
|
+
* native `OxyAuthScreen` did not. Consolidating the claim→switch sequence here
|
|
19
|
+
* keeps both paths identical and unit-testable, and prevents future drift.
|
|
20
|
+
*/
|
|
21
|
+
import type { User } from '@oxyhq/core';
|
|
22
|
+
/**
|
|
23
|
+
* The minimal `OxyServices` surface this orchestration needs. Kept as a
|
|
24
|
+
* structural type (rather than importing the full client) so the helper is
|
|
25
|
+
* trivially unit-testable with a stub and never pulls the RN/Expo runtime into
|
|
26
|
+
* a test bundle.
|
|
27
|
+
*/
|
|
28
|
+
export interface DeviceFlowClient {
|
|
29
|
+
/**
|
|
30
|
+
* Exchange the device-flow `sessionToken` for the first access + refresh
|
|
31
|
+
* token, planting them on the client. Single-use; replay is rejected by the
|
|
32
|
+
* API. No bearer required — the high-entropy `sessionToken` IS the credential.
|
|
33
|
+
*/
|
|
34
|
+
claimSessionByToken: (sessionToken: string) => Promise<unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface CompleteDeviceFlowSignInOptions {
|
|
37
|
+
/** The OxyServices client (or any object exposing `claimSessionByToken`). */
|
|
38
|
+
oxyServices: DeviceFlowClient;
|
|
39
|
+
/** The authorized device session id, delivered by the socket / poll / link. */
|
|
40
|
+
sessionId: string;
|
|
41
|
+
/**
|
|
42
|
+
* The secret `sessionToken` generated for THIS flow and registered via
|
|
43
|
+
* `POST /auth/session/create`. Required to claim the first access token.
|
|
44
|
+
*/
|
|
45
|
+
sessionToken: string;
|
|
46
|
+
/**
|
|
47
|
+
* The session-management `switchSession` from `useOxy()`. Hydrates the
|
|
48
|
+
* activated session (validates, fetches the user, persists, updates state).
|
|
49
|
+
* Runs AFTER the bearer is planted so its bearer-protected calls succeed.
|
|
50
|
+
*/
|
|
51
|
+
switchSession: (sessionId: string) => Promise<User>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Complete a device-flow sign-in: claim the first access token with the secret
|
|
55
|
+
* `sessionToken` (planting the bearer), then hydrate the session via
|
|
56
|
+
* `switchSession`. Returns the authenticated user.
|
|
57
|
+
*
|
|
58
|
+
* Throws if either the claim or the switch fails; callers surface a retry UI.
|
|
59
|
+
*/
|
|
60
|
+
export declare function completeDeviceFlowSignIn({ oxyServices, sessionId, sessionToken, switchSession, }: CompleteDeviceFlowSignInOptions): Promise<User>;
|
|
61
|
+
//# sourceMappingURL=deviceFlowSignIn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceFlowSignIn.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceFlowSignIn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE;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;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SignInModal.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SignInModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyD/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,EAmYxB,CAAC;AA8FF,eAAe,WAAW,CAAC"}
|
|
@@ -45,7 +45,7 @@ export interface OxyContextState {
|
|
|
45
45
|
handlePopupSession: (session: SessionLoginResponse) => Promise<void>;
|
|
46
46
|
logout: (targetSessionId?: string) => Promise<void>;
|
|
47
47
|
logoutAll: () => Promise<void>;
|
|
48
|
-
switchSession: (sessionId: string) => Promise<
|
|
48
|
+
switchSession: (sessionId: string) => Promise<User>;
|
|
49
49
|
removeSession: (sessionId: string) => Promise<void>;
|
|
50
50
|
refreshSessions: () => Promise<void>;
|
|
51
51
|
setLanguage: (languageId: string) => Promise<void>;
|
|
@@ -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,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAOvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAGlC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAG3C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;OAGG;IACH,kBAAkB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAGrE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,iBAAiB,EAAE,MAAM,OAAO,CAC9B,KAAK,CAAC;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CACH,CAAC;IACF,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAG7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,oBAAoB,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACpF;AAED,QAAA,MAAM,UAAU,uCAA8C,CAAC;AAM/D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AA8JD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"OxyContext.d.ts","sourceRoot":"","sources":["../../../../../src/ui/context/OxyContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Switch active session
|
|
3
3
|
*/
|
|
4
|
-
export declare const useSwitchSession: () => import("@tanstack/react-query").UseMutationResult<
|
|
4
|
+
export declare const useSwitchSession: () => import("@tanstack/react-query").UseMutationResult<import("@oxyhq/core").User, Error, string, unknown>;
|
|
5
5
|
/**
|
|
6
6
|
* Logout from a session
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useServicesMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useServicesMutations.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"useServicesMutations.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/mutations/useServicesMutations.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,gBAAgB,6GAuB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;EAiD5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,qFAuBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,sFAuB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,yFAoB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2F3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAib5C,CAAC;AA6FF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, pure orchestration for completing the cross-app device-flow sign-in
|
|
3
|
+
* (the QR-code / "Open Oxy Auth" path used on native and web).
|
|
4
|
+
*
|
|
5
|
+
* THE BUG THIS FIXES (native): once another authenticated device approves the
|
|
6
|
+
* pending AuthSession, the originating client is notified (socket / poll /
|
|
7
|
+
* deep-link) with the authorized `sessionId`. Before any session-management
|
|
8
|
+
* code can use it, the client MUST exchange the secret 128-bit `sessionToken`
|
|
9
|
+
* (held only by this client, generated for THIS flow) for the first access
|
|
10
|
+
* token via `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
11
|
+
* code-for-token exchange (RFC 8628 §3.4).
|
|
12
|
+
*
|
|
13
|
+
* Skipping the claim leaves the SDK with NO bearer token, so the subsequent
|
|
14
|
+
* `switchSession` -> `getTokenBySession` (`GET /session/token/:id`) call 401s
|
|
15
|
+
* against the C1-hardened API: the session is authorized server-side but the
|
|
16
|
+
* app never becomes authenticated and the UI sits "Waiting for
|
|
17
|
+
* authorization..." forever. The web `SignInModal` already claimed first; the
|
|
18
|
+
* native `OxyAuthScreen` did not. Consolidating the claim→switch sequence here
|
|
19
|
+
* keeps both paths identical and unit-testable, and prevents future drift.
|
|
20
|
+
*/
|
|
21
|
+
import type { User } from '@oxyhq/core';
|
|
22
|
+
/**
|
|
23
|
+
* The minimal `OxyServices` surface this orchestration needs. Kept as a
|
|
24
|
+
* structural type (rather than importing the full client) so the helper is
|
|
25
|
+
* trivially unit-testable with a stub and never pulls the RN/Expo runtime into
|
|
26
|
+
* a test bundle.
|
|
27
|
+
*/
|
|
28
|
+
export interface DeviceFlowClient {
|
|
29
|
+
/**
|
|
30
|
+
* Exchange the device-flow `sessionToken` for the first access + refresh
|
|
31
|
+
* token, planting them on the client. Single-use; replay is rejected by the
|
|
32
|
+
* API. No bearer required — the high-entropy `sessionToken` IS the credential.
|
|
33
|
+
*/
|
|
34
|
+
claimSessionByToken: (sessionToken: string) => Promise<unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface CompleteDeviceFlowSignInOptions {
|
|
37
|
+
/** The OxyServices client (or any object exposing `claimSessionByToken`). */
|
|
38
|
+
oxyServices: DeviceFlowClient;
|
|
39
|
+
/** The authorized device session id, delivered by the socket / poll / link. */
|
|
40
|
+
sessionId: string;
|
|
41
|
+
/**
|
|
42
|
+
* The secret `sessionToken` generated for THIS flow and registered via
|
|
43
|
+
* `POST /auth/session/create`. Required to claim the first access token.
|
|
44
|
+
*/
|
|
45
|
+
sessionToken: string;
|
|
46
|
+
/**
|
|
47
|
+
* The session-management `switchSession` from `useOxy()`. Hydrates the
|
|
48
|
+
* activated session (validates, fetches the user, persists, updates state).
|
|
49
|
+
* Runs AFTER the bearer is planted so its bearer-protected calls succeed.
|
|
50
|
+
*/
|
|
51
|
+
switchSession: (sessionId: string) => Promise<User>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Complete a device-flow sign-in: claim the first access token with the secret
|
|
55
|
+
* `sessionToken` (planting the bearer), then hydrate the session via
|
|
56
|
+
* `switchSession`. Returns the authenticated user.
|
|
57
|
+
*
|
|
58
|
+
* Throws if either the claim or the switch fails; callers surface a retry UI.
|
|
59
|
+
*/
|
|
60
|
+
export declare function completeDeviceFlowSignIn({ oxyServices, sessionId, sessionToken, switchSession, }: CompleteDeviceFlowSignInOptions): Promise<User>;
|
|
61
|
+
//# sourceMappingURL=deviceFlowSignIn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceFlowSignIn.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceFlowSignIn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE;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;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,GACd,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjD"}
|
package/package.json
CHANGED