@burdenoff/fe-libs 2026.627.1 → 2026.627.3
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/hooks/shell/index.d.ts +1 -0
- package/dist/shared/hooks/shell/index.d.ts.map +1 -1
- package/dist/shared/hooks/shell/useEffectiveContext.d.ts +40 -0
- package/dist/shared/hooks/shell/useEffectiveContext.d.ts.map +1 -0
- package/dist/shared/hooks/shell/useEffectiveContext.js +25 -0
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +16 -9
- 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 +30 -43
- package/dist/shared-hooks-shell.js +5 -4
- 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 };
|
|
@@ -2,6 +2,7 @@ export { useNavRegistryStore } from './useNavRegistry';
|
|
|
2
2
|
export type { NavItem } from './useNavRegistry';
|
|
3
3
|
export { useFooterRegistryStore } from './useFooterRegistry';
|
|
4
4
|
export type { FooterItem, FooterSection } from './useFooterRegistry';
|
|
5
|
+
export { useEffectiveContext, useEffectiveWorkspaceId, type EffectiveContext, } from './useEffectiveContext';
|
|
5
6
|
export { useGlobalSearch } from './useGlobalSearch';
|
|
6
7
|
export type { UseGlobalSearchReturn, SearchFilters, MetadataCondition, DateRange, SearchSortBy, } from './useGlobalSearch';
|
|
7
8
|
export type { User, MicrofrontendRootProps, NavItem as NavItemType, FooterItem as FooterItemType, FooterSection as FooterSectionType, } from '../../types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,IAAI,EACJ,sBAAsB,EACtB,OAAO,IAAI,WAAW,EACtB,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,GACnC,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAGxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,IAAI,EACJ,sBAAsB,EACtB,OAAO,IAAI,WAAW,EACtB,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,GACnC,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAGxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effective org/workspace/project ids for *rendering / data scoping*, with the
|
|
3
|
+
* URL taking priority over the committed selection (BOFF-2821):
|
|
4
|
+
*
|
|
5
|
+
* route path `:id` › `?workspace=` / `?org=` / `?project=` query › selection
|
|
6
|
+
*
|
|
7
|
+
* Use this in pages/components that display or fetch workspace-scoped data, so a
|
|
8
|
+
* deep-linked or path-scoped route shows *its* workspace even if it differs from
|
|
9
|
+
* the ambient dropdown selection. It is READ-ONLY: it never writes back to
|
|
10
|
+
* ActiveContext or the auth store (that one-way rule is what keeps the URL and
|
|
11
|
+
* the stores from looping — see ActiveContextProvider).
|
|
12
|
+
*
|
|
13
|
+
* MUST be called inside the router (so `useParams`/`useSearchParams` resolve)
|
|
14
|
+
* and under an ActiveContextProvider. The route-path lookup only contributes
|
|
15
|
+
* when the matched route actually declares the param (e.g. `:workspaceId`); on
|
|
16
|
+
* selection-scoped routes it falls through to the query, then the selection.
|
|
17
|
+
*
|
|
18
|
+
* Note: the context dropdown itself should keep showing the committed selection
|
|
19
|
+
* (`useActiveContext`), NOT this effective value — the two can legitimately
|
|
20
|
+
* diverge when a URL id is manually overridden.
|
|
21
|
+
*/
|
|
22
|
+
export interface EffectiveContext {
|
|
23
|
+
organizationId: string | null;
|
|
24
|
+
workspaceId: string | null;
|
|
25
|
+
projectId: string | null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Pure priority resolver (path › query › selection) — extracted so the rule can
|
|
29
|
+
* be unit-tested without a router. `pathParams` are the matched route params,
|
|
30
|
+
* `getQuery` reads a `?` param, `selection` is the committed ActiveContext.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveEffectiveContext(pathParams: {
|
|
33
|
+
organizationId?: string;
|
|
34
|
+
workspaceId?: string;
|
|
35
|
+
projectId?: string;
|
|
36
|
+
}, getQuery: (key: string) => string | null, selection: EffectiveContext): EffectiveContext;
|
|
37
|
+
export declare function useEffectiveContext(): EffectiveContext;
|
|
38
|
+
/** Convenience: just the effective workspace id (path › query › selection). */
|
|
39
|
+
export declare function useEffectiveWorkspaceId(): string | null;
|
|
40
|
+
//# sourceMappingURL=useEffectiveContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEffectiveContext.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/useEffectiveContext.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE;IACV,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EACxC,SAAS,EAAE,gBAAgB,GAC1B,gBAAgB,CAkBlB;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CActD;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DEFAULT_ACTIVE_CONTEXT_URL_PARAMS as e } from "../../providers/shell/ActiveContextStorage.js";
|
|
2
|
+
import { useActiveContext as t } from "../../providers/shell/ActiveContextProvider.js";
|
|
3
|
+
import { useParams as n, useSearchParams as r } from "react-router-dom";
|
|
4
|
+
//#region src/shared/hooks/shell/useEffectiveContext.ts
|
|
5
|
+
var i = e;
|
|
6
|
+
function a(e, t, n) {
|
|
7
|
+
return {
|
|
8
|
+
organizationId: e.organizationId ?? t(i.organization) ?? n.organizationId ?? null,
|
|
9
|
+
workspaceId: e.workspaceId ?? t(i.workspace) ?? n.workspaceId ?? null,
|
|
10
|
+
projectId: e.projectId ?? t(i.project) ?? n.projectId ?? null
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function o() {
|
|
14
|
+
let e = n(), [i] = r(), { organizationId: o, workspaceId: s, projectId: c } = t();
|
|
15
|
+
return a(e, (e) => i.get(e), {
|
|
16
|
+
organizationId: o,
|
|
17
|
+
workspaceId: s,
|
|
18
|
+
projectId: c
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function s() {
|
|
22
|
+
return o().workspaceId;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { o as useEffectiveContext, s as useEffectiveWorkspaceId };
|
|
@@ -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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"}
|
|
@@ -272,16 +272,22 @@ function xe(e) {
|
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
function Se() {
|
|
275
|
-
let e = k(), t = U(), n = z(void 0), r = z(void 0);
|
|
275
|
+
let e = k(), t = U(), n = z(void 0), r = z(void 0), i = z(null);
|
|
276
276
|
return L(() => {
|
|
277
|
-
let
|
|
278
|
-
r.current !== i && (
|
|
279
|
-
|
|
280
|
-
search:
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
277
|
+
let a = `${t.pathname}${t.search}${t.hash}`;
|
|
278
|
+
if (r.current !== a) return i.current && clearTimeout(i.current), i.current = setTimeout(() => {
|
|
279
|
+
i.current = null;
|
|
280
|
+
let o = typeof window < "u" ? `${window.location.pathname}${window.location.search}${window.location.hash}` : a;
|
|
281
|
+
r.current !== o && (e.emit("nav.route.changed", {
|
|
282
|
+
pathname: typeof window < "u" ? window.location.pathname : t.pathname,
|
|
283
|
+
search: typeof window < "u" ? window.location.search : t.search,
|
|
284
|
+
hash: typeof window < "u" ? window.location.hash : t.hash,
|
|
285
|
+
title: typeof document < "u" ? document.title : void 0,
|
|
286
|
+
from: n.current
|
|
287
|
+
}), n.current = o, r.current = o);
|
|
288
|
+
}, 120), () => {
|
|
289
|
+
i.current &&= (clearTimeout(i.current), null);
|
|
290
|
+
};
|
|
285
291
|
}, [
|
|
286
292
|
e,
|
|
287
293
|
t.hash,
|
|
@@ -442,6 +448,7 @@ function we({ config: n, children: r, clearAuthStore: a }) {
|
|
|
442
448
|
workspaceBaseUrl: y.workspaceBaseUrl,
|
|
443
449
|
globalBaseUrl: y.globalBaseUrl,
|
|
444
450
|
organizationId: X,
|
|
451
|
+
productSlug: m,
|
|
445
452
|
defaultGateway: E,
|
|
446
453
|
enableSubscriptions: D,
|
|
447
454
|
onAuthError: q,
|
|
@@ -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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"}
|