@burdenoff/fe-libs 2026.1005.2 → 2026.1005.4

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.
Files changed (56) hide show
  1. package/dist/chrome/ContextSwitcher.d.ts +2 -0
  2. package/dist/chrome/ContextSwitcher.d.ts.map +1 -1
  3. package/dist/chrome/ContextSwitcher.js +70 -67
  4. package/dist/chrome/contextSwitcher/ProjectList.d.ts +1 -0
  5. package/dist/chrome/contextSwitcher/ProjectList.d.ts.map +1 -1
  6. package/dist/chrome/contextSwitcher/ProjectList.js +18 -5
  7. package/dist/node_modules/fflate/esm/browser.js +3 -3
  8. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +51 -51
  9. package/dist/node_modules/pdfjs-dist/build/pdf.js +2268 -1656
  10. package/dist/node_modules/pdfjs-dist/build/pdf.worker.min.js +8719 -7535
  11. package/dist/shared/assistant/attachments.js +1 -0
  12. package/dist/shared/assistant/images.js +1 -1
  13. package/dist/shared/assistant/runtime.js +1 -0
  14. package/dist/shared/assistant/speech/createSpeechEngine.js +1 -1
  15. package/dist/shared/assistant/uiActions/deixis.js +1 -1
  16. package/dist/shared/assistant/voice/handsfree/micCapture.js +1 -0
  17. package/dist/shared/assistant/voice/voiceTranscript.js +14 -14
  18. package/dist/shared/components/SSORedirectGuard.d.ts +15 -0
  19. package/dist/shared/components/SSORedirectGuard.d.ts.map +1 -1
  20. package/dist/shared/components/SSORedirectGuard.js +39 -42
  21. package/dist/shared/config/gatewayUrls.js +2 -2
  22. package/dist/shared/graphql/workspaceToken.d.ts +1 -0
  23. package/dist/shared/graphql/workspaceToken.d.ts.map +1 -1
  24. package/dist/shared/graphql/workspaceToken.js +18 -14
  25. package/dist/shared/native/platform.d.ts +6 -0
  26. package/dist/shared/native/platform.d.ts.map +1 -1
  27. package/dist/shared/native/platform.js +22 -15
  28. package/dist/shared/plugins/iframe-mount/client/message-bus.js +1 -0
  29. package/dist/shared/plugins/iframe-mount/client/rpc.js +1 -0
  30. package/dist/shared/providers/shell/ActiveContextProvider.d.ts.map +1 -1
  31. package/dist/shared/providers/shell/ActiveContextProvider.js +165 -144
  32. package/dist/shared/providers/shell/AuthTokenProvider.d.ts.map +1 -1
  33. package/dist/shared/providers/shell/AuthTokenProvider.js +51 -46
  34. package/dist/shared/providers/shell/WorkspaceWideSelection.d.ts +10 -0
  35. package/dist/shared/providers/shell/WorkspaceWideSelection.d.ts.map +1 -0
  36. package/dist/shared/providers/shell/WorkspaceWideSelection.js +37 -0
  37. package/dist/shared/providers/shell/authProvider/ssoRelay.d.ts +3 -3
  38. package/dist/shared/providers/shell/authProvider/ssoRelay.d.ts.map +1 -1
  39. package/dist/shared/providers/shell/authProvider/ssoRelay.js +14 -13
  40. package/dist/shared/providers/shell/authProvider/useBridgeInitialization.d.ts.map +1 -1
  41. package/dist/shared/providers/shell/authProvider/useBridgeInitialization.js +38 -37
  42. package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.d.ts.map +1 -1
  43. package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.js +23 -26
  44. package/dist/shared/providers/shell/index.d.ts +2 -0
  45. package/dist/shared/providers/shell/index.d.ts.map +1 -1
  46. package/dist/shared/tours/TourTooltip.js +8 -8
  47. package/dist/shared/utils/format.js +1 -1
  48. package/dist/shared/utils/gatewayFetchRewrite.js +1 -1
  49. package/dist/shared-providers-shell.js +25 -24
  50. package/dist/shell-native/capacitor-config.d.ts +2 -0
  51. package/dist/shell-native/capacitor-config.d.ts.map +1 -1
  52. package/dist/shell-native/capacitor-config.js +38 -32
  53. package/dist/shell-native/index.d.ts +1 -1
  54. package/dist/shell-native/index.d.ts.map +1 -1
  55. package/dist/shell-native.js +4 -4
  56. package/package.json +18 -9
