@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.
Files changed (38) hide show
  1. package/lib/commonjs/ui/components/SignInModal.js +24 -11
  2. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  3. package/lib/commonjs/ui/context/OxyContext.js +5 -1
  4. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  5. package/lib/commonjs/ui/screens/OxyAuthScreen.js +66 -25
  6. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  7. package/lib/commonjs/utils/deviceFlowSignIn.js +55 -0
  8. package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -0
  9. package/lib/module/ui/components/SignInModal.js +24 -11
  10. package/lib/module/ui/components/SignInModal.js.map +1 -1
  11. package/lib/module/ui/context/OxyContext.js +5 -1
  12. package/lib/module/ui/context/OxyContext.js.map +1 -1
  13. package/lib/module/ui/screens/OxyAuthScreen.js +66 -25
  14. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  15. package/lib/module/utils/deviceFlowSignIn.js +51 -0
  16. package/lib/module/utils/deviceFlowSignIn.js.map +1 -0
  17. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  18. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +1 -1
  19. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  21. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  22. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +61 -0
  24. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -0
  25. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  26. package/lib/typescript/module/ui/context/OxyContext.d.ts +1 -1
  27. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  28. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  29. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  30. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  31. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +61 -0
  32. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -0
  33. package/package.json +1 -1
  34. package/src/ui/components/SignInModal.tsx +25 -11
  35. package/src/ui/context/OxyContext.tsx +8 -4
  36. package/src/ui/screens/OxyAuthScreen.tsx +67 -25
  37. package/src/utils/__tests__/deviceFlowSignIn.test.ts +104 -0
  38. 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
