@hexclave/next 1.0.2 → 1.0.5

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 (839) hide show
  1. package/dist/components/api-key-dialogs.d.ts +1 -1
  2. package/dist/components/api-key-dialogs.js.map +1 -1
  3. package/dist/components/api-key-table.d.ts +1 -1
  4. package/dist/components/api-key-table.js.map +1 -1
  5. package/dist/components/credential-sign-in.js.map +1 -1
  6. package/dist/components/credential-sign-up.js.map +1 -1
  7. package/dist/components/elements/form-warning.js.map +1 -1
  8. package/dist/components/elements/maybe-full-page.js.map +1 -1
  9. package/dist/components/elements/separator-with-text.js.map +1 -1
  10. package/dist/components/elements/sidebar-layout.js.map +1 -1
  11. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  12. package/dist/components/elements/user-avatar.js.map +1 -1
  13. package/dist/components/link.js.map +1 -1
  14. package/dist/components/magic-link-sign-in.js +2 -2
  15. package/dist/components/magic-link-sign-in.js.map +1 -1
  16. package/dist/components/message-cards/known-error-message-card.js +2 -2
  17. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  18. package/dist/components/message-cards/message-card.js.map +1 -1
  19. package/dist/components/message-cards/predefined-message-card.js +9 -9
  20. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  21. package/dist/components/oauth-button-group.js +2 -2
  22. package/dist/components/oauth-button-group.js.map +1 -1
  23. package/dist/components/oauth-button.js +2 -2
  24. package/dist/components/oauth-button.js.map +1 -1
  25. package/dist/components/passkey-button.js +2 -2
  26. package/dist/components/passkey-button.js.map +1 -1
  27. package/dist/components/profile-image-editor.js.map +1 -1
  28. package/dist/components/selected-team-switcher.d.ts +1 -1
  29. package/dist/components/selected-team-switcher.js.map +1 -1
  30. package/dist/components/team-icon.d.ts +1 -1
  31. package/dist/components/team-icon.js.map +1 -1
  32. package/dist/components/team-switcher.d.ts +1 -1
  33. package/dist/components/team-switcher.js.map +1 -1
  34. package/dist/components/use-in-iframe.js.map +1 -1
  35. package/dist/components/user-button.js.map +1 -1
  36. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  37. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  38. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  40. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  42. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  43. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  44. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  45. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  46. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  47. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  48. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  49. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  50. package/dist/components-page/account-settings/payments/payments-panel.js +3 -3
  51. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  52. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  53. package/dist/components-page/account-settings/section.js.map +1 -1
  54. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  55. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  56. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  58. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  59. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  60. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  61. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  62. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  63. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  64. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  65. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  66. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  67. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  68. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  69. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  70. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  71. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  72. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  73. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  74. package/dist/components-page/account-settings.js.map +1 -1
  75. package/dist/components-page/auth-page.d.ts.map +1 -1
  76. package/dist/components-page/auth-page.js +55 -10
  77. package/dist/components-page/auth-page.js.map +1 -1
  78. package/dist/components-page/cli-auth-confirm.js +3 -3
  79. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  80. package/dist/components-page/cli-auth-confirm.test.js +4 -4
  81. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  82. package/dist/components-page/email-verification.js +4 -4
  83. package/dist/components-page/email-verification.js.map +1 -1
  84. package/dist/components-page/error-page.js +9 -9
  85. package/dist/components-page/error-page.js.map +1 -1
  86. package/dist/components-page/forgot-password.js +4 -4
  87. package/dist/components-page/forgot-password.js.map +1 -1
  88. package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  89. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
  90. package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +19 -18
  91. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  92. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  93. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  94. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  95. package/dist/components-page/hexclave-handler.js.map +1 -0
  96. package/dist/components-page/magic-link-callback.js +7 -7
  97. package/dist/components-page/magic-link-callback.js.map +1 -1
  98. package/dist/components-page/mfa.js +4 -4
  99. package/dist/components-page/mfa.js.map +1 -1
  100. package/dist/components-page/oauth-callback.js +3 -3
  101. package/dist/components-page/oauth-callback.js.map +1 -1
  102. package/dist/components-page/onboarding.js +3 -3
  103. package/dist/components-page/onboarding.js.map +1 -1
  104. package/dist/components-page/password-reset.js +8 -8
  105. package/dist/components-page/password-reset.js.map +1 -1
  106. package/dist/components-page/sign-in.js.map +1 -1
  107. package/dist/components-page/sign-out.d.ts +1 -0
  108. package/dist/components-page/sign-out.d.ts.map +1 -1
  109. package/dist/components-page/sign-out.js +11 -5
  110. package/dist/components-page/sign-out.js.map +1 -1
  111. package/dist/components-page/sign-up.js.map +1 -1
  112. package/dist/components-page/team-creation.js.map +1 -1
  113. package/dist/components-page/team-invitation.js +16 -16
  114. package/dist/components-page/team-invitation.js.map +1 -1
  115. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  116. package/dist/dev-tool/dev-tool-core.js +11 -11
  117. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  118. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  119. package/dist/dev-tool/dev-tool-styles.js +371 -371
  120. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  121. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  122. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  123. package/dist/dev-tool/index.d.ts +4 -4
  124. package/dist/dev-tool/index.js +4 -4
  125. package/dist/dev-tool/index.js.map +1 -1
  126. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  127. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  128. package/dist/esm/components/api-key-table.d.ts +1 -1
  129. package/dist/esm/components/api-key-table.js.map +1 -1
  130. package/dist/esm/components/credential-sign-in.js.map +1 -1
  131. package/dist/esm/components/credential-sign-up.js.map +1 -1
  132. package/dist/esm/components/elements/form-warning.js.map +1 -1
  133. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  134. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  135. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  136. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  137. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  138. package/dist/esm/components/link.js.map +1 -1
  139. package/dist/esm/components/magic-link-sign-in.js +2 -2
  140. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  141. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  142. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  143. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  144. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  145. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  146. package/dist/esm/components/oauth-button-group.js +2 -2
  147. package/dist/esm/components/oauth-button-group.js.map +1 -1
  148. package/dist/esm/components/oauth-button.js +2 -2
  149. package/dist/esm/components/oauth-button.js.map +1 -1
  150. package/dist/esm/components/passkey-button.js +2 -2
  151. package/dist/esm/components/passkey-button.js.map +1 -1
  152. package/dist/esm/components/profile-image-editor.js.map +1 -1
  153. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  154. package/dist/esm/components/team-icon.js.map +1 -1
  155. package/dist/esm/components/team-switcher.js.map +1 -1
  156. package/dist/esm/components/use-in-iframe.js.map +1 -1
  157. package/dist/esm/components/user-button.js.map +1 -1
  158. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  159. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  160. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  171. package/dist/esm/components-page/account-settings/payments/payments-panel.js +3 -3
  172. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  173. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  174. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  175. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  180. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  188. package/dist/esm/components-page/account-settings.js.map +1 -1
  189. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  190. package/dist/esm/components-page/auth-page.js +56 -11
  191. package/dist/esm/components-page/auth-page.js.map +1 -1
  192. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  193. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  194. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  195. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  196. package/dist/esm/components-page/email-verification.js +4 -4
  197. package/dist/esm/components-page/email-verification.js.map +1 -1
  198. package/dist/esm/components-page/error-page.js +9 -9
  199. package/dist/esm/components-page/error-page.js.map +1 -1
  200. package/dist/esm/components-page/forgot-password.js +4 -4
  201. package/dist/esm/components-page/forgot-password.js.map +1 -1
  202. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  203. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  204. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +17 -16
  205. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  206. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  207. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  208. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  209. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  210. package/dist/esm/components-page/magic-link-callback.js +7 -7
  211. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  212. package/dist/esm/components-page/mfa.js +4 -4
  213. package/dist/esm/components-page/mfa.js.map +1 -1
  214. package/dist/esm/components-page/oauth-callback.js +3 -3
  215. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  216. package/dist/esm/components-page/onboarding.js +3 -3
  217. package/dist/esm/components-page/onboarding.js.map +1 -1
  218. package/dist/esm/components-page/password-reset.js +8 -8
  219. package/dist/esm/components-page/password-reset.js.map +1 -1
  220. package/dist/esm/components-page/sign-in.js.map +1 -1
  221. package/dist/esm/components-page/sign-out.d.ts +1 -0
  222. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  223. package/dist/esm/components-page/sign-out.js +11 -5
  224. package/dist/esm/components-page/sign-out.js.map +1 -1
  225. package/dist/esm/components-page/sign-up.js.map +1 -1
  226. package/dist/esm/components-page/team-creation.js.map +1 -1
  227. package/dist/esm/components-page/team-invitation.js +16 -16
  228. package/dist/esm/components-page/team-invitation.js.map +1 -1
  229. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  230. package/dist/esm/dev-tool/dev-tool-core.js +10 -10
  231. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  232. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  233. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  234. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  235. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  236. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  237. package/dist/esm/dev-tool/index.d.ts +4 -4
  238. package/dist/esm/dev-tool/index.js +4 -4
  239. package/dist/esm/dev-tool/index.js.map +1 -1
  240. package/dist/esm/generated/global-css.d.ts +1 -1
  241. package/dist/esm/generated/global-css.js +1 -1
  242. package/dist/esm/generated/global-css.js.map +1 -1
  243. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  244. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  245. package/dist/esm/index.d.ts +4 -4
  246. package/dist/esm/index.js +3 -3
  247. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  248. package/dist/esm/integrations/convex.js +1 -1
  249. package/dist/esm/integrations/convex.js.map +1 -1
  250. package/dist/esm/lib/auth.js.map +1 -1
  251. package/dist/esm/lib/auth.test.js.map +1 -1
  252. package/dist/esm/lib/cookie.js +2 -2
  253. package/dist/esm/lib/cookie.js.map +1 -1
  254. package/dist/esm/lib/env.js.map +1 -1
  255. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  256. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  257. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  258. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  259. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  260. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  261. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  262. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  263. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  264. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  265. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  266. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  267. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +23 -30
  268. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  269. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  270. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  271. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  272. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  273. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +7 -7
  274. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  275. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  276. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  277. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  278. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  279. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  280. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  281. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  282. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  283. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  284. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  285. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  286. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  287. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  288. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  289. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  290. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  291. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  292. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  293. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  294. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  295. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  296. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  297. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  298. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  299. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  300. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  301. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  302. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  303. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  304. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  305. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  306. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  307. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  308. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  309. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  310. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  311. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  312. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  313. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  314. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  315. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  316. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  317. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  318. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  319. package/dist/esm/lib/hexclave-app/common.js +7 -0
  320. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  321. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  322. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  323. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  324. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  325. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  326. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  327. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  328. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  329. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  330. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  331. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email/index.d.ts +1 -1
  332. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  333. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  334. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  335. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  336. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  337. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  338. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  339. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  340. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  341. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  342. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  343. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  344. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  345. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  346. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  347. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  348. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  349. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  350. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  351. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  352. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  353. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  354. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  355. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  356. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  357. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  358. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  359. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  360. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  361. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  362. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  363. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  364. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  365. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  366. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  367. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  368. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  369. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  370. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  371. package/dist/esm/lib/hooks.d.ts +1 -1
  372. package/dist/esm/lib/hooks.js +9 -9
  373. package/dist/esm/lib/hooks.js.map +1 -1
  374. package/dist/esm/lib/translations.js.map +1 -1
  375. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  376. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  377. package/dist/esm/providers/hexclave-context.js +12 -0
  378. package/dist/esm/providers/hexclave-context.js.map +1 -0
  379. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  380. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  381. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  382. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  383. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  384. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  385. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  386. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  387. package/dist/esm/providers/theme-provider.js.map +1 -1
  388. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  389. package/dist/esm/providers/translation-provider.js.map +1 -1
  390. package/dist/esm/tanstack-start-server-context.d.ts +1 -1
  391. package/dist/esm/utils/browser-script.js.map +1 -1
  392. package/dist/esm/utils/constants.js.map +1 -1
  393. package/dist/esm/utils/url.js.map +1 -1
  394. package/dist/generated/global-css.d.ts +1 -1
  395. package/dist/generated/global-css.js +1 -1
  396. package/dist/generated/global-css.js.map +1 -1
  397. package/dist/generated/quetzal-translations.d.ts +2 -2
  398. package/dist/generated/quetzal-translations.js.map +1 -1
  399. package/dist/index.d.ts +18 -18
  400. package/dist/index.js +9 -9
  401. package/dist/integrations/convex/component/convex.config.d.ts +2 -2
  402. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  403. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  404. package/dist/integrations/convex.js +2 -2
  405. package/dist/integrations/convex.js.map +1 -1
  406. package/dist/lib/auth.js.map +1 -1
  407. package/dist/lib/auth.test.js.map +1 -1
  408. package/dist/lib/cookie.js +2 -2
  409. package/dist/lib/cookie.js.map +1 -1
  410. package/dist/lib/env.js.map +1 -1
  411. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  412. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  413. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  414. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  415. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  416. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  417. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  418. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  419. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  420. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  421. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  422. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  423. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +22 -29
  424. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  425. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  426. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  427. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  428. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts.map +1 -1
  429. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +6 -6
  430. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  432. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  433. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  434. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  435. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  436. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  437. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  438. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  439. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  440. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  442. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  444. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  446. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  447. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +5 -5
  448. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  449. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  450. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  451. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  452. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  453. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  454. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  456. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  458. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  459. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  460. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  461. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  462. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  463. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  464. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  465. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  466. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  467. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  468. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  469. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +2 -2
  470. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  471. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  472. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  473. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +8 -8
  474. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  475. package/dist/lib/hexclave-app/common.js +9 -0
  476. package/dist/lib/hexclave-app/common.js.map +1 -0
  477. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  478. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  479. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  480. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  481. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  482. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  483. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  484. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  485. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  486. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  487. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts +1 -1
  488. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  489. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  490. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  491. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  492. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  493. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  494. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  495. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  496. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  497. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  498. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  500. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  501. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  502. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  503. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  504. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  505. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  506. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  507. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  508. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  509. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  510. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  511. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  512. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  513. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  514. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  515. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  516. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  517. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  518. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  519. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  520. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  521. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  522. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  523. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  524. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  525. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  526. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  527. package/dist/lib/hooks.d.ts +3 -3
  528. package/dist/lib/hooks.d.ts.map +1 -1
  529. package/dist/lib/hooks.js +9 -9
  530. package/dist/lib/hooks.js.map +1 -1
  531. package/dist/lib/translations.js.map +1 -1
  532. package/dist/providers/hexclave-context.d.ts +11 -0
  533. package/dist/providers/hexclave-context.d.ts.map +1 -0
  534. package/dist/providers/hexclave-context.js +15 -0
  535. package/dist/providers/hexclave-context.js.map +1 -0
  536. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  537. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  538. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  539. package/dist/providers/hexclave-provider-client.js.map +1 -0
  540. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +5 -5
  541. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  542. package/dist/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  543. package/dist/providers/hexclave-provider.js.map +1 -0
  544. package/dist/providers/theme-provider.js.map +1 -1
  545. package/dist/providers/translation-provider-client.js.map +1 -1
  546. package/dist/providers/translation-provider.js.map +1 -1
  547. package/dist/{storage-kTmOAWHW.d.ts → storage-CKzvsBxG.d.ts} +18 -18
  548. package/dist/{storage-kTmOAWHW.d.ts.map → storage-CKzvsBxG.d.ts.map} +1 -1
  549. package/dist/tanstack-start-server-context.d.ts +1 -1
  550. package/dist/utils/browser-script.js.map +1 -1
  551. package/dist/utils/constants.js.map +1 -1
  552. package/dist/utils/url.js.map +1 -1
  553. package/package.json +6 -5
  554. package/src/components/api-key-dialogs.tsx +173 -0
  555. package/src/components/api-key-table.tsx +127 -0
  556. package/src/components/credential-sign-in.tsx +83 -0
  557. package/src/components/credential-sign-up.tsx +108 -0
  558. package/src/components/elements/form-warning.tsx +17 -0
  559. package/src/components/elements/maybe-full-page.tsx +60 -0
  560. package/src/components/elements/separator-with-text.tsx +22 -0
  561. package/src/components/elements/sidebar-layout.tsx +136 -0
  562. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  563. package/src/components/elements/user-avatar.tsx +32 -0
  564. package/src/components/link.tsx +40 -0
  565. package/src/components/magic-link-sign-in.tsx +143 -0
  566. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  567. package/src/components/message-cards/message-card.tsx +46 -0
  568. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  569. package/src/components/oauth-button-group.tsx +35 -0
  570. package/src/components/oauth-button.tsx +222 -0
  571. package/src/components/passkey-button.tsx +43 -0
  572. package/src/components/profile-image-editor.tsx +194 -0
  573. package/src/components/selected-team-switcher.tsx +97 -0
  574. package/src/components/team-icon.tsx +30 -0
  575. package/src/components/team-switcher.tsx +191 -0
  576. package/src/components/use-in-iframe.tsx +18 -0
  577. package/src/components/user-button.tsx +157 -0
  578. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  579. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  580. package/src/components-page/account-settings/editable-text.tsx +53 -0
  581. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  582. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  583. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  584. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  585. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  586. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  587. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  588. package/src/components-page/account-settings/page-layout.tsx +11 -0
  589. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  590. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  591. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  592. package/src/components-page/account-settings/section.tsx +26 -0
  593. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  594. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  595. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  596. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  597. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  598. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  599. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  600. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  601. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  602. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  603. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  604. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  605. package/src/components-page/account-settings.tsx +343 -0
  606. package/src/components-page/auth-page.tsx +206 -0
  607. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  608. package/src/components-page/cli-auth-confirm.tsx +278 -0
  609. package/src/components-page/email-verification.tsx +76 -0
  610. package/src/components-page/error-page.tsx +105 -0
  611. package/src/components-page/forgot-password.tsx +105 -0
  612. package/src/components-page/hexclave-handler-client.tsx +325 -0
  613. package/src/components-page/hexclave-handler.tsx +48 -0
  614. package/src/components-page/magic-link-callback.tsx +92 -0
  615. package/src/components-page/mfa.tsx +222 -0
  616. package/src/components-page/oauth-callback.tsx +78 -0
  617. package/src/components-page/onboarding.tsx +176 -0
  618. package/src/components-page/password-reset.tsx +185 -0
  619. package/src/components-page/section.tsx +27 -0
  620. package/src/components-page/sign-in.tsx +34 -0
  621. package/src/components-page/sign-out.tsx +37 -0
  622. package/src/components-page/sign-up.tsx +24 -0
  623. package/src/components-page/team-creation.tsx +78 -0
  624. package/src/components-page/team-invitation.tsx +150 -0
  625. package/src/dev-tool/dev-tool-core.ts +2460 -0
  626. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  627. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  628. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  629. package/src/dev-tool/index.ts +149 -0
  630. package/src/generated/.gitignore +3 -0
  631. package/src/generated/quetzal-translations.ts +4312 -0
  632. package/src/global.css +13 -0
  633. package/src/global.d.ts +5 -0
  634. package/src/index.ts +39 -0
  635. package/src/integrations/convex/component/README.md +74 -0
  636. package/src/integrations/convex/component/convex.config.ts +9 -0
  637. package/src/integrations/convex.ts +28 -0
  638. package/src/lib/auth.test.ts +67 -0
  639. package/src/lib/auth.ts +175 -0
  640. package/src/lib/cookie.ts +421 -0
  641. package/src/lib/env.ts +93 -0
  642. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  643. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  644. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +141 -0
  645. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  646. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3912 -0
  647. package/src/lib/hexclave-app/apps/implementations/common.ts +244 -0
  648. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  649. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  650. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  651. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  652. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  653. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  654. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  655. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  656. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  657. package/src/lib/hexclave-app/apps/index.ts +40 -0
  658. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  659. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  660. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  661. package/src/lib/hexclave-app/common.ts +216 -0
  662. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  663. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  664. package/src/lib/hexclave-app/customers/index.ts +158 -0
  665. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  666. package/src/lib/hexclave-app/email/index.ts +280 -0
  667. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  668. package/src/lib/hexclave-app/index.ts +146 -0
  669. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  670. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  671. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  672. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  673. package/src/lib/hexclave-app/projects/index.ts +236 -0
  674. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  675. package/src/lib/hexclave-app/teams/index.ts +206 -0
  676. package/src/lib/hexclave-app/url-targets.test.ts +253 -0
  677. package/src/lib/hexclave-app/url-targets.ts +395 -0
  678. package/src/lib/hexclave-app/users/index.ts +523 -0
  679. package/src/lib/hooks.tsx +63 -0
  680. package/src/lib/translations.tsx +23 -0
  681. package/src/providers/hexclave-context.tsx +20 -0
  682. package/src/providers/hexclave-provider-client.tsx +39 -0
  683. package/src/providers/hexclave-provider.tsx +48 -0
  684. package/src/providers/theme-provider.tsx +121 -0
  685. package/src/providers/translation-provider-client.tsx +35 -0
  686. package/src/providers/translation-provider.tsx +25 -0
  687. package/src/tanstack-start-server-context.d.ts +13 -0
  688. package/src/utils/browser-script.tsx +135 -0
  689. package/src/utils/constants.tsx +58 -0
  690. package/src/utils/url.ts +24 -0
  691. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  692. package/dist/components-page/stack-handler-client.js.map +0 -1
  693. package/dist/components-page/stack-handler.d.ts.map +0 -1
  694. package/dist/components-page/stack-handler.js.map +0 -1
  695. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  696. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  697. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  698. package/dist/esm/components-page/stack-handler.js.map +0 -1
  699. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  700. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  701. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  702. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  703. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  704. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  705. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  706. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  707. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  708. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  709. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  710. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  711. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  712. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  713. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  714. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  715. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  716. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  717. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  718. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  720. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  721. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  722. package/dist/esm/lib/stack-app/common.js +0 -7
  723. package/dist/esm/lib/stack-app/common.js.map +0 -1
  724. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  725. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  726. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  727. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  728. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  729. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  730. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  731. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  732. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  733. package/dist/esm/providers/stack-context.d.ts +0 -11
  734. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  735. package/dist/esm/providers/stack-context.js +0 -12
  736. package/dist/esm/providers/stack-context.js.map +0 -1
  737. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  738. package/dist/esm/providers/stack-provider-client.js +0 -30
  739. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  740. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  741. package/dist/esm/providers/stack-provider.js.map +0 -1
  742. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  743. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  744. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  745. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  746. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  747. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  748. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  749. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  750. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  751. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  752. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  753. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  754. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  755. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  756. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  757. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  758. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  759. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  760. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  761. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  762. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  763. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  764. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  765. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  766. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  767. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  768. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  769. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  770. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  771. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  772. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  773. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  774. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  775. package/dist/lib/stack-app/common.d.ts.map +0 -1
  776. package/dist/lib/stack-app/common.js +0 -9
  777. package/dist/lib/stack-app/common.js.map +0 -1
  778. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  779. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  780. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  781. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  782. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  783. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  784. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  785. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  786. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  787. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  788. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  789. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  790. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  791. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  792. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  793. package/dist/lib/stack-app/projects/index.js.map +0 -1
  794. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  795. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  796. package/dist/lib/stack-app/teams/index.js.map +0 -1
  797. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  798. package/dist/lib/stack-app/url-targets.js.map +0 -1
  799. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  800. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  801. package/dist/lib/stack-app/users/index.js.map +0 -1
  802. package/dist/providers/stack-context.d.ts +0 -11
  803. package/dist/providers/stack-context.d.ts.map +0 -1
  804. package/dist/providers/stack-context.js +0 -15
  805. package/dist/providers/stack-context.js.map +0 -1
  806. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  807. package/dist/providers/stack-provider-client.js.map +0 -1
  808. package/dist/providers/stack-provider.d.ts.map +0 -1
  809. package/dist/providers/stack-provider.js.map +0 -1
  810. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  811. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  812. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  813. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  814. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  815. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  816. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  817. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  818. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  819. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  820. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  821. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  822. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  823. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  824. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  825. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  826. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  827. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  828. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  829. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  830. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  831. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  832. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  833. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  834. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  835. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  836. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  837. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  838. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  839. /package/dist/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { StackClientApp } from "../interfaces/client-app.js";
