@oxyhq/services 10.4.0 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/commonjs/ui/components/AnotherDeviceQR.js +121 -0
  2. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -0
  3. package/lib/commonjs/ui/components/SignInModal.js +145 -356
  4. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  5. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +458 -0
  6. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -0
  7. package/lib/commonjs/ui/screens/OxyAuthScreen.js +62 -460
  8. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  9. package/lib/module/ui/components/AnotherDeviceQR.js +116 -0
  10. package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -0
  11. package/lib/module/ui/components/SignInModal.js +149 -358
  12. package/lib/module/ui/components/SignInModal.js.map +1 -1
  13. package/lib/module/ui/hooks/useOxyAuthSession.js +452 -0
  14. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -0
  15. package/lib/module/ui/screens/OxyAuthScreen.js +62 -460
  16. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  17. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +24 -0
  18. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -0
  19. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +10 -5
  20. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +83 -0
  22. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +12 -8
  24. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  25. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +24 -0
  26. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -0
  27. package/lib/typescript/module/ui/components/SignInModal.d.ts +10 -5
  28. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  29. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +83 -0
  30. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -0
  31. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +12 -8
  32. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/ui/components/AnotherDeviceQR.tsx +111 -0
  35. package/src/ui/components/SignInModal.tsx +142 -381
  36. package/src/ui/hooks/useOxyAuthSession.ts +556 -0
  37. package/src/ui/screens/OxyAuthScreen.tsx +61 -506
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Modal","Dimensions","Platform","Linking","Animated","useSharedValue","useAnimatedStyle","withTiming","useSafeAreaInsets","io","QRCode","useTheme","Button","Loading","useOxy","OxyLogo","createDebugLogger","completeDeviceFlowSignIn","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","debug","width","SCREEN_WIDTH","height","SCREEN_HEIGHT","get","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","modalVisible","setModalVisibleCallback","visibilityListeners","Set","showSignInModal","listener","hideSignInModal","isSignInModalVisible","subscribeToSignInModal","add","delete","SignInModal","visible","setVisible","authSession","setAuthSession","isLoading","setIsLoading","error","setError","isWaiting","setIsWaiting","insets","theme","oxyServices","switchSession","clientId","socketRef","pollingIntervalRef","isProcessingRef","opacity","scale","value","duration","generateAuthSession","backdropStyle","contentStyle","transform","handleAuthSuccess","sessionId","sessionToken","current","Error","err","cleanup","disconnect","clearInterval","connectSocket","baseURL","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","message","startPolling","setInterval","response","makeRequest","undefined","cache","authorized","generateSessionToken","expiresAt","Date","now","bytes","Uint8Array","crypto","getRandomValues","Array","from","b","toString","padStart","join","getQRData","handleOpenAuthApproval","authWebUrl","config","url","URL","port","origin","hostname","startsWith","slice","webUrl","searchParams","set","OS","screenWidth","window","screen","screenHeight","left","top","open","openURL","handleRefresh","handleClose","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","styles","backdrop","backgroundColor","colors","overlay","absoluteFill","onPress","activeOpacity","content","paddingTop","paddingBottom","bottom","closeButton","closeButtonText","header","variant","size","className","title","subtitle","loadingContainer","loadingText","errorContainer","errorText","qrContainer","color","dividerContainer","divider","dividerText","icon","fillColor","card","statusContainer","statusText","create","flex","justifyContent","alignItems","maxWidth","paddingHorizontal","position","right","borderRadius","zIndex","fontSize","fontWeight","lineHeight","marginBottom","marginTop","textAlign","padding","flexDirection","marginVertical","marginHorizontal","marginLeft","paddingVertical"],"sourceRoot":"../../../../src","sources":["ui/components/SignInModal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","useCallback","View","Text","TouchableOpacity","StyleSheet","Modal","Animated","useSharedValue","useAnimatedStyle","withTiming","useSafeAreaInsets","useTheme","Button","Loading","Linking","useOxy","OxyLogo","AnotherDeviceQR","useOxyAuthSession","OXY_ACCOUNTS_WEB_URL","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","modalVisible","setModalVisibleCallback","visibilityListeners","Set","showSignInModal","listener","hideSignInModal","isSignInModalVisible","subscribeToSignInModal","add","delete","SignInModal","visible","setVisible","insets","theme","oxyServices","switchSession","clientId","SignInModalContent","qrData","isLoading","error","isWaiting","openAuthApproval","retry","onSignedIn","opacity","scale","value","duration","backdropStyle","contentStyle","transform","handleClose","handleCreateAccount","openURL","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","styles","backdrop","backgroundColor","colors","overlay","absoluteFill","onPress","activeOpacity","card","paddingTop","top","paddingBottom","bottom","closeButton","backgroundSecondary","accessibilityRole","accessibilityLabel","closeButtonText","color","textSecondary","header","variant","size","className","title","subtitle","loadingContainer","loadingText","errorContainer","errorText","primaryButton","icon","fillColor","primaryForeground","buttonIcon","statusContainer","statusSpinner","statusText","qrSection","footer","footerText","footerLink","create","flex","justifyContent","alignItems","width","maxWidth","paddingHorizontal","borderRadius","position","right","height","zIndex","fontSize","fontWeight","lineHeight","marginBottom","marginTop","textAlign","marginRight","flexDirection","undefined","marginLeft","paddingVertical","flexWrap"],"sourceRoot":"../../../../src","sources":["ui/components/SignInModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,452 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * useOxyAuthSession — the single shared engine for the cross-app device-flow
5
+ * sign-in ("Sign in with Oxy") used by BOTH containers:
6
+ *
7
+ * - `SignInModal` (web centered modal)
8
+ * - `OxyAuthScreen` (native bottom sheet)
9
+ *
10
+ * Before this hook existed, those two files each re-implemented ~90% of the
11
+ * same auth-session machinery (session-token creation, QR data, socket.io
12
+ * `/auth-session` subscription, the HTTP polling fallback, waiting/error/retry
13
+ * state, the open-auth handler, and cleanup) — and they had drifted (notably a
14
+ * weaker `Math.random()` session token on native vs the crypto-secure one on
15
+ * web). This hook owns ALL of it ONCE, with a clean typed surface, so the
16
+ * containers only own their layout. The transport is functionally identical to
17
+ * the previous implementations — this is a structural de-duplication, not a
18
+ * behavior change.
19
+ *
20
+ * The native-only deep-link return path (`Linking` redirect handling) lives
21
+ * HERE, gated to native via `Platform.OS`, so the web container never carries
22
+ * native-only code while the two paths still cannot drift.
23
+ */
24
+
25
+ import { useState, useEffect, useCallback, useRef } from 'react';
26
+ import { Linking, Platform } from 'react-native';
27
+ import io from 'socket.io-client';
28
+ import { createDebugLogger } from '@oxyhq/core';
29
+ import { completeDeviceFlowSignIn } from "../../utils/deviceFlowSignIn.js";
30
+ const debug = createDebugLogger('useOxyAuthSession');
31
+
32
+ /**
33
+ * Default destination for the "Create an Oxy account" / "Get Oxy Accounts"
34
+ * link, shared by both containers. Reused as-is from the original native
35
+ * `OxyAuthScreen` so no new route is invented.
36
+ */
37
+ export const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
38
+
39
+ /** Default central Oxy auth web origin used when no override can be resolved. */
40
+ export const OXY_AUTH_WEB_URL = 'https://auth.oxy.so';
41
+
42
+ /** Auth session expiration (5 minutes). */
43
+ export const AUTH_SESSION_EXPIRY_MS = 5 * 60 * 1000;
44
+
45
+ /** Polling interval (fallback if the socket fails) in milliseconds. */
46
+ export const POLLING_INTERVAL_MS = 3000;
47
+
48
+ /** The active device-flow session this client created and is waiting on. */
49
+
50
+ /** Real-time auth-session socket payload (also matches the poll status shape). */
51
+
52
+ /**
53
+ * Resolve the central Oxy auth web origin from config or the API base URL.
54
+ * Mirrors the resolution both containers previously inlined.
55
+ */
56
+ function resolveAuthWebBaseUrl(baseURL, authWebUrl) {
57
+ if (authWebUrl) {
58
+ return authWebUrl;
59
+ }
60
+ try {
61
+ const url = new URL(baseURL);
62
+ if (url.port === '3001') {
63
+ url.port = '3002';
64
+ return url.origin;
65
+ }
66
+ if (url.hostname.startsWith('api.')) {
67
+ url.hostname = `auth.${url.hostname.slice(4)}`;
68
+ return url.origin;
69
+ }
70
+ } catch {
71
+ // Malformed base URL — fall back to the default origin below.
72
+ }
73
+ return OXY_AUTH_WEB_URL;
74
+ }
75
+
76
+ /**
77
+ * Resolve the deep-link redirect URI used on native so the auth web flow can
78
+ * bounce back into the app. Prefers an explicit config value, otherwise derives
79
+ * a clean (query/hash-stripped) URI from the app's initial deep link.
80
+ */
81
+ async function resolveAuthRedirectUri(authRedirectUri) {
82
+ if (authRedirectUri) {
83
+ return authRedirectUri;
84
+ }
85
+ try {
86
+ const initialUrl = await Linking.getInitialURL();
87
+ if (!initialUrl) {
88
+ return null;
89
+ }
90
+ const parsed = new URL(initialUrl);
91
+ parsed.search = '';
92
+ parsed.hash = '';
93
+ return parsed.toString();
94
+ } catch {
95
+ return null;
96
+ }
97
+ }
98
+
99
+ /** Parse the `session_id` / `error` params from a deep-link redirect URL. */
100
+ function getRedirectParams(url) {
101
+ try {
102
+ const parsed = new URL(url);
103
+ const sessionId = parsed.searchParams.get('session_id') ?? undefined;
104
+ const error = parsed.searchParams.get('error') ?? undefined;
105
+ if (!sessionId && !error) {
106
+ return null;
107
+ }
108
+ return {
109
+ sessionId,
110
+ error
111
+ };
112
+ } catch {
113
+ return null;
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Generate a cryptographically random session token.
119
+ *
120
+ * 16 random bytes -> 32 hex chars (128 bits of entropy) — unguessable.
121
+ * `crypto.getRandomValues` is guaranteed available because importing
122
+ * `@oxyhq/core` installs a polyfill via `expo-crypto` on React Native. This is
123
+ * the secure generator the web modal already used; the native screen previously
124
+ * used a weaker `Math.random()` generator, which this consolidation removes.
125
+ */
126
+ function generateSessionToken() {
127
+ const bytes = new Uint8Array(16);
128
+ crypto.getRandomValues(bytes);
129
+ return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
130
+ }
131
+
132
+ /**
133
+ * Owns the full device-flow auth-session lifecycle for one mounted sign-in
134
+ * surface. Both `SignInModal` and `OxyAuthScreen` consume this; neither
135
+ * re-implements the socket / polling / deep-link transport.
136
+ *
137
+ * Subscriptions (socket connect/disconnect, the poll interval, the native
138
+ * deep-link listener, and unmount cleanup) are the legitimate `useEffect` use
139
+ * WITH cleanup. No effect here computes derived UI state.
140
+ */
141
+ export function useOxyAuthSession(oxyServices, clientId, switchSession, options = {}) {
142
+ const {
143
+ onSignedIn
144
+ } = options;
145
+ const [authSession, setAuthSession] = useState(null);
146
+ const [isLoading, setIsLoading] = useState(true);
147
+ const [error, setError] = useState(null);
148
+ const [isWaiting, setIsWaiting] = useState(false);
149
+ const socketRef = useRef(null);
150
+ const pollingIntervalRef = useRef(null);
151
+ const isProcessingRef = useRef(false);
152
+ const linkingHandledRef = useRef(false);
153
+
154
+ // The latest `onSignedIn` callback, read via ref so the success handler does
155
+ // not need it in its dependency list (which would otherwise rebuild the
156
+ // socket/poll callbacks on every render where the container passes a new
157
+ // closure).
158
+ const onSignedInRef = useRef(onSignedIn);
159
+ onSignedInRef.current = onSignedIn;
160
+
161
+ // Cleanup socket and polling. Idempotent.
162
+ const cleanup = useCallback(() => {
163
+ setIsWaiting(false);
164
+ if (socketRef.current) {
165
+ socketRef.current.disconnect();
166
+ socketRef.current = null;
167
+ }
168
+ if (pollingIntervalRef.current) {
169
+ clearInterval(pollingIntervalRef.current);
170
+ pollingIntervalRef.current = null;
171
+ }
172
+ }, []);
173
+
174
+ // Handle successful authorization.
175
+ //
176
+ // The auth-session socket / poll (or deep-link return) hands us the
177
+ // authorized `sessionId`. Before any session-management code can use it we
178
+ // MUST first exchange the secret `sessionToken` (held only by this client,
179
+ // generated for THIS flow) for the first access token via
180
+ // `claimSessionByToken` — the device-flow equivalent of OAuth's
181
+ // code-for-token exchange (RFC 8628 §3.4).
182
+ //
183
+ // Without that exchange the SDK has no bearer token — the session is
184
+ // authorized server-side but the app never becomes authenticated and the UI
185
+ // sits "Waiting for authorization..." forever. Once `claimSessionByToken`
186
+ // plants the tokens in the HttpService, the rest of the session wiring flows
187
+ // through the normal `switchSession` path. Shared with both containers via
188
+ // `completeDeviceFlowSignIn` so the two paths cannot drift.
189
+ const handleAuthSuccess = useCallback(async (sessionId, sessionToken) => {
190
+ if (isProcessingRef.current) return;
191
+ isProcessingRef.current = true;
192
+ try {
193
+ if (!switchSession) {
194
+ throw new Error('Session management unavailable');
195
+ }
196
+ const user = await completeDeviceFlowSignIn({
197
+ oxyServices,
198
+ sessionId,
199
+ sessionToken,
200
+ switchSession
201
+ });
202
+ onSignedInRef.current?.(user);
203
+ } catch (err) {
204
+ debug.error('Error completing auth:', err);
205
+ setError('Authorization successful but failed to complete sign in. Please try again.');
206
+ isProcessingRef.current = false;
207
+ }
208
+ }, [oxyServices, switchSession]);
209
+
210
+ // Start polling for authorization.
211
+ //
212
+ // Idempotent: if a poll interval is already running this is a no-op, so the
213
+ // `connect_error` path (which also calls this) cannot stack a second interval
214
+ // on top of the always-on poll started in `generateAuthSession`.
215
+ const startPolling = useCallback(sessionToken => {
216
+ if (pollingIntervalRef.current) return;
217
+ pollingIntervalRef.current = setInterval(async () => {
218
+ if (isProcessingRef.current) return;
219
+ try {
220
+ const response = await oxyServices.makeRequest('GET', `/auth/session/status/${sessionToken}`, undefined, {
221
+ cache: false
222
+ });
223
+ if (response.authorized && response.sessionId) {
224
+ cleanup();
225
+ // Pass the original sessionToken (in closure) through; the claim
226
+ // exchange needs it to mint the first access token.
227
+ handleAuthSuccess(response.sessionId, sessionToken);
228
+ } else if (response.status === 'cancelled') {
229
+ cleanup();
230
+ setError('Authorization was denied.');
231
+ } else if (response.status === 'expired') {
232
+ cleanup();
233
+ setError('Session expired. Please try again.');
234
+ }
235
+ } catch (err) {
236
+ // Transient poll error — the next tick retries. Logged, never thrown.
237
+ debug.log('Auth polling error:', err);
238
+ }
239
+ }, POLLING_INTERVAL_MS);
240
+ }, [oxyServices, handleAuthSuccess, cleanup]);
241
+
242
+ // Connect to the auth-session socket for real-time updates.
243
+ const connectSocket = useCallback(sessionToken => {
244
+ const baseURL = oxyServices.getBaseURL();
245
+
246
+ // Connect to the auth-session namespace (no authentication required).
247
+ const socket = io(`${baseURL}/auth-session`, {
248
+ transports: ['websocket', 'polling'],
249
+ reconnection: true,
250
+ reconnectionAttempts: 3,
251
+ reconnectionDelay: 1000
252
+ });
253
+ socketRef.current = socket;
254
+ socket.on('connect', () => {
255
+ debug.log('Auth socket connected');
256
+ socket.emit('join', sessionToken);
257
+ });
258
+ socket.on('joined', () => {
259
+ debug.log('Joined auth session room');
260
+ });
261
+ socket.on('auth_update', payload => {
262
+ debug.log('Auth update received:', payload);
263
+ if (payload.status === 'authorized' && payload.sessionId) {
264
+ cleanup();
265
+ // `sessionToken` is this flow's secret credential (in closure) — pass
266
+ // it through so `handleAuthSuccess` can claim the first access token.
267
+ handleAuthSuccess(payload.sessionId, sessionToken);
268
+ } else if (payload.status === 'cancelled') {
269
+ cleanup();
270
+ setError('Authorization was denied.');
271
+ } else if (payload.status === 'expired') {
272
+ cleanup();
273
+ setError('Session expired. Please try again.');
274
+ }
275
+ });
276
+ socket.on('connect_error', err => {
277
+ debug.log('Socket connection error, falling back to polling:', err instanceof Error ? err.message : null);
278
+ // Realtime transport errored — fall back to polling. The poll is
279
+ // already running (started unconditionally in `generateAuthSession`),
280
+ // so `startPolling` here is a no-op backstop.
281
+ socket.disconnect();
282
+ startPolling(sessionToken);
283
+ });
284
+ socket.on('disconnect', () => {
285
+ debug.log('Auth socket disconnected');
286
+ });
287
+ }, [oxyServices, handleAuthSuccess, cleanup, startPolling]);
288
+
289
+ // Generate a new auth session.
290
+ const generateAuthSession = useCallback(async () => {
291
+ setIsLoading(true);
292
+ setError(null);
293
+ isProcessingRef.current = false;
294
+
295
+ // The cross-app device sign-in flow identifies the requesting app by its
296
+ // real registered OAuth client id (ApplicationCredential publicKey).
297
+ // Without it the API cannot resolve the consent identity, so we fail fast
298
+ // with a clear configuration error rather than creating a session the
299
+ // server would reject.
300
+ if (!clientId) {
301
+ setError('This app is not configured for sign-in (missing clientId).');
302
+ setIsLoading(false);
303
+ return;
304
+ }
305
+ try {
306
+ const sessionToken = generateSessionToken();
307
+ const expiresAt = Date.now() + AUTH_SESSION_EXPIRY_MS;
308
+
309
+ // Register the auth session with the server.
310
+ await oxyServices.makeRequest('POST', '/auth/session/create', {
311
+ sessionToken,
312
+ expiresAt,
313
+ clientId
314
+ }, {
315
+ cache: false
316
+ });
317
+ setAuthSession({
318
+ sessionToken,
319
+ expiresAt
320
+ });
321
+ setIsWaiting(true);
322
+
323
+ // Socket is the fast path; the poll is a transport-independent backstop
324
+ // that guarantees completion even if the socket connects but silently
325
+ // never delivers auth_update (RN transport / idle-timeout).
326
+ connectSocket(sessionToken);
327
+ startPolling(sessionToken);
328
+ } catch (err) {
329
+ setError((err instanceof Error ? err.message : null) || 'Failed to create auth session');
330
+ } finally {
331
+ setIsLoading(false);
332
+ }
333
+ }, [oxyServices, connectSocket, startPolling, clientId]);
334
+
335
+ // Open the central Oxy auth approval surface for this device-flow session.
336
+ // On web this is a centered popup; on native it opens the system browser,
337
+ // carrying a `redirect_uri` so the deep-link return path can complete the
338
+ // flow even if the socket/poll is slow.
339
+ const openAuthApproval = useCallback(async () => {
340
+ if (!authSession) return;
341
+ const authBaseUrl = resolveAuthWebBaseUrl(oxyServices.getBaseURL(), oxyServices.config?.authWebUrl);
342
+ const webUrl = new URL('/authorize', authBaseUrl);
343
+ webUrl.searchParams.set('token', authSession.sessionToken);
344
+ if (Platform.OS === 'web') {
345
+ // Open a separate approval window on web for the device-flow token.
346
+ const width = 500;
347
+ const height = 650;
348
+ const screenWidth = window.screen?.width ?? width;
349
+ const screenHeight = window.screen?.height ?? height;
350
+ const left = (screenWidth - width) / 2;
351
+ const top = (screenHeight - height) / 2;
352
+ window.open(webUrl.toString(), 'oxy-auth-approval', `width=${width},height=${height},left=${left},top=${top}`);
353
+ return;
354
+ }
355
+
356
+ // Native: carry a redirect URI so the auth web flow can bounce back in.
357
+ const redirectUri = await resolveAuthRedirectUri(oxyServices.config?.authRedirectUri);
358
+ if (redirectUri) {
359
+ webUrl.searchParams.set('redirect_uri', redirectUri);
360
+ }
361
+ try {
362
+ await Linking.openURL(webUrl.toString());
363
+ } catch (err) {
364
+ debug.error('Unable to open Oxy Auth:', err);
365
+ setError('Unable to open Oxy Auth. Please try again or use the QR code.');
366
+ }
367
+ }, [authSession, oxyServices]);
368
+
369
+ // Tear down and recreate the session (the retry action).
370
+ const retry = useCallback(() => {
371
+ cleanup();
372
+ generateAuthSession();
373
+ }, [generateAuthSession, cleanup]);
374
+
375
+ // Handle a native deep-link return carrying the authorized session_id.
376
+ const handleAuthRedirect = useCallback(url => {
377
+ const params = getRedirectParams(url);
378
+ if (!params) {
379
+ return;
380
+ }
381
+ if (params.error) {
382
+ cleanup();
383
+ setError('Authorization was denied.');
384
+ return;
385
+ }
386
+ if (params.sessionId) {
387
+ // The deep-link return carries only `session_id` — the secret
388
+ // `sessionToken` for this flow lives in component state (generated in
389
+ // `generateAuthSession`). Without it we cannot claim the first access
390
+ // token, so the flow would 401 in `handleAuthSuccess`. If it is somehow
391
+ // unavailable, fall through to the socket/poll path (which carries the
392
+ // token in closure) rather than attempting an unauthenticated claim.
393
+ const flowSessionToken = authSession?.sessionToken;
394
+ if (!flowSessionToken) {
395
+ return;
396
+ }
397
+ cleanup();
398
+ handleAuthSuccess(params.sessionId, flowSessionToken);
399
+ }
400
+ }, [authSession, cleanup, handleAuthSuccess]);
401
+
402
+ // Initialize the auth session once on mount.
403
+ // biome-ignore lint/correctness/useExhaustiveDependencies: this must run exactly once on mount; re-running on `generateAuthSession` identity changes would recreate the session mid-flow.
404
+ useEffect(() => {
405
+ generateAuthSession();
406
+ // eslint-disable-next-line react-hooks/exhaustive-deps
407
+ }, []);
408
+
409
+ // Native-only: handle the deep-link return from the auth web flow. Gated to
410
+ // native so the web container never carries this listener. The socket / poll
411
+ // path still resolves the flow if no deep link arrives.
412
+ useEffect(() => {
413
+ if (Platform.OS === 'web') {
414
+ return;
415
+ }
416
+ const subscription = Linking.addEventListener('url', ({
417
+ url
418
+ }) => {
419
+ linkingHandledRef.current = true;
420
+ handleAuthRedirect(url);
421
+ });
422
+ Linking.getInitialURL().then(url => {
423
+ if (url && !linkingHandledRef.current) {
424
+ handleAuthRedirect(url);
425
+ }
426
+ }).catch(() => {
427
+ // Ignore linking errors; auth will still resolve via socket/polling.
428
+ });
429
+ return () => {
430
+ subscription.remove();
431
+ };
432
+ }, [handleAuthRedirect]);
433
+
434
+ // Clean up subscriptions on unmount.
435
+ useEffect(() => {
436
+ return () => {
437
+ cleanup();
438
+ };
439
+ }, [cleanup]);
440
+ const qrData = authSession ? `oxyauth://${authSession.sessionToken}` : '';
441
+ return {
442
+ authSession,
443
+ qrData,
444
+ isLoading,
445
+ error,
446
+ isWaiting,
447
+ openAuthApproval,
448
+ retry,
449
+ cleanup
450
+ };
451
+ }
452
+ //# sourceMappingURL=useOxyAuthSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useEffect","useCallback","useRef","Linking","Platform","io","createDebugLogger","completeDeviceFlowSignIn","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","generateSessionToken","bytes","Uint8Array","crypto","getRandomValues","Array","from","b","padStart","join","useOxyAuthSession","oxyServices","clientId","switchSession","options","onSignedIn","authSession","setAuthSession","isLoading","setIsLoading","setError","isWaiting","setIsWaiting","socketRef","pollingIntervalRef","isProcessingRef","linkingHandledRef","onSignedInRef","current","cleanup","disconnect","clearInterval","handleAuthSuccess","sessionToken","Error","user","err","startPolling","setInterval","response","makeRequest","cache","authorized","status","log","connectSocket","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","emit","payload","message","generateAuthSession","expiresAt","Date","now","openAuthApproval","authBaseUrl","config","webUrl","set","OS","width","height","screenWidth","window","screen","screenHeight","left","top","open","redirectUri","openURL","retry","handleAuthRedirect","params","flowSessionToken","subscription","addEventListener","then","catch","remove","qrData"],"sourceRoot":"../../../../src","sources":["ui/hooks/useOxyAuthSession.ts"],"mappings":"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","ignoreList":[]}