@hexclave/next 1.0.13 → 1.0.15

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 (189) hide show
  1. package/dist/clickmap/clickmap-core.d.ts +15 -0
  2. package/dist/clickmap/clickmap-core.d.ts.map +1 -0
  3. package/dist/clickmap/clickmap-core.js +1527 -0
  4. package/dist/clickmap/clickmap-core.js.map +1 -0
  5. package/dist/clickmap/clickmap-styles.d.ts +5 -0
  6. package/dist/clickmap/clickmap-styles.d.ts.map +1 -0
  7. package/dist/clickmap/clickmap-styles.js +1095 -0
  8. package/dist/clickmap/clickmap-styles.js.map +1 -0
  9. package/dist/clickmap/index.d.ts +16 -0
  10. package/dist/clickmap/index.d.ts.map +1 -0
  11. package/dist/clickmap/index.js +74 -0
  12. package/dist/clickmap/index.js.map +1 -0
  13. package/dist/components/api-key-dialogs.js +2 -2
  14. package/dist/components/credential-sign-in.js +1 -1
  15. package/dist/components/credential-sign-up.js +1 -1
  16. package/dist/components/magic-link-sign-in.js +1 -1
  17. package/dist/components/message-cards/known-error-message-card.d.ts +1 -1
  18. package/dist/components/team-switcher.js +1 -1
  19. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
  20. package/dist/components-page/account-settings/email-and-auth/emails-section.js +1 -1
  21. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
  22. package/dist/components-page/account-settings/email-and-auth/password-section.js +1 -1
  23. package/dist/components-page/account-settings/teams/team-creation-page.js +1 -1
  24. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +1 -1
  25. package/dist/components-page/auth-page.js +1 -1
  26. package/dist/components-page/cli-auth-confirm.js +1 -1
  27. package/dist/components-page/cli-auth-confirm.test.js +1 -1
  28. package/dist/components-page/forgot-password.d.ts.map +1 -1
  29. package/dist/components-page/forgot-password.js +2 -3
  30. package/dist/components-page/forgot-password.js.map +1 -1
  31. package/dist/components-page/hexclave-handler-client.d.ts +1 -1
  32. package/dist/components-page/mfa.js +4 -19
  33. package/dist/components-page/mfa.js.map +1 -1
  34. package/dist/components-page/oauth-callback.js +1 -1
  35. package/dist/components-page/onboarding.js +1 -1
  36. package/dist/components-page/password-reset.d.ts.map +1 -1
  37. package/dist/components-page/password-reset.js +5 -7
  38. package/dist/components-page/password-reset.js.map +1 -1
  39. package/dist/components-page/team-creation.js +1 -1
  40. package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
  41. package/dist/dev-tool/dev-tool-core.js +258 -262
  42. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  43. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  44. package/dist/dev-tool/dev-tool-styles.d.ts.map +1 -1
  45. package/dist/dev-tool/dev-tool-styles.js +13 -143
  46. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  47. package/dist/dev-tool/index.d.ts.map +1 -1
  48. package/dist/dev-tool/index.js +5 -12
  49. package/dist/dev-tool/index.js.map +1 -1
  50. package/dist/esm/clickmap/clickmap-core.d.ts +15 -0
  51. package/dist/esm/clickmap/clickmap-core.d.ts.map +1 -0
  52. package/dist/esm/clickmap/clickmap-core.js +1525 -0
  53. package/dist/esm/clickmap/clickmap-core.js.map +1 -0
  54. package/dist/esm/clickmap/clickmap-styles.d.ts +5 -0
  55. package/dist/esm/clickmap/clickmap-styles.d.ts.map +1 -0
  56. package/dist/esm/clickmap/clickmap-styles.js +1093 -0
  57. package/dist/esm/clickmap/clickmap-styles.js.map +1 -0
  58. package/dist/esm/clickmap/index.d.ts +16 -0
  59. package/dist/esm/clickmap/index.d.ts.map +1 -0
  60. package/dist/esm/clickmap/index.js +72 -0
  61. package/dist/esm/clickmap/index.js.map +1 -0
  62. package/dist/esm/components/api-key-dialogs.js +2 -2
  63. package/dist/esm/components/credential-sign-in.js +1 -1
  64. package/dist/esm/components/credential-sign-up.js +1 -1
  65. package/dist/esm/components/magic-link-sign-in.js +1 -1
  66. package/dist/esm/components/team-switcher.js +1 -1
  67. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +1 -1
  68. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +1 -1
  69. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +1 -1
  70. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +1 -1
  71. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +1 -1
  72. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +1 -1
  73. package/dist/esm/components-page/auth-page.js +1 -1
  74. package/dist/esm/components-page/cli-auth-confirm.js +1 -1
  75. package/dist/esm/components-page/cli-auth-confirm.test.js +1 -1
  76. package/dist/esm/components-page/forgot-password.d.ts.map +1 -1
  77. package/dist/esm/components-page/forgot-password.js +2 -3
  78. package/dist/esm/components-page/forgot-password.js.map +1 -1
  79. package/dist/esm/components-page/hexclave-handler-client.d.ts +1 -1
  80. package/dist/esm/components-page/mfa.js +4 -19
  81. package/dist/esm/components-page/mfa.js.map +1 -1
  82. package/dist/esm/components-page/oauth-callback.js +1 -1
  83. package/dist/esm/components-page/onboarding.js +1 -1
  84. package/dist/esm/components-page/password-reset.d.ts.map +1 -1
  85. package/dist/esm/components-page/password-reset.js +5 -7
  86. package/dist/esm/components-page/password-reset.js.map +1 -1
  87. package/dist/esm/components-page/team-creation.js +1 -1
  88. package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
  89. package/dist/esm/dev-tool/dev-tool-core.js +35 -39
  90. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  91. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  92. package/dist/esm/dev-tool/dev-tool-styles.d.ts.map +1 -1
  93. package/dist/esm/dev-tool/dev-tool-styles.js +13 -143
  94. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  95. package/dist/esm/dev-tool/index.d.ts.map +1 -1
  96. package/dist/esm/dev-tool/index.js +2 -9
  97. package/dist/esm/dev-tool/index.js.map +1 -1
  98. package/dist/esm/generated/global-css.d.ts +1 -1
  99. package/dist/esm/generated/global-css.js +1 -1
  100. package/dist/esm/generated/global-css.js.map +1 -1
  101. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  102. package/dist/esm/in-page-ui/base-styles.d.ts +5 -0
  103. package/dist/esm/in-page-ui/base-styles.d.ts.map +1 -0
  104. package/dist/esm/in-page-ui/base-styles.js +166 -0
  105. package/dist/esm/in-page-ui/base-styles.js.map +1 -0
  106. package/dist/esm/in-page-ui/dom.d.ts +15 -0
  107. package/dist/esm/in-page-ui/dom.d.ts.map +1 -0
  108. package/dist/esm/in-page-ui/dom.js +44 -0
  109. package/dist/esm/in-page-ui/dom.js.map +1 -0
  110. package/dist/esm/lib/auth.js +1 -1
  111. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +5 -1
  112. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  113. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +20 -0
  114. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  115. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  116. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +4 -2
  117. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  118. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +2 -2
  119. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts +13 -0
  120. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  121. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +146 -14
  122. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  123. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js +221 -0
  124. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  125. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
  126. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  127. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js +1 -1
  128. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +5 -0
  129. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  130. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  131. package/dist/esm/providers/theme-provider.js +1 -1
  132. package/dist/generated/global-css.d.ts +1 -1
  133. package/dist/generated/global-css.js +1 -1
  134. package/dist/generated/global-css.js.map +1 -1
  135. package/dist/generated/quetzal-translations.d.ts +2 -2
  136. package/dist/in-page-ui/base-styles.d.ts +5 -0
  137. package/dist/in-page-ui/base-styles.d.ts.map +1 -0
  138. package/dist/in-page-ui/base-styles.js +168 -0
  139. package/dist/in-page-ui/base-styles.js.map +1 -0
  140. package/dist/in-page-ui/dom.d.ts +15 -0
  141. package/dist/in-page-ui/dom.d.ts.map +1 -0
  142. package/dist/in-page-ui/dom.js +51 -0
  143. package/dist/in-page-ui/dom.js.map +1 -0
  144. package/dist/index.d.ts +1 -1
  145. package/dist/integrations/convex/component/convex.config.d.ts +1 -1
  146. package/dist/lib/auth.js +1 -1
  147. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +5 -1
  148. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  149. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +20 -0
  150. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  151. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  152. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +4 -2
  153. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  154. package/dist/lib/hexclave-app/apps/implementations/common.js +2 -2
  155. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts +13 -0
  156. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  157. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +146 -14
  158. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  159. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js +221 -0
  160. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  161. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
  162. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +1 -1
  163. package/dist/lib/hexclave-app/apps/implementations/session-replay.js +1 -1
  164. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +5 -0
  165. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  166. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  167. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +1 -1
  168. package/dist/lib/hexclave-app/common.d.ts +1 -1
  169. package/dist/providers/hexclave-provider-client.d.ts +1 -1
  170. package/dist/providers/theme-provider.js +1 -1
  171. package/dist/{storage-CKzvsBxG.d.ts → storage-ksajV_p6.d.ts} +1 -1
  172. package/dist/{storage-CKzvsBxG.d.ts.map → storage-ksajV_p6.d.ts.map} +1 -1
  173. package/package.json +4 -4
  174. package/src/clickmap/clickmap-core.ts +1997 -0
  175. package/src/clickmap/clickmap-styles.ts +1102 -0
  176. package/src/clickmap/index.ts +95 -0
  177. package/src/components-page/forgot-password.tsx +1 -2
  178. package/src/components-page/mfa.tsx +12 -21
  179. package/src/components-page/password-reset.tsx +4 -6
  180. package/src/dev-tool/dev-tool-core.ts +38 -65
  181. package/src/dev-tool/dev-tool-styles.ts +13 -142
  182. package/src/dev-tool/index.ts +1 -14
  183. package/src/in-page-ui/base-styles.ts +171 -0
  184. package/src/in-page-ui/dom.ts +80 -0
  185. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +23 -1
  186. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +7 -0
  187. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +287 -0
  188. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +226 -16
  189. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +3 -0
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
+ import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
3
4
  import { yupResolver } from "@hookform/resolvers/yup";
