@burdenoff/microfe-auth 2026.828.1 → 2026.828.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.
@@ -14,4 +14,14 @@
14
14
  * 4. Redirects to productA.com/auth/sso-callback#token=<base64-encoded-tokens>
15
15
  * 5. SSORelayCallbackPage on productA decodes and stores tokens, redirects to /dashboard
16
16
  */
17
+ /**
18
+ * Follow the SSO cookie's origin hint only when it is safe to do so.
19
+ *
20
+ * - On a product app shell, the only safe cross-origin redirect is to the
21
+ * central bridge host. A stale cookie pointing at a different product must
22
+ * not strand the user on another product's login page (BOFF-6701).
23
+ * - On the central bridge host, the cookie may legitimately point at a product
24
+ * origin that holds the session, so we allow the hop out to that product.
25
+ */
26
+ export declare function redirectToCookieRelayOrigin(returnTo: string): boolean;
17
27
  export declare function SSORelayPage(): import("react").JSX.Element;
@@ -3,40 +3,41 @@ import { useEffect as t } from "react";
3
3
  import { useSearchParams as n } from "react-router";
4
4
  import { jsx as r } from "react/jsx-runtime";
5
5
  import { mintSsoSessionTokens as i } from "@burdenoff/fe-libs/shared/utils";
6
- import { resolveGatewayUrls as a } from "@burdenoff/fe-libs/shared/config/gatewayUrls";
6
+ import { resolveAuthBridgeConfig as a } from "@burdenoff/fe-libs/shared/config";
7
+ import { resolveGatewayUrls as o } from "@burdenoff/fe-libs/shared/config/gatewayUrls";
7
8
  //#region src/auth/pages/SSORelayPage.tsx
