@burdenoff/fe-libs 2026.1023.8 → 2026.1023.10
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/events/sinks/RybbitSink.d.ts +21 -0
- package/dist/shared/events/sinks/RybbitSink.js +36 -11
- package/dist/shared/events/sinks/index.d.ts +1 -1
- package/dist/shared/providers/shell/ActiveContextProvider.d.ts +16 -0
- package/dist/shared/providers/shell/ActiveContextProvider.js +39 -34
- package/dist/shared-events.js +29 -29
- package/dist/shared.js +48 -48
- package/package.json +2 -2
|
@@ -51,6 +51,27 @@ export declare function shouldDropAnalyticsKey(key: string, eventName: Burdenoff
|
|
|
51
51
|
* event bus emissions as Rybbit custom events.
|
|
52
52
|
*/
|
|
53
53
|
export declare function RybbitSink({ siteId, scriptUrl, rename, allowlist, identifyOn, skipRoutes, pathname, }: RybbitSinkProps): null;
|
|
54
|
+
/**
|
|
55
|
+
* BOFF-8246: while the consent banner is shown it publishes the space it takes from the bottom of
|
|
56
|
+
* the viewport (its height plus its 16px bottom offset and an 8px gap) as this CSS custom property
|
|
57
|
+
* on `<html>`; it is removed when the banner goes away. Bottom-anchored UI that must stay usable
|
|
58
|
+
* (an assistant launcher, a bottom sheet with a composer) should MOVE its bottom anchor up by it,
|
|
59
|
+
* e.g. `bottom: max(<usual anchor>, var(--bf-consent-banner-offset, 0px))`, and cap any fixed
|
|
60
|
+
* height to the space left, rather than pad inside: padding a fixed-height sheet can clip its
|
|
61
|
+
* composer on short viewports. Scope it to the widths where the banner can overlap the element
|
|
62
|
+
* (the banner is bottom-left, at most 24rem wide). At 390px the banner spans the viewport.
|
|
63
|
+
*/
|
|
64
|
+
export declare const CONSENT_BANNER_OFFSET_VAR = "--bf-consent-banner-offset";
|
|
65
|
+
type ResizeObserverConstructor = new (callback: () => void) => {
|
|
66
|
+
observe: (target: Element) => void;
|
|
67
|
+
disconnect: () => void;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Publishes `banner`'s bottom space on `root` and keeps it current. Returns the cleanup. With more
|
|
71
|
+
* than one banner shown the largest space is published, and the property is removed only when
|
|
72
|
+
* the last one goes.
|
|
73
|
+
*/
|
|
74
|
+
export declare function publishConsentBannerOffset(banner: Element, root: HTMLElement, ResizeObserverImpl?: ResizeObserverConstructor | undefined): () => void;
|
|
54
75
|
/**
|
|
55
76
|
* The optional-analytics prompt.
|
|
56
77
|
*
|
|
@@ -152,34 +152,59 @@ function k({ siteId: e, scriptUrl: o = "https://app.rybbit.io/api/script.js", re
|
|
|
152
152
|
d
|
|
153
153
|
]), null;
|
|
154
154
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
var A = "--bf-consent-banner-offset", j = 24, M = /* @__PURE__ */ new WeakMap();
|
|
156
|
+
function N(e, t) {
|
|
157
|
+
if (t.size === 0) {
|
|
158
|
+
e.style.removeProperty(A);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
e.style.setProperty(A, `${Math.max(...t.values())}px`);
|
|
162
|
+
}
|
|
163
|
+
function P(e, t, n = typeof ResizeObserver > "u" ? void 0 : ResizeObserver) {
|
|
164
|
+
let r = M.get(t);
|
|
165
|
+
r || (r = /* @__PURE__ */ new Map(), M.set(t, r));
|
|
166
|
+
let i = r, a = () => {
|
|
167
|
+
let n = Math.ceil(e.getBoundingClientRect().height);
|
|
168
|
+
i.set(e, n + j), N(t, i);
|
|
169
|
+
};
|
|
170
|
+
a();
|
|
171
|
+
let o = n ? new n(a) : null;
|
|
172
|
+
return o?.observe(e), () => {
|
|
173
|
+
o?.disconnect(), i.delete(e), N(t, i);
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function F({ productName: t }) {
|
|
177
|
+
let [n, c] = a(() => b() === null), l = e(), u = n && !y(), d = i(null);
|
|
178
|
+
return r(() => {
|
|
179
|
+
let e = d.current;
|
|
180
|
+
if (!(!u || !e)) return P(e, document.documentElement);
|
|
181
|
+
}, [u]), u ? /* @__PURE__ */ s("aside", {
|
|
182
|
+
ref: d,
|
|
158
183
|
className: "fixed bottom-4 left-4 z-[100] w-[calc(100%-2rem)] max-w-sm rounded-xl border border-border-seam bg-bg-surface p-4 text-text-primary shadow-pop",
|
|
159
|
-
"aria-label":
|
|
184
|
+
"aria-label": l("privacyConsent.ariaLabel", "Privacy choices"),
|
|
160
185
|
"data-testid": "analytics-consent-banner",
|
|
161
186
|
children: [/* @__PURE__ */ o("p", {
|
|
162
187
|
className: "text-sm",
|
|
163
|
-
children:
|
|
188
|
+
children: l("privacyConsent.message", "Allow optional analytics to help improve {{productName}}? Essential product operation works either way.", { productName: t ?? l("privacyConsent.productFallback", "this product") })
|
|
164
189
|
}), /* @__PURE__ */ s("div", {
|
|
165
190
|
className: "mt-3 flex gap-2",
|
|
166
191
|
children: [/* @__PURE__ */ o("button", {
|
|
167
192
|
type: "button",
|
|
168
193
|
className: "rounded-md border border-border-seam px-3 py-2 text-sm",
|
|
169
194
|
onClick: () => {
|
|
170
|
-
S(!1),
|
|
195
|
+
S(!1), c(!1);
|
|
171
196
|
},
|
|
172
|
-
children:
|
|
197
|
+
children: l("privacyConsent.reject", "Reject optional")
|
|
173
198
|
}), /* @__PURE__ */ o("button", {
|
|
174
199
|
type: "button",
|
|
175
200
|
className: "rounded-md bg-action-primary-bg px-3 py-2 text-sm text-action-primary-text",
|
|
176
201
|
onClick: () => {
|
|
177
|
-
S(!0),
|
|
202
|
+
S(!0), c(!1);
|
|
178
203
|
},
|
|
179
|
-
children:
|
|
204
|
+
children: l("privacyConsent.allow", "Allow analytics")
|
|
180
205
|
})]
|
|
181
206
|
})]
|
|
182
|
-
});
|
|
207
|
+
}) : null;
|
|
183
208
|
}
|
|
184
209
|
//#endregion
|
|
185
|
-
export {
|
|
210
|
+
export { F as AnalyticsConsentBanner, A as CONSENT_BANNER_OFFSET_VAR, c as DEFAULT_RYBBIT_ALLOWLIST, k as RybbitSink, P as publishConsentBannerOffset, x as readAnalyticsConsent, b as readAnalyticsConsentChoice, S as setAnalyticsConsent };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { DevtoolsSink } from './DevtoolsSink';
|
|
2
2
|
export { BroadcastChannelSink } from './BroadcastChannelSink';
|
|
3
3
|
export { BackendAuditSink } from './BackendAuditSink';
|
|
4
|
-
export { RybbitSink, AnalyticsConsentBanner, readAnalyticsConsent, readAnalyticsConsentChoice, setAnalyticsConsent, } from './RybbitSink';
|
|
4
|
+
export { RybbitSink, AnalyticsConsentBanner, CONSENT_BANNER_OFFSET_VAR, publishConsentBannerOffset, readAnalyticsConsent, readAnalyticsConsentChoice, setAnalyticsConsent, } from './RybbitSink';
|
|
5
5
|
export type { AnalyticsConsentChoice } from './RybbitSink';
|
|
6
6
|
export { compileRybbitRoutePattern, isRybbitSkippedRoute } from './rybbitRoutes';
|
|
7
7
|
export { OtelBrowserSink } from './OtelBrowserSink';
|
|
@@ -95,6 +95,22 @@ export interface ActiveContextBootstrapFields {
|
|
|
95
95
|
* around it needs a DOM.
|
|
96
96
|
*/
|
|
97
97
|
export declare function applyAuthStoreContextFallback(resolved: ActiveContextBootstrapFields, authStore: AuthStoreContextSnapshot): ActiveContextBootstrapFields;
|
|
98
|
+
/**
|
|
99
|
+
* Pair the URL's context with the tab's saved one, axis by axis, without ever
|
|
100
|
+
* mixing two contexts.
|
|
101
|
+
*
|
|
102
|
+
* A URL value always wins. A saved child axis is used only while every parent
|
|
103
|
+
* axis is still the saved one: once the URL names another organization, the
|
|
104
|
+
* saved workspace and project belong to the old one, and once it names another
|
|
105
|
+
* workspace, the saved project does. A deep link such as
|
|
106
|
+
* `/workflows/runs?org=<o>&workspace=<other>` used to keep the previous
|
|
107
|
+
* workspace's saved project, so the shell asked for a workspace token for a
|
|
108
|
+
* project outside the workspace, never got one, and the module waited for it
|
|
109
|
+
* for ever (and wrote the stale `project=` back into the URL).
|
|
110
|
+
*
|
|
111
|
+
* Exported so this can be unit-tested directly: it is pure.
|
|
112
|
+
*/
|
|
113
|
+
export declare function mergeUrlWithSavedContext(fromUrl: ActiveContextBootstrapFields, readSaved: (field: 'organization' | 'workspace' | 'project') => string | null): ActiveContextBootstrapFields;
|
|
98
114
|
/**
|
|
99
115
|
* Resolve the organization / workspace / project the provider should start
|
|
100
116
|
* from: URL (when synced) > ActiveContext's own storage > persisted auth store.
|
|
@@ -42,40 +42,44 @@ function D(e, t) {
|
|
|
42
42
|
projectId: e.projectId ?? (a ? t.projectId : null)
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
function O(e, t
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
function O(e, t) {
|
|
46
|
+
let n = /* @__PURE__ */ new Map(), r = (e) => (n.has(e) || n.set(e, t(e)), n.get(e) ?? null), i = e.organizationId ?? r("organization"), a = () => i === r("organization"), o = e.workspaceId ?? (a() ? r("workspace") : null);
|
|
47
|
+
return {
|
|
48
|
+
organizationId: i,
|
|
49
|
+
workspaceId: o,
|
|
50
|
+
projectId: e.projectId ?? (a() && o === r("workspace") ? r("project") : null)
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function k(e, t) {
|
|
54
|
+
return t && s(e) || null;
|
|
51
55
|
}
|
|
52
|
-
function
|
|
56
|
+
function A(t) {
|
|
53
57
|
if (typeof window > "u") return {
|
|
54
58
|
organizationId: null,
|
|
55
59
|
workspaceId: null,
|
|
56
60
|
projectId: null
|
|
57
61
|
};
|
|
58
|
-
let { storageKey: n, syncToUrl: r, urlParams: i } = t, o = {
|
|
59
|
-
organizationId:
|
|
60
|
-
workspaceId:
|
|
61
|
-
projectId:
|
|
62
|
-
}, c = r && s(i.project ?? a.project),
|
|
63
|
-
if (
|
|
62
|
+
let { storageKey: n, syncToUrl: r, urlParams: i } = t, o = O({
|
|
63
|
+
organizationId: k(i.organization ?? a.organization, r),
|
|
64
|
+
workspaceId: k(i.workspace ?? a.workspace, r),
|
|
65
|
+
projectId: k(i.project ?? a.project, r)
|
|
66
|
+
}, (e) => c(e, n) || null), u = r && s(i.project ?? a.project), d = (t) => {
|
|
67
|
+
if (u) try {
|
|
64
68
|
e() && f(t);
|
|
65
69
|
} catch {}
|
|
66
70
|
};
|
|
67
|
-
if (
|
|
71
|
+
if (d(o), !u && p(o)) return {
|
|
68
72
|
...o,
|
|
69
73
|
projectId: null
|
|
70
74
|
};
|
|
71
75
|
if (o.organizationId !== null && o.workspaceId !== null && o.projectId !== null) return o;
|
|
72
|
-
let
|
|
73
|
-
return
|
|
74
|
-
...
|
|
76
|
+
let m = D(o, l());
|
|
77
|
+
return d(m), !u && p(m) ? {
|
|
78
|
+
...m,
|
|
75
79
|
projectId: null
|
|
76
|
-
} :
|
|
80
|
+
} : m;
|
|
77
81
|
}
|
|
78
|
-
function
|
|
82
|
+
function j(e) {
|
|
79
83
|
if (typeof window > "u" || m() || window.location.pathname.startsWith("/auth/")) return;
|
|
80
84
|
let t = new URL(window.location.href);
|
|
81
85
|
Object.entries(e).forEach(([e, n]) => {
|
|
@@ -84,20 +88,20 @@ function A(e) {
|
|
|
84
88
|
let n = window.history.state ?? null;
|
|
85
89
|
window.history.replaceState(n, "", t.toString());
|
|
86
90
|
}
|
|
87
|
-
function
|
|
91
|
+
function M(e, t) {
|
|
88
92
|
return e === null || e === "" || e === t ? { apply: !1 } : {
|
|
89
93
|
apply: !0,
|
|
90
94
|
value: e
|
|
91
95
|
};
|
|
92
96
|
}
|
|
93
|
-
function
|
|
94
|
-
let [
|
|
97
|
+
function N({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m = null, defaultProjectId: h = null, defaultTenantId: g = null, storageKey: T = i, syncToUrl: D = !1, urlParams: O = a }) {
|
|
98
|
+
let [k] = x(() => A({
|
|
95
99
|
storageKey: T,
|
|
96
100
|
syncToUrl: D,
|
|
97
101
|
urlParams: O
|
|
98
|
-
})), [N, P] = x(() => typeof window > "u" ? l :
|
|
102
|
+
})), [N, P] = x(() => typeof window > "u" ? l : k.organizationId ?? l), [F, I] = x(() => {
|
|
99
103
|
if (typeof window > "u") return m;
|
|
100
|
-
let e =
|
|
104
|
+
let e = k.workspaceId ?? m;
|
|
101
105
|
if (e) {
|
|
102
106
|
let i = n();
|
|
103
107
|
if (i) {
|
|
@@ -109,13 +113,14 @@ function M({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m
|
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
return e;
|
|
112
|
-
}), [L, R] = x(() => typeof window > "u" ? h : p(
|
|
116
|
+
}), [L, R] = x(() => typeof window > "u" ? h : p(k) && !k.projectId ? null : k.projectId ?? h), [z, B] = x(() => {
|
|
113
117
|
if (typeof window > "u") return g;
|
|
114
118
|
if (D) {
|
|
115
119
|
let e = s(O.tenant);
|
|
116
120
|
if (e) return e;
|
|
117
121
|
}
|
|
118
|
-
|
|
122
|
+
let e = c("organization", T) || null;
|
|
123
|
+
return e !== null && k.organizationId !== null && k.organizationId !== e ? g : c("tenant", T) || g;
|
|
119
124
|
}), V = b(null);
|
|
120
125
|
V.current === null && (V.current = w(N));
|
|
121
126
|
let H = b(null);
|
|
@@ -148,7 +153,7 @@ function M({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m
|
|
|
148
153
|
L,
|
|
149
154
|
z
|
|
150
155
|
]), v(() => {
|
|
151
|
-
D &&
|
|
156
|
+
D && j({
|
|
152
157
|
[O.organization]: N,
|
|
153
158
|
[O.workspace]: F,
|
|
154
159
|
[O.project]: L,
|
|
@@ -164,13 +169,13 @@ function M({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m
|
|
|
164
169
|
]), v(() => {
|
|
165
170
|
if (!D) return;
|
|
166
171
|
let e = () => {
|
|
167
|
-
let e = s(O.organization), t = s(O.workspace), n = s(O.project), r = s(O.tenant), i =
|
|
172
|
+
let e = s(O.organization), t = s(O.workspace), n = s(O.project), r = s(O.tenant), i = M(e, N);
|
|
168
173
|
i.apply && (P(i.value), V.current.previous = V.current.current, V.current.current = i.value);
|
|
169
|
-
let a =
|
|
174
|
+
let a = M(t, F);
|
|
170
175
|
a.apply && (I(a.value), H.current.previous = H.current.current, H.current.current = a.value);
|
|
171
|
-
let o =
|
|
176
|
+
let o = M(n, L);
|
|
172
177
|
o.apply && (R(o.value), U.current.previous = U.current.current, U.current.current = o.value);
|
|
173
|
-
let c =
|
|
178
|
+
let c = M(r, z);
|
|
174
179
|
c.apply && (B(c.value), W.current.previous = W.current.current, W.current.current = c.value);
|
|
175
180
|
};
|
|
176
181
|
return window.addEventListener("popstate", e), () => window.removeEventListener("popstate", e);
|
|
@@ -183,7 +188,7 @@ function M({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m
|
|
|
183
188
|
z
|
|
184
189
|
]);
|
|
185
190
|
let G = _((e, t) => {
|
|
186
|
-
D &&
|
|
191
|
+
D && j({ [O[e] ?? a[e]]: t });
|
|
187
192
|
}, [D, O]), K = _((e) => {
|
|
188
193
|
if (!E("organizationId", V.current, e, Date.now())) return;
|
|
189
194
|
P(e), d("organization", e, T), G("organization", e);
|
|
@@ -259,10 +264,10 @@ function M({ children: e, defaultOrganizationId: l = null, defaultWorkspaceId: m
|
|
|
259
264
|
children: e
|
|
260
265
|
});
|
|
261
266
|
}
|
|
262
|
-
function
|
|
267
|
+
function P() {
|
|
263
268
|
let e = g(C);
|
|
264
269
|
if (!e) throw Error("useActiveContext must be used within an ActiveContextProvider");
|
|
265
270
|
return e;
|
|
266
271
|
}
|
|
267
272
|
//#endregion
|
|
268
|
-
export {
|
|
273
|
+
export { N as ActiveContextProvider, P as useActiveContext };
|
package/dist/shared-events.js
CHANGED
|
@@ -4,13 +4,13 @@ import { DevtoolsSink as n } from "./shared/events/sinks/DevtoolsSink.js";
|
|
|
4
4
|
import { BroadcastChannelSink as r } from "./shared/events/sinks/BroadcastChannelSink.js";
|
|
5
5
|
import { BackendAuditSink as i } from "./shared/events/sinks/BackendAuditSink.js";
|
|
6
6
|
import { compileRybbitRoutePattern as a, isRybbitSkippedRoute as o } from "./shared/events/sinks/rybbitRoutes.js";
|
|
7
|
-
import { AnalyticsConsentBanner as s,
|
|
8
|
-
import { OtelBrowserSink as
|
|
7
|
+
import { AnalyticsConsentBanner as s, CONSENT_BANNER_OFFSET_VAR as c, RybbitSink as l, publishConsentBannerOffset as u, readAnalyticsConsent as d, readAnalyticsConsentChoice as f, setAnalyticsConsent as p } from "./shared/events/sinks/RybbitSink.js";
|
|
8
|
+
import { OtelBrowserSink as m } from "./shared/events/sinks/OtelBrowserSink.js";
|
|
9
9
|
import "./shared/events/sinks/index.js";
|
|
10
|
-
import { createContext as
|
|
11
|
-
import { jsx as
|
|
10
|
+
import { createContext as h, use as g, useCallback as _, useEffect as v, useMemo as y } from "react";
|
|
11
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/events/index.tsx
|
|
13
|
-
var
|
|
13
|
+
var x = h({
|
|
14
14
|
emit: () => {},
|
|
15
15
|
emitCustom: () => {},
|
|
16
16
|
on: () => () => {},
|
|
@@ -18,22 +18,22 @@ var y = p({
|
|
|
18
18
|
getBuffer: () => [],
|
|
19
19
|
onAny: () => () => {}
|
|
20
20
|
});
|
|
21
|
-
function
|
|
22
|
-
if (!e) return
|
|
21
|
+
function S(e, t) {
|
|
22
|
+
if (!e) return C();
|
|
23
23
|
let n = e.getItem(t);
|
|
24
24
|
if (n) return n;
|
|
25
|
-
let r =
|
|
25
|
+
let r = C();
|
|
26
26
|
return e.setItem(t, r), r;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
28
|
+
function C() {
|
|
29
29
|
return typeof crypto < "u" && "randomUUID" in crypto ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function w() {
|
|
32
32
|
if (typeof document > "u") return "light";
|
|
33
33
|
let e = document.documentElement;
|
|
34
34
|
return e.classList.contains("hc") || e.dataset.theme === "hc" ? "hc" : e.classList.contains("dark") || e.dataset.theme === "dark" ? "dark" : "light";
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function T(t, n, r) {
|
|
37
37
|
let i = typeof window < "u" ? window.location : void 0, a = e(), o = typeof navigator < "u" ? navigator : {
|
|
38
38
|
userAgent: "",
|
|
39
39
|
language: "en"
|
|
@@ -43,11 +43,11 @@ function C(t, n, r) {
|
|
|
43
43
|
pathname: i?.pathname ?? "",
|
|
44
44
|
search: i?.search ?? ""
|
|
45
45
|
},
|
|
46
|
-
sessionId:
|
|
47
|
-
deviceId:
|
|
46
|
+
sessionId: S(typeof sessionStorage < "u" ? sessionStorage : void 0, "bf-event-session-id"),
|
|
47
|
+
deviceId: S(typeof localStorage < "u" ? localStorage : void 0, "bf-event-device-id"),
|
|
48
48
|
userAgent: o.userAgent,
|
|
49
49
|
locale: o.language || "en",
|
|
50
|
-
theme:
|
|
50
|
+
theme: w(),
|
|
51
51
|
app: {
|
|
52
52
|
name: t,
|
|
53
53
|
version: n,
|
|
@@ -57,8 +57,8 @@ function C(t, n, r) {
|
|
|
57
57
|
spanId: a.spanId
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
function
|
|
61
|
-
let a =
|
|
60
|
+
function E({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe: r = e, children: i }) {
|
|
61
|
+
let a = y(() => D({
|
|
62
62
|
appName: e,
|
|
63
63
|
appVersion: t,
|
|
64
64
|
appEnv: n,
|
|
@@ -69,16 +69,16 @@ function w({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
69
69
|
t,
|
|
70
70
|
r
|
|
71
71
|
]);
|
|
72
|
-
return /* @__PURE__ */
|
|
72
|
+
return /* @__PURE__ */ b(x.Provider, {
|
|
73
73
|
value: a,
|
|
74
74
|
children: i
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
function
|
|
77
|
+
function D({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe: r = e }) {
|
|
78
78
|
let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = [];
|
|
79
79
|
function s(i, a, o) {
|
|
80
80
|
return {
|
|
81
|
-
id:
|
|
81
|
+
id: C(),
|
|
82
82
|
name: i,
|
|
83
83
|
version: 1,
|
|
84
84
|
source: {
|
|
@@ -88,7 +88,7 @@ function T({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
88
88
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
89
89
|
monotonic: performance.now(),
|
|
90
90
|
payload: a,
|
|
91
|
-
metadata:
|
|
91
|
+
metadata: T(e, t, n)
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
function c(e) {
|
|
@@ -123,24 +123,24 @@ function T({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
-
function
|
|
127
|
-
return
|
|
126
|
+
function O() {
|
|
127
|
+
return g(x);
|
|
128
128
|
}
|
|
129
|
-
function
|
|
130
|
-
let n =
|
|
131
|
-
|
|
129
|
+
function k(e, t) {
|
|
130
|
+
let n = O();
|
|
131
|
+
v(() => n.on(e, t), [
|
|
132
132
|
n,
|
|
133
133
|
t,
|
|
134
134
|
e
|
|
135
135
|
]);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
138
|
-
let n =
|
|
139
|
-
return
|
|
137
|
+
function A(e, t) {
|
|
138
|
+
let n = O();
|
|
139
|
+
return _((r) => n.emit(e, r, t), [
|
|
140
140
|
n,
|
|
141
141
|
e,
|
|
142
142
|
t
|
|
143
143
|
]);
|
|
144
144
|
}
|
|
145
145
|
//#endregion
|
|
146
|
-
export { s as AnalyticsConsentBanner, i as BackendAuditSink, r as BroadcastChannelSink, n as DevtoolsSink,
|
|
146
|
+
export { s as AnalyticsConsentBanner, i as BackendAuditSink, r as BroadcastChannelSink, c as CONSENT_BANNER_OFFSET_VAR, n as DevtoolsSink, E as EventBusProvider, t as FLUIDGRIDS_RYBBIT_EVENTS, m as OtelBrowserSink, l as RybbitSink, a as compileRybbitRoutePattern, D as createEventBus, o as isRybbitSkippedRoute, u as publishConsentBannerOffset, d as readAnalyticsConsent, f as readAnalyticsConsentChoice, p as setAnalyticsConsent, k as useEvent, O as useEventBus, A as useEventEmitter };
|
package/dist/shared.js
CHANGED
|
@@ -99,56 +99,56 @@ import { DevtoolsSink as Ra } from "./shared/events/sinks/DevtoolsSink.js";
|
|
|
99
99
|
import { BroadcastChannelSink as za } from "./shared/events/sinks/BroadcastChannelSink.js";
|
|
100
100
|
import { BackendAuditSink as Ba } from "./shared/events/sinks/BackendAuditSink.js";
|
|
101
101
|
import { compileRybbitRoutePattern as Va, isRybbitSkippedRoute as Ha } from "./shared/events/sinks/rybbitRoutes.js";
|
|
102
|
-
import { AnalyticsConsentBanner as Ua,
|
|
103
|
-
import { OtelBrowserSink as
|
|
104
|
-
import { EventBusProvider as
|
|
105
|
-
import { useDebounce as
|
|
106
|
-
import { useThrottle as
|
|
107
|
-
import { BREAKPOINTS as
|
|
108
|
-
import { useOnClickOutside as
|
|
109
|
-
import { useKeyPress as
|
|
110
|
-
import { useExclusiveMenu as
|
|
111
|
-
import { useLocalStorage as
|
|
112
|
-
import { useSessionStorage as
|
|
113
|
-
import { usePrevious as
|
|
114
|
-
import { useConditionalToggle as
|
|
115
|
-
import { usePagination as
|
|
116
|
-
import { useAsync as
|
|
117
|
-
import { MODIFIER_KEYS as
|
|
118
|
-
import { useKeyboardShortcuts as
|
|
119
|
-
import { useHotkeys as
|
|
120
|
-
import { useShortcutHelp as
|
|
121
|
-
import { GLOBAL_SHORTCUT_CATEGORIES as
|
|
122
|
-
import { useLogger as
|
|
123
|
-
import { useHasAnimated as
|
|
124
|
-
import { useReferralAttribution as
|
|
125
|
-
import { useRecordProductVisit as
|
|
126
|
-
import { usePushDeviceRegistration as
|
|
127
|
-
import { QUOTA_EXHAUSTED_EVENT as
|
|
128
|
-
import { PLAN_USAGE_SNAPSHOT_EVENT as
|
|
129
|
-
import { appendContextToPath as
|
|
130
|
-
import { UNSAVED_CHANGE_LABEL_MAX as
|
|
131
|
-
import { MicrofrontendContext as
|
|
132
|
-
import { withTourProgressStatus as
|
|
133
|
-
import { detectDeviceType as
|
|
134
|
-
import { useTourPlayer as
|
|
135
|
-
import { TourSpotlight as
|
|
136
|
-
import { TourTooltip as
|
|
137
|
-
import { TourPlayerProvider as
|
|
138
|
-
import { TourPlayer as
|
|
139
|
-
import { BIGCONSOLE_TOUR_ROUTE_CATALOG as
|
|
140
|
-
import { createTourPageIdResolver as
|
|
141
|
-
import { ToursProvider as
|
|
142
|
-
import { TourInitializer as
|
|
143
|
-
import { useRegisterTourRouteCatalog as
|
|
144
|
-
import { AppShellProvider as
|
|
145
|
-
import { MicrofrontendProvider as
|
|
146
|
-
import { TourTrigger as
|
|
102
|
+
import { AnalyticsConsentBanner as Ua, CONSENT_BANNER_OFFSET_VAR as Wa, RybbitSink as Ga, publishConsentBannerOffset as Ka, readAnalyticsConsent as qa, readAnalyticsConsentChoice as Ja, setAnalyticsConsent as Ya } from "./shared/events/sinks/RybbitSink.js";
|
|
103
|
+
import { OtelBrowserSink as Xa } from "./shared/events/sinks/OtelBrowserSink.js";
|
|
104
|
+
import { EventBusProvider as Za, createEventBus as Qa, useEvent as $a, useEventBus as eo, useEventEmitter as to } from "./shared-events.js";
|
|
105
|
+
import { useDebounce as no } from "./shared/hooks/useDebounce.js";
|
|
106
|
+
import { useThrottle as ro } from "./shared/hooks/useThrottle.js";
|
|
107
|
+
import { BREAKPOINTS as io, useBreakpoint as ao, useMobileBreakpoint as oo } from "./shared/hooks/useBreakpoint.js";
|
|
108
|
+
import { useOnClickOutside as so, useOnClickOutsideWithRef as co } from "./shared/hooks/useOnClickOutside.js";
|
|
109
|
+
import { useKeyPress as lo, useKeyboardShortcut as uo } from "./shared/hooks/useKeyPress.js";
|
|
110
|
+
import { useExclusiveMenu as fo } from "./shared/hooks/useExclusiveMenu.js";
|
|
111
|
+
import { useLocalStorage as po } from "./shared/hooks/useLocalStorage.js";
|
|
112
|
+
import { useSessionStorage as mo } from "./shared/hooks/useSessionStorage.js";
|
|
113
|
+
import { usePrevious as ho, usePreviousDistinct as go, usePreviousHistory as _o } from "./shared/hooks/usePrevious.js";
|
|
114
|
+
import { useConditionalToggle as vo, useToggle as yo, useToggleObject as bo } from "./shared/hooks/useToggle.js";
|
|
115
|
+
import { usePagination as xo } from "./shared/hooks/usePagination.js";
|
|
116
|
+
import { useAsync as So, useAsyncImmediate as Co } from "./shared/hooks/useAsync.js";
|
|
117
|
+
import { MODIFIER_KEYS as wo, PLATFORM_TYPES as To } from "./shared/keyboard/types.js";
|
|
118
|
+
import { useKeyboardShortcuts as Eo } from "./shared/keyboard/useKeyboardShortcuts.js";
|
|
119
|
+
import { useHotkeys as Do } from "./shared/keyboard/useHotkeys.js";
|
|
120
|
+
import { useShortcutHelp as Oo } from "./shared/keyboard/useShortcutHelp.js";
|
|
121
|
+
import { GLOBAL_SHORTCUT_CATEGORIES as ko, createGlobalShortcuts as Ao, getGlobalShortcutsByCategory as jo, mergeShortcuts as Mo } from "./shared/keyboard/globalShortcuts.js";
|
|
122
|
+
import { useLogger as No } from "./shared/logger/useLogger.js";
|
|
123
|
+
import { useHasAnimated as Po } from "./shared/hooks/useHasAnimated.js";
|
|
124
|
+
import { useReferralAttribution as Fo } from "./shared/hooks/useReferralAttribution.js";
|
|
125
|
+
import { useRecordProductVisit as Io } from "./shared/hooks/useRecordProductVisit.js";
|
|
126
|
+
import { usePushDeviceRegistration as Lo } from "./shared/hooks/usePushDeviceRegistration.js";
|
|
127
|
+
import { QUOTA_EXHAUSTED_EVENT as Ro, dispatchQuotaExhausted as zo, useQuotaErrorToast as Bo } from "./shared/hooks/useQuotaErrorToast.js";
|
|
128
|
+
import { PLAN_USAGE_SNAPSHOT_EVENT as Vo, publishPlanUsageSnapshot as Ho, useUpgradePrompt as Uo } from "./shared/hooks/useUpgradePrompt.js";
|
|
129
|
+
import { appendContextToPath as Wo, useCurrentContextSearchParams as Go } from "./shared/hooks/useCurrentContextSearchParams.js";
|
|
130
|
+
import { UNSAVED_CHANGE_LABEL_MAX as Ko, listUnsavedChanges as qo, registerUnsavedChange as Jo, unsavedChangesBlocking as Yo, useUnsavedChanges as Xo } from "./shared/navigation/unsavedChanges.js";
|
|
131
|
+
import { MicrofrontendContext as Zo, useMicrofrontendContext as Qo } from "./shared-hooks.js";
|
|
132
|
+
import { withTourProgressStatus as $o } from "./shared/tours/progress.js";
|
|
133
|
+
import { detectDeviceType as es, getResponsiveSelector as ts } from "./shared/tours/types.js";
|
|
134
|
+
import { useTourPlayer as ns } from "./shared/tours/useTourPlayer.js";
|
|
135
|
+
import { TourSpotlight as rs } from "./shared/tours/TourSpotlight.js";
|
|
136
|
+
import { TourTooltip as is } from "./shared/tours/TourTooltip.js";
|
|
137
|
+
import { TourPlayerProvider as as, useIsTourPlaying as os, useStartTour as ss, useStopTour as cs, useTourPlayerContext as ls } from "./shared/tours/TourPlayerProvider.js";
|
|
138
|
+
import { TourPlayer as us, TourTriggerButton as ds, usePlayTour as fs } from "./shared/tours/TourPlayer.js";
|
|
139
|
+
import { BIGCONSOLE_TOUR_ROUTE_CATALOG as ps, BUILDMYIQ_TOUR_ROUTE_CATALOG as ms, BUILT_IN_TOUR_ROUTE_CATALOGS as hs, COLLABKIN_TOUR_ROUTE_CATALOG as gs, FLUIDGRIDS_TOUR_ROUTE_CATALOG as _s, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as vs, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as ys, VIBECONTROLS_TOUR_ROUTE_CATALOG as bs, getBuiltInTourRouteCatalog as xs, listBuiltInTourRouteCatalogProductIds as Ss } from "./shared/tours/catalogs.js";
|
|
140
|
+
import { createTourPageIdResolver as Cs, getTourContextRank as ws, getTourRouteCatalog as Ts, getTourRouteCatalogVersion as Es, getTourRouteModules as Ds, getTourRoutePages as Os, hasRegisteredTourRouteCatalog as ks, isTourVisibleForContext as As, normalizeTourPath as js, registerTourRouteCatalog as Ms, resolveTourTargetPath as Ns, subscribeTourRouteCatalogs as Ps } from "./shared/tours/routeCatalog.js";
|
|
141
|
+
import { ToursProvider as Fs, useAutoStartTour as Is, useSafeToursContext as Ls, useTours as Rs, useToursContext as zs } from "./shared/tours/ToursContext.js";
|
|
142
|
+
import { TourInitializer as Bs } from "./shared/tours/TourInitializer.js";
|
|
143
|
+
import { useRegisterTourRouteCatalog as Vs, useTourRouteCatalog as Hs } from "./shared/tours/useTourRouteCatalog.js";
|
|
144
|
+
import { AppShellProvider as Us, resolveAppShellObservabilityConfig as Ws } from "./shared/providers/AppShellProvider.js";
|
|
145
|
+
import { MicrofrontendProvider as Gs } from "./shared-providers.js";
|
|
146
|
+
import { TourTrigger as Ks } from "./shared/tours/TourTrigger.js";
|
|
147
147
|
import "./shared-tours.js";
|
|
148
|
-
import { acknowledgeNativePurchase as
|
|
148
|
+
import { acknowledgeNativePurchase as qs, getNativeProducts as Js, getNativePurchases as Ys, installNativeIAP as Xs, isNativeIAPAvailable as Zs, purchaseNativeProduct as Qs, restoreNativePurchases as $s } from "./shared/native/purchases.js";
|
|
149
149
|
import "./shared-native.js";
|
|
150
150
|
import "./shared/actors/index.js";
|
|
151
151
|
//#region src/shared/index.ts
|
|
152
|
-
var
|
|
152
|
+
var ec = "1.0.0";
|
|
153
153
|
//#endregion
|
|
154
|
-
export { xa as ASSISTANT_WIDGET_TOGGLE_EVENT, pi as AccessDenied, Xr as ActorIdentity, Ua as AnalyticsConsentBanner, Qt as ApolloClient, $t as ApolloProvider, Ci as AppErrorBoundary, er as AppInitializer, Vs as AppShellProvider, Sa as AssistantWidget, bt as BACKEND_ERROR_EVENT, ds as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, no as BREAKPOINTS, fs as BUILDMYIQ_TOUR_ROUTE_CATALOG, ps as BUILT_IN_TOUR_ROUTE_CATALOGS, Ba as BackendAuditSink, za as BroadcastChannelSink, Ge as CANONICAL_DOCS_HOSTS, m as CHART_SERIES_COUNT, ms as COLLABKIN_TOUR_ROUTE_CATALOG, et as COMMON_SHELL_LESS_ROUTES, xt as CONNECTION_STATUS_EVENT, bi as ConditionalShell, sr as ConsoleTransport, Mi as ContextConversationWidget, h as DATA_TYPES, ot as DEFAULT_PAGE_SIZE, Qi as DEFAULT_QUOTA_UPGRADE_COPY, tt as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, Ia as DesktopUpdateToast, Ra as DevtoolsSink, ca as DocsLink, g as EDGE_KINDS, si as ErrorBoundary, hi as ErrorFallback, Ya as EventBusProvider, Qs as FE_SHARED_VERSION, La as FLUIDGRIDS_RYBBIT_EVENTS, hs as FLUIDGRIDS_TOUR_ROUTE_CATALOG, wi as FeatureFlagProvider, ji as FeatureGate, st as GATEWAYS, Do as GLOBAL_SHORTCUT_CATEGORIES, Wt as GatewayProvider, Sr as INLINE_ENCODE, gs as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, en as InMemoryCache, Ki as KeyboardHelpDialogWrapper, ga as LandingGateView, _a as LandingOrDashboardRedirect, gi as LoadingFallback, rr as LogLevel, ar as LogManager, ir as Logger, Fr as MAIN_CONTENT_ID, _s as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, So as MODIFIER_KEYS, Ir as MainLandmark, Ca as Markdown, Yo as MicrofrontendContext, yi as MicrofrontendErrorBoundary, Us as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, Ja as OtelBrowserSink, zo as PLAN_USAGE_SNAPSHOT_EVENT, Co as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, la as PUBLIC_PRODUCT_DOCS_URL_QUERY, Gr as PULL_TO_REFRESH_THRESHOLD, ri as PUSH_DEVICE_ID_STORAGE_KEY, Si as PWAInstallBanner, _i as PageLoadingFallback, ui as PermissionButton, mi as PermissionDenied, di as PermissionGate, fi as PermissionLink, Lr as PublicLayout, pr as QUOTA_EXHAUSTED_CODE, Io as QUOTA_EXHAUSTED_EVENT, qi as QuotaMeter, $i as QuotaUpgradeBridge, mr as RESOURCE_CAP_EXCEEDED_CODE, ci as RequireAuth, li as RequireGuest, Wa as RybbitSink, Rt as SSELink, In as SSORedirectSpinner, Hn as SSO_DEPOSITED_PARAM, hr as STORAGE_QUOTA_EXCEEDED_CODE, Vr as SafeAreaView, vi as SectionLoadingFallback, Rr as SkipToContentLink, Rs as TourInitializer, cs as TourPlayer, rs as TourPlayerProvider, ts as TourSpotlight, ns as TourTooltip, Ws as TourTrigger, ls as TourTriggerButton, Ns as ToursProvider, Wo as UNSAVED_CHANGE_LABEL_MAX, gr as UPGRADE_ERROR_CODES, Ji as UPGRADE_PROMPT_EVENT, Zi as UpgradeInlineBanner, Yi as UpgradePromptModal, vs as VIBECONTROLS_TOUR_ROUTE_CATALOG, pt as WORKSPACE_CONTEXT_CHANGED, mt as WORKSPACE_CONTEXT_MISMATCH_EVENT, ht as WORKSPACE_WRITE_REFUSED_EVENT, gt as WORKSPACE_WRITE_REFUSED_MESSAGE, _t as WorkspaceContextChangedError, Xt as WsLink, Gs as acknowledgeNativePurchase, r as alertTokens, Ho as appendContextToPath, Mn as assignLocationWithAllowlist, cn as attemptTokenRefresh, Un as beginSsoNavigation, re as bootDesktopShell, Zr as buildActorFallback, Ke as buildProductDocsUrl, _r as buildQuotaExhaustedMessage, Wn as buildSsoDepositUrl, qe as canonicalizeDocsOrigin, j as capitalizeFirst, M as capitalizeWords, ea as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, Ln as checkRemoteSLO, Rn as checkSLO, ta as claimQuotaDialog, ln as clearAuthSessionStorage, kt as clearGraphqlFetchResponseCache, zn as clearLocalAuthState, mn as clearSSoCookie, hn as clearShellSsoCookies, Gn as clearSsoDepositState, Kn as clearSsoNavigation, cr as clearUserContext, Tr as cn, Va as compileRybbitRoutePattern, Kr as computePullOffset, qr as computePullProgress, qn as consumeSsoDepositMarker, n as createApolloClient, Xa as createEventBus, Oo as createGlobalShortcuts, zt as createGraphQLClient, dr as createProfileScopedStorage, xs as createTourPageIdResolver, x as dataTypeColor, S as dataTypeTextClasses, ie as desktopCheckForUpdates, ae as desktopDeepLinkToPath, oe as desktopInstallUpdate, se as desktopNotify, ce as desktopOpenExternal, le as desktopSetBadgeCount, ue as desktopSetLocale, de as desktopSetTheme, fe as desktopSetTrayQuickActions, Qo as detectDeviceType, Ni as detectPlatform, St as dispatchBackendErrorEvent, na as dispatchProductQuotaExhausted, Lo as dispatchQuotaExhausted, Xi as dispatchUpgradePrompt, Cr as downscaleImage, C as edgeColor, Fe as emitProductSlug, Ct as extractBackendError, vr as extractQuotaExhaustedExtensions, yr as extractUpgradeErrorExtensions, ua as fetchRegistryDocsUrl, He as findProductConfig, zr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, Pi as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, ys as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, Je as getCatalogDocsOrigin, o as getCategoryTokens, pe as getDesktopAuthBridgeConfig, me as getDesktopBridge, he as getDesktopGatewayBases, ge as getDesktopGatewayUrls, _e as getDesktopRuntimeConfig, ve as getDesktopUpdateState, ye as getDesktopWindowState, Fi as getDisplayKeysForPlatform, ct as getGatewayConfig, lt as getGatewayUrl, Bt as getGlobalClient, ko as getGlobalShortcutsByCategory, ut as getGraphQLEndpoint, be as getLegacyDesktopRuntime, Sn as getNativeBridge, ma as getNativeEntryRoutes, Ks as getNativeProducts, qs as getNativePurchases, ii as getOrCreatePushDeviceId, Cn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, fr as getProfileScopedKey, s as getProgressTokens, $r as getPushOptInController, $o as getResponsiveSelector, Bn as getSSORedirectUrl, gn as getSSoCookie, nt as getShellConfig, Ii as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, At as getStoredAuthToken, jt as getStoredLocale, Mt as getStoredOrganizationId, Nt as getStoredProjectId, Pt as getStoredWorkspaceId, Ft as getStoredWorkspaceToken, Ss as getTourContextRank, Cs as getTourRouteCatalog, ws as getTourRouteCatalogVersion, Ts as getTourRouteModules, Es as getTourRoutePages, u as getTrendTokens, Vt as getWorkspaceClient, dt as getWorkspaceTokenPayload, tn as gql, It as graphqlFetch, un as hasAuthGraphQLErrors, Ds as hasRegisteredTourRouteCatalog, va as hasStoredValidSession, Ht as initializeAppClients, lr as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, Js as installNativeIAP, wt as isAbortError, Nn as isAllowedRedirectUrl, wn as isAndroid, dn as isAuthGraphQLError, fn as isAuthNetworkError, Tt as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, Tn as isElectron, En as isIOS, Dn as isInstalledApp, Li as isMac, Ri as isMobileDevice, On as isNative, Ys as isNativeIAPAvailable, br as isQuotaExhaustedError, Ha as isRybbitSkippedRoute, Ie as isSameProductSlug, _n as isSharedSsoCookieDomain, rt as isShellLessRoute, Jn as isSsoNavigationPending, kn as isStandalonePWA, zi as isTabletDevice, Os as isTourVisibleForContext, Et as isTransportError, vn as isTrustedSsoOrigin, xr as isUpgradeError, An as isWeb, jn as isWebBrowser, vt as isWorkspaceContextChangedError, ft as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, bs as listBuiltInTourRouteCatalogProductIds, Go as listUnsavedChanges, or as logManager, Dt as markConnectionHealthy, Yn as markSsoDepositDone, Xn as markSsoDepositPending, Bi as matchesKeyCombo, Ao as mergeShortcuts, Zn as mintSsoSessionTokens, Er as nativeActionSheet, Dr as nativeConfirm, Or as nativeCopyText, kr as nativeImpact, Ar as nativeNotify, jr as nativeOpenUrl, Mr as nativeSelection, Nr as nativeShare, Pr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, Ye as normalizeDocsPath, Vi as normalizeKey, Hi as normalizePlatformCombo, Re as normalizeProductSlug, ks as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, Pn as openUrlInNewTabWithAllowlist, Ui as parseKeyCombo, K as pluralize, Zt as prepareWorkspaceRequest, d as progressTokens, Bo as publishPlanUsageSnapshot, Xs as purchaseNativeProduct, ra as quotaEventKind, Ga as readAnalyticsConsent, Ka as readAnalyticsConsentChoice, yt as readContextInputWorkspaceId, Hr as readInitialNetworkStatus, da as readRegistryDocsUrl, yn as readShellSsoCookie, Qn as readSsoDepositState, ei as recordPushPermissionPromptDismissed, pn as redirectToLogin, Vn as redirectToSSO, Ur as reduceNetworkStatus, Ee as registerDesktopNavigator, ai as registerPushDevice, ti as registerPushOptInController, As as registerTourRouteCatalog, Ko as registerUnsavedChange, Fn as replaceLocationWithAllowlist, Ut as resetAppClients, ja as resolveActionSheetOutcome, Hs as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, Xe as resolveDocsEnvironment, ke as resolveGatewayBases, Lt as resolveGatewayUrl, De as resolveGatewayUrls, ya as resolveLandingGate, Ze as resolveProductDocsOrigin, ia as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, js as resolveTourTargetPath, Zs as restoreNativePurchases, wr as selectInlineBase64, qa as setAnalyticsConsent, bn as setSSoCookie, xn as setShellSsoCookies, ur as setUserContext, $n as shouldAttemptSsoDeposit, Wi as shouldEnableKeyboardShortcuts, Gi as shouldIgnoreShortcut, ni as shouldPromptForPushPermission, it as shouldShowBreadcrumb, ha as shouldShowNativeWelcome, at as shouldShowSidebar, Ot as shouldToastBackendError, q as slugify, f as statusTokens, Ms as subscribeTourRouteCatalogs, Ae as suppressConsole, J as toCamelCase, k as toDataType, Qe as toEnvironmentDocsOrigin, A as toNodeCategory, Y as toPascalCase, $e as toTrustedDocsOrigin, p as trendTokens, X as truncateText, oi as unregisterPushDevice, qo as unsavedChangesBlocking, Ma as useActionSheet, Qr as useActorProfiles, nn as useApolloClient, Da as useAppState, bo as useAsync, xo as useAsyncImmediate, Ps as useAutoStartTour, ro as useBreakpoint, go as useConditionalToggle, e as useCopyToClipboard, Uo as useCurrentContextSearchParams, eo as useDebounce, Na as useDesktop, Pa as useDesktopUpdateState, Fa as useDesktopWindowState, Oa as useDeviceInfo, Za as useEvent, Qa as useEventBus, $a as useEventEmitter, lo as useExclusiveMenu, Di as useFeatureFlag, Oi as useFeatureFlagDetails, ki as useFeatureFlagValue, Ti as useFeatureFlags, Gt as useGateway, Kt as useGatewayClient, ka as useHaptics, Mo as useHasAnimated, Yt as useHasAuthToken, To as useHotkeys, Br as useInsideMainLandmark, is as useIsTourPlaying, so as useKeyPress, co as useKeyboardShortcut, wo as useKeyboardShortcuts, rn as useLazyQuery, uo as useLocalStorage, jo as useLogger, t as useMediaQuery, Xo as useMicrofrontendContext, io as useMobileBreakpoint, an as useMutation, Ea as useNativeKeyboard, wa as useNativePlatform, Wr as useNetworkStatus, ao as useOnClickOutside, oo as useOnClickOutsideWithRef, Ai as useOptionalFeatureFlag, Ei as useOptionalFeatureFlags, xi as usePWA, yo as usePagination, us as usePlayTour, po as usePrevious, mo as usePreviousDistinct, ho as usePreviousHistory, fa as useProductDocsOrigin, pa as useProductDocsUrl, Jr as usePullToRefresh, Fo as usePushDeviceRegistration, on as useQuery, aa as useQuotaDialogOwnership, Ro as useQuotaErrorToast, oa as useQuotaUpgradeBridge, Po as useRecordProductVisit, No as useReferralAttribution, zs as useRegisterTourRouteCatalog, tr as useRegistryHelpers, Yr as useReturnFocus, Ta as useSafeArea, qt as useSafeGateway, Jt as useSafeGatewayClient, Fs as useSafeToursContext, fo as useSessionStorage, nr as useShellNavigate, Eo as useShortcutHelp, as as useStartTour, Aa as useStatusBar, os as useStopTour, sn as useSubscription, to as useThrottle, _o as useToggle, vo as useToggleObject, es as useTourPlayer, ss as useTourPlayerContext, Bs as useTourRouteCatalog, Is as useTours, Ls as useToursContext, Jo as useUnsavedChanges, Vo as useUpgradePrompt, ba as useVoiceInput, sa as withQuotaDialogOwnership, Zo as withTourProgressStatus };
|
|
154
|
+
export { xa as ASSISTANT_WIDGET_TOGGLE_EVENT, pi as AccessDenied, Xr as ActorIdentity, Ua as AnalyticsConsentBanner, Qt as ApolloClient, $t as ApolloProvider, Ci as AppErrorBoundary, er as AppInitializer, Us as AppShellProvider, Sa as AssistantWidget, bt as BACKEND_ERROR_EVENT, ps as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, io as BREAKPOINTS, ms as BUILDMYIQ_TOUR_ROUTE_CATALOG, hs as BUILT_IN_TOUR_ROUTE_CATALOGS, Ba as BackendAuditSink, za as BroadcastChannelSink, Ge as CANONICAL_DOCS_HOSTS, m as CHART_SERIES_COUNT, gs as COLLABKIN_TOUR_ROUTE_CATALOG, et as COMMON_SHELL_LESS_ROUTES, xt as CONNECTION_STATUS_EVENT, Wa as CONSENT_BANNER_OFFSET_VAR, bi as ConditionalShell, sr as ConsoleTransport, Mi as ContextConversationWidget, h as DATA_TYPES, ot as DEFAULT_PAGE_SIZE, Qi as DEFAULT_QUOTA_UPGRADE_COPY, tt as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, Ia as DesktopUpdateToast, Ra as DevtoolsSink, ca as DocsLink, g as EDGE_KINDS, si as ErrorBoundary, hi as ErrorFallback, Za as EventBusProvider, ec as FE_SHARED_VERSION, La as FLUIDGRIDS_RYBBIT_EVENTS, _s as FLUIDGRIDS_TOUR_ROUTE_CATALOG, wi as FeatureFlagProvider, ji as FeatureGate, st as GATEWAYS, ko as GLOBAL_SHORTCUT_CATEGORIES, Wt as GatewayProvider, Sr as INLINE_ENCODE, vs as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, en as InMemoryCache, Ki as KeyboardHelpDialogWrapper, ga as LandingGateView, _a as LandingOrDashboardRedirect, gi as LoadingFallback, rr as LogLevel, ar as LogManager, ir as Logger, Fr as MAIN_CONTENT_ID, ys as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, wo as MODIFIER_KEYS, Ir as MainLandmark, Ca as Markdown, Zo as MicrofrontendContext, yi as MicrofrontendErrorBoundary, Gs as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, Xa as OtelBrowserSink, Vo as PLAN_USAGE_SNAPSHOT_EVENT, To as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, la as PUBLIC_PRODUCT_DOCS_URL_QUERY, Gr as PULL_TO_REFRESH_THRESHOLD, ri as PUSH_DEVICE_ID_STORAGE_KEY, Si as PWAInstallBanner, _i as PageLoadingFallback, ui as PermissionButton, mi as PermissionDenied, di as PermissionGate, fi as PermissionLink, Lr as PublicLayout, pr as QUOTA_EXHAUSTED_CODE, Ro as QUOTA_EXHAUSTED_EVENT, qi as QuotaMeter, $i as QuotaUpgradeBridge, mr as RESOURCE_CAP_EXCEEDED_CODE, ci as RequireAuth, li as RequireGuest, Ga as RybbitSink, Rt as SSELink, In as SSORedirectSpinner, Hn as SSO_DEPOSITED_PARAM, hr as STORAGE_QUOTA_EXCEEDED_CODE, Vr as SafeAreaView, vi as SectionLoadingFallback, Rr as SkipToContentLink, Bs as TourInitializer, us as TourPlayer, as as TourPlayerProvider, rs as TourSpotlight, is as TourTooltip, Ks as TourTrigger, ds as TourTriggerButton, Fs as ToursProvider, Ko as UNSAVED_CHANGE_LABEL_MAX, gr as UPGRADE_ERROR_CODES, Ji as UPGRADE_PROMPT_EVENT, Zi as UpgradeInlineBanner, Yi as UpgradePromptModal, bs as VIBECONTROLS_TOUR_ROUTE_CATALOG, pt as WORKSPACE_CONTEXT_CHANGED, mt as WORKSPACE_CONTEXT_MISMATCH_EVENT, ht as WORKSPACE_WRITE_REFUSED_EVENT, gt as WORKSPACE_WRITE_REFUSED_MESSAGE, _t as WorkspaceContextChangedError, Xt as WsLink, qs as acknowledgeNativePurchase, r as alertTokens, Wo as appendContextToPath, Mn as assignLocationWithAllowlist, cn as attemptTokenRefresh, Un as beginSsoNavigation, re as bootDesktopShell, Zr as buildActorFallback, Ke as buildProductDocsUrl, _r as buildQuotaExhaustedMessage, Wn as buildSsoDepositUrl, qe as canonicalizeDocsOrigin, j as capitalizeFirst, M as capitalizeWords, ea as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, Ln as checkRemoteSLO, Rn as checkSLO, ta as claimQuotaDialog, ln as clearAuthSessionStorage, kt as clearGraphqlFetchResponseCache, zn as clearLocalAuthState, mn as clearSSoCookie, hn as clearShellSsoCookies, Gn as clearSsoDepositState, Kn as clearSsoNavigation, cr as clearUserContext, Tr as cn, Va as compileRybbitRoutePattern, Kr as computePullOffset, qr as computePullProgress, qn as consumeSsoDepositMarker, n as createApolloClient, Qa as createEventBus, Ao as createGlobalShortcuts, zt as createGraphQLClient, dr as createProfileScopedStorage, Cs as createTourPageIdResolver, x as dataTypeColor, S as dataTypeTextClasses, ie as desktopCheckForUpdates, ae as desktopDeepLinkToPath, oe as desktopInstallUpdate, se as desktopNotify, ce as desktopOpenExternal, le as desktopSetBadgeCount, ue as desktopSetLocale, de as desktopSetTheme, fe as desktopSetTrayQuickActions, es as detectDeviceType, Ni as detectPlatform, St as dispatchBackendErrorEvent, na as dispatchProductQuotaExhausted, zo as dispatchQuotaExhausted, Xi as dispatchUpgradePrompt, Cr as downscaleImage, C as edgeColor, Fe as emitProductSlug, Ct as extractBackendError, vr as extractQuotaExhaustedExtensions, yr as extractUpgradeErrorExtensions, ua as fetchRegistryDocsUrl, He as findProductConfig, zr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, Pi as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, xs as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, Je as getCatalogDocsOrigin, o as getCategoryTokens, pe as getDesktopAuthBridgeConfig, me as getDesktopBridge, he as getDesktopGatewayBases, ge as getDesktopGatewayUrls, _e as getDesktopRuntimeConfig, ve as getDesktopUpdateState, ye as getDesktopWindowState, Fi as getDisplayKeysForPlatform, ct as getGatewayConfig, lt as getGatewayUrl, Bt as getGlobalClient, jo as getGlobalShortcutsByCategory, ut as getGraphQLEndpoint, be as getLegacyDesktopRuntime, Sn as getNativeBridge, ma as getNativeEntryRoutes, Js as getNativeProducts, Ys as getNativePurchases, ii as getOrCreatePushDeviceId, Cn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, fr as getProfileScopedKey, s as getProgressTokens, $r as getPushOptInController, ts as getResponsiveSelector, Bn as getSSORedirectUrl, gn as getSSoCookie, nt as getShellConfig, Ii as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, At as getStoredAuthToken, jt as getStoredLocale, Mt as getStoredOrganizationId, Nt as getStoredProjectId, Pt as getStoredWorkspaceId, Ft as getStoredWorkspaceToken, ws as getTourContextRank, Ts as getTourRouteCatalog, Es as getTourRouteCatalogVersion, Ds as getTourRouteModules, Os as getTourRoutePages, u as getTrendTokens, Vt as getWorkspaceClient, dt as getWorkspaceTokenPayload, tn as gql, It as graphqlFetch, un as hasAuthGraphQLErrors, ks as hasRegisteredTourRouteCatalog, va as hasStoredValidSession, Ht as initializeAppClients, lr as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, Xs as installNativeIAP, wt as isAbortError, Nn as isAllowedRedirectUrl, wn as isAndroid, dn as isAuthGraphQLError, fn as isAuthNetworkError, Tt as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, Tn as isElectron, En as isIOS, Dn as isInstalledApp, Li as isMac, Ri as isMobileDevice, On as isNative, Zs as isNativeIAPAvailable, br as isQuotaExhaustedError, Ha as isRybbitSkippedRoute, Ie as isSameProductSlug, _n as isSharedSsoCookieDomain, rt as isShellLessRoute, Jn as isSsoNavigationPending, kn as isStandalonePWA, zi as isTabletDevice, As as isTourVisibleForContext, Et as isTransportError, vn as isTrustedSsoOrigin, xr as isUpgradeError, An as isWeb, jn as isWebBrowser, vt as isWorkspaceContextChangedError, ft as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, Ss as listBuiltInTourRouteCatalogProductIds, qo as listUnsavedChanges, or as logManager, Dt as markConnectionHealthy, Yn as markSsoDepositDone, Xn as markSsoDepositPending, Bi as matchesKeyCombo, Mo as mergeShortcuts, Zn as mintSsoSessionTokens, Er as nativeActionSheet, Dr as nativeConfirm, Or as nativeCopyText, kr as nativeImpact, Ar as nativeNotify, jr as nativeOpenUrl, Mr as nativeSelection, Nr as nativeShare, Pr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, Ye as normalizeDocsPath, Vi as normalizeKey, Hi as normalizePlatformCombo, Re as normalizeProductSlug, js as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, Pn as openUrlInNewTabWithAllowlist, Ui as parseKeyCombo, K as pluralize, Zt as prepareWorkspaceRequest, d as progressTokens, Ka as publishConsentBannerOffset, Ho as publishPlanUsageSnapshot, Qs as purchaseNativeProduct, ra as quotaEventKind, qa as readAnalyticsConsent, Ja as readAnalyticsConsentChoice, yt as readContextInputWorkspaceId, Hr as readInitialNetworkStatus, da as readRegistryDocsUrl, yn as readShellSsoCookie, Qn as readSsoDepositState, ei as recordPushPermissionPromptDismissed, pn as redirectToLogin, Vn as redirectToSSO, Ur as reduceNetworkStatus, Ee as registerDesktopNavigator, ai as registerPushDevice, ti as registerPushOptInController, Ms as registerTourRouteCatalog, Jo as registerUnsavedChange, Fn as replaceLocationWithAllowlist, Ut as resetAppClients, ja as resolveActionSheetOutcome, Ws as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, Xe as resolveDocsEnvironment, ke as resolveGatewayBases, Lt as resolveGatewayUrl, De as resolveGatewayUrls, ya as resolveLandingGate, Ze as resolveProductDocsOrigin, ia as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, Ns as resolveTourTargetPath, $s as restoreNativePurchases, wr as selectInlineBase64, Ya as setAnalyticsConsent, bn as setSSoCookie, xn as setShellSsoCookies, ur as setUserContext, $n as shouldAttemptSsoDeposit, Wi as shouldEnableKeyboardShortcuts, Gi as shouldIgnoreShortcut, ni as shouldPromptForPushPermission, it as shouldShowBreadcrumb, ha as shouldShowNativeWelcome, at as shouldShowSidebar, Ot as shouldToastBackendError, q as slugify, f as statusTokens, Ps as subscribeTourRouteCatalogs, Ae as suppressConsole, J as toCamelCase, k as toDataType, Qe as toEnvironmentDocsOrigin, A as toNodeCategory, Y as toPascalCase, $e as toTrustedDocsOrigin, p as trendTokens, X as truncateText, oi as unregisterPushDevice, Yo as unsavedChangesBlocking, Ma as useActionSheet, Qr as useActorProfiles, nn as useApolloClient, Da as useAppState, So as useAsync, Co as useAsyncImmediate, Is as useAutoStartTour, ao as useBreakpoint, vo as useConditionalToggle, e as useCopyToClipboard, Go as useCurrentContextSearchParams, no as useDebounce, Na as useDesktop, Pa as useDesktopUpdateState, Fa as useDesktopWindowState, Oa as useDeviceInfo, $a as useEvent, eo as useEventBus, to as useEventEmitter, fo as useExclusiveMenu, Di as useFeatureFlag, Oi as useFeatureFlagDetails, ki as useFeatureFlagValue, Ti as useFeatureFlags, Gt as useGateway, Kt as useGatewayClient, ka as useHaptics, Po as useHasAnimated, Yt as useHasAuthToken, Do as useHotkeys, Br as useInsideMainLandmark, os as useIsTourPlaying, lo as useKeyPress, uo as useKeyboardShortcut, Eo as useKeyboardShortcuts, rn as useLazyQuery, po as useLocalStorage, No as useLogger, t as useMediaQuery, Qo as useMicrofrontendContext, oo as useMobileBreakpoint, an as useMutation, Ea as useNativeKeyboard, wa as useNativePlatform, Wr as useNetworkStatus, so as useOnClickOutside, co as useOnClickOutsideWithRef, Ai as useOptionalFeatureFlag, Ei as useOptionalFeatureFlags, xi as usePWA, xo as usePagination, fs as usePlayTour, ho as usePrevious, go as usePreviousDistinct, _o as usePreviousHistory, fa as useProductDocsOrigin, pa as useProductDocsUrl, Jr as usePullToRefresh, Lo as usePushDeviceRegistration, on as useQuery, aa as useQuotaDialogOwnership, Bo as useQuotaErrorToast, oa as useQuotaUpgradeBridge, Io as useRecordProductVisit, Fo as useReferralAttribution, Vs as useRegisterTourRouteCatalog, tr as useRegistryHelpers, Yr as useReturnFocus, Ta as useSafeArea, qt as useSafeGateway, Jt as useSafeGatewayClient, Ls as useSafeToursContext, mo as useSessionStorage, nr as useShellNavigate, Oo as useShortcutHelp, ss as useStartTour, Aa as useStatusBar, cs as useStopTour, sn as useSubscription, ro as useThrottle, yo as useToggle, bo as useToggleObject, ns as useTourPlayer, ls as useTourPlayerContext, Hs as useTourRouteCatalog, Rs as useTours, zs as useToursContext, Xo as useUnsavedChanges, Uo as useUpgradePrompt, ba as useVoiceInput, sa as withQuotaDialogOwnership, $o as withTourProgressStatus };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/fe-libs",
|
|
3
|
-
"version": "2026.1023.
|
|
3
|
+
"version": "2026.1023.10",
|
|
4
4
|
"description": "Burdenoff frontend primitives and domain libraries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
"test:package-livekit-optional": "node scripts/validate-livekit-optional.mjs",
|
|
331
331
|
"verify:package": "node scripts/verify-package-contents.mjs",
|
|
332
332
|
"test:handsfree-browser": "node scripts/handsfree-browser-run.mjs",
|
|
333
|
-
"test": "bun test scripts/graphql-schema-drift/__tests__ scripts/a11y-audit/__tests__ scripts/i18n/__tests__ src/credentials src/connections src/storage src/shared/assistant src/shared/feature-flags src/platform-pages src/admin-overview src/shared/components src/shared/graphql/links/sse-link.test.ts src/shared/graphql/fetch.test.ts src/shared/graphql/prepareWorkspaceRequest.test.ts src/shared/graphql/client.test.ts src/shared/utils/apollo.test.ts src/shared/utils/canvasTokens.test.ts src/shared/utils/brandContrast.test.ts src/shared/graphql/tourWorkspaceAuth.test.ts src/shared/config/gatewayUrls.test.ts src/shared/config/authBridgeUrls.test.ts src/shared/config/shellRoutes.test.ts src/shared/config/gatewayFallback.test.ts scripts/__tests__ src/shared/config/products.test.ts src/shared/config/docsUrls.test.ts src/shared/config/productSlug.test.ts src/shared/hooks/shell/useProducts.test.ts src/shared/hooks/shell/useGlobalSearch.test.ts src/shared/providers/shell/brandAttribute.test.ts src/chrome/ProductSwitcher.test.ts src/shared/utils/backendErrors.test.ts src/shared/utils/gatewayFetchRewrite.test.ts src/shared/utils/authCookie.test.ts src/shared/utils/redirectAllowlist.test.ts src/shared/providers/shell/ProfileStorageManager.test.ts src/shared/providers/AppShellProvider.test.ts src/shared/providers/shell/interpolate.test.ts src/shared/providers/shell/resolveTranslation.test.ts src/shared/providers/shell/I18nProvider.render.test.tsx src/shared/providers/shell/I18nProvider.client.test.tsx src/shared/providers/shell/translationStore.test.ts src/shared/providers/shell/translationLayers.test.ts src/shared/providers/shell/directionMode.test.ts src/shared/providers/shell/authProvider/ssoRelay.test.ts src/shared/providers/shell/authProvider/useAuthActions.signOut.test.tsx src/shared/providers/shell/personaSurfaceRemote.test.ts src/shared/providers/shell/workspaceSwitch.client.test.tsx src/shared/events/sinks/RybbitSink.test.ts src/shared/events/sinks/RybbitSink.client.test.tsx src/shell-native src/shared/native src/shared/navigation src/shared/tours src/chrome/__tests__ src/ui/__tests__ src/shared/graphql/workspaceSwitchGuard.test.ts",
|
|
333
|
+
"test": "bun test scripts/graphql-schema-drift/__tests__ scripts/a11y-audit/__tests__ scripts/i18n/__tests__ src/credentials src/connections src/storage src/shared/assistant src/shared/feature-flags src/platform-pages src/admin-overview src/shared/components src/shared/graphql/links/sse-link.test.ts src/shared/graphql/fetch.test.ts src/shared/graphql/prepareWorkspaceRequest.test.ts src/shared/graphql/client.test.ts src/shared/utils/apollo.test.ts src/shared/utils/canvasTokens.test.ts src/shared/utils/brandContrast.test.ts src/shared/graphql/tourWorkspaceAuth.test.ts src/shared/config/gatewayUrls.test.ts src/shared/config/authBridgeUrls.test.ts src/shared/config/shellRoutes.test.ts src/shared/config/gatewayFallback.test.ts scripts/__tests__ src/shared/config/products.test.ts src/shared/config/docsUrls.test.ts src/shared/config/productSlug.test.ts src/shared/hooks/shell/useProducts.test.ts src/shared/hooks/shell/useGlobalSearch.test.ts src/shared/providers/shell/brandAttribute.test.ts src/chrome/ProductSwitcher.test.ts src/shared/utils/backendErrors.test.ts src/shared/utils/gatewayFetchRewrite.test.ts src/shared/utils/authCookie.test.ts src/shared/utils/redirectAllowlist.test.ts src/shared/providers/shell/ProfileStorageManager.test.ts src/shared/providers/shell/ActiveContextProvider.test.ts src/shared/providers/AppShellProvider.test.ts src/shared/providers/shell/interpolate.test.ts src/shared/providers/shell/resolveTranslation.test.ts src/shared/providers/shell/I18nProvider.render.test.tsx src/shared/providers/shell/I18nProvider.client.test.tsx src/shared/providers/shell/translationStore.test.ts src/shared/providers/shell/translationLayers.test.ts src/shared/providers/shell/directionMode.test.ts src/shared/providers/shell/authProvider/ssoRelay.test.ts src/shared/providers/shell/authProvider/useAuthActions.signOut.test.tsx src/shared/providers/shell/personaSurfaceRemote.test.ts src/shared/providers/shell/workspaceSwitch.client.test.tsx src/shared/events/sinks/RybbitSink.test.ts src/shared/events/sinks/RybbitSink.client.test.tsx src/shell-native src/shared/native src/shared/navigation src/shared/tours src/chrome/__tests__ src/ui/__tests__ src/shared/graphql/workspaceSwitchGuard.test.ts",
|
|
334
334
|
"sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run lint:sanity && bun run format && bun run type:check && bun run test && bun run build && bun run verify:package'",
|
|
335
335
|
"switch:status": "bun scripts/deps-mode.ts status",
|
|
336
336
|
"switch:remote": "bun scripts/deps-mode.ts remote",
|