4
5
  import { yupObject, yupString } from "@hexclave/shared/dist/schema-fields";
5
- import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
6
6
  import { Button, Input, Label, Typography } from "@hexclave/ui";
7
7
  import { useState } from "react";
8
8
  import { useForm } from "react-hook-form";
@@ -1 +1 @@
1
- {"version":3,"file":"dev-tool-core.d.ts","names":[],"sources":["../../../src/dev-tool/dev-tool-core.ts"],"mappings":";;;iBA6yEgB,aAAA,CAAc,GAAA,EAAK,cAAA"}
1
+ {"version":3,"file":"dev-tool-core.d.ts","names":[],"sources":["../../../src/dev-tool/dev-tool-core.ts"],"mappings":";;;iBAkxEgB,aAAA,CAAc,GAAA,EAAK,cAAA"}
@@ -1,4 +1,6 @@
1
+ import { DEV_TOOL_ROOT_ID } from "@hexclave/shared/dist/utils/dev-tool";
1
2
  import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
3
+ import { getGlobalUiInstance, h, hasAppendChild, setGlobalUiInstance, setHtml } from "../in-page-ui/dom.js";
2
4
  import { hexclaveAppInternalsSymbol } from "../lib/hexclave-app/common.js";
3
5
  import { isLocalhost } from "@hexclave/shared/dist/utils/urls";