8
- var o = "relayChain", s = "sso_failed", c = new Set(["localhost", "127.0.0.1"]), l = {
9
+ var s = "relayChain", c = "sso_failed", l = new Set(["localhost", "127.0.0.1"]), u = {
9
10
  "bf-sso": /(?:^|;\s*)bf-sso=([^;]*)/,
10
11
  "bf-sso-profile": /(?:^|;\s*)bf-sso-profile=([^;]*)/
11
12
  };
12
- function u() {
13
+ function d() {
13
14
  try {
14
15
  let e = window.location.hostname, t = e.endsWith(".local.burdenoff.com") ? ".local.burdenoff.com" : void 0;
15
- for (let n of ["bf-sso", "bf-sso-profile"]) document.cookie = `${n}=; path=/; max-age=0`, t && (document.cookie = `${n}=; path=/; domain=${t}; max-age=0`), e && !c.has(e) && (document.cookie = `${n}=; path=/; domain=${e}; max-age=0`);
16
+ for (let n of ["bf-sso", "bf-sso-profile"]) document.cookie = `${n}=; path=/; max-age=0`, t && (document.cookie = `${n}=; path=/; domain=${t}; max-age=0`), e && !l.has(e) && (document.cookie = `${n}=; path=/; domain=${e}; max-age=0`);
16
17
  } catch {}
17
18
  }
18
- function d() {
19
+ function f() {
19
20
  try {
20
- return (new URLSearchParams(window.location.search).get(o) || "").split("|").filter((e) => e.length > 0);
21
+ return (new URLSearchParams(window.location.search).get(s) || "").split("|").filter((e) => e.length > 0);
21
22
  } catch {
22
23
  return [];
23
24
  }
24
25
  }
25
- function f(t) {
26
+ function p(t) {
26
27
  try {
27
28
  let n = new URL(t, window.location.origin);
28
- return n.origin !== window.location.origin && !e(n) ? "/auth/login" : (n.searchParams.set(s, "1"), n.href);
29
+ return n.origin !== window.location.origin && !e(n) ? "/auth/login" : (n.searchParams.set(c, "1"), n.href);
29
30
  } catch {
30
31
  return "/auth/login?sso_failed=1";
31
32
  }
32
33
  }
33
- function p() {
34
- return m()?.id ?? null;
35
- }
36
34
  function m() {
35
+ return h()?.id ?? null;
36
+ }
37
+ function h() {
37
38
  try {
38
39
  for (let e of ["bf-sso", "bf-sso-profile"]) {
39
- let t = document.cookie.match(l[e]);
40
+ let t = document.cookie.match(u[e]);
40
41
  if (!t) continue;
41
42
  let n = JSON.parse(decodeURIComponent(t[1]));
42
43
  if (typeof n == "string") return {
@@ -53,36 +54,45 @@ function m() {
53
54
  }
54
55
  return null;
55
56
  }
56
- function h(t) {
57
+ function g() {
57
58
  try {
58
- let n = m();
59
+ return new URL(a().url).origin;
60
+ } catch {
61
+ return null;
62
+ }
63
+ }
64
+ function _(t) {
65
+ try {
66
+ let n = h();
59
67
  if (!n?.origin) return !1;
60
68
  let r = new URL(n.origin);
61
69
  if (!e(r) || r.origin === window.location.origin) return !1;
62
- let i = d();
63
- if (i.includes(r.origin) || i.length >= 3) return !1;
64
- let a = new URL("/auth/sso-relay", r.origin);
65
- return a.searchParams.set("returnTo", t), a.searchParams.set(o, Array.from(new Set([...i, window.location.origin])).join("|")), window.location.replace(a.href), !0;
70
+ let i = g();
71
+ if (i !== window.location.origin && r.origin !== i) return !1;
72
+ let a = f();
73
+ if (a.includes(r.origin) || a.length >= 3) return !1;
74
+ let o = new URL("/auth/sso-relay", r.origin);
75
+ return o.searchParams.set("returnTo", t), o.searchParams.set(s, Array.from(new Set([...a, window.location.origin])).join("|")), window.location.replace(o.href), !0;
66
76
  } catch {
67
77
  return !1;
68
78
  }
69
79
  }
70
- function g() {
80
+ function v() {
71
81
  return localStorage.getItem("bf-profiles");
72
82
  }
73
- function _() {
83
+ function y() {
74
84
  try {
75
- let e = g();
85
+ let e = v();
76
86
  return (e ? JSON.parse(e) : []).map((e) => e.id).filter((e) => typeof e == "string" && e.length > 0);
77
87
  } catch {
78
88
  return [];
79
89
  }
80
90
  }
81
- function v() {
91
+ function b() {
82
92
  let e = [
83
- p(),
93
+ m(),
84
94
  sessionStorage.getItem("bf-active-profile"),
85
- ..._()
95
+ ...y()
86
96
  ].filter((e) => typeof e == "string" && e.length > 0);
87
97
  for (let t of Array.from(new Set(e))) {
88
98
  let e = localStorage.getItem(`bf-p-${t}-tokens`), n = localStorage.getItem(`bf-p-${t}-user`);
@@ -90,84 +100,84 @@ function v() {
90
100
  }
91
101
  return null;
92
102
  }
93
- function y(e) {
103
+ function x(e) {
94
104
  try {
95
105
  localStorage.removeItem(`bf-p-${e}-tokens`), localStorage.removeItem(`bf-p-${e}-user`), localStorage.removeItem(`bf-p-${e}-workspace-token`), localStorage.removeItem(`bf-p-${e}-auth-storage`), sessionStorage.removeItem("bf-active-profile");
96
106
  } catch {}
97
107
  }
98
- function b(e) {
108
+ function S(e) {
99
109
  try {
100
110
  return JSON.parse(e);
101
111
  } catch {
102
112
  return null;
103
113
  }
104
114
  }
105
- function x() {
106
- let [o] = n();
115
+ function C() {
116
+ let [a] = n();
107
117
  return t(() => {
108
118
  let t = !1;
109
119
  return (async () => {
110
- let n = o.get("returnTo");
120
+ let n = a.get("returnTo");
111
121
  if (!n) {
112
122
  window.location.replace("/");
113
123
  return;
114
124
  }
115
- let r = v();
125
+ let r = b();
116
126
  if (!r) {
117
- if (h(n)) return;
118
- u(), window.location.replace(f(n));
127
+ if (_(n)) return;
128
+ d(), window.location.replace(p(n));
119
129
  return;
120
130
  }
121
- let s = localStorage.getItem(`bf-p-${r}-tokens`), c = localStorage.getItem(`bf-p-${r}-user`), l = g();
131
+ let s = localStorage.getItem(`bf-p-${r}-tokens`), c = localStorage.getItem(`bf-p-${r}-user`), l = v();
122
132
  if (!s || !c) {
123
- if (h(n)) return;
124
- u(), window.location.replace(f(n));
133
+ if (_(n)) return;
134
+ d(), window.location.replace(p(n));
125
135
  return;
126
136
  }
127
- let d;
137
+ let u;
128
138
  try {
129
- d = new URL(n);
139
+ u = new URL(n);
130
140
  } catch {
131
141
  window.location.replace(n);
132
142
  return;
133
143
  }
134
- if (!e(d)) {
144
+ if (!e(u)) {
135
145
  window.location.replace("/");
136
146
  return;
137
147
  }
138
- let p = b(s), m = null;
139
- if (p?.refreshToken) {
140
- let { globalBaseUrl: e } = a(), { tokens: o, denied: s } = await i(`${e}/global/graphql`, p.refreshToken);
148
+ let f = S(s), m = null;
149
+ if (f?.refreshToken) {
150
+ let { globalBaseUrl: e } = o(), { tokens: a, denied: s } = await i(`${e}/global/graphql`, f.refreshToken);
141
151
  if (t) return;
142
- if (o) m = JSON.stringify(o);
152
+ if (a) m = JSON.stringify(a);
143
153
  else if (s) {
144
- if (y(r), h(n)) return;
145
- u(), window.location.replace(f(n));
154
+ if (x(r), _(n)) return;
155
+ d(), window.location.replace(p(n));
146
156
  return;
147
157
  }
148
158
  }
149
- if (!m) if (p?.accessToken && typeof p.expiresAt == "number" && p.expiresAt - Date.now() > 6e4) m = s;
159
+ if (!m) if (f?.accessToken && typeof f.expiresAt == "number" && f.expiresAt - Date.now() > 6e4) m = s;
150
160
  else {
151
- if (y(r), h(n)) return;
152
- u(), window.location.replace(f(n));
161
+ if (x(r), _(n)) return;
162
+ d(), window.location.replace(p(n));
153
163
  return;
154
164
  }
155
- let _ = btoa(JSON.stringify({
165
+ let h = btoa(JSON.stringify({
156
166
  profileId: r,
157
167
  tokens: m,
158
168
  user: c,
159
169
  profiles: l
160
- })), x = d.pathname + d.search, S = `${d.origin}/auth/sso-callback?returnTo=${encodeURIComponent(x)}#sso=${_}`;
161
- window.location.replace(S);
170
+ })), g = u.pathname + u.search, y = `${u.origin}/auth/sso-callback?returnTo=${encodeURIComponent(g)}#sso=${h}`;
171
+ window.location.replace(y);
162
172
  })(), () => {
163
173
  t = !0;
164
174
  };
165
- }, [o]), /* @__PURE__ */ r("div", {
175
+ }, [a]), /* @__PURE__ */ r("div", {
166
176
  className: "flex items-center justify-center min-h-screen bg-bg-canvas",
167
177
  children: /* @__PURE__ */ r("div", { className: "animate-spin rounded-full size-8 border-2 border-action-primary-bg border-t-transparent" })
168
178
  });
169
179
  }
170
180
  //#endregion
171
- export { x as SSORelayPage };
181
+ export { C as SSORelayPage };
172
182
 
173
183
  //# sourceMappingURL=SSORelayPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SSORelayPage.js","names":[],"sources":["../../../src/auth/pages/SSORelayPage.tsx"],"sourcesContent":["/**\n * SSORelayPage — Cross-domain SSO token relay.\n *\n * This page is loaded on the ORIGIN where the user is logged in.\n * It reads tokens from localStorage and redirects to the TARGET domain's\n * /auth/sso-callback with the tokens in a URL fragment (not query param\n * for security — fragments are not sent to servers).\n *\n * Flow:\n * 1. User visits productA.com → not logged in → detects SSO cookie\n * 2. Redirect to productB.com/auth/sso-relay?returnTo=productA.com/dashboard\n * (productB is where the user IS logged in — identified by cookie)\n * 3. This page reads tokens from productB's localStorage\n * 4. Redirects to productA.com/auth/sso-callback#token=<base64-encoded-tokens>\n * 5. SSORelayCallbackPage on productA decodes and stores tokens, redirects to /dashboard\n */\n\nimport { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { resolveGatewayUrls } from \"@burdenoff/fe-libs/shared/config/gatewayUrls\";\nimport { mintSsoSessionTokens } from \"@burdenoff/fe-libs/shared/utils\";\nimport { isAllowedSsoOrigin } from \"../utils/ssoOrigins\";\n\nconst RELAY_CHAIN_PARAM = \"relayChain\";\nconst RELAY_FAILED_PARAM = \"sso_failed\";\nconst LOCAL_HOSTNAMES = new Set([\"localhost\", \"127.0.0.1\"]);\n\nconst SSO_COOKIE_PATTERNS = {\n \"bf-sso\": /(?:^|;\\s*)bf-sso=([^;]*)/,\n \"bf-sso-profile\": /(?:^|;\\s*)bf-sso-profile=([^;]*)/,\n} as const;\n\nfunction clearRelayCookies(): void {\n try {\n const hostname = window.location.hostname;\n const domain = hostname.endsWith(\".local.burdenoff.com\")\n ? \".local.burdenoff.com\"\n : undefined;\n for (const cookieName of [\"bf-sso\", \"bf-sso-profile\"] as const) {\n document.cookie = `${cookieName}=; path=/; max-age=0`;\n if (domain) {\n document.cookie = `${cookieName}=; path=/; domain=${domain}; max-age=0`;\n }\n if (hostname && !LOCAL_HOSTNAMES.has(hostname)) {\n document.cookie = `${cookieName}=; path=/; domain=${hostname}; max-age=0`;\n }\n }\n } catch {\n /* best effort */\n }\n}\n\nfunction getRelayChain(): string[] {\n try {\n return (\n new URLSearchParams(window.location.search).get(RELAY_CHAIN_PARAM) || \"\"\n )\n .split(\"|\")\n .filter((origin) => origin.length > 0);\n } catch {\n return [];\n }\n}\n\nfunction getFailedReturnTo(returnTo: string): string {\n try {\n const targetUrl = new URL(returnTo, window.location.origin);\n if (\n targetUrl.origin !== window.location.origin &&\n !isAllowedSsoOrigin(targetUrl)\n ) {\n return \"/auth/login\";\n }\n targetUrl.searchParams.set(RELAY_FAILED_PARAM, \"1\");\n return targetUrl.href;\n } catch {\n return \"/auth/login?sso_failed=1\";\n }\n}\n\nfunction readSsoCookieProfileId(): string | null {\n return readSsoCookieData()?.id ?? null;\n}\n\nfunction readSsoCookieData(): {\n id: string | null;\n origin: string | null;\n} | null {\n try {\n for (const cookieName of [\"bf-sso\", \"bf-sso-profile\"] as const) {\n const match = document.cookie.match(SSO_COOKIE_PATTERNS[cookieName]);\n if (!match) continue;\n\n const parsed = JSON.parse(decodeURIComponent(match[1])) as\n string | { id?: unknown; origin?: unknown };\n if (typeof parsed === \"string\") return { id: parsed, origin: null };\n if (typeof parsed.id === \"string\" && parsed.id.length > 0) {\n return {\n id: parsed.id,\n origin: typeof parsed.origin === \"string\" ? parsed.origin : null,\n };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction redirectToCookieRelayOrigin(returnTo: string): boolean {\n try {\n const ssoCookie = readSsoCookieData();\n if (!ssoCookie?.origin) return false;\n\n const relayUrl = new URL(ssoCookie.origin);\n if (!isAllowedSsoOrigin(relayUrl)) return false;\n if (relayUrl.origin === window.location.origin) return false;\n\n const relayChain = getRelayChain();\n if (relayChain.includes(relayUrl.origin) || relayChain.length >= 3) {\n return false;\n }\n\n const nextRelayUrl = new URL(\"/auth/sso-relay\", relayUrl.origin);\n nextRelayUrl.searchParams.set(\"returnTo\", returnTo);\n nextRelayUrl.searchParams.set(\n RELAY_CHAIN_PARAM,\n Array.from(new Set([...relayChain, window.location.origin])).join(\"|\"),\n );\n\n window.location.replace(nextRelayUrl.href);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction readProfilesRaw(): string | null {\n return localStorage.getItem(\"bf-profiles\");\n}\n\nfunction readProfileIds(): string[] {\n try {\n const profilesRaw = readProfilesRaw();\n const profiles = profilesRaw\n ? (JSON.parse(profilesRaw) as Array<{ id?: unknown }>)\n : [];\n return profiles\n .map((profile) => profile.id)\n .filter((id): id is string => typeof id === \"string\" && id.length > 0);\n } catch {\n return [];\n }\n}\n\nfunction resolveRelayProfileId(): string | null {\n const candidates = [\n readSsoCookieProfileId(),\n sessionStorage.getItem(\"bf-active-profile\"),\n ...readProfileIds(),\n ].filter((id): id is string => typeof id === \"string\" && id.length > 0);\n\n for (const profileId of Array.from(new Set(candidates))) {\n const tokensRaw = localStorage.getItem(`bf-p-${profileId}-tokens`);\n const userRaw = localStorage.getItem(`bf-p-${profileId}-user`);\n if (tokensRaw && userRaw) {\n sessionStorage.setItem(\"bf-active-profile\", profileId);\n return profileId;\n }\n }\n\n return null;\n}\n\n/** Wipe a dead/stale profile session from THIS origin's storage so future\n * relays stop offering it (BOFF-4463). */\nfunction clearStaleRelayProfile(profileId: string): void {\n try {\n localStorage.removeItem(`bf-p-${profileId}-tokens`);\n localStorage.removeItem(`bf-p-${profileId}-user`);\n localStorage.removeItem(`bf-p-${profileId}-workspace-token`);\n localStorage.removeItem(`bf-p-${profileId}-auth-storage`);\n sessionStorage.removeItem(\"bf-active-profile\");\n } catch {\n /* best effort */\n }\n}\n\nfunction parseStoredTokens(tokensRaw: string): {\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: number;\n} | null {\n try {\n return JSON.parse(tokensRaw) as {\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n } catch {\n return null;\n }\n}\n\nexport function SSORelayPage() {\n const [searchParams] = useSearchParams();\n\n useEffect(() => {\n let cancelled = false;\n\n const run = async () => {\n const returnTo = searchParams.get(\"returnTo\");\n if (!returnTo) {\n // No relay target — there is nothing to relay to. Do NOT strand the user\n // on a perpetual spinner (HM-016): send them to the app root, which routes\n // to the dashboard when authenticated or the landing/login when not.\n window.location.replace(\"/\");\n return;\n }\n\n // Read tokens from localStorage (this origin has them). Prefer the shared\n // SSO cookie profile because a relay often runs in a new tab with empty\n // sessionStorage and stale historical profiles in localStorage.\n const profileId = resolveRelayProfileId();\n if (!profileId) {\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n\n const tokensRaw = localStorage.getItem(`bf-p-${profileId}-tokens`);\n const userRaw = localStorage.getItem(`bf-p-${profileId}-user`);\n const profilesRaw = readProfilesRaw();\n\n if (!tokensRaw || !userRaw) {\n // No tokens — redirect back without them\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n\n // Validate the target BEFORE any server round-trip.\n let targetUrl: URL;\n try {\n targetUrl = new URL(returnTo);\n } catch {\n // returnTo is a relative path — can't do cross-domain relay\n window.location.replace(returnTo);\n return;\n }\n if (!isAllowedSsoOrigin(targetUrl)) {\n window.location.replace(\"/\");\n return;\n }\n\n // BOFF-4463: relay a FRESH, dedicated token lineage to the target\n // instead of copying this origin's pair. Copied pairs share one\n // rotating refresh token — the first origin to refresh revoked it for\n // every other origin, and this page previously relayed even EXPIRED\n // pairs, dropping the target into a session that force-logged-out\n // minutes later.\n const stored = parseStoredTokens(tokensRaw);\n let relayTokensJson: string | null = null;\n\n if (stored?.refreshToken) {\n const { globalBaseUrl } = resolveGatewayUrls();\n const { tokens: minted, denied } = await mintSsoSessionTokens(\n `${globalBaseUrl}/global/graphql`,\n stored.refreshToken,\n );\n if (cancelled) return;\n if (minted) {\n relayTokensJson = JSON.stringify(minted);\n } else if (denied) {\n // The session behind this stored pair is dead (revoked/rotated\n // away). Never hand it to the target — clear it and fail over.\n clearStaleRelayProfile(profileId);\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n }\n\n if (!relayTokensJson) {\n // Mint unavailable (rollout gap / transient). Legacy fallback is only\n // safe while the stored access token is actually still valid.\n const accessStillValid =\n !!stored?.accessToken &&\n typeof stored.expiresAt === \"number\" &&\n stored.expiresAt - Date.now() > 60_000;\n if (accessStillValid) {\n relayTokensJson = tokensRaw;\n } else {\n clearStaleRelayProfile(profileId);\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n }\n\n // Encode the auth state as a base64 URL fragment\n const payload = {\n profileId,\n tokens: relayTokensJson,\n user: userRaw,\n profiles: profilesRaw,\n };\n const encoded = btoa(JSON.stringify(payload));\n\n const returnPath = targetUrl.pathname + targetUrl.search;\n const callbackUrl = `${targetUrl.origin}/auth/sso-callback?returnTo=${encodeURIComponent(returnPath)}#sso=${encoded}`;\n\n // Redirect to the callback\n window.location.replace(callbackUrl);\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [searchParams]);\n\n return (\n <div className=\"flex items-center justify-center min-h-screen bg-bg-canvas\">\n <div className=\"animate-spin rounded-full size-8 border-2 border-action-primary-bg border-t-transparent\" />\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SSORelayPage.js","names":[],"sources":["../../../src/auth/pages/SSORelayPage.tsx"],"sourcesContent":["/**\n * SSORelayPage — Cross-domain SSO token relay.\n *\n * This page is loaded on the ORIGIN where the user is logged in.\n * It reads tokens from localStorage and redirects to the TARGET domain's\n * /auth/sso-callback with the tokens in a URL fragment (not query param\n * for security — fragments are not sent to servers).\n *\n * Flow:\n * 1. User visits productA.com → not logged in → detects SSO cookie\n * 2. Redirect to productB.com/auth/sso-relay?returnTo=productA.com/dashboard\n * (productB is where the user IS logged in — identified by cookie)\n * 3. This page reads tokens from productB's localStorage\n * 4. Redirects to productA.com/auth/sso-callback#token=<base64-encoded-tokens>\n * 5. SSORelayCallbackPage on productA decodes and stores tokens, redirects to /dashboard\n */\n\nimport { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { resolveAuthBridgeConfig } from \"@burdenoff/fe-libs/shared/config\";\nimport { resolveGatewayUrls } from \"@burdenoff/fe-libs/shared/config/gatewayUrls\";\nimport { mintSsoSessionTokens } from \"@burdenoff/fe-libs/shared/utils\";\nimport { isAllowedSsoOrigin } from \"../utils/ssoOrigins\";\n\nconst RELAY_CHAIN_PARAM = \"relayChain\";\nconst RELAY_FAILED_PARAM = \"sso_failed\";\nconst LOCAL_HOSTNAMES = new Set([\"localhost\", \"127.0.0.1\"]);\n\nconst SSO_COOKIE_PATTERNS = {\n \"bf-sso\": /(?:^|;\\s*)bf-sso=([^;]*)/,\n \"bf-sso-profile\": /(?:^|;\\s*)bf-sso-profile=([^;]*)/,\n} as const;\n\nfunction clearRelayCookies(): void {\n try {\n const hostname = window.location.hostname;\n const domain = hostname.endsWith(\".local.burdenoff.com\")\n ? \".local.burdenoff.com\"\n : undefined;\n for (const cookieName of [\"bf-sso\", \"bf-sso-profile\"] as const) {\n document.cookie = `${cookieName}=; path=/; max-age=0`;\n if (domain) {\n document.cookie = `${cookieName}=; path=/; domain=${domain}; max-age=0`;\n }\n if (hostname && !LOCAL_HOSTNAMES.has(hostname)) {\n document.cookie = `${cookieName}=; path=/; domain=${hostname}; max-age=0`;\n }\n }\n } catch {\n /* best effort */\n }\n}\n\nfunction getRelayChain(): string[] {\n try {\n return (\n new URLSearchParams(window.location.search).get(RELAY_CHAIN_PARAM) || \"\"\n )\n .split(\"|\")\n .filter((origin) => origin.length > 0);\n } catch {\n return [];\n }\n}\n\nfunction getFailedReturnTo(returnTo: string): string {\n try {\n const targetUrl = new URL(returnTo, window.location.origin);\n if (\n targetUrl.origin !== window.location.origin &&\n !isAllowedSsoOrigin(targetUrl)\n ) {\n return \"/auth/login\";\n }\n targetUrl.searchParams.set(RELAY_FAILED_PARAM, \"1\");\n return targetUrl.href;\n } catch {\n return \"/auth/login?sso_failed=1\";\n }\n}\n\nfunction readSsoCookieProfileId(): string | null {\n return readSsoCookieData()?.id ?? null;\n}\n\nfunction readSsoCookieData(): {\n id: string | null;\n origin: string | null;\n} | null {\n try {\n for (const cookieName of [\"bf-sso\", \"bf-sso-profile\"] as const) {\n const match = document.cookie.match(SSO_COOKIE_PATTERNS[cookieName]);\n if (!match) continue;\n\n const parsed = JSON.parse(decodeURIComponent(match[1])) as\n | string\n | { id?: unknown; origin?: unknown };\n if (typeof parsed === \"string\") return { id: parsed, origin: null };\n if (typeof parsed.id === \"string\" && parsed.id.length > 0) {\n return {\n id: parsed.id,\n origin: typeof parsed.origin === \"string\" ? parsed.origin : null,\n };\n }\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction resolveBridgeOrigin(): string | null {\n try {\n return new URL(resolveAuthBridgeConfig().url).origin;\n } catch {\n return null;\n }\n}\n\n/**\n * Follow the SSO cookie's origin hint only when it is safe to do so.\n *\n * - On a product app shell, the only safe cross-origin redirect is to the\n * central bridge host. A stale cookie pointing at a different product must\n * not strand the user on another product's login page (BOFF-6701).\n * - On the central bridge host, the cookie may legitimately point at a product\n * origin that holds the session, so we allow the hop out to that product.\n */\nexport function redirectToCookieRelayOrigin(returnTo: string): boolean {\n try {\n const ssoCookie = readSsoCookieData();\n if (!ssoCookie?.origin) return false;\n\n const relayUrl = new URL(ssoCookie.origin);\n if (!isAllowedSsoOrigin(relayUrl)) return false;\n if (relayUrl.origin === window.location.origin) return false;\n\n const bridgeOrigin = resolveBridgeOrigin();\n const currentOrigin = window.location.origin;\n const isBridgeHost = bridgeOrigin === currentOrigin;\n if (!isBridgeHost && relayUrl.origin !== bridgeOrigin) {\n return false;\n }\n\n const relayChain = getRelayChain();\n if (relayChain.includes(relayUrl.origin) || relayChain.length >= 3) {\n return false;\n }\n\n const nextRelayUrl = new URL(\"/auth/sso-relay\", relayUrl.origin);\n nextRelayUrl.searchParams.set(\"returnTo\", returnTo);\n nextRelayUrl.searchParams.set(\n RELAY_CHAIN_PARAM,\n Array.from(new Set([...relayChain, window.location.origin])).join(\"|\"),\n );\n\n window.location.replace(nextRelayUrl.href);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction readProfilesRaw(): string | null {\n return localStorage.getItem(\"bf-profiles\");\n}\n\nfunction readProfileIds(): string[] {\n try {\n const profilesRaw = readProfilesRaw();\n const profiles = profilesRaw\n ? (JSON.parse(profilesRaw) as Array<{ id?: unknown }>)\n : [];\n return profiles\n .map((profile) => profile.id)\n .filter((id): id is string => typeof id === \"string\" && id.length > 0);\n } catch {\n return [];\n }\n}\n\nfunction resolveRelayProfileId(): string | null {\n const candidates = [\n readSsoCookieProfileId(),\n sessionStorage.getItem(\"bf-active-profile\"),\n ...readProfileIds(),\n ].filter((id): id is string => typeof id === \"string\" && id.length > 0);\n\n for (const profileId of Array.from(new Set(candidates))) {\n const tokensRaw = localStorage.getItem(`bf-p-${profileId}-tokens`);\n const userRaw = localStorage.getItem(`bf-p-${profileId}-user`);\n if (tokensRaw && userRaw) {\n sessionStorage.setItem(\"bf-active-profile\", profileId);\n return profileId;\n }\n }\n\n return null;\n}\n\n/** Wipe a dead/stale profile session from THIS origin's storage so future\n * relays stop offering it (BOFF-4463). */\nfunction clearStaleRelayProfile(profileId: string): void {\n try {\n localStorage.removeItem(`bf-p-${profileId}-tokens`);\n localStorage.removeItem(`bf-p-${profileId}-user`);\n localStorage.removeItem(`bf-p-${profileId}-workspace-token`);\n localStorage.removeItem(`bf-p-${profileId}-auth-storage`);\n sessionStorage.removeItem(\"bf-active-profile\");\n } catch {\n /* best effort */\n }\n}\n\nfunction parseStoredTokens(tokensRaw: string): {\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: number;\n} | null {\n try {\n return JSON.parse(tokensRaw) as {\n accessToken?: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n } catch {\n return null;\n }\n}\n\nexport function SSORelayPage() {\n const [searchParams] = useSearchParams();\n\n useEffect(() => {\n let cancelled = false;\n\n const run = async () => {\n const returnTo = searchParams.get(\"returnTo\");\n if (!returnTo) {\n // No relay target — there is nothing to relay to. Do NOT strand the user\n // on a perpetual spinner (HM-016): send them to the app root, which routes\n // to the dashboard when authenticated or the landing/login when not.\n window.location.replace(\"/\");\n return;\n }\n\n // Read tokens from localStorage (this origin has them). Prefer the shared\n // SSO cookie profile because a relay often runs in a new tab with empty\n // sessionStorage and stale historical profiles in localStorage.\n const profileId = resolveRelayProfileId();\n if (!profileId) {\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n\n const tokensRaw = localStorage.getItem(`bf-p-${profileId}-tokens`);\n const userRaw = localStorage.getItem(`bf-p-${profileId}-user`);\n const profilesRaw = readProfilesRaw();\n\n if (!tokensRaw || !userRaw) {\n // No tokens — redirect back without them\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n\n // Validate the target BEFORE any server round-trip.\n let targetUrl: URL;\n try {\n targetUrl = new URL(returnTo);\n } catch {\n // returnTo is a relative path — can't do cross-domain relay\n window.location.replace(returnTo);\n return;\n }\n if (!isAllowedSsoOrigin(targetUrl)) {\n window.location.replace(\"/\");\n return;\n }\n\n // BOFF-4463: relay a FRESH, dedicated token lineage to the target\n // instead of copying this origin's pair. Copied pairs share one\n // rotating refresh token — the first origin to refresh revoked it for\n // every other origin, and this page previously relayed even EXPIRED\n // pairs, dropping the target into a session that force-logged-out\n // minutes later.\n const stored = parseStoredTokens(tokensRaw);\n let relayTokensJson: string | null = null;\n\n if (stored?.refreshToken) {\n const { globalBaseUrl } = resolveGatewayUrls();\n const { tokens: minted, denied } = await mintSsoSessionTokens(\n `${globalBaseUrl}/global/graphql`,\n stored.refreshToken,\n );\n if (cancelled) return;\n if (minted) {\n relayTokensJson = JSON.stringify(minted);\n } else if (denied) {\n // The session behind this stored pair is dead (revoked/rotated\n // away). Never hand it to the target — clear it and fail over.\n clearStaleRelayProfile(profileId);\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n }\n\n if (!relayTokensJson) {\n // Mint unavailable (rollout gap / transient). Legacy fallback is only\n // safe while the stored access token is actually still valid.\n const accessStillValid =\n !!stored?.accessToken &&\n typeof stored.expiresAt === \"number\" &&\n stored.expiresAt - Date.now() > 60_000;\n if (accessStillValid) {\n relayTokensJson = tokensRaw;\n } else {\n clearStaleRelayProfile(profileId);\n if (redirectToCookieRelayOrigin(returnTo)) return;\n clearRelayCookies();\n window.location.replace(getFailedReturnTo(returnTo));\n return;\n }\n }\n\n // Encode the auth state as a base64 URL fragment\n const payload = {\n profileId,\n tokens: relayTokensJson,\n user: userRaw,\n profiles: profilesRaw,\n };\n const encoded = btoa(JSON.stringify(payload));\n\n const returnPath = targetUrl.pathname + targetUrl.search;\n const callbackUrl = `${targetUrl.origin}/auth/sso-callback?returnTo=${encodeURIComponent(returnPath)}#sso=${encoded}`;\n\n // Redirect to the callback\n window.location.replace(callbackUrl);\n };\n\n void run();\n return () => {\n cancelled = true;\n };\n }, [searchParams]);\n\n return (\n <div className=\"flex items-center justify-center min-h-screen bg-bg-canvas\">\n <div className=\"animate-spin rounded-full size-8 border-2 border-action-primary-bg border-t-transparent\" />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as Types from './global-types';
2
2
  import * as Apollo from '@apollo/client';
3
- import * as ApolloReactHooks from '@apollo/client/react';
3
+ import * as ApolloReactHooks from '@burdenoff/fe-libs/shared/graphql';
4
4
  export type AuditLogEntry_AuthAuditLogFragment = {
5
5
  __typename?: 'AuthAuditLog';
6
6
  id: string;
@@ -2585,8 +2585,8 @@ export declare const MyApiKeysDocument: Apollo.DocumentNode;
2585
2585
  * },
2586
2586
  * });
2587
2587
  */
2588
- export declare function useMyApiKeysQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.useQuery.Result<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables, "empty" | "complete" | "streaming", Types.MyApiKeysQueryVariables>;
2589
- export declare function useMyApiKeysLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables, "empty" | "complete" | "streaming">;
2588
+ export declare function useMyApiKeysQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.useQuery.Result<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.MyApiKeysQueryVariables>;
2589
+ export declare function useMyApiKeysLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2590
2590
  export declare function useMyApiKeysSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>;
2591
2591
  export declare function useMyApiKeysSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.MyApiKeysQuery, Types.MyApiKeysQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.MyApiKeysQuery | undefined, Types.MyApiKeysQueryVariables>;
2592
2592
  export type MyApiKeysQueryHookResult = ReturnType<typeof useMyApiKeysQuery>;
@@ -2609,8 +2609,8 @@ export declare const CurrentUserAppsDocument: Apollo.DocumentNode;
2609
2609
  * },
2610
2610
  * });
2611
2611
  */
2612
- export declare function useCurrentUserAppsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables, "empty" | "complete" | "streaming", Types.CurrentUserAppsQueryVariables>;
2613
- export declare function useCurrentUserAppsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables, "empty" | "complete" | "streaming">;
2612
+ export declare function useCurrentUserAppsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.CurrentUserAppsQueryVariables>;
2613
+ export declare function useCurrentUserAppsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2614
2614
  export declare function useCurrentUserAppsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>;
2615
2615
  export declare function useCurrentUserAppsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserAppsQuery, Types.CurrentUserAppsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserAppsQuery | undefined, Types.CurrentUserAppsQueryVariables>;
2616
2616
  export type CurrentUserAppsQueryHookResult = ReturnType<typeof useCurrentUserAppsQuery>;
@@ -2639,8 +2639,8 @@ export declare function useGetAppQuery(baseOptions: ApolloReactHooks.QueryHookOp
2639
2639
  skip?: boolean;
2640
2640
  } | {
2641
2641
  skip: boolean;
2642
- })): ApolloReactHooks.useQuery.Result<Types.GetAppQuery, Types.GetAppQueryVariables, "empty" | "complete" | "streaming", Types.GetAppQueryVariables>;
2643
- export declare function useGetAppLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetAppQuery, Types.GetAppQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetAppQuery, Types.GetAppQueryVariables, "empty" | "complete" | "streaming">;
2642
+ })): ApolloReactHooks.useQuery.Result<Types.GetAppQuery, Types.GetAppQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.GetAppQueryVariables>;
2643
+ export declare function useGetAppLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetAppQuery, Types.GetAppQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetAppQuery, Types.GetAppQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2644
2644
  export declare function useGetAppSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetAppQuery, Types.GetAppQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetAppQuery, Types.GetAppQueryVariables>;
2645
2645
  export declare function useGetAppSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetAppQuery, Types.GetAppQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetAppQuery | undefined, Types.GetAppQueryVariables>;
2646
2646
  export type GetAppQueryHookResult = ReturnType<typeof useGetAppQuery>;
@@ -2663,8 +2663,8 @@ export declare const AppsActingAsCurrentUserDocument: Apollo.DocumentNode;
2663
2663
  * },
2664
2664
  * });
2665
2665
  */
2666
- export declare function useAppsActingAsCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables, "empty" | "complete" | "streaming", Types.AppsActingAsCurrentUserQueryVariables>;
2667
- export declare function useAppsActingAsCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables, "empty" | "complete" | "streaming">;
2666
+ export declare function useAppsActingAsCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.AppsActingAsCurrentUserQueryVariables>;
2667
+ export declare function useAppsActingAsCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2668
2668
  export declare function useAppsActingAsCurrentUserSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>;
2669
2669
  export declare function useAppsActingAsCurrentUserSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.AppsActingAsCurrentUserQuery, Types.AppsActingAsCurrentUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AppsActingAsCurrentUserQuery | undefined, Types.AppsActingAsCurrentUserQueryVariables>;
2670
2670
  export type AppsActingAsCurrentUserQueryHookResult = ReturnType<typeof useAppsActingAsCurrentUserQuery>;
@@ -2688,8 +2688,8 @@ export declare const AuthAuditLogsDocument: Apollo.DocumentNode;
2688
2688
  * },
2689
2689
  * });
2690
2690
  */
2691
- export declare function useAuthAuditLogsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables, "empty" | "complete" | "streaming", Types.AuthAuditLogsQueryVariables>;
2692
- export declare function useAuthAuditLogsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables, "empty" | "complete" | "streaming">;
2691
+ export declare function useAuthAuditLogsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.AuthAuditLogsQueryVariables>;
2692
+ export declare function useAuthAuditLogsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2693
2693
  export declare function useAuthAuditLogsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>;
2694
2694
  export declare function useAuthAuditLogsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthAuditLogsQuery, Types.AuthAuditLogsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthAuditLogsQuery | undefined, Types.AuthAuditLogsQueryVariables>;
2695
2695
  export type AuthAuditLogsQueryHookResult = ReturnType<typeof useAuthAuditLogsQuery>;
@@ -2712,8 +2712,8 @@ export declare const CurrentUserDocument: Apollo.DocumentNode;
2712
2712
  * },
