tempest-react-sdk 0.84.0 → 0.85.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/dist/auth/create-tempest-auth.cjs +1 -1
- package/dist/auth/create-tempest-auth.cjs.map +1 -1
- package/dist/auth/create-tempest-auth.js +258 -187
- package/dist/auth/create-tempest-auth.js.map +1 -1
- package/dist/components/Markdown/Markdown.cjs +1 -1
- package/dist/components/Markdown/Markdown.cjs.map +1 -1
- package/dist/components/Markdown/Markdown.js +29 -28
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/markdown-parse.cjs +6 -5
- package/dist/components/Markdown/markdown-parse.cjs.map +1 -1
- package/dist/components/Markdown/markdown-parse.js +195 -160
- package/dist/components/Markdown/markdown-parse.js.map +1 -1
- package/dist/payments/PixCheckout.cjs +1 -1
- package/dist/payments/PixCheckout.cjs.map +1 -1
- package/dist/payments/PixCheckout.js +1 -1
- package/dist/payments/PixCheckout.js.map +1 -1
- package/dist/payments/mercado-pago.cjs.map +1 -1
- package/dist/payments/mercado-pago.js.map +1 -1
- package/dist/payments/outcome.cjs +1 -1
- package/dist/payments/outcome.cjs.map +1 -1
- package/dist/payments/outcome.js +8 -5
- package/dist/payments/outcome.js.map +1 -1
- package/dist/payments/use-mercado-pago-card.cjs +1 -1
- package/dist/payments/use-mercado-pago-card.cjs.map +1 -1
- package/dist/payments/use-mercado-pago-card.js +69 -61
- package/dist/payments/use-mercado-pago-card.js.map +1 -1
- package/dist/payments/use-pix-charge.cjs +1 -1
- package/dist/payments/use-pix-charge.cjs.map +1 -1
- package/dist/payments/use-pix-charge.js +36 -28
- package/dist/payments/use-pix-charge.js.map +1 -1
- package/dist/query/offline-persistence.cjs +1 -1
- package/dist/query/offline-persistence.cjs.map +1 -1
- package/dist/query/offline-persistence.js +100 -54
- package/dist/query/offline-persistence.js.map +1 -1
- package/dist/tempest-react-sdk.d.ts +245 -15
- package/package.json +1 -1
|
@@ -6,8 +6,8 @@ import { createAuthStore as i } from "./create-auth-store.js";
|
|
|
6
6
|
import { decodeJWT as a } from "./jwt.js";
|
|
7
7
|
import { createRefreshQueue as o } from "./refresh-queue.js";
|
|
8
8
|
//#region src/auth/create-tempest-auth.ts
|
|
9
|
-
var s = 1e4, c = 1e4;
|
|
10
|
-
function
|
|
9
|
+
var s = 1e4, c = 1e4, l = "sign-in-pending";
|
|
10
|
+
function u(e, t) {
|
|
11
11
|
return e.length === 0 ? Promise.resolve() : new Promise((n) => {
|
|
12
12
|
let r = setTimeout(n, t);
|
|
13
13
|
Promise.allSettled(e).then(() => {
|
|
@@ -15,15 +15,15 @@ function l(e, t) {
|
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
function
|
|
18
|
+
function d() {
|
|
19
19
|
let e = globalThis.crypto;
|
|
20
20
|
return typeof e?.randomUUID == "function" ? e.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
21
21
|
}
|
|
22
|
-
var
|
|
22
|
+
var f = /* @__PURE__ */ new Set();
|
|
23
23
|
function ee(t) {
|
|
24
|
-
e() && !
|
|
24
|
+
e() && !f.has(t) && (f.add(t), console.warn("[tempest-react-sdk] createTempestAuth: withCredentials is set without logoutPath. logout() cannot clear the HttpOnly refresh cookie, so the next refresh() — the boot restore — signs the same account back in. Pass logoutPath (the backend's cookie logout route) so the server revokes it."));
|
|
25
25
|
}
|
|
26
|
-
function
|
|
26
|
+
function te(e) {
|
|
27
27
|
if (!e) return null;
|
|
28
28
|
try {
|
|
29
29
|
let { sub: t } = a(e).payload;
|
|
@@ -32,7 +32,7 @@ function f(e) {
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
function
|
|
35
|
+
function ne(e) {
|
|
36
36
|
let t = e ?? {};
|
|
37
37
|
return {
|
|
38
38
|
token: t.access_token,
|
|
@@ -40,98 +40,106 @@ function te(e) {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
function p(a) {
|
|
43
|
-
let { baseURL:
|
|
43
|
+
let { baseURL: f, prefix: p, loginPath: re = "/api/auth/login", refreshPath: m = "/api/auth/refresh", logoutPath: h, onLogoutError: ie, mePath: ae, storeName: g = "tempest-auth", storage: _ = "local", withCredentials: v = !1, csrf: oe, fetcher: se, parseTokens: y = ne, parseUser: ce, refreshBody: b = (e) => e ? { refresh_token: e } : void 0, retry: le, redirectTo: ue, onSessionEnd: de } = a;
|
|
44
44
|
v && !h && ee(g);
|
|
45
|
-
let
|
|
45
|
+
let x = i({
|
|
46
46
|
name: g,
|
|
47
47
|
storage: _
|
|
48
|
-
}),
|
|
49
|
-
function
|
|
48
|
+
}), S = `${g}-refresh`;
|
|
49
|
+
function C() {
|
|
50
50
|
return typeof window > "u" ? null : _ === "session" ? window.sessionStorage : window.localStorage;
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
return
|
|
54
|
-
}
|
|
55
|
-
let
|
|
56
|
-
function
|
|
57
|
-
|
|
58
|
-
let t =
|
|
59
|
-
t && (e ? t.setItem(
|
|
60
|
-
}
|
|
61
|
-
let
|
|
62
|
-
function
|
|
63
|
-
|
|
64
|
-
let t =
|
|
65
|
-
t && (e ? t.setItem(
|
|
66
|
-
}
|
|
67
|
-
let
|
|
68
|
-
async function
|
|
69
|
-
if (!
|
|
70
|
-
let e =
|
|
52
|
+
function w() {
|
|
53
|
+
return C()?.getItem(S) ?? null;
|
|
54
|
+
}
|
|
55
|
+
let T = w();
|
|
56
|
+
function E(e) {
|
|
57
|
+
T = e;
|
|
58
|
+
let t = C();
|
|
59
|
+
t && (e ? t.setItem(S, e) : t.removeItem(S));
|
|
60
|
+
}
|
|
61
|
+
let D = `${g}-lineage`, fe = `tempest-react-sdk:${g}:refresh`, pe = `tempest-react-sdk:${g}:sign-in`, O = C()?.getItem(D) ?? null;
|
|
62
|
+
function k(e) {
|
|
63
|
+
O = e;
|
|
64
|
+
let t = C();
|
|
65
|
+
t && (e ? t.setItem(D, e) : t.removeItem(D));
|
|
66
|
+
}
|
|
67
|
+
let A = () => x.getState(), j = () => A().token;
|
|
68
|
+
async function me() {
|
|
69
|
+
if (!ae) return A().user;
|
|
70
|
+
let e = M, n;
|
|
71
71
|
try {
|
|
72
|
-
n = await
|
|
72
|
+
n = await Y.get(ae, { skipAuthRetry: !0 });
|
|
73
73
|
} catch (n) {
|
|
74
|
-
throw
|
|
74
|
+
throw M === e ? n : new t();
|
|
75
75
|
}
|
|
76
|
-
if (
|
|
77
|
-
return
|
|
76
|
+
if (M !== e || !J().continues) throw new t();
|
|
77
|
+
return A().setUser(n), n;
|
|
78
78
|
}
|
|
79
|
-
let
|
|
80
|
-
function
|
|
79
|
+
let M = 0, he = Promise.resolve(), N = 0, P = /* @__PURE__ */ new Set(), F = 0, I = /* @__PURE__ */ new Set(), L = /* @__PURE__ */ new Set(), R = /* @__PURE__ */ new Set();
|
|
80
|
+
function z(e) {
|
|
81
81
|
let t = e.then(() => void 0, () => void 0);
|
|
82
|
-
return
|
|
82
|
+
return L.add(t), t.then(() => L.delete(t)), e;
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function ge(t) {
|
|
85
85
|
e() && console.warn("[tempest-react-sdk] createTempestAuth: logoutPath revocation failed", t);
|
|
86
86
|
try {
|
|
87
|
-
|
|
87
|
+
ie?.(t);
|
|
88
88
|
} catch {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function _e(e) {
|
|
93
93
|
let t = (async () => {
|
|
94
94
|
try {
|
|
95
95
|
await e();
|
|
96
96
|
} catch (e) {
|
|
97
|
-
|
|
97
|
+
ge(e);
|
|
98
98
|
}
|
|
99
99
|
})();
|
|
100
|
-
return
|
|
100
|
+
return I.add(t), t.then(() => I.delete(t)), t;
|
|
101
101
|
}
|
|
102
|
-
function
|
|
103
|
-
h && !v && t &&
|
|
102
|
+
function B(e, t) {
|
|
103
|
+
h && !v && t && _e(() => V(e).post(h, { body: b(t) }));
|
|
104
104
|
}
|
|
105
|
-
function
|
|
105
|
+
function V(e) {
|
|
106
106
|
return n({
|
|
107
|
-
baseURL:
|
|
107
|
+
baseURL: f,
|
|
108
108
|
prefix: p,
|
|
109
109
|
withCredentials: v,
|
|
110
|
-
csrf:
|
|
111
|
-
fetcher:
|
|
110
|
+
csrf: oe,
|
|
111
|
+
fetcher: se,
|
|
112
112
|
getToken: () => e
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
function
|
|
116
|
-
|
|
115
|
+
function ve() {
|
|
116
|
+
M += 1, W = o(ye);
|
|
117
117
|
}
|
|
118
|
-
async function
|
|
119
|
-
let e =
|
|
120
|
-
|
|
121
|
-
let
|
|
118
|
+
async function ye() {
|
|
119
|
+
let e = j(), n = M;
|
|
120
|
+
R.add(n);
|
|
121
|
+
let r;
|
|
122
|
+
try {
|
|
123
|
+
r = await H(() => Se(e)), r === l && (await xe(), r = await H(() => Se(e)));
|
|
124
|
+
} finally {
|
|
125
|
+
R.delete(n);
|
|
126
|
+
}
|
|
127
|
+
if (r === l) throw new t();
|
|
128
|
+
if (!r) return;
|
|
129
|
+
let i = r;
|
|
122
130
|
try {
|
|
123
|
-
n
|
|
131
|
+
if (M !== n || F > 0) throw B(i.token ?? null, i.refreshToken), new t();
|
|
132
|
+
await G(K(i));
|
|
124
133
|
} finally {
|
|
125
|
-
|
|
134
|
+
i.release();
|
|
126
135
|
}
|
|
127
|
-
n && await J(Y(n));
|
|
128
136
|
}
|
|
129
|
-
async function
|
|
130
|
-
let t =
|
|
137
|
+
async function H(e) {
|
|
138
|
+
let t = U();
|
|
131
139
|
if (!t) return e();
|
|
132
140
|
let n = new AbortController(), r = setTimeout(() => n.abort(), c), i = !1, a;
|
|
133
141
|
try {
|
|
134
|
-
await t.request(
|
|
142
|
+
await t.request(fe, { signal: n.signal }, async () => {
|
|
135
143
|
i = !0, clearTimeout(r), a = await e();
|
|
136
144
|
});
|
|
137
145
|
} catch (t) {
|
|
@@ -140,104 +148,165 @@ function p(a) {
|
|
|
140
148
|
}
|
|
141
149
|
return a;
|
|
142
150
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
151
|
+
function U() {
|
|
152
|
+
return _ === "local" && typeof navigator < "u" ? navigator.locks : void 0;
|
|
153
|
+
}
|
|
154
|
+
async function be() {
|
|
155
|
+
let e = U();
|
|
156
|
+
if (!e) return () => void 0;
|
|
157
|
+
let t, n = new Promise((e) => {
|
|
158
|
+
t = e;
|
|
159
|
+
});
|
|
149
160
|
try {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
161
|
+
return await new Promise((r, i) => {
|
|
162
|
+
e.request(pe, { ifAvailable: !0 }, (e) => {
|
|
163
|
+
if (e === null) r(null);
|
|
164
|
+
else return r(t), n;
|
|
165
|
+
}).catch(i);
|
|
166
|
+
});
|
|
167
|
+
} catch {
|
|
168
|
+
return () => void 0;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async function xe() {
|
|
172
|
+
let e = U();
|
|
173
|
+
if (!e) return;
|
|
174
|
+
let t = new AbortController(), n = setTimeout(() => t.abort(), c);
|
|
175
|
+
await e.request(pe, { signal: t.signal }, () => void 0).catch(() => void 0), clearTimeout(n);
|
|
176
|
+
}
|
|
177
|
+
async function Se(e) {
|
|
178
|
+
let n = await be();
|
|
179
|
+
if (!n) return l;
|
|
180
|
+
let r = !1;
|
|
181
|
+
try {
|
|
182
|
+
let i = e !== null || A().user !== null || T !== null, a = J();
|
|
183
|
+
if (!i && j() !== null) return null;
|
|
184
|
+
if (!a.continues) throw new t();
|
|
185
|
+
if (j() !== e) return null;
|
|
186
|
+
let o = M, s;
|
|
187
|
+
try {
|
|
188
|
+
s = await z(Y.post(m, {
|
|
189
|
+
body: b(w()),
|
|
190
|
+
skipAuth: !0
|
|
191
|
+
}));
|
|
192
|
+
} catch (e) {
|
|
193
|
+
throw M === o ? e : new t();
|
|
194
|
+
}
|
|
195
|
+
let { token: c, refreshToken: l } = y(s);
|
|
196
|
+
if (M !== o || !J().continues) throw B(c ?? null, l), new t();
|
|
197
|
+
let u = te(e), f = te(c);
|
|
198
|
+
return u !== null && f !== null && u !== f ? (r = !0, {
|
|
199
|
+
data: s,
|
|
200
|
+
token: c,
|
|
201
|
+
refreshToken: l,
|
|
202
|
+
release: n
|
|
203
|
+
}) : (i || k(d()), A().setToken(c), l && E(l), null);
|
|
204
|
+
} finally {
|
|
205
|
+
r || n();
|
|
156
206
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
data: a,
|
|
162
|
-
token: o,
|
|
163
|
-
refreshToken: s
|
|
164
|
-
} : (n || j(u()), M().setToken(o), s && O(s), null);
|
|
165
|
-
}
|
|
166
|
-
let q = o(G);
|
|
167
|
-
function me(e) {
|
|
168
|
-
let t = N();
|
|
207
|
+
}
|
|
208
|
+
let W = o(ye);
|
|
209
|
+
function Ce(e) {
|
|
210
|
+
let t = j();
|
|
169
211
|
return t === null ? !1 : e.token === null || e.token !== t;
|
|
170
212
|
}
|
|
171
|
-
function
|
|
172
|
-
return
|
|
213
|
+
function we() {
|
|
214
|
+
return j() === null && w() === null;
|
|
173
215
|
}
|
|
174
|
-
async function
|
|
175
|
-
if (!(
|
|
216
|
+
async function Te() {
|
|
217
|
+
if (!(P.size > 0 && N === 0 && (await Promise.allSettled([...P]), j() !== null))) throw Error("anonymous 401 with no session");
|
|
176
218
|
}
|
|
177
|
-
async function
|
|
178
|
-
if (e.epoch !== null && e.epoch !==
|
|
179
|
-
if (
|
|
219
|
+
async function Ee(e) {
|
|
220
|
+
if (e.epoch !== null && e.epoch !== M) throw new t();
|
|
221
|
+
if (Ce(e)) {
|
|
180
222
|
if (e.token === null) throw Error("anonymous 401 under a live session");
|
|
181
223
|
return;
|
|
182
224
|
}
|
|
183
|
-
if (e.token === null &&
|
|
184
|
-
let n =
|
|
185
|
-
if (await
|
|
225
|
+
if (e.token === null && we()) return R.has(M) ? W() : Te();
|
|
226
|
+
let n = M;
|
|
227
|
+
if (await W(), M !== n) throw new t();
|
|
186
228
|
}
|
|
187
|
-
async function
|
|
188
|
-
if (n.epoch !== null && n.epoch !==
|
|
189
|
-
|
|
229
|
+
async function De(e, n) {
|
|
230
|
+
if (n.epoch !== null && n.epoch !== M || !J().continues) throw new t();
|
|
231
|
+
Ce(n) || n.token === null && we() || await Le();
|
|
190
232
|
}
|
|
191
|
-
async function
|
|
192
|
-
|
|
233
|
+
async function Oe(e) {
|
|
234
|
+
F += 1;
|
|
235
|
+
try {
|
|
236
|
+
return I.size > 0 && await u([...I], s), await G(Me(e));
|
|
237
|
+
} finally {
|
|
238
|
+
--F;
|
|
239
|
+
}
|
|
193
240
|
}
|
|
194
|
-
async function
|
|
195
|
-
return
|
|
241
|
+
async function ke() {
|
|
242
|
+
return I.size > 0 && await u([...I], s), G(Ae());
|
|
196
243
|
}
|
|
197
|
-
async function
|
|
198
|
-
|
|
244
|
+
async function G(e) {
|
|
245
|
+
P.add(e);
|
|
199
246
|
try {
|
|
200
247
|
return await e;
|
|
201
248
|
} finally {
|
|
202
|
-
|
|
249
|
+
P.delete(e);
|
|
203
250
|
}
|
|
204
251
|
}
|
|
205
|
-
async function
|
|
206
|
-
let e =
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
252
|
+
async function Ae() {
|
|
253
|
+
let e = M, n = await H(async () => {
|
|
254
|
+
let e = await be();
|
|
255
|
+
if (!e) return null;
|
|
256
|
+
try {
|
|
257
|
+
return {
|
|
258
|
+
data: await z(Y.post(m, {
|
|
259
|
+
body: b(w()),
|
|
260
|
+
skipAuth: !0
|
|
261
|
+
})),
|
|
262
|
+
release: e
|
|
263
|
+
};
|
|
264
|
+
} catch (t) {
|
|
265
|
+
throw e(), t;
|
|
266
|
+
}
|
|
215
267
|
});
|
|
268
|
+
if (!n) return je(e);
|
|
269
|
+
try {
|
|
270
|
+
let { token: r, refreshToken: i } = y(n.data);
|
|
271
|
+
if (M !== e) throw B(r ?? null, i), new t();
|
|
272
|
+
return await K({
|
|
273
|
+
data: n.data,
|
|
274
|
+
token: r,
|
|
275
|
+
refreshToken: i
|
|
276
|
+
});
|
|
277
|
+
} finally {
|
|
278
|
+
n.release();
|
|
279
|
+
}
|
|
216
280
|
}
|
|
217
|
-
async function
|
|
218
|
-
|
|
281
|
+
async function je(e) {
|
|
282
|
+
if (await xe(), M !== e || (await J().done.catch(() => void 0), j() === null)) throw new t();
|
|
283
|
+
let n = A().user;
|
|
284
|
+
return n === null ? me() : n;
|
|
285
|
+
}
|
|
286
|
+
async function Me(e) {
|
|
287
|
+
let n = M, r = await z(Y.post(re, {
|
|
219
288
|
body: e,
|
|
220
289
|
skipAuth: !0
|
|
221
|
-
})), { token: i, refreshToken: a } =
|
|
222
|
-
if (
|
|
223
|
-
return
|
|
290
|
+
})), { token: i, refreshToken: a } = y(r);
|
|
291
|
+
if (M !== n) throw B(i ?? null, a), new t();
|
|
292
|
+
return B(j(), w() ?? void 0), K({
|
|
224
293
|
data: r,
|
|
225
294
|
token: i,
|
|
226
295
|
refreshToken: a
|
|
227
296
|
});
|
|
228
297
|
}
|
|
229
|
-
async function
|
|
230
|
-
let { done: n } =
|
|
231
|
-
if (await n.catch(() => void 0),
|
|
232
|
-
|
|
233
|
-
let i =
|
|
234
|
-
return i == null ?
|
|
235
|
-
}
|
|
236
|
-
function
|
|
237
|
-
let { user: t, token: n } =
|
|
238
|
-
return (r || e !== "expired") &&
|
|
298
|
+
async function K(e) {
|
|
299
|
+
let { done: n } = q("switch"), r = M;
|
|
300
|
+
if (await n.catch(() => void 0), M !== r) throw new t();
|
|
301
|
+
k(d()), A().setToken(e.token), E(e.refreshToken ?? null);
|
|
302
|
+
let i = ce?.(e.data);
|
|
303
|
+
return i == null ? me() : (A().setUser(i), i);
|
|
304
|
+
}
|
|
305
|
+
function q(e) {
|
|
306
|
+
let { user: t, token: n } = A(), r = n !== null || t !== null || w() !== null;
|
|
307
|
+
return (r || e !== "expired") && ve(), A().logout(), E(null), k(null), r ? {
|
|
239
308
|
live: r,
|
|
240
|
-
done:
|
|
309
|
+
done: Ne({
|
|
241
310
|
reason: e,
|
|
242
311
|
user: t,
|
|
243
312
|
token: n,
|
|
@@ -245,29 +314,29 @@ function p(a) {
|
|
|
245
314
|
})
|
|
246
315
|
} : {
|
|
247
316
|
live: r,
|
|
248
|
-
done: e === "switch" ||
|
|
317
|
+
done: e === "switch" || N === 0 ? he : Promise.resolve()
|
|
249
318
|
};
|
|
250
319
|
}
|
|
251
|
-
function
|
|
252
|
-
if (!
|
|
253
|
-
let t =
|
|
254
|
-
|
|
320
|
+
function Ne(e) {
|
|
321
|
+
if (!de) return Promise.resolve();
|
|
322
|
+
let t = V(e.token);
|
|
323
|
+
N += 1;
|
|
255
324
|
let n = (async () => {
|
|
256
325
|
try {
|
|
257
|
-
await
|
|
326
|
+
await de({
|
|
258
327
|
...e,
|
|
259
328
|
api: t
|
|
260
329
|
});
|
|
261
330
|
} finally {
|
|
262
|
-
--
|
|
331
|
+
--N;
|
|
263
332
|
}
|
|
264
333
|
})();
|
|
265
|
-
return
|
|
334
|
+
return he = n.then(() => void 0, () => void 0), n.then(() => void 0);
|
|
266
335
|
}
|
|
267
|
-
function
|
|
268
|
-
let e =
|
|
336
|
+
function Pe() {
|
|
337
|
+
let e = C();
|
|
269
338
|
if (!e) return null;
|
|
270
|
-
let t = e.getItem(
|
|
339
|
+
let t = e.getItem(S), n = e.getItem(D), r = e.getItem(g);
|
|
271
340
|
if (!r) return {
|
|
272
341
|
user: null,
|
|
273
342
|
token: null,
|
|
@@ -291,19 +360,19 @@ function p(a) {
|
|
|
291
360
|
};
|
|
292
361
|
}
|
|
293
362
|
}
|
|
294
|
-
function
|
|
295
|
-
let e =
|
|
363
|
+
function J() {
|
|
364
|
+
let e = Pe(), { user: t, token: n } = A();
|
|
296
365
|
if (e === null) return {
|
|
297
366
|
continues: !0,
|
|
298
367
|
done: Promise.resolve()
|
|
299
368
|
};
|
|
300
369
|
let r = JSON.stringify(e.user) === JSON.stringify(t);
|
|
301
|
-
if (e.token === n && e.refreshToken ===
|
|
370
|
+
if (e.token === n && e.refreshToken === T && e.lineage === O && r) return {
|
|
302
371
|
continues: !0,
|
|
303
372
|
done: Promise.resolve()
|
|
304
373
|
};
|
|
305
|
-
let i = e.lineage !== null ||
|
|
306
|
-
if (a ||
|
|
374
|
+
let i = e.lineage !== null || O !== null ? e.lineage === O : e.token === n || n !== null && r, a = e.token !== null && i, o = n !== null || t !== null || T !== null;
|
|
375
|
+
if (a || ve(), T = e.refreshToken, O = e.lineage, x.setState({
|
|
307
376
|
user: e.user,
|
|
308
377
|
token: e.token,
|
|
309
378
|
isAuthenticated: e.token !== null
|
|
@@ -311,7 +380,7 @@ function p(a) {
|
|
|
311
380
|
continues: a,
|
|
312
381
|
done: Promise.resolve()
|
|
313
382
|
};
|
|
314
|
-
let s =
|
|
383
|
+
let s = Ne({
|
|
315
384
|
reason: e.token === null ? "logout" : "switch",
|
|
316
385
|
user: t,
|
|
317
386
|
token: n,
|
|
@@ -322,56 +391,58 @@ function p(a) {
|
|
|
322
391
|
done: s
|
|
323
392
|
};
|
|
324
393
|
}
|
|
325
|
-
function
|
|
394
|
+
function Fe() {
|
|
326
395
|
if (!h) return null;
|
|
327
|
-
let e = h, { token: t, user: n } =
|
|
396
|
+
let e = h, { token: t, user: n } = A(), r = w();
|
|
328
397
|
if (!v && t === null && n === null && r === null) return null;
|
|
329
|
-
let i = v ? [...
|
|
330
|
-
return
|
|
398
|
+
let i = v ? [...L] : [];
|
|
399
|
+
return _e(async () => (await u(i, s), V(t).post(e, { body: b(r) })));
|
|
331
400
|
}
|
|
332
|
-
function
|
|
333
|
-
let e =
|
|
401
|
+
function Ie() {
|
|
402
|
+
let e = J();
|
|
334
403
|
if (!e.continues) return e.done;
|
|
335
|
-
let t =
|
|
404
|
+
let t = Fe(), { done: n } = q("logout");
|
|
336
405
|
return t ? Promise.all([t, n]).then(() => void 0) : n;
|
|
337
406
|
}
|
|
338
|
-
async function
|
|
339
|
-
let { live: e, done: t } =
|
|
340
|
-
await t.catch(() => void 0), e &&
|
|
407
|
+
async function Le() {
|
|
408
|
+
let { live: e, done: t } = q("expired");
|
|
409
|
+
await t.catch(() => void 0), e && ue && typeof window < "u" && window.location.assign(ue);
|
|
341
410
|
}
|
|
342
|
-
let
|
|
343
|
-
baseURL:
|
|
411
|
+
let Y = n({
|
|
412
|
+
baseURL: f,
|
|
344
413
|
prefix: p,
|
|
345
414
|
withCredentials: v,
|
|
346
|
-
csrf:
|
|
347
|
-
fetcher:
|
|
348
|
-
getToken:
|
|
349
|
-
getSessionEpoch: () =>
|
|
350
|
-
refresh:
|
|
351
|
-
retry:
|
|
352
|
-
onUnauthorized:
|
|
353
|
-
}),
|
|
354
|
-
epoch:
|
|
355
|
-
key:
|
|
356
|
-
}),
|
|
357
|
-
current:
|
|
358
|
-
subscribe: (e) =>
|
|
415
|
+
csrf: oe,
|
|
416
|
+
fetcher: se,
|
|
417
|
+
getToken: j,
|
|
418
|
+
getSessionEpoch: () => M,
|
|
419
|
+
refresh: Ee,
|
|
420
|
+
retry: le,
|
|
421
|
+
onUnauthorized: De
|
|
422
|
+
}), Re = () => W(), X = null, Z = () => j() === null ? null : O === null ? (X?.epoch !== M && (X = {
|
|
423
|
+
epoch: M,
|
|
424
|
+
key: d()
|
|
425
|
+
}), X.key) : O, Q = {
|
|
426
|
+
current: Z,
|
|
427
|
+
subscribe: (e) => x.subscribe(e)
|
|
359
428
|
};
|
|
360
|
-
r(Q,
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
429
|
+
r(Y, Q), r(j, Q), r(Z, Q);
|
|
430
|
+
let ze = () => P.size === 0 && !(R.size > 0 && j() === null);
|
|
431
|
+
function Be(e) {
|
|
432
|
+
e.storageArea === C() && (e.key === null || e.key === g || e.key === S || e.key === D) && J();
|
|
433
|
+
}
|
|
434
|
+
let $ = typeof window > "u" ? null : window;
|
|
435
|
+
return $?.addEventListener("storage", Be), {
|
|
436
|
+
useAuthStore: x,
|
|
437
|
+
api: Y,
|
|
438
|
+
login: Oe,
|
|
439
|
+
logout: Ie,
|
|
440
|
+
refresh: Re,
|
|
441
|
+
restore: ke,
|
|
442
|
+
getToken: j,
|
|
443
|
+
sessionKey: Z,
|
|
444
|
+
isSessionKnown: ze,
|
|
445
|
+
dispose: () => $?.removeEventListener("storage", Be)
|
|
375
446
|
};
|
|
376
447
|
}
|
|
377
448
|
//#endregion
|