4
6
  import { getPagePrompt } from "../lib/hexclave-app/url-targets.js";
@@ -10,7 +12,7 @@ import { clampTriggerPosition, getSnappedTriggerPlacement, resolveTriggerPositio
10
12
  //#region src/dev-tool/dev-tool-core.ts
11
13
  const STORAGE_KEY = "__hexclave-dev-tool-state";
12
14
  const TRIGGER_POS_KEY = "hexclave-devtool-trigger-position";
13
- const ROOT_ID = "__hexclave-dev-tool-root";
15
+ const ROOT_ID = DEV_TOOL_ROOT_ID;
14
16
  const GLOBAL_INSTANCE_KEY = "__hexclave-dev-tool-instance";
15
17
  const MAX_LOG_ENTRIES = 500;
16
18
  const CONSOLE_LOG_BATCH_SIZE = 100;
@@ -100,19 +102,6 @@ function createStateStore() {
100
102
  }
101
103
  };
102
104
  }
103
- function isDevToolGlobalInstance(value) {
104
- return typeof value === "object" && value !== null && typeof Reflect.get(value, "cleanup") === "function";
105
- }
106
- function getGlobalDevToolInstance() {
107
- if (typeof window === "undefined") return null;
108
- const value = Reflect.get(window, GLOBAL_INSTANCE_KEY);
109
- return isDevToolGlobalInstance(value) ? value : null;
110
- }
111
- function setGlobalDevToolInstance(instance) {
112
- if (typeof window === "undefined") return;
113
- if (instance === null) Reflect.deleteProperty(window, GLOBAL_INSTANCE_KEY);
114
- else Reflect.set(window, GLOBAL_INSTANCE_KEY, instance);
115
- }
116
105
  function getGlobalLogStore() {
117
106
  const g = globalThis;
118
107
  if (!g.__STACK_DEV_TOOL_LOG_STORE__) g.__STACK_DEV_TOOL_LOG_STORE__ = {
@@ -192,27 +181,6 @@ function generateRandomEmail() {
192
181
  for (let i = 0; i < 8; i++) id += chars[Math.floor(Math.random() * 36)];
193
182
  return `dev-${id}@test.hexclave.com`;
194
183
  }
195
- function h(tag, attrs, ...children) {
196
- const el = document.createElement(tag);
197
- if (attrs) for (const [k, v] of Object.entries(attrs)) {
198
- if (v == null) continue;
199
- if (k === "className") el.className = v;
200
- else if (k === "style" && typeof v === "object") Object.assign(el.style, v);
201
- else if (k.startsWith("on") && typeof v === "function") el.addEventListener(k.slice(2).toLowerCase(), v);
202
- else el.setAttribute(k, String(v));
203
- }
204
- for (const child of children) {
205
- if (child == null) continue;
206
- el.appendChild(typeof child === "string" ? document.createTextNode(child) : child);
207
- }
208
- return el;
209
- }
210
- function setHtml(el, html) {
211
- el.innerHTML = html;
212
- }
213
- function hasAppendChild(value) {
214
- return typeof value === "object" && value !== null && typeof Reflect.get(value, "appendChild") === "function";
215
- }
216
184
  function appendInlineMarkdown(container, text) {
217
185
  const tokenPattern = /(\[[^\]]+\]\([^)]+\)|`[^`\n]+`|\*\*[^*\n]+\*\*|__[^_\n]+__|\*[^*\n]+\*|_[^_\n]+_)/g;
218
186
  let lastIndex = 0;
@@ -509,8 +477,12 @@ function createIframeTab(src, title, loadingMsg = "Loading…", errorMsg = "Unab
509
477
  container.appendChild(iframe);
510
478
  return container;
511
479
  }
480
+ function hasPersistentTokenStoreForDevTool(app) {
481
+ return app[hexclaveAppInternalsSymbol].getConstructorOptions().tokenStore !== null;
482
+ }
512
483
  function createOverviewTab(app) {
513
484
  const container = h("div", { className: "sdt-ov" });
485
+ const hasPersistentTokenStore = hasPersistentTokenStoreForDevTool(app);
514
486
  const heroCard = h("div", { className: "sdt-ov-card sdt-ov-card-hero" });
515
487
  heroCard.appendChild(h("div", { className: "sdt-ov-label" }, "Identity"));
516
488
  const userRow = h("div", { className: "sdt-ov-user-row" });
@@ -556,6 +528,15 @@ function createOverviewTab(app) {
556
528
  let loading = false;
557
529
  function rebuildActions() {
558
530
  actions.innerHTML = "";
531
+ if (!hasPersistentTokenStore) {
532
+ userName.textContent = "Current user unavailable";
533
+ userEmail.textContent = "This app was initialized without a token store";
534
+ actions.appendChild(h("button", {
535
+ className: "sdt-ov-btn sdt-ov-btn-wide",
536
+ disabled: "true"
537
+ }, "Session actions unavailable"));
538
+ return;
539
+ }
559
540
  if (currentUser) {
560
541
  const signOutBtn = h("button", { className: "sdt-ov-btn sdt-ov-btn-danger" }, "Sign Out");
561
542
  signOutBtn.disabled = loading;
@@ -744,10 +725,14 @@ function createOverviewTab(app) {
744
725
  label: "Auth method active",
745
726
  hint: hasActiveAuthMethod === null ? "Still checking project config" : null
746
727
  },
747
- {
728
+ hasPersistentTokenStore ? {
748
729
  ok: !!currentUser,
749
730
  label: "Sign in a test user",
750
731
  hint: "Use “Quick Sign In” above →"
732
+ } : {
733
+ ok: true,
734
+ label: "Current-user tools unavailable",
735
+ hint: null
751
736
  }
752
737
  ];
753
738
  const passCount = checks.filter((c) => c.ok).length;
@@ -787,6 +772,17 @@ function createOverviewTab(app) {
787
772
  }
788
773
  }
789
774
  async function refreshUser() {
775
+ if (!hasPersistentTokenStore) {
776
+ avatar.className = "sdt-ov-avatar";
777
+ avatar.textContent = "?";
778
+ userName.textContent = "Current user unavailable";
779
+ userEmail.textContent = "This app was initialized without a token store";
780
+ authIndicator.style.display = "none";
781
+ currentUser = null;
782
+ rebuildActions();
783
+ buildChecklist();
784
+ return;
785
+ }
790
786
  try {
791
787
  currentUser = await app.getUser();
792
788
  if (currentUser) {
@@ -2023,7 +2019,7 @@ function createDevTool(app) {
2023
2019
  if (typeof document === "undefined" || typeof document.createElement !== "function") return () => {};
2024
2020
  const body = Reflect.get(document, "body");
2025
2021
  if (!hasAppendChild(body)) return () => {};
2026
- getGlobalDevToolInstance()?.cleanup();
2022
+ getGlobalUiInstance(GLOBAL_INSTANCE_KEY)?.cleanup();
2027
2023
  let existingRoot = document.getElementById(ROOT_ID);
2028
2024
  while (existingRoot !== null) {
2029
2025
  existingRoot.remove();
@@ -2097,13 +2093,13 @@ function createDevTool(app) {
2097
2093
  const instance = { cleanup: () => {
2098
2094
  if (didCleanup) return;
2099
2095
  didCleanup = true;
2100
- if (getGlobalDevToolInstance() === instance) setGlobalDevToolInstance(null);
2096
+ if (getGlobalUiInstance(GLOBAL_INSTANCE_KEY) === instance) setGlobalUiInstance(GLOBAL_INSTANCE_KEY, null);
2101
2097
  trigger.cleanup();
2102
2098
  removeRequestListener();
2103
2099
  panel?.cleanup();
2104
2100
  if (root.parentNode) root.parentNode.removeChild(root);
2105
2101
  } };
2106
- setGlobalDevToolInstance(instance);
2102
+ setGlobalUiInstance(GLOBAL_INSTANCE_KEY, instance);
2107
2103
  return () => {
2108
2104
  instance.cleanup();
2109
2105
  };