@burdenoff/fe-libs 2026.601.6 → 2026.601.8
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/chrome/ProductSideNav.d.ts.map +1 -1
- package/dist/chrome/SideNavigation.d.ts.map +1 -1
- package/dist/chrome/sideNavigation/NavItemRenderer.d.ts.map +1 -1
- package/dist/shared/components/PWAInstallBanner.d.ts.map +1 -1
- package/dist/shared/graphql/client.d.ts.map +1 -1
- package/dist/shared/graphql/client.js +61 -61
- package/dist/shared/graphql/fetch.d.ts.map +1 -1
- package/dist/shared/graphql/fetch.js +120 -120
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +204 -169
- package/dist/shared/providers/shell/ProfileStorageManager.d.ts +1 -1
- package/dist/shared/providers/shell/ProfileStorageManager.d.ts.map +1 -1
- package/dist/shared/providers/shell/ProfileStorageManager.js +110 -102
- package/dist/shared/providers/shell/authProvider/useAuthActions.d.ts.map +1 -1
- package/dist/shared/providers/shell/authProvider/useAuthActions.js +12 -10
- package/dist/shared/providers/shell/authProvider/useTokenExpiryTimer.d.ts.map +1 -1
- package/dist/shared/providers/shell/authProvider/useTokenExpiryTimer.js +8 -8
- package/dist/shared/utils/apollo.js +1 -1
- package/dist/shared/utils/authCookie.d.ts.map +1 -1
- package/dist/shared/utils/authCookie.js +1 -1
- package/dist/shared/utils/authErrorHandling.d.ts.map +1 -1
- package/dist/shared/utils/authErrorHandling.js +23 -8
- package/dist/shared/utils/backendErrors.d.ts +23 -0
- package/dist/shared/utils/backendErrors.d.ts.map +1 -1
- package/dist/shared/utils/backendErrors.js +113 -39
- package/dist/shared/utils/index.d.ts +2 -2
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared-utils.js +12 -12
- package/dist/shared.js +97 -97
- package/package.json +1 -1
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
import { __exportAll as e } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
//#region src/shared/providers/shell/ProfileStorageManager.ts
|
|
3
3
|
var t = /* @__PURE__ */ e({
|
|
4
|
-
PROFILE_STORAGE_CHANGE_EVENT: () =>
|
|
5
|
-
addProfile: () =>
|
|
6
|
-
clearActiveProfileId: () =>
|
|
7
|
-
getActiveContext: () =>
|
|
8
|
-
getActiveProfileId: () =>
|
|
9
|
-
getActiveTokens: () =>
|
|
10
|
-
getActiveUser: () =>
|
|
11
|
-
getActiveWorkspaceToken: () =>
|
|
12
|
-
getProfileContext: () =>
|
|
13
|
-
getProfileLocale: () =>
|
|
14
|
-
getProfileTokens: () =>
|
|
15
|
-
getProfileUser: () =>
|
|
16
|
-
getProfileWorkspaceToken: () =>
|
|
17
|
-
getProfiles: () =>
|
|
18
|
-
loginProfile: () =>
|
|
19
|
-
logoutActiveProfile: () =>
|
|
20
|
-
logoutAllProfiles: () =>
|
|
21
|
-
removeAllProfiles: () =>
|
|
22
|
-
removeProfile: () =>
|
|
23
|
-
resolveActiveProfileId: () =>
|
|
24
|
-
setActiveProfileId: () =>
|
|
25
|
-
setProfileContext: () =>
|
|
26
|
-
setProfileLocale: () =>
|
|
27
|
-
setProfileTokens: () =>
|
|
28
|
-
setProfileUser: () =>
|
|
29
|
-
setProfileWorkspaceToken: () =>
|
|
30
|
-
setProfiles: () =>
|
|
31
|
-
switchProfile: () =>
|
|
32
|
-
}), n = "bf-profiles", r = "bf-active-profile", i = "bf-
|
|
33
|
-
function
|
|
34
|
-
typeof window < "u" && window.dispatchEvent(new Event(
|
|
35
|
-
}
|
|
36
|
-
function c(e, t) {
|
|
37
|
-
return `${i}-${e}-${t}`;
|
|
4
|
+
PROFILE_STORAGE_CHANGE_EVENT: () => s,
|
|
5
|
+
addProfile: () => h,
|
|
6
|
+
clearActiveProfileId: () => b,
|
|
7
|
+
getActiveContext: () => F,
|
|
8
|
+
getActiveProfileId: () => v,
|
|
9
|
+
getActiveTokens: () => N,
|
|
10
|
+
getActiveUser: () => M,
|
|
11
|
+
getActiveWorkspaceToken: () => P,
|
|
12
|
+
getProfileContext: () => O,
|
|
13
|
+
getProfileLocale: () => A,
|
|
14
|
+
getProfileTokens: () => w,
|
|
15
|
+
getProfileUser: () => S,
|
|
16
|
+
getProfileWorkspaceToken: () => E,
|
|
17
|
+
getProfiles: () => p,
|
|
18
|
+
loginProfile: () => I,
|
|
19
|
+
logoutActiveProfile: () => L,
|
|
20
|
+
logoutAllProfiles: () => R,
|
|
21
|
+
removeAllProfiles: () => _,
|
|
22
|
+
removeProfile: () => g,
|
|
23
|
+
resolveActiveProfileId: () => x,
|
|
24
|
+
setActiveProfileId: () => y,
|
|
25
|
+
setProfileContext: () => k,
|
|
26
|
+
setProfileLocale: () => j,
|
|
27
|
+
setProfileTokens: () => T,
|
|
28
|
+
setProfileUser: () => C,
|
|
29
|
+
setProfileWorkspaceToken: () => D,
|
|
30
|
+
setProfiles: () => m,
|
|
31
|
+
switchProfile: () => z
|
|
32
|
+
}), n = "bf-profiles", r = "bf-active-profile", i = "bf-last-active-profile", a = "bf-p", o = "session", s = "bf-profile-storage-change";
|
|
33
|
+
function c() {
|
|
34
|
+
typeof window < "u" && window.dispatchEvent(new Event(s));
|
|
38
35
|
}
|
|
39
36
|
function l(e, t) {
|
|
40
|
-
return `${
|
|
37
|
+
return `${a}-${e}-${t}`;
|
|
41
38
|
}
|
|
42
|
-
function u(e) {
|
|
39
|
+
function u(e, t) {
|
|
40
|
+
return `${a}-${e}-${o}-${t}`;
|
|
41
|
+
}
|
|
42
|
+
function d(e) {
|
|
43
43
|
try {
|
|
44
44
|
let t = localStorage.getItem(e);
|
|
45
45
|
return t ? JSON.parse(t) : null;
|
|
@@ -47,21 +47,21 @@ function u(e) {
|
|
|
47
47
|
return null;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function f(e, t) {
|
|
51
51
|
localStorage.setItem(e, JSON.stringify(t));
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
return
|
|
55
|
-
}
|
|
56
|
-
function p(e) {
|
|
57
|
-
d(n, e);
|
|
53
|
+
function p() {
|
|
54
|
+
return d(n) ?? [];
|
|
58
55
|
}
|
|
59
56
|
function m(e) {
|
|
60
|
-
|
|
61
|
-
t.push(e), p(t);
|
|
57
|
+
f(n, e);
|
|
62
58
|
}
|
|
63
59
|
function h(e) {
|
|
64
|
-
p(
|
|
60
|
+
let t = p().filter((t) => t.id !== e.id);
|
|
61
|
+
t.push(e), m(t);
|
|
62
|
+
}
|
|
63
|
+
function g(e) {
|
|
64
|
+
m(p().filter((t) => t.id !== e));
|
|
65
65
|
for (let t of [
|
|
66
66
|
"user",
|
|
67
67
|
"tokens",
|
|
@@ -74,51 +74,59 @@ function h(e) {
|
|
|
74
74
|
"theme-density",
|
|
75
75
|
"theme-typography",
|
|
76
76
|
"sidebar-collapsed"
|
|
77
|
-
]) localStorage.removeItem(
|
|
77
|
+
]) localStorage.removeItem(l(e, t)), sessionStorage.removeItem(u(e, t));
|
|
78
78
|
}
|
|
79
|
-
function
|
|
80
|
-
let e =
|
|
81
|
-
for (let t of e)
|
|
79
|
+
function _() {
|
|
80
|
+
let e = p();
|
|
81
|
+
for (let t of e) g(t.id);
|
|
82
82
|
localStorage.removeItem(n), sessionStorage.removeItem(r);
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function v() {
|
|
85
85
|
return sessionStorage.getItem(r);
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function y(e) {
|
|
88
88
|
sessionStorage.setItem(r, e);
|
|
89
|
+
try {
|
|
90
|
+
localStorage.setItem(i, e);
|
|
91
|
+
} catch {}
|
|
89
92
|
}
|
|
90
|
-
function
|
|
93
|
+
function b() {
|
|
91
94
|
sessionStorage.removeItem(r);
|
|
92
95
|
}
|
|
93
|
-
function
|
|
94
|
-
let e =
|
|
95
|
-
if (
|
|
96
|
-
let
|
|
97
|
-
|
|
96
|
+
function x() {
|
|
97
|
+
let e = p(), t = v();
|
|
98
|
+
if (t && e.some((e) => e.id === t)) return t;
|
|
99
|
+
let n = null;
|
|
100
|
+
try {
|
|
101
|
+
n = localStorage.getItem(i);
|
|
102
|
+
} catch {
|
|
103
|
+
n = null;
|
|
104
|
+
}
|
|
105
|
+
return n && e.some((e) => e.id === n) ? (y(n), n) : e.length > 0 ? (y(e[0].id), e[0].id) : null;
|
|
98
106
|
}
|
|
99
|
-
function
|
|
100
|
-
return
|
|
107
|
+
function S(e) {
|
|
108
|
+
return d(l(e, "user"));
|
|
101
109
|
}
|
|
102
|
-
function
|
|
103
|
-
let n =
|
|
104
|
-
t ?
|
|
110
|
+
function C(e, t) {
|
|
111
|
+
let n = l(e, "user");
|
|
112
|
+
t ? f(n, t) : localStorage.removeItem(n);
|
|
105
113
|
}
|
|
106
|
-
function
|
|
107
|
-
return
|
|
114
|
+
function w(e) {
|
|
115
|
+
return d(l(e, "tokens"));
|
|
108
116
|
}
|
|
109
|
-
function
|
|
110
|
-
let n =
|
|
111
|
-
t ?
|
|
117
|
+
function T(e, t) {
|
|
118
|
+
let n = l(e, "tokens");
|
|
119
|
+
t ? f(n, t) : localStorage.removeItem(n);
|
|
112
120
|
}
|
|
113
|
-
function
|
|
121
|
+
function E(e) {
|
|
114
122
|
try {
|
|
115
|
-
let t = sessionStorage.getItem(
|
|
123
|
+
let t = sessionStorage.getItem(u(e, "workspace-token"));
|
|
116
124
|
if (t) return t;
|
|
117
125
|
} catch {}
|
|
118
|
-
return localStorage.getItem(
|
|
126
|
+
return localStorage.getItem(l(e, "workspace-token"));
|
|
119
127
|
}
|
|
120
|
-
function
|
|
121
|
-
let n =
|
|
128
|
+
function D(e, t) {
|
|
129
|
+
let n = l(e, "workspace-token"), r = u(e, "workspace-token");
|
|
122
130
|
if (t) {
|
|
123
131
|
try {
|
|
124
132
|
sessionStorage.setItem(r, t);
|
|
@@ -130,55 +138,55 @@ function E(e, t) {
|
|
|
130
138
|
} catch {}
|
|
131
139
|
localStorage.removeItem(n);
|
|
132
140
|
}
|
|
133
|
-
|
|
141
|
+
c();
|
|
134
142
|
}
|
|
135
|
-
function
|
|
136
|
-
return
|
|
143
|
+
function O(e) {
|
|
144
|
+
return d(l(e, "context"));
|
|
137
145
|
}
|
|
138
|
-
function
|
|
139
|
-
|
|
146
|
+
function k(e, t) {
|
|
147
|
+
f(l(e, "context"), t);
|
|
140
148
|
}
|
|
141
|
-
function
|
|
142
|
-
return localStorage.getItem(
|
|
149
|
+
function A(e) {
|
|
150
|
+
return localStorage.getItem(l(e, "locale"));
|
|
143
151
|
}
|
|
144
|
-
function
|
|
145
|
-
localStorage.setItem(
|
|
146
|
-
}
|
|
147
|
-
function j() {
|
|
148
|
-
let e = b();
|
|
149
|
-
return e ? x(e) : null;
|
|
152
|
+
function j(e, t) {
|
|
153
|
+
localStorage.setItem(l(e, "locale"), t);
|
|
150
154
|
}
|
|
151
155
|
function M() {
|
|
152
|
-
let e =
|
|
153
|
-
return e ?
|
|
156
|
+
let e = x();
|
|
157
|
+
return e ? S(e) : null;
|
|
154
158
|
}
|
|
155
159
|
function N() {
|
|
156
|
-
let e =
|
|
157
|
-
return e ?
|
|
160
|
+
let e = x();
|
|
161
|
+
return e ? w(e) : null;
|
|
158
162
|
}
|
|
159
163
|
function P() {
|
|
160
|
-
let e =
|
|
161
|
-
return e ?
|
|
164
|
+
let e = x();
|
|
165
|
+
return e ? E(e) : null;
|
|
166
|
+
}
|
|
167
|
+
function F() {
|
|
168
|
+
let e = x();
|
|
169
|
+
return e ? O(e) : null;
|
|
162
170
|
}
|
|
163
|
-
function
|
|
171
|
+
function I(e, t) {
|
|
164
172
|
let n = e.id;
|
|
165
|
-
return
|
|
173
|
+
return h({
|
|
166
174
|
id: n,
|
|
167
175
|
email: e.email,
|
|
168
176
|
name: e.name ?? `${e.firstName ?? ""} ${e.lastName ?? ""}`.trim(),
|
|
169
177
|
avatar: e.avatar,
|
|
170
178
|
lastLogin: (/* @__PURE__ */ new Date()).toISOString()
|
|
171
|
-
}),
|
|
172
|
-
}
|
|
173
|
-
function I() {
|
|
174
|
-
let e = _();
|
|
175
|
-
e && (h(e), y(), b(), s());
|
|
179
|
+
}), C(n, e), T(n, t), y(n), c(), n;
|
|
176
180
|
}
|
|
177
181
|
function L() {
|
|
178
|
-
|
|
182
|
+
let e = v();
|
|
183
|
+
e && (g(e), b(), x(), c());
|
|
184
|
+
}
|
|
185
|
+
function R() {
|
|
186
|
+
_(), c();
|
|
179
187
|
}
|
|
180
|
-
function
|
|
181
|
-
return
|
|
188
|
+
function z(e) {
|
|
189
|
+
return p().some((t) => t.id === e) ? (y(e), !0) : !1;
|
|
182
190
|
}
|
|
183
191
|
//#endregion
|
|
184
|
-
export {
|
|
192
|
+
export { s as PROFILE_STORAGE_CHANGE_EVENT, t as ProfileStorageManager_exports, h as addProfile, b as clearActiveProfileId, F as getActiveContext, v as getActiveProfileId, N as getActiveTokens, M as getActiveUser, P as getActiveWorkspaceToken, O as getProfileContext, A as getProfileLocale, w as getProfileTokens, S as getProfileUser, E as getProfileWorkspaceToken, p as getProfiles, I as loginProfile, L as logoutActiveProfile, R as logoutAllProfiles, _ as removeAllProfiles, g as removeProfile, x as resolveActiveProfileId, y as setActiveProfileId, k as setProfileContext, j as setProfileLocale, T as setProfileTokens, C as setProfileUser, D as setProfileWorkspaceToken, m as setProfiles, z as switchProfile };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthActions.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useAuthActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAehB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,EAAE,eAAe,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"useAuthActions.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useAuthActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAehB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,EAAE,eAAe,GAAG,WAAW,CAkT/B"}
|
|
@@ -75,21 +75,23 @@ function b({ user: b, tokens: x, activeId: S, bridgeSyncInProgress: C, onRefresh
|
|
|
75
75
|
P,
|
|
76
76
|
D
|
|
77
77
|
]), R = y(async () => {
|
|
78
|
-
if (!
|
|
78
|
+
if (!w || !S) return;
|
|
79
|
+
let e = x?.refreshToken ?? t(S)?.refreshToken ?? void 0;
|
|
80
|
+
if (e) {
|
|
79
81
|
M(!0);
|
|
80
82
|
try {
|
|
81
|
-
let
|
|
82
|
-
accessToken:
|
|
83
|
-
refreshToken:
|
|
84
|
-
expiresAt:
|
|
83
|
+
let t = await w(e), n = v(t.accessToken), r = t.expiresAt ?? n ?? Date.now() + 1440 * 60 * 1e3, i = {
|
|
84
|
+
accessToken: t.accessToken,
|
|
85
|
+
refreshToken: t.refreshToken ?? e,
|
|
86
|
+
expiresAt: r
|
|
85
87
|
};
|
|
86
|
-
O(
|
|
87
|
-
accessToken:
|
|
88
|
-
refreshToken:
|
|
89
|
-
expiresAt:
|
|
88
|
+
O(i), u(S, i), C.current || g()?.notifyTokenRefresh({
|
|
89
|
+
accessToken: i.accessToken,
|
|
90
|
+
refreshToken: i.refreshToken,
|
|
91
|
+
expiresAt: i.expiresAt
|
|
90
92
|
});
|
|
91
93
|
} catch (e) {
|
|
92
|
-
console.error("Failed to refresh token:", e), I(), T?.();
|
|
94
|
+
console.error("Failed to refresh token:", e), x?.expiresAt && x.expiresAt - Date.now() > 0 || (I(), T?.());
|
|
93
95
|
} finally {
|
|
94
96
|
M(!1);
|
|
95
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenExpiryTimer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useTokenExpiryTimer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,qBAAqB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAChD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,EAAE,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"useTokenExpiryTimer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useTokenExpiryTimer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,qBAAqB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAChD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,EAAE,oBAAoB,GAAG,IAAI,CAkE7B"}
|
|
@@ -3,27 +3,27 @@ import { useEffect as e } from "react";
|
|
|
3
3
|
function t({ tokens: t, onRefreshToken: n, onTokenExpired: r, onSessionExpiringSoon: i, refreshAccessToken: a }) {
|
|
4
4
|
e(() => {
|
|
5
5
|
if (!t?.expiresAt) return;
|
|
6
|
-
let e = t.expiresAt - Date.now();
|
|
6
|
+
let e = t.expiresAt - Date.now(), o = !!n;
|
|
7
7
|
if (e <= 0) {
|
|
8
|
-
|
|
8
|
+
o ? a() : r?.();
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
let
|
|
12
|
-
if (
|
|
11
|
+
let s = [];
|
|
12
|
+
if (o) {
|
|
13
13
|
let t = Math.max(0, e - 300 * 1e3);
|
|
14
|
-
|
|
14
|
+
s.push(setTimeout(() => {
|
|
15
15
|
a();
|
|
16
16
|
}, t));
|
|
17
17
|
}
|
|
18
18
|
if (i) {
|
|
19
19
|
let t = Math.max(0, e - 300 * 1e3);
|
|
20
|
-
|
|
20
|
+
s.push(setTimeout(() => {
|
|
21
21
|
i();
|
|
22
22
|
}, t));
|
|
23
23
|
}
|
|
24
|
-
return
|
|
24
|
+
return s.push(setTimeout(() => {
|
|
25
25
|
r?.();
|
|
26
|
-
}, e)), () =>
|
|
26
|
+
}, e)), () => s.forEach(clearTimeout);
|
|
27
27
|
}, [
|
|
28
28
|
t?.expiresAt,
|
|
29
29
|
t?.refreshToken,
|
|
@@ -35,7 +35,7 @@ function d(e) {
|
|
|
35
35
|
}), v = a(({ error: e }) => {
|
|
36
36
|
let t = e.errors;
|
|
37
37
|
t ? t.forEach((e) => {
|
|
38
|
-
console.error(`[GraphQL error]: Message: ${e.message}, Location: ${JSON.stringify(e.locations)}, Path: ${e.path}`),
|
|
38
|
+
console.error(`[GraphQL error]: Message: ${e.message}, Location: ${JSON.stringify(e.locations)}, Path: ${e.path}`), e.extensions?.code === "UNAUTHENTICATED" && f?.();
|
|
39
39
|
}) : e && (console.error(`[Network error]: ${e.message}`), p?.(e));
|
|
40
40
|
}), y = s((e, { headers: t }) => {
|
|
41
41
|
let n = d?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authCookie.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/authCookie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA4DD,wBAAgB,uBAAuB,IAAI,OAAO,CAQjD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,SAA2B,GAAG,OAAO,CAU9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"authCookie.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/authCookie.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA4DD,wBAAgB,uBAAuB,IAAI,OAAO,CAQjD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,SAA2B,GAAG,OAAO,CAU9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAqC7E;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAyB,GAAG,IAAI,CAU3F;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,GAAG,IAAI,CAS9D;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAI5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
|
@@ -46,7 +46,7 @@ function l(t) {
|
|
|
46
46
|
let n = new URL(t);
|
|
47
47
|
if (!["https:", "http:"].includes(n.protocol) || n.protocol === "http:" && !["localhost", "127.0.0.1"].includes(n.hostname)) return !1;
|
|
48
48
|
if (n.hostname === "localhost" || n.hostname === "127.0.0.1" || n.hostname.endsWith(".local.burdenoff.com")) return !0;
|
|
49
|
-
for (let t of e) if (n.hostname === t || n.hostname === `app.${t}` || n.hostname === `alphaapp.${t}` || n.hostname === `www.${t}`) return !0;
|
|
49
|
+
for (let t of e) if (n.hostname === t || n.hostname === `app.${t}` || n.hostname === `alphaapp.${t}` || n.hostname === `admin.${t}` || n.hostname === `alphaadmin.${t}` || n.hostname === `www.${t}`) return !0;
|
|
50
50
|
return !1;
|
|
51
51
|
} catch {
|
|
52
52
|
return !1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authErrorHandling.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/authErrorHandling.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAoBzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAOxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"authErrorHandling.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/authErrorHandling.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAoBzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAOxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAqBnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI,GAAG,SAAS,GACrD,OAAO,CAET;AAED,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,2DAA2D;IAC3D,cAAc,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA+HtF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,EAAE,SAAS,SAAgB,GAAG,IAAI,CAW5F"}
|
|
@@ -16,11 +16,11 @@ function r(e) {
|
|
|
16
16
|
}
|
|
17
17
|
function i(e) {
|
|
18
18
|
let t = e.message.toLowerCase();
|
|
19
|
-
return t
|
|
19
|
+
return /\b401\b/.test(t) || /\bunauthorized\b/.test(t) || /\bunauthenticated\b/.test(t);
|
|
20
20
|
}
|
|
21
21
|
function a(e) {
|
|
22
22
|
let t = typeof e.extensions?.code == "string" ? e.extensions.code : "", n = typeof e.extensions?.errorCode == "string" ? e.extensions.errorCode : "", r = e.message?.toLowerCase() ?? "";
|
|
23
|
-
return t === "UNAUTHENTICATED" || n === "TOKEN_EXPIRED" || r.includes("token_expired") || r.includes("token expired") || r.includes("session expired")
|
|
23
|
+
return t === "UNAUTHENTICATED" || n === "TOKEN_EXPIRED" || r.includes("token_expired") || r.includes("token expired") || r.includes("session expired");
|
|
24
24
|
}
|
|
25
25
|
function o(e) {
|
|
26
26
|
return Array.isArray(e) && e.some((e) => a(e));
|
|
@@ -41,7 +41,12 @@ async function s(t) {
|
|
|
41
41
|
} catch {}
|
|
42
42
|
if (!s) return !1;
|
|
43
43
|
i.current = !0;
|
|
44
|
-
let c =
|
|
44
|
+
let c = new Set([
|
|
45
|
+
"INVALID_REFRESH_TOKEN",
|
|
46
|
+
"REFRESH_TOKEN_EXPIRED",
|
|
47
|
+
"SESSION_REVOKED",
|
|
48
|
+
"UNAUTHENTICATED"
|
|
49
|
+
]), l = async () => {
|
|
45
50
|
try {
|
|
46
51
|
let t = await e({
|
|
47
52
|
gateway: "global",
|
|
@@ -50,20 +55,30 @@ async function s(t) {
|
|
|
50
55
|
query: "mutation RefreshToken($token: String!) {\n refreshToken(token: $token) {\n accessToken\n refreshToken\n expiresIn\n }\n }",
|
|
51
56
|
variables: { token: s }
|
|
52
57
|
});
|
|
53
|
-
if (t.errors?.length)
|
|
54
|
-
|
|
58
|
+
if (t.errors?.length) {
|
|
59
|
+
let e = t.errors[0]?.extensions ?? {}, n = typeof e.code == "string" ? e.code : "", r = typeof e.errorCode == "string" ? e.errorCode : "", i = (n || r).toUpperCase();
|
|
60
|
+
return i && c.has(i) ? "auth-rejected" : "transient";
|
|
61
|
+
}
|
|
62
|
+
let i = t.data?.refreshToken;
|
|
63
|
+
if (!i?.accessToken) return "transient";
|
|
64
|
+
let a = i.expiresIn ? Date.now() + i.expiresIn * 1e3 : Date.now() + 1440 * 60 * 1e3, l = {
|
|
55
65
|
accessToken: i.accessToken,
|
|
56
66
|
refreshToken: i.refreshToken ?? s,
|
|
57
67
|
expiresAt: a
|
|
58
68
|
};
|
|
59
|
-
return localStorage.setItem(`${n}-${o}-tokens`, JSON.stringify(
|
|
69
|
+
return localStorage.setItem(`${n}-${o}-tokens`, JSON.stringify(l)), window.dispatchEvent(new Event("bf-profile-storage-change")), "ok";
|
|
60
70
|
} catch (e) {
|
|
61
|
-
return console.
|
|
71
|
+
return console.warn("[Auth] Token refresh attempt failed (will retry):", e), "transient";
|
|
72
|
+
}
|
|
73
|
+
}, u = (async () => {
|
|
74
|
+
try {
|
|
75
|
+
let e = await l();
|
|
76
|
+
return e === "transient" && (await new Promise((e) => setTimeout(e, 800)), e = await l()), e !== "ok" && console.error("[Auth] Token refresh failed:", e), e === "ok";
|
|
62
77
|
} finally {
|
|
63
78
|
i.current = !1, a.current = null;
|
|
64
79
|
}
|
|
65
80
|
})();
|
|
66
|
-
return a.current =
|
|
81
|
+
return a.current = u.then(() => {}), u;
|
|
67
82
|
}
|
|
68
83
|
function c(e, t = "/auth/login") {
|
|
69
84
|
if (window.location.pathname.startsWith("/auth/")) return;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export declare const BACKEND_ERROR_EVENT: "burdenoff:backend-error";
|
|
2
|
+
export declare const CONNECTION_STATUS_EVENT: "burdenoff:connection-status";
|
|
3
|
+
export interface ConnectionStatusDetail {
|
|
4
|
+
/** true = connectivity restored, false = server unreachable / degraded */
|
|
5
|
+
online: boolean;
|
|
6
|
+
/** epoch ms when this status was observed */
|
|
7
|
+
since: number;
|
|
8
|
+
}
|
|
2
9
|
export interface BackendErrorExtensions {
|
|
3
10
|
code?: string;
|
|
4
11
|
errorCode?: string;
|
|
@@ -32,6 +39,22 @@ export interface ExtractBackendErrorOptions {
|
|
|
32
39
|
operationName?: string;
|
|
33
40
|
fallbackMessage?: string;
|
|
34
41
|
}
|
|
42
|
+
/** AbortError in either form — a user/navigation cancellation, never surfaced. */
|
|
43
|
+
export declare function isAbortError(input: unknown): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* True when an error is a pure transport/connectivity failure with no
|
|
46
|
+
* actionable application code — it should be logged + surfaced via the
|
|
47
|
+
* connection indicator, never as a toast. Returns false for AbortError (handled
|
|
48
|
+
* separately/silently), for anything carrying an application GraphQL code, and
|
|
49
|
+
* for auth/authorization HTTP statuses so those paths are preserved.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isTransportError(input: unknown): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Signal that connectivity is healthy again. Called from the GraphQL success
|
|
54
|
+
* paths; clears the connection indicator exactly once on recovery. No-op when
|
|
55
|
+
* the connection was never marked degraded.
|
|
56
|
+
*/
|
|
57
|
+
export declare function markConnectionHealthy(): void;
|
|
35
58
|
export declare function extractBackendError(input: unknown, options?: ExtractBackendErrorOptions): BackendErrorDisplay | null;
|
|
36
59
|
export declare function isBackendErrorDisplay(value: unknown): value is BackendErrorDisplay;
|
|
37
60
|
export declare function shouldToastBackendError(error: BackendErrorDisplay | null): error is BackendErrorDisplay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendErrors.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/backendErrors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,EAAG,yBAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"backendErrors.d.ts","sourceRoot":"","sources":["../../../src/shared/utils/backendErrors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,EAAG,yBAAkC,CAAC;AAQtE,eAAO,MAAM,uBAAuB,EAAG,6BAAsC,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6ID,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AA8BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAqBxD;AAiCD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAU5C;AAmHD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,GAAG,IAAI,CAmC5B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAChC,KAAK,IAAI,mBAAmB,CA0B9B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,0BAA+B,GACvC,IAAI,CAuBN"}
|