@hexclave/next 1.0.125 → 1.0.127

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 (161) hide show
  1. package/dist/{admin-app-impl-Bxad6t8m.d.ts → admin-app-impl-CjCeXtJd.d.ts} +29 -13
  2. package/dist/admin-app-impl-CjCeXtJd.d.ts.map +1 -0
  3. package/dist/clickmap/clickmap-core.d.ts +1 -1
  4. package/dist/clickmap/index.d.ts +1 -1
  5. package/dist/{client-app-B0cTytS5.d.ts → client-app-jAjrgwSh.d.ts} +34 -6
  6. package/dist/client-app-jAjrgwSh.d.ts.map +1 -0
  7. package/dist/{common-B2gkWlXX.d.ts → common-BjAI7WW6.d.ts} +15 -3
  8. package/dist/common-BjAI7WW6.d.ts.map +1 -0
  9. package/dist/{common-BK_sydxF.d.ts → common-DWfeER0s.d.ts} +2 -2
  10. package/dist/{common-BK_sydxF.d.ts.map → common-DWfeER0s.d.ts.map} +1 -1
  11. package/dist/components/message-cards/predefined-message-card.js +4 -2
  12. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  13. package/dist/components/selected-team-switcher.d.ts +1 -1
  14. package/dist/components/team-icon.d.ts +1 -1
  15. package/dist/components/team-switcher.d.ts +1 -1
  16. package/dist/components/user-button.js +9 -9
  17. package/dist/components/user-button.js.map +1 -1
  18. package/dist/components/user-button.test.d.ts +1 -0
  19. package/dist/components/user-button.test.js +71 -0
  20. package/dist/components/user-button.test.js.map +1 -0
  21. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  22. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  23. package/dist/components-page/account-settings/settings/sign-out-section.d.ts +1 -1
  24. package/dist/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  25. package/dist/components-page/account-settings/settings/sign-out-section.js +4 -1
  26. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  27. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  28. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  29. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  30. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  31. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  32. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  33. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  34. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  35. package/dist/components-page/hexclave-handler-client.d.ts +1 -1
  36. package/dist/components-page/hexclave-handler.d.ts +1 -1
  37. package/dist/components-page/onboarding.js +15 -13
  38. package/dist/components-page/onboarding.js.map +1 -1
  39. package/dist/components-page/onboarding.test.js +2 -1
  40. package/dist/components-page/onboarding.test.js.map +1 -1
  41. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  42. package/dist/dev-tool/index.d.ts +1 -1
  43. package/dist/esm/components/message-cards/predefined-message-card.js +4 -2
  44. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  45. package/dist/esm/components/user-button.js +9 -9
  46. package/dist/esm/components/user-button.js.map +1 -1
  47. package/dist/esm/components/user-button.test.d.ts +1 -0
  48. package/dist/esm/components/user-button.test.js +70 -0
  49. package/dist/esm/components/user-button.test.js.map +1 -0
  50. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts +1 -1
  51. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  52. package/dist/esm/components-page/account-settings/settings/sign-out-section.js +4 -1
  53. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  54. package/dist/esm/components-page/onboarding.js +15 -13
  55. package/dist/esm/components-page/onboarding.js.map +1 -1
  56. package/dist/esm/components-page/onboarding.test.js +2 -1
  57. package/dist/esm/components-page/onboarding.test.js.map +1 -1
  58. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +4 -4
  59. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  60. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +18 -2
  61. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  62. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.d.ts +1 -0
  63. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.js +382 -0
  64. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.js.map +1 -0
  65. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.d.ts +1 -0
  66. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.js +66 -0
  67. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.js.map +1 -0
  68. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +66 -14
  69. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  70. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +2 -2
  71. package/dist/esm/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.d.ts +31 -0
  72. package/dist/esm/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.d.ts.map +1 -0
  73. package/dist/esm/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.js +115 -0
  74. package/dist/esm/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.js.map +1 -0
  75. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts +16 -1
  76. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
  77. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  78. package/dist/esm/lib/hexclave-app/common.d.ts +14 -2
  79. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -1
  80. package/dist/esm/lib/hexclave-app/common.js +17 -1
  81. package/dist/esm/lib/hexclave-app/common.js.map +1 -1
  82. package/dist/esm/lib/hexclave-app/index.d.ts +2 -2
  83. package/dist/esm/lib/hexclave-app/index.js +2 -2
  84. package/dist/esm/lib/hexclave-app/users/index.d.ts +14 -1
  85. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -1
  86. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -1
  87. package/dist/{hexclave-provider-w8nX8KDv.d.ts → hexclave-provider-Br8j6WHN.d.ts} +2 -2
  88. package/dist/{hexclave-provider-w8nX8KDv.d.ts.map → hexclave-provider-Br8j6WHN.d.ts.map} +1 -1
  89. package/dist/{hooks-nqzRtl9S.d.ts → hooks-DyC8t1Sh.d.ts} +3 -3
  90. package/dist/{hooks-nqzRtl9S.d.ts.map → hooks-DyC8t1Sh.d.ts.map} +1 -1
  91. package/dist/{index-DbiyXho6.d.ts → index-CQ4kC6Cu.d.ts} +2 -2
  92. package/dist/{index-DbiyXho6.d.ts.map → index-CQ4kC6Cu.d.ts.map} +1 -1
  93. package/dist/{index-BDzsJvkD.d.ts → index-CWaynElx.d.ts} +3 -3
  94. package/dist/{index-BDzsJvkD.d.ts.map → index-CWaynElx.d.ts.map} +1 -1
  95. package/dist/{index-BSr2pd22.d.ts → index-FsS-NA9c.d.ts} +2 -2
  96. package/dist/{index-BSr2pd22.d.ts.map → index-FsS-NA9c.d.ts.map} +1 -1
  97. package/dist/index.d.ts +7 -7
  98. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +1 -1
  99. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -1
  100. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.d.ts +1 -0
  101. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.js +381 -0
  102. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.js.map +1 -0
  103. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.d.ts +1 -0
  104. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.js +65 -0
  105. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.js.map +1 -0
  106. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +65 -13
  107. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  108. package/dist/lib/hexclave-app/apps/implementations/common.d.ts +1 -1
  109. package/dist/lib/hexclave-app/apps/implementations/common.js +2 -2
  110. package/dist/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.d.ts +31 -0
  111. package/dist/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.d.ts.map +1 -0
  112. package/dist/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.js +117 -0
  113. package/dist/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.js.map +1 -0
  114. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -1
  115. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +1 -1
  116. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
  117. package/dist/lib/hexclave-app/apps/index.d.ts +1 -1
  118. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +1 -1
  119. package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +1 -1
  120. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  121. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +1 -1
  122. package/dist/lib/hexclave-app/common.d.ts +2 -2
  123. package/dist/lib/hexclave-app/common.js +19 -0
  124. package/dist/lib/hexclave-app/common.js.map +1 -1
  125. package/dist/lib/hexclave-app/customers/index.d.ts +1 -1
  126. package/dist/lib/hexclave-app/data-vault/index.d.ts +1 -1
  127. package/dist/lib/hexclave-app/index.d.ts +4 -4
  128. package/dist/lib/hexclave-app/index.js +18 -0
  129. package/dist/lib/hexclave-app/projects/index.d.ts +1 -1
  130. package/dist/lib/hexclave-app/teams/index.d.ts +1 -1
  131. package/dist/lib/hexclave-app/url-targets.d.ts +1 -1
  132. package/dist/lib/hexclave-app/users/index.d.ts +1 -1
  133. package/dist/lib/hexclave-app/users/index.js.map +1 -1
  134. package/dist/lib/hooks.d.ts +1 -1
  135. package/dist/providers/hexclave-context.d.ts +1 -1
  136. package/dist/providers/hexclave-provider-client.d.ts +1 -1
  137. package/dist/providers/hexclave-provider.d.ts +1 -1
  138. package/dist/pushed-config-error-overlay/index.d.ts +1 -1
  139. package/dist/{redirect-page-urls-ofcg3AYr.d.ts → redirect-page-urls-CnGvn0UJ.d.ts} +2 -2
  140. package/dist/{redirect-page-urls-ofcg3AYr.d.ts.map → redirect-page-urls-CnGvn0UJ.d.ts.map} +1 -1
  141. package/dist/tanstack-start-server-context.d.ts.map +1 -1
  142. package/dist/{url-targets-CWO0mjTr.d.ts → url-targets-DbhzuQtY.d.ts} +2 -2
  143. package/dist/{url-targets-CWO0mjTr.d.ts.map → url-targets-DbhzuQtY.d.ts.map} +1 -1
  144. package/package.json +4 -4
  145. package/src/components/message-cards/predefined-message-card.tsx +4 -2
  146. package/src/components/user-button.test.tsx +87 -0
  147. package/src/components/user-button.tsx +9 -9
  148. package/src/components-page/account-settings/settings/sign-out-section.tsx +9 -1
  149. package/src/components-page/onboarding.test.tsx +1 -0
  150. package/src/components-page/onboarding.tsx +16 -13
  151. package/src/lib/hexclave-app/apps/implementations/client-app-impl.external-token-store.test.ts +425 -0
  152. package/src/lib/hexclave-app/apps/implementations/client-app-impl.init-analytics.test.ts +79 -0
  153. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +124 -13
  154. package/src/lib/hexclave-app/apps/implementations/external-token-store-session-adapter.ts +190 -0
  155. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +17 -0
  156. package/src/lib/hexclave-app/common.ts +33 -0
  157. package/src/lib/hexclave-app/index.ts +4 -0
  158. package/src/lib/hexclave-app/users/index.ts +13 -1
  159. package/dist/admin-app-impl-Bxad6t8m.d.ts.map +0 -1
  160. package/dist/client-app-B0cTytS5.d.ts.map +0 -1
  161. package/dist/common-B2gkWlXX.d.ts.map +0 -1