2713
2713
  * });
2714
2714
  */
2715
- export declare function useCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserQuery, Types.CurrentUserQueryVariables, "empty" | "complete" | "streaming", Types.CurrentUserQueryVariables>;
2716
- export declare function useCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserQuery, Types.CurrentUserQueryVariables, "empty" | "complete" | "streaming">;
2715
+ export declare function useCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserQuery, Types.CurrentUserQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.CurrentUserQueryVariables>;
2716
+ export declare function useCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserQuery, Types.CurrentUserQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2717
2717
  export declare function useCurrentUserSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>;
2718
2718
  export declare function useCurrentUserSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserQuery, Types.CurrentUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserQuery | undefined, Types.CurrentUserQueryVariables>;
2719
2719
  export type CurrentUserQueryHookResult = ReturnType<typeof useCurrentUserQuery>;
@@ -2736,8 +2736,8 @@ export declare const CurrentUserDelegationsDocument: Apollo.DocumentNode;
2736
2736
  * },
2737
2737
  * });
2738
2738
  */
2739
- export declare function useCurrentUserDelegationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables, "empty" | "complete" | "streaming", Types.CurrentUserDelegationsQueryVariables>;
2740
- export declare function useCurrentUserDelegationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables, "empty" | "complete" | "streaming">;
2739
+ export declare function useCurrentUserDelegationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.CurrentUserDelegationsQueryVariables>;
2740
+ export declare function useCurrentUserDelegationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2741
2741
  export declare function useCurrentUserDelegationsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>;
