@burdenoff/fe-libs 2026.518.6 → 2026.518.7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAkBjB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/AuthProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { resolveGatewayUrls as e } from "../../config/gatewayUrls.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { resolveAuthBridgeConfig as t } from "../../config/authBridgeUrls.js";
|
|
3
|
+
import { PROFILE_STORAGE_CHANGE_EVENT as n, addProfile as r, getActiveProfileId as i, getProfileTokens as a, getProfileUser as o, getProfileWorkspaceToken as s, getProfiles as c, loginProfile as ee, logoutAllProfiles as te, removeProfile as l, resolveActiveProfileId as u, setActiveProfileId as d, setProfileTokens as f, setProfileUser as p, setProfileWorkspaceToken as m, setProfiles as h, switchProfile as ne } from "./ProfileStorageManager.js";
|
|
4
|
+
import { clearShellSsoCookies as g, isSharedSsoCookieDomain as re, isTrustedSsoOrigin as _, readShellSsoCookie as v, setShellSsoCookies as ie } from "../../utils/authCookie.js";
|
|
5
|
+
import { getAuthBridge as y, initAuthBridge as ae, isAuthBridgeInitialized as oe } from "./AuthBridgeClient.js";
|
|
6
|
+
import { checkRemoteSLO as se, checkSLO as ce, clearLocalAuthState as b, hasRecentSSORedirectAttempt as x, markSSORedirectAttempt as S, shouldSkipSSORedirect as C } from "../../components/SSORedirectGuard.js";
|
|
7
|
+
import { createContext as w, useCallback as T, useContext as E, useEffect as D, useMemo as le, useRef as ue, useState as O } from "react";
|
|
8
|
+
import { jsx as de } from "react/jsx-runtime";
|
|
8
9
|
//#region src/shared/providers/shell/AuthProvider.tsx
|
|
9
|
-
var
|
|
10
|
-
function
|
|
10
|
+
var k = w(null);
|
|
11
|
+
function A(e) {
|
|
11
12
|
try {
|
|
12
13
|
let t = e.split(".");
|
|
13
14
|
if (t.length !== 3) return null;
|
|
@@ -17,10 +18,10 @@ function O(e) {
|
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
function
|
|
21
|
+
function j(e) {
|
|
21
22
|
return e.trigger;
|
|
22
23
|
}
|
|
23
|
-
function
|
|
24
|
+
function M(e, t, n) {
|
|
24
25
|
let r = (Array.isArray(e.profiles) ? e.profiles : []).map((e) => {
|
|
25
26
|
let t = typeof e.id == "string" ? e.id : null, n = typeof e.email == "string" ? e.email : null;
|
|
26
27
|
return !t || !n ? null : {
|
|
@@ -39,14 +40,25 @@ function A(e, t, n) {
|
|
|
39
40
|
lastLogin: (/* @__PURE__ */ new Date()).toISOString()
|
|
40
41
|
}];
|
|
41
42
|
}
|
|
42
|
-
function
|
|
43
|
-
let
|
|
44
|
-
if (
|
|
43
|
+
function fe(e) {
|
|
44
|
+
let t = j(e);
|
|
45
|
+
if (t === "logout" || t === "logout_all") return b(), !0;
|
|
45
46
|
if (!e.activeProfileId || !e.user || !e.tokens) return !1;
|
|
46
47
|
let r = e.activeProfileId, i = e.user, { workspaceToken: a, ...o } = e.tokens;
|
|
47
|
-
return
|
|
48
|
+
return h(M(e, r, i)), p(r, i), f(r, o), m(r, a ?? null), d(r), window.dispatchEvent(new Event(n)), !0;
|
|
48
49
|
}
|
|
49
|
-
function
|
|
50
|
+
function N() {
|
|
51
|
+
if (typeof window > "u") return null;
|
|
52
|
+
try {
|
|
53
|
+
let e = t(), n = new URL(e.url).origin;
|
|
54
|
+
if (n === window.location.origin) return null;
|
|
55
|
+
let r = `${window.location.origin}/auth/login?reason=logout`;
|
|
56
|
+
return `${n}/auth/sso-clear?returnTo=${encodeURIComponent(r)}`;
|
|
57
|
+
} catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function P(e) {
|
|
50
62
|
if (!e) return !1;
|
|
51
63
|
try {
|
|
52
64
|
return !!(localStorage.getItem(`bf-p-${e}-tokens`) && localStorage.getItem(`bf-p-${e}-user`));
|
|
@@ -54,37 +66,37 @@ function j(e) {
|
|
|
54
66
|
return !1;
|
|
55
67
|
}
|
|
56
68
|
}
|
|
57
|
-
function
|
|
69
|
+
function F(e) {
|
|
58
70
|
try {
|
|
59
|
-
if (
|
|
60
|
-
let t =
|
|
61
|
-
if (!t?.origin || !
|
|
71
|
+
if (C()) return null;
|
|
72
|
+
let t = v();
|
|
73
|
+
if (!t?.origin || !_(t.origin)) return null;
|
|
62
74
|
let n = new URL(t.origin).origin, r = new URL(e).origin;
|
|
63
|
-
if (n === window.location.origin || n === r ||
|
|
75
|
+
if (n === window.location.origin || n === r || P(t.id)) return null;
|
|
64
76
|
let i = window.location.href;
|
|
65
|
-
return
|
|
77
|
+
return x(n, i) ? null : (S(n, i), `${n}/auth/sso-relay?returnTo=${encodeURIComponent(i)}`);
|
|
66
78
|
} catch {
|
|
67
79
|
return null;
|
|
68
80
|
}
|
|
69
81
|
}
|
|
70
|
-
function
|
|
71
|
-
let
|
|
72
|
-
if (
|
|
82
|
+
function I({ children: t, onTokenExpired: h, onSessionExpiringSoon: _, onRefreshToken: b, bridgeUrl: w, bridgeAllowedOrigins: E, bridgeDebug: j, onBridgeReady: M }) {
|
|
83
|
+
let P = ue(!1), [I, L] = O(() => u()), [R, z] = O(() => I ? o(I) : null), [B, V] = O(() => I ? a(I) : null), [H, U] = O(() => I ? s(I) : null), [W, G] = O(() => {
|
|
84
|
+
if (I && o(I)) return !1;
|
|
73
85
|
if (w) try {
|
|
74
|
-
let e =
|
|
86
|
+
let e = v()?.id ?? null;
|
|
75
87
|
if (e && localStorage.getItem(`bf-p-${e}-tokens`)) return !1;
|
|
76
88
|
} catch {}
|
|
77
89
|
return !!w;
|
|
78
|
-
}), [
|
|
90
|
+
}), [pe, K] = O(!1), [me, q] = O(null), [he, J] = O(() => c().map((e) => ({
|
|
79
91
|
id: e.id,
|
|
80
92
|
email: e.email,
|
|
81
93
|
name: e.name,
|
|
82
94
|
avatar: e.avatar,
|
|
83
|
-
isActive: e.id ===
|
|
95
|
+
isActive: e.id === I,
|
|
84
96
|
lastLogin: e.lastLogin
|
|
85
|
-
}))), Y =
|
|
86
|
-
let e =
|
|
87
|
-
J(
|
|
97
|
+
}))), Y = T(() => {
|
|
98
|
+
let e = i();
|
|
99
|
+
J(c().map((t) => ({
|
|
88
100
|
id: t.id,
|
|
89
101
|
email: t.email,
|
|
90
102
|
name: t.name,
|
|
@@ -93,85 +105,85 @@ function N({ children: p, onTokenExpired: h, onSessionExpiringSoon: v, onRefresh
|
|
|
93
105
|
lastLogin: t.lastLogin
|
|
94
106
|
})));
|
|
95
107
|
}, []);
|
|
96
|
-
|
|
108
|
+
D(() => {
|
|
97
109
|
if (!w) return;
|
|
98
110
|
try {
|
|
99
111
|
let e = new URL(w).pathname;
|
|
100
112
|
if (window.location.pathname === e) {
|
|
101
|
-
|
|
113
|
+
G(!1), M?.();
|
|
102
114
|
return;
|
|
103
115
|
}
|
|
104
116
|
} catch {
|
|
105
|
-
|
|
117
|
+
G(!1), M?.();
|
|
106
118
|
return;
|
|
107
119
|
}
|
|
108
|
-
if (
|
|
109
|
-
|
|
120
|
+
if (oe()) {
|
|
121
|
+
G(!1), M?.();
|
|
110
122
|
return;
|
|
111
123
|
}
|
|
112
124
|
let e = () => {
|
|
113
|
-
|
|
125
|
+
G(!1), M?.();
|
|
114
126
|
}, t = (t) => {
|
|
115
|
-
|
|
127
|
+
P.current = !0;
|
|
116
128
|
try {
|
|
117
129
|
if (w) {
|
|
118
|
-
let e =
|
|
130
|
+
let e = F(w);
|
|
119
131
|
if (e) {
|
|
120
132
|
window.location.replace(e);
|
|
121
133
|
return;
|
|
122
134
|
}
|
|
123
135
|
}
|
|
124
|
-
|
|
136
|
+
fe(t);
|
|
125
137
|
let e = u();
|
|
126
|
-
if (e)
|
|
138
|
+
if (e) L(e), z(o(e)), V(a(e)), U(s(e)), Y();
|
|
127
139
|
else {
|
|
128
140
|
if (w && !t.user && !t.tokens) try {
|
|
129
|
-
let e = new URL(w).origin, t = window.location.origin, n =
|
|
141
|
+
let e = new URL(w).origin, t = window.location.origin, n = F(w);
|
|
130
142
|
if (n) {
|
|
131
143
|
window.location.replace(n);
|
|
132
144
|
return;
|
|
133
145
|
}
|
|
134
|
-
if (e !== t && !
|
|
146
|
+
if (e !== t && !C()) {
|
|
135
147
|
let t = window.location.href;
|
|
136
|
-
if (
|
|
137
|
-
|
|
148
|
+
if (x(e, t)) return;
|
|
149
|
+
S(e, t), window.location.replace(`${e}/auth/sso-relay?returnTo=${encodeURIComponent(t)}`);
|
|
138
150
|
return;
|
|
139
151
|
}
|
|
140
152
|
} catch {}
|
|
141
|
-
|
|
153
|
+
L(null), z(null), V(null), U(null), J([]);
|
|
142
154
|
}
|
|
143
155
|
} finally {
|
|
144
|
-
|
|
156
|
+
P.current = !1, e();
|
|
145
157
|
}
|
|
146
158
|
}, n = setTimeout(() => {
|
|
147
159
|
e();
|
|
148
160
|
}, 5e3);
|
|
149
|
-
return
|
|
161
|
+
return ae({
|
|
150
162
|
bridgeUrl: w,
|
|
151
|
-
allowedOrigins:
|
|
163
|
+
allowedOrigins: E,
|
|
152
164
|
onStateChanged: t,
|
|
153
|
-
debug:
|
|
165
|
+
debug: j ?? !1
|
|
154
166
|
}), () => {
|
|
155
167
|
clearTimeout(n);
|
|
156
168
|
};
|
|
157
169
|
}, [
|
|
158
170
|
w,
|
|
159
|
-
|
|
160
|
-
A,
|
|
171
|
+
E,
|
|
161
172
|
j,
|
|
173
|
+
M,
|
|
162
174
|
Y
|
|
163
175
|
]);
|
|
164
|
-
let
|
|
165
|
-
let r =
|
|
176
|
+
let ge = T((e, t, n) => {
|
|
177
|
+
let r = A(t) ?? Date.now() + 3600 * 1e3, i = {
|
|
166
178
|
accessToken: t,
|
|
167
179
|
refreshToken: n,
|
|
168
180
|
expiresAt: r
|
|
169
|
-
}, a =
|
|
170
|
-
|
|
181
|
+
}, a = ee(e, i);
|
|
182
|
+
L(a), z(e), V(i), U(null), K(!1), q(null), Y();
|
|
171
183
|
try {
|
|
172
|
-
|
|
184
|
+
ie(a, window.location.origin);
|
|
173
185
|
} catch {}
|
|
174
|
-
|
|
186
|
+
P.current || y()?.notifyLogin({
|
|
175
187
|
user: e,
|
|
176
188
|
tokens: {
|
|
177
189
|
accessToken: t,
|
|
@@ -180,43 +192,45 @@ function N({ children: p, onTokenExpired: h, onSessionExpiringSoon: v, onRefresh
|
|
|
180
192
|
},
|
|
181
193
|
activeAccountId: a,
|
|
182
194
|
activeProfileId: a,
|
|
183
|
-
profiles:
|
|
195
|
+
profiles: c()
|
|
184
196
|
});
|
|
185
|
-
}, [Y]), X =
|
|
186
|
-
|
|
197
|
+
}, [Y]), X = T(() => {
|
|
198
|
+
I && l(I);
|
|
187
199
|
let e = u();
|
|
188
|
-
e ? (
|
|
200
|
+
e ? (L(e), z(o(e)), V(a(e)), U(s(e))) : (L(null), z(null), V(null), U(null)), K(!1), q(null), Y();
|
|
189
201
|
try {
|
|
190
|
-
|
|
202
|
+
g();
|
|
191
203
|
} catch {}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
204
|
+
P.current || y()?.notifyLogout();
|
|
205
|
+
let t = N();
|
|
206
|
+
t && !P.current && window.location.replace(t);
|
|
207
|
+
}, [I, Y]), _e = T((e) => {
|
|
208
|
+
if (!R || !I) return;
|
|
195
209
|
let t = {
|
|
196
|
-
...
|
|
210
|
+
...R,
|
|
197
211
|
...e
|
|
198
212
|
};
|
|
199
|
-
|
|
200
|
-
id:
|
|
213
|
+
z(t), p(I, t), r({
|
|
214
|
+
id: I,
|
|
201
215
|
email: t.email,
|
|
202
216
|
name: t.name ?? `${t.firstName ?? ""} ${t.lastName ?? ""}`.trim(),
|
|
203
217
|
avatar: t.avatar,
|
|
204
218
|
lastLogin: (/* @__PURE__ */ new Date()).toISOString()
|
|
205
219
|
}), Y();
|
|
206
220
|
}, [
|
|
221
|
+
R,
|
|
207
222
|
I,
|
|
208
|
-
P,
|
|
209
223
|
Y
|
|
210
|
-
]), Z =
|
|
211
|
-
if (!(!
|
|
212
|
-
|
|
224
|
+
]), Z = T(async () => {
|
|
225
|
+
if (!(!B?.refreshToken || !b || !I)) {
|
|
226
|
+
G(!0);
|
|
213
227
|
try {
|
|
214
|
-
let e = await
|
|
228
|
+
let e = await b(B.refreshToken), t = A(e.accessToken), n = e.expiresAt ?? t ?? Date.now() + 3600 * 1e3, r = {
|
|
215
229
|
accessToken: e.accessToken,
|
|
216
|
-
refreshToken: e.refreshToken ??
|
|
230
|
+
refreshToken: e.refreshToken ?? B.refreshToken,
|
|
217
231
|
expiresAt: n
|
|
218
232
|
};
|
|
219
|
-
|
|
233
|
+
V(r), f(I, r), P.current || y()?.notifyTokenRefresh({
|
|
220
234
|
accessToken: r.accessToken,
|
|
221
235
|
refreshToken: r.refreshToken,
|
|
222
236
|
expiresAt: r.expiresAt
|
|
@@ -224,168 +238,170 @@ function N({ children: p, onTokenExpired: h, onSessionExpiringSoon: v, onRefresh
|
|
|
224
238
|
} catch (e) {
|
|
225
239
|
console.error("Failed to refresh token:", e), X(), h?.();
|
|
226
240
|
} finally {
|
|
227
|
-
|
|
241
|
+
G(!1);
|
|
228
242
|
}
|
|
229
243
|
}
|
|
230
244
|
}, [
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
245
|
+
B,
|
|
246
|
+
b,
|
|
247
|
+
I,
|
|
234
248
|
X,
|
|
235
249
|
h
|
|
236
|
-
]),
|
|
237
|
-
|
|
238
|
-
}, [
|
|
239
|
-
|
|
240
|
-
}, []),
|
|
241
|
-
if (!
|
|
250
|
+
]), Q = T((e) => R?.permissions ? R.permissions.includes(e) || R.permissions.includes("*") : !1, [R]), ve = T((e) => {
|
|
251
|
+
U(e), I && m(I, e);
|
|
252
|
+
}, [I]), ye = T((e, t) => {
|
|
253
|
+
K(e), q(t ?? null);
|
|
254
|
+
}, []), be = T((e) => {
|
|
255
|
+
if (!ne(e)) {
|
|
242
256
|
console.error(`Profile ${e} not found`);
|
|
243
257
|
return;
|
|
244
258
|
}
|
|
245
|
-
|
|
246
|
-
}, [Y]),
|
|
247
|
-
|
|
259
|
+
L(e), z(o(e)), V(a(e)), U(s(e)), K(!1), q(null), Y(), P.current || y()?.notifyAccountSwitch(e);
|
|
260
|
+
}, [Y]), xe = T((e, t, n) => {
|
|
261
|
+
ee(e, {
|
|
248
262
|
accessToken: t,
|
|
249
263
|
refreshToken: n,
|
|
250
|
-
expiresAt:
|
|
251
|
-
}),
|
|
252
|
-
}, [
|
|
253
|
-
if (e ===
|
|
264
|
+
expiresAt: A(t) ?? Date.now() + 3600 * 1e3
|
|
265
|
+
}), I && d(I), Y();
|
|
266
|
+
}, [I, Y]), Se = T((e) => {
|
|
267
|
+
if (e === I) {
|
|
254
268
|
console.error("Cannot remove active account — logout first");
|
|
255
269
|
return;
|
|
256
270
|
}
|
|
257
271
|
l(e), Y();
|
|
258
|
-
}, [
|
|
259
|
-
|
|
272
|
+
}, [I, Y]), Ce = T(() => {
|
|
273
|
+
te(), L(null), z(null), V(null), U(null), K(!1), q(null), J([]);
|
|
260
274
|
try {
|
|
261
|
-
|
|
275
|
+
g();
|
|
262
276
|
} catch {}
|
|
263
|
-
|
|
277
|
+
P.current || y()?.notifyLogoutAll();
|
|
278
|
+
let e = N();
|
|
279
|
+
e && !P.current && window.location.replace(e);
|
|
264
280
|
}, []);
|
|
265
|
-
|
|
266
|
-
if (!
|
|
267
|
-
let e =
|
|
281
|
+
D(() => {
|
|
282
|
+
if (!B?.expiresAt) return;
|
|
283
|
+
let e = B.expiresAt - Date.now();
|
|
268
284
|
if (e <= 0) {
|
|
269
|
-
|
|
285
|
+
b && B?.refreshToken ? Z() : h?.();
|
|
270
286
|
return;
|
|
271
287
|
}
|
|
272
288
|
let t = [];
|
|
273
|
-
if (
|
|
289
|
+
if (b && B?.refreshToken) {
|
|
274
290
|
let n = Math.max(0, e - 300 * 1e3);
|
|
275
291
|
t.push(setTimeout(() => {
|
|
276
292
|
Z();
|
|
277
293
|
}, n));
|
|
278
294
|
}
|
|
279
|
-
if (
|
|
295
|
+
if (_) {
|
|
280
296
|
let n = Math.max(0, e - 300 * 1e3);
|
|
281
297
|
t.push(setTimeout(() => {
|
|
282
|
-
|
|
298
|
+
_();
|
|
283
299
|
}, n));
|
|
284
300
|
}
|
|
285
|
-
return (!
|
|
301
|
+
return (!b || !B?.refreshToken) && t.push(setTimeout(() => {
|
|
286
302
|
h?.();
|
|
287
303
|
}, e)), () => t.forEach(clearTimeout);
|
|
288
304
|
}, [
|
|
289
|
-
|
|
290
|
-
|
|
305
|
+
B?.expiresAt,
|
|
306
|
+
B?.refreshToken,
|
|
291
307
|
Z,
|
|
292
|
-
|
|
308
|
+
b,
|
|
293
309
|
h,
|
|
294
|
-
|
|
310
|
+
_
|
|
295
311
|
]);
|
|
296
|
-
let
|
|
312
|
+
let we = T(() => {
|
|
297
313
|
let e = u();
|
|
298
314
|
if (!e) {
|
|
299
|
-
(
|
|
315
|
+
(R || B) && (z(null), V(null), U(null), L(null), J([]));
|
|
300
316
|
return;
|
|
301
317
|
}
|
|
302
|
-
let t =
|
|
303
|
-
e !==
|
|
318
|
+
let t = a(e), n = s(e), r = o(e);
|
|
319
|
+
e !== I && L(e), t?.accessToken !== B?.accessToken && V(t), n !== H && U(n), r && r.id !== R?.id && z(r), Y();
|
|
304
320
|
}, [
|
|
321
|
+
B,
|
|
305
322
|
R,
|
|
323
|
+
H,
|
|
306
324
|
I,
|
|
307
|
-
B,
|
|
308
|
-
P,
|
|
309
325
|
Y
|
|
310
326
|
]);
|
|
311
|
-
|
|
312
|
-
let e = () =>
|
|
313
|
-
window.addEventListener(
|
|
314
|
-
let
|
|
327
|
+
D(() => {
|
|
328
|
+
let e = () => we();
|
|
329
|
+
window.addEventListener(n, e), window.addEventListener("storage", e);
|
|
330
|
+
let t = setInterval(e, 1e4);
|
|
315
331
|
return () => {
|
|
316
|
-
window.removeEventListener(
|
|
332
|
+
window.removeEventListener(n, e), window.removeEventListener("storage", e), clearInterval(t);
|
|
317
333
|
};
|
|
318
|
-
}, [
|
|
319
|
-
if (!
|
|
334
|
+
}, [we]), D(() => {
|
|
335
|
+
if (!B?.accessToken || !w) return;
|
|
320
336
|
let t = async () => {
|
|
321
337
|
if (document.visibilityState === "visible") try {
|
|
322
|
-
if (
|
|
323
|
-
|
|
338
|
+
if (ce()) {
|
|
339
|
+
L(null), z(null), V(null), U(null), J([]);
|
|
324
340
|
return;
|
|
325
341
|
}
|
|
326
|
-
if (
|
|
327
|
-
await
|
|
342
|
+
if (re()) return;
|
|
343
|
+
await se(`${e().globalBaseUrl}/global/graphql`, B.accessToken) && X();
|
|
328
344
|
} catch {}
|
|
329
345
|
};
|
|
330
346
|
return document.addEventListener("visibilitychange", t), () => document.removeEventListener("visibilitychange", t);
|
|
331
347
|
}, [
|
|
332
|
-
|
|
348
|
+
B?.accessToken,
|
|
333
349
|
w,
|
|
334
350
|
X
|
|
335
351
|
]);
|
|
336
|
-
let $ =
|
|
337
|
-
user:
|
|
338
|
-
tokens:
|
|
352
|
+
let $ = le(() => !!R && !!B, [R, B]), Te = le(() => ({
|
|
353
|
+
user: R,
|
|
354
|
+
tokens: B,
|
|
339
355
|
isAuthenticated: $,
|
|
340
|
-
isLoading:
|
|
341
|
-
login:
|
|
356
|
+
isLoading: W,
|
|
357
|
+
login: ge,
|
|
342
358
|
logout: X,
|
|
343
|
-
updateUser:
|
|
359
|
+
updateUser: _e,
|
|
344
360
|
refreshAccessToken: Z,
|
|
345
|
-
hasPermission:
|
|
346
|
-
setWorkspaceToken:
|
|
347
|
-
workspaceToken:
|
|
348
|
-
mfaRequired:
|
|
349
|
-
mfaChallengeId:
|
|
350
|
-
setMfaState:
|
|
351
|
-
activeProfileId:
|
|
352
|
-
accounts:
|
|
353
|
-
switchAccount:
|
|
354
|
-
addAccount:
|
|
355
|
-
removeAccount:
|
|
356
|
-
logoutAll:
|
|
357
|
-
currentUser:
|
|
361
|
+
hasPermission: Q,
|
|
362
|
+
setWorkspaceToken: ve,
|
|
363
|
+
workspaceToken: H,
|
|
364
|
+
mfaRequired: pe,
|
|
365
|
+
mfaChallengeId: me,
|
|
366
|
+
setMfaState: ye,
|
|
367
|
+
activeProfileId: I,
|
|
368
|
+
accounts: he,
|
|
369
|
+
switchAccount: be,
|
|
370
|
+
addAccount: xe,
|
|
371
|
+
removeAccount: Se,
|
|
372
|
+
logoutAll: Ce,
|
|
373
|
+
currentUser: R
|
|
358
374
|
}), [
|
|
359
|
-
I,
|
|
360
375
|
R,
|
|
376
|
+
B,
|
|
361
377
|
$,
|
|
362
|
-
|
|
363
|
-
he,
|
|
364
|
-
X,
|
|
378
|
+
W,
|
|
365
379
|
ge,
|
|
366
|
-
|
|
380
|
+
X,
|
|
367
381
|
_e,
|
|
382
|
+
Z,
|
|
368
383
|
Q,
|
|
369
|
-
B,
|
|
370
|
-
me,
|
|
371
|
-
G,
|
|
372
384
|
ve,
|
|
373
|
-
|
|
374
|
-
|
|
385
|
+
H,
|
|
386
|
+
pe,
|
|
387
|
+
me,
|
|
375
388
|
ye,
|
|
389
|
+
I,
|
|
390
|
+
he,
|
|
376
391
|
be,
|
|
377
392
|
xe,
|
|
378
|
-
Se
|
|
393
|
+
Se,
|
|
394
|
+
Ce
|
|
379
395
|
]);
|
|
380
|
-
return /* @__PURE__ */
|
|
381
|
-
value:
|
|
382
|
-
children:
|
|
396
|
+
return /* @__PURE__ */ de(k.Provider, {
|
|
397
|
+
value: Te,
|
|
398
|
+
children: t
|
|
383
399
|
});
|
|
384
400
|
}
|
|
385
|
-
function
|
|
386
|
-
let e =
|
|
401
|
+
function L() {
|
|
402
|
+
let e = E(k);
|
|
387
403
|
if (!e) throw Error("useAuth must be used within an AuthProvider");
|
|
388
404
|
return e;
|
|
389
405
|
}
|
|
390
406
|
//#endregion
|
|
391
|
-
export {
|
|
407
|
+
export { I as AuthProvider, L as useAuth };
|