@oxyhq/services 11.1.1 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/index.js +2 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +0 -2
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +117 -20
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +24 -3
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js +286 -0
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js.map +1 -0
- package/lib/commonjs/ui/context/silentSessionRestore.js +65 -0
- package/lib/commonjs/ui/context/silentSessionRestore.js.map +1 -0
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/utils/storageHelpers.js +2 -1
- package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +0 -2
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +118 -21
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +24 -3
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/inSessionTokenRefresh.js +281 -0
- package/lib/module/ui/context/inSessionTokenRefresh.js.map +1 -0
- package/lib/module/ui/context/silentSessionRestore.js +61 -0
- package/lib/module/ui/context/silentSessionRestore.js.map +1 -0
- package/lib/module/ui/index.js +2 -0
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/utils/storageHelpers.js +2 -1
- package/lib/module/ui/utils/storageHelpers.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +0 -10
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +9 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts +105 -0
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts +42 -0
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +0 -17
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts +11 -0
- package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +0 -10
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +9 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts +105 -0
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts +42 -0
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts.map +1 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +0 -17
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/storageHelpers.d.ts +11 -0
- package/lib/typescript/module/ui/utils/storageHelpers.d.ts.map +1 -1
- package/lib/typescript/types/react-native-classname.d.ts +39 -0
- package/package.json +3 -3
- package/src/index.ts +2 -0
- package/src/types/react-native-classname.d.ts +39 -0
- package/src/ui/components/OxyProvider.tsx +0 -2
- package/src/ui/context/OxyContext.tsx +119 -32
- package/src/ui/context/hooks/useAuthOperations.ts +35 -2
- package/src/ui/context/inSessionTokenRefresh.ts +298 -0
- package/src/ui/context/silentSessionRestore.ts +67 -0
- package/src/ui/index.ts +2 -0
- package/src/ui/types/navigation.ts +0 -17
- package/src/ui/utils/storageHelpers.ts +12 -0
|
@@ -14,6 +14,21 @@ const LOGIN_ERROR_CODE = 'LOGIN_ERROR';
|
|
|
14
14
|
const LOGOUT_ERROR_CODE = 'LOGOUT_ERROR';
|
|
15
15
|
const LOGOUT_ALL_ERROR_CODE = 'LOGOUT_ALL_ERROR';
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Fire-and-forget the durable returning-user hint clear on explicit sign-out.
|
|
19
|
+
*
|
|
20
|
+
* Mirrors the synchronous, non-blocking nature of the sibling
|
|
21
|
+
* `clearSsoBounceState()`: sign-out must NEVER block on (or fail because of) a
|
|
22
|
+
* best-effort storage write. The clear is invoked synchronously (so unit tests
|
|
23
|
+
* can assert it ran) but its async settle is detached; any rejection is logged,
|
|
24
|
+
* never thrown.
|
|
25
|
+
*/
|
|
26
|
+
function clearPriorSessionHintSafe(clearPriorSessionHint, logger) {
|
|
27
|
+
clearPriorSessionHint().catch(hintError => {
|
|
28
|
+
logger?.('Failed to clear prior-session hint on sign-out', hintError);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
17
32
|
/**
|
|
18
33
|
* Authentication operations using public key cryptography.
|
|
19
34
|
* Accepts public key as parameter - identity management is handled by the app layer.
|
|
@@ -26,6 +41,7 @@ const useAuthOperations = ({
|
|
|
26
41
|
updateSessions,
|
|
27
42
|
saveActiveSessionId,
|
|
28
43
|
clearSessionState,
|
|
44
|
+
clearPriorSessionHint,
|
|
29
45
|
switchSession,
|
|
30
46
|
applyLanguagePreference,
|
|
31
47
|
onAuthStateChange,
|
|
@@ -172,6 +188,7 @@ const useAuthOperations = ({
|
|
|
172
188
|
// Genuine FULL sign-out (no sessions remain): clear the per-origin
|
|
173
189
|
// SSO bounce state so a fresh deliberate sign-in can re-probe.
|
|
174
190
|
(0, _activeAuthuser.clearSsoBounceState)();
|
|
191
|
+
clearPriorSessionHintSafe(clearPriorSessionHint, logger);
|
|
175
192
|
await clearSessionState();
|
|
176
193
|
return;
|
|
177
194
|
}
|
|
@@ -181,6 +198,7 @@ const useAuthOperations = ({
|
|
|
181
198
|
if (isInvalid && targetSessionId === activeSessionId) {
|
|
182
199
|
// The active session is invalid → full sign-out; clear SSO state too.
|
|
183
200
|
(0, _activeAuthuser.clearSsoBounceState)();
|
|
201
|
+
clearPriorSessionHintSafe(clearPriorSessionHint, logger);
|
|
184
202
|
await clearSessionState();
|
|
185
203
|
return;
|
|
186
204
|
}
|
|
@@ -195,7 +213,7 @@ const useAuthOperations = ({
|
|
|
195
213
|
status: isInvalid ? 401 : undefined
|
|
196
214
|
});
|
|
197
215
|
}
|
|
198
|
-
}, [activeSessionId, clearSessionState, logger, onError, oxyServices, setAuthState, switchSession, updateSessions]);
|
|
216
|
+
}, [activeSessionId, clearSessionState, clearPriorSessionHint, logger, onError, oxyServices, setAuthState, switchSession, updateSessions]);
|
|
199
217
|
|
|
200
218
|
/**
|
|
201
219
|
* Logout from all sessions
|
|
@@ -225,8 +243,11 @@ const useAuthOperations = ({
|
|
|
225
243
|
(0, _activeAuthuser.clearActiveAuthuser)();
|
|
226
244
|
}
|
|
227
245
|
// logoutAll is ALWAYS a full sign-out: clear the per-origin SSO bounce
|
|
228
|
-
// state (web-guarded internally) so a fresh sign-in can re-probe
|
|
246
|
+
// state (web-guarded internally) so a fresh sign-in can re-probe, and drop
|
|
247
|
+
// the durable returning-user hint so the next cold boot is treated as a
|
|
248
|
+
// first-time anonymous visitor (no forced `/sso` bounce after sign-out).
|
|
229
249
|
(0, _activeAuthuser.clearSsoBounceState)();
|
|
250
|
+
clearPriorSessionHintSafe(clearPriorSessionHint, logger);
|
|
230
251
|
await clearSessionState();
|
|
231
252
|
} catch (error) {
|
|
232
253
|
(0, _errorHandlers.handleAuthError)(error, {
|
|
@@ -240,7 +261,7 @@ const useAuthOperations = ({
|
|
|
240
261
|
});
|
|
241
262
|
throw error instanceof Error ? error : new Error('Logout all failed');
|
|
242
263
|
}
|
|
243
|
-
}, [activeSessionId, clearSessionState, logger, onError, oxyServices, setAuthState]);
|
|
264
|
+
}, [activeSessionId, clearSessionState, clearPriorSessionHint, logger, onError, oxyServices, setAuthState]);
|
|
244
265
|
return {
|
|
245
266
|
signIn,
|
|
246
267
|
logout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_sessionHelpers","_errorHandlers","_useWebSSO","_activeAuthuser","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_sessionHelpers","_errorHandlers","_useWebSSO","_activeAuthuser","LOGIN_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","clearPriorSessionHintSafe","clearPriorSessionHint","logger","catch","hintError","useAuthOperations","oxyServices","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","sessionsRef","useRef","current","performSignIn","useCallback","publicKey","deviceFingerprintObj","DeviceManager","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challengeResponse","requestChallenge","challenge","signature","timestamp","SignatureService","signChallenge","fullUser","sessionResponse","verifyChallenge","getUserBySession","sessionId","allDeviceSessions","fetchSessionsWithFallback","fallbackDeviceId","deviceId","fallbackUserId","id","error","__DEV__","existingSession","find","session","userId","toString","logoutSession","logoutError","filter","merge","signIn","isLoading","message","handleAuthError","defaultMessage","code","setAuthError","msg","logout","targetSessionId","sessionToLogout","targetSession","s","targetAuthuser","authuser","isWebBrowser","logoutSessionByAuthuser","filteredSessions","length","clearSsoBounceState","isInvalid","isInvalidSessionError","status","undefined","logoutAll","Error","logoutAllSessions","logoutAllSessionsViaCookie","clearActiveAuthuser","exports"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TOKEN_REFRESH_LEAD_MS = void 0;
|
|
7
|
+
exports.createInSessionRefreshHandler = createInSessionRefreshHandler;
|
|
8
|
+
exports.startTokenRefreshScheduler = startTokenRefreshScheduler;
|
|
9
|
+
var _core = require("@oxyhq/core");
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
var _useWebSSO = require("../hooks/useWebSSO.js");
|
|
12
|
+
var _activeAuthuser = require("../utils/activeAuthuser.js");
|
|
13
|
+
/**
|
|
14
|
+
* In-session access-token refresh for the React Native / Expo SDK.
|
|
15
|
+
*
|
|
16
|
+
* THE GAP THIS CLOSES: the services `OxyContext` owns the session but never
|
|
17
|
+
* installed an `authRefreshHandler` on the owner `HttpService`, so
|
|
18
|
+
* `HttpService.refreshAccessToken` short-circuited to `null` — there was NO
|
|
19
|
+
* in-session token refresh on the RN path at all. A 15-minute access token
|
|
20
|
+
* expired with the tab/app open and nothing re-minted one; cross-apex RP feeds
|
|
21
|
+
* (mention.earth, …) then 401'd in a loop while `isAuthenticated` stayed `true`
|
|
22
|
+
* (a zombie logged-in state), because the `Domain=oxy.so` refresh cookie can't
|
|
23
|
+
* reach `api.<apex>`. (`AuthManager`, which installs a refresh handler on the
|
|
24
|
+
* web path, is only ever constructed by `WebOxyProvider` in `@oxyhq/auth`.)
|
|
25
|
+
*
|
|
26
|
+
* THE FIX, two cooperating pieces both wired from `OxyContext`:
|
|
27
|
+
*
|
|
28
|
+
* 1. {@link createInSessionRefreshHandler} — an `AuthRefreshHandler` installed
|
|
29
|
+
* on the owner client. It re-mints a fresh access token WITHOUT a page
|
|
30
|
+
* reload by reusing the SAME durable per-apex silent-restore arms cold boot
|
|
31
|
+
* uses (in order; first that yields a token wins). The linked client
|
|
32
|
+
* (`createLinkedClient`) inherits the fix for free — its refresh delegates
|
|
33
|
+
* back to the owner's `refreshAccessToken`.
|
|
34
|
+
*
|
|
35
|
+
* 2. {@link startTokenRefreshScheduler} — a proactive scheduler that refreshes
|
|
36
|
+
* ~{@link TOKEN_REFRESH_LEAD_MS} before expiry (and on web tab-focus / native
|
|
37
|
+
* app-foreground), so the common case never even reaches the reactive
|
|
38
|
+
* 401-then-recover flash.
|
|
39
|
+
*
|
|
40
|
+
* Concurrency/cooldown/dedup are owned by `HttpService.refreshAccessToken`
|
|
41
|
+
* (single in-flight `tokenRefreshPromise` + cooldown) — this module does not
|
|
42
|
+
* reimplement them, so the timer / foreground / per-request triggers collapse to
|
|
43
|
+
* one network attempt (no refresh storm).
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Per-arm fail-fast budget (ms) for the web first-party `/auth/silent` iframe
|
|
48
|
+
* arm. Slightly more generous than the cold-boot iframe budget (2.5s) because an
|
|
49
|
+
* in-session refresh is NOT in the first-paint critical path — a couple hundred
|
|
50
|
+
* ms of extra headroom for the same-origin handshake is worth a higher success
|
|
51
|
+
* rate. `silentSignIn` still fail-fasts on `iframe.onerror`, so a hard failure
|
|
52
|
+
* returns well before this.
|
|
53
|
+
*/
|
|
54
|
+
const SILENT_IFRAME_REFRESH_TIMEOUT = 4000;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Per-arm fail-fast budget (ms) for the same-apex refresh-cookie arm
|
|
58
|
+
* (`refreshAllSessions`). On a cross-apex RP the `Domain=oxy.so` cookie never
|
|
59
|
+
* reaches `api.<apex>`, so this returns `{accounts:[]}` quickly; the bound only
|
|
60
|
+
* matters if that endpoint stalls.
|
|
61
|
+
*/
|
|
62
|
+
const COOKIE_REFRESH_TIMEOUT = 4000;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Lead time (ms) before access-token expiry at which the proactive scheduler
|
|
66
|
+
* refreshes. Mirrors `HttpService`'s per-request `TOKEN_REFRESH_LEAD_SECONDS`
|
|
67
|
+
* (60s) so the scheduled refresh and the request-time preflight refresh use the
|
|
68
|
+
* same window — the scheduler simply fires it during idle/background instead of
|
|
69
|
+
* waiting for the next request.
|
|
70
|
+
*/
|
|
71
|
+
const TOKEN_REFRESH_LEAD_MS = exports.TOKEN_REFRESH_LEAD_MS = 60_000;
|
|
72
|
+
function debugRefresh(message, reason, error) {
|
|
73
|
+
if (__DEV__) {
|
|
74
|
+
_core.logger.debug(message, {
|
|
75
|
+
component: 'inSessionTokenRefresh',
|
|
76
|
+
method: 'authRefreshHandler',
|
|
77
|
+
reason
|
|
78
|
+
}, error);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Build the in-session `AuthRefreshHandler` for the owner client.
|
|
84
|
+
*
|
|
85
|
+
* Arms (first to yield a fresh token wins; each is bounded and falls through on
|
|
86
|
+
* failure). Every arm plants the fresh token internally, so on success we read
|
|
87
|
+
* it back via `getAccessToken()`:
|
|
88
|
+
*
|
|
89
|
+
* NATIVE (Expo): shared cross-app identity key re-mint
|
|
90
|
+
* (`signInWithSharedIdentity` → challenge→sign→verify plants the tokens).
|
|
91
|
+
* The ONLY silent native arm (mirrors cold boot's `shared-key-signin`); the
|
|
92
|
+
* `/auth/silent` web iframe is NEVER attempted on native. Returns `null`
|
|
93
|
+
* when the device holds no shared identity (e.g. a password-only native
|
|
94
|
+
* sign-in) so a genuinely dead session reconciles to logged-out rather than
|
|
95
|
+
* staying a zombie.
|
|
96
|
+
*
|
|
97
|
+
* WEB, in order:
|
|
98
|
+
* 1. First-party `/auth/silent` iframe at the per-apex IdP
|
|
99
|
+
* (`silentSignIn` with `authWebUrlOverride = autoDetectAuthWebUrl()`).
|
|
100
|
+
* The durable cross-apex path: the iframe reads the first-party
|
|
101
|
+
* `fedcm_session` cookie on `auth.<apex>` and mints a fresh Oxy token. No
|
|
102
|
+
* top-level navigation → works in a backgrounded tab. On a `*.oxy.so`
|
|
103
|
+
* app the per-apex host IS the central host, so this also covers
|
|
104
|
+
* same-apex.
|
|
105
|
+
* 2. FedCM silent re-auth (Chrome) — `silentSignInWithFedCM`.
|
|
106
|
+
* 3. Same-apex refresh cookie — `refreshAllSessions`. On `*.oxy.so` the
|
|
107
|
+
* httpOnly `oxy_rt_${n}` cookies ride along; we plant the active
|
|
108
|
+
* account's rotated token. On a cross-apex RP it returns `{accounts:[]}`
|
|
109
|
+
* and is a clean no-op. Unlike the cold-boot cookie restore this does NOT
|
|
110
|
+
* rebuild multi-session state — an in-session refresh only needs a fresh
|
|
111
|
+
* bearer.
|
|
112
|
+
*
|
|
113
|
+
* NO RECURSION: none of these arms issue requests through the authed client's
|
|
114
|
+
* `refreshAccessToken` path. The iframe/FedCM transports are postMessage /
|
|
115
|
+
* credential APIs; the follow-up `/session/user` fetch inside `silentSignIn`
|
|
116
|
+
* runs against the just-planted FULL-TTL token (≫ the preflight lead), so it
|
|
117
|
+
* never re-enters the refresh path; `refreshAllSessions` uses a raw `fetch` with
|
|
118
|
+
* `credentials:'include'`.
|
|
119
|
+
*/
|
|
120
|
+
function createInSessionRefreshHandler(oxyServices) {
|
|
121
|
+
return async reason => {
|
|
122
|
+
if (!(0, _useWebSSO.isWebBrowser)()) {
|
|
123
|
+
try {
|
|
124
|
+
const session = await oxyServices.signInWithSharedIdentity?.();
|
|
125
|
+
if (session) {
|
|
126
|
+
// `verifyChallenge` inside `signInWithSharedIdentity` already planted
|
|
127
|
+
// the fresh tokens; read the planted access token back out.
|
|
128
|
+
return oxyServices.getAccessToken();
|
|
129
|
+
}
|
|
130
|
+
} catch (error) {
|
|
131
|
+
debugRefresh('Native shared-key in-session refresh failed', reason, error);
|
|
132
|
+
}
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// WEB arm 1 — first-party silent iframe at the per-apex IdP.
|
|
137
|
+
try {
|
|
138
|
+
const perApexAuthUrl = (0, _core.autoDetectAuthWebUrl)();
|
|
139
|
+
if (perApexAuthUrl) {
|
|
140
|
+
const session = await oxyServices.silentSignIn?.({
|
|
141
|
+
authWebUrlOverride: perApexAuthUrl,
|
|
142
|
+
timeout: SILENT_IFRAME_REFRESH_TIMEOUT
|
|
143
|
+
});
|
|
144
|
+
if (session) {
|
|
145
|
+
return oxyServices.getAccessToken();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
} catch (error) {
|
|
149
|
+
debugRefresh('Silent-iframe in-session refresh failed', reason, error);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// WEB arm 2 — FedCM silent re-auth (Chrome).
|
|
153
|
+
try {
|
|
154
|
+
if (oxyServices.isFedCMSupported?.() === true) {
|
|
155
|
+
const session = await oxyServices.silentSignInWithFedCM?.();
|
|
156
|
+
if (session) {
|
|
157
|
+
return oxyServices.getAccessToken();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
debugRefresh('FedCM-silent in-session refresh failed', reason, error);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// WEB arm 3 — same-apex refresh cookie.
|
|
165
|
+
try {
|
|
166
|
+
const snapshot = await oxyServices.refreshAllSessions({
|
|
167
|
+
timeout: COOKIE_REFRESH_TIMEOUT
|
|
168
|
+
});
|
|
169
|
+
if (snapshot.accounts.length > 0) {
|
|
170
|
+
const persistedAuthuser = (0, _activeAuthuser.readActiveAuthuser)();
|
|
171
|
+
const active = (persistedAuthuser !== null ? snapshot.accounts.find(account => account.authuser === persistedAuthuser) : undefined) ?? snapshot.accounts[0];
|
|
172
|
+
oxyServices.httpService.setTokens(active.accessToken);
|
|
173
|
+
return oxyServices.getAccessToken();
|
|
174
|
+
}
|
|
175
|
+
} catch (error) {
|
|
176
|
+
debugRefresh('Refresh-cookie in-session refresh failed', reason, error);
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Handle returned by {@link startTokenRefreshScheduler}; call `dispose()` to tear
|
|
184
|
+
* down the timer and the foreground listener.
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Start the proactive in-session refresh scheduler against `oxyServices`.
|
|
189
|
+
*
|
|
190
|
+
* Schedules a single timer to fire {@link TOKEN_REFRESH_LEAD_MS} before the
|
|
191
|
+
* current access token's `exp`, calling `httpService.refreshAccessToken`
|
|
192
|
+
* ('preflight') — which runs the installed handler and is deduped + cooldown-
|
|
193
|
+
* guarded. After every attempt it reschedules from the (possibly rotated) token.
|
|
194
|
+
* It also reschedules whenever the token changes (`onTokensChanged`) and, on
|
|
195
|
+
* web tab-focus / native app-foreground, refreshes immediately if already inside
|
|
196
|
+
* the lead window (a long-hidden tab throttles timers, so the token can be
|
|
197
|
+
* expired on return).
|
|
198
|
+
*
|
|
199
|
+
* No-ops cleanly when there is no token, an opaque/no-`exp` token, or the host
|
|
200
|
+
* lacks `getAccessTokenExpiry` (older stubs) — in those cases the reactive 401
|
|
201
|
+
* path remains the only refresh trigger.
|
|
202
|
+
*/
|
|
203
|
+
function startTokenRefreshScheduler(oxyServices) {
|
|
204
|
+
let disposed = false;
|
|
205
|
+
let timer = null;
|
|
206
|
+
const clearTimer = () => {
|
|
207
|
+
if (timer !== null) {
|
|
208
|
+
clearTimeout(timer);
|
|
209
|
+
timer = null;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
const runRefresh = () => {
|
|
213
|
+
// `refreshAccessToken` is deduped + cooldown-guarded internally, so this is
|
|
214
|
+
// safe to call from the timer, the foreground listener, and request-time
|
|
215
|
+
// preflight concurrently — they collapse to one network attempt.
|
|
216
|
+
const refresh = oxyServices.httpService.refreshAccessToken?.('preflight');
|
|
217
|
+
if (!refresh) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
void refresh.catch(() => null).finally(() => {
|
|
221
|
+
if (!disposed) {
|
|
222
|
+
schedule();
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
const schedule = () => {
|
|
227
|
+
clearTimer();
|
|
228
|
+
if (disposed || !oxyServices.getAccessToken()) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const expSeconds = oxyServices.getAccessTokenExpiry?.() ?? null;
|
|
232
|
+
if (expSeconds === null) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const fireInMs = expSeconds * 1000 - Date.now() - TOKEN_REFRESH_LEAD_MS;
|
|
236
|
+
timer = setTimeout(runRefresh, Math.max(fireInMs, 0));
|
|
237
|
+
};
|
|
238
|
+
const onForeground = () => {
|
|
239
|
+
if (disposed || !oxyServices.getAccessToken()) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const expSeconds = oxyServices.getAccessTokenExpiry?.() ?? null;
|
|
243
|
+
if (expSeconds === null) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const remainingMs = expSeconds * 1000 - Date.now();
|
|
247
|
+
if (remainingMs <= TOKEN_REFRESH_LEAD_MS) {
|
|
248
|
+
runRefresh();
|
|
249
|
+
} else {
|
|
250
|
+
schedule();
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
const unsubscribeTokens = oxyServices.onTokensChanged(() => {
|
|
254
|
+
if (!disposed) {
|
|
255
|
+
schedule();
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
let removeForeground = null;
|
|
259
|
+
if ((0, _useWebSSO.isWebBrowser)() && typeof document !== 'undefined') {
|
|
260
|
+
const handler = () => {
|
|
261
|
+
if (document.visibilityState === 'visible') {
|
|
262
|
+
onForeground();
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
document.addEventListener('visibilitychange', handler);
|
|
266
|
+
removeForeground = () => document.removeEventListener('visibilitychange', handler);
|
|
267
|
+
} else if (!(0, _useWebSSO.isWebBrowser)() && _reactNative.AppState && typeof _reactNative.AppState.addEventListener === 'function') {
|
|
268
|
+
const subscription = _reactNative.AppState.addEventListener('change', state => {
|
|
269
|
+
if (state === 'active') {
|
|
270
|
+
onForeground();
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
removeForeground = () => subscription.remove();
|
|
274
|
+
}
|
|
275
|
+
schedule();
|
|
276
|
+
return {
|
|
277
|
+
dispose() {
|
|
278
|
+
disposed = true;
|
|
279
|
+
clearTimer();
|
|
280
|
+
unsubscribeTokens();
|
|
281
|
+
removeForeground?.();
|
|
282
|
+
removeForeground = null;
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=inSessionTokenRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_reactNative","_useWebSSO","_activeAuthuser","SILENT_IFRAME_REFRESH_TIMEOUT","COOKIE_REFRESH_TIMEOUT","TOKEN_REFRESH_LEAD_MS","exports","debugRefresh","message","reason","error","__DEV__","loggerUtil","debug","component","method","createInSessionRefreshHandler","oxyServices","isWebBrowser","session","signInWithSharedIdentity","getAccessToken","perApexAuthUrl","autoDetectAuthWebUrl","silentSignIn","authWebUrlOverride","timeout","isFedCMSupported","silentSignInWithFedCM","snapshot","refreshAllSessions","accounts","length","persistedAuthuser","readActiveAuthuser","active","find","account","authuser","undefined","httpService","setTokens","accessToken","startTokenRefreshScheduler","disposed","timer","clearTimer","clearTimeout","runRefresh","refresh","refreshAccessToken","catch","finally","schedule","expSeconds","getAccessTokenExpiry","fireInMs","Date","now","setTimeout","Math","max","onForeground","remainingMs","unsubscribeTokens","onTokensChanged","removeForeground","document","handler","visibilityState","addEventListener","removeEventListener","AppState","subscription","state","remove","dispose"],"sourceRoot":"../../../../src","sources":["ui/context/inSessionTokenRefresh.ts"],"mappings":";;;;;;;;AAqCA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,6BAA6B,GAAG,IAAI;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG,IAAI;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,MAAM;AAE3C,SAASE,YAAYA,CAACC,OAAe,EAAEC,MAAyB,EAAEC,KAAe,EAAQ;EACvF,IAAIC,OAAO,EAAE;IACXC,YAAU,CAACC,KAAK,CACdL,OAAO,EACP;MAAEM,SAAS,EAAE,uBAAuB;MAAEC,MAAM,EAAE,oBAAoB;MAAEN;IAAO,CAAC,EAC5EC,KACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,6BAA6BA,CAACC,WAAwB,EAAsB;EAC1F,OAAO,MAAOR,MAAyB,IAA6B;IAClE,IAAI,CAAC,IAAAS,uBAAY,EAAC,CAAC,EAAE;MACnB,IAAI;QACF,MAAMC,OAAO,GAAG,MAAMF,WAAW,CAACG,wBAAwB,GAAG,CAAC;QAC9D,IAAID,OAAO,EAAE;UACX;UACA;UACA,OAAOF,WAAW,CAACI,cAAc,CAAC,CAAC;QACrC;MACF,CAAC,CAAC,OAAOX,KAAK,EAAE;QACdH,YAAY,CAAC,6CAA6C,EAAE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","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.mintSessionViaPerApexIframe = mintSessionViaPerApexIframe;
|
|
7
|
+
exports.selectActiveRefreshAccount = selectActiveRefreshAccount;
|
|
8
|
+
var _core = require("@oxyhq/core");
|
|
9
|
+
/**
|
|
10
|
+
* Silent, no-reload session-restore PRIMITIVES — the single shared
|
|
11
|
+
* implementation used by BOTH cold boot (`OxyContext.restoreSessionsFromStorage`)
|
|
12
|
+
* and in-session token refresh (`createInSessionRefreshHandler`). Neither caller
|
|
13
|
+
* re-implements these; they compose them. Keeping one home avoids the two paths
|
|
14
|
+
* drifting on "how do we mint a first-party token without a page reload".
|
|
15
|
+
*
|
|
16
|
+
* Each function is platform-agnostic at the type level and returns plain data;
|
|
17
|
+
* the callers own the side effects that differ between them (cold boot COMMITS
|
|
18
|
+
* the recovered session into provider state; refresh only reads the freshly
|
|
19
|
+
* planted bearer).
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Mint a fresh first-party session via the PER-APEX `/auth/silent` iframe — the
|
|
24
|
+
* durable cross-domain restore path that works WITHOUT a top-level navigation
|
|
25
|
+
* (so it succeeds under Safari ITP / Firefox TCP and in a backgrounded tab).
|
|
26
|
+
*
|
|
27
|
+
* The instance is configured with the CENTRAL auth URL, so we explicitly point
|
|
28
|
+
* the iframe at the per-apex host (`auth.<rp-apex>`) via `autoDetectAuthWebUrl()`
|
|
29
|
+
* + `silentSignIn`'s `authWebUrlOverride`. On a `*.oxy.so` app the per-apex host
|
|
30
|
+
* IS the central host, so this also covers same-apex. When auto-detection bails
|
|
31
|
+
* (localhost / IP / single-label / off-browser) there is no per-apex IdP and we
|
|
32
|
+
* return `null`. `silentSignIn` plants the access token internally on success.
|
|
33
|
+
*
|
|
34
|
+
* @returns the recovered session (token already planted) when complete, else
|
|
35
|
+
* `null` (no per-apex IdP, no session, or an incomplete iframe response).
|
|
36
|
+
*/
|
|
37
|
+
async function mintSessionViaPerApexIframe(oxyServices, timeoutMs) {
|
|
38
|
+
const perApexAuthUrl = (0, _core.autoDetectAuthWebUrl)();
|
|
39
|
+
if (!perApexAuthUrl) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const session = await oxyServices.silentSignIn?.({
|
|
43
|
+
authWebUrlOverride: perApexAuthUrl,
|
|
44
|
+
timeout: timeoutMs
|
|
45
|
+
});
|
|
46
|
+
if (!session?.user || !session.sessionId) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return session;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Pick the active account from a `refreshAllSessions` snapshot: the persisted
|
|
54
|
+
* `authuser` slot when it still matches a returned account, otherwise the lowest
|
|
55
|
+
* `authuser` (the server sorts ascending, so `[0]`). Callers guarantee a
|
|
56
|
+
* non-empty list, so the result is always defined.
|
|
57
|
+
*
|
|
58
|
+
* Shared by cold-boot cookie restore and the in-session refresh cookie arm so
|
|
59
|
+
* the active-slot selection can never diverge between them.
|
|
60
|
+
*/
|
|
61
|
+
function selectActiveRefreshAccount(accounts, persistedAuthuser) {
|
|
62
|
+
const matched = persistedAuthuser !== null ? accounts.find(account => account.authuser === persistedAuthuser) : undefined;
|
|
63
|
+
return matched ?? accounts[0];
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=silentSessionRestore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","mintSessionViaPerApexIframe","oxyServices","timeoutMs","perApexAuthUrl","autoDetectAuthWebUrl","session","silentSignIn","authWebUrlOverride","timeout","user","sessionId","selectActiveRefreshAccount","accounts","persistedAuthuser","matched","find","account","authuser","undefined"],"sourceRoot":"../../../../src","sources":["ui/context/silentSessionRestore.ts"],"mappings":";;;;;;;AAaA,IAAAA,KAAA,GAAAC,OAAA;AAbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,2BAA2BA,CAC/CC,WAAwB,EACxBC,SAAiB,EACqB;EACtC,MAAMC,cAAc,GAAG,IAAAC,0BAAoB,EAAC,CAAC;EAC7C,IAAI,CAACD,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;EACA,MAAME,OAAO,GAAG,MAAMJ,WAAW,CAACK,YAAY,GAAG;IAC/CC,kBAAkB,EAAEJ,cAAc;IAClCK,OAAO,EAAEN;EACX,CAAC,CAAC;EACF,IAAI,CAACG,OAAO,EAAEI,IAAI,IAAI,CAACJ,OAAO,CAACK,SAAS,EAAE;IACxC,OAAO,IAAI;EACb;EACA,OAAOL,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,0BAA0BA,CACxCC,QAAa,EACbC,iBAAgC,EAC7B;EACH,MAAMC,OAAO,GACXD,iBAAiB,KAAK,IAAI,GACtBD,QAAQ,CAACG,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,QAAQ,KAAKJ,iBAAiB,CAAC,GAClEK,SAAS;EACf,OAAOJ,OAAO,IAAIF,QAAQ,CAAC,CAAC,CAAC;AAC/B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_Avatar","_FollowButton","_OxyPayButton","_FontLoader","_OxyIcon","_AccountMenu","_AccountMenuButton","_OxyContext","_useAuth","_useFollow","_useStorage","_ProfileScreen","_ManageAccountScreen","_authStore","_accountStore","_errorHandlers","e","__esModule","default"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_Avatar","_FollowButton","_OxyPayButton","_FontLoader","_OxyIcon","_AccountMenu","_AccountMenuButton","_OxyContext","_useAuth","_useFollow","_useStorage","_ProfileScreen","_ManageAccountScreen","_authStore","_accountStore","_errorHandlers","e","__esModule","default"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,YAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,kBAAA,GAAAX,sBAAA,CAAAC,OAAA;AAGA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,QAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AAIA,IAAAe,cAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,oBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AAGA,IAAAiB,UAAA,GAAAjB,OAAA;AACA,IAAAkB,aAAA,GAAAlB,OAAA;AAGA,IAAAmB,cAAA,GAAAnB,OAAA;AAK+B,SAAAD,uBAAAqB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -113,7 +113,8 @@ const STORAGE_KEY_PREFIX = exports.STORAGE_KEY_PREFIX = 'oxy_session';
|
|
|
113
113
|
const getStorageKeys = (prefix = STORAGE_KEY_PREFIX) => ({
|
|
114
114
|
activeSessionId: `${prefix}_active_session_id`,
|
|
115
115
|
sessionIds: `${prefix}_session_ids`,
|
|
116
|
-
language: `${prefix}_language
|
|
116
|
+
language: `${prefix}_language`,
|
|
117
|
+
priorSession: `${prefix}_prior_session`
|
|
117
118
|
});
|
|
118
119
|
exports.getStorageKeys = getStorageKeys;
|
|
119
120
|
//# sourceMappingURL=storageHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MEMORY_STORAGE","store","Map","getItem","key","get","setItem","value","set","removeItem","delete","clear","createWebStorage","window","localStorage","asyncStorageInstance","createNativeStorage","asyncStorageModule","Promise","resolve","then","_interopRequireWildcard","require","default","error","__DEV__","console","Error","isReactNative","navigator","product","exports","createPlatformStorage","STORAGE_KEY_PREFIX","getStorageKeys","prefix","activeSessionId","sessionIds","language"],"sourceRoot":"../../../../src","sources":["ui/utils/storageHelpers.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"names":["MEMORY_STORAGE","store","Map","getItem","key","get","setItem","value","set","removeItem","delete","clear","createWebStorage","window","localStorage","asyncStorageInstance","createNativeStorage","asyncStorageModule","Promise","resolve","then","_interopRequireWildcard","require","default","error","__DEV__","console","Error","isReactNative","navigator","product","exports","createPlatformStorage","STORAGE_KEY_PREFIX","getStorageKeys","prefix","activeSessionId","sessionIds","language","priorSession"],"sourceRoot":"../../../../src","sources":["ui/utils/storageHelpers.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","FontLoader","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useAuthorizedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeAuthorizedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","useMutationStatus","useOnlineStatus","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","Avatar","OxySignInButton","OxyAuthPrompt","OxyLogo","FollowButton","LogoIcon","LogoText","ActingAsBanner","AccountMenu","AccountMenuButton","useDeviceAccounts","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","showBottomSheet","closeBottomSheet","showSignInModal","hideSignInModal"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","FontLoader","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useAuthorizedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeAuthorizedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","useMutationStatus","useOnlineStatus","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","Avatar","OxySignInButton","OxyAuthPrompt","OxyLogo","FollowButton","LogoIcon","LogoText","ActingAsBanner","AccountMenu","AccountMenuButton","useDeviceAccounts","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","showBottomSheet","closeBottomSheet","showSignInModal","hideSignInModal"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -113,7 +113,6 @@ const OxyProvider = ({
|
|
|
113
113
|
baseURL,
|
|
114
114
|
authWebUrl,
|
|
115
115
|
authRedirectUri,
|
|
116
|
-
disableAutoSso,
|
|
117
116
|
queryClient: providedQueryClient
|
|
118
117
|
}) => {
|
|
119
118
|
// Dynamic KeyboardProvider for native. Uses variable indirection
|
|
@@ -302,7 +301,6 @@ const OxyProvider = ({
|
|
|
302
301
|
authRedirectUri: authRedirectUri,
|
|
303
302
|
storageKeyPrefix: storageKeyPrefix,
|
|
304
303
|
clientId: clientId,
|
|
305
|
-
disableAutoSso: disableAutoSso,
|
|
306
304
|
onAuthStateChange: onAuthStateChange,
|
|
307
305
|
children: [children, /*#__PURE__*/_jsxs(Suspense, {
|
|
308
306
|
fallback: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lazy","Suspense","useEffect","useRef","useState","AppState","Platform","StyleSheet","View","GestureHandlerRootView","SafeAreaProvider","OxyContextProvider","QueryClientProvider","focusManager","onlineManager","BloomDialogProvider","ToastOutlet","logger","loggerUtil","setupFonts","attachQueryPersistence","createQueryClient","createPlatformStorage","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","BOOT_BG_COLOR","bootStyles","create","providerRoot","flex","bootShell","backgroundColor","isWeb","OS","KEYBOARD_CONTROLLER_MODULE","LazyBottomSheetRouter","then","mod","default","error","__DEV__","Error","String","component","LazySignInModal","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","
|
|
1
|
+
{"version":3,"names":["lazy","Suspense","useEffect","useRef","useState","AppState","Platform","StyleSheet","View","GestureHandlerRootView","SafeAreaProvider","OxyContextProvider","QueryClientProvider","focusManager","onlineManager","BloomDialogProvider","ToastOutlet","logger","loggerUtil","setupFonts","attachQueryPersistence","createQueryClient","createPlatformStorage","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","BOOT_BG_COLOR","bootStyles","create","providerRoot","flex","bootShell","backgroundColor","isWeb","OS","KEYBOARD_CONTROLLER_MODULE","LazyBottomSheetRouter","then","mod","default","error","__DEV__","Error","String","component","LazySignInModal","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","queryClient","providedQueryClient","KBProvider","setKBProvider","moduleName","KeyboardProvider","catch","warn","KeyboardWrapper","storageRef","queryClientRef","persistenceUnsubRef","setQueryClient","current","mounted","bootstrap","storage","client","restored","unsubscribe","handleVisibilityChange","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","state","remove","cleanup","setupNetworkMonitoring","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","fetch","isConnected","style","coreContent","fallback"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
|