2742
2742
  export declare function useCurrentUserDelegationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserDelegationsQuery, Types.CurrentUserDelegationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserDelegationsQuery | undefined, Types.CurrentUserDelegationsQueryVariables>;
2743
2743
  export type CurrentUserDelegationsQueryHookResult = ReturnType<typeof useCurrentUserDelegationsQuery>;
@@ -2760,8 +2760,8 @@ export declare const CurrentUserGrantedDelegationsDocument: Apollo.DocumentNode;
2760
2760
  * },
2761
2761
  * });
2762
2762
  */
2763
- export declare function useCurrentUserGrantedDelegationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables, "empty" | "complete" | "streaming", Types.CurrentUserGrantedDelegationsQueryVariables>;
2764
- export declare function useCurrentUserGrantedDelegationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables, "empty" | "complete" | "streaming">;
2763
+ export declare function useCurrentUserGrantedDelegationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.CurrentUserGrantedDelegationsQueryVariables>;
2764
+ export declare function useCurrentUserGrantedDelegationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2765
2765
  export declare function useCurrentUserGrantedDelegationsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>;
2766
2766
  export declare function useCurrentUserGrantedDelegationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CurrentUserGrantedDelegationsQuery, Types.CurrentUserGrantedDelegationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CurrentUserGrantedDelegationsQuery | undefined, Types.CurrentUserGrantedDelegationsQueryVariables>;