- const handleAuthSuccess = useCallback(async sessionId => {
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
- // Switch to the new session (this will get token, user data, and update state)
117
- if (switchSession) {
118
- const user = await switchSession(sessionId);
119
- if (onAuthenticated) {
120
- onAuthenticated(user);
121
- }
122
- } else {
123
- // Fallback if switchSession not available (shouldn't happen, but for safety)
124
- await oxyServices.getTokenBySession(sessionId);
125
- const user = await oxyServices.getUserBySession(sessionId);
126
- if (onAuthenticated) {
127
- onAuthenticated(user);
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
- handleAuthSuccess(payload.sessionId);
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
- // Fall back to polling if socket fails
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 (fallback)
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
- setConnectionType('polling');
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
- handleAuthSuccess(response.sessionId);
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
- // Try socket first, will fall back to polling if needed
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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAChE,SACEC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,OAAO,EACPC,QAAQ,QACH,cAAc;AACrB,OAAOC,EAAE,MAAuB,kBAAkB;AAElD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,OAAO,MAAM,0BAAuB;AAC3C,SAASC,iBAAiB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhD,MAAMC,KAAK,GAAGL,iBAAiB,CAAC,eAAe,CAAC;AAEhD,MAAMM,oBAAoB,GAAG,yBAAyB;AACtD,MAAMC,gBAAgB,GAAG,qBAAqB;;AAE9C;AACA,MAAMC,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;;AAE5C;AACA,MAAMC,mBAAmB,GAAG,IAAI;AAehC,MAAMC,qBAAqB,GAAGA,CAACC,OAAe,EAAEC,UAAmB,KAAa;EAC9E,IAAIA,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,IAAI;IACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,OAAO,CAAC;IAC5B,IAAIE,GAAG,CAACE,IAAI,KAAK,MAAM,EAAE;MACvBF,GAAG,CAACE,IAAI,GAAG,MAAM;MACjB,OAAOF,GAAG,CAACG,MAAM;IACnB;IACA,IAAIH,GAAG,CAACI,QAAQ,CAACC,UAAU,CAAC,MAAM,CAAC,EAAE;MACnCL,GAAG,CAACI,QAAQ,GAAG,QAAQJ,GAAG,CAACI,QAAQ,CAACE,KAAK,CAAC,CAAC,CAAC,EAAE;MAC9C,OAAON,GAAG,CAACG,MAAM;IACnB;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,OAAOT,gBAAgB;AACzB,CAAC;AAED,MAAMa,sBAAsB,GAAG,MAAOC,eAAwB,IAA6B;EACzF,IAAIA,eAAe,EAAE;IACnB,OAAOA,eAAe;EACxB;EAEA,IAAI;IACF,MAAMC,UAAU,GAAG,MAAM/B,OAAO,CAACgC,aAAa,CAAC,CAAC;IAChD,IAAI,CAACD,UAAU,EAAE;MACf,OAAO,IAAI;IACb;IAEA,MAAME,MAAM,GAAG,IAAIV,GAAG,CAACQ,UAAU,CAAC;IAClCE,MAAM,CAACC,MAAM,GAAG,EAAE;IAClBD,MAAM,CAACE,IAAI,GAAG,EAAE;IAChB,OAAOF,MAAM,CAACG,QAAQ,CAAC,CAAC;EAC1B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMC,iBAAiB,GAAIf,GAAW,IAAoD;EACxF,IAAI;IACF,MAAMW,MAAM,GAAG,IAAIV,GAAG,CAACD,GAAG,CAAC;IAC3B,MAAMgB,SAAS,GAAGL,MAAM,CAACM,YAAY,CAACC,GAAG,CAAC,YAAY,CAAC,IAAIC,SAAS;IACpE,MAAMC,KAAK,GAAGT,MAAM,CAACM,YAAY,CAACC,GAAG,CAAC,OAAO,CAAC,IAAIC,SAAS;IAE3D,IAAI,CAACH,SAAS,IAAI,CAACI,KAAK,EAAE;MACxB,OAAO,IAAI;IACb;IAEA,OAAO;MAAEJ,SAAS;MAAEI;IAAM,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMC,aAAwC,GAAGA,CAAC;EAChDC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAG7C,QAAQ,CAAC,CAAC;EAC7B,MAAM;IAAE8C,WAAW;IAAEC,MAAM;IAAEC,aAAa;IAAEC;EAAS,CAAC,GAAG9C,MAAM,CAAC,CAAC;EAEjE,MAAM,CAAC+C,WAAW,EAAEC,cAAc,CAAC,GAAG9D,QAAQ,CAAqB,IAAI,CAAC;EACxE,MAAM,CAAC+D,SAAS,EAAEC,YAAY,CAAC,GAAGhE,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACkD,KAAK,EAAEe,QAAQ,CAAC,GAAGjE,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACkE,SAAS,EAAEC,YAAY,CAAC,GAAGnE,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACoE,cAAc,EAAEC,iBAAiB,CAAC,GAAGrE,QAAQ,CAAuB,QAAQ,CAAC;EAEpF,MAAMsE,SAAS,GAAGnE,MAAM,CAAgB,IAAI,CAAC;EAC7C,MAAMoE,kBAAkB,GAAGpE,MAAM,CAAwC,IAAI,CAAC;EAC9E,MAAMqE,eAAe,GAAGrE,MAAM,CAAC,KAAK,CAAC;EACrC,MAAMsE,iBAAiB,GAAGtE,MAAM,CAAC,KAAK,CAAC;;EAEvC;EACA,MAAMuE,iBAAiB,GAAGxE,WAAW,CAAC,MAAO4C,SAAiB,IAAK;IACjE,IAAI0B,eAAe,CAACG,OAAO,EAAE;IAC7BH,eAAe,CAACG,OAAO,GAAG,IAAI;IAE9B,IAAI;MACF;MACA,IAAIhB,aAAa,EAAE;QACjB,MAAMiB,IAAI,GAAG,MAAMjB,aAAa,CAACb,SAAS,CAAC;QAC3C,IAAIQ,eAAe,EAAE;UACnBA,eAAe,CAACsB,IAAI,CAAC;QACvB;MACF,CAAC,MAAM;QACL;QACA,MAAMnB,WAAW,CAACoB,iBAAiB,CAAC/B,SAAS,CAAC;QAC9C,MAAM8B,IAAI,GAAG,MAAMnB,WAAW,CAACqB,gBAAgB,CAAChC,SAAS,CAAC;QAC1D,IAAIQ,eAAe,EAAE;UACnBA,eAAe,CAACsB,IAAI,CAAC;QACvB;MACF;IACF,CAAC,CAAC,OAAOG,GAAG,EAAE;MACZzD,KAAK,CAAC4B,KAAK,CAAC,wBAAwB,EAAE6B,GAAG,CAAC;MAC1Cd,QAAQ,CAAC,4EAA4E,CAAC;MACtFO,eAAe,CAACG,OAAO,GAAG,KAAK;IACjC;EACF,CAAC,EAAE,CAAClB,WAAW,EAAEE,aAAa,EAAEL,eAAe,CAAC,CAAC;;EAEjD;EACA,MAAM0B,aAAa,GAAG9E,WAAW,CAAE+E,YAAoB,IAAK;IAC1D,MAAMrD,OAAO,GAAG6B,WAAW,CAACyB,UAAU,CAAC,CAAC;;IAExC;IACA,MAAMC,MAAM,GAAGzE,EAAE,CAAC,GAAGkB,OAAO,eAAe,EAAE;MAC3CwD,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;MACpCC,YAAY,EAAE,IAAI;MAClBC,oBAAoB,EAAE,CAAC;MACvBC,iBAAiB,EAAE;IACrB,CAAC,CAAC;IAEFjB,SAAS,CAACK,OAAO,GAAGQ,MAAM;IAE1BA,MAAM,CAACK,EAAE,CAAC,SAAS,EAAE,MAAM;MACzBlE,KAAK,CAACmE,GAAG,CAAC,uBAAuB,CAAC;MAClC;MACAN,MAAM,CAACO,IAAI,CAAC,MAAM,EAAET,YAAY,CAAC;MACjCZ,iBAAiB,CAAC,QAAQ,CAAC;IAC7B,CAAC,CAAC;IAEFc,MAAM,CAACK,EAAE,CAAC,QAAQ,EAAE,MAAM;MACxBlE,KAAK,CAACmE,GAAG,CAAC,0BAA0B,CAAC;IACvC,CAAC,CAAC;IAEFN,MAAM,CAACK,EAAE,CAAC,aAAa,EAAGG,OAA0B,IAAK;MACvDrE,KAAK,CAACmE,GAAG,CAAC,uBAAuB,EAAEE,OAAO,CAAC;MAE3C,IAAIA,OAAO,CAACC,MAAM,KAAK,YAAY,IAAID,OAAO,CAAC7C,SAAS,EAAE;QACxD+C,OAAO,CAAC,CAAC;QACTnB,iBAAiB,CAACiB,OAAO,CAAC7C,SAAS,CAAC;MACtC,CAAC,MAAM,IAAI6C,OAAO,CAACC,MAAM,KAAK,WAAW,EAAE;QACzCC,OAAO,CAAC,CAAC;QACT5B,QAAQ,CAAC,2BAA2B,CAAC;MACvC,CAAC,MAAM,IAAI0B,OAAO,CAACC,MAAM,KAAK,SAAS,EAAE;QACvCC,OAAO,CAAC,CAAC;QACT5B,QAAQ,CAAC,oCAAoC,CAAC;MAChD;IACF,CAAC,CAAC;IAEFkB,MAAM,CAACK,EAAE,CAAC,eAAe,EAAGT,GAAG,IAAK;MAClCzD,KAAK,CAACmE,GAAG,CAAC,mDAAmD,EAAGV,GAAG,YAAYe,KAAK,GAAGf,GAAG,CAACgB,OAAO,GAAG,IAAK,CAAC;MAC3G;MACAZ,MAAM,CAACa,UAAU,CAAC,CAAC;MACnBC,YAAY,CAAChB,YAAY,CAAC;IAC5B,CAAC,CAAC;IAEFE,MAAM,CAACK,EAAE,CAAC,YAAY,EAAE,MAAM;MAC5BlE,KAAK,CAACmE,GAAG,CAAC,0BAA0B,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChC,WAAW,EAAEiB,iBAAiB,CAAC,CAAC;;EAEpC;EACA,MAAMuB,YAAY,GAAG/F,WAAW,CAAE+E,YAAoB,IAAK;IACzDZ,iBAAiB,CAAC,SAAS,CAAC;IAE5BE,kBAAkB,CAACI,OAAO,GAAGuB,WAAW,CAAC,YAAY;MACnD,IAAI1B,eAAe,CAACG,OAAO,EAAE;MAE7B,IAAI;QACF,MAAMwB,QAKL,GAAG,MAAM1C,WAAW,CAAC2C,WAAW,CAAC,KAAK,EAAE,wBAAwBnB,YAAY,EAAE,EAAEhC,SAAS,EAAE;UAAEoD,KAAK,EAAE;QAAM,CAAC,CAAC;QAE7G,IAAIF,QAAQ,CAACG,UAAU,IAAIH,QAAQ,CAACrD,SAAS,EAAE;UAC7C+C,OAAO,CAAC,CAAC;UACTnB,iBAAiB,CAACyB,QAAQ,CAACrD,SAAS,CAAC;QACvC,CAAC,MAAM,IAAIqD,QAAQ,CAACP,MAAM,KAAK,WAAW,EAAE;UAC1CC,OAAO,CAAC,CAAC;UACT5B,QAAQ,CAAC,2BAA2B,CAAC;QACvC,CAAC,MAAM,IAAIkC,QAAQ,CAACP,MAAM,KAAK,SAAS,EAAE;UACxCC,OAAO,CAAC,CAAC;UACT5B,QAAQ,CAAC,oCAAoC,CAAC;QAChD;MACF,CAAC,CAAC,OAAOc,GAAG,EAAE;QACZ;QACAzD,KAAK,CAACmE,GAAG,CAAC,qBAAqB,EAAEV,GAAG,CAAC;MACvC;IACF,CAAC,EAAErD,mBAAmB,CAAC;EACzB,CAAC,EAAE,CAAC+B,WAAW,EAAEiB,iBAAiB,CAAC,CAAC;;EAEpC;EACA,MAAMmB,OAAO,GAAG3F,WAAW,CAAC,MAAM;IAChCiE,YAAY,CAAC,KAAK,CAAC;IAEnB,IAAIG,SAAS,CAACK,OAAO,EAAE;MACrBL,SAAS,CAACK,OAAO,CAACqB,UAAU,CAAC,CAAC;MAC9B1B,SAAS,CAACK,OAAO,GAAG,IAAI;IAC1B;IAEA,IAAIJ,kBAAkB,CAACI,OAAO,EAAE;MAC9B4B,aAAa,CAAChC,kBAAkB,CAACI,OAAO,CAAC;MACzCJ,kBAAkB,CAACI,OAAO,GAAG,IAAI;IACnC;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAM6B,mBAAmB,GAAGtG,WAAW,CAAC,YAAY;IAClD8D,YAAY,CAAC,IAAI,CAAC;IAClBC,QAAQ,CAAC,IAAI,CAAC;IACdO,eAAe,CAACG,OAAO,GAAG,KAAK;;IAE/B;IACA;IACA;IACA;IACA;IACA,IAAI,CAACf,QAAQ,EAAE;MACbK,QAAQ,CAAC,4DAA4D,CAAC;MACtED,YAAY,CAAC,KAAK,CAAC;MACnB;IACF;IAEA,IAAI;MACF;MACA,MAAMiB,YAAY,GAAGwB,oBAAoB,CAAC,CAAC;MAC3C,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGnF,sBAAsB;;MAErD;MACA,MAAMgC,WAAW,CAAC2C,WAAW,CAAC,MAAM,EAAE,sBAAsB,EAAE;QAC5DnB,YAAY;QACZyB,SAAS;QACT9C;MACF,CAAC,EAAE;QAAEyC,KAAK,EAAE;MAAM,CAAC,CAAC;MAEpBvC,cAAc,CAAC;QAAEmB,YAAY;QAAEyB;MAAU,CAAC,CAAC;MAC3CvC,YAAY,CAAC,IAAI,CAAC;;MAElB;MACAa,aAAa,CAACC,YAAY,CAAC;IAC7B,CAAC,CAAC,OAAOF,GAAY,EAAE;MACrBd,QAAQ,CAAC,CAACc,GAAG,YAAYe,KAAK,GAAGf,GAAG,CAACgB,OAAO,GAAG,IAAI,KAAK,+BAA+B,CAAC;IAC1F,CAAC,SAAS;MACR/B,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACP,WAAW,EAAEuB,aAAa,EAAEpB,QAAQ,CAAC,CAAC;;EAE1C;EACA,MAAM6C,oBAAoB,GAAGA,CAAA,KAAc;IACzC,MAAMI,KAAK,GAAG,gEAAgE;IAC9E,IAAIC,MAAM,GAAG,EAAE;IACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;MAC3BD,MAAM,IAAID,KAAK,CAACG,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAGN,KAAK,CAACO,MAAM,CAAC,CAAC;IAClE;IACA,OAAON,MAAM;EACf,CAAC;;EAED;EACA7G,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX4F,OAAO,CAAC,CAAC;IACX,CAAC;EACH,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;;EAEb;EACA5F,SAAS,CAAC,MAAM;IACduG,mBAAmB,CAAC,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAvG,SAAS,CAAC,MAAM;IACd,IAAI4D,WAAW,IAAI8C,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG/C,WAAW,CAAC6C,SAAS,EAAE;MACrDb,OAAO,CAAC,CAAC;MACT/B,cAAc,CAAC,IAAI,CAAC;MACpBG,QAAQ,CAAC,oCAAoC,CAAC;IAChD;EACF,CAAC,EAAE,CAACJ,WAAW,EAAEgC,OAAO,CAAC,CAAC;;EAE1B;EACA,MAAMwB,SAAS,GAAGA,CAAA,KAAc;IAC9B,IAAI,CAACxD,WAAW,EAAE,OAAO,EAAE;;IAE3B;IACA,OAAO,aAAaA,WAAW,CAACoB,YAAY,EAAE;EAChD,CAAC;;EAED;EACA,MAAMqC,cAAc,GAAGpH,WAAW,CAAC,YAAY;IAC7C,IAAI,CAAC2D,WAAW,EAAE;IAElB,MAAM0D,WAAW,GAAG5F,qBAAqB,CACvC8B,WAAW,CAACyB,UAAU,CAAC,CAAC,EACxBzB,WAAW,CAAC+D,MAAM,EAAE3F,UACtB,CAAC;IACD,MAAM4F,MAAM,GAAG,IAAI1F,GAAG,CAAC,YAAY,EAAEwF,WAAW,CAAC;IACjDE,MAAM,CAAC1E,YAAY,CAAC2E,GAAG,CAAC,OAAO,EAAE7D,WAAW,CAACoB,YAAY,CAAC;IAC1D,MAAM0C,WAAW,GAAG,MAAMtF,sBAAsB,CAACoB,WAAW,CAAC+D,MAAM,EAAElF,eAAe,CAAC;IACrF,IAAIqF,WAAW,EAAE;MACfF,MAAM,CAAC1E,YAAY,CAAC2E,GAAG,CAAC,cAAc,EAAEC,WAAW,CAAC;IACtD;IAEA,IAAI;MACF,MAAMnH,OAAO,CAACoH,OAAO,CAACH,MAAM,CAAC7E,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,OAAOmC,GAAG,EAAE;MACZd,QAAQ,CAAC,+DAA+D,CAAC;IAC3E;EACF,CAAC,EAAE,CAACJ,WAAW,EAAEJ,WAAW,CAAC,CAAC;;EAE9B;EACA,MAAMoE,aAAa,GAAG3H,WAAW,CAAC,MAAM;IACtC2F,OAAO,CAAC,CAAC;IACTW,mBAAmB,CAAC,CAAC;EACvB,CAAC,EAAE,CAACA,mBAAmB,EAAEX,OAAO,CAAC,CAAC;EAElC,MAAMiC,kBAAkB,GAAG5H,WAAW,CAAE4B,GAAW,IAAK;IACtD,MAAMiG,MAAM,GAAGlF,iBAAiB,CAACf,GAAG,CAAC;IACrC,IAAI,CAACiG,MAAM,EAAE;MACX;IACF;IAEA,IAAIA,MAAM,CAAC7E,KAAK,EAAE;MAChB2C,OAAO,CAAC,CAAC;MACT5B,QAAQ,CAAC,2BAA2B,CAAC;MACrC;IACF;IAEA,IAAI8D,MAAM,CAACjF,SAAS,EAAE;MACpB+C,OAAO,CAAC,CAAC;MACTnB,iBAAiB,CAACqD,MAAM,CAACjF,SAAS,CAAC;IACrC;EACF,CAAC,EAAE,CAAC+C,OAAO,EAAEnB,iBAAiB,CAAC,CAAC;EAEhCzE,SAAS,CAAC,MAAM;IACd,IAAIQ,QAAQ,CAACuH,EAAE,KAAK,KAAK,EAAE;MACzB;IACF;IAEA,MAAMC,YAAY,GAAGzH,OAAO,CAAC0H,gBAAgB,CAAC,KAAK,EAAE,CAAC;MAAEpG;IAAI,CAAC,KAAK;MAChE2C,iBAAiB,CAACE,OAAO,GAAG,IAAI;MAChCmD,kBAAkB,CAAChG,GAAG,CAAC;IACzB,CAAC,CAAC;IAEFtB,OAAO,CAACgC,aAAa,CAAC,CAAC,CACpB2F,IAAI,CAAErG,GAAG,IAAK;MACb,IAAIA,GAAG,IAAI,CAAC2C,iBAAiB,CAACE,OAAO,EAAE;QACrCmD,kBAAkB,CAAChG,GAAG,CAAC;MACzB;IACF,CAAC,CAAC,CACDsG,KAAK,CAAC,MAAM;MACX;IAAA,CACD,CAAC;IAEJ,OAAO,MAAM;MACXH,YAAY,CAACI,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACP,kBAAkB,CAAC,CAAC;EAExB,IAAI/D,SAAS,EAAE;IACb,oBACE1C,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;QAAEC,eAAe,EAAEjF,UAAU,CAACkF,MAAM,CAACC;MAAW,CAAC,CAAE;MAAAC,QAAA,gBACjFzH,IAAA,CAACN,OAAO;QAACgI,IAAI,EAAC;MAAO,CAAE,CAAC,eACxB1H,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACO,WAAY;QAACC,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAEnE,CAAM,CAAC;IAAA,CACH,CAAC;EAEX;EAEA,IAAI1F,KAAK,EAAE;IACT,oBACE7B,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;QAAEC,eAAe,EAAEjF,UAAU,CAACkF,MAAM,CAACC;MAAW,CAAC,CAAE;MAAAC,QAAA,gBACjFzH,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACS,SAAU;QAACD,SAAS,EAAC,kBAAkB;QAAAH,QAAA,EAAE1F;MAAK,CAAO,CAAC,eAC1E/B,IAAA,CAACP,MAAM;QAACqI,OAAO,EAAC,SAAS;QAACC,OAAO,EAAErB,aAAc;QAACS,KAAK,EAAE;UAAEa,KAAK,EAAE,MAAM;UAAEC,YAAY,EAAE;QAAG,CAAE;QAAAR,QAAA,EAAC;MAE9F,CAAQ,CAAC;IAAA,CACL,CAAC;EAEX;EAEA,oBACEvH,KAAA,CAACjB,IAAI;IAACkI,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEjF,UAAU,CAACkF,MAAM,CAACC;IAAW,CAAC,CAAE;IAAAC,QAAA,gBAEjFvH,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAEC,MAAM,CAACc,MAAO;MAAAT,QAAA,gBACzBzH,IAAA,CAACH,OAAO;QAACiI,OAAO,EAAC,MAAM;QAACJ,IAAI,EAAE;MAAG,CAAE,CAAC,eACpC1H,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACe,KAAM;QAACP,SAAS,EAAC,iBAAiB;QAAAH,QAAA,EAAC;MAAgB,CAAM,CAAC,eAC9EzH,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACgB,QAAS;QAACR,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAEhE,CAAM,CAAC;IAAA,CACH,CAAC,eAGPvH,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAEC,MAAM,CAACiB,WAAY;MAACT,SAAS,EAAC,4BAA4B;MAAAH,QAAA,gBACrEzH,IAAA,CAACf,IAAI;QAACkI,KAAK,EAAEC,MAAM,CAACkB,SAAU;QAAAb,QAAA,eAC5BzH,IAAA,CAACJ,MAAM;UACL2I,KAAK,EAAErC,SAAS,CAAC,CAAE;UACnBwB,IAAI,EAAE,GAAI;UACVJ,eAAe,EAAC,OAAO;UACvBkB,KAAK,EAAC;QAAO,CACd;MAAC,CACE,CAAC,eACPxI,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACqB,MAAO;QAACb,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAE9D,CAAM,CAAC;IAAA,CACH,CAAC,eAGPvH,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAEC,MAAM,CAACsB,gBAAiB;MAAAjB,QAAA,gBACnCzH,IAAA,CAACf,IAAI;QAACkI,KAAK,EAAEC,MAAM,CAACuB,OAAQ;QAACf,SAAS,EAAC;MAAW,CAAE,CAAC,eACrD5H,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACwB,WAAY;QAAChB,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAAE,CAAM,CAAC,eAC5EzH,IAAA,CAACf,IAAI;QAACkI,KAAK,EAAEC,MAAM,CAACuB,OAAQ;QAACf,SAAS,EAAC;MAAW,CAAE,CAAC;IAAA,CACjD,CAAC,eAGP5H,IAAA,CAACP,MAAM;MACLqI,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAE5B,cAAe;MACxB0C,IAAI,eAAE7I,IAAA,CAACH,OAAO;QAACiI,OAAO,EAAC,MAAM;QAACJ,IAAI,EAAE,EAAG;QAACoB,SAAS,EAAEzG,UAAU,CAACkF,MAAM,CAACwB,IAAK;QAAC5B,KAAK,EAAEC,MAAM,CAAC4B;MAAW,CAAE,CAAE;MACxG7B,KAAK,EAAE;QAAEa,KAAK,EAAE,MAAM;QAAEC,YAAY,EAAE;MAAG,CAAE;MAAAR,QAAA,EAC5C;IAED,CAAQ,CAAC,EAGR1E,SAAS,iBACR7C,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAEC,MAAM,CAAC6B,eAAgB;MAAAxB,QAAA,gBAClCzH,IAAA,CAACN,OAAO;QAACgI,IAAI,EAAC,OAAO;QAACP,KAAK,EAAE;UAAE+B,IAAI,EAAEpH;QAAU;MAAE,CAAE,CAAC,eACpD9B,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAAC+B,UAAW;QAACvB,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAElE,CAAM,CAAC;IAAA,CACH,CACP,eAGDvH,KAAA,CAACjB,IAAI;MAACkI,KAAK,EAAEC,MAAM,CAACgC,MAAO;MAAA3B,QAAA,gBACzBvH,KAAA,CAAChB,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACiC,UAAW;QAACzB,SAAS,EAAC,uBAAuB;QAAAH,QAAA,GAAC,0BACxC,EAAC,GAAG;MAAA,CACxB,CAAC,eACPzH,IAAA,CAACb,gBAAgB;QAAC4I,OAAO,EAAEA,CAAA,KAAM1I,OAAO,CAACoH,OAAO,CAACrG,oBAAoB,CAAE;QAAAqH,QAAA,eACrEzH,IAAA,CAACd,IAAI;UAACiI,KAAK,EAAEC,MAAM,CAACkC,UAAW;UAAC1B,SAAS,EAAC,cAAc;UAAAH,QAAA,EAAC;QAEzD,CAAM;MAAC,CACS,CAAC;IAAA,CACf,CAAC,EAGNvF,MAAM,iBACLlC,IAAA,CAACb,gBAAgB;MAACgI,KAAK,EAAEC,MAAM,CAACmC,YAAa;MAACxB,OAAO,EAAE7F,MAAO;MAAAuF,QAAA,eAC5DzH,IAAA,CAACd,IAAI;QAACiI,KAAK,EAAEC,MAAM,CAACoC,UAAW;QAAC5B,SAAS,EAAC,uBAAuB;QAAAH,QAAA,EAAC;MAAM,CAAM;IAAC,CAC/D,CACnB;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAML,MAAM,GAAGhI,UAAU,CAACqK,MAAM,CAAC;EAC/BpC,SAAS,EAAE;IACT6B,IAAI,EAAE,CAAC;IACPQ,OAAO,EAAE,EAAE;IACXC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD1B,MAAM,EAAE;IACNyB,UAAU,EAAE,QAAQ;IACpBE,YAAY,EAAE;EAChB,CAAC;EACD1B,KAAK,EAAE;IACL2B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE;EACb,CAAC;EACD5B,QAAQ,EAAE;IACR0B,QAAQ,EAAE,EAAE;IACZE,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE;EACb,CAAC;EACD5B,WAAW,EAAE;IACXqB,OAAO,EAAE,EAAE;IACXzB,YAAY,EAAE,EAAE;IAChBiC,WAAW,EAAE,CAAC;IACdP,UAAU,EAAE;EACd,CAAC;EACDrB,SAAS,EAAE;IACToB,OAAO,EAAE,EAAE;IACXpC,eAAe,EAAE,OAAO;IACxBW,YAAY,EAAE;EAChB,CAAC;EACDQ,MAAM,EAAE;IACNuB,SAAS,EAAE,EAAE;IACbF,QAAQ,EAAE;EACZ,CAAC;EACDpB,gBAAgB,EAAE;IAChByB,aAAa,EAAE,KAAK;IACpBR,UAAU,EAAE,QAAQ;IACpBS,cAAc,EAAE,EAAE;IAClBpC,KAAK,EAAE;EACT,CAAC;EACDW,OAAO,EAAE;IACPO,IAAI,EAAE,CAAC;IACPmB,MAAM,EAAE;EACV,CAAC;EACDzB,WAAW,EAAE;IACX0B,gBAAgB,EAAE,EAAE;IACpBR,QAAQ,EAAE;EACZ,CAAC;EACDd,UAAU,EAAE;IACVuB,WAAW,EAAE;EACf,CAAC;EACDtB,eAAe,EAAE;IACfkB,aAAa,EAAE,KAAK;IACpBR,UAAU,EAAE,QAAQ;IACpBK,SAAS,EAAE;EACb,CAAC;EACDb,UAAU,EAAE;IACVqB,UAAU,EAAE,CAAC;IACbV,QAAQ,EAAE;EACZ,CAAC;EACDV,MAAM,EAAE;IACNe,aAAa,EAAE,KAAK;IACpBH,SAAS,EAAE;EACb,CAAC;EACDX,UAAU,EAAE;IACVS,QAAQ,EAAE;EACZ,CAAC;EACDR,UAAU,EAAE;IACVQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDR,YAAY,EAAE;IACZS,SAAS,EAAE,EAAE;IACbN,OAAO,EAAE;EACX,CAAC;EACDF,UAAU,EAAE;IACVM,QAAQ,EAAE;EACZ,CAAC;EACDnC,WAAW,EAAE;IACXqC,SAAS,EAAE,EAAE;IACbF,QAAQ,EAAE;EACZ,CAAC;EACDjC,SAAS,EAAE;IACTiC,QAAQ,EAAE,EAAE;IACZG,SAAS,EAAE,QAAQ;IACnBJ,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAEF,eAAe7H,aAAa","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;AAwD/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,EAsXxB,CAAC;AA8FF,eAAe,WAAW,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<void>;
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":"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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<void, Error, string, unknown>;
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,uFAuB5B,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
+ {"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;AA0F3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwY5C,CAAC;AA6FF,eAAe,aAAa,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;AAwD/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,EAsXxB,CAAC;AA8FF,eAAe,WAAW,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<void>;
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":"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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<void, Error, string, unknown>;
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,uFAuB5B,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
+ {"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;AA0F3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwY5C,CAAC;AA6FF,eAAe,aAAa,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "10.0.0",
3
+ "version": "10.2.0",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",