@@ -11,6 +11,7 @@ var l = 8e3, u = 2e4, d = Object.freeze({
11
11
  perFileChars: l,
12
12
  totalChars: u
13
13
  }), f = class extends Error {
14
+ reason;
14
15
  constructor(e) {
15
16
  super(e), this.reason = e, this.name = "AttachmentRejectedError";
16
17
  }
@@ -10,7 +10,7 @@ function i() {
10
10
  MODE: "production",
11
11
  PROD: !0,
12
12
  SSR: !1
13
- }?.VITE_SANDBOX_IMAGE_REGISTRY?.trim();
13
+ }.VITE_SANDBOX_IMAGE_REGISTRY?.trim();
14
14
  if (e) return e.replace(/\/+$/, "");
15
15
  } catch {}
16
16
  return n;
@@ -1,6 +1,7 @@
1
1
  import { createAssistantSandbox as e, createAssistantSession as t, extendAssistantSandboxTTL as n, findExistingSandbox as r, sendHeartbeat as i, waitForAssistantServiceReady as a, waitForSandboxRunning as o } from "./api.js";
2
2
  //#region src/shared/assistant/runtime.ts
3
3
  var s = 240 * 1e3, c = class {
4
+ deps;
4
5
  sandboxId = null;
5
6
  sessionId = null;
6
7
  provisioningSandboxId = null;
@@ -15,7 +15,7 @@ function s() {
15
15
  return r ? {
16
16
  endpoint: r,
17
17
  getHeaders: a
18
- } : { endpoint: (void 0)?.trim() || null };
18
+ } : { endpoint: null };
19
19
  }