2767
2767
  export type CurrentUserGrantedDelegationsQueryHookResult = ReturnType<typeof useCurrentUserGrantedDelegationsQuery>;
@@ -2785,8 +2785,8 @@ export declare const AvailableAuthMethodsDocument: Apollo.DocumentNode;
2785
2785
  * },
2786
2786
  * });
2787
2787
  */
2788
- export declare function useAvailableAuthMethodsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables, "empty" | "complete" | "streaming", Types.AvailableAuthMethodsQueryVariables>;
2789
- export declare function useAvailableAuthMethodsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables, "empty" | "complete" | "streaming">;
2788
+ export declare function useAvailableAuthMethodsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.AvailableAuthMethodsQueryVariables>;
2789
+ export declare function useAvailableAuthMethodsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2790
2790
  export declare function useAvailableAuthMethodsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>;
2791
2791
  export declare function useAvailableAuthMethodsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.AvailableAuthMethodsQuery, Types.AvailableAuthMethodsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AvailableAuthMethodsQuery | undefined, Types.AvailableAuthMethodsQueryVariables>;
2792
2792
  export type AvailableAuthMethodsQueryHookResult = ReturnType<typeof useAvailableAuthMethodsQuery>;
@@ -2816,8 +2816,8 @@ export declare function useAuthMethodConfigQuery(baseOptions: ApolloReactHooks.Q
2816
2816
  skip?: boolean;
2817
2817
  } | {
2818
2818
  skip: boolean;
2819
- })): ApolloReactHooks.useQuery.Result<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables, "empty" | "complete" | "streaming", Types.AuthMethodConfigQueryVariables>;
2820
- export declare function useAuthMethodConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables, "empty" | "complete" | "streaming">;
2819
+ })): ApolloReactHooks.useQuery.Result<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.AuthMethodConfigQueryVariables>;
2820
+ export declare function useAuthMethodConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2821
2821
  export declare function useAuthMethodConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables>;