@@ -0,0 +1,70 @@
1
+ import { act } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { createRoot } from "react-dom/client";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { UserButton } from "./user-button.js";
6
+ //#region src/components/user-button.test.tsx
7
+ // @vitest-environment jsdom
8
+ const previousActEnvironment = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT");
9
+ const state = vi.hoisted(() => ({
10
+ app: null,
11
+ user: null
12
+ }));
13
+ vi.mock("..", () => ({
14
+ useStackApp: () => state.app,
15
+ useUser: () => state.user
16
+ }));
17
+ vi.mock("../lib/translations", () => ({ useTranslation: () => ({ t: (value) => value }) }));
18
+ vi.mock("./elements/user-avatar", () => ({ UserAvatar: () => /* @__PURE__ */ jsx("div", { "data-testid": "user-avatar" }) }));
19
+ vi.mock("@hexclave/ui", () => ({
20
+ DropdownMenu: (props) => /* @__PURE__ */ jsx("div", { children: props.children }),
21
+ DropdownMenuContent: (props) => /* @__PURE__ */ jsx("div", { children: props.children }),
22
+ DropdownMenuItem: (props) => /* @__PURE__ */ jsx("button", {
23
+ onClick: props.onClick,
24
+ children: props.children
25
+ }),
26
+ DropdownMenuLabel: (props) => /* @__PURE__ */ jsx("div", { children: props.children }),
27
+ DropdownMenuSeparator: () => /* @__PURE__ */ jsx("hr", {}),
28
+ DropdownMenuTrigger: (props) => /* @__PURE__ */ jsx("div", { children: props.children }),
29
+ Skeleton: () => /* @__PURE__ */ jsx("div", {}),
30
+ Typography: (props) => /* @__PURE__ */ jsx("div", { children: props.children })
31
+ }));
32
+ describe("UserButton", () => {
33
+ let root = null;
34
+ let container = null;
35
+ beforeEach(() => {
36
+ Reflect.set(globalThis, "IS_REACT_ACT_ENVIRONMENT", true);
37
+ });
38
+ afterEach(() => {
39
+ act(() => root?.unmount());
40
+ container?.remove();
41
+ root = null;
42
+ container = null;
43
+ state.app = null;
44
+ state.user = null;
45
+ Reflect.set(globalThis, "IS_REACT_ACT_ENVIRONMENT", previousActEnvironment);
46
+ });
47
+ it("hides external-auth sign out while keeping account settings", async () => {
48
+ state.app = {
49
+ isExternalAuthApp: () => true,
50
+ redirectToAccountSettings: vi.fn(async () => {})
51
+ };
52
+ state.user = {
53
+ displayName: "External user",
54
+ primaryEmail: "user@example.com",
55
+ signOut: vi.fn(async () => {})
56
+ };
57
+ container = document.createElement("div");
58
+ document.body.append(container);
59
+ root = createRoot(container);
60
+ await act(async () => {
61
+ root?.render(/* @__PURE__ */ jsx(UserButton, {}));
62
+ });
63
+ expect(container.textContent).toContain("Account settings");
64
+ expect(container.textContent).not.toContain("Sign out");
65
+ });
66
+ });
67
+ //#endregion
68
+ export {};
69
+
70
+ //# sourceMappingURL=user-button.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-button.test.js","names":[],"sources":["../../../src/components/user-button.test.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// @vitest-environment jsdom\n\nimport React, { act } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { UserButton } from \"./user-button\";\n\ntype MockState = {\n app: { isExternalAuthApp: () => boolean, redirectToAccountSettings: () => Promise<void> } | null,\n user: { displayName: string, primaryEmail: string, signOut: () => Promise<void> } | null,\n};\n\nconst previousActEnvironment = Reflect.get(globalThis, \"IS_REACT_ACT_ENVIRONMENT\");\n\nconst state = vi.hoisted<MockState>(() => ({\n app: null,\n user: null,\n}));\n\nvi.mock(\"..\", () => ({\n useStackApp: () => state.app,\n useUser: () => state.user,\n}));\n\nvi.mock(\"../lib/translations\", () => ({\n useTranslation: () => ({ t: (value: string) => value }),\n}));\n\nvi.mock(\"./elements/user-avatar\", () => ({\n UserAvatar: () => <div data-testid=\"user-avatar\" />,\n}));\n\nvi.mock(\"@hexclave/ui\", () => ({\n DropdownMenu: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n DropdownMenuContent: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n DropdownMenuItem: (props: { children: React.ReactNode, onClick: () => void }) => <button onClick={props.onClick}>{props.children}</button>,\n DropdownMenuLabel: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n DropdownMenuSeparator: () => <hr />,\n DropdownMenuTrigger: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n Skeleton: () => <div />,\n Typography: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n}));\n\ndescribe(\"UserButton\", () => {\n let root: Root | null = null;\n let container: HTMLDivElement | null = null;\n\n beforeEach(() => {\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", true);\n });\n\n afterEach(() => {\n act(() => root?.unmount());\n container?.remove();\n root = null;\n container = null;\n state.app = null;\n state.user = null;\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", previousActEnvironment);\n });\n\n it(\"hides external-auth sign out while keeping account settings\", async () => {\n state.app = {\n isExternalAuthApp: () => true,\n redirectToAccountSettings: vi.fn(async () => {}),\n };\n state.user = {\n displayName: \"External user\",\n primaryEmail: \"user@example.com\",\n signOut: vi.fn(async () => {}),\n };\n container = document.createElement(\"div\");\n document.body.append(container);\n root = createRoot(container);\n\n await act(async () => {\n root?.render(<UserButton />);\n });\n\n expect(container.textContent).toContain(\"Account settings\");\n expect(container.textContent).not.toContain(\"Sign out\");\n });\n});\n"],"mappings":";;;;;;;AAgBA,MAAM,yBAAyB,QAAQ,IAAI,YAAY,0BAA0B;AAEjF,MAAM,QAAQ,GAAG,eAA0B;CACzC,KAAK;CACL,MAAM;AACR,EAAE;AAEF,GAAG,KAAK,aAAa;CACnB,mBAAmB,MAAM;CACzB,eAAe,MAAM;AACvB,EAAE;AAEF,GAAG,KAAK,8BAA8B,EACpC,uBAAuB,EAAE,IAAI,UAAkB,MAAM,GACvD,EAAE;AAEF,GAAG,KAAK,iCAAiC,EACvC,kBAAkB,oBAAC,OAAD,EAAK,eAAY,cAAe,CAAA,EACpD,EAAE;AAEF,GAAG,KAAK,uBAAuB;CAC7B,eAAe,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;CAClF,sBAAsB,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;CACzF,mBAAmB,UAA8D,oBAAC,UAAD;EAAQ,SAAS,MAAM;YAAU,MAAM;CAAiB,CAAA;CACzI,oBAAoB,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;CACvF,6BAA6B,oBAAC,MAAD,CAAK,CAAA;CAClC,sBAAsB,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;CACzF,gBAAgB,oBAAC,OAAD,CAAM,CAAA;CACtB,aAAa,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;AAClF,EAAE;AAEF,SAAS,oBAAoB;CAC3B,IAAI,OAAoB;CACxB,IAAI,YAAmC;CAEvC,iBAAiB;EACf,QAAQ,IAAI,YAAY,4BAA4B,IAAI;CAC1D,CAAC;CAED,gBAAgB;EACd,UAAU,MAAM,QAAQ,CAAC;EACzB,WAAW,OAAO;EAClB,OAAO;EACP,YAAY;EACZ,MAAM,MAAM;EACZ,MAAM,OAAO;EACb,QAAQ,IAAI,YAAY,4BAA4B,sBAAsB;CAC5E,CAAC;CAED,GAAG,+DAA+D,YAAY;EAC5E,MAAM,MAAM;GACV,yBAAyB;GACzB,2BAA2B,GAAG,GAAG,YAAY,CAAC,CAAC;EACjD;EACA,MAAM,OAAO;GACX,aAAa;GACb,cAAc;GACd,SAAS,GAAG,GAAG,YAAY,CAAC,CAAC;EAC/B;EACA,YAAY,SAAS,cAAc,KAAK;EACxC,SAAS,KAAK,OAAO,SAAS;EAC9B,OAAO,WAAW,SAAS;EAE3B,MAAM,IAAI,YAAY;GACpB,MAAM,OAAO,oBAAC,YAAD,CAAa,CAAA,CAAC;EAC7B,CAAC;EAED,OAAO,UAAU,WAAW,CAAC,CAAC,UAAU,kBAAkB;EAC1D,OAAO,UAAU,WAAW,CAAC,CAAC,IAAI,UAAU,UAAU;CACxD,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  //#region src/components-page/account-settings/settings/sign-out-section.d.ts
2
2
  declare function SignOutSection(props?: {
3
3
  mockMode?: boolean;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
5
  //#endregion
6
6
  export { SignOutSection };
7
7
  //# sourceMappingURL=sign-out-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"mappings":";iBASgB,cAAA,CAAe,KAAA;EAAU,QAAA;AAAA,gCAAoB,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"sign-out-section.d.ts","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"mappings":";iBAUgB,cAAA,CAAe,KAAA;EAAU,QAAA;AAAA,gCAAoB,GAAA,CAAA,OAAA"}
@@ -3,10 +3,13 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { useUser } from "../../../lib/hooks.js";
4
4
  import { useTranslation } from "../../../lib/translations.js";
5
5
  import { Section } from "../section.js";
6
+ import { useStackApp as useStackApp$1 } from "../../../index.js";
6
7
  //#region src/components-page/account-settings/settings/sign-out-section.tsx
7
8
  function SignOutSection(props) {
8
9
  const { t } = useTranslation();
9
- const user = useUser({ or: props?.mockMode ? "return-null" : "throw" });
10
+ const app = useStackApp$1();
11
+ const user = useUser({ or: props?.mockMode || app.isExternalAuthApp() ? "return-null" : "throw" });
12
+ if (app.isExternalAuthApp()) return null;
10
13
  const handleSignOut = async () => {
11
14
  if (props?.mockMode) {
12
15
  alert("Mock mode: Sign out clicked");
@@ -1 +1 @@
1
- {"version":3,"file":"sign-out-section.js","names":[],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Button } from \"@hexclave/ui\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function SignOutSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const user = useUser({ or: props?.mockMode ? \"return-null\" : \"throw\" });\n\n const handleSignOut = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert or do nothing\n alert(\"Mock mode: Sign out clicked\");\n return;\n }\n if (user) {\n await user.signOut();\n }\n };\n\n return (\n <Section\n title={t(\"Sign out\")}\n description={t(\"End your current session\")}\n >\n <div>\n <Button\n variant='secondary'\n onClick={handleSignOut}\n >\n {t(\"Sign out\")}\n </Button>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,WAAW,gBAAgB,QAAQ,CAAC;CAEtE,MAAM,gBAAgB,YAAY;EAChC,IAAI,OAAO,UAAU;GAEnB,MAAM,6BAA6B;GACnC;EACF;EACA,IAAI,MACF,MAAM,KAAK,QAAQ;CAEvB;CAEA,OACE,oBAAC,SAAD;EACE,OAAO,EAAE,UAAU;EACnB,aAAa,EAAE,0BAA0B;YAEzC,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;GACE,SAAQ;GACR,SAAS;aAER,EAAE,UAAU;EACP,CAAA,EACL,CAAA;CACE,CAAA;AAEb"}
1
+ {"version":3,"file":"sign-out-section.js","names":["useStackApp"],"sources":["../../../../../src/components-page/account-settings/settings/sign-out-section.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { Button } from \"@hexclave/ui\";\nimport { useStackApp } from \"../../..\";\nimport { useUser } from \"../../../lib/hooks\";\nimport { useTranslation } from \"../../../lib/translations\";\nimport { Section } from \"../section\";\n\nexport function SignOutSection(props?: { mockMode?: boolean }) {\n const { t } = useTranslation();\n const app = useStackApp();\n // External-auth apps render nothing here, and the provider can clear its session (so Hexclave has no user)\n // before this re-renders, so don't throw for them.\n const user = useUser({ or: props?.mockMode || app.isExternalAuthApp() ? \"return-null\" : \"throw\" });\n\n if (app.isExternalAuthApp()) {\n return null;\n }\n\n const handleSignOut = async () => {\n if (props?.mockMode) {\n // Mock mode - just show an alert or do nothing\n alert(\"Mock mode: Sign out clicked\");\n return;\n }\n if (user) {\n await user.signOut();\n }\n };\n\n return (\n <Section\n title={t(\"Sign out\")}\n description={t(\"End your current session\")}\n >\n <div>\n <Button\n variant='secondary'\n onClick={handleSignOut}\n >\n {t(\"Sign out\")}\n </Button>\n </div>\n </Section>\n );\n}\n"],"mappings":";;;;;;;AAUA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,MAAMA,cAAY;CAGxB,MAAM,OAAO,QAAQ,EAAE,IAAI,OAAO,YAAY,IAAI,kBAAkB,IAAI,gBAAgB,QAAQ,CAAC;CAEjG,IAAI,IAAI,kBAAkB,GACxB,OAAO;CAGT,MAAM,gBAAgB,YAAY;EAChC,IAAI,OAAO,UAAU;GAEnB,MAAM,6BAA6B;GACnC;EACF;EACA,IAAI,MACF,MAAM,KAAK,QAAQ;CAEvB;CAEA,OACE,oBAAC,SAAD;EACE,OAAO,EAAE,UAAU;EACnB,aAAa,EAAE,0BAA0B;YAEzC,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;GACE,SAAQ;GACR,SAAS;aAER,EAAE,UAAU;EACP,CAAA,EACL,CAAA;CACE,CAAA;AAEb"}
@@ -18,6 +18,7 @@ function Onboarding(props) {
18
18
  or: "return-null",
19
19
  includeRestricted: true
20
20
  });
21
+ const canSignOut = !hexclaveApp.isExternalAuthApp();
21
22
  if (user && !user.isRestricted) {
22
23
  runAsynchronously(hexclaveApp.redirectToAfterSignIn());
23
24
  return null;
@@ -38,19 +39,19 @@ function Onboarding(props) {
38
39
  if (restrictedReason?.type === "restricted_by_administrator") return /* @__PURE__ */ jsx(MessageCard$1, {
39
40
  title: t("Your account has been restricted"),
40
41
  fullPage: !!props.fullPage,
41
- secondaryButtonText: t("Sign out"),
42
- secondaryAction: async () => {
42
+ secondaryButtonText: canSignOut ? t("Sign out") : void 0,
43
+ secondaryAction: canSignOut ? async () => {
43
44
  await user.signOut();
44
- },
45
+ } : void 0,
45
46
  children: /* @__PURE__ */ jsx("p", { children: user.restrictedByAdminReason ?? t("An administrator has restricted your account. Please reach out to support if you believe this is an error.") })
46
47
  });
47
48
  return /* @__PURE__ */ jsx(MessageCard$1, {
48
49
  title: t("Complete your account setup"),
49
50
  fullPage: !!props.fullPage,
50
- secondaryButtonText: t("Sign out"),
51
- secondaryAction: async () => {
51
+ secondaryButtonText: canSignOut ? t("Sign out") : void 0,
52
+ secondaryAction: canSignOut ? async () => {
52
53
  await user.signOut();
53
- },
54
+ } : void 0,
54
55
  children: /* @__PURE__ */ jsx("p", { children: t("You have not yet completed your account setup. Please reach out to support if you believe this is an error.") })
55
56
  });
56
57
  }
@@ -60,7 +61,7 @@ function AddEmailForm(props) {
60
61
  or: "throw",
61
62
  includeRestricted: true
62
63
  });
63
- useStackApp();
64
+ const canSignOut = !useStackApp().isExternalAuthApp();
64
65
  const [loading, setLoading] = useState(false);
65
66
  const { register, handleSubmit, formState: { errors } } = useForm({ resolver: yupResolver(yupObject({ email: strictEmailSchema(t("Please enter a valid email address")).defined().nonEmpty(t("Email is required")) })) });
66
67
  const onSubmit = async (data) => {
@@ -75,10 +76,10 @@ function AddEmailForm(props) {
75
76
  return /* @__PURE__ */ jsxs(MessageCard$1, {
76
77
  title: t("Add your email address"),
77
78
  fullPage: !!props.fullPage,
78
- secondaryButtonText: t("Sign out"),
79
- secondaryAction: async () => {
79
+ secondaryButtonText: canSignOut ? t("Sign out") : void 0,
80
+ secondaryAction: canSignOut ? async () => {
80
81
  await user.signOut();
81
- },
82
+ } : void 0,
82
83
  children: [/* @__PURE__ */ jsx(Typography, {
83
84
  className: "mb-4",
84
85
  children: t("Please add an email address to complete your account setup. We'll send you a verification email.")
@@ -106,6 +107,7 @@ function AddEmailForm(props) {
106
107
  function VerifyEmailScreen(props) {
107
108
  const { t } = useTranslation();
108
109
  const { user, email } = props;
110
+ const canSignOut = !useStackApp().isExternalAuthApp();
109
111
  const [changingEmail, setChangingEmail] = useState(false);
110
112
  if (changingEmail) return /* @__PURE__ */ jsx(AddEmailForm, {
111
113
  fullPage: props.fullPage,
@@ -118,10 +120,10 @@ function VerifyEmailScreen(props) {
118
120
  primaryAction: async () => {
119
121
  await user.sendVerificationEmail();
120
122
  },
121
- secondaryButtonText: t("Sign out"),
122
- secondaryAction: async () => {
123
+ secondaryButtonText: canSignOut ? t("Sign out") : void 0,
124
+ secondaryAction: canSignOut ? async () => {
123
125
  await user.signOut();
124
- },
126
+ } : void 0,
125
127
  children: /* @__PURE__ */ jsxs(Typography, { children: [
126
128
  t("Please verify your email address "),
127
129
  /* @__PURE__ */ jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","names":["MessageCard"],"sources":["../../../src/components-page/onboarding.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously, runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function Onboarding(props: {\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser({ or: \"return-null\", includeRestricted: true });\n\n // If user is not restricted anymore, redirect to the intended destination\n // redirectToAfterSignIn automatically checks for after_auth_return_to in the URL\n if (user && !user.isRestricted) {\n runAsynchronously(hexclaveApp.redirectToAfterSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // If user is anonymous or not logged in, redirect to sign-in\n if (!user || user.isAnonymous) {\n runAsynchronously(hexclaveApp.redirectToSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // User is restricted - show appropriate onboarding step based on restricted reason\n const restrictedReason = user.restrictedReason;\n\n if (restrictedReason?.type === \"email_not_verified\") {\n // Check if user has a primary email\n const hasPrimaryEmail = !!user.primaryEmail;\n\n if (!hasPrimaryEmail) {\n // User needs to add an email first\n return <AddEmailForm fullPage={props.fullPage} />;\n }\n\n // User has email but it's not verified\n return <VerifyEmailScreen user={user} email={user.primaryEmail} fullPage={props.fullPage} />;\n }\n\n if (restrictedReason?.type === \"restricted_by_administrator\") {\n return (\n <MessageCard\n title={t(\"Your account has been restricted\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n {/* The public reason is set by the project's administrators (sign-up rules or manually), so it's the most\n helpful thing we can show; the generic sentence is only a fallback for when they didn't provide one. */}\n <p>{user.restrictedByAdminReason ?? t(\"An administrator has restricted your account. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n }\n\n // Unknown restricted reason - show generic message\n return (\n <MessageCard\n title={t(\"Complete your account setup\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <p>{t(\"You have not yet completed your account setup. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n}\n\nfunction AddEmailForm(props: {\n fullPage?: boolean,\n onEmailAdded?: () => void,\n}) {\n const { t } = useTranslation();\n const user = useUser({ or: \"throw\", includeRestricted: true });\n const hexclaveApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const emailSchema = yupObject({\n email: strictEmailSchema(t('Please enter a valid email address'))\n .defined()\n .nonEmpty(t('Email is required')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(emailSchema)\n });\n\n const onSubmit = async (data: yup.InferType<typeof emailSchema>) => {\n setLoading(true);\n try {\n await user.update({ primaryEmail: data.email });\n props.onEmailAdded?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MessageCard\n title={t(\"Add your email address\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography className=\"mb-4\">\n {t(\"Please add an email address to complete your account setup. We'll send you a verification email.\")}\n </Typography>\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='flex flex-col gap-2'\n >\n <Input\n {...register(\"email\")}\n placeholder={t(\"Enter your email\")}\n type=\"email\"\n />\n {errors.email && <FormWarningText text={errors.email.message} />}\n <Button type=\"submit\" loading={loading} className=\"w-full\">\n {t(\"Continue\")}\n </Button>\n </form>\n </MessageCard>\n );\n}\n\nfunction VerifyEmailScreen(props: {\n user: NonNullable<ReturnType<typeof useUser>>,\n email: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const { user, email } = props;\n const [changingEmail, setChangingEmail] = useState(false);\n\n if (changingEmail) {\n return <AddEmailForm fullPage={props.fullPage} onEmailAdded={() => setChangingEmail(false)} />;\n }\n\n return (\n <MessageCard\n title={t(\"Please check your email inbox\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Resend verification email\")}\n primaryAction={async () => {\n await user.sendVerificationEmail();\n }}\n secondaryButtonText={t(\"Sign out\")}\n secondaryAction={async () => {\n await user.signOut();\n }}\n >\n <Typography>\n {t(\"Please verify your email address \")}\n <span className=\"font-semibold\">{email}</span>\n {\" (\"}\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() => setChangingEmail(true)}\n >\n {t(\"change\")}\n </button>\n {\"). \"}\n {t(\"Click the button below to resend the verification link.\")}\n </Typography>\n </MessageCard>\n );\n}\n\n"],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","names":["MessageCard"],"sources":["../../../src/components-page/onboarding.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronously, runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Typography } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function Onboarding(props: {\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser({ or: \"return-null\", includeRestricted: true });\n const canSignOut = !hexclaveApp.isExternalAuthApp();\n\n // If user is not restricted anymore, redirect to the intended destination\n // redirectToAfterSignIn automatically checks for after_auth_return_to in the URL\n if (user && !user.isRestricted) {\n runAsynchronously(hexclaveApp.redirectToAfterSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // If user is anonymous or not logged in, redirect to sign-in\n if (!user || user.isAnonymous) {\n runAsynchronously(hexclaveApp.redirectToSignIn());\n // TODO: This should return a loading indicator, not just null\n return null;\n }\n\n // User is restricted - show appropriate onboarding step based on restricted reason\n const restrictedReason = user.restrictedReason;\n\n if (restrictedReason?.type === \"email_not_verified\") {\n // Check if user has a primary email\n const hasPrimaryEmail = !!user.primaryEmail;\n\n if (!hasPrimaryEmail) {\n // User needs to add an email first\n return <AddEmailForm fullPage={props.fullPage} />;\n }\n\n // User has email but it's not verified\n return <VerifyEmailScreen user={user} email={user.primaryEmail} fullPage={props.fullPage} />;\n }\n\n if (restrictedReason?.type === \"restricted_by_administrator\") {\n return (\n <MessageCard\n title={t(\"Your account has been restricted\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={canSignOut ? t(\"Sign out\") : undefined}\n secondaryAction={canSignOut ? async () => {\n await user.signOut();\n } : undefined}\n >\n {/* The public reason is set by the project's administrators (sign-up rules or manually), so it's the most\n helpful thing we can show; the generic sentence is only a fallback for when they didn't provide one. */}\n <p>{user.restrictedByAdminReason ?? t(\"An administrator has restricted your account. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n }\n\n // Unknown restricted reason - show generic message\n return (\n <MessageCard\n title={t(\"Complete your account setup\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={canSignOut ? t(\"Sign out\") : undefined}\n secondaryAction={canSignOut ? async () => {\n await user.signOut();\n } : undefined}\n >\n <p>{t(\"You have not yet completed your account setup. Please reach out to support if you believe this is an error.\")}</p>\n </MessageCard>\n );\n}\n\nfunction AddEmailForm(props: {\n fullPage?: boolean,\n onEmailAdded?: () => void,\n}) {\n const { t } = useTranslation();\n const user = useUser({ or: \"throw\", includeRestricted: true });\n const hexclaveApp = useStackApp();\n const canSignOut = !hexclaveApp.isExternalAuthApp();\n const [loading, setLoading] = useState(false);\n\n const emailSchema = yupObject({\n email: strictEmailSchema(t('Please enter a valid email address'))\n .defined()\n .nonEmpty(t('Email is required')),\n });\n\n const { register, handleSubmit, formState: { errors } } = useForm({\n resolver: yupResolver(emailSchema)\n });\n\n const onSubmit = async (data: yup.InferType<typeof emailSchema>) => {\n setLoading(true);\n try {\n await user.update({ primaryEmail: data.email });\n props.onEmailAdded?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <MessageCard\n title={t(\"Add your email address\")}\n fullPage={!!props.fullPage}\n secondaryButtonText={canSignOut ? t(\"Sign out\") : undefined}\n secondaryAction={canSignOut ? async () => {\n await user.signOut();\n } : undefined}\n >\n <Typography className=\"mb-4\">\n {t(\"Please add an email address to complete your account setup. We'll send you a verification email.\")}\n </Typography>\n <form\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n className='flex flex-col gap-2'\n >\n <Input\n {...register(\"email\")}\n placeholder={t(\"Enter your email\")}\n type=\"email\"\n />\n {errors.email && <FormWarningText text={errors.email.message} />}\n <Button type=\"submit\" loading={loading} className=\"w-full\">\n {t(\"Continue\")}\n </Button>\n </form>\n </MessageCard>\n );\n}\n\nfunction VerifyEmailScreen(props: {\n user: NonNullable<ReturnType<typeof useUser>>,\n email: string,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const { user, email } = props;\n const hexclaveApp = useStackApp();\n const canSignOut = !hexclaveApp.isExternalAuthApp();\n const [changingEmail, setChangingEmail] = useState(false);\n\n if (changingEmail) {\n return <AddEmailForm fullPage={props.fullPage} onEmailAdded={() => setChangingEmail(false)} />;\n }\n\n return (\n <MessageCard\n title={t(\"Please check your email inbox\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Resend verification email\")}\n primaryAction={async () => {\n await user.sendVerificationEmail();\n }}\n secondaryButtonText={canSignOut ? t(\"Sign out\") : undefined}\n secondaryAction={canSignOut ? async () => {\n await user.signOut();\n } : undefined}\n >\n <Typography>\n {t(\"Please verify your email address \")}\n <span className=\"font-semibold\">{email}</span>\n {\" (\"}\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() => setChangingEmail(true)}\n >\n {t(\"change\")}\n </button>\n {\"). \"}\n {t(\"Click the button below to resend the verification link.\")}\n </Typography>\n </MessageCard>\n );\n}\n"],"mappings":"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"}
@@ -34,7 +34,8 @@ const previousActEnvironment = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT
34
34
  function createAppTestDouble() {
35
35
  return {
36
36
  redirectToSignIn: vi.fn(async () => {}),
37
- redirectToAfterSignIn: vi.fn(async () => {})
37
+ redirectToAfterSignIn: vi.fn(async () => {}),
38
+ isExternalAuthApp: vi.fn(() => false)
38
39
  };
39
40
  }
40
41
  function createUserTestDouble(user) {
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.test.js","names":[],"sources":["../../../src/components-page/onboarding.test.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// @vitest-environment jsdom\n\nimport React, { act } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport type { CurrentUser } from \"../lib/hexclave-app\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { TranslationProviderClient } from \"../providers/translation-provider-client\";\nimport { Onboarding } from \"./onboarding\";\n\nconst appMockState = vi.hoisted(() => ({\n app: null as unknown,\n user: null as unknown,\n}));\n\nvi.mock(\"..\", () => ({\n useStackApp: () => {\n if (appMockState.app == null) {\n throw new Error(\"Expected test app to be set before rendering.\");\n }\n return appMockState.app;\n },\n useUser: () => appMockState.user,\n}));\n\nvi.mock(\"@hexclave/ui\", async () => {\n const React = await import(\"react\");\n return {\n Button: (props: { children: React.ReactNode, onClick?: () => void }) => (\n <button type=\"button\" onClick={props.onClick}>{props.children}</button>\n ),\n Input: (props: Record<string, unknown>) => <input {...props} />,\n Typography: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n cn: (...classes: (string | false | null | undefined)[]) => classes.filter(Boolean).join(\" \"),\n };\n});\n\nconst previousActEnvironment = Reflect.get(globalThis, \"IS_REACT_ACT_ENVIRONMENT\");\n\nfunction createAppTestDouble() {\n const app = {\n redirectToSignIn: vi.fn(async () => {}),\n redirectToAfterSignIn: vi.fn(async () => {}),\n };\n\n // This test double intentionally implements only the StackClientApp surface that Onboarding touches.\n return app as unknown as StackClientApp<true> & {\n redirectToSignIn: ReturnType<typeof vi.fn>,\n redirectToAfterSignIn: ReturnType<typeof vi.fn>,\n };\n}\n\nfunction createUserTestDouble(user: Partial<CurrentUser>) {\n // Same as the app test double: only the surface Onboarding touches.\n return {\n isAnonymous: false,\n isRestricted: true,\n restrictedReason: null,\n restrictedByAdmin: false,\n restrictedByAdminReason: null,\n primaryEmail: \"user@example.com\",\n signOut: vi.fn(async () => {}),\n ...user,\n } as unknown as CurrentUser;\n}\n\nlet root: Root | null = null;\nlet container: HTMLDivElement | null = null;\n\nasync function renderOnboarding(options: {\n app: StackClientApp<true>,\n user: unknown,\n}) {\n appMockState.app = options.app;\n appMockState.user = options.user;\n container = document.createElement(\"div\");\n document.body.append(container);\n root = createRoot(container);\n await act(async () => {\n root?.render(\n <TranslationProviderClient quetzalKeys={new Map()} quetzalLocale={new Map()}>\n <Onboarding />\n </TranslationProviderClient>\n );\n });\n return container;\n}\n\ndescribe(\"Onboarding\", () => {\n beforeEach(() => {\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", true);\n });\n\n afterEach(() => {\n act(() => {\n root?.unmount();\n });\n container?.remove();\n root = null;\n container = null;\n appMockState.app = null;\n appMockState.user = null;\n vi.restoreAllMocks();\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", previousActEnvironment);\n });\n\n it(\"redirects signed-out users to sign-in\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({ app, user: null });\n\n expect(app.redirectToSignIn).toHaveBeenCalled();\n expect(container.textContent).toBe(\"\");\n });\n\n it(\"redirects anonymous users to sign-in\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({ app, user: createUserTestDouble({ isAnonymous: true, restrictedReason: { type: \"anonymous\" } }) });\n\n expect(app.redirectToSignIn).toHaveBeenCalled();\n expect(container.textContent).toBe(\"\");\n });\n\n it(\"redirects users that are no longer restricted to their destination\", async () => {\n const app = createAppTestDouble();\n\n await renderOnboarding({ app, user: createUserTestDouble({ isRestricted: false }) });\n\n expect(app.redirectToAfterSignIn).toHaveBeenCalled();\n expect(app.redirectToSignIn).not.toHaveBeenCalled();\n });\n\n it(\"shows the administrator's public reason to admin-restricted users\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n user: createUserTestDouble({\n restrictedReason: { type: \"restricted_by_administrator\" },\n restrictedByAdmin: true,\n restrictedByAdminReason: \"Your sign-up was flagged by our fraud prevention rules.\",\n }),\n });\n\n expect(container.textContent).toContain(\"Your account has been restricted\");\n expect(container.textContent).toContain(\"Your sign-up was flagged by our fraud prevention rules.\");\n expect(container.textContent).not.toContain(\"Complete your account setup\");\n });\n\n it(\"falls back to a generic restricted message when no public reason is set\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n user: createUserTestDouble({\n restrictedReason: { type: \"restricted_by_administrator\" },\n restrictedByAdmin: true,\n restrictedByAdminReason: null,\n }),\n });\n\n expect(container.textContent).toContain(\"Your account has been restricted\");\n expect(container.textContent).toContain(\"An administrator has restricted your account.\");\n });\n\n it(\"shows the setup-required message for unknown restricted reasons\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n // The reason types are a closed union, so an unknown reason can only come from a newer backend.\n user: createUserTestDouble({ restrictedReason: { type: \"some_future_reason\" } as unknown as CurrentUser[\"restrictedReason\"] }),\n });\n\n expect(container.textContent).toContain(\"Complete your account setup\");\n });\n});\n"],"mappings":";;;;;;;;AAcA,MAAM,eAAe,GAAG,eAAe;CACrC,KAAK;CACL,MAAM;AACR,EAAE;AAEF,GAAG,KAAK,aAAa;CACnB,mBAAmB;EACjB,IAAI,aAAa,OAAO,MACtB,MAAM,IAAI,MAAM,+CAA+C;EAEjE,OAAO,aAAa;CACtB;CACA,eAAe,aAAa;AAC9B,EAAE;AAEF,GAAG,KAAK,gBAAgB,YAAY;CACpB,MAAM,OAAO;CAC3B,OAAO;EACL,SAAS,UACP,oBAAC,UAAD;GAAQ,MAAK;GAAS,SAAS,MAAM;aAAU,MAAM;EAAiB,CAAA;EAExE,QAAQ,UAAmC,oBAAC,SAAD,EAAO,GAAI,MAAQ,CAAA;EAC9D,aAAa,UAAyC,oBAAC,OAAD,EAAA,UAAM,MAAM,SAAc,CAAA;EAChF,KAAK,GAAG,YAAmD,QAAQ,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAC7F;AACF,CAAC;AAED,MAAM,yBAAyB,QAAQ,IAAI,YAAY,0BAA0B;AAEjF,SAAS,sBAAsB;CAO7B,OAAO;EALL,kBAAkB,GAAG,GAAG,YAAY,CAAC,CAAC;EACtC,uBAAuB,GAAG,GAAG,YAAY,CAAC,CAAC;CAIpC;AAIX;AAEA,SAAS,qBAAqB,MAA4B;CAExD,OAAO;EACL,aAAa;EACb,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,yBAAyB;EACzB,cAAc;EACd,SAAS,GAAG,GAAG,YAAY,CAAC,CAAC;EAC7B,GAAG;CACL;AACF;AAEA,IAAI,OAAoB;AACxB,IAAI,YAAmC;AAEvC,eAAe,iBAAiB,SAG7B;CACD,aAAa,MAAM,QAAQ;CAC3B,aAAa,OAAO,QAAQ;CAC5B,YAAY,SAAS,cAAc,KAAK;CACxC,SAAS,KAAK,OAAO,SAAS;CAC9B,OAAO,WAAW,SAAS;CAC3B,MAAM,IAAI,YAAY;EACpB,MAAM,OACJ,oBAAC,2BAAD;GAA2B,6BAAa,IAAI,IAAI;GAAG,+BAAe,IAAI,IAAI;aACxE,oBAAC,YAAD,CAAa,CAAA;EACY,CAAA,CAC7B;CACF,CAAC;CACD,OAAO;AACT;AAEA,SAAS,oBAAoB;CAC3B,iBAAiB;EACf,QAAQ,IAAI,YAAY,4BAA4B,IAAI;CAC1D,CAAC;CAED,gBAAgB;EACd,UAAU;GACR,MAAM,QAAQ;EAChB,CAAC;EACD,WAAW,OAAO;EAClB,OAAO;EACP,YAAY;EACZ,aAAa,MAAM;EACnB,aAAa,OAAO;EACpB,GAAG,gBAAgB;EACnB,QAAQ,IAAI,YAAY,4BAA4B,sBAAsB;CAC5E,CAAC;CAED,GAAG,yCAAyC,YAAY;EACtD,MAAM,MAAM,oBAAoB;EAEhC,MAAM,YAAY,MAAM,iBAAiB;GAAE;GAAK,MAAM;EAAK,CAAC;EAE5D,OAAO,IAAI,gBAAgB,CAAC,CAAC,iBAAiB;EAC9C,OAAO,UAAU,WAAW,CAAC,CAAC,KAAK,EAAE;CACvC,CAAC;CAED,GAAG,wCAAwC,YAAY;EACrD,MAAM,MAAM,oBAAoB;EAEhC,MAAM,YAAY,MAAM,iBAAiB;GAAE;GAAK,MAAM,qBAAqB;IAAE,aAAa;IAAM,kBAAkB,EAAE,MAAM,YAAY;GAAE,CAAC;EAAE,CAAC;EAE5I,OAAO,IAAI,gBAAgB,CAAC,CAAC,iBAAiB;EAC9C,OAAO,UAAU,WAAW,CAAC,CAAC,KAAK,EAAE;CACvC,CAAC;CAED,GAAG,sEAAsE,YAAY;EACnF,MAAM,MAAM,oBAAoB;EAEhC,MAAM,iBAAiB;GAAE;GAAK,MAAM,qBAAqB,EAAE,cAAc,MAAM,CAAC;EAAE,CAAC;EAEnF,OAAO,IAAI,qBAAqB,CAAC,CAAC,iBAAiB;EACnD,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,iBAAiB;CACpD,CAAC;CAED,GAAG,qEAAqE,YAAY;EAGlF,MAAM,YAAY,MAAM,iBAAiB;GACvC,KAHU,oBAGR;GACF,MAAM,qBAAqB;IACzB,kBAAkB,EAAE,MAAM,8BAA8B;IACxD,mBAAmB;IACnB,yBAAyB;GAC3B,CAAC;EACH,CAAC;EAED,OAAO,UAAU,WAAW,CAAC,CAAC,UAAU,kCAAkC;EAC1E,OAAO,UAAU,WAAW,CAAC,CAAC,UAAU,yDAAyD;EACjG,OAAO,UAAU,WAAW,CAAC,CAAC,IAAI,UAAU,6BAA6B;CAC3E,CAAC;CAED,GAAG,2EAA2E,YAAY;EAGxF,MAAM,YAAY,MAAM,iBAAiB;GACvC,KAHU,oBAGR;GACF,MAAM,qBAAqB;IACzB,kBAAkB,EAAE,MAAM,8BAA8B;IACxD,mBAAmB;IACnB,yBAAyB;GAC3B,CAAC;EACH,CAAC;EAED,OAAO,UAAU,WAAW,CAAC,CAAC,UAAU,kCAAkC;EAC1E,OAAO,UAAU,WAAW,CAAC,CAAC,UAAU,+CAA+C;CACzF,CAAC;CAED,GAAG,mEAAmE,YAAY;EAShF,QAAO,MANiB,iBAAiB;GACvC,KAHU,oBAGR;GAEF,MAAM,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,EAAgD,CAAC;EAC/H,CAAC,EAAA,CAEgB,WAAW,CAAC,CAAC,UAAU,6BAA6B;CACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"onboarding.test.js","names":[],"sources":["../../../src/components-page/onboarding.test.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// @vitest-environment jsdom\n\nimport React, { act } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport type { CurrentUser } from \"../lib/hexclave-app\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { TranslationProviderClient } from \"../providers/translation-provider-client\";\nimport { Onboarding } from \"./onboarding\";\n\nconst appMockState = vi.hoisted(() => ({\n app: null as unknown,\n user: null as unknown,\n}));\n\nvi.mock(\"..\", () => ({\n useStackApp: () => {\n if (appMockState.app == null) {\n throw new Error(\"Expected test app to be set before rendering.\");\n }\n return appMockState.app;\n },\n useUser: () => appMockState.user,\n}));\n\nvi.mock(\"@hexclave/ui\", async () => {\n const React = await import(\"react\");\n return {\n Button: (props: { children: React.ReactNode, onClick?: () => void }) => (\n <button type=\"button\" onClick={props.onClick}>{props.children}</button>\n ),\n Input: (props: Record<string, unknown>) => <input {...props} />,\n Typography: (props: { children: React.ReactNode }) => <div>{props.children}</div>,\n cn: (...classes: (string | false | null | undefined)[]) => classes.filter(Boolean).join(\" \"),\n };\n});\n\nconst previousActEnvironment = Reflect.get(globalThis, \"IS_REACT_ACT_ENVIRONMENT\");\n\nfunction createAppTestDouble() {\n const app = {\n redirectToSignIn: vi.fn(async () => {}),\n redirectToAfterSignIn: vi.fn(async () => {}),\n isExternalAuthApp: vi.fn(() => false),\n };\n\n // This test double intentionally implements only the StackClientApp surface that Onboarding touches.\n return app as unknown as StackClientApp<true> & {\n redirectToSignIn: ReturnType<typeof vi.fn>,\n redirectToAfterSignIn: ReturnType<typeof vi.fn>,\n };\n}\n\nfunction createUserTestDouble(user: Partial<CurrentUser>) {\n // Same as the app test double: only the surface Onboarding touches.\n return {\n isAnonymous: false,\n isRestricted: true,\n restrictedReason: null,\n restrictedByAdmin: false,\n restrictedByAdminReason: null,\n primaryEmail: \"user@example.com\",\n signOut: vi.fn(async () => {}),\n ...user,\n } as unknown as CurrentUser;\n}\n\nlet root: Root | null = null;\nlet container: HTMLDivElement | null = null;\n\nasync function renderOnboarding(options: {\n app: StackClientApp<true>,\n user: unknown,\n}) {\n appMockState.app = options.app;\n appMockState.user = options.user;\n container = document.createElement(\"div\");\n document.body.append(container);\n root = createRoot(container);\n await act(async () => {\n root?.render(\n <TranslationProviderClient quetzalKeys={new Map()} quetzalLocale={new Map()}>\n <Onboarding />\n </TranslationProviderClient>\n );\n });\n return container;\n}\n\ndescribe(\"Onboarding\", () => {\n beforeEach(() => {\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", true);\n });\n\n afterEach(() => {\n act(() => {\n root?.unmount();\n });\n container?.remove();\n root = null;\n container = null;\n appMockState.app = null;\n appMockState.user = null;\n vi.restoreAllMocks();\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", previousActEnvironment);\n });\n\n it(\"redirects signed-out users to sign-in\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({ app, user: null });\n\n expect(app.redirectToSignIn).toHaveBeenCalled();\n expect(container.textContent).toBe(\"\");\n });\n\n it(\"redirects anonymous users to sign-in\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({ app, user: createUserTestDouble({ isAnonymous: true, restrictedReason: { type: \"anonymous\" } }) });\n\n expect(app.redirectToSignIn).toHaveBeenCalled();\n expect(container.textContent).toBe(\"\");\n });\n\n it(\"redirects users that are no longer restricted to their destination\", async () => {\n const app = createAppTestDouble();\n\n await renderOnboarding({ app, user: createUserTestDouble({ isRestricted: false }) });\n\n expect(app.redirectToAfterSignIn).toHaveBeenCalled();\n expect(app.redirectToSignIn).not.toHaveBeenCalled();\n });\n\n it(\"shows the administrator's public reason to admin-restricted users\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n user: createUserTestDouble({\n restrictedReason: { type: \"restricted_by_administrator\" },\n restrictedByAdmin: true,\n restrictedByAdminReason: \"Your sign-up was flagged by our fraud prevention rules.\",\n }),\n });\n\n expect(container.textContent).toContain(\"Your account has been restricted\");\n expect(container.textContent).toContain(\"Your sign-up was flagged by our fraud prevention rules.\");\n expect(container.textContent).not.toContain(\"Complete your account setup\");\n });\n\n it(\"falls back to a generic restricted message when no public reason is set\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n user: createUserTestDouble({\n restrictedReason: { type: \"restricted_by_administrator\" },\n restrictedByAdmin: true,\n restrictedByAdminReason: null,\n }),\n });\n\n expect(container.textContent).toContain(\"Your account has been restricted\");\n expect(container.textContent).toContain(\"An administrator has restricted your account.\");\n });\n\n it(\"shows the setup-required message for unknown restricted reasons\", async () => {\n const app = createAppTestDouble();\n\n const container = await renderOnboarding({\n app,\n // The reason types are a closed union, so an unknown reason can only come from a newer backend.\n user: createUserTestDouble({ restrictedReason: { type: \"some_future_reason\" } as unknown as CurrentUser[\"restrictedReason\"] }),\n });\n\n expect(container.textContent).toContain(\"Complete your account setup\");\n });\n});\n"],"mappings":"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"}
@@ -204,7 +204,7 @@ declare class _HexclaveAdminAppImplIncomplete<HasTokenStore extends boolean, Pro
204
204
  } & {
205
205
  uniqueIdentifier: string;
206
206
  };
207
- setCurrentUser: (userJsonPromise: Promise<import("@hexclave/shared/dist/current-user-BCkMYzHx").t["Client"]["Read"] | null>) => void;
207
+ setCurrentUser: (userJsonPromise: Promise<import("@hexclave/shared/dist/current-user-s-7OccLr").t["Client"]["Read"] | null>) => void;
208
208
  getConstructorOptions: () => {
209
209
  baseUrl?: string | {
210
210
  browser: string;
@@ -237,11 +237,11 @@ declare class _HexclaveAdminAppImplIncomplete<HasTokenStore extends boolean, Pro
237
237
  sendAnalyticsEventBatch: (body: string, options: {
238
238
  keepalive: boolean;
239
239
  }) => Promise<Result<Response, Error>>;
240
- addRequestListener: (listener: import("@hexclave/shared/dist/client-interface-PG5dXFPe").a) => () => void;
240
+ addRequestListener: (listener: import("@hexclave/shared/dist/client-interface-Rcforug9").a) => () => void;
241
241
  sendRequest: (path: string, requestOptions: RequestInit, requestType?: "client" | "server" | "admin") => Promise<Response & {
242
242
  usedTokens: {
243
- accessToken: import("@hexclave/shared/dist/sessions-ujYc3zVI").t;
244
- refreshToken: import("@hexclave/shared/dist/sessions-ujYc3zVI").i | null;
243
+ accessToken: import("@hexclave/shared/dist/sessions-DVUrufp6").t;
244
+ refreshToken: import("@hexclave/shared/dist/sessions-DVUrufp6").i | null;
245
245
  } | null;
246
246
  }>;
247
247
  getUrls: () => Readonly<import("@hexclave/shared/dist/handler-urls-BHt3v8Ai").s>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/admin-app-impl.ts"],"mappings":"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"}
1
+ {"version":3,"file":"admin-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/admin-app-impl.ts"],"mappings":"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"}
@@ -70,7 +70,10 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
70
70
  private readonly _analyticsOptions;
71
71
  private _sessionRecorder;
72
72
  private _eventTracker;
73
+ private _initAnalyticsCalled;
74
+ private _analyticsAppDisabledOnProject;
73
75
  private _pendingSignOut;
76
+ private readonly _externalTokenStoreSessionAdapter;
74
77
  private __DEMO_ENABLE_SLIGHT_FETCH_DELAY;
75
78
  private readonly _ownedAdminApps;
76
79
  private readonly _currentUserCache;
@@ -211,6 +214,7 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
211
214
  * - So different token stores are separated and don't leak information between each other, eg. if the same user sends two requests to the same server they should get a different session object
212
215
  */
213
216
  private _sessionsByTokenStoreAndSessionKey;
217
+ private _getSessionKeyForTokenStore;
214
218
  /**
215
219
  * @param overrideTokenObj The tokens to build the session for, if they haven't been written to the token store yet
216
220
  * (so we can warm a sign-in's session before the token store publishes it).
@@ -392,6 +396,18 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
392
396
  or: 'anonymous';
393
397
  }): Promise<ProjectCurrentUser<ProjectId>>;
394
398
  getUser(options?: GetCurrentUserOptions<HasTokenStore>): Promise<ProjectCurrentUser<ProjectId> | null>;
399
+ isExternalAuthApp(): boolean;
400
+ initAnalytics(): void;
401
+ /**
402
+ * Returns why this app will never record analytics, or null if it records them whenever it runs in a browser. The
403
+ * constructor and initAnalytics() both use this, so that the conditions under which analytics start and the
404
+ * conditions under which initAnalytics() throws can't drift apart.
405
+ *
406
+ * Whether the Analytics app is enabled on the project is not part of this, as the client only learns that once the
407
+ * backend rejects an upload; see _handleAnalyticsUploadResult.
408
+ */
409
+ private _getAnalyticsDisabledReason;
410
+ private _handleAnalyticsUploadResult;
395
411
  useUser(options: GetCurrentUserOptions<HasTokenStore> & {
396
412
  or: 'redirect';
397
413
  }): ProjectCurrentUser<ProjectId>;
@@ -597,8 +613,8 @@ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pr
597
613
  addRequestListener: (listener: RequestListener) => () => void;
598
614
  sendRequest: (path: string, requestOptions: RequestInit, requestType?: "client" | "server" | "admin") => Promise<Response & {
599
615
  usedTokens: {
600
- accessToken: import("@hexclave/shared/dist/sessions-ujYc3zVI").t;
601
- refreshToken: import("@hexclave/shared/dist/sessions-ujYc3zVI").i | null;
616
+ accessToken: import("@hexclave/shared/dist/sessions-DVUrufp6").t;
617
+ refreshToken: import("@hexclave/shared/dist/sessions-DVUrufp6").i | null;
602
618
  } | null;
603
619
  }>;
604
620
  getUrls: () => Readonly<ResolvedHandlerUrls$1>;
@@ -1 +1 @@
1
- {"version":3,"file":"client-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6EgB,4BAAA;AAAA,KAoRX,+CAAA,4DAA2G,gCAAA,CAAiC,aAAA,EAAe,SAAA;EAAe,YAAA;AAAA;AAAA,cAElK,gCAAA,8EAA8G,cAAA,CAAe,aAAA,EAAe,SAAA;EAtR7G;AAAA;AAc3C;;;;;EAd2C,gBA8R1B,qBAAA;IAAyB,KAAA,oCAAyC,+BAAA;EAAA;EAAA,mBAE/D,QAAA,EAAU,+CAAA,CAAgD,aAAA,EAAe,SAAA;EAAA,mBACzE,aAAA;IAAiB,gBAAA;IAA2B,WAAA;IAAsB,SAAA,GAAY,uBAAA;EAAA;EAAA,UACvF,iBAAA;EAAA,UACA,UAAA,EAAY,uBAAA;EAAA,mBACH,eAAA,EAAiB,cAAA,CAAe,aAAA;EAAA,mBAChC,eAAA,EAAiB,cAAA;EAAA,mBACjB,WAAA,EAAa,mBAAA;EAAA,mBACb,oBAAA,EAAsB,OAAA,CAAQ,mBAAA;EAAA,iBAEhC,iBAAA;EAAA,QACT,gBAAA;EAAA,QACA,aAAA;EAAA,QACA,oBAAA;EAAA,QACA,8BAAA;EAAA,QACA,eAAA;EAAA,iBACS,iCAAA;EAAA,QAET,gCAAA;EAAA,iBACS,eAAA;EAAA,iBAEA,iBAAA;EAAA,iBAyBA,oBAAA;EAAA,iBAGA,mBAAA;EAAA,iBAGA,4BAAA;EAAA,iBAMA,mCAAA;EAAA,iBAMA,sBAAA;EAmPQ;EAAA,iBA/OR,4CAAA;EAgPY;EAAA,iBAlOZ,gCAAA;EAAA,iBAaA,kCAAA;EAAA,iBAMA,qDAAA;EAAA,iBAaA,iDAAA;EAAA,iBA2BA,wBAAA;EAAA,iBAKA,qBAAA;EAAA,iBAKA,4BAAA;EAAA,iBAKA,gCAAA;EAAA,iBAGA,2BAAA;EAAA,iBAMA,iBAAA;EAAA,iBAOA,iBAAA;EAAA,iBAOA,4BAAA;EAAA,iBAOA,+BAAA;EAAA,iBAMA,cAAA;EAAA,iBAMA,cAAA;EAAA,iBAMA,gBAAA;EAAA,iBAMA,kBAAA;EAAA,iBAWA,kBAAA;EAAA,iBAWA,oBAAA;EAAA,iBAWA,kBAAA;EAAA,iBAWA,kBAAA;EAAA,iBAWA,qBAAA;EAAA,iBAeA,uBAAA;EAAA,iBAIA,yBAAA;EAAA,iBAIA,gCAAA;EAAA,QAET,0BAAA;EAAA,QACA,mCAAA;EAAA,QACA,4CAAA;EAAA,QACA,sCAAA;EAAA,QACA,8BAAA;EAAA,UAEQ,mBAAA,CAAoB,sBAAA,GAAyB,cAAA,GAAiB,OAAA,CAAQ,YAAA;EAqpBzD;EAAA,UA3oBb,8BAAA,CAA+B,OAAA;IAC7C,OAAA,QAAe,OAAA,CAAQ,eAAA;IACvB,mBAAA,QAA2B,OAAA;MAAU,WAAA;IAAA;IACrC,aAAA;MAAuB,WAAA;IAAA;IACvB,UAAA,EAAY,YAAA;IACZ,KAAA;EAAA;IACK,QAAA;IAAgB,OAAA,EAAS,eAAA;EAAA;IAA6B,QAAA;EAAA,KAAsB,OAAA,CAAQ,yBAAA;EAAA,UA8DjF,kCAAA,CACR,IAAA;IAAQ,QAAA;IAAkB,mBAAA;EAAA,GAC1B,OAAA,EAAS,eAAA,GACR,eAAA;cA6BS,OAAA,EAAS,gCAAA,CAAiC,aAAA,EAAe,SAAA,GAAY,YAAA;IAAiB,gBAAA;IAA2B,WAAA;IAAsB,SAAA,GAAY,uBAAA;EAAA;EAAA,QA+DvJ,+BAAA;EAAA,UA8GE,qBAAA;EAAA,UAUA,2BAAA,CAA4B,QAAA,QAAgB,OAAA;EAAA,UAwBtC,4BAAA,CACd,sBAAA,GAAyB,cAAA,EACzB,OAAA;IAAY,2BAAA;EAAA,IAAuC,OAAA;EAAA,UAgB3C,0BAAA,CAA2B,sBAAA,GAAyB,cAAA;EAAA,UAWpD,yBAAA;EAAA,UAKA,iCAAA;EAAA,UAcA,sCAAA;EAAA,UAcA,yCAAA;EAAA,UAaA,kDAAA;EAAA,UAUA,4BAAA;EAAA,UAeM,6BAAA,CAA8B,KAAA,EAAO,UAAA,GAAa,OAAA;EAAA,UA8BlD,uCAAA,IAA2C,OAAA;EAAA,UAY3C,qCAAA,CAAsC,OAAA;IACpD,2BAAA;IACA,sBAAA,GAAyB,cAAA;EAAA,IACvB,OAAA;EAAA,UAaY,4CAAA,CAA6C,OAAA;IAC3D,GAAA;IACA,UAAA,EAAY,GAAA;IACZ,2BAAA;IACA,sBAAA,GAAyB,cAAA;EAAA,IACvB,OAAA;EAAA,UAsBY,iCAAA,CAAkC,qBAAA,GAAwB,GAAA,GAAM,OAAA;EAg2BxE;;;;;EAAA,UAptBE,oBAAA;EAAA,UAQM,oBAAA,CAAqB,IAAA,UAAc,OAAA,QAAY,OAAA;EAAA,UAIrD,uBAAA,CAAwB,IAAA,UAAc,OAAA;EAAA,UAKtC,iBAAA,EAAiB,KAAA,CAAA,WAAA;EAAA,UACjB,6BAAA,EAA6B,OAAA,SAAA,KAAA,CAAA,WAAA;EAAA,UAC7B,mBAAA,EAAmB,OAAA,CAAA,WAAA,EAAA,KAAA,CAAA,WAAA;EAAA,UACnB,8BAAA,EAAgC,KAAA,CAAM,WAAA;EAAA,QACxC,mCAAA;EAAA,cACM,6BAAA;EAAA,cAGA,uBAAA;EAAA,QAGN,0CAAA;EAAA,QAGA,2BAAA;EAAA,QAIA,qCAAA;EAAA,QAYA,yBAAA;EAAA,QAMA,wBAAA;EAAA,QAGA,6BAAA;EAAA,QAsBA,iCAAA;EAAA,UAkDE,qBAAA,CAAsB,OAAA,EAAS,MAAA,CAAO,OAAA,GAAU,WAAA;EAAA,QA2BlD,uCAAA;EAAA,cAOM,sBAAA;EAAA,cAOA,4BAAA;EAAA,QAGN,qBAAA;EAAA,QAMA,kCAAA;EAAA,QAWA,+BAAA;EAAA,QAeA,2BAAA;EAAA,QAmBA,iCAAA;EAAA,QAmBA,+BAAA;EAAA,QAwDM,yBAAA;EAAA,QAWA,uBAAA;EAAA,UAIJ,2BAAA,IAA+B,KAAA,CAAM,WAAA;EAAA,UAkErC,sBAAA,CAAuB,YAAA,EAAc,YAAA,EAAc,sBAAA,GAAyB,cAAA,GAAiB,KAAA,CAAM,WAAA;EAAA,UAkInG,cAAA,CAAe,sBAAA,GAAyB,cAAA,GAAiB,KAAA,CAAM,WAAA;EAge1C;;;;;;;;EAAA,QAjdvB,kCAAA;EAAA,QAEA,2BAAA;EA+kBoC;;;;EAAA,UAxkBlC,yBAAA,CAA0B,UAAA,EAAY,KAAA,CAAM,WAAA,GAAc,gBAAA,GAAmB,WAAA,GAAc,eAAA;EAAA,UA2BrF,WAAA,CACd,sBAAA,GAAyB,cAAA,EACzB,OAAA;IAAY,2BAAA;EAAA,IACX,OAAA,CAAQ,eAAA;EAAA,UAOD,WAAA,CAAY,sBAAA,GAAyB,cAAA,GAAiB,eAAA;EAAA,QAcxD,qBAAA;EAAA,UACQ,0BAAA,CAA2B,MAAA;IAAU,WAAA;IAA4B,YAAA;EAAA,IAAsB,OAAA;EAAA,UAiC7F,gCAAA,CAAiC,MAAA;IAAU,WAAA;IAA4B,YAAA;EAAA,IAAyB,cAAA;EAAA,UAUhG,wBAAA,CAAyB,sBAAA,GAAyB,cAAA,WAAyB,cAAA,OAAqB,SAAA;EAAA,UAIhG,2BAAA,CAA4B,sBAAA,GAAyB,cAAA,mBAAiC,cAAA,OAAqB,SAAA;EAAA,UAM3G,kBAAA;IAAgC,SAAA;EAAA;EAAA,UAIhC,sBAAA;IAA4C,SAAA;EAAA;EAAA,UAM5C,sBAAA,CAAuB,IAAA,EAAM,kBAAA,qBAAuC,OAAA;EAAA,UA2BpE,yBAAA,CAA0B,IAAA,EAAM,mBAAA,qBAAwC,sBAAA,qBAA2C,cAAA;EAAA,UAMnH,uBAAA,CAAwB,IAAA,EAAM,sBAAA,qBAA2C,QAAA;EAAA,UAUzE,iCAAA,CAAkC,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,kBAAA,qBAAuC,kBAAA;EAAA,UAYzG,qCAAA,CAAsC,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,kBAAA,qBAAuC,sBAAA;EAAA,UAmB7G,mBAAA,CACR,IAAA,EAAM,eAAA,qBAAoC,eAAA,qBAAoC,GAAA,CAAI,SAAA,QAAiB,6BAAA,IAAiC,GAAA,CAAI,SAAA,QAAiB,6BAAA,IACxJ,IAAA,CAAK,MAAA,0CAAgD,IAAA,CAAK,MAAA;EAAA,UA2BnD,qBAAA,CAAsB,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,eAAA,qBAAoC,MAAA;EAAA,UAC1F,qBAAA,CAAsB,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,eAAA,qBAAoC,MAAA;EAAA,UAC1F,qBAAA,CAAsB,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,GAAA,CAAI,SAAA,QAAiB,6BAAA,IAAiC,MAAA;EAAA,UAC5G,qBAAA,CAAsB,OAAA,EAAS,eAAA,EAAiB,IAAA,EAAM,GAAA,CAAI,SAAA,QAAiB,6BAAA,IAAiC,MAAA;EAAA,UAkB5G,mBAAA,CAAoB,IAAA,EAAM,SAAA,oBAA6B,OAAA,EAAS,eAAA,GAAkB,IAAA;EAAA,UAuElF,6BAAA,CAA8B,IAAA,EAAM,mBAAA,oBAAuC,OAAA,EAAS,eAAA,GAAkB,cAAA;EAAA,UA2BtG,mCAAA,CAAoC,IAAA,EAAM,0BAAA,oBAA8C,OAAA,EAAS,eAAA,GAAkB,oBAAA;EAAA,UAcnH,4BAAA,CAA6B,IAAA,EAAM,iBAAA,oBAAqC,OAAA,EAAS,eAAA,GAAkB,aAAA;EAAA,UA8CnG,mBAAA,CAAoB,IAAA,EAAM,QAAA,qBAA6B,IAAA;EAAA,UASvD,6BAAA,CAA8B,QAAA,EAAU,4BAAA,GAA+B,oBAAA;EAAA,UAwBvE,6BAAA,CAA8B,QAAA,EAAU,4BAAA,GAA+B,oBAAA;EAAA,UAUvE,4BAAA,CAA6B,QAAA;IACrC,YAAA;IACA,sBAAA;MACE,EAAA;MACA,KAAA;MACA,KAAA;MACA,SAAA;MACA,QAAA;IAAA;EAAA,IAEA,eAAA;EAAA,UAOM,WAAA,CAAY,OAAA,EAAS,eAAA,GAAkB,IAAA;EAAA,UAiFvC,4BAAA,CAA6B,IAAA,EAAM,sBAAA,oBAA0C,OAAA,EAAS,eAAA,GAAkB,yBAAA;EAAA,UAmBxG,eAAA,CAAgB,IAAA,EAAM,WAAA,CAAY,eAAA,sBAAqC,SAAA,qBAA8B,QAAA;EAAA,UA4BrG,2BAAA,CAA4B,IAAA,EAAM,WAAA,CAAY,eAAA,qBAAoC,OAAA,EAAS,eAAA,GAAkB,SAAA;EAAA,UAoW7G,wBAAA,CAAyB,OAAA,EAAS,eAAA,GAAkB,iBAAA;EAAA,UAoBpD,eAAA,CAAgB,cAAA,UAAwB,IAAA,mBAAuB,OAAA,EAAS,eAAA,UAAyB,IAAA,CAAK,QAAA;EAiE1G,OAAA,CAAQ,OAAA;IAAW,MAAA;IAAgB,MAAA;EAAA;IAAqB,MAAA;IAAgB,MAAA;EAAA;IAAqB,MAAA;IAAgB,gBAAA;EAAA,IAA6B,OAAA,CAAQ,IAAA;EAaxJ,OAAA,CAAQ,OAAA;IAAW,MAAA;IAAgB,MAAA;EAAA;IAAqB,MAAA;IAAgB,MAAA;EAAA;IAAqB,MAAA;IAAgB,gBAAA;EAAA,IAA6B,IAAA;EASpI,YAAA,CAAa,OAAA,EAAS,8BAAA,GAAiC,OAAA,CAAQ,oBAAA;EAc/D,YAAA,CAAa,OAAA,EAAS,8BAAA,GAAiC,OAAA,CAAQ,oBAAA;EAU/D,kBAAA,CAAmB,OAAA;IAAW,SAAA;IAAmB,cAAA;EAAA;IAA8B,SAAA;IAAmB,cAAA;IAAyB,MAAA;EAAA,IAAmB,OAAA;EAoBpJ,WAAA,CAAY,OAAA,EAAS,8BAAA,GAAiC,oBAAA;EAQtD,WAAA,CAAY,OAAA,EAAS,8BAAA,GAAiC,oBAAA;EAAA,UAS5C,oBAAA,CAAqB,IAAA,EAAM,WAAA,CAAY,eAAA,qBAAoC,OAAA,EAAS,eAAA,GAAkB,kBAAA,CAAmB,SAAA;EAAA,UAUzH,sBAAA,CAAuB,IAAA,EAAM,YAAA,qBAAiC,aAAA;EAAA,UAY9D,iBAAA,CAAkB,YAAA,UAAsB,OAAA,EAAS,eAAA,GAAkB,+BAAA;EAAA,IAczE,SAAA,IAAa,SAAA;EAAA,IAIb,OAAA;EAAA,QAII,wBAAA;EAAA,QAaA,2BAAA;EAAA,QAgBA,4BAAA;EAAA,QAaA,6BAAA;EAAA,QAaM,kCAAA;EAAA,UA+BE,UAAA,CAAW,GAAA,WAAc,OAAA;EAAA,IAqBrC,IAAA,IAAQ,QAAA,CAAS,qBAAA;EAAA,UAOX,QAAA,IAAY,QAAA,CAAS,qBAAA;EAAA,UAIrB,yCAAA;EAAA,UAyBA,yCAAA,CAA0C,UAAA,EAAY,GAAA,GAAM,wBAAA;EAAA,UAetD,uCAAA,CAAwC,UAAA,EAAY,GAAA,GAAM,OAAA,CAAQ,wBAAA;EAAA,UAexE,gCAAA;EAAA,UAeM,iCAAA,CAAkC,OAAA;IAChD,WAAA;IACA,KAAA;IACA,aAAA;IACA,wBAAA;IACA,2BAAA;IACA,sBAAA,GAAyB,cAAA;EAAA,IACvB,OAAA;EAAA,UA2DM,2CAAA,IAA+C,wBAAA;EAAA,UAYzC,cAAA,IAAc,OAAA,CAAA,GAAA;EAAA,UAOd,WAAA,CAAY,OAAA;IAAW,GAAA,EAAK,GAAA;IAAc,OAAA;EAAA,IAAmB,OAAA;EA6B7E,WAAA,KAAgB,EAAA;EAAA,UAYA,kBAAA,CAAmB,GAAA,UAAa,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAAA,UAW3D,kBAAA,CACd,WAAA,QAAmB,WAAA,EACnB,OAAA,GAAU,iBAAA,EACV,eAAA;IACE,2BAAA;IACA,sBAAA,GAAyB,cAAA;EAAA,IAC1B,OAAA;EAAA,UAQa,wBAAA,CACd,WAAA,QAAmB,WAAA,EACnB,OAAA,GAAU,iBAAA,EACV,eAAA;IACE,2BAAA;IACA,sBAAA,GAAyB,cAAA;EAAA,IAE1B,OAAA;EAAA,UA6EO,6BAAA,CAA8B,WAAA,QAAmB,WAAA;EAAA,UAMjD,8BAAA,CAA+B,WAAA,QAAmB,WAAA,EAAa,OAAA,GAAU,iBAAA;EAI7E,gBAAA,CAAiB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAC5C,gBAAA,CAAiB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAC5C,iBAAA,CAAkB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAO7C,2BAAA,CAA4B,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACvD,uBAAA,CAAwB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACnD,wBAAA,CAAyB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACpD,cAAA,CAAe,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAC1C,uBAAA,CAAwB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACnD,2BAAA,CAA4B,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACvD,qBAAA,CAAsB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACjD,qBAAA,CAAsB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACjD,oBAAA,CAAqB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAChD,sBAAA,CAAuB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAClD,yBAAA,CAA0B,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACrD,eAAA,CAAgB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAC3C,wBAAA,CAAyB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACpD,wBAAA,CAAyB,OAAA,GAAU,iBAAA,GAAiB,OAAA;EACpD,aAAA,CAAc,OAAA,GAAU,iBAAA,GAAiB,OAAA;EAEzC,uBAAA,CAAwB,KAAA,UAAe,OAAA;IAAY,WAAA;EAAA,IAAyB,OAAA,CAAQ,MAAA,YAAkB,WAAA;EAItG,kBAAA,CAAmB,KAAA,UAAe,OAAA;IACtC,WAAA;EAAA,IACE,OAAA,CAAQ,MAAA;IAAS,KAAA;EAAA,GAAiB,WAAA,gCAA2C,WAAA;EAU3E,aAAA,CAAc,OAAA;IAAW,QAAA;IAAkB,IAAA;EAAA,IAAiB,OAAA,CAAQ,MAAA,YAAkB,WAAA;EAItF,uBAAA,CAAwB,IAAA,WAAe,OAAA,CAAQ,MAAA,YAAkB,WAAA;EAIjE,wBAAA,CAAyB,IAAA,WAAe,OAAA,CAAQ,MAAA,YAAkB,WAAA,4BAAuC,WAAA;EAQzG,oBAAA,CAAqB,IAAA,WAAe,OAAA,CAAQ,MAAA,YAAkB,WAAA,4BAAuC,WAAA;EAcrG,wBAAA,CAAyB,IAAA,WAAe,OAAA,CAAQ,MAAA;IAAS,eAAA;EAAA,GAA2B,WAAA,4BAAuC,WAAA;EAc3H,WAAA,CAAY,IAAA,WAAe,OAAA,CAAQ,MAAA,YAAkB,WAAA;EAOrD,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAmB,OAAA,CAAQ,kBAAA,CAAmB,SAAA;EACxG,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAgB,OAAA,CAAQ,kBAAA,CAAmB,SAAA;EACrG,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAoB,OAAA,CAAQ,kBAAA,CAAmB,SAAA;EACzG,OAAA,CAAQ,OAAA,GAAU,qBAAA,CAAsB,aAAA,IAAiB,OAAA,CAAQ,kBAAA,CAAmB,SAAA;EAiD1F,iBAAA;EAMA,aAAA;EA+M2C;;;;;;;;EAAA,QA/KnC,2BAAA;EAAA,QAaA,4BAAA;EAYR,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAmB,kBAAA,CAAmB,SAAA;EAChG,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAgB,kBAAA,CAAmB,SAAA;EAC7F,OAAA,CAAQ,OAAA,EAAS,qBAAA,CAAsB,aAAA;IAAmB,EAAA;EAAA,IAAoB,kBAAA,CAAmB,SAAA;EACjG,OAAA,CAAQ,OAAA,GAAU,qBAAA,CAAsB,aAAA,IAAiB,kBAAA,CAAmB,SAAA;EAkE5E,+BAAA,CAAgC,OAAA,EAAS,eAAA,EAAiB,OAAA,EAAS,4BAAA,CAA6B,aAAA,IAAiB,gBAAA;EAsB3G,yBAAA,CAA0B,GAAA,EAAK,SAAA,GAAY,OAAA,CAAQ,gBAAA;EAsBnD,cAAA,CAAe,OAAA,EAAS,4BAAA,CAA6B,aAAA;IAAmB,IAAA;EAAA,IAAkB,OAAA,CAAQ,gBAAA;EAClG,cAAA,CAAe,OAAA,EAAS,4BAAA,CAA6B,aAAA;IAAmB,IAAA;EAAA,IAAmB,OAAA,CAAQ,gBAAA;EAiBzG,cAAA,CAAe,OAAA,EAAS,4BAAA,CAA6B,aAAA;IAAmB,IAAA;EAAA,IAAkB,gBAAA;EAC1F,cAAA,CAAe,OAAA,EAAS,4BAAA,CAA6B,aAAA;IAAmB,IAAA;EAAA,IAAmB,gBAAA;EAkB3F,mBAAA,CAAoB,OAAA;IAAW,UAAA,EAAY,cAAA;EAAA,KAAoB,IAAA;IAAQ,iBAAA;EAAA,MAAiC,OAAA;EAYlG,uBAAA,CAAwB,OAAA;IAAW,UAAA,EAAY,cAAA;EAAA,IAAmB,OAAA;EAAA,UAMxD,iBAAA,CAAkB,MAAA,EAAQ,iBAAA,EAAmB,OAAA,EAAS,eAAA,GAAe,OAAA;EAM/E,eAAA,CAAgB,QAAA,EAAU,YAAA,EAAc,OAAA;IAC5C,QAAA;EAAA,IACD,OAAA;EA0YkI;;;EAAA,UAvUnH,gBAAA,CAAiB,KAAA,EAAO,WAAA,uCAAkD,OAAA,EAAS,eAAA,GAAkB,OAAA;EA4anF;;;;EAAA,UA3ZlB,sBAAA,OAA6B,QAAA,QAAgB,OAAA,CAAQ,MAAA,CAAO,CAAA,EAAG,CAAA,KAAM,OAAA,CAAQ,MAAA,CAAO,CAAA;IAAM,WAAA;IAAqB,YAAA;IAAsB,OAAA;EAAA,GAAoB,CAAA;EAcnK,oBAAA,CAAqB,OAAA;IACzB,KAAA;IACA,QAAA;IACA,UAAA;EAAA,IACE,OAAA,CAAQ,MAAA,YAAkB,WAAA,4BAAuC,WAAA;EA4B/D,oBAAA,CAAqB,OAAA;IACzB,KAAA;IACA,QAAA;IACA,UAAA;IACA,sBAAA;IACA,uBAAA;EAAA,IACE,OAAA,CAAQ,MAAA,YAAkB,WAAA,iCAA4C,WAAA,oDAA+D,WAAA,iCAA4C,WAAA;EA0D/K,kBAAA,IAAkB,OAAA;;;;EAqBlB,mBAAA,CAAoB,IAAA,UAAc,OAAA;IAAY,UAAA;EAAA,IAAyB,OAAA,CAAQ,MAAA,YAAkB,WAAA,4BAAuC,WAAA;EA6azG;;;;;;;;;;;;;;;;;;;;EArX/B,cAAA,CAAe,OAAA;IACnB,MAAA;IACA,eAAA;IACA,WAAA;IACA,cAAA;IACA,UAAA,IAAc,GAAA,UAAa,SAAA;IAC3B,gBAAA;EAAA,IACE,OAAA,CAAQ,MAAA,SAAe,WAAA,mBAA8B,WAAA,0BAAqC,WAAA;EAmFxF,aAAA,CAAc,IAAA,UAAc,IAAA,UAAc,OAAA;IAAY,UAAA;EAAA,IAAyB,OAAA,CAAQ,MAAA,YAAkB,WAAA,4BAAuC,WAAA;EAiChJ,iBAAA,IAAqB,OAAA,CAAQ,MAAA,YAAkB,WAAA,kCAA6C,WAAA,sBAAiC,WAAA;EA0C7H,iBAAA,CACJ,OAAA;IACE,+BAAA;EAAA,IACD,OAAA;EAAA,UAwDa,QAAA,CAAS,OAAA,EAAS,eAAA,EAAiB,OAAA;IAAY,WAAA,GAAc,GAAA;EAAA,IAAiB,OAAA;EAAA,UAoC9E,8BAAA,IAAkC,OAAA;EAmB5C,OAAA,CAAQ,OAAA;IAAY,WAAA,GAAc,GAAA;IAAc,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;EAOhF,cAAA,CAAe,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;EAQjE,cAAA,CAAe,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA;EAQlC,eAAA,CAAgB,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;EAQlE,eAAA,CAAgB,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA;EAQnC,sBAAA,CAAuB,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;EAIzE,sBAAA,CAAuB,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA;EAI1C,cAAA,CAAe,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;IAAU,cAAA;EAAA;EAM3E,cAAA,CAAe,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA;IAAqB,cAAA;EAAA;EAMvD,WAAA,CAAY,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA,IAAmB,OAAA;IAAU,WAAA;IAA4B,YAAA;EAAA;EAQpG,WAAA,CAAY,OAAA;IAAY,UAAA,GAAa,cAAA;EAAA;IAAqB,WAAA;IAA4B,YAAA;EAAA;EAQhF,UAAA,IAAc,OAAA,CAAQ,OAAA;EAK5B,UAAA,IAAc,OAAA;EAAA,UAKE,kBAAA,CAAmB,OAAA,EAAS,eAAA,GAAkB,OAAA,CAAQ,iBAAA;EAAA,UAS5D,iBAAA,CAAkB,OAAA,EAAS,eAAA,GAAkB,iBAAA;EAAA,UAQvC,cAAA,CAAe,OAAA,EAAS,eAAA,EAAiB,UAAA,EAAY,yBAAA;IAA8B,WAAA;IAAqB,MAAA;EAAA,IAAmB,OAAA,CAAQ,iBAAA;EAAA,UAWnI,YAAA,CAAa,OAAA,EAAS,eAAA,GAAe,OAAA;EAAA,UAKrC,eAAA,CAAgB,OAAA,EAAS,eAAA,GAAe,OAAA;EAAA,UASxC,aAAA,IAAa,OAAA;EAAA,UAIb,eAAA,IAAe,OAAA;EAAA,UAIf,qBAAA,CAAsB,OAAA,EAAS,eAAA,GAAe,OAAA;EAAA,YAIlD,0BAAA;8EAEgE,IAAA,EAChE,kBAAA,CAAmB,aAAA,EAAe,SAAA,MACvC,cAAA,CAAe,aAAA,EAAe,SAAA;EAAA;EAAA,KA6BhC,0BAAA;wBAEiB,kBAAA,CAAmB,aAAA,EAAe,SAAA;sCA2BlB,OAAA,CAAQ,eAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAMC,OAAA;MAAa,SAAA;IAAA,MAAoB,OAAA,CAAA,MAAA,CAAA,QAAA,EAAA,KAAA;4CAGhC,OAAA;MAAa,SAAA;IAAA,MAAoB,OAAA,CAAA,MAAA,CAAA,QAAA,EAAA,KAAA;mCAG9C,eAAA;gCAIjB,cAAA,EACI,WAAA,EAAW,WAAA,qCACe,OAAA,CAAA,QAAA;;;;;;;;kCAMR,GAAA,EAAG,OAAA;MAAc,OAAA;IAAA,MAAmB,OAAA;iDAGrB,WAAA,EAAW,OAAA,GAAY,iBAAA,KAAiB,OAAA;2CAG9C,WAAA,EAAW,OAAA,GAAY,iBAAA,KAAiB,OAAA;;;;MAelD,WAAA;MAAqB,YAAA;IAAA,MAAsB,OAAA;;2CAMtC,OAAA;EAAA;AAAA"}