20
20
  function c(n = s()) {
21
21
  return {
@@ -29,7 +29,7 @@ var e = [
29
29
  2: 2,
30
30
  3: 3,
31
31
  4: 4
32
- }, o = "(?:(?:open|go to|take me to) )?", s = RegExp("^(?:(?:the )?(first|second|third|fourth|last|1st|2nd|3rd|4th)(?: one)?|(?:open|go to|take me to) (?:the )?(first|second|third|fourth|last|1st|2nd|3rd|4th) one)$"), c = RegExp(`^${o}(?:the )?(?:number|option) (one|two|three|four|1|2|3|4)$`), l = RegExp(`^${o}the one (?:in|under|from) (?:the )?(.+)$`);
32
+ }, o = "(?:(?:open|go to|take me to) )?", s = /* @__PURE__ */ RegExp("^(?:(?:the )?(first|second|third|fourth|last|1st|2nd|3rd|4th)(?: one)?|(?:open|go to|take me to) (?:the )?(first|second|third|fourth|last|1st|2nd|3rd|4th) one)$"), c = RegExp(`^${o}(?:the )?(?:number|option) (one|two|three|four|1|2|3|4)$`), l = RegExp(`^${o}the one (?:in|under|from) (?:the )?(.+)$`);
33
33
  function u(e) {
34
34
  let t = s.exec(e);
35
35
  if (t) {
@@ -2,6 +2,7 @@ import { attachPlaybackReference as e, detachPlaybackReference as t } from "./pl
2
2
  import { CAPTURE_PROCESSOR_NAME as n, CAPTURE_WORKLET_SOURCE as r } from "./captureWorklet.js";
3
3
  //#region src/shared/assistant/voice/handsfree/micCapture.ts
4
4
  var i = class extends Error {
5
+ reason;
5
6
  constructor(e) {
6
7
  super(`mic capture failed: ${e}`), this.reason = e, this.name = "MicCaptureError";
7
8
  }
@@ -1,42 +1,42 @@
1
1
  import { groupConsecutiveBySession as e } from "./turnVisibility.js";
2
2
  //#region src/shared/assistant/voice/voiceTranscript.ts
3
- var t = 3, n = 80;
4
- function r(e, t) {
3
+ var t = 80;
4
+ function n(e, t) {
5
5
  let n = e.replace(/\s+/g, " ").trim();
6
6
  if (n.length <= t) return n;
7
7
  let r = n.slice(0, t), i = r.lastIndexOf(" ");
8
8
  return `${(i > t * .6 ? r.slice(0, i) : r).trimEnd()}…`;
9
9
  }
10
- function i(e) {
10
+ function r(e) {
11
11
  let t = new Date(e);
12
12
  return Number.isNaN(t.getTime()) ? "" : t.toLocaleTimeString(void 0, {
13
13
  hour: "2-digit",
14
14
  minute: "2-digit"
15
15
  });
16
16
  }
17
- function a(t, n, r) {
17
+ function i(t, n, i) {
18
18
  let a = e(t, (e) => e.sessionId), o = [
19
19
  `# ${n.title}`,
20
20
  "",
21
- `_${n.savedAt}: ${r.toLocaleString()}_`,
21
+ `_${n.savedAt}: ${i.toLocaleString()}_`,
22
22
  ""
23
23
  ], s = 0;
24
24
  return a.forEach((e) => {
25
25
  e.sessionId ? (s += 1, o.push(`## ${n.session} ${s}`, "")) : o.push(`## ${n.earlier}`, "");
26
26
  for (let t of e.turns) {
27
- let e = t.role === "user" ? n.you : n.assistant, r = i(t.timestamp);
28
- o.push(r ? `**${e}** (${r})` : `**${e}**`, "", t.text.trim(), "");
27
+ let e = t.role === "user" ? n.you : n.assistant, i = r(t.timestamp);
28
+ o.push(i ? `**${e}** (${i})` : `**${e}**`, "", t.text.trim(), "");
29
29
  }
30
30
  }), `${o.join("\n").trimEnd()}\n`;
31
31
  }
32
- function o(e, t) {
32
+ function a(e, t) {
33
33
  return `${e}-voice-${`${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, "0")}-${String(t.getDate()).padStart(2, "0")}`}-${`${String(t.getHours()).padStart(2, "0")}${String(t.getMinutes()).padStart(2, "0")}`}.md`;
34
34
  }
35
- function s(e, i) {
36
- let a = e.filter((e) => e.role === "user" && e.text.trim()).map((e) => e.text);
37
- if (a.length === 0) return i.nothing;
38
- let o = a.slice(-t), s = a.length - o.length, c = [i.intro, ...o.map((e) => `• ${r(e, n)}`)];
39
- return s > 0 && c.push(i.more(s)), c.join("\n");
35
+ function o(e, r) {
36
+ let i = e.filter((e) => e.role === "user" && e.text.trim()).map((e) => e.text);
37
+ if (i.length === 0) return r.nothing;
38
+ let a = i.slice(-3), o = i.length - a.length, s = [r.intro, ...a.map((e) => `• ${n(e, t)}`)];
39
+ return o > 0 && s.push(r.more(o)), s.join("\n");
40
40
  }
41
41
  //#endregion
42
- export { s as buildContinuedFromVoiceNote, a as buildVoiceTranscriptMarkdown, o as voiceTranscriptFilename };
42
+ export { o as buildContinuedFromVoiceNote, i as buildVoiceTranscriptMarkdown, a as voiceTranscriptFilename };
@@ -15,6 +15,21 @@ export declare function clearSSORelayAttempt(): void;
15
15
  export declare function shouldSkipSSORedirect(returnPath?: string): boolean;
16
16
  export declare function hasRecentSSORedirectAttempt(relayOrigin: string, returnTo: string): boolean;
17
17
  export declare function markSSORedirectAttempt(relayOrigin: string, returnTo: string): void;
18
+ /**
19
+ * Check if an SSO redirect should be initiated.
20
+ * Returns the redirect URL if SSO should happen, null otherwise.
21
+ *
22
+ * Call this from ProtectedRoute or LandingOrDashboardRedirect
23
+ * before showing login page.
24
+ *
25
+ * Cross-eTLD+1 product shells always start at the central bridge
26
+ * (alphaapp/app.burdenoff.com): product cookies are first-party only and must
27
+ * not route a visitor through a different product origin. The bridge reads its
28
+ * own first-party session state — including its profile-origin hint — then
29
+ * returns to the original product origin through `/auth/sso-callback#sso=...`.
30
+ * On no central session the bridge bounces back with `?sso_failed=1` and
31
+ * `isAutoSSOSuppressed` keeps the user on the login screen.
32
+ */
18
33
  export declare function getSSORedirectUrl(returnPath?: string): string | null;
19
34
  /**
20
35
  * Check if Single Logout (SLO) has occurred on another shell.
@@ -1 +1 @@
1
- {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuDH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AA2CD,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AA+BD,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqDpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAEjC"}
1
+ {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuDH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AA2CD,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqDpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAEjC"}
@@ -1,16 +1,16 @@
1
1
  import { resolveAuthBridgeConfig as e } from "../config/authBridgeUrls.js";
2
2
  import { clearActiveContextStorage as t } from "../providers/shell/ActiveContextStorage.js";
3
3
  import { clearShellSsoCookies as n, isLocalDevSsoHost as r, isSharedSsoCookieDomain as i, isTrustedSsoOrigin as a, readShellSsoCookie as o } from "../utils/authCookie.js";
4
- import { isElectron as s, isNative as c } from "../native/platform.js";
5
- import { BrandedSplash as l } from "../../ui/branded-splash.js";
6
- import { jsx as u } from "react/jsx-runtime";
4
+ import { isRealNativeOrDesktopShell as s } from "../native/platform.js";
5
+ import { BrandedSplash as c } from "../../ui/branded-splash.js";
6
+ import { jsx as l } from "react/jsx-runtime";
7
7
  //#region src/shared/components/SSORedirectGuard.tsx
8
- var d = "bf-sso-relay-attempt", f = 120 * 1e3, p = [
8
+ var u = "bf-sso-relay-attempt", d = 120 * 1e3, f = [
9
9
  "sso_failed",
10
10
  "sso-failed",
11
11
  "sso-attempted"
12
12
  ];
13
- function m(e) {
13
+ function p(e) {
14
14
  if (typeof window > "u") return null;
15
15
  try {
16
16
  let t = `${window.location.pathname}${window.location.search}${window.location.hash}`, n = new URL(e ?? t, window.location.origin);
@@ -19,73 +19,70 @@ function m(e) {
19
19
  return null;
20
20
  }
21
21
  }
22
- function h(e) {
22
+ function m(e) {
23
23
  return e === "/auth" || e.startsWith("/auth/");
24
24
  }
25
- function g(e) {
26
- return p.some((t) => e.searchParams.has(t));
25
+ function h(e) {
26
+ return f.some((t) => e.searchParams.has(t));
27
27
  }
28
- function _(e) {
29
- if (g(e)) return n(), !0;
30
- if (h(e.pathname)) return !0;
28
+ function g(e) {
29
+ if (h(e)) return n(), !0;
30
+ if (m(e.pathname)) return !0;
31
31
  let t = e.searchParams.get("reason");
32
32
  return t === "session-expired" || t === "logout";
33
33
  }
34
- function v() {
34
+ function _() {
35
35
  try {
36
- sessionStorage.removeItem(d);
36
+ sessionStorage.removeItem(u);
37
37
  } catch {}
38
38
  }
39
- function y() {
39
+ function v() {
40
40
  if (typeof window > "u") return null;
41
41
  try {
42
- let e = sessionStorage.getItem(d);
42
+ let e = sessionStorage.getItem(u);
43
43
  if (!e) return null;
44
44
  let t = JSON.parse(e);
45
- return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt > f ? (v(), null) : {
45
+ return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt > d ? (_(), null) : {
46
46
  relayOrigin: t.relayOrigin,
47
47
  returnTo: t.returnTo,
48
48
  startedAt: t.startedAt
49
49
  };
50
50
  } catch {
51
- return v(), null;
51
+ return _(), null;
52
52
  }
53
53
  }
54
- function b(e) {
54
+ function y(e) {
55
55
  try {
56
56
  return new URL(e).origin;
57
57
  } catch {
58
58
  return null;
59
59
  }
60
60
  }
61
- function x(e) {
62
- let t = m(e);
63
- return !t || _(t);
61
+ function b(e) {
62
+ let t = p(e);
63
+ return !t || g(t);
64
64
  }
65
- function S(e, t) {
66
- let n = b(e), r = m(t), i = y();
65
+ function x(e, t) {
66
+ let n = y(e), r = p(t), i = v();
67
67
  return !!(n && r && i?.returnTo === r.href);
68
68
  }
69
- function C(e, t) {
69
+ function S(e, t) {
70
70
  if (typeof window > "u") return;
71
- let n = b(e), r = m(t);
71
+ let n = y(e), r = p(t);
72
72
  if (!(!n || !r)) try {
73
73
  let e = {
74
74
  relayOrigin: n,
75
75
  returnTo: r.href,
76
76
  startedAt: Date.now()
77
77
  };
78
- sessionStorage.setItem(d, JSON.stringify(e));
78
+ sessionStorage.setItem(u, JSON.stringify(e));
79
79
  } catch {}
80
80
  }
81
- function w() {
82
- return c() || s();
83
- }
84
- function T(t) {
85
- if (w()) return null;
81
+ function C(t) {
82
+ if (s()) return null;
86
83
  try {
87
- let n = m(t);
88
- if (!n || _(n) || r()) return null;
84
+ let n = p(t);
85
+ if (!n || g(n) || r()) return null;
89
86
  let i = window.location.origin, s = null;
90
87
  try {
91
88
  s = new URL(e().url).origin;
@@ -93,23 +90,23 @@ function T(t) {
93
90
  let c = o();
94
91
  if (s === i && c?.origin && a(c.origin)) {
95
92
  let e = new URL(c.origin).origin;
96
- if (e && e !== i && !S(e, n.href)) return C(e, n.href), `${e}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
93
+ if (e && e !== i && !x(e, n.href)) return S(e, n.href), `${e}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
97
94
  }
98
- return s && s !== i && !S(s, n.href) ? (C(s, n.href), `${s}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`) : null;
95
+ return s && s !== i && !x(s, n.href) ? (S(s, n.href), `${s}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`) : null;
99
96
  } catch {
100
97
  return null;
101
98
  }
102
99
  }
103
- function E() {
100
+ function w() {
104
101
  try {
105
102
  if (o()) return !1;
106
103
  let e = sessionStorage.getItem("bf-active-profile");
107
- return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (O(), !0);
104
+ return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (E(), !0);
108
105
  } catch {
109
106
  return !1;
110
107
  }
111
108
  }
112
- async function D(e, t) {
109
+ async function T(e, t) {
113
110
  try {
114
111
  let n = await fetch(e, {
115
112
  method: "POST",
@@ -126,7 +123,7 @@ async function D(e, t) {
126
123
  return !1;
127
124
  }
128
125
  }
129
- function O() {
126
+ function E() {
130
127
  try {
131
128
  let e = localStorage.getItem("bf-profiles");
132
129
  if (e) {
@@ -137,8 +134,8 @@ function O() {
137
134
  localStorage.removeItem("bf-profiles"), localStorage.removeItem("auth-storage"), sessionStorage.removeItem("bf-active-profile"), t(), n(), window.dispatchEvent(new Event("bf-auth-state-cleared")), window.dispatchEvent(new Event("bf-profile-storage-change"));
138
135
  } catch {}
139
136
  }
140
- function k() {
141
- return /* @__PURE__ */ u(l, { label: "Signing you in…" });
137
+ function D() {
138
+ return /* @__PURE__ */ l(c, { label: "Signing you in…" });
142
139
  }
143
140
  //#endregion
144
- export { k as SSORedirectSpinner, D as checkRemoteSLO, E as checkSLO, O as clearLocalAuthState, v as clearSSORelayAttempt, T as getSSORedirectUrl, S as hasRecentSSORedirectAttempt, C as markSSORedirectAttempt, x as shouldSkipSSORedirect };
141
+ export { D as SSORedirectSpinner, T as checkRemoteSLO, w as checkSLO, E as clearLocalAuthState, _ as clearSSORelayAttempt, C as getSSORedirectUrl, x as hasRecentSSORedirectAttempt, S as markSSORedirectAttempt, b as shouldSkipSSORedirect };
@@ -36,7 +36,7 @@ function d() {
36
36
  MODE: "production",
37
37
  PROD: !0,
38
38
  SSR: !1
39
- }?.VITE_DEPLOY_ENV?.toLowerCase();
39
+ }.VITE_DEPLOY_ENV?.toLowerCase();
40
40
  } catch {
41
41
  return;
42
42
  }
@@ -73,7 +73,7 @@ function h() {
73
73
  MODE: "production",
74
74
  PROD: !0,
75
75
  SSR: !1
76
- }?.VITE_GATEWAY_TARGET?.toLowerCase();
76
+ }.VITE_GATEWAY_TARGET?.toLowerCase();
77
77
  } catch {
78
78
  return;
79
79
  }
@@ -3,6 +3,7 @@ export interface WorkspaceTokenContext {
3
3
  organizationId?: string | null;
4
4
  tenantId?: string | null;
5
5
  projectId?: string | null;
6
+ workspaceWide?: boolean;
6
7
  }
7
8
  export interface WorkspaceTokenPayload extends WorkspaceTokenContext {
8
9
  exp?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceToken.d.ts","sourceRoot":"","sources":["../../../src/shared/graphql/workspaceToken.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAcpF;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,QAAQ,EAAE,qBAAqB,EAC/B,cAAc,SAAS,GACtB,KAAK,IAAI,MAAM,CA+BjB"}
1
+ {"version":3,"file":"workspaceToken.d.ts","sourceRoot":"","sources":["../../../src/shared/graphql/workspaceToken.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAcpF;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,QAAQ,EAAE,qBAAqB,EAC/B,cAAc,SAAS,GACtB,KAAK,IAAI,MAAM,CAwCjB"}
@@ -1,5 +1,6 @@
1
+ import { isWorkspaceWideSelection as e } from "../providers/shell/WorkspaceWideSelection.js";
1
2
  //#region src/shared/graphql/workspaceToken.ts
2
- function e(e) {
3
+ function t(e) {
3
4
  try {
4
5
  let [, t] = e.split(".");
5
6
  if (!t || typeof globalThis.atob != "function") return null;
@@ -9,25 +10,28 @@ function e(e) {
9
10
  return null;
10
11
  }
11
12
  }
12
- function t(e, t) {
13
+ function n(e, t) {
13
14
  let n = e[t];
14
15
  return typeof n == "string" && n.length > 0 ? n : void 0;
15
16
  }
16
- function n(n) {
17
- let r = e(n);
17
+ function r(e) {
18
+ let r = t(e);
18
19
  return r ? {
19
- workspaceId: t(r, "workspaceId"),
20
- organizationId: t(r, "organizationId"),
21
- tenantId: t(r, "tenantId"),
22
- projectId: t(r, "projectId"),
23
- tokenType: t(r, "tokenType"),
20
+ workspaceId: n(r, "workspaceId"),
21
+ organizationId: n(r, "organizationId"),
22
+ tenantId: n(r, "tenantId"),
23
+ projectId: n(r, "projectId"),
24
+ tokenType: n(r, "tokenType"),
24
25
  exp: typeof r.exp == "number" ? r.exp : void 0
25
26
  } : null;
26
27
  }
27
- function r(e, t, r = 3e4) {
28
- if (!e) return !1;
29
- let i = n(e);
30
- return !(!i || i.exp && i.exp * 1e3 <= Date.now() + r || t.workspaceId && i.workspaceId !== t.workspaceId || t.organizationId && i.organizationId !== t.organizationId || t.tenantId && i.tenantId !== t.tenantId || t.projectId && i.projectId !== t.projectId);
28
+ function i(t, n, i = 3e4) {
29
+ if (!t) return !1;
30
+ let a = r(t);
31
+ return !(!a || a.exp && a.exp * 1e3 <= Date.now() + i || n.workspaceId && a.workspaceId !== n.workspaceId || n.organizationId && a.organizationId !== n.organizationId || n.tenantId && a.tenantId !== n.tenantId || (n.workspaceWide ?? (!n.projectId && e({
32
+ organizationId: n.organizationId ?? null,
33
+ workspaceId: n.workspaceId ?? null
34
+ }))) && a.projectId || n.projectId && a.projectId !== n.projectId);
31
35
  }
32
36
  //#endregion
33
- export { n as getWorkspaceTokenPayload, r as isWorkspaceTokenValidForContext };
37
+ export { r as getWorkspaceTokenPayload, i as isWorkspaceTokenValidForContext };
@@ -6,6 +6,12 @@ export declare function isAndroid(): boolean;
6
6
  export declare function isWeb(): boolean;
7
7
  /** Running inside an Electron desktop shell. */
8
8
  export declare function isElectron(): boolean;
9
+ /**
10
+ * Whether cross-origin session hops should stay inside the current product origin.
11
+ * Capacitor is detected independently of boot order; presentation previews remain
12
+ * ordinary browser tabs so their bridge-host session maintenance still runs.
13
+ */
14
+ export declare function isRealNativeOrDesktopShell(): boolean;
9
15
  /** Running as an installed / standalone PWA (added to home screen / installed). */
10
16
  export declare function isStandalonePWA(): boolean;
11
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/shared/native/platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,WAAW,IAAI,uBAAuB,CAIrD;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,gDAAgD;AAChD,wBAAgB,UAAU,IAAI,OAAO,CAapC;AAED,mFAAmF;AACnF,wBAAgB,eAAe,IAAI,OAAO,CAQzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/shared/native/platform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,wBAAgB,WAAW,IAAI,uBAAuB,CAIrD;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,gDAAgD;AAChD,wBAAgB,UAAU,IAAI,OAAO,CAapC;AAYD;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAIpD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,IAAI,OAAO,CAQzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
@@ -1,35 +1,42 @@
1
- import { getNativeBridge as e } from "./bridge.js";
1
+ import { isCapacitorNative as e } from "./capacitor.js";
2
+ import { getNativeBridge as t } from "./bridge.js";
2
3
  //#region src/shared/native/platform.ts
3
- function t() {
4
- let t = e();
5
- return t ? t.getPlatform() : "web";
6
- }
7
4
  function n() {
8
- return e()?.isNativePlatform() ?? !1;
5
+ let e = t();
6
+ return e ? e.getPlatform() : "web";
9
7
  }
10
8
  function r() {
11
- return t() === "ios";
9
+ return t()?.isNativePlatform() ?? !1;
12
10
  }
13
11
  function i() {
14
- return t() === "android";
12
+ return n() === "ios";
15
13
  }
16
14
  function a() {
17
- return t() === "web";
15
+ return n() === "android";
18
16
  }
19
17
  function o() {
20
- return typeof window > "u" ? !1 : !!(window.__burdenoffDesktop?.isElectron || typeof navigator < "u" && /electron/i.test(navigator.userAgent) || typeof window < "u" && window.process?.type === "renderer");
18
+ return n() === "web";
21
19
  }
22
20
  function s() {
21
+ return typeof window > "u" ? !1 : !!(window.__burdenoffDesktop?.isElectron || typeof navigator < "u" && /electron/i.test(navigator.userAgent) || typeof window < "u" && window.process?.type === "renderer");
22
+ }
23
+ function c() {
24
+ return typeof document < "u" && !!document.documentElement?.dataset?.nativePreview;
25
+ }
26
+ function l() {
27
+ return e() ? !0 : c() ? !1 : r() || s();
28
+ }
29
+ function u() {
23
30
  if (typeof window > "u") return !1;
24
31
  if (document?.documentElement?.dataset?.nativePreview === "pwa") return !0;
25
32
  let e = window.matchMedia?.("(display-mode: standalone)")?.matches ?? !1, t = window.navigator.standalone === !0;
26
33
  return e || t;
27
34
  }
28
- function c() {
29
- return n() || o() || s();
35
+ function d() {
36
+ return r() || s() || u();
30
37
  }
31
- function l() {
32
- return !c();
38
+ function f() {
39
+ return !d();
33
40
  }
34
41
  //#endregion
35
- export { t as getPlatform, i as isAndroid, o as isElectron, r as isIOS, c as isInstalledApp, n as isNative, s as isStandalonePWA, a as isWeb, l as isWebBrowser };
42
+ export { n as getPlatform, a as isAndroid, s as isElectron, i as isIOS, d as isInstalledApp, r as isNative, l as isRealNativeOrDesktopShell, u as isStandalonePWA, o as isWeb, f as isWebBrowser };
@@ -8,6 +8,7 @@ function r() {
8
8
  return globalThis.window;
9
9
  }
10
10
  var i = class {
11
+ options;
11
12
  handlers = /* @__PURE__ */ new Set();
12
13
  disposed = !1;
13
14
  listener;
@@ -4,6 +4,7 @@ function n() {
4
4
  return t = (t + 1) % (2 ** 53 - 1), `rpc-${Date.now().toString(36)}-${t.toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
5
5
  }
6
6
  var r = class {
7
+ sender;
7
8
  pending = /* @__PURE__ */ new Map();
8
9
  constructor(e) {
9
10
  this.sender = e;
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveContextProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/ActiveContextProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActiveContextProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/ActiveContextProvider.tsx"],"names":[],"mappings":"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"}