3
3
 
4
- //#region src/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts
4
+ //#region src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts
5
5
  describe("StackClientApp OAuth prefetch", () => {
6
6
  it("does not prefetch cross-domain handoff params on construction", () => {
7
7
  const prefetchMethodName = "_prefetchCrossDomainHandoffParamsIfNeeded";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-impl.oauth-prefetch.test.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts"],"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 { describe, expect, it } from \"vitest\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\ndescribe(\"StackClientApp OAuth prefetch\", () => {\n it(\"does not prefetch cross-domain handoff params on construction\", () => {\n const prefetchMethodName = \"_prefetchCrossDomainHandoffParamsIfNeeded\";\n const originalPrefetch = Reflect.get(StackClientApp.prototype, prefetchMethodName);\n let prefetchCalls = 0;\n Reflect.set(StackClientApp.prototype, prefetchMethodName, () => {\n prefetchCalls += 1;\n });\n\n try {\n new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n\n expect(prefetchCalls).toBe(0);\n } finally {\n if (originalPrefetch === undefined) {\n Reflect.deleteProperty(StackClientApp.prototype, prefetchMethodName);\n } else {\n Reflect.set(StackClientApp.prototype, prefetchMethodName, originalPrefetch);\n }\n }\n });\n});\n"],"mappings":";;;;AAOA,SAAS,uCAAuC;AAC9C,IAAG,uEAAuE;EACxE,MAAM,qBAAqB;EAC3B,MAAM,mBAAmB,QAAQ,IAAI,eAAe,WAAW,mBAAmB;EAClF,IAAI,gBAAgB;AACpB,UAAQ,IAAI,eAAe,WAAW,0BAA0B;AAC9D,oBAAiB;IACjB;AAEF,MAAI;AACF,OAAI,eAAe;IACjB,SAAS;IACT,WAAW;IACX,sBAAsB;IACtB,YAAY;IACZ,gBAAgB;IAChB,qBAAqB;IACtB,CAAC;AAEF,UAAO,cAAc,CAAC,KAAK,EAAE;YACrB;AACR,OAAI,qBAAqB,OACvB,SAAQ,eAAe,eAAe,WAAW,mBAAmB;OAEpE,SAAQ,IAAI,eAAe,WAAW,oBAAoB,iBAAiB;;GAG/E;EACF"}
@@ -1,15 +1,15 @@
1
- import { HandlerUrlOptions, ResolvedHandlerUrls, stackAppInternalsSymbol } from "../../common.js";
1
+ import { AsyncCache } from "@hexclave/shared/dist/utils/caches";
2
2
  import { Result } from "@hexclave/shared/dist/utils/results";
3
3
  import { InternalSession } from "@hexclave/shared/dist/sessions";
4
4
  import { Store } from "@hexclave/shared/dist/utils/stores";
5
- import { AsyncCache } from "@hexclave/shared/dist/utils/caches";
5
+ import { HandlerUrlOptions, ResolvedHandlerUrls, hexclaveAppInternalsSymbol } from "../../common";
6
6
 
7
- //#region src/lib/stack-app/apps/implementations/common.d.ts
7
+ //#region src/lib/hexclave-app/apps/implementations/common.d.ts
8
8
  declare const clientVersion = "STACK_COMPILE_TIME_CLIENT_PACKAGE_VERSION_SENTINEL";
9
9
  declare const createCache: <D extends any[], T>(fetcher: (dependencies: D) => Promise<T>) => AsyncCache<D, Result<T>>;
10
10
  declare const createCacheBySession: <D extends any[], T>(fetcher: (session: InternalSession, extraDependencies: D) => Promise<T>) => AsyncCache<[InternalSession, ...D], Result<T>>;
11
11
  type AppLike = {
12
- [stackAppInternalsSymbol]: {
12
+ [hexclaveAppInternalsSymbol]: {
13
13
  getConstructorOptions: () => any;
14
14
  };
15
15
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/common.ts"],"mappings":";;;;;;;cAoBa,aAAA;AAAA,cAYA,WAAA,uBAAmC,OAAA,GAAU,YAAA,EAAc,CAAA,KAAM,OAAA,CAAQ,CAAA,MAAE,UAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AAAA,cAO3E,oBAAA,uBAA4C,OAAA,GAAU,OAAA,EAAS,eAAA,EAAiB,iBAAA,EAAmB,CAAA,KAAM,OAAA,CAAQ,CAAA,MAAE,UAAA,EAAA,eAAA,KAAA,CAAA,GAAA,MAAA,CAAA,CAAA;AAAA,KAa3H,OAAA;EAAA,CAAa,0BAAA;IAA+B,qBAAA;EAAA;AAAA;AAAA,iBACjC,yBAAA;EAAsC,YAAA,GAAe,OAAA;AAAA,EAAA,CAAW,OAAA,EAAS,CAAA,GAAI,CAAA;EAAM,YAAA;AAAA;AAAA,iBAOnF,OAAA,CAAQ,OAAA,EAAS,iBAAA,EAAmB,OAAA;EAAW,SAAA;AAAA,IAAsB,mBAAA;AAAA,iBAOrE,mBAAA,CAAA;AAAA,iBAIA,8BAAA,CAAA;AAAA,iBAIA,yBAAA,CAAA;AAAA,iBAIA,6BAAA,CAAA;AAAA,iBAIA,6BAAA,CAAA;;;;;;;;;;;;AA5ChB;;;;;;;iBAkEgB,UAAA,CAAW,oBAAA;EAAiC,OAAA;EAAiB,MAAA;AAAA;AAAA,cAyBhE,cAAA;AAAA,cACA,uBAAA;AAAA,iBAOG,mBAAA,CAAoB,cAAA;AAAA,iBA0BpB,cAAA,CAAe,mBAAA;EAAgC,OAAA;EAAiB,MAAA;AAAA;AAAA,KAcpE,WAAA;EACV,WAAA;EACA,YAAA;AAAA;AAAA,iBAGc,qBAAA,CAAA,GAAqB,KAAA,CAAA,WAAA;AAAA,iBASrB,aAAA,oBAAA,CAAkC,KAAA,EAAO,UAAA,CAAW,CAAA,EAAG,MAAA,CAAO,CAAA,IAAK,YAAA,EAAc,CAAA,EAAG,MAAA,WAAiB,CAAA"}
@@ -1,22 +1,22 @@
1
1
  import { HexclaveAssertionError, captureError, concatStacktraces, throwErr } from "@hexclave/shared/dist/utils/errors";
2
2
  import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
3
3
  import React, { useCallback } from "react";
4
- import { AsyncCache } from "@hexclave/shared/dist/utils/caches";
5
4
  import { suspendIfSsr, use } from "@hexclave/shared/dist/utils/react";
6
5
  import { filterUndefined, omit } from "@hexclave/shared/dist/utils/objects";
7
6
  import { getDefaultApiUrls } from "@hexclave/shared/dist/utils/urls";
7
+ import { AsyncCache } from "@hexclave/shared/dist/utils/caches";
8
8
  import { Result } from "@hexclave/shared/dist/utils/results";
9
9
  import { isBrowserLike } from "@hexclave/shared/dist/utils/env";
10
10
  import { createGlobal, getGlobal } from "@hexclave/shared/dist/utils/globals";
11
- import { stackAppInternalsSymbol } from "../../common.js";
11
+ import { hexclaveAppInternalsSymbol } from "../../common.js";
12
12
  import { Store } from "@hexclave/shared/dist/utils/stores";
13
13
  import { envVars } from "../../../env.js";
14
14
  import { resolveHandlerUrls } from "../../url-targets.js";
15
15
 
16
- //#region src/lib/stack-app/apps/implementations/common.ts
17
- const clientVersion = "js @hexclave/next@1.0.2";
16
+ //#region src/lib/hexclave-app/apps/implementations/common.ts
17
+ const clientVersion = "js @hexclave/next@1.0.5";
18
18
  if (clientVersion.startsWith("STACK_COMPILE_TIME")) throw new HexclaveAssertionError("Client version was not replaced. Something went wrong during build!");
19
- const replaceStackPortPrefix = (input) => {
19
+ const replaceHexclavePortPrefix = (input) => {
20
20
  if (!input) return input;
21
21
  const prefix = envVars.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX;
22
22
  return prefix ? input.replace(/\$\{NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81\}/g, prefix) : input;
@@ -32,7 +32,7 @@ const createCacheBySession = (fetcher) => {
32
32
  };
33
33
  function resolveConstructorOptions(options) {
34
34
  return {
35
- ...options.inheritsFrom?.[stackAppInternalsSymbol].getConstructorOptions() ?? {},
35
+ ...options.inheritsFrom?.[hexclaveAppInternalsSymbol].getConstructorOptions() ?? {},
36
36
  ...filterUndefined(omit(options, ["inheritsFrom"]))
37
37
  };
38
38
  }
@@ -85,7 +85,7 @@ function getBaseUrl(userSpecifiedBaseUrl) {
85
85
  else url = envVars.NEXT_PUBLIC_SERVER_STACK_API_URL || envVars.NEXT_PUBLIC_STACK_API_URL_SERVER || envVars.STACK_API_URL_SERVER;
86
86
  url = url || envVars.NEXT_PUBLIC_STACK_API_URL || envVars.STACK_API_URL || envVars.NEXT_PUBLIC_STACK_URL || defaultBaseUrl;
87
87
  }
88
- return replaceStackPortPrefix(url.endsWith("/") ? url.slice(0, -1) : url);
88
+ return replaceHexclavePortPrefix(url.endsWith("/") ? url.slice(0, -1) : url);
89
89
  }
90
90
  const defaultBaseUrl = "https://api.hexclave.com";
91
91
  const defaultAnalyticsBaseUrl = "https://r.hexclave.com";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/common.ts"],"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 { InternalSession } from \"@hexclave/shared/dist/sessions\";\nimport { AsyncCache } from \"@hexclave/shared/dist/utils/caches\";\nimport { isBrowserLike } from \"@hexclave/shared/dist/utils/env\";\nimport { HexclaveAssertionError, captureError, concatStacktraces, throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport { createGlobal, getGlobal } from \"@hexclave/shared/dist/utils/globals\";\nimport { filterUndefined, omit } from \"@hexclave/shared/dist/utils/objects\";\nimport { ReactPromise, runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { suspendIfSsr, use } from \"@hexclave/shared/dist/utils/react\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { Store } from \"@hexclave/shared/dist/utils/stores\";\nimport { getDefaultApiUrls } from \"@hexclave/shared/dist/utils/urls\";\nimport React, { useCallback } from \"react\"; // THIS_LINE_PLATFORM react-like\nimport { envVars } from \"../../../env\";\nimport { HandlerUrlOptions, ResolvedHandlerUrls, hexclaveAppInternalsSymbol } from \"../../common\";\nimport { resolveHandlerUrls } from \"../../url-targets\";\n\nexport const clientVersion = \"STACK_COMPILE_TIME_CLIENT_PACKAGE_VERSION_SENTINEL\";\nif (clientVersion.startsWith(\"STACK_COMPILE_TIME\")) {\n throw new HexclaveAssertionError(\"Client version was not replaced. Something went wrong during build!\");\n}\n\nconst replaceHexclavePortPrefix = <T extends string | undefined>(input: T): T => {\n if (!input) return input;\n const prefix = envVars.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX;\n return prefix ? input.replace(/\\$\\{NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81\\}/g, prefix) as T : input;\n};\n\n\nexport const createCache = <D extends any[], T>(fetcher: (dependencies: D) => Promise<T>) => {\n return new AsyncCache<D, Result<T>>(\n async (dependencies) => await Result.fromThrowingAsync(async () => await fetcher(dependencies)),\n {},\n );\n};\n\nexport const createCacheBySession = <D extends any[], T>(fetcher: (session: InternalSession, extraDependencies: D) => Promise<T> ) => {\n return new AsyncCache<[InternalSession, ...D], Result<T>>(\n async ([session, ...extraDependencies]) => await Result.fromThrowingAsync(async () => await fetcher(session, extraDependencies)),\n {\n onSubscribe: ([session], refresh) => {\n const handler = session.onInvalidate(() => refresh());\n return () => handler.unsubscribe();\n },\n },\n );\n};\n\n\ntype AppLike = { [hexclaveAppInternalsSymbol]: { getConstructorOptions: () => any } };\nexport function resolveConstructorOptions<T extends { inheritsFrom?: AppLike }>(options: T): T & { inheritsFrom?: undefined } {\n return {\n ...options.inheritsFrom?.[hexclaveAppInternalsSymbol].getConstructorOptions() ?? {},\n ...filterUndefined(omit(options, [\"inheritsFrom\"])),\n };\n}\n\nexport function getUrls(partial: HandlerUrlOptions, options: { projectId: string }): ResolvedHandlerUrls {\n return resolveHandlerUrls({\n urls: partial,\n projectId: options.projectId,\n });\n}\n\nexport function getDefaultProjectId() {\n return envVars.NEXT_PUBLIC_STACK_PROJECT_ID || envVars.STACK_PROJECT_ID || throwErr(new Error(\"Welcome to Hexclave! It seems that you haven't provided a project ID. Please create a project on the Hexclave dashboard at https://app.hexclave.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.\"));\n}\n\nexport function getDefaultPublishableClientKey() {\n return envVars.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY || envVars.STACK_PUBLISHABLE_CLIENT_KEY;\n}\n\nexport function getDefaultSecretServerKey() {\n return envVars.STACK_SECRET_SERVER_KEY || throwErr(new Error(\"No secret server key provided. Please copy your key from the Hexclave dashboard and put it in the STACK_SECRET_SERVER_KEY environment variable.\"));\n}\n\nexport function getDefaultSuperSecretAdminKey() {\n return envVars.STACK_SUPER_SECRET_ADMIN_KEY || throwErr(new Error(\"No super secret admin key provided. Please copy your key from the Hexclave dashboard and put it in the STACK_SUPER_SECRET_ADMIN_KEY environment variable.\"));\n}\n\nexport function getDefaultExtraRequestHeaders() {\n return JSON.parse(envVars.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS || envVars.STACK_EXTRA_REQUEST_HEADERS || '{}');\n}\n\n/**\n * Returns the base URL for the Stack API.\n *\n * The URL can be specified in several ways, in order of precedence:\n * 1. Directly through userSpecifiedBaseUrl parameter as string or browser/server object\n * 2. Through environment variables:\n * - Browser: NEXT_PUBLIC_BROWSER_STACK_API_URL\n * - Server: NEXT_PUBLIC_SERVER_STACK_API_URL\n * - Fallback: NEXT_PUBLIC_STACK_API_URL or NEXT_PUBLIC_STACK_URL\n * 3. Default base URL if none of the above are specified\n *\n * The function also ensures the URL doesn't end with a trailing slash\n * by removing it if present.\n *\n * @param userSpecifiedBaseUrl - Optional URL override as string or {browser, server} object\n * @returns The configured base URL without trailing slash\n\n */\nexport function getBaseUrl(userSpecifiedBaseUrl: string | { browser: string, server: string } | undefined) {\n let url;\n if (userSpecifiedBaseUrl) {\n if (typeof userSpecifiedBaseUrl === \"string\") {\n url = userSpecifiedBaseUrl;\n } else {\n if (isBrowserLike()) {\n url = userSpecifiedBaseUrl.browser;\n } else {\n url = userSpecifiedBaseUrl.server;\n }\n }\n } else {\n // note: NEXT_PUBLIC_BROWSER_STACK_API_URL was renamed to NEXT_PUBLIC_STACK_API_URL_BROWSER, and NEXT_PUBLIC_STACK_URL to NEXT_PUBLIC_STACK_API_URL\n if (isBrowserLike()) {\n url = envVars.NEXT_PUBLIC_BROWSER_STACK_API_URL || envVars.NEXT_PUBLIC_STACK_API_URL_BROWSER || envVars.STACK_API_URL_BROWSER;\n } else {\n url = envVars.NEXT_PUBLIC_SERVER_STACK_API_URL || envVars.NEXT_PUBLIC_STACK_API_URL_SERVER || envVars.STACK_API_URL_SERVER;\n }\n url = url || envVars.NEXT_PUBLIC_STACK_API_URL || envVars.STACK_API_URL || envVars.NEXT_PUBLIC_STACK_URL || defaultBaseUrl;\n }\n\n return replaceHexclavePortPrefix(url.endsWith('/') ? url.slice(0, -1) : url);\n}\n\nexport const defaultBaseUrl = \"https://api.hexclave.com\";\nexport const defaultAnalyticsBaseUrl = \"https://r.hexclave.com\";\n\nconst analyticsBaseUrlsByApiBaseUrl = new Map<string, string>([\n [defaultBaseUrl, defaultAnalyticsBaseUrl],\n [\"https://api.stack-auth.com\", \"https://r.stack-auth.com\"],\n]);\n\nexport function getAnalyticsBaseUrl(regularBaseUrl: string): string {\n return analyticsBaseUrlsByApiBaseUrl.get(regularBaseUrl) ?? regularBaseUrl;\n}\n\n\nfunction fetchBackendUrlsInBackground(primaryBaseUrl: string): void {\n createGlobal('__stack-fetch-backend-urls-started', () => {\n runAsynchronously(async () => {\n try {\n const res = await fetch(`${primaryBaseUrl}/api/v1/internal/backend-urls`);\n if (!res.ok) {\n return;\n }\n const data = await res.json();\n if (!Array.isArray(data.urls) || !data.urls.every((u: unknown) => typeof u === 'string')) {\n return;\n }\n createGlobal('__stack-fetched-backend-urls', () => data.urls as string[]);\n } catch (e) {\n captureError('fetch-backend-urls-in-background', e);\n }\n });\n return true;\n });\n}\n\nexport function resolveApiUrls(userExplicitBaseUrl: string | { browser: string, server: string } | undefined): () => string[] {\n return () => {\n if (userExplicitBaseUrl != null) {\n return [getBaseUrl(userExplicitBaseUrl)];\n }\n const primary = getBaseUrl(undefined);\n // Always try to fetch server-configured URLs (supports custom domains via\n // STACK_BACKEND_URLS_CONFIG). Hardcoded fallbacks are used as a default\n // until the background fetch completes.\n fetchBackendUrlsInBackground(primary);\n return getGlobal('__stack-fetched-backend-urls') ?? getDefaultApiUrls(primary);\n };\n}\n\nexport type TokenObject = {\n accessToken: string | null,\n refreshToken: string | null,\n};\n\nexport function createEmptyTokenStore() {\n return new Store<TokenObject>({\n refreshToken: null,\n accessToken: null,\n });\n}\n\n\nconst cachePromiseByHookId = new Map<string, ReactPromise<Result<unknown>>>();\nexport function useAsyncCache<D extends any[], T>(cache: AsyncCache<D, Result<T>>, dependencies: D, caller: string): T {\n // we explicitly don't want to run this hook in SSR\n suspendIfSsr(caller);\n\n // on the dashboard, we do some perf monitoring for pre-fetching which should hook right in here\n const asyncCacheHooks: any[] = getGlobal(\"use-async-cache-execution-hooks\") ?? [];\n for (const hook of asyncCacheHooks) {\n hook({ cache, caller, dependencies });\n }\n\n const id = React.useId();\n\n // whenever the dependencies change, we need to refresh the promise cache\n React.useEffect(() => {\n cachePromiseByHookId.delete(id);\n }, [...dependencies, id]);\n\n const subscribe = useCallback((cb: () => void) => {\n const { unsubscribe } = cache.onStateChange(dependencies, () => {\n cachePromiseByHookId.delete(id);\n cb();\n });\n return unsubscribe;\n }, [cache, ...dependencies]);\n const getSnapshot = useCallback(() => {\n // React checks whether a promise passed to `use` is still the same as the previous one by comparing the reference.\n // If we didn't cache here, this wouldn't work because the promise would be recreated every time the value changes.\n if (!cachePromiseByHookId.has(id)) {\n cachePromiseByHookId.set(id, cache.getOrWait(dependencies, \"read-write\"));\n }\n return cachePromiseByHookId.get(id) as ReactPromise<Result<T>>;\n }, [cache, ...dependencies]);\n\n // note: we must use React.useSyncExternalStore instead of importing the function directly, as it will otherwise\n // throw an error on Next.js (\"can't import useSyncExternalStore from the server\")\n const promise = React.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n );\n\n const result = use(promise);\n if (result.status === \"error\") {\n const error = result.error;\n if (error instanceof Error && !(error as any).__stackHasConcatenatedStacktraces) {\n concatStacktraces(error, new Error());\n (error as any).__stackHasConcatenatedStacktraces = true;\n }\n throw error;\n }\n return result.data;\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Result } from "@hexclave/shared/dist/utils/results";
2
2
 
3
- //#region src/lib/stack-app/apps/implementations/event-tracker.d.ts
3
+ //#region src/lib/hexclave-app/apps/implementations/event-tracker.d.ts
4
4
  type EventTrackerDeps = {
5
5
  projectId: string;
6
6
  sendBatch: (body: string, options: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tracker.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/event-tracker.ts"],"mappings":";;;KAiCY,gBAAA;EACV,SAAA;EACA,SAAA,GAAY,IAAA,UAAc,OAAA;IAAW,SAAA;EAAA,MAAyB,OAAA,CAAQ,MAAA,CAAO,QAAA,EAAU,KAAA;AAAA;AAAA,cAS5E,YAAA;EAAA,QACH,QAAA;EAAA,QACA,UAAA;EAAA,QACA,gBAAA;EAAA,QACA,WAAA;EAAA,QACA,OAAA;EAAA,QACA,YAAA;EAAA,QACA,QAAA;EAAA,iBACS,uBAAA;EAAA,iBACA,KAAA;EAAA,QAET,kBAAA;EAAA,QACA,qBAAA;cAEI,IAAA,EAAM,gBAAA;EAKlB,KAAA,CAAA;EAqBA,IAAA,CAAA;EAUA,WAAA,CAAA;EAAA,QAKQ,UAAA;EAAA,QAQA,gBAAA;EAAA,QA2BA,qBAAA;EAAA,iBA4BS,WAAA;EAAA,QAIT,cAAA;EAAA,QA0BA,sBAAA;EAAA,iBAWS,eAAA;EAAA,QAsBT,kBAAA;EAAA,iBAIS,WAAA;EAAA,QAIT,uBAAA;EAAA,QASA,SAAA;EAAA,QA0BM,MAAA;EAAA,QA+BN,KAAA;AAAA"}
@@ -2,7 +2,7 @@ import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
2
2
  import { isBrowserLike } from "@hexclave/shared/dist/utils/env";
3
3
  import { generateUuid } from "./session-replay.js";
4
4
 
5
- //#region src/lib/stack-app/apps/implementations/event-tracker.ts
5
+ //#region src/lib/hexclave-app/apps/implementations/event-tracker.ts
6
6
  const FLUSH_INTERVAL_MS = 1e4;
7
7
  const MAX_EVENTS_PER_BATCH = 50;
8
8
  const MAX_APPROX_BYTES_PER_BATCH = 64e3;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tracker.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/event-tracker.ts"],"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 { isBrowserLike } from \"@hexclave/shared/dist/utils/env\";\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { generateUuid } from \"./session-replay\";\n\nconst FLUSH_INTERVAL_MS = 10_000;\nconst MAX_EVENTS_PER_BATCH = 50;\nconst MAX_APPROX_BYTES_PER_BATCH = 64_000;\n\nfunction hasScreenDimensions(value: unknown): value is { width: number, height: number } {\n if (value == null || typeof value !== \"object\") {\n return false;\n }\n if (!(\"width\" in value) || !(\"height\" in value)) {\n return false;\n }\n return typeof value.width === \"number\" && typeof value.height === \"number\";\n}\n\nfunction hasHistoryMethods(value: unknown): value is { pushState: History[\"pushState\"], replaceState: History[\"replaceState\"] } {\n if (value == null || typeof value !== \"object\") {\n return false;\n }\n if (!(\"pushState\" in value) || !(\"replaceState\" in value)) {\n return false;\n }\n return typeof value.pushState === \"function\" && typeof value.replaceState === \"function\";\n}\n\nexport type EventTrackerDeps = {\n projectId: string,\n sendBatch: (body: string, options: { keepalive: boolean }) => Promise<Result<Response, Error>>,\n};\n\ntype TrackedEvent = {\n event_type: \"$page-view\" | \"$click\",\n event_at_ms: number,\n data: Record<string, unknown>,\n};\n\nexport class EventTracker {\n private _started = false;\n private _cancelled = false;\n private _detachListeners: (() => void) | null = null;\n private _flushTimer: ReturnType<typeof setInterval> | null = null;\n private _events: TrackedEvent[] = [];\n private _approxBytes = 0;\n private _lastUrl: string | null = null;\n private readonly _sessionReplaySegmentId: string;\n private readonly _deps: EventTrackerDeps;\n\n private _originalPushState: History[\"pushState\"] | null = null;\n private _originalReplaceState: History[\"replaceState\"] | null = null;\n\n constructor(deps: EventTrackerDeps) {\n this._deps = deps;\n this._sessionReplaySegmentId = generateUuid();\n }\n\n start() {\n if (this._started) return;\n if (!isBrowserLike()) return;\n if (\n typeof window.addEventListener !== \"function\"\n || typeof window.removeEventListener !== \"function\"\n || typeof document.addEventListener !== \"function\"\n || typeof document.removeEventListener !== \"function\"\n || !hasScreenDimensions(window.screen)\n ) {\n return;\n }\n this._started = true;\n\n this._setupPageViewCapture();\n this._setupClickCapture();\n this._setupPageHideListeners();\n\n this._flushTimer = setInterval(() => this._tick(), FLUSH_INTERVAL_MS);\n }\n\n stop() {\n this._cancelled = true;\n if (this._flushTimer !== null) {\n clearInterval(this._flushTimer);\n this._flushTimer = null;\n }\n runAsynchronously(() => this._flush({ keepalive: true }));\n this._teardown();\n }\n\n clearBuffer() {\n this._events = [];\n this._approxBytes = 0;\n }\n\n private _pushEvent(event: TrackedEvent) {\n this._events.push(event);\n this._approxBytes += JSON.stringify(event).length;\n if (this._events.length >= MAX_EVENTS_PER_BATCH || this._approxBytes >= MAX_APPROX_BYTES_PER_BATCH) {\n runAsynchronously(() => this._flush({ keepalive: false }));\n }\n }\n\n private _capturePageView(entryType: \"initial\" | \"push\" | \"replace\" | \"pop\") {\n const screenObject = window.screen;\n if (!hasScreenDimensions(screenObject)) {\n return;\n }\n\n const url = window.location.href;\n if (url === this._lastUrl && entryType !== \"initial\") return;\n this._lastUrl = url;\n\n this._pushEvent({\n event_type: \"$page-view\",\n event_at_ms: Date.now(),\n data: {\n url,\n path: window.location.pathname,\n referrer: document.referrer,\n title: document.title,\n entry_type: entryType,\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n screen_width: screenObject.width,\n screen_height: screenObject.height,\n },\n });\n }\n\n private _setupPageViewCapture() {\n // Fire initial page-view\n this._capturePageView(\"initial\");\n const historyObject = window.history;\n if (!hasHistoryMethods(historyObject)) {\n return;\n }\n const originalPushState = historyObject.pushState;\n const originalReplaceState = historyObject.replaceState;\n\n // Monkey-patch history.pushState\n this._originalPushState = (...args: Parameters<History[\"pushState\"]>) => originalPushState.apply(historyObject, args);\n historyObject.pushState = (...args: Parameters<History[\"pushState\"]>) => {\n this._originalPushState!(...args);\n this._capturePageView(\"push\");\n };\n\n // Monkey-patch history.replaceState\n this._originalReplaceState = (...args: Parameters<History[\"replaceState\"]>) => originalReplaceState.apply(historyObject, args);\n historyObject.replaceState = (...args: Parameters<History[\"replaceState\"]>) => {\n this._originalReplaceState!(...args);\n this._capturePageView(\"replace\");\n };\n\n // Listen for popstate (back/forward navigation)\n window.addEventListener(\"popstate\", this._onPopState);\n }\n\n private readonly _onPopState = () => {\n this._capturePageView(\"pop\");\n };\n\n private _buildSelector(element: Element): string {\n const parts: string[] = [];\n let current: Element | null = element;\n let depth = 0;\n\n while (current && depth < 5) {\n let part = current.tagName.toLowerCase();\n if (current.id) {\n part += `#${current.id}`;\n parts.unshift(part);\n break;\n }\n if (current.className && typeof current.className === \"string\") {\n const classes = current.className.trim().split(/\\s+/).filter(Boolean);\n if (classes.length > 0) {\n part += `.${classes.join(\".\")}`;\n }\n }\n parts.unshift(part);\n current = current.parentElement;\n depth++;\n }\n\n return parts.join(\" > \");\n }\n\n private _findNearestAnchorHref(element: Element): string | null {\n let current: Element | null = element;\n while (current) {\n if (current.tagName === \"A\" && current.hasAttribute(\"href\")) {\n return current.getAttribute(\"href\");\n }\n current = current.parentElement;\n }\n return null;\n }\n\n private readonly _onClickCapture = (event: MouseEvent) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n\n this._pushEvent({\n event_type: \"$click\",\n event_at_ms: Date.now(),\n data: {\n tag_name: target.tagName.toLowerCase(),\n text: target.textContent.trim().substring(0, 200),\n href: this._findNearestAnchorHref(target),\n selector: this._buildSelector(target),\n x: event.clientX,\n y: event.clientY,\n page_x: event.pageX,\n page_y: event.pageY,\n viewport_width: window.innerWidth,\n viewport_height: window.innerHeight,\n },\n });\n };\n\n private _setupClickCapture() {\n document.addEventListener(\"click\", this._onClickCapture, { capture: true });\n }\n\n private readonly _onPageHide = () => {\n runAsynchronously(() => this._flush({ keepalive: true }));\n };\n\n private _setupPageHideListeners() {\n window.addEventListener(\"pagehide\", this._onPageHide);\n document.addEventListener(\"visibilitychange\", this._onPageHide);\n this._detachListeners = () => {\n window.removeEventListener(\"pagehide\", this._onPageHide);\n document.removeEventListener(\"visibilitychange\", this._onPageHide);\n };\n }\n\n private _teardown() {\n if (this._detachListeners) {\n this._detachListeners();\n this._detachListeners = null;\n }\n\n // Restore history methods\n const historyObject = window.history;\n if (hasHistoryMethods(historyObject)) {\n if (this._originalPushState) {\n historyObject.pushState = this._originalPushState;\n }\n if (this._originalReplaceState) {\n historyObject.replaceState = this._originalReplaceState;\n }\n }\n this._originalPushState = null;\n this._originalReplaceState = null;\n\n window.removeEventListener(\"popstate\", this._onPopState);\n document.removeEventListener(\"click\", this._onClickCapture, { capture: true });\n\n this._events = [];\n this._approxBytes = 0;\n }\n\n private async _flush(options: { keepalive: boolean }) {\n if (this._events.length === 0) return;\n\n const nowMs = Date.now();\n\n const batchId = generateUuid();\n const payload = {\n session_replay_segment_id: this._sessionReplaySegmentId,\n batch_id: batchId,\n sent_at_ms: nowMs,\n events: this._events,\n };\n\n this._events = [];\n this._approxBytes = 0;\n\n const res = await this._deps.sendBatch(\n JSON.stringify(payload),\n { keepalive: options.keepalive },\n );\n\n if (res.status === \"error\") {\n console.warn(\"EventTracker flush failed:\", res.error);\n return;\n }\n\n if (!res.data.ok) {\n console.warn(\"EventTracker flush failed:\", res.data.status, await res.data.text());\n }\n }\n\n private _tick() {\n if (this._cancelled) return;\n if (this._events.length > 0) {\n runAsynchronously(() => this._flush({ keepalive: false }));\n }\n }\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { afterEach, describe, expect, it, vi } from "vitest";
2
2
  import { Result } from "@hexclave/shared/dist/utils/results";
3
3
  import { EventTracker } from "./event-tracker.js";
4
4
 
5
- //#region src/lib/stack-app/apps/implementations/event-tracker.test.ts
5
+ //#region src/lib/hexclave-app/apps/implementations/event-tracker.test.ts
6
6
  // @vitest-environment jsdom
7
7
  async function advancePastFlush() {
8
8
  await vi.advanceTimersByTimeAsync(1e4);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tracker.test.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/event-tracker.test.ts"],"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 { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { afterEach, describe, expect, it, vi } from \"vitest\";\nimport { EventTracker } from \"./event-tracker\";\n\nasync function advancePastFlush() {\n await vi.advanceTimersByTimeAsync(10_000);\n await Promise.resolve();\n}\n\nfunction getSentEventTypes(sentBodies: string[]) {\n const [body] = sentBodies;\n\n const payload = JSON.parse(body);\n if (typeof payload !== \"object\" || payload === null || !(\"events\" in payload) || !Array.isArray(payload.events)) {\n throw new Error(\"Expected analytics batch payload to include an events array.\");\n }\n\n return (payload.events as { event_type: string }[]).map((event) => event.event_type);\n}\n\ndescribe(\"EventTracker\", () => {\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it(\"captures events when browser globals are exposed as accessor descriptors\", async () => {\n vi.useFakeTimers();\n document.body.innerHTML = \"<button>Open project</button>\";\n\n const screenDescriptor = Object.getOwnPropertyDescriptor(window, \"screen\");\n const historyDescriptor = Object.getOwnPropertyDescriptor(window, \"history\");\n expect(screenDescriptor?.value).toBeUndefined();\n expect(historyDescriptor?.value).toBeUndefined();\n expect(screenDescriptor?.get).toBeTypeOf(\"function\");\n expect(historyDescriptor?.get).toBeTypeOf(\"function\");\n\n const sentBodies: string[] = [];\n const tracker = new EventTracker({\n projectId: \"internal\",\n sendBatch: async (body) => {\n sentBodies.push(body);\n return Result.ok(new Response());\n },\n });\n\n try {\n tracker.start();\n document.querySelector(\"button\")?.dispatchEvent(new MouseEvent(\"click\", {\n bubbles: true,\n clientX: 12,\n clientY: 34,\n }));\n\n await advancePastFlush();\n\n expect(getSentEventTypes(sentBodies)).toMatchInlineSnapshot(`\n [\n \"$page-view\",\n \"$click\",\n ]\n `);\n } finally {\n tracker.stop();\n }\n });\n\n it(\"captures client-side navigations when history is exposed as an accessor descriptor\", async () => {\n vi.useFakeTimers();\n\n const historyDescriptor = Object.getOwnPropertyDescriptor(window, \"history\");\n expect(historyDescriptor?.value).toBeUndefined();\n expect(historyDescriptor?.get).toBeTypeOf(\"function\");\n\n const sentBodies: string[] = [];\n const tracker = new EventTracker({\n projectId: \"internal\",\n sendBatch: async (body) => {\n sentBodies.push(body);\n return Result.ok(new Response());\n },\n });\n\n try {\n tracker.start();\n window.history.pushState({}, \"\", \"/projects/test-project\");\n\n await advancePastFlush();\n\n expect(getSentEventTypes(sentBodies)).toMatchInlineSnapshot(`\n [\n \"$page-view\",\n \"$page-view\",\n ]\n `);\n } finally {\n tracker.stop();\n }\n });\n});\n"],"mappings":";;;;;;AAUA,eAAe,mBAAmB;AAChC,OAAM,GAAG,yBAAyB,IAAO;AACzC,OAAM,QAAQ,SAAS;;AAGzB,SAAS,kBAAkB,YAAsB;CAC/C,MAAM,CAAC,QAAQ;CAEf,MAAM,UAAU,KAAK,MAAM,KAAK;AAChC,KAAI,OAAO,YAAY,YAAY,YAAY,QAAQ,EAAE,YAAY,YAAY,CAAC,MAAM,QAAQ,QAAQ,OAAO,CAC7G,OAAM,IAAI,MAAM,+DAA+D;AAGjF,QAAQ,QAAQ,OAAoC,KAAK,UAAU,MAAM,WAAW;;AAGtF,SAAS,sBAAsB;AAC7B,iBAAgB;AACd,KAAG,eAAe;GAClB;AAEF,IAAG,4EAA4E,YAAY;AACzF,KAAG,eAAe;AAClB,WAAS,KAAK,YAAY;EAE1B,MAAM,mBAAmB,OAAO,yBAAyB,QAAQ,SAAS;EAC1E,MAAM,oBAAoB,OAAO,yBAAyB,QAAQ,UAAU;AAC5E,SAAO,kBAAkB,MAAM,CAAC,eAAe;AAC/C,SAAO,mBAAmB,MAAM,CAAC,eAAe;AAChD,SAAO,kBAAkB,IAAI,CAAC,WAAW,WAAW;AACpD,SAAO,mBAAmB,IAAI,CAAC,WAAW,WAAW;EAErD,MAAM,aAAuB,EAAE;EAC/B,MAAM,UAAU,IAAI,aAAa;GAC/B,WAAW;GACX,WAAW,OAAO,SAAS;AACzB,eAAW,KAAK,KAAK;AACrB,WAAO,OAAO,GAAG,IAAI,UAAU,CAAC;;GAEnC,CAAC;AAEF,MAAI;AACF,WAAQ,OAAO;AACf,YAAS,cAAc,SAAS,EAAE,cAAc,IAAI,WAAW,SAAS;IACtE,SAAS;IACT,SAAS;IACT,SAAS;IACV,CAAC,CAAC;AAEH,SAAM,kBAAkB;AAExB,UAAO,kBAAkB,WAAW,CAAC,CAAC,sBAAsB;;;;;QAK1D;YACM;AACR,WAAQ,MAAM;;GAEhB;AAEF,IAAG,sFAAsF,YAAY;AACnG,KAAG,eAAe;EAElB,MAAM,oBAAoB,OAAO,yBAAyB,QAAQ,UAAU;AAC5E,SAAO,mBAAmB,MAAM,CAAC,eAAe;AAChD,SAAO,mBAAmB,IAAI,CAAC,WAAW,WAAW;EAErD,MAAM,aAAuB,EAAE;EAC/B,MAAM,UAAU,IAAI,aAAa;GAC/B,WAAW;GACX,WAAW,OAAO,SAAS;AACzB,eAAW,KAAK,KAAK;AACrB,WAAO,OAAO,GAAG,IAAI,UAAU,CAAC;;GAEnC,CAAC;AAEF,MAAI;AACF,WAAQ,OAAO;AACf,UAAO,QAAQ,UAAU,EAAE,EAAE,IAAI,yBAAyB;AAE1D,SAAM,kBAAkB;AAExB,UAAO,kBAAkB,WAAW,CAAC,CAAC,sBAAsB;;;;;QAK1D;YACM;AACR,WAAQ,MAAM;;GAEhB;EACF"}
@@ -0,0 +1,9 @@
1
+ import { _HexclaveServerAppImplIncomplete } from "./server-app-impl";
2
+ import { _HexclaveAdminAppImplIncomplete } from "./admin-app-impl";
3
+ import { _HexclaveClientAppImplIncomplete } from "./client-app-impl";
4
+
5
+ //#region src/lib/hexclave-app/apps/implementations/index.d.ts
6
+ declare const _HexclaveAdminAppImpl: typeof _HexclaveAdminAppImplIncomplete, _HexclaveClientAppImpl: typeof _HexclaveClientAppImplIncomplete, _HexclaveServerAppImpl: typeof _HexclaveServerAppImplIncomplete;
7
+ //#endregion
8
+ export { _HexclaveAdminAppImpl, _HexclaveClientAppImpl, _HexclaveServerAppImpl };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/index.ts"],"mappings":";;;;;cA8BE,qBAAA,SAAqB,+BAAA,EAAA,sBAAA,SACC,gCAAA,EAAA,sBAAA,SACA,gCAAA"}
@@ -0,0 +1,27 @@
1
+ import { _HexclaveServerAppImplIncomplete } from "./server-app-impl.js";
2
+ import { scrambleDuringCompileTime } from "@hexclave/shared/dist/utils/compile-time";
3
+ import { _HexclaveAdminAppImplIncomplete } from "./admin-app-impl.js";
4
+ import { _HexclaveClientAppImplIncomplete } from "./client-app-impl.js";
5
+
6
+ //#region src/lib/hexclave-app/apps/implementations/index.ts
7
+ /**
8
+ * Prevents a circular dependency between the client and admin apps. For more information, see the documentation comment
9
+ * of `_HexclaveClientAppImplIncomplete.LazyStackAdminAppImpl`.
10
+ *
11
+ * Note: This is an explicitly defined function that returns the new values (and not a barrel file with top-level side
12
+ * effects) because we have `sideEffects: false` in the package.json, and so it would be tree-shaken away if we just
13
+ * exported the values directly.
14
+ */
15
+ function complete() {
16
+ _HexclaveClientAppImplIncomplete.LazyStackAdminAppImpl.value = _HexclaveAdminAppImplIncomplete;
17
+ return {
18
+ _HexclaveAdminAppImpl: scrambleDuringCompileTime(_HexclaveAdminAppImplIncomplete),
19
+ _HexclaveClientAppImpl: scrambleDuringCompileTime(_HexclaveClientAppImplIncomplete),
20
+ _HexclaveServerAppImpl: scrambleDuringCompileTime(_HexclaveServerAppImplIncomplete)
21
+ };
22
+ }
23
+ const { _HexclaveAdminAppImpl, _HexclaveClientAppImpl, _HexclaveServerAppImpl } = complete();
24
+
25
+ //#endregion
26
+ export { _HexclaveAdminAppImpl, _HexclaveClientAppImpl, _HexclaveServerAppImpl };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/index.ts"],"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\nimport { scrambleDuringCompileTime } from \"@hexclave/shared/dist/utils/compile-time\";\nimport { _HexclaveAdminAppImplIncomplete } from \"./admin-app-impl\";\nimport { _HexclaveClientAppImplIncomplete } from \"./client-app-impl\";\nimport { _HexclaveServerAppImplIncomplete } from \"./server-app-impl\";\n\n\n/**\n * Prevents a circular dependency between the client and admin apps. For more information, see the documentation comment\n * of `_HexclaveClientAppImplIncomplete.LazyStackAdminAppImpl`.\n *\n * Note: This is an explicitly defined function that returns the new values (and not a barrel file with top-level side\n * effects) because we have `sideEffects: false` in the package.json, and so it would be tree-shaken away if we just\n * exported the values directly.\n */\nfunction complete() {\n _HexclaveClientAppImplIncomplete.LazyStackAdminAppImpl.value = _HexclaveAdminAppImplIncomplete;\n\n return {\n _HexclaveAdminAppImpl: scrambleDuringCompileTime(_HexclaveAdminAppImplIncomplete),\n _HexclaveClientAppImpl: scrambleDuringCompileTime(_HexclaveClientAppImplIncomplete),\n _HexclaveServerAppImpl: scrambleDuringCompileTime(_HexclaveServerAppImplIncomplete),\n };\n}\n\nexport const {\n _HexclaveAdminAppImpl,\n _HexclaveClientAppImpl,\n _HexclaveServerAppImpl\n} = complete();\n\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAS,WAAW;AAClB,kCAAiC,sBAAsB,QAAQ;AAE/D,QAAO;EACL,uBAAuB,0BAA0B,gCAAgC;EACjF,wBAAwB,0BAA0B,iCAAiC;EACnF,wBAAwB,0BAA0B,iCAAiC;EACpF;;AAGH,MAAa,EACX,uBACA,wBACA,2BACE,UAAU"}
@@ -1,6 +1,6 @@
1
1
  import { HandlerUrls } from "../../common";
2
2
 
3
- //#region src/lib/stack-app/apps/implementations/redirect-page-urls.d.ts
3
+ //#region src/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts
4
4
  declare const crossDomainAuthQueryParams: {
5
5
  readonly marker: "hexclave_cross_domain_auth";
6
6
  readonly state: "hexclave_cross_domain_state";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-page-urls.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts"],"mappings":";;;cAQa,0BAAA;EAAA;;;;;KAqBD,wBAAA;EACV,KAAA;EACA,aAAA;AAAA;AAAA,iBAGc,yCAAA,CAA0C,UAAA,EAAY,GAAA,GAAM,wBAAA;AAAA,KAkIvE,qBAAA;EACC,IAAA;EAAkB,GAAA;AAAA;EAEpB,IAAA;EACA,WAAA;EACA,KAAA;EACA,aAAA;EACA,wBAAA;AAAA;AAAA,iBAsCkB,qBAAA,CAAsB,OAAA;EAC1C,WAAA,QAAmB,WAAA;EACnB,aAAA;EACA,cAAA;EACA,UAAA,EAAY,GAAA;EACZ,qBAAA;EACA,2BAAA,GAA8B,UAAA,EAAY,GAAA,KAAQ,OAAA,CAAQ,wBAAA;AAAA,IACxD,OAAA,CAAQ,qBAAA"}
@@ -1,7 +1,7 @@
1
1
  import { HexclaveAssertionError } from "@hexclave/shared/dist/utils/errors";
2
2
  import { getRelativePart } from "@hexclave/shared/dist/utils/urls";
3
3
 
4
- //#region src/lib/stack-app/apps/implementations/redirect-page-urls.ts
4
+ //#region src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts
5
5
  const crossDomainAuthQueryParams = {
6
6
  marker: "hexclave_cross_domain_auth",
7
7
  state: "hexclave_cross_domain_state",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-page-urls.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts"],"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 { HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { getRelativePart } from \"@hexclave/shared/dist/utils/urls\";\nimport { HandlerUrls } from \"../../common\";\n\nexport const crossDomainAuthQueryParams = {\n marker: \"hexclave_cross_domain_auth\",\n state: \"hexclave_cross_domain_state\",\n codeChallenge: \"hexclave_cross_domain_code_challenge\",\n afterCallbackRedirectUrl: \"hexclave_cross_domain_after_callback_redirect_url\",\n} as const;\n\ntype CrossDomainAuthQueryParamKey = keyof typeof crossDomainAuthQueryParams;\n\nfunction getCrossDomainParam(params: URLSearchParams, key: CrossDomainAuthQueryParamKey): string | null {\n return params.get(crossDomainAuthQueryParams[key]);\n}\n\nfunction hasCrossDomainParam(params: URLSearchParams, key: CrossDomainAuthQueryParamKey): boolean {\n return params.has(crossDomainAuthQueryParams[key]);\n}\n\nfunction setCrossDomainParam(params: URLSearchParams, key: CrossDomainAuthQueryParamKey, value: string): void {\n params.set(crossDomainAuthQueryParams[key], value);\n}\n\nexport type CrossDomainHandoffParams = {\n state: string,\n codeChallenge: string,\n};\n\nexport function getCrossDomainHandoffParamsFromCurrentUrl(currentUrl: URL): CrossDomainHandoffParams | null {\n const state = getCrossDomainParam(currentUrl.searchParams, \"state\");\n const codeChallenge = getCrossDomainParam(currentUrl.searchParams, \"codeChallenge\");\n if (state == null || codeChallenge == null) {\n return null;\n }\n return { state, codeChallenge };\n}\n\ntype RedirectBackAwareHandlerName = \"signIn\" | \"signUp\" | \"onboarding\" | \"signOut\";\ntype HandlerRedirectPolicy = \"none\" | \"redirect-back-aware\" | \"after-auth-return\";\n\ntype CrossDomainHandoffParamsMaybeMissing = {\n state: string | null,\n codeChallenge: string | null,\n afterCallbackRedirectUrl: string | null,\n};\n\nfunction isRedirectBackAwareHandlerName(handlerName: keyof HandlerUrls): handlerName is RedirectBackAwareHandlerName {\n return handlerName === \"signIn\"\n || handlerName === \"signUp\"\n || handlerName === \"onboarding\"\n || handlerName === \"signOut\";\n}\n\nfunction hasCrossDomainHandoffParams(url: URL): boolean {\n return (\n hasCrossDomainParam(url.searchParams, \"state\")\n && hasCrossDomainParam(url.searchParams, \"codeChallenge\")\n && hasCrossDomainParam(url.searchParams, \"afterCallbackRedirectUrl\")\n );\n}\n\nfunction buildCrossDomainAuthCallbackUrl(options: {\n currentUrl: URL,\n localOAuthCallbackUrl: string,\n state?: string,\n codeChallenge?: string,\n afterCallbackRedirectUrl?: string,\n}): URL {\n const localOAuthCallbackUrl = new URL(options.localOAuthCallbackUrl, options.currentUrl);\n if (localOAuthCallbackUrl.origin !== options.currentUrl.origin) {\n throw new HexclaveAssertionError(\"Cross-domain auth callback URL must stay on the current origin\", {\n localOAuthCallbackUrl: localOAuthCallbackUrl.toString(),\n currentUrl: options.currentUrl.toString(),\n });\n }\n setCrossDomainParam(localOAuthCallbackUrl.searchParams, \"marker\", \"1\");\n if (options.state != null) {\n setCrossDomainParam(localOAuthCallbackUrl.searchParams, \"state\", options.state);\n }\n if (options.codeChallenge != null) {\n setCrossDomainParam(localOAuthCallbackUrl.searchParams, \"codeChallenge\", options.codeChallenge);\n }\n if (options.afterCallbackRedirectUrl != null) {\n setCrossDomainParam(localOAuthCallbackUrl.searchParams, \"afterCallbackRedirectUrl\", options.afterCallbackRedirectUrl);\n }\n return localOAuthCallbackUrl;\n}\n\nfunction buildRedirectBackAwareHandlerUrl(options: {\n handlerName: RedirectBackAwareHandlerName,\n rawHandlerUrl: string,\n currentUrl: URL,\n crossDomainHandoffParams: CrossDomainHandoffParams | null,\n localOAuthCallbackUrl: string,\n}): string {\n const nextUrl = new URL(options.rawHandlerUrl, options.currentUrl);\n // Preserve after_auth_return_to verbatim (not a rebranded param).\n const currentAfterAuthReturnTo = options.currentUrl.searchParams.get(\"after_auth_return_to\");\n if (currentAfterAuthReturnTo != null && !nextUrl.searchParams.has(\"after_auth_return_to\")) {\n nextUrl.searchParams.set(\"after_auth_return_to\", currentAfterAuthReturnTo);\n }\n for (const preservedParam of [\"state\", \"codeChallenge\", \"afterCallbackRedirectUrl\"] as const) {\n const currentValue = getCrossDomainParam(options.currentUrl.searchParams, preservedParam);\n if (currentValue != null && !hasCrossDomainParam(nextUrl.searchParams, preservedParam)) {\n setCrossDomainParam(nextUrl.searchParams, preservedParam, currentValue);\n }\n }\n\n if (options.handlerName === \"signOut\") {\n if (!nextUrl.searchParams.has(\"after_auth_return_to\")) {\n if (options.currentUrl.protocol === nextUrl.protocol && options.currentUrl.host === nextUrl.host) {\n nextUrl.searchParams.set(\"after_auth_return_to\", getRelativePart(options.currentUrl));\n } else {\n nextUrl.searchParams.set(\"after_auth_return_to\", options.currentUrl.toString());\n }\n }\n return nextUrl.origin === options.currentUrl.origin ? getRelativePart(nextUrl) : nextUrl.toString();\n }\n\n const isCrossDomainHandlerRedirect = options.currentUrl.origin !== nextUrl.origin;\n if (isCrossDomainHandlerRedirect) {\n if (!hasCrossDomainHandoffParams(nextUrl)) {\n const inheritedAfterAuthReturnTo = options.currentUrl.searchParams.get(\"after_auth_return_to\");\n const afterCallbackRedirectUrl = inheritedAfterAuthReturnTo\n ? new URL(inheritedAfterAuthReturnTo, options.currentUrl).toString()\n : options.currentUrl.toString();\n const callbackUrl = buildCrossDomainAuthCallbackUrl({\n currentUrl: options.currentUrl,\n localOAuthCallbackUrl: options.localOAuthCallbackUrl,\n state: options.crossDomainHandoffParams?.state,\n codeChallenge: options.crossDomainHandoffParams?.codeChallenge,\n afterCallbackRedirectUrl,\n });\n\n nextUrl.searchParams.set(\"after_auth_return_to\", callbackUrl.toString());\n setCrossDomainParam(nextUrl.searchParams, \"afterCallbackRedirectUrl\", afterCallbackRedirectUrl);\n if (options.crossDomainHandoffParams != null) {\n setCrossDomainParam(nextUrl.searchParams, \"state\", options.crossDomainHandoffParams.state);\n setCrossDomainParam(nextUrl.searchParams, \"codeChallenge\", options.crossDomainHandoffParams.codeChallenge);\n }\n }\n } else if (options.currentUrl.protocol === nextUrl.protocol && options.currentUrl.host === nextUrl.host && !nextUrl.searchParams.has(\"after_auth_return_to\")) {\n nextUrl.searchParams.set(\"after_auth_return_to\", getRelativePart(options.currentUrl));\n }\n\n return nextUrl.origin === options.currentUrl.origin ? getRelativePart(nextUrl) : nextUrl.toString();\n}\n\nfunction getHandlerRedirectPolicy(handlerName: keyof HandlerUrls): HandlerRedirectPolicy {\n if (handlerName === \"afterSignIn\" || handlerName === \"afterSignUp\") {\n return \"after-auth-return\";\n }\n if (isRedirectBackAwareHandlerName(handlerName)) {\n return \"redirect-back-aware\";\n }\n return \"none\";\n}\n\ntype RedirectToHandlerPlan =\n | { type: \"redirect\", url: string }\n | {\n type: \"cross-domain-authorize\",\n redirectUri: string,\n state: string,\n codeChallenge: string,\n afterCallbackRedirectUrl: string,\n };\n\n\nasync function resolveRedirectBackAwareHandlerUrlForRedirect(options: {\n handlerName: RedirectBackAwareHandlerName,\n rawHandlerUrl: string,\n currentUrl: URL,\n localOAuthCallbackUrl: string,\n getCrossDomainHandoffParams: (currentUrl: URL) => Promise<CrossDomainHandoffParams>,\n}): Promise<string> {\n const initial = buildRedirectBackAwareHandlerUrl({\n handlerName: options.handlerName,\n rawHandlerUrl: options.rawHandlerUrl,\n currentUrl: options.currentUrl,\n crossDomainHandoffParams: null,\n localOAuthCallbackUrl: options.localOAuthCallbackUrl,\n });\n if (options.handlerName === \"signOut\") {\n return initial;\n }\n\n const initialTarget = new URL(initial, options.currentUrl);\n const isCrossDomainHandlerRedirect = options.currentUrl.origin !== initialTarget.origin;\n if (!isCrossDomainHandlerRedirect || hasCrossDomainHandoffParams(initialTarget)) {\n return initial;\n }\n\n const crossDomainHandoffParams = await options.getCrossDomainHandoffParams(options.currentUrl);\n return buildRedirectBackAwareHandlerUrl({\n handlerName: options.handlerName,\n rawHandlerUrl: options.rawHandlerUrl,\n currentUrl: options.currentUrl,\n crossDomainHandoffParams,\n localOAuthCallbackUrl: options.localOAuthCallbackUrl,\n });\n}\n\nexport async function planRedirectToHandler(options: {\n handlerName: keyof HandlerUrls,\n rawHandlerUrl: string,\n noRedirectBack: boolean,\n currentUrl: URL | null,\n localOAuthCallbackUrl: string,\n getCrossDomainHandoffParams: (currentUrl: URL) => Promise<CrossDomainHandoffParams>,\n}): Promise<RedirectToHandlerPlan> {\n if (options.noRedirectBack || options.currentUrl == null) {\n return { type: \"redirect\", url: options.rawHandlerUrl };\n }\n\n const policy = getHandlerRedirectPolicy(options.handlerName);\n if (policy === \"none\") {\n return { type: \"redirect\", url: options.rawHandlerUrl };\n }\n\n if (policy === \"after-auth-return\") {\n const redirectBackUrl = options.currentUrl.searchParams.get(\"after_auth_return_to\");\n if (redirectBackUrl == null) {\n return { type: \"redirect\", url: options.rawHandlerUrl };\n }\n const redirectBackTarget = new URL(redirectBackUrl, options.currentUrl);\n const crossDomainHandoff = getCrossDomainHandoffForRedirect({\n currentUrl: options.currentUrl,\n redirectBackTarget,\n });\n if (crossDomainHandoff == null) {\n return { type: \"redirect\", url: redirectBackUrl };\n }\n let state = crossDomainHandoff.handoffParams.state;\n let codeChallenge = crossDomainHandoff.handoffParams.codeChallenge;\n let afterCallbackRedirectUrl = crossDomainHandoff.handoffParams.afterCallbackRedirectUrl;\n if (state == null || codeChallenge == null) {\n const generatedHandoffParams = await options.getCrossDomainHandoffParams(options.currentUrl);\n state ??= generatedHandoffParams.state;\n codeChallenge ??= generatedHandoffParams.codeChallenge;\n }\n afterCallbackRedirectUrl ??= options.currentUrl.toString();\n return {\n type: \"cross-domain-authorize\",\n redirectUri: crossDomainHandoff.redirectBackTarget.toString(),\n state,\n codeChallenge,\n afterCallbackRedirectUrl,\n };\n }\n\n if (\n options.handlerName !== \"signIn\"\n && options.handlerName !== \"signUp\"\n && options.handlerName !== \"onboarding\"\n && options.handlerName !== \"signOut\"\n ) {\n throw new HexclaveAssertionError(\"Unexpected redirect-back-aware handler policy mismatch\", {\n handlerName: options.handlerName,\n policy,\n });\n }\n\n return {\n type: \"redirect\",\n url: await resolveRedirectBackAwareHandlerUrlForRedirect({\n handlerName: options.handlerName,\n rawHandlerUrl: options.rawHandlerUrl,\n currentUrl: options.currentUrl,\n localOAuthCallbackUrl: options.localOAuthCallbackUrl,\n getCrossDomainHandoffParams: options.getCrossDomainHandoffParams,\n }),\n };\n}\n\nfunction readCrossDomainHandoffParams(currentUrl: URL, redirectBackTarget: URL): CrossDomainHandoffParamsMaybeMissing {\n // Hexclave rebrand: accept either param name from both URLs.\n const state = getCrossDomainParam(currentUrl.searchParams, \"state\")\n ?? getCrossDomainParam(redirectBackTarget.searchParams, \"state\");\n const codeChallenge = getCrossDomainParam(currentUrl.searchParams, \"codeChallenge\")\n ?? getCrossDomainParam(redirectBackTarget.searchParams, \"codeChallenge\");\n const afterCallbackRedirectUrl = getCrossDomainParam(currentUrl.searchParams, \"afterCallbackRedirectUrl\")\n ?? getCrossDomainParam(redirectBackTarget.searchParams, \"afterCallbackRedirectUrl\");\n return {\n state,\n codeChallenge,\n afterCallbackRedirectUrl,\n };\n}\n\nfunction resolveCrossDomainRedirectBackTarget(options: {\n currentUrl: URL,\n redirectBackTarget: URL,\n handoffParams: CrossDomainHandoffParamsMaybeMissing,\n}): URL | null {\n if (options.redirectBackTarget.origin !== options.currentUrl.origin) {\n return options.redirectBackTarget;\n }\n if (\n options.handoffParams.state == null\n || options.handoffParams.codeChallenge == null\n || options.handoffParams.afterCallbackRedirectUrl == null\n ) {\n return null;\n }\n const afterCallbackRedirectTarget = new URL(options.handoffParams.afterCallbackRedirectUrl, options.currentUrl);\n if (afterCallbackRedirectTarget.origin === options.currentUrl.origin) {\n return null;\n }\n return new URL(\n `${options.redirectBackTarget.pathname}${options.redirectBackTarget.search}${options.redirectBackTarget.hash}`,\n afterCallbackRedirectTarget.origin,\n );\n}\n\nfunction getCrossDomainHandoffForRedirect(options: {\n currentUrl: URL,\n redirectBackTarget: URL,\n}): {\n redirectBackTarget: URL,\n handoffParams: CrossDomainHandoffParamsMaybeMissing,\n} | null {\n const handoffParams = readCrossDomainHandoffParams(options.currentUrl, options.redirectBackTarget);\n const crossDomainRedirectBackTarget = resolveCrossDomainRedirectBackTarget({\n currentUrl: options.currentUrl,\n redirectBackTarget: options.redirectBackTarget,\n handoffParams,\n });\n if (crossDomainRedirectBackTarget == null) {\n return null;\n }\n return {\n redirectBackTarget: crossDomainRedirectBackTarget,\n handoffParams,\n };\n}\n"],"mappings":"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"}
@@ -22,13 +22,13 @@ import { Customer, CustomerProductsList, CustomerProductsRequestOptions, InlineP
22
22
  import { NotificationCategory } from "../../notification-categories";
23
23
  import { EditableTeamMemberProfile, ReceivedTeamInvitation, SentTeamInvitation, ServerListTeamsOptions, ServerListUsersOptions, ServerTeam, ServerTeamCreateOptions, ServerTeamUser } from "../../teams";
24
24
  import { ProjectCurrentServerUser, ServerOAuthProvider, ServerUser, ServerUserCreateOptions } from "../../users";
25
- import { _StackClientAppImplIncomplete } from "./client-app-impl";
25
+ import { _HexclaveClientAppImplIncomplete } from "./client-app-impl";
26
26
  import { DataVaultStore } from "../../data-vault";
27
27
  import { EmailDeliveryInfo, SendEmailOptions } from "../../email";
28
28
  import { StackServerAppConstructorOptions } from "../interfaces/server-app";
29
29
 
30
- //#region src/lib/stack-app/apps/implementations/server-app-impl.d.ts
31
- declare class _StackServerAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _StackClientAppImplIncomplete<HasTokenStore, ProjectId> {
30
+ //#region src/lib/hexclave-app/apps/implementations/server-app-impl.d.ts
31
+ declare class _HexclaveServerAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _HexclaveClientAppImplIncomplete<HasTokenStore, ProjectId> {
32
32
  protected _interface: HexclaveServerInterface;
33
33
  private readonly _currentServerUserCache;
34
34
  private readonly _serverUsersCache;
@@ -256,5 +256,5 @@ declare class _StackServerAppImplIncomplete<HasTokenStore extends boolean, Proje
256
256
  }): Promise<Result<ServerOAuthProvider, InstanceType<typeof KnownErrors.OAuthProviderAccountIdAlreadyUsedForSignIn>>>;
257
257
  }
258
258
  //#endregion
259
- export { _StackServerAppImplIncomplete };
259
+ export { _HexclaveServerAppImplIncomplete };
260
260
  //# sourceMappingURL=server-app-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-app-impl.d.ts","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/server-app-impl.ts"],"mappings":"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"}
@@ -12,10 +12,10 @@ import { apiKeyCreationOptionsToCrud, apiKeyUpdateOptionsToCrud } from "../../ap
12
12
  import { serverContactChannelCreateOptionsToCrud, serverContactChannelUpdateOptionsToCrud } from "../../contact-channels/index.js";
13
13
  import { serverTeamCreateOptionsToCrud, serverTeamUpdateOptionsToCrud } from "../../teams/index.js";
14
14
  import { serverUserCreateOptionsToCrud, serverUserUpdateOptionsToCrud, withUserDestructureGuard } from "../../users/index.js";
15
- import { _StackClientAppImplIncomplete } from "./client-app-impl.js";
15
+ import { _HexclaveClientAppImplIncomplete } from "./client-app-impl.js";
16
16
 
17
- //#region src/lib/stack-app/apps/implementations/server-app-impl.ts
18
- var _StackServerAppImplIncomplete = class extends _StackClientAppImplIncomplete {
17
+ //#region src/lib/hexclave-app/apps/implementations/server-app-impl.ts
18
+ var _HexclaveServerAppImplIncomplete = class extends _HexclaveClientAppImplIncomplete {
19
19
  async _refreshTeamMembership(teamId, userId) {
20
20
  await Promise.all([
21
21
  this._serverTeamMemberProfilesCache.refresh([teamId]),
@@ -1039,7 +1039,7 @@ var _StackServerAppImplIncomplete = class extends _StackClientAppImplIncomplete
1039
1039
  }
1040
1040
  }
1041
1041
  async getServerUser() {
1042
- console.warn("stackServerApp.getServerUser is deprecated; use stackServerApp.getUser instead");
1042
+ console.warn("hexclaveServerApp.getServerUser is deprecated; use hexclaveServerApp.getUser instead");
1043
1043
  return await this.getUser();
1044
1044
  }
1045
1045
  async getServerUserById(userId) {
@@ -1340,7 +1340,7 @@ var _StackServerAppImplIncomplete = class extends _StackClientAppImplIncomplete
1340
1340
  return Result.orThrow(await this._emailDeliveryInfoCache.getOrWait([], "write-only"));
1341
1341
  }
1342
1342
  useEmailDeliveryStats() {
1343
- return useAsyncCache(this._emailDeliveryInfoCache, [], "stackServerApp.useEmailDeliveryStats()");
1343
+ return useAsyncCache(this._emailDeliveryInfoCache, [], "hexclaveServerApp.useEmailDeliveryStats()");
1344
1344
  }
1345
1345
  async activateEmailCapacityBoost() {
1346
1346
  await this._interface.activateEmailCapacityBoost();
@@ -1379,5 +1379,5 @@ var _StackServerAppImplIncomplete = class extends _StackClientAppImplIncomplete
1379
1379
  };
1380
1380
 
1381
1381
  //#endregion
1382
- export { _StackServerAppImplIncomplete };
1382
+ export { _HexclaveServerAppImplIncomplete };
1383
1383
  //# sourceMappingURL=server-app-impl.js.map