2822
2822
  export declare function useAuthMethodConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthMethodConfigQuery, Types.AuthMethodConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthMethodConfigQuery | undefined, Types.AuthMethodConfigQueryVariables>;
2823
2823
  export type AuthMethodConfigQueryHookResult = ReturnType<typeof useAuthMethodConfigQuery>;
@@ -2840,8 +2840,8 @@ export declare const AuthStrategiesHealthDocument: Apollo.DocumentNode;
2840
2840
  * },
2841
2841
  * });
2842
2842
  */
2843
- export declare function useAuthStrategiesHealthQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables, "empty" | "complete" | "streaming", Types.AuthStrategiesHealthQueryVariables>;
2844
- export declare function useAuthStrategiesHealthLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables, "empty" | "complete" | "streaming">;
2843
+ export declare function useAuthStrategiesHealthQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.useQuery.Result<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.AuthStrategiesHealthQueryVariables>;
2844
+ export declare function useAuthStrategiesHealthLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2845
2845
  export declare function useAuthStrategiesHealthSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>;
2846
2846
  export declare function useAuthStrategiesHealthSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.AuthStrategiesHealthQuery, Types.AuthStrategiesHealthQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.AuthStrategiesHealthQuery | undefined, Types.AuthStrategiesHealthQueryVariables>;
