@burdenoff/fe-libs 2026.627.2 → 2026.628.1
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/shared/graphql/client.d.ts +2 -0
- package/dist/shared/graphql/client.d.ts.map +1 -1
- package/dist/shared/graphql/client.js +122 -120
- package/dist/shared/graphql/fetch.d.ts.map +1 -1
- package/dist/shared/graphql/fetch.js +101 -95
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +1 -0
- package/dist/shared/providers/shell/AuthBridgeClient.d.ts +4 -2
- package/dist/shared/providers/shell/AuthBridgeClient.d.ts.map +1 -1
- package/dist/shared/providers/shell/AuthBridgeClient.js +27 -16
- package/dist/shared/providers/shell/MultiGatewayProvider.d.ts +3 -1
- package/dist/shared/providers/shell/MultiGatewayProvider.d.ts.map +1 -1
- package/dist/shared/providers/shell/MultiGatewayProvider.js +76 -72
- package/dist/shared/utils/gatewayFetchRewrite.d.ts +8 -12
- package/dist/shared/utils/gatewayFetchRewrite.d.ts.map +1 -1
- package/dist/shared/utils/gatewayFetchRewrite.js +111 -62
- package/package.json +1 -1
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import { createBrowserTraceContext as e } from "../events/metadata.js";
|
|
2
2
|
import { resolveGatewayUrls as t } from "../config/gatewayUrls.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
3
|
+
import { clearGatewayGraphQLResponseCache as n } from "../utils/gatewayFetchRewrite.js";
|
|
4
|
+
import { GATEWAYS as r } from "../../shared-config.js";
|
|
5
|
+
import { getActiveWorkspaceToken as i, resolveActiveProfileId as a, setProfileWorkspaceToken as o } from "../providers/shell/ProfileStorageManager.js";
|
|
6
|
+
import { readActiveContextValueWithUrlPrecedence as s } from "../providers/shell/ActiveContextStorage.js";
|
|
7
|
+
import { getValidAccessTokenFromStorage as c, sanitizeExtraHeaders as l, sanitizeGeography as u, validateGatewayBaseUrl as d } from "./security.js";
|
|
8
|
+
import { isWorkspaceTokenValidForContext as f } from "./workspaceToken.js";
|
|
9
|
+
import { dispatchBackendErrorEvent as p, markConnectionHealthy as m } from "../utils/backendErrors.js";
|
|
9
10
|
//#region src/shared/graphql/fetch.ts
|
|
10
|
-
var
|
|
11
|
-
function
|
|
11
|
+
var h = "\n mutation IssueWorkspaceToken($input: IssueWorkspaceTokenInput!) {\n issueWorkspaceToken(input: $input) {\n success\n token\n workspaceId\n error {\n message\n }\n }\n }\n", g = /* @__PURE__ */ new Map();
|
|
12
|
+
function _() {
|
|
12
13
|
try {
|
|
13
14
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
14
|
-
return e ?
|
|
15
|
+
return e ? c(localStorage.getItem(`bf-p-${e}-tokens`)) : null;
|
|
15
16
|
} catch {
|
|
16
17
|
return null;
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function v() {
|
|
20
21
|
try {
|
|
21
|
-
return
|
|
22
|
+
return i();
|
|
22
23
|
} catch {
|
|
23
24
|
return null;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
+
function y() {
|
|
27
28
|
try {
|
|
28
29
|
return sessionStorage.getItem("bf-active-profile");
|
|
29
30
|
} catch {
|
|
30
31
|
return null;
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
+
function b(e) {
|
|
34
35
|
try {
|
|
35
36
|
let [, t] = e.split(".");
|
|
36
37
|
if (!t || typeof globalThis.atob != "function") return null;
|
|
@@ -40,24 +41,24 @@ function y(e) {
|
|
|
40
41
|
return null;
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
function
|
|
44
|
-
let t =
|
|
44
|
+
function x(e) {
|
|
45
|
+
let t = b(e)?.exp;
|
|
45
46
|
return typeof t == "number" ? t * 1e3 <= Date.now() + 3e4 : !1;
|
|
46
47
|
}
|
|
47
|
-
function
|
|
48
|
+
function S() {
|
|
48
49
|
try {
|
|
49
50
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
50
51
|
if (e) {
|
|
51
52
|
let t = localStorage.getItem(`bf-p-${e}-geography`);
|
|
52
|
-
if (t) return
|
|
53
|
+
if (t) return u(JSON.parse(t));
|
|
53
54
|
}
|
|
54
55
|
let t = localStorage.getItem("burdenoff-geography");
|
|
55
|
-
return t ?
|
|
56
|
+
return t ? u(JSON.parse(t)) : null;
|
|
56
57
|
} catch {
|
|
57
58
|
return null;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
function
|
|
61
|
+
function C() {
|
|
61
62
|
try {
|
|
62
63
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
63
64
|
if (e) {
|
|
@@ -69,63 +70,64 @@ function S() {
|
|
|
69
70
|
return "en";
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
function C() {
|
|
73
|
-
return o("workspace");
|
|
74
|
-
}
|
|
75
73
|
function w() {
|
|
76
|
-
return
|
|
74
|
+
return s("workspace");
|
|
77
75
|
}
|
|
78
76
|
function T() {
|
|
79
|
-
return
|
|
77
|
+
return s("organization");
|
|
80
78
|
}
|
|
81
79
|
function E() {
|
|
82
|
-
return
|
|
80
|
+
return s("tenant");
|
|
83
81
|
}
|
|
84
82
|
function D() {
|
|
83
|
+
return s("project");
|
|
84
|
+
}
|
|
85
|
+
function O() {
|
|
85
86
|
try {
|
|
86
87
|
return typeof window > "u" ? null : new URLSearchParams(window.location.search).get("org");
|
|
87
88
|
} catch {
|
|
88
89
|
return null;
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
|
-
function
|
|
92
|
+
function k(e) {
|
|
92
93
|
return {
|
|
93
|
-
workspaceId: typeof e.workspaceId == "string" ? e.workspaceId :
|
|
94
|
-
organizationId: typeof e.organizationId == "string" ? e.organizationId :
|
|
95
|
-
tenantId: typeof e.tenantId == "string" ? e.tenantId :
|
|
96
|
-
projectId: typeof e.projectId == "string" ? e.projectId :
|
|
94
|
+
workspaceId: typeof e.workspaceId == "string" ? e.workspaceId : w() || void 0,
|
|
95
|
+
organizationId: typeof e.organizationId == "string" ? e.organizationId : T() || O() || void 0,
|
|
96
|
+
tenantId: typeof e.tenantId == "string" ? e.tenantId : E() || void 0,
|
|
97
|
+
projectId: typeof e.projectId == "string" ? e.projectId : D() || void 0
|
|
97
98
|
};
|
|
98
99
|
}
|
|
99
|
-
function
|
|
100
|
+
function A(e, t, n) {
|
|
100
101
|
try {
|
|
101
|
-
let r =
|
|
102
|
+
let r = a() ?? y();
|
|
102
103
|
if (!r) return;
|
|
103
|
-
|
|
104
|
+
o(r, t), sessionStorage.setItem("burdenoff-active-context-workspace", e), n && sessionStorage.setItem("burdenoff-active-context-organization", n);
|
|
104
105
|
} catch {}
|
|
105
106
|
}
|
|
106
|
-
async function
|
|
107
|
+
async function j(e) {
|
|
107
108
|
let { url: t, authToken: n, workspaceId: r, organizationId: i, projectId: a, locale: o, signal: s, currentQuery: c } = e;
|
|
108
109
|
if (!n || c.includes("issueWorkspaceToken")) return null;
|
|
109
|
-
let l = r ||
|
|
110
|
+
let l = r || w();
|
|
110
111
|
if (!l) return null;
|
|
111
|
-
let u =
|
|
112
|
-
if (u &&
|
|
112
|
+
let u = v(), d = w(), p = i || T() || O();
|
|
113
|
+
if (u && d === l && f(u, {
|
|
113
114
|
workspaceId: l,
|
|
114
115
|
organizationId: p,
|
|
115
116
|
projectId: a
|
|
116
117
|
})) return u;
|
|
117
118
|
if (!p) return null;
|
|
118
|
-
let
|
|
119
|
-
if (
|
|
119
|
+
let m = `${p}:${l}:${a ?? ""}`, _ = g.get(m);
|
|
120
|
+
if (_) return _;
|
|
120
121
|
let y = fetch(t, {
|
|
121
122
|
method: "POST",
|
|
122
123
|
headers: {
|
|
123
124
|
"Content-Type": "application/json",
|
|
125
|
+
[W]: "true",
|
|
124
126
|
Authorization: `Bearer ${n}`,
|
|
125
127
|
...o ? { "Accept-Language": o } : {}
|
|
126
128
|
},
|
|
127
129
|
body: JSON.stringify({
|
|
128
|
-
query:
|
|
130
|
+
query: h,
|
|
129
131
|
variables: { input: {
|
|
130
132
|
organizationId: p,
|
|
131
133
|
workspaceId: l,
|
|
@@ -135,58 +137,58 @@ async function A(e) {
|
|
|
135
137
|
signal: s
|
|
136
138
|
}).then(async (e) => {
|
|
137
139
|
let t = (await e.json()).data?.issueWorkspaceToken;
|
|
138
|
-
return t?.success && t.token ? (
|
|
140
|
+
return t?.success && t.token ? (A(t.workspaceId || l, t.token, p), t.token) : null;
|
|
139
141
|
}).catch(() => null).finally(() => {
|
|
140
|
-
|
|
142
|
+
g.delete(m);
|
|
141
143
|
});
|
|
142
|
-
return
|
|
144
|
+
return g.set(m, y), y;
|
|
143
145
|
}
|
|
144
|
-
function
|
|
145
|
-
let i =
|
|
146
|
+
function M(e, n) {
|
|
147
|
+
let i = r[e], a = t(), o = e === "global" ? a.globalBaseUrl : a.workspaceBaseUrl, s = n || o;
|
|
146
148
|
return `${s.endsWith("/") ? s.slice(0, -1) : s}${i.graphql}`;
|
|
147
149
|
}
|
|
148
|
-
function
|
|
150
|
+
function N() {
|
|
149
151
|
return globalThis;
|
|
150
152
|
}
|
|
151
|
-
function
|
|
152
|
-
let e =
|
|
153
|
+
function P() {
|
|
154
|
+
let e = N();
|
|
153
155
|
return e.__graphqlFetchQueues ||= /* @__PURE__ */ new Map(), e.__graphqlFetchQueues;
|
|
154
156
|
}
|
|
155
|
-
function
|
|
156
|
-
let e =
|
|
157
|
+
function F() {
|
|
158
|
+
let e = N();
|
|
157
159
|
return e.__graphqlFetchResponseCache ||= /* @__PURE__ */ new Map(), e.__graphqlFetchResponseCache;
|
|
158
160
|
}
|
|
159
|
-
function
|
|
160
|
-
let e =
|
|
161
|
+
function I() {
|
|
162
|
+
let e = N();
|
|
161
163
|
return e.__graphqlFetchPendingResponses ||= /* @__PURE__ */ new Map(), e.__graphqlFetchPendingResponses;
|
|
162
164
|
}
|
|
163
|
-
function
|
|
164
|
-
|
|
165
|
+
function L() {
|
|
166
|
+
F().clear(), I().clear(), n();
|
|
165
167
|
}
|
|
166
|
-
var
|
|
168
|
+
var R = 10, z = 600, B = 100, V = 1e4, H = 15e3, U = new Set([
|
|
167
169
|
"traceparent",
|
|
168
170
|
"tracestate",
|
|
169
171
|
"baggage"
|
|
170
|
-
]);
|
|
171
|
-
function
|
|
172
|
-
if (typeof performance > "u") return
|
|
173
|
-
let e =
|
|
174
|
-
return e.__graphqlFetchBurstStartedAt ??= performance.now(), performance.now() - e.__graphqlFetchBurstStartedAt <
|
|
172
|
+
]), W = "Apollo-Require-Preflight";
|
|
173
|
+
function G() {
|
|
174
|
+
if (typeof performance > "u") return B;
|
|
175
|
+
let e = N();
|
|
176
|
+
return e.__graphqlFetchBurstStartedAt ??= performance.now(), performance.now() - e.__graphqlFetchBurstStartedAt < V ? z : B;
|
|
175
177
|
}
|
|
176
|
-
function
|
|
178
|
+
function K(e) {
|
|
177
179
|
return typeof e.query == "string" ? /^\s*query\b/.test(e.query) : !1;
|
|
178
180
|
}
|
|
179
|
-
function
|
|
181
|
+
function ee(e) {
|
|
180
182
|
return typeof e.operationName == "string" && e.operationName.length > 0 ? {
|
|
181
183
|
operationName: e.operationName,
|
|
182
184
|
variables: e.variables ?? null
|
|
183
185
|
} : e;
|
|
184
186
|
}
|
|
185
|
-
function
|
|
187
|
+
function te(e) {
|
|
186
188
|
let t = /* @__PURE__ */ new Map();
|
|
187
189
|
for (let [n, r] of Object.entries(e)) {
|
|
188
190
|
let e = n.toLowerCase();
|
|
189
|
-
|
|
191
|
+
U.has(e) || t.set(e, r);
|
|
190
192
|
}
|
|
191
193
|
return Object.fromEntries(Array.from(t.entries()).sort(([e], [t]) => e.localeCompare(t)));
|
|
192
194
|
}
|
|
@@ -194,17 +196,18 @@ function q(t) {
|
|
|
194
196
|
let n = e();
|
|
195
197
|
return {
|
|
196
198
|
...t,
|
|
199
|
+
[W]: "true",
|
|
197
200
|
traceparent: n.traceparent
|
|
198
201
|
};
|
|
199
202
|
}
|
|
200
203
|
function J(e) {
|
|
201
|
-
return
|
|
204
|
+
return ne(e) && Array.isArray(e.errors);
|
|
202
205
|
}
|
|
203
206
|
function Y(e) {
|
|
204
207
|
let t = e.status;
|
|
205
208
|
return t === 401 ? "Invalid email or password." : t === 403 ? "You do not have permission to do that." : t === 404 ? "We could not find what you were looking for." : t === 408 || t === 504 ? "The server took too long to respond. Please try again." : t === 429 ? "Too many requests. Please wait a moment and try again." : t >= 500 && t < 600 ? "The server is having trouble right now. Please try again in a moment." : t >= 400 && t < 500 ? "The request could not be processed. Please refresh and try again." : "We could not reach the server. Please check your connection and try again.";
|
|
206
209
|
}
|
|
207
|
-
function
|
|
210
|
+
function ne(e) {
|
|
208
211
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
209
212
|
}
|
|
210
213
|
async function X(e) {
|
|
@@ -228,9 +231,9 @@ async function Z(e, t, n) {
|
|
|
228
231
|
signal: r.signal
|
|
229
232
|
}), i = await X(n);
|
|
230
233
|
if (!n.ok && !J(i)) throw Error(Y(n));
|
|
231
|
-
r.cacheKey &&
|
|
234
|
+
r.cacheKey && F().set(r.cacheKey, {
|
|
232
235
|
value: i,
|
|
233
|
-
expiresAt: Date.now() +
|
|
236
|
+
expiresAt: Date.now() + H
|
|
234
237
|
}), r.resolve(i);
|
|
235
238
|
} catch (e) {
|
|
236
239
|
r.reject(e);
|
|
@@ -248,9 +251,9 @@ async function Z(e, t, n) {
|
|
|
248
251
|
if (!i.ok && !J(a)) throw Error(Y(i));
|
|
249
252
|
if (Array.isArray(a)) a.forEach((e, t) => {
|
|
250
253
|
let r = n[t];
|
|
251
|
-
r && (r.cacheKey &&
|
|
254
|
+
r && (r.cacheKey && F().set(r.cacheKey, {
|
|
252
255
|
value: e,
|
|
253
|
-
expiresAt: Date.now() +
|
|
256
|
+
expiresAt: Date.now() + H
|
|
254
257
|
}), r.resolve(e));
|
|
255
258
|
});
|
|
256
259
|
else {
|
|
@@ -262,14 +265,14 @@ async function Z(e, t, n) {
|
|
|
262
265
|
}
|
|
263
266
|
}
|
|
264
267
|
function Q(e, t, n, r, i) {
|
|
265
|
-
let a =
|
|
268
|
+
let a = te(t), o = Math.max(1, i?.batchMax ?? R), s = Math.max(0, i?.batchInterval ?? G()), c = `${e}|${JSON.stringify(a)}`, l = K(n) ? `${c}|${JSON.stringify(ee(n))}` : void 0;
|
|
266
269
|
if (l) {
|
|
267
|
-
let e =
|
|
270
|
+
let e = F(), t = e.get(l);
|
|
268
271
|
if (t) {
|
|
269
272
|
if (t.expiresAt > Date.now()) return Promise.resolve(t.value);
|
|
270
273
|
e.delete(l);
|
|
271
274
|
}
|
|
272
|
-
let n =
|
|
275
|
+
let n = I().get(l);
|
|
273
276
|
if (n) return n;
|
|
274
277
|
}
|
|
275
278
|
let u = new Promise((t, i) => {
|
|
@@ -283,7 +286,7 @@ function Q(e, t, n, r, i) {
|
|
|
283
286
|
}]);
|
|
284
287
|
return;
|
|
285
288
|
}
|
|
286
|
-
let u =
|
|
289
|
+
let u = P(), d = u.get(c);
|
|
287
290
|
if (d || (d = {
|
|
288
291
|
requests: [],
|
|
289
292
|
timer: null,
|
|
@@ -301,32 +304,35 @@ function Q(e, t, n, r, i) {
|
|
|
301
304
|
}
|
|
302
305
|
d.timer ||= setTimeout(() => $(e, a, c), d.batchInterval);
|
|
303
306
|
});
|
|
304
|
-
return l && (
|
|
305
|
-
|
|
307
|
+
return l && (I().set(l, u), u.finally(() => {
|
|
308
|
+
I().delete(l);
|
|
306
309
|
}).catch(() => {})), u;
|
|
307
310
|
}
|
|
308
311
|
function $(e, t, n) {
|
|
309
|
-
let r =
|
|
312
|
+
let r = P(), i = r.get(n);
|
|
310
313
|
i && (r.delete(n), i.timer &&= (clearTimeout(i.timer), null), Z(e, t, i.requests));
|
|
311
314
|
}
|
|
312
|
-
async function
|
|
313
|
-
let { gateway: t, query: n, variables: r, operationName: i, authToken: a, workspaceToken: o, workspaceId: s, organizationId:
|
|
315
|
+
async function re(e) {
|
|
316
|
+
let { gateway: t, query: n, variables: r, operationName: i, authToken: a, workspaceToken: o, workspaceId: s, organizationId: c, tenantId: u, projectId: h, locale: g, baseUrl: y, extraHeaders: b, signal: w, suppressGlobalErrorEvent: T } = e, D = d(M(t, y)), O = a && !x(a) ? a : _(), A = g ?? C(), N = k({
|
|
314
317
|
workspaceId: s,
|
|
315
|
-
organizationId:
|
|
316
|
-
tenantId:
|
|
318
|
+
organizationId: c,
|
|
319
|
+
tenantId: u,
|
|
317
320
|
projectId: h
|
|
318
|
-
}), P = {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
+
}), P = {
|
|
322
|
+
"Content-Type": "application/json",
|
|
323
|
+
[W]: "true"
|
|
324
|
+
};
|
|
325
|
+
O && (P.Authorization = `Bearer ${O}`), A && (P["Accept-Language"] = A);
|
|
326
|
+
let F = S();
|
|
321
327
|
if (F?.country && (P["X-Geo-Country"] = F.country), F?.currency && (P["X-Geo-Currency"] = F.currency), F?.timezone && (P["X-Geo-Timezone"] = F.timezone), t === "workspace" ? o !== !1 : o) {
|
|
322
|
-
let e = typeof o == "string" ? o :
|
|
323
|
-
e && !
|
|
328
|
+
let e = typeof o == "string" ? o : v();
|
|
329
|
+
e && !f(e, N) && (e = null), !e && o === !0 && (e = await j({
|
|
324
330
|
url: D,
|
|
325
|
-
authToken:
|
|
331
|
+
authToken: O,
|
|
326
332
|
workspaceId: N.workspaceId,
|
|
327
333
|
organizationId: N.organizationId,
|
|
328
334
|
projectId: N.projectId,
|
|
329
|
-
locale:
|
|
335
|
+
locale: A,
|
|
330
336
|
signal: w,
|
|
331
337
|
currentQuery: n
|
|
332
338
|
})), e && (P["X-Workspace-Authorization"] = `Bearer ${e}`);
|
|
@@ -335,31 +341,31 @@ async function te(e) {
|
|
|
335
341
|
let e = N.workspaceId;
|
|
336
342
|
e && (P["x-workspace-id"] = e);
|
|
337
343
|
}
|
|
338
|
-
if (t === "global" ||
|
|
344
|
+
if (t === "global" || c) {
|
|
339
345
|
let e = N.organizationId;
|
|
340
346
|
e && (P["x-org-id"] = e);
|
|
341
347
|
}
|
|
342
|
-
if (
|
|
343
|
-
let e = typeof
|
|
348
|
+
if (u) {
|
|
349
|
+
let e = typeof u == "string" ? u : E();
|
|
344
350
|
e && (P["x-tenant-id"] = e);
|
|
345
351
|
}
|
|
346
352
|
if (t === "workspace" || h) {
|
|
347
353
|
let e = N.projectId;
|
|
348
354
|
e && (P["x-project-id"] = e);
|
|
349
355
|
}
|
|
350
|
-
let I =
|
|
356
|
+
let I = l(b);
|
|
351
357
|
I && Object.assign(P, I);
|
|
352
358
|
let L = { query: n };
|
|
353
359
|
r && (L.variables = r), i && (L.operationName = i);
|
|
354
360
|
try {
|
|
355
361
|
let e = await Q(D, P, L, w);
|
|
356
|
-
return
|
|
362
|
+
return m(), e.errors?.length && !T && p({ errors: e.errors }, { operationName: i }), e;
|
|
357
363
|
} catch (e) {
|
|
358
|
-
throw
|
|
364
|
+
throw T || p(e, {
|
|
359
365
|
operationName: i,
|
|
360
366
|
fallbackMessage: "We could not reach the server. Please check your connection and try again."
|
|
361
367
|
}), e;
|
|
362
368
|
}
|
|
363
369
|
}
|
|
364
370
|
//#endregion
|
|
365
|
-
export {
|
|
371
|
+
export { L as clearGraphqlFetchResponseCache, Q as enqueueGraphQLFetch, _ as getStoredAuthToken, C as getStoredLocale, T as getStoredOrganizationId, D as getStoredProjectId, w as getStoredWorkspaceId, v as getStoredWorkspaceToken, re as graphqlFetch, M as resolveGatewayUrl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,8 @@ export interface BridgeMessage {
|
|
|
38
38
|
};
|
|
39
39
|
/** Unique message ID for request/response correlation */
|
|
40
40
|
messageId?: string;
|
|
41
|
+
/** Per-client handshake nonce that bridge replies must echo */
|
|
42
|
+
nonce?: string;
|
|
41
43
|
/** Source identifier */
|
|
42
44
|
source?: string;
|
|
43
45
|
}
|
|
@@ -45,7 +47,7 @@ export type AuthBridgeListener = (state: BridgeAuthState) => void;
|
|
|
45
47
|
export interface AuthBridgeClientOptions {
|
|
46
48
|
/** URL of the session bridge page */
|
|
47
49
|
bridgeUrl: string;
|
|
48
|
-
/**
|
|
50
|
+
/** @deprecated Parent accepts bridge replies only from bridgeUrl origin/source. */
|
|
49
51
|
allowedOrigins?: string | string[];
|
|
50
52
|
/** Callback when auth state changes from another app shell */
|
|
51
53
|
onStateChanged?: AuthBridgeListener;
|
|
@@ -55,9 +57,9 @@ export interface AuthBridgeClientOptions {
|
|
|
55
57
|
export declare class AuthBridgeClient {
|
|
56
58
|
private iframe;
|
|
57
59
|
private bridgeUrl;
|
|
58
|
-
private allowedOrigins;
|
|
59
60
|
private onStateChanged?;
|
|
60
61
|
private debug;
|
|
62
|
+
private nonce;
|
|
61
63
|
private ready;
|
|
62
64
|
private readyReceived;
|
|
63
65
|
private pendingMessages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthBridgeClient.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/AuthBridgeClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EACA,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,mBAAmB,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthBridgeClient.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/AuthBridgeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { clearShellSsoCookies as e, setShellSsoCookies as t } from "../../utils/authCookie.js";
|
|
2
2
|
//#region src/shared/providers/shell/AuthBridgeClient.ts
|
|
3
|
-
var n = "burdenoff-auth-bridge", r = "burdenoff-auth-client"
|
|
3
|
+
var n = "burdenoff-auth-bridge", r = "burdenoff-auth-client";
|
|
4
|
+
function i() {
|
|
5
|
+
let e = globalThis.crypto;
|
|
6
|
+
if (typeof e.randomUUID == "function") return e.randomUUID();
|
|
7
|
+
let t = new Uint8Array(32);
|
|
8
|
+
return e.getRandomValues(t), Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
|
|
9
|
+
}
|
|
10
|
+
var a = class {
|
|
4
11
|
iframe = null;
|
|
5
12
|
bridgeUrl;
|
|
6
|
-
allowedOrigins;
|
|
7
13
|
onStateChanged;
|
|
8
14
|
debug;
|
|
15
|
+
nonce;
|
|
9
16
|
ready = !1;
|
|
10
17
|
readyReceived = !1;
|
|
11
18
|
pendingMessages = [];
|
|
12
19
|
messageHandler = null;
|
|
13
20
|
destroyed = !1;
|
|
14
21
|
constructor(e) {
|
|
15
|
-
this.bridgeUrl = e.bridgeUrl, this.debug = e.debug ?? !1, this.onStateChanged = e.onStateChanged, this.destroyed = !1,
|
|
22
|
+
this.bridgeUrl = e.bridgeUrl, this.debug = e.debug ?? !1, this.onStateChanged = e.onStateChanged, this.destroyed = !1, this.nonce = i(), this.log("AuthBridgeClient created", { bridgeUrl: this.bridgeUrl });
|
|
16
23
|
}
|
|
17
24
|
async init() {
|
|
18
25
|
if (this.iframe) {
|
|
@@ -126,9 +133,9 @@ var n = "burdenoff-auth-bridge", r = "burdenoff-auth-client", i = class {
|
|
|
126
133
|
handleMessage(e) {
|
|
127
134
|
if (this.destroyed) return;
|
|
128
135
|
let t = new URL(this.bridgeUrl).origin;
|
|
129
|
-
if (e.origin !== t
|
|
136
|
+
if (e.origin !== t || e.source !== this.iframe?.contentWindow) return;
|
|
130
137
|
let r = e.data;
|
|
131
|
-
if (!(!r || !r.type || r.source !== n)) switch (this.log("Received bridge message:", r.type), r.type) {
|
|
138
|
+
if (!(!r || !r.type || r.source !== n) && !((r.type === "AUTH_STATE" || r.type === "AUTH_STATE_CHANGED" || r.type === "AUTH_BRIDGE_READY") && r.nonce !== this.nonce)) switch (this.log("Received bridge message:", r.type), r.type) {
|
|
132
139
|
case "AUTH_BRIDGE_READY":
|
|
133
140
|
if (this.readyReceived) {
|
|
134
141
|
this.log("AUTH_BRIDGE_READY already received, ignoring duplicate");
|
|
@@ -154,7 +161,11 @@ var n = "burdenoff-auth-bridge", r = "burdenoff-auth-client", i = class {
|
|
|
154
161
|
return;
|
|
155
162
|
}
|
|
156
163
|
let t = new URL(this.bridgeUrl).origin;
|
|
157
|
-
this.iframe.contentWindow.postMessage(
|
|
164
|
+
this.iframe.contentWindow.postMessage({
|
|
165
|
+
...e,
|
|
166
|
+
source: e.source ?? r,
|
|
167
|
+
nonce: this.nonce
|
|
168
|
+
}, t), this.log("Sent message to bridge:", e.type);
|
|
158
169
|
}
|
|
159
170
|
flushPendingMessages() {
|
|
160
171
|
for (; this.pendingMessages.length > 0;) {
|
|
@@ -165,18 +176,18 @@ var n = "burdenoff-auth-bridge", r = "burdenoff-auth-client", i = class {
|
|
|
165
176
|
log(...e) {
|
|
166
177
|
this.debug && console.log("[AuthBridgeClient]", ...e);
|
|
167
178
|
}
|
|
168
|
-
},
|
|
169
|
-
function
|
|
170
|
-
return
|
|
171
|
-
}
|
|
172
|
-
function l() {
|
|
173
|
-
return a;
|
|
179
|
+
}, o = null, s = !1, c = !1;
|
|
180
|
+
function l(e) {
|
|
181
|
+
return c && o ? (e.debug && console.log("[AuthBridgeClient] Returning existing instance"), o) : s && o ? (e.debug && console.log("[AuthBridgeClient] Initialization in progress, returning pending instance"), o) : (s && e.debug && console.log("[AuthBridgeClient] Concurrent init detected, waiting..."), s = !0, o = new a(e), o.init(), c = !0, s = !1, o);
|
|
174
182
|
}
|
|
175
183
|
function u() {
|
|
176
|
-
return
|
|
184
|
+
return o;
|
|
185
|
+
}
|
|
186
|
+
function d() {
|
|
187
|
+
return c && o !== null;
|
|
177
188
|
}
|
|
178
|
-
function
|
|
179
|
-
e &&
|
|
189
|
+
function f(e = !1) {
|
|
190
|
+
e && o && (o.destroy(!0), o = null, c = !1);
|
|
180
191
|
}
|
|
181
192
|
//#endregion
|
|
182
|
-
export {
|
|
193
|
+
export { a as AuthBridgeClient, f as destroyAuthBridge, u as getAuthBridge, l as initAuthBridge, d as isAuthBridgeInitialized };
|
|
@@ -8,6 +8,8 @@ export interface MultiGatewayProviderProps {
|
|
|
8
8
|
globalBaseUrl?: string;
|
|
9
9
|
/** Organization ID getter for x-org-id header (global gateway) */
|
|
10
10
|
organizationId?: () => string | null;
|
|
11
|
+
/** Product slug for x-product-slug propagation */
|
|
12
|
+
productSlug?: string;
|
|
11
13
|
/** Default gateway for the app (used by top-level ApolloProvider) */
|
|
12
14
|
defaultGateway?: Gateway;
|
|
13
15
|
/** Enable debug logging */
|
|
@@ -21,5 +23,5 @@ export interface MultiGatewayProviderProps {
|
|
|
21
23
|
/** Callback to attempt token refresh on 401 */
|
|
22
24
|
onRefreshToken?: () => Promise<boolean>;
|
|
23
25
|
}
|
|
24
|
-
export declare function MultiGatewayProvider({ children, workspaceBaseUrl, globalBaseUrl, organizationId, defaultGateway, debug, enableSubscriptions, onAuthError, onNetworkError, onRefreshToken, }: MultiGatewayProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function MultiGatewayProvider({ children, workspaceBaseUrl, globalBaseUrl, organizationId, productSlug, defaultGateway, debug, enableSubscriptions, onAuthError, onNetworkError, onRefreshToken, }: MultiGatewayProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
25
27
|
//# sourceMappingURL=MultiGatewayProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiGatewayProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/MultiGatewayProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACrC,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yCAAyC;IACzC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAA4B,EAC5B,KAAa,EACb,mBAA2B,EAC3B,WAAW,EACX,cAAc,EACd,cAAc,GACf,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"MultiGatewayProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/MultiGatewayProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAuB,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACrC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yCAAyC;IACzC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAA4B,EAC5B,KAAa,EACb,mBAA2B,EAC3B,WAAW,EACX,cAAc,EACd,cAAc,GACf,EAAE,yBAAyB,2CAwR3B"}
|