@burdenoff/fe-libs 2026.815.1 → 2026.815.2
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 +20 -0
- package/dist/shared/events/sinks/RybbitSink.d.ts.map +1 -1
- package/dist/shared/events/sinks/RybbitSink.js +30 -24
- package/dist/shared/events/sinks/index.d.ts +2 -1
- package/dist/shared/events/sinks/index.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.d.ts +11 -0
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +54 -52
- package/dist/shared-events.js +29 -29
- package/dist/shared.js +55 -55
- package/package.json +1 -1
|
@@ -15,6 +15,19 @@ interface RybbitSinkProps {
|
|
|
15
15
|
/** Which event triggers `rybbit.identify`. */
|
|
16
16
|
identifyOn?: BurdenoffEventName;
|
|
17
17
|
}
|
|
18
|
+
/** What the user actually chose. `null` means they have never been asked. */
|
|
19
|
+
export type AnalyticsConsentChoice = 'granted' | 'denied';
|
|
20
|
+
/**
|
|
21
|
+
* The recorded choice, or `null` when the user has never answered (BOFF-6373).
|
|
22
|
+
*
|
|
23
|
+
* The store used to be BOOLEAN: granting wrote `'granted'`, refusing called `removeItem`. So
|
|
24
|
+
* "I said no" and "I have not been asked" were the same absent key, and a refusal was
|
|
25
|
+
* unrepresentable. The banner keys its visibility off this, so refusing dismissed it only for
|
|
26
|
+
* the life of that page and it returned on the next full load, every time.
|
|
27
|
+
*
|
|
28
|
+
* A consent choice that is not recorded is not consent — a compliance defect, not an annoyance.
|
|
29
|
+
*/
|
|
30
|
+
export declare function readAnalyticsConsentChoice(): AnalyticsConsentChoice | null;
|
|
18
31
|
export declare function readAnalyticsConsent(): boolean;
|
|
19
32
|
export declare function setAnalyticsConsent(granted: boolean): void;
|
|
20
33
|
export declare function shouldDropAnalyticsKey(key: string, eventName: BurdenoffEventName): boolean;
|
|
@@ -23,6 +36,13 @@ export declare function shouldDropAnalyticsKey(key: string, eventName: Burdenoff
|
|
|
23
36
|
* event bus emissions as Rybbit custom events.
|
|
24
37
|
*/
|
|
25
38
|
export declare function RybbitSink({ siteId, scriptUrl, rename, allowlist, identifyOn, }: RybbitSinkProps): null;
|
|
39
|
+
/**
|
|
40
|
+
* The optional-analytics prompt.
|
|
41
|
+
*
|
|
42
|
+
* Deliberately router-agnostic: it is exported publicly, so a consumer may render it anywhere and
|
|
43
|
+
* calling `useLocation()` here would crash outside a Router. Route suppression is the MOUNT
|
|
44
|
+
* SITE's job — see `ShellTelemetrySinks` in AppShellProvider, a direct child of `<BrowserRouter>`.
|
|
45
|
+
*/
|
|
26
46
|
export declare function AnalyticsConsentBanner({ productName }: {
|
|
27
47
|
productName?: string;
|
|
28
48
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RybbitSink.d.ts","sourceRoot":"","sources":["../../../../src/shared/events/sinks/RybbitSink.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,EAiCxD,CAAC;AAqDF,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,yFAAyF;IACzF,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAWD,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"RybbitSink.d.ts","sourceRoot":"","sources":["../../../../src/shared/events/sinks/RybbitSink.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,EAiCxD,CAAC;AAqDF,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,yFAAyF;IACzF,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAWD,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,IAAI,sBAAsB,GAAG,IAAI,CAI1E;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ1D;AA2BD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAM1F;AA6BD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAiD,EACjD,MAAqB,EACrB,SAAoC,EACpC,UAA6B,GAC9B,EAAE,eAAe,QAqEjB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,WAA4B,EAAE,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,kDA6ChG"}
|
|
@@ -48,37 +48,42 @@ function g() {
|
|
|
48
48
|
return navigator.globalPrivacyControl === !0;
|
|
49
49
|
}
|
|
50
50
|
function _() {
|
|
51
|
-
|
|
51
|
+
if (typeof window > "u") return null;
|
|
52
|
+
let e = window.localStorage.getItem(m);
|
|
53
|
+
return e === "granted" || e === "denied" ? e : null;
|
|
52
54
|
}
|
|
53
|
-
function v(
|
|
54
|
-
typeof window > "u" ||
|
|
55
|
+
function v() {
|
|
56
|
+
return typeof window > "u" || g() ? !1 : _() === "granted";
|
|
55
57
|
}
|
|
56
|
-
function y() {
|
|
58
|
+
function y(e) {
|
|
59
|
+
typeof window > "u" || (window.localStorage.setItem(m, e ? "granted" : "denied"), window.dispatchEvent(new CustomEvent(h, { detail: { granted: e } })));
|
|
60
|
+
}
|
|
61
|
+
function b() {
|
|
57
62
|
let e = window;
|
|
58
63
|
return navigator.doNotTrack === "1" || e.doNotTrack === "1";
|
|
59
64
|
}
|
|
60
|
-
function
|
|
65
|
+
function x(e) {
|
|
61
66
|
let t = 2166136261;
|
|
62
67
|
for (let n = 0; n < e.length; n += 1) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
|
|
63
68
|
return `u_${(t >>> 0).toString(16).padStart(8, "0")}`;
|
|
64
69
|
}
|
|
65
|
-
async function
|
|
70
|
+
async function S(e) {
|
|
66
71
|
if (crypto.subtle) {
|
|
67
72
|
let t = new TextEncoder().encode(e), n = await crypto.subtle.digest("SHA-256", t);
|
|
68
73
|
return Array.from(new Uint8Array(n), (e) => e.toString(16).padStart(2, "0")).join("");
|
|
69
74
|
}
|
|
70
|
-
return
|
|
75
|
+
return x(e);
|
|
71
76
|
}
|
|
72
|
-
function
|
|
77
|
+
function C(e, t) {
|
|
73
78
|
return s.test(e) ? !(f[t] ?? []).includes(e) : c.test(e) ? !(d[t] ?? []).includes(e) : !1;
|
|
74
79
|
}
|
|
75
|
-
function
|
|
80
|
+
function w(e, t) {
|
|
76
81
|
if (!e || typeof e != "object" || Array.isArray(e)) return {};
|
|
77
82
|
let n = {};
|
|
78
|
-
for (let [r, i] of Object.entries(e))
|
|
83
|
+
for (let [r, i] of Object.entries(e)) C(r, t) || (typeof i == "string" || typeof i == "number" || typeof i == "boolean") && (n[r] = i);
|
|
79
84
|
return n;
|
|
80
85
|
}
|
|
81
|
-
function
|
|
86
|
+
function T(e) {
|
|
82
87
|
let t = {};
|
|
83
88
|
for (let [n, r] of Object.entries(e)) {
|
|
84
89
|
let e = {
|
|
@@ -90,10 +95,10 @@ function w(e) {
|
|
|
90
95
|
}
|
|
91
96
|
return t;
|
|
92
97
|
}
|
|
93
|
-
function
|
|
94
|
-
let u = e(), d = n(!1), [f,
|
|
98
|
+
function E({ siteId: i, scriptUrl: a = "https://app.rybbit.io/api/script.js", rename: s = p, allowlist: c = o, identifyOn: l = "auth.signed_in" }) {
|
|
99
|
+
let u = e(), d = n(!1), [f, _] = r(v);
|
|
95
100
|
return t(() => {
|
|
96
|
-
let e = () => v(
|
|
101
|
+
let e = () => _(v()), t = (t) => {
|
|
97
102
|
t.key === m && e();
|
|
98
103
|
};
|
|
99
104
|
return window.addEventListener(h, e), window.addEventListener("storage", t), () => {
|
|
@@ -112,17 +117,17 @@ function T({ siteId: i, scriptUrl: a = "https://app.rybbit.io/api/script.js", re
|
|
|
112
117
|
f
|
|
113
118
|
]), t(() => {
|
|
114
119
|
if (!(!i || !f || g())) return u.onAny((e) => {
|
|
115
|
-
if (
|
|
120
|
+
if (b()) return;
|
|
116
121
|
let t = window;
|
|
117
122
|
if (!t.rybbit || !c.includes(e.name)) return;
|
|
118
|
-
let n =
|
|
123
|
+
let n = T({
|
|
119
124
|
route: e.metadata.route.pathname,
|
|
120
125
|
env: e.metadata.app.env,
|
|
121
|
-
...
|
|
126
|
+
...w(e.payload, e.name)
|
|
122
127
|
});
|
|
123
128
|
if (e.name === l) {
|
|
124
129
|
let r = e.payload, i = r?.userId ?? r?.actorId ?? r?.id;
|
|
125
|
-
i &&
|
|
130
|
+
i && S(i).then((e) => {
|
|
126
131
|
t.rybbit?.identify(e, n);
|
|
127
132
|
});
|
|
128
133
|
}
|
|
@@ -142,12 +147,13 @@ function T({ siteId: i, scriptUrl: a = "https://app.rybbit.io/api/script.js", re
|
|
|
142
147
|
f
|
|
143
148
|
]), null;
|
|
144
149
|
}
|
|
145
|
-
function
|
|
146
|
-
let [t, n] = r(() =>
|
|
150
|
+
function D({ productName: e = "this product" }) {
|
|
151
|
+
let [t, n] = r(() => _() === null);
|
|
147
152
|
return !t || g() ? null : /* @__PURE__ */ a("aside", {
|
|
148
|
-
className: "fixed
|
|
153
|
+
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",
|
|
149
154
|
role: "dialog",
|
|
150
155
|
"aria-label": "Privacy choices",
|
|
156
|
+
"data-testid": "analytics-consent-banner",
|
|
151
157
|
children: [/* @__PURE__ */ a("p", {
|
|
152
158
|
className: "text-sm",
|
|
153
159
|
children: [
|
|
@@ -161,14 +167,14 @@ function E({ productName: e = "this product" }) {
|
|
|
161
167
|
type: "button",
|
|
162
168
|
className: "rounded-md border border-border-seam px-3 py-2 text-sm",
|
|
163
169
|
onClick: () => {
|
|
164
|
-
|
|
170
|
+
y(!1), n(!1);
|
|
165
171
|
},
|
|
166
172
|
children: "Reject optional"
|
|
167
173
|
}), /* @__PURE__ */ i("button", {
|
|
168
174
|
type: "button",
|
|
169
175
|
className: "rounded-md bg-action-primary-bg px-3 py-2 text-sm text-action-primary-text",
|
|
170
176
|
onClick: () => {
|
|
171
|
-
|
|
177
|
+
y(!0), n(!1);
|
|
172
178
|
},
|
|
173
179
|
children: "Allow analytics"
|
|
174
180
|
})]
|
|
@@ -176,4 +182,4 @@ function E({ productName: e = "this product" }) {
|
|
|
176
182
|
});
|
|
177
183
|
}
|
|
178
184
|
//#endregion
|
|
179
|
-
export {
|
|
185
|
+
export { D as AnalyticsConsentBanner, E as RybbitSink, v as readAnalyticsConsent, _ as readAnalyticsConsentChoice, y as setAnalyticsConsent };
|
|
@@ -1,6 +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, setAnalyticsConsent, } from './RybbitSink';
|
|
4
|
+
export { RybbitSink, AnalyticsConsentBanner, readAnalyticsConsent, readAnalyticsConsentChoice, setAnalyticsConsent, } from './RybbitSink';
|
|
5
|
+
export type { AnalyticsConsentChoice } from './RybbitSink';
|
|
5
6
|
export { OtelBrowserSink } from './OtelBrowserSink';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/events/sinks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/events/sinks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EAGpB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -56,6 +56,17 @@ export interface AppShellConfig {
|
|
|
56
56
|
observability?: AppShellObservabilityConfig;
|
|
57
57
|
/** Require explicit opt-in before loading optional analytics in this shell. */
|
|
58
58
|
privacyConsent?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Extra routes on which the analytics-consent prompt must NOT render (BOFF-6373).
|
|
61
|
+
*
|
|
62
|
+
* Already suppressed on every COMMON_SHELL_LESS_ROUTES path (auth, OAuth callbacks,
|
|
63
|
+
* embed/print). This is the escape hatch for a shell's OWN public routes, which fe-libs cannot
|
|
64
|
+
* know about: HealthyBowl serves anonymous portals at `/b/:slug` and `/s/:slug`.
|
|
65
|
+
*
|
|
66
|
+
* Return true to suppress. A consent card is a login-form-sized obstacle on a page whose whole
|
|
67
|
+
* purpose is that a stranger can read it.
|
|
68
|
+
*/
|
|
69
|
+
consentRouteDenylist?: (pathname: string) => boolean;
|
|
59
70
|
/**
|
|
60
71
|
* Maps a pathname to the tour `pageId` used when looking up tours.
|
|
61
72
|
*
|
|
@@ -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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"}
|
|
@@ -19,8 +19,8 @@ import { ShellUiProvider as x } from "./shell/ShellUiProvider.js";
|
|
|
19
19
|
import { ContextManagerProvider as ie } from "./shell/ContextManagerProvider.js";
|
|
20
20
|
import { AuthTokenProvider as ae } from "./shell/AuthTokenProvider.js";
|
|
21
21
|
import { MultiGatewayProvider as oe } from "./shell/MultiGatewayProvider.js";
|
|
22
|
-
import { G as S, Q as C, j as
|
|
23
|
-
import { ProfileI18nBridge as
|
|
22
|
+
import { G as S, Q as C, j as se, w as ce } from "../../node_modules/web-vitals/dist/web-vitals.js";
|
|
23
|
+
import { ProfileI18nBridge as w } from "./shell/ProfileI18nBridge.js";
|
|
24
24
|
import { ProfileGeographyBridge as T } from "./shell/ProfileGeographyBridge.js";
|
|
25
25
|
import { DevtoolsSink as E } from "../events/sinks/DevtoolsSink.js";
|
|
26
26
|
import { BroadcastChannelSink as D } from "../events/sinks/BroadcastChannelSink.js";
|
|
@@ -255,7 +255,7 @@ function Ce({ children: e, i18nProductId: t, fallbackTranslations: n, defaultBra
|
|
|
255
255
|
defaultDensity: a,
|
|
256
256
|
defaultTypography: o,
|
|
257
257
|
defaultGlass: s,
|
|
258
|
-
children: [/* @__PURE__ */ W(we, {}), /* @__PURE__ */ W(
|
|
258
|
+
children: [/* @__PURE__ */ W(we, {}), /* @__PURE__ */ W(w, {
|
|
259
259
|
i18nProductId: t,
|
|
260
260
|
fallbackTranslations: n,
|
|
261
261
|
children: m
|
|
@@ -336,14 +336,14 @@ function Ee() {
|
|
|
336
336
|
id: t.id,
|
|
337
337
|
rating: t.rating
|
|
338
338
|
});
|
|
339
|
-
}),
|
|
339
|
+
}), ce((t) => {
|
|
340
340
|
e.emit("perf.cls.measured", {
|
|
341
341
|
metric: "CLS",
|
|
342
342
|
value: t.value,
|
|
343
343
|
id: t.id,
|
|
344
344
|
rating: t.rating
|
|
345
345
|
});
|
|
346
|
-
}),
|
|
346
|
+
}), se((t) => {
|
|
347
347
|
e.emit("perf.inp.measured", {
|
|
348
348
|
metric: "INP",
|
|
349
349
|
value: t.value,
|
|
@@ -360,31 +360,32 @@ function Ee() {
|
|
|
360
360
|
});
|
|
361
361
|
}, [e]), null;
|
|
362
362
|
}
|
|
363
|
-
function De({ config:
|
|
363
|
+
function De({ config: t, productSlug: n, privacyConsent: r, consentRouteDenylist: i }) {
|
|
364
|
+
let { pathname: a } = K(), o = e(a) || i?.(a) === !0;
|
|
364
365
|
return /* @__PURE__ */ G(U, { children: [
|
|
365
366
|
/* @__PURE__ */ W(Ee, {}),
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
siteId:
|
|
373
|
-
scriptUrl:
|
|
374
|
-
allowlist:
|
|
375
|
-
identifyOn:
|
|
376
|
-
rename:
|
|
367
|
+
r && !o ? /* @__PURE__ */ W(k, { productName: n }) : null,
|
|
368
|
+
t.enabled === !1 ? null : /* @__PURE__ */ G(U, { children: [
|
|
369
|
+
t.devtools ? /* @__PURE__ */ W(E, { enabled: !0 }) : null,
|
|
370
|
+
t.broadcast === !1 ? null : /* @__PURE__ */ W(D, {}),
|
|
371
|
+
t.backendAudit?.enabled && t.backendAudit.endpoint ? /* @__PURE__ */ W(O, { endpoint: t.backendAudit.endpoint }) : null,
|
|
372
|
+
t.rybbit?.enabled && t.rybbit.siteId ? /* @__PURE__ */ W(A, {
|
|
373
|
+
siteId: t.rybbit.siteId,
|
|
374
|
+
scriptUrl: t.rybbit.scriptUrl,
|
|
375
|
+
allowlist: t.rybbit.allowlist,
|
|
376
|
+
identifyOn: t.rybbit.identifyOn,
|
|
377
|
+
rename: t.rybbit.rename
|
|
377
378
|
}) : null,
|
|
378
|
-
|
|
379
|
-
endpoint:
|
|
380
|
-
serviceName:
|
|
381
|
-
flushInterval:
|
|
379
|
+
t.otel?.enabled && t.otel.endpoint ? /* @__PURE__ */ W(j, {
|
|
380
|
+
endpoint: t.otel.endpoint,
|
|
381
|
+
serviceName: t.otel.serviceName ?? `${n}-app`,
|
|
382
|
+
flushInterval: t.otel.flushInterval
|
|
382
383
|
}) : null
|
|
383
384
|
] })
|
|
384
385
|
] });
|
|
385
386
|
}
|
|
386
387
|
function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
387
|
-
let { productName: o, productSlug: h = o.toLowerCase().replace(/\s+/g, ""), tagline: _ = "", domain: v, i18nProductId: y, gatewayUrls: b, authBridge: x, defaultBrand: S = "default", defaultMode: C, defaultDensity:
|
|
388
|
+
let { productName: o, productSlug: h = o.toLowerCase().replace(/\s+/g, ""), tagline: _ = "", domain: v, i18nProductId: y, gatewayUrls: b, authBridge: x, defaultBrand: S = "default", defaultMode: C, defaultDensity: se, defaultTypography: ce, defaultGlass: w, enablePWA: T = !0, brandInitial: E = o.charAt(0), defaultGateway: D = "workspace", enableSubscriptions: O = !0, fallbackTranslations: k, queryClientOptions: A, toasterPosition: j = "bottom-right", observability: M, privacyConsent: N = !1, consentRouteDenylist: P, tourPageIdFromPath: F } = n, I = V(() => M ?? ve(h, _e()), [M, h]), L = V(() => ({
|
|
388
389
|
productName: o,
|
|
389
390
|
productSlug: h,
|
|
390
391
|
brandInitial: E,
|
|
@@ -396,7 +397,7 @@ function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
|
396
397
|
E,
|
|
397
398
|
_,
|
|
398
399
|
v
|
|
399
|
-
]),
|
|
400
|
+
]), R = H(!1), U = H(!!x?.url), K = z((t) => {
|
|
400
401
|
if (!t?.force && (() => {
|
|
401
402
|
try {
|
|
402
403
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
@@ -406,22 +407,22 @@ function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
|
406
407
|
} catch {
|
|
407
408
|
return !1;
|
|
408
409
|
}
|
|
409
|
-
})() ||
|
|
410
|
-
|
|
410
|
+
})() || U.current || R.current) return;
|
|
411
|
+
R.current = !0, u(a);
|
|
411
412
|
let n = `${window.location.pathname}${window.location.search}`, r = `/auth/login?reason=session-expired&returnTo=${encodeURIComponent(n)}`, i = /^\/vibecontrols\/(share|deck)\//.test(window.location.pathname);
|
|
412
413
|
if (window.location.pathname.startsWith("/auth/") || e(window.location.pathname) || i) {
|
|
413
|
-
|
|
414
|
+
R.current = !1;
|
|
414
415
|
return;
|
|
415
416
|
}
|
|
416
417
|
window.location.replace(r);
|
|
417
|
-
}, [a]),
|
|
418
|
+
}, [a]), q = V(() => ({
|
|
418
419
|
globalBaseUrl: b.globalBaseUrl,
|
|
419
420
|
...d()
|
|
420
|
-
}), [b.globalBaseUrl]),
|
|
421
|
-
window.location.pathname.startsWith("/auth/") || await
|
|
422
|
-
}, [
|
|
423
|
-
f(e) ? await
|
|
424
|
-
}, [
|
|
421
|
+
}), [b.globalBaseUrl]), J = z(async () => l(q), [q]), Y = z(async () => {
|
|
422
|
+
window.location.pathname.startsWith("/auth/") || await J() || K({ force: !0 });
|
|
423
|
+
}, [J, K]), X = z(async (e) => {
|
|
424
|
+
f(e) ? await J() || K({ force: !0 }) : console.error("[Network] Backend unreachable:", e.message);
|
|
425
|
+
}, [J, K]), Z = z(async (e) => {
|
|
425
426
|
let t = await c({
|
|
426
427
|
gateway: "global",
|
|
427
428
|
baseUrl: b.globalBaseUrl,
|
|
@@ -436,7 +437,7 @@ function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
|
436
437
|
refreshToken: n.refreshToken,
|
|
437
438
|
expiresAt: n.expiresIn ? Date.now() + n.expiresIn * 1e3 : void 0
|
|
438
439
|
};
|
|
439
|
-
}, [b.globalBaseUrl]),
|
|
440
|
+
}, [b.globalBaseUrl]), Q = z(() => t("organization"), []), he = V(() => {
|
|
440
441
|
let e = new pe({
|
|
441
442
|
queryCache: new fe({ onError: (e) => {
|
|
442
443
|
i(e);
|
|
@@ -459,52 +460,53 @@ function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
|
459
460
|
}, [A]);
|
|
460
461
|
return B(() => {
|
|
461
462
|
let e = () => {
|
|
462
|
-
|
|
463
|
+
K({ force: !0 });
|
|
463
464
|
};
|
|
464
465
|
return window.addEventListener(s, e), () => {
|
|
465
466
|
window.removeEventListener(s, e);
|
|
466
467
|
};
|
|
467
|
-
}, [
|
|
468
|
+
}, [K]), B(() => {
|
|
468
469
|
let e = te.getInstance();
|
|
469
470
|
e.getLogger("shell") || e.getLogger("shell").addTransport(new ne());
|
|
470
471
|
}, []), /* @__PURE__ */ W(p, {
|
|
471
|
-
value:
|
|
472
|
+
value: L,
|
|
472
473
|
children: /* @__PURE__ */ W(le, {
|
|
473
474
|
appName: h,
|
|
474
|
-
appVersion:
|
|
475
|
-
appEnv:
|
|
475
|
+
appVersion: I.appVersion,
|
|
476
|
+
appEnv: I.appEnv,
|
|
476
477
|
sourceMfe: h,
|
|
477
478
|
children: /* @__PURE__ */ W(g, {
|
|
478
479
|
FallbackComponent: re,
|
|
479
480
|
children: /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ W(De, {
|
|
480
|
-
config:
|
|
481
|
+
config: I,
|
|
481
482
|
productSlug: h,
|
|
482
|
-
privacyConsent: N
|
|
483
|
+
privacyConsent: N,
|
|
484
|
+
consentRouteDenylist: P
|
|
483
485
|
}), /* @__PURE__ */ W(me, {
|
|
484
|
-
client:
|
|
486
|
+
client: he,
|
|
485
487
|
children: /* @__PURE__ */ W(ae, { children: /* @__PURE__ */ W(oe, {
|
|
486
488
|
workspaceBaseUrl: b.workspaceBaseUrl,
|
|
487
489
|
globalBaseUrl: b.globalBaseUrl,
|
|
488
|
-
organizationId:
|
|
490
|
+
organizationId: Q,
|
|
489
491
|
productSlug: h,
|
|
490
492
|
defaultGateway: D,
|
|
491
493
|
enableSubscriptions: O,
|
|
492
|
-
onAuthError:
|
|
493
|
-
onNetworkError:
|
|
494
|
-
onRefreshToken:
|
|
494
|
+
onAuthError: Y,
|
|
495
|
+
onNetworkError: X,
|
|
496
|
+
onRefreshToken: J,
|
|
495
497
|
children: /* @__PURE__ */ W(m, {
|
|
496
498
|
bridgeUrl: x?.url,
|
|
497
499
|
bridgeAllowedOrigins: x?.allowedOrigins,
|
|
498
500
|
bridgeDebug: x?.debug,
|
|
499
|
-
onRefreshToken:
|
|
501
|
+
onRefreshToken: Z,
|
|
500
502
|
onBridgeReady: () => {
|
|
501
|
-
|
|
503
|
+
U.current = !1;
|
|
502
504
|
},
|
|
503
505
|
onSessionExpiringSoon: () => {
|
|
504
506
|
console.warn("[Auth] Session will expire in 5 minutes");
|
|
505
507
|
},
|
|
506
508
|
onTokenExpired: () => {
|
|
507
|
-
|
|
509
|
+
K();
|
|
508
510
|
},
|
|
509
511
|
children: /* @__PURE__ */ W(ee, {
|
|
510
512
|
syncToUrl: !0,
|
|
@@ -513,14 +515,14 @@ function Oe({ config: n, children: r, clearAuthStore: a }) {
|
|
|
513
515
|
fallbackTranslations: k,
|
|
514
516
|
defaultBrand: S,
|
|
515
517
|
defaultMode: C,
|
|
516
|
-
defaultDensity:
|
|
517
|
-
defaultTypography:
|
|
518
|
-
defaultGlass:
|
|
518
|
+
defaultDensity: se,
|
|
519
|
+
defaultTypography: ce,
|
|
520
|
+
defaultGlass: w,
|
|
519
521
|
productName: o,
|
|
520
522
|
brandInitial: E,
|
|
521
523
|
enablePWA: T,
|
|
522
524
|
toasterPosition: j,
|
|
523
|
-
tourPageIdFromPath:
|
|
525
|
+
tourPageIdFromPath: F,
|
|
524
526
|
children: r
|
|
525
527
|
}) })
|
|
526
528
|
})
|
package/dist/shared-events.js
CHANGED
|
@@ -2,13 +2,13 @@ import { createBrowserTraceContext as e } from "./shared/events/metadata.js";
|
|
|
2
2
|
import { DevtoolsSink as t } from "./shared/events/sinks/DevtoolsSink.js";
|
|
3
3
|
import { BroadcastChannelSink as n } from "./shared/events/sinks/BroadcastChannelSink.js";
|
|
4
4
|
import { BackendAuditSink as r } from "./shared/events/sinks/BackendAuditSink.js";
|
|
5
|
-
import { AnalyticsConsentBanner as i, RybbitSink as a, readAnalyticsConsent as o,
|
|
6
|
-
import { OtelBrowserSink as
|
|
5
|
+
import { AnalyticsConsentBanner as i, RybbitSink as a, readAnalyticsConsent as o, readAnalyticsConsentChoice as s, setAnalyticsConsent as c } from "./shared/events/sinks/RybbitSink.js";
|
|
6
|
+
import { OtelBrowserSink as l } from "./shared/events/sinks/OtelBrowserSink.js";
|
|
7
7
|
import "./shared/events/sinks/index.js";
|
|
8
|
-
import { createContext as
|
|
9
|
-
import { jsx as
|
|
8
|
+
import { createContext as u, use as d, useCallback as f, useEffect as p, useMemo as m } from "react";
|
|
9
|
+
import { jsx as h } from "react/jsx-runtime";
|
|
10
10
|
//#region src/shared/events/index.tsx
|
|
11
|
-
var
|
|
11
|
+
var g = u({
|
|
12
12
|
emit: () => {},
|
|
13
13
|
emitCustom: () => {},
|
|
14
14
|
on: () => () => {},
|
|
@@ -16,22 +16,22 @@ var h = l({
|
|
|
16
16
|
getBuffer: () => [],
|
|
17
17
|
onAny: () => () => {}
|
|
18
18
|
});
|
|
19
|
-
function
|
|
20
|
-
if (!e) return
|
|
19
|
+
function _(e, t) {
|
|
20
|
+
if (!e) return v();
|
|
21
21
|
let n = e.getItem(t);
|
|
22
22
|
if (n) return n;
|
|
23
|
-
let r =
|
|
23
|
+
let r = v();
|
|
24
24
|
return e.setItem(t, r), r;
|
|
25
25
|
}
|
|
26
|
-
function
|
|
26
|
+
function v() {
|
|
27
27
|
return typeof crypto < "u" && "randomUUID" in crypto ? crypto.randomUUID() : `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function y() {
|
|
30
30
|
if (typeof document > "u") return "light";
|
|
31
31
|
let e = document.documentElement;
|
|
32
32
|
return e.classList.contains("hc") || e.dataset.theme === "hc" ? "hc" : e.classList.contains("dark") || e.dataset.theme === "dark" ? "dark" : "light";
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function b(t, n, r) {
|
|
35
35
|
let i = typeof window < "u" ? window.location : void 0, a = e(), o = typeof navigator < "u" ? navigator : {
|
|
36
36
|
userAgent: "",
|
|
37
37
|
language: "en"
|
|
@@ -41,11 +41,11 @@ function y(t, n, r) {
|
|
|
41
41
|
pathname: i?.pathname ?? "",
|
|
42
42
|
search: i?.search ?? ""
|
|
43
43
|
},
|
|
44
|
-
sessionId:
|
|
45
|
-
deviceId:
|
|
44
|
+
sessionId: _(typeof sessionStorage < "u" ? sessionStorage : void 0, "bf-event-session-id"),
|
|
45
|
+
deviceId: _(typeof localStorage < "u" ? localStorage : void 0, "bf-event-device-id"),
|
|
46
46
|
userAgent: o.userAgent,
|
|
47
47
|
locale: o.language || "en",
|
|
48
|
-
theme:
|
|
48
|
+
theme: y(),
|
|
49
49
|
app: {
|
|
50
50
|
name: t,
|
|
51
51
|
version: n,
|
|
@@ -55,8 +55,8 @@ function y(t, n, r) {
|
|
|
55
55
|
spanId: a.spanId
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
function
|
|
59
|
-
let a =
|
|
58
|
+
function x({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe: r = e, children: i }) {
|
|
59
|
+
let a = m(() => S({
|
|
60
60
|
appName: e,
|
|
61
61
|
appVersion: t,
|
|
62
62
|
appEnv: n,
|
|
@@ -67,16 +67,16 @@ function b({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
67
67
|
t,
|
|
68
68
|
r
|
|
69
69
|
]);
|
|
70
|
-
return /* @__PURE__ */
|
|
70
|
+
return /* @__PURE__ */ h(g.Provider, {
|
|
71
71
|
value: a,
|
|
72
72
|
children: i
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function S({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe: r = e }) {
|
|
76
76
|
let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = [];
|
|
77
77
|
function s(i, a, o) {
|
|
78
78
|
return {
|
|
79
|
-
id:
|
|
79
|
+
id: v(),
|
|
80
80
|
name: i,
|
|
81
81
|
version: 1,
|
|
82
82
|
source: {
|
|
@@ -86,7 +86,7 @@ function x({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
86
86
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
87
87
|
monotonic: performance.now(),
|
|
88
88
|
payload: a,
|
|
89
|
-
metadata:
|
|
89
|
+
metadata: b(e, t, n)
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
function c(e) {
|
|
@@ -121,24 +121,24 @@ function x({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
125
|
-
return
|
|
124
|
+
function C() {
|
|
125
|
+
return d(g);
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
let n =
|
|
129
|
-
|
|
127
|
+
function w(e, t) {
|
|
128
|
+
let n = C();
|
|
129
|
+
p(() => n.on(e, t), [
|
|
130
130
|
n,
|
|
131
131
|
t,
|
|
132
132
|
e
|
|
133
133
|
]);
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
let n =
|
|
137
|
-
return
|
|
135
|
+
function T(e, t) {
|
|
136
|
+
let n = C();
|
|
137
|
+
return f((r) => n.emit(e, r, t), [
|
|
138
138
|
n,
|
|
139
139
|
e,
|
|
140
140
|
t
|
|
141
141
|
]);
|
|
142
142
|
}
|
|
143
143
|
//#endregion
|
|
144
|
-
export { i as AnalyticsConsentBanner, r as BackendAuditSink, n as BroadcastChannelSink, t as DevtoolsSink,
|
|
144
|
+
export { i as AnalyticsConsentBanner, r as BackendAuditSink, n as BroadcastChannelSink, t as DevtoolsSink, x as EventBusProvider, l as OtelBrowserSink, a as RybbitSink, S as createEventBus, o as readAnalyticsConsent, s as readAnalyticsConsentChoice, c as setAnalyticsConsent, w as useEvent, C as useEventBus, T as useEventEmitter };
|
package/dist/shared.js
CHANGED
|
@@ -62,63 +62,63 @@ import "./shared-components.js";
|
|
|
62
62
|
import { DevtoolsSink as Vn } from "./shared/events/sinks/DevtoolsSink.js";
|
|
63
63
|
import { BroadcastChannelSink as Hn } from "./shared/events/sinks/BroadcastChannelSink.js";
|
|
64
64
|
import { BackendAuditSink as Un } from "./shared/events/sinks/BackendAuditSink.js";
|
|
65
|
-
import { AnalyticsConsentBanner as Wn, RybbitSink as Gn, readAnalyticsConsent as Kn,
|
|
66
|
-
import { OtelBrowserSink as
|
|
67
|
-
import { EventBusProvider as
|
|
68
|
-
import { useDebounce as
|
|
69
|
-
import { useThrottle as
|
|
70
|
-
import { BREAKPOINTS as
|
|
71
|
-
import { useOnClickOutside as
|
|
72
|
-
import { useKeyPress as
|
|
73
|
-
import { useExclusiveMenu as
|
|
74
|
-
import { useLocalStorage as
|
|
75
|
-
import { useSessionStorage as
|
|
76
|
-
import { usePrevious as
|
|
77
|
-
import { useConditionalToggle as
|
|
78
|
-
import { usePagination as
|
|
79
|
-
import { useAsync as
|
|
80
|
-
import { MODIFIER_KEYS as
|
|
81
|
-
import { useKeyboardShortcuts as
|
|
82
|
-
import { useHotkeys as
|
|
83
|
-
import { useShortcutHelp as
|
|
84
|
-
import { GLOBAL_SHORTCUT_CATEGORIES as
|
|
85
|
-
import { useLogger as
|
|
86
|
-
import { useHasAnimated as
|
|
87
|
-
import { useReferralAttribution as
|
|
88
|
-
import { useRecordProductVisit as
|
|
89
|
-
import { QUOTA_EXHAUSTED_EVENT as
|
|
90
|
-
import { PLAN_USAGE_SNAPSHOT_EVENT as
|
|
91
|
-
import { appendContextToPath as
|
|
92
|
-
import { MicrofrontendContext as
|
|
93
|
-
import { detectDeviceType as
|
|
94
|
-
import { useTourPlayer as
|
|
95
|
-
import { TourSpotlight as
|
|
96
|
-
import { TourTooltip as
|
|
97
|
-
import { TourPlayerProvider as
|
|
98
|
-
import { TourPlayer as
|
|
99
|
-
import { getTourContextRank as
|
|
100
|
-
import { withTourProgressStatus as
|
|
101
|
-
import { ToursProvider as
|
|
102
|
-
import { TourInitializer as
|
|
103
|
-
import { AppShellProvider as
|
|
104
|
-
import { MicrofrontendProvider as
|
|
105
|
-
import { TourTrigger as
|
|
65
|
+
import { AnalyticsConsentBanner as Wn, RybbitSink as Gn, readAnalyticsConsent as Kn, readAnalyticsConsentChoice as qn, setAnalyticsConsent as Jn } from "./shared/events/sinks/RybbitSink.js";
|
|
66
|
+
import { OtelBrowserSink as Yn } from "./shared/events/sinks/OtelBrowserSink.js";
|
|
67
|
+
import { EventBusProvider as Xn, createEventBus as Zn, useEvent as Qn, useEventBus as $n, useEventEmitter as er } from "./shared-events.js";
|
|
68
|
+
import { useDebounce as tr } from "./shared/hooks/useDebounce.js";
|
|
69
|
+
import { useThrottle as nr } from "./shared/hooks/useThrottle.js";
|
|
70
|
+
import { BREAKPOINTS as rr, useBreakpoint as ir, useMobileBreakpoint as ar } from "./shared/hooks/useBreakpoint.js";
|
|
71
|
+
import { useOnClickOutside as or, useOnClickOutsideWithRef as sr } from "./shared/hooks/useOnClickOutside.js";
|
|
72
|
+
import { useKeyPress as cr, useKeyboardShortcut as lr } from "./shared/hooks/useKeyPress.js";
|
|
73
|
+
import { useExclusiveMenu as ur } from "./shared/hooks/useExclusiveMenu.js";
|
|
74
|
+
import { useLocalStorage as dr } from "./shared/hooks/useLocalStorage.js";
|
|
75
|
+
import { useSessionStorage as fr } from "./shared/hooks/useSessionStorage.js";
|
|
76
|
+
import { usePrevious as pr, usePreviousDistinct as mr, usePreviousHistory as hr } from "./shared/hooks/usePrevious.js";
|
|
77
|
+
import { useConditionalToggle as gr, useToggle as _r, useToggleObject as vr } from "./shared/hooks/useToggle.js";
|
|
78
|
+
import { usePagination as yr } from "./shared/hooks/usePagination.js";
|
|
79
|
+
import { useAsync as br, useAsyncImmediate as xr } from "./shared/hooks/useAsync.js";
|
|
80
|
+
import { MODIFIER_KEYS as Sr, PLATFORM_TYPES as Cr } from "./shared/keyboard/types.js";
|
|
81
|
+
import { useKeyboardShortcuts as wr } from "./shared/keyboard/useKeyboardShortcuts.js";
|
|
82
|
+
import { useHotkeys as Tr } from "./shared/keyboard/useHotkeys.js";
|
|
83
|
+
import { useShortcutHelp as Er } from "./shared/keyboard/useShortcutHelp.js";
|
|
84
|
+
import { GLOBAL_SHORTCUT_CATEGORIES as Dr, createGlobalShortcuts as Or, getGlobalShortcutsByCategory as kr, mergeShortcuts as Ar } from "./shared/keyboard/globalShortcuts.js";
|
|
85
|
+
import { useLogger as jr } from "./shared/logger/useLogger.js";
|
|
86
|
+
import { useHasAnimated as Mr } from "./shared/hooks/useHasAnimated.js";
|
|
87
|
+
import { useReferralAttribution as Nr } from "./shared/hooks/useReferralAttribution.js";
|
|
88
|
+
import { useRecordProductVisit as Pr } from "./shared/hooks/useRecordProductVisit.js";
|
|
89
|
+
import { QUOTA_EXHAUSTED_EVENT as Fr, dispatchQuotaExhausted as Ir, useQuotaErrorToast as Lr } from "./shared/hooks/useQuotaErrorToast.js";
|
|
90
|
+
import { PLAN_USAGE_SNAPSHOT_EVENT as Rr, publishPlanUsageSnapshot as zr, useUpgradePrompt as Br } from "./shared/hooks/useUpgradePrompt.js";
|
|
91
|
+
import { appendContextToPath as Vr, useCurrentContextSearchParams as Hr } from "./shared/hooks/useCurrentContextSearchParams.js";
|
|
92
|
+
import { MicrofrontendContext as Ur, useMicrofrontendContext as Wr } from "./shared-hooks.js";
|
|
93
|
+
import { detectDeviceType as Gr, getResponsiveSelector as Kr } from "./shared/tours/types.js";
|
|
94
|
+
import { useTourPlayer as qr } from "./shared/tours/useTourPlayer.js";
|
|
95
|
+
import { TourSpotlight as Jr } from "./shared/tours/TourSpotlight.js";
|
|
96
|
+
import { TourTooltip as Yr } from "./shared/tours/TourTooltip.js";
|
|
97
|
+
import { TourPlayerProvider as Xr, useIsTourPlaying as Zr, useStartTour as Qr, useStopTour as $r, useTourPlayerContext as ei } from "./shared/tours/TourPlayerProvider.js";
|
|
98
|
+
import { TourPlayer as ti, TourTriggerButton as ni, usePlayTour as ri } from "./shared/tours/TourPlayer.js";
|
|
99
|
+
import { getTourContextRank as ii, getTourRouteCatalog as ai, getTourRouteModules as oi, getTourRoutePages as si, isTourVisibleForContext as ci, normalizeTourPath as li, registerTourRouteCatalog as ui, resolveTourTargetPath as di } from "./shared/tours/routeCatalog.js";
|
|
100
|
+
import { withTourProgressStatus as fi } from "./shared/tours/progress.js";
|
|
101
|
+
import { ToursProvider as pi, useAutoStartTour as mi, useSafeToursContext as hi, useTours as gi, useToursContext as _i } from "./shared/tours/ToursContext.js";
|
|
102
|
+
import { TourInitializer as vi } from "./shared/tours/TourInitializer.js";
|
|
103
|
+
import { AppShellProvider as yi, resolveAppShellObservabilityConfig as bi } from "./shared/providers/AppShellProvider.js";
|
|
104
|
+
import { MicrofrontendProvider as xi } from "./shared-providers.js";
|
|
105
|
+
import { TourTrigger as Si } from "./shared/tours/TourTrigger.js";
|
|
106
106
|
import "./shared-tours.js";
|
|
107
|
-
import { getNativeBridge as
|
|
108
|
-
import { getPlatform as
|
|
109
|
-
import { nativeConfirm as
|
|
110
|
-
import { SafeAreaView as
|
|
111
|
-
import { useNativePlatform as
|
|
112
|
-
import { useSafeArea as
|
|
113
|
-
import { useNativeKeyboard as
|
|
114
|
-
import { useAppState as
|
|
115
|
-
import { useDeviceInfo as
|
|
116
|
-
import { useHaptics as
|
|
117
|
-
import { useStatusBar as
|
|
118
|
-
import { acknowledgeNativePurchase as
|
|
107
|
+
import { getNativeBridge as Ci } from "./shared/native/bridge.js";
|
|
108
|
+
import { getPlatform as wi, isAndroid as Ti, isElectron as Ei, isIOS as Di, isInstalledApp as Oi, isNative as ki, isStandalonePWA as Ai, isWeb as ji, isWebBrowser as Mi } from "./shared/native/platform.js";
|
|
109
|
+
import { nativeConfirm as Ni, nativeCopyText as Pi, nativeImpact as Fi, nativeNotify as Ii, nativeOpenUrl as Li, nativeShare as Ri, nativeToast as zi } from "./shared/native/consumers.js";
|
|
110
|
+
import { SafeAreaView as Bi } from "./shared/native/SafeAreaView.js";
|
|
111
|
+
import { useNativePlatform as Vi } from "./shared/native/hooks/useNativePlatform.js";
|
|
112
|
+
import { useSafeArea as Hi } from "./shared/native/hooks/useSafeArea.js";
|
|
113
|
+
import { useNativeKeyboard as Ui } from "./shared/native/hooks/useNativeKeyboard.js";
|
|
114
|
+
import { useAppState as Wi } from "./shared/native/hooks/useAppState.js";
|
|
115
|
+
import { useDeviceInfo as Gi } from "./shared/native/hooks/useDeviceInfo.js";
|
|
116
|
+
import { useHaptics as Ki } from "./shared/native/hooks/useHaptics.js";
|
|
117
|
+
import { useStatusBar as qi } from "./shared/native/hooks/useStatusBar.js";
|
|
118
|
+
import { acknowledgeNativePurchase as Ji, getNativeProducts as Yi, getNativePurchases as Xi, installNativeIAP as Zi, isNativeIAPAvailable as Qi, purchaseNativeProduct as $i, restoreNativePurchases as ea } from "./shared/native/purchases.js";
|
|
119
119
|
import "./shared-native.js";
|
|
120
120
|
import "./shared/actors/index.js";
|
|
121
121
|
//#region src/shared/index.ts
|
|
122
|
-
var
|
|
122
|
+
var ta = "1.0.0";
|
|
123
123
|
//#endregion
|
|
124
|
-
export { Rn as ASSISTANT_WIDGET_TOGGLE_EVENT, $t as AccessDenied, Wt as ActorIdentity, Wn as AnalyticsConsentBanner, Fe as ApolloClient, Ie as ApolloProvider, un as AppErrorBoundary, xt as AppInitializer,
|
|
124
|
+
export { Rn as ASSISTANT_WIDGET_TOGGLE_EVENT, $t as AccessDenied, Wt as ActorIdentity, Wn as AnalyticsConsentBanner, Fe as ApolloClient, Ie as ApolloProvider, un as AppErrorBoundary, xt as AppInitializer, yi as AppShellProvider, zn as AssistantWidget, ie as BACKEND_ERROR_EVENT, rr as BREAKPOINTS, Un as BackendAuditSink, Hn as BroadcastChannelSink, G as COMMON_SHELL_LESS_ROUTES, ae as CONNECTION_STATUS_EVENT, sn as ConditionalShell, Ot as ConsoleTransport, _n as ContextConversationWidget, Z as DEFAULT_PAGE_SIZE, K as DEFAULT_SHELL_CONFIG, Vn as DevtoolsSink, qt as ErrorBoundary, tn as ErrorFallback, Xn as EventBusProvider, ta as FE_SHARED_VERSION, dn as FeatureFlagProvider, gn as FeatureGate, Q as GATEWAYS, Dr as GLOBAL_SHORTCUT_CATEGORIES, Oe as GatewayProvider, Le as InMemoryCache, jn as KeyboardHelpDialogWrapper, nn as LoadingFallback, wt as LogLevel, Et as LogManager, Tt as Logger, Sr as MODIFIER_KEYS, Bn as Markdown, Ur as MicrofrontendContext, on as MicrofrontendErrorBoundary, xi as MicrofrontendProvider, Yn as OtelBrowserSink, Rr as PLAN_USAGE_SNAPSHOT_EVENT, Cr as PLATFORM_TYPES, V as PRODUCTS, H as PRODUCT_URLS, ln as PWAInstallBanner, rn as PageLoadingFallback, Xt as PermissionButton, en as PermissionDenied, Zt as PermissionGate, Qt as PermissionLink, Pt as QUOTA_EXHAUSTED_CODE, Fr as QUOTA_EXHAUSTED_EVENT, Mn as QuotaMeter, Ft as RESOURCE_CAP_EXCEEDED_CODE, Jt as RequireAuth, Yt as RequireGuest, Gn as RybbitSink, Se as SSELink, it as SSORedirectSpinner, lt as SSO_DEPOSITED_PARAM, It as STORAGE_QUOTA_EXCEEDED_CODE, Bi as SafeAreaView, an as SectionLoadingFallback, vi as TourInitializer, ti as TourPlayer, Xr as TourPlayerProvider, Jr as TourSpotlight, Yr as TourTooltip, Si as TourTrigger, ni as TourTriggerButton, pi as ToursProvider, Lt as UPGRADE_ERROR_CODES, Nn as UPGRADE_PROMPT_EVENT, In as UpgradeInlineBanner, Pn as UpgradePromptModal, Pe as WsLink, Ji as acknowledgeNativePurchase, r as alertTokens, Vr as appendContextToPath, We as attemptTokenRefresh, ut as beginSsoNavigation, Gt as buildActorFallback, Rt as buildQuotaExhaustedMessage, dt as buildSsoDepositUrl, m as capitalizeFirst, h as capitalizeWords, i as categoryTokens, at as checkRemoteSLO, ot as checkSLO, Ge as clearAuthSessionStorage, pe as clearGraphqlFetchResponseCache, st as clearLocalAuthState, Xe as clearSSoCookie, Ze as clearShellSsoCookies, ft as clearSsoDepositState, pt as clearSsoNavigation, kt as clearUserContext, Ut as cn, mt as consumeSsoDepositMarker, n as createApolloClient, Zn as createEventBus, Or as createGlobalShortcuts, Ce as createGraphQLClient, Mt as createProfileScopedStorage, Gr as detectDeviceType, vn as detectPlatform, oe as dispatchBackendErrorEvent, Ir as dispatchQuotaExhausted, Fn as dispatchUpgradePrompt, se as extractBackendError, zt as extractQuotaExhaustedExtensions, Bt as extractUpgradeErrorExtensions, g as formatBytes, _ as formatCompactNumber, v as formatCurrency, y as formatCurrencyCompact, b as formatDate, x as formatDateTime, S as formatDuration, yn as formatKeyCombo, C as formatList, w as formatNumber, T as formatOrdinal, E as formatPercentage, D as formatRelativeTime, O as formatTime, a as getAlertTokens, o as getCategoryTokens, bn as getDisplayKeysForPlatform, $ as getGatewayConfig, ee as getGatewayUrl, we as getGlobalClient, kr as getGlobalShortcutsByCategory, te as getGraphQLEndpoint, Ci as getNativeBridge, Yi as getNativeProducts, Xi as getNativePurchases, wi as getPlatform, U as getProductUrl, W as getProductsWithUrls, Nt as getProfileScopedKey, s as getProgressTokens, Kr as getResponsiveSelector, ct as getSSORedirectUrl, Qe as getSSoCookie, q as getShellConfig, xn as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, me as getStoredAuthToken, he as getStoredLocale, ge as getStoredOrganizationId, _e as getStoredProjectId, ve as getStoredWorkspaceId, ye as getStoredWorkspaceToken, ii as getTourContextRank, ai as getTourRouteCatalog, oi as getTourRouteModules, si as getTourRoutePages, u as getTrendTokens, Te as getWorkspaceClient, ne as getWorkspaceTokenPayload, Re as gql, be as graphqlFetch, Ke as hasAuthGraphQLErrors, Ee as initializeAppClients, At as initializeLogger, L as installGatewayFetchRewrite, Zi as installNativeIAP, ce as isAbortError, Ti as isAndroid, qe as isAuthGraphQLError, Je as isAuthNetworkError, le as isBackendErrorDisplay, P as isChunkLoadError, Ei as isElectron, Di as isIOS, Oi as isInstalledApp, Sn as isMac, Cn as isMobileDevice, ki as isNative, Qi as isNativeIAPAvailable, Vt as isQuotaExhaustedError, $e as isSharedSsoCookieDomain, J as isShellLessRoute, ht as isSsoNavigationPending, Ai as isStandalonePWA, wn as isTabletDevice, ci as isTourVisibleForContext, ue as isTransportError, et as isTrustedSsoOrigin, Ht as isUpgradeError, ji as isWeb, Mi as isWebBrowser, re as isWorkspaceTokenValidForContext, F as lazyWithRetry, Dt as logManager, de as markConnectionHealthy, gt as markSsoDepositDone, _t as markSsoDepositPending, Tn as matchesKeyCombo, Ar as mergeShortcuts, vt as mintSsoSessionTokens, Ni as nativeConfirm, Pi as nativeCopyText, Fi as nativeImpact, Ii as nativeNotify, Li as nativeOpenUrl, Ri as nativeShare, zi as nativeToast, En as normalizeKey, Dn as normalizePlatformCombo, li as normalizeTourPath, On as parseKeyCombo, k as pluralize, d as progressTokens, zr as publishPlanUsageSnapshot, $i as purchaseNativeProduct, Kn as readAnalyticsConsent, qn as readAnalyticsConsentChoice, tt as readShellSsoCookie, yt as readSsoDepositState, Ye as redirectToLogin, ui as registerTourRouteCatalog, De as resetAppClients, bi as resolveAppShellObservabilityConfig, B as resolveAuthBridgeConfig, R as resolveGatewayBases, xe as resolveGatewayUrl, I as resolveGatewayUrls, di as resolveTourTargetPath, ea as restoreNativePurchases, Jn as setAnalyticsConsent, nt as setSSoCookie, rt as setShellSsoCookies, jt as setUserContext, bt as shouldAttemptSsoDeposit, kn as shouldEnableKeyboardShortcuts, An as shouldIgnoreShortcut, Y as shouldShowBreadcrumb, X as shouldShowSidebar, fe as shouldToastBackendError, A as slugify, f as statusTokens, z as suppressConsole, j as toCamelCase, M as toPascalCase, p as trendTokens, N as truncateText, Kt as useActorProfiles, ze as useApolloClient, Wi as useAppState, br as useAsync, xr as useAsyncImmediate, mi as useAutoStartTour, ir as useBreakpoint, gr as useConditionalToggle, e as useCopyToClipboard, Hr as useCurrentContextSearchParams, tr as useDebounce, Gi as useDeviceInfo, Qn as useEvent, $n as useEventBus, er as useEventEmitter, ur as useExclusiveMenu, pn as useFeatureFlag, mn as useFeatureFlagDetails, hn as useFeatureFlagValue, fn as useFeatureFlags, ke as useGateway, Ae as useGatewayClient, Ki as useHaptics, Mr as useHasAnimated, Ne as useHasAuthToken, Tr as useHotkeys, Zr as useIsTourPlaying, cr as useKeyPress, lr as useKeyboardShortcut, wr as useKeyboardShortcuts, Be as useLazyQuery, dr as useLocalStorage, jr as useLogger, t as useMediaQuery, Wr as useMicrofrontendContext, ar as useMobileBreakpoint, Ve as useMutation, Ui as useNativeKeyboard, Vi as useNativePlatform, or as useOnClickOutside, sr as useOnClickOutsideWithRef, cn as usePWA, yr as usePagination, ri as usePlayTour, pr as usePrevious, mr as usePreviousDistinct, hr as usePreviousHistory, He as useQuery, Lr as useQuotaErrorToast, Pr as useRecordProductVisit, Nr as useReferralAttribution, St as useRegistryHelpers, Hi as useSafeArea, je as useSafeGateway, Me as useSafeGatewayClient, hi as useSafeToursContext, fr as useSessionStorage, Ct as useShellNavigate, Er as useShortcutHelp, Qr as useStartTour, qi as useStatusBar, $r as useStopTour, Ue as useSubscription, nr as useThrottle, _r as useToggle, vr as useToggleObject, qr as useTourPlayer, ei as useTourPlayerContext, gi as useTours, _i as useToursContext, Br as useUpgradePrompt, Ln as useVoiceInput, fi as withTourProgressStatus };
|