2847
2847
  export type AuthStrategiesHealthQueryHookResult = ReturnType<typeof useAuthStrategiesHealthQuery>;
@@ -2865,8 +2865,8 @@ export declare const ActiveSessionsDocument: Apollo.DocumentNode;
2865
2865
  * },
2866
2866
  * });
2867
2867
  */
2868
- export declare function useActiveSessionsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables, "empty" | "complete" | "streaming", Types.ActiveSessionsQueryVariables>;
2869
- export declare function useActiveSessionsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables, "empty" | "complete" | "streaming">;
2868
+ export declare function useActiveSessionsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.useQuery.Result<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.ActiveSessionsQueryVariables>;
2869
+ export declare function useActiveSessionsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2870
2870
  export declare function useActiveSessionsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>;
2871
2871
  export declare function useActiveSessionsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.ActiveSessionsQuery, Types.ActiveSessionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.ActiveSessionsQuery | undefined, Types.ActiveSessionsQueryVariables>;
2872
2872
  export type ActiveSessionsQueryHookResult = ReturnType<typeof useActiveSessionsQuery>;
@@ -2895,8 +2895,8 @@ export declare function useGetSsoConfigQuery(baseOptions: ApolloReactHooks.Query
2895
2895
  skip?: boolean;
2896
2896
  } | {
2897
2897
  skip: boolean;
2898
- })): ApolloReactHooks.useQuery.Result<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables, "empty" | "complete" | "streaming", Types.GetSsoConfigQueryVariables>;
2899
- export declare function useGetSsoConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables, "empty" | "complete" | "streaming">;
2898
+ })): ApolloReactHooks.useQuery.Result<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.GetSsoConfigQueryVariables>;
2899
+ export declare function useGetSsoConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2900
2900
  export declare function useGetSsoConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables>;
2901
2901
  export declare function useGetSsoConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetSsoConfigQuery, Types.GetSsoConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetSsoConfigQuery | undefined, Types.GetSsoConfigQueryVariables>;
2902
2902
  export type GetSsoConfigQueryHookResult = ReturnType<typeof useGetSsoConfigQuery>;
@@ -2919,8 +2919,8 @@ export declare const GetOidcConfigDocument: Apollo.DocumentNode;
2919
2919
  * },
2920
2920
  * });
2921
2921
  */
2922
- export declare function useGetOidcConfigQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.useQuery.Result<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables, "empty" | "complete" | "streaming", Types.GetOidcConfigQueryVariables>;
2923
- export declare function useGetOidcConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables, "empty" | "complete" | "streaming">;
2922
+ export declare function useGetOidcConfigQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.useQuery.Result<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.GetOidcConfigQueryVariables>;
2923
+ export declare function useGetOidcConfigLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2924
2924
  export declare function useGetOidcConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>;
2925
2925
  export declare function useGetOidcConfigSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetOidcConfigQuery, Types.GetOidcConfigQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetOidcConfigQuery | undefined, Types.GetOidcConfigQueryVariables>;
2926
2926
  export type GetOidcConfigQueryHookResult = ReturnType<typeof useGetOidcConfigQuery>;
@@ -2943,8 +2943,8 @@ export declare const TokenInfoDocument: Apollo.DocumentNode;
2943
2943
  * },
2944
2944
  * });
2945
2945
  */
2946
- export declare function useTokenInfoQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.useQuery.Result<Types.TokenInfoQuery, Types.TokenInfoQueryVariables, "empty" | "complete" | "streaming", Types.TokenInfoQueryVariables>;
2947
- export declare function useTokenInfoLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.TokenInfoQuery, Types.TokenInfoQueryVariables, "empty" | "complete" | "streaming">;
2946
+ export declare function useTokenInfoQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.useQuery.Result<Types.TokenInfoQuery, Types.TokenInfoQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.TokenInfoQueryVariables>;
2947
+ export declare function useTokenInfoLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.TokenInfoQuery, Types.TokenInfoQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2948
2948
  export declare function useTokenInfoSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>;
2949
2949
  export declare function useTokenInfoSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.TokenInfoQuery, Types.TokenInfoQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.TokenInfoQuery | undefined, Types.TokenInfoQueryVariables>;
2950
2950
  export type TokenInfoQueryHookResult = ReturnType<typeof useTokenInfoQuery>;
@@ -2973,8 +2973,8 @@ export declare function useGetUserQuery(baseOptions: ApolloReactHooks.QueryHookO
2973
2973
  skip?: boolean;
2974
2974
  } | {
2975
2975
  skip: boolean;
2976
- })): ApolloReactHooks.useQuery.Result<Types.GetUserQuery, Types.GetUserQueryVariables, "empty" | "complete" | "streaming", Types.GetUserQueryVariables>;
2977
- export declare function useGetUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetUserQuery, Types.GetUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetUserQuery, Types.GetUserQueryVariables, "empty" | "complete" | "streaming">;
2976
+ })): ApolloReactHooks.useQuery.Result<Types.GetUserQuery, Types.GetUserQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.GetUserQueryVariables>;
2977
+ export declare function useGetUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetUserQuery, Types.GetUserQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.GetUserQuery, Types.GetUserQueryVariables, "empty" | "complete" | "streaming" | "partial">;
2978
2978
  export declare function useGetUserSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetUserQuery, Types.GetUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetUserQuery, Types.GetUserQueryVariables>;
2979
2979
  export declare function useGetUserSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetUserQuery, Types.GetUserQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetUserQuery | undefined, Types.GetUserQueryVariables>;
2980
2980
  export type GetUserQueryHookResult = ReturnType<typeof useGetUserQuery>;
@@ -2999,8 +2999,8 @@ export declare const ListUsersDocument: Apollo.DocumentNode;
2999
2999
  * },
3000
3000
  * });
3001
3001
  */
3002
- export declare function useListUsersQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.useQuery.Result<Types.ListUsersQuery, Types.ListUsersQueryVariables, "empty" | "complete" | "streaming", Types.ListUsersQueryVariables>;
3003
- export declare function useListUsersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.ListUsersQuery, Types.ListUsersQueryVariables, "empty" | "complete" | "streaming">;
3002
+ export declare function useListUsersQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.useQuery.Result<Types.ListUsersQuery, Types.ListUsersQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.ListUsersQueryVariables>;
3003
+ export declare function useListUsersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.ListUsersQuery, Types.ListUsersQueryVariables, "empty" | "complete" | "streaming" | "partial">;
3004
3004
  export declare function useListUsersSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.ListUsersQuery, Types.ListUsersQueryVariables>;
3005
3005
  export declare function useListUsersSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.ListUsersQuery, Types.ListUsersQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.ListUsersQuery | undefined, Types.ListUsersQueryVariables>;
3006
3006
  export type ListUsersQueryHookResult = ReturnType<typeof useListUsersQuery>;
@@ -3023,8 +3023,8 @@ export declare const MyWorkspacesDocument: Apollo.DocumentNode;
3023
3023
  * },
3024
3024
  * });
3025
3025
  */
3026
- export declare function useMyWorkspacesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.useQuery.Result<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables, "empty" | "complete" | "streaming", Types.MyWorkspacesQueryVariables>;
3027
- export declare function useMyWorkspacesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables, "empty" | "complete" | "streaming">;
3026
+ export declare function useMyWorkspacesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.useQuery.Result<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.MyWorkspacesQueryVariables>;
3027
+ export declare function useMyWorkspacesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables, "empty" | "complete" | "streaming" | "partial">;
3028
3028
  export declare function useMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>;
3029
3029
  export declare function useMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.MyWorkspacesQuery, Types.MyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.MyWorkspacesQuery | undefined, Types.MyWorkspacesQueryVariables>;
3030
3030
  export type MyWorkspacesQueryHookResult = ReturnType<typeof useMyWorkspacesQuery>;
@@ -3053,8 +3053,8 @@ export declare function useWorkspaceQuery(baseOptions: ApolloReactHooks.QueryHoo
3053
3053
  skip?: boolean;
3054
3054
  } | {
3055
3055
  skip: boolean;
3056
- })): ApolloReactHooks.useQuery.Result<Types.WorkspaceQuery, Types.WorkspaceQueryVariables, "empty" | "complete" | "streaming", Types.WorkspaceQueryVariables>;
3057
- export declare function useWorkspaceLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.WorkspaceQuery, Types.WorkspaceQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.WorkspaceQuery, Types.WorkspaceQueryVariables, "empty" | "complete" | "streaming">;
3056
+ })): ApolloReactHooks.useQuery.Result<Types.WorkspaceQuery, Types.WorkspaceQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.WorkspaceQueryVariables>;
3057
+ export declare function useWorkspaceLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.WorkspaceQuery, Types.WorkspaceQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.WorkspaceQuery, Types.WorkspaceQueryVariables, "empty" | "complete" | "streaming" | "partial">;
3058
3058
  export declare function useWorkspaceSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.WorkspaceQuery, Types.WorkspaceQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.WorkspaceQuery, Types.WorkspaceQueryVariables>;
3059
3059
  export declare function useWorkspaceSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.WorkspaceQuery, Types.WorkspaceQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.WorkspaceQuery | undefined, Types.WorkspaceQueryVariables>;
3060
3060
  export type WorkspaceQueryHookResult = ReturnType<typeof useWorkspaceQuery>;
@@ -3085,8 +3085,8 @@ export declare function useWorkspaceMembersQuery(baseOptions: ApolloReactHooks.Q
3085
3085
  skip?: boolean;
3086
3086
  } | {
3087
3087
  skip: boolean;
3088
- })): ApolloReactHooks.useQuery.Result<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables, "empty" | "complete" | "streaming", Types.WorkspaceMembersQueryVariables>;
3089
- export declare function useWorkspaceMembersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables, "empty" | "complete" | "streaming">;
3088
+ })): ApolloReactHooks.useQuery.Result<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables, "empty" | "complete" | "streaming" | "partial", Types.WorkspaceMembersQueryVariables>;
3089
+ export declare function useWorkspaceMembersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables, "empty" | "complete" | "streaming" | "partial">;
3090
3090
  export declare function useWorkspaceMembersSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables>;
3091
3091
  export declare function useWorkspaceMembersSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.WorkspaceMembersQuery, Types.WorkspaceMembersQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.WorkspaceMembersQuery | undefined, Types.WorkspaceMembersQueryVariables>;
3092
3092
  export type WorkspaceMembersQueryHookResult = ReturnType<typeof useWorkspaceMembersQuery>;