@hexclave/next 1.0.41 → 1.0.43

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 (1117) hide show
  1. package/dist/account-settings-cTsj8rpJ.d.ts +56 -0
  2. package/dist/account-settings-cTsj8rpJ.d.ts.map +1 -0
  3. package/dist/admin-app-impl-DgLL2Tua.d.ts +1282 -0
  4. package/dist/admin-app-impl-DgLL2Tua.d.ts.map +1 -0
  5. package/dist/auth-page-YnM_LtbN.d.ts +24 -0
  6. package/dist/auth-page-YnM_LtbN.d.ts.map +1 -0
  7. package/dist/cli-auth-confirm-BW3PYpKb.d.ts +19 -0
  8. package/dist/cli-auth-confirm-BW3PYpKb.d.ts.map +1 -0
  9. package/dist/clickmap/clickmap-core.d.ts +1 -2
  10. package/dist/clickmap/clickmap-core.d.ts.map +1 -1
  11. package/dist/clickmap/clickmap-core.js +4 -6
  12. package/dist/clickmap/clickmap-core.js.map +1 -1
  13. package/dist/clickmap/clickmap-styles.js +3 -6
  14. package/dist/clickmap/clickmap-styles.js.map +1 -1
  15. package/dist/clickmap/index.d.ts +1 -2
  16. package/dist/clickmap/index.d.ts.map +1 -1
  17. package/dist/clickmap/index.js +4 -6
  18. package/dist/clickmap/index.js.map +1 -1
  19. package/dist/client-app-Bi8p4lxS.d.ts +1359 -0
  20. package/dist/client-app-Bi8p4lxS.d.ts.map +1 -0
  21. package/dist/common-B2gkWlXX.d.ts +183 -0
  22. package/dist/common-B2gkWlXX.d.ts.map +1 -0
  23. package/dist/common-BK_sydxF.d.ts +66 -0
  24. package/dist/common-BK_sydxF.d.ts.map +1 -0
  25. package/dist/components/api-key-dialogs.d.ts +3 -4
  26. package/dist/components/api-key-dialogs.d.ts.map +1 -1
  27. package/dist/components/api-key-dialogs.js +5 -8
  28. package/dist/components/api-key-dialogs.js.map +1 -1
  29. package/dist/components/api-key-table.d.ts +2 -3
  30. package/dist/components/api-key-table.d.ts.map +1 -1
  31. package/dist/components/api-key-table.js +3 -6
  32. package/dist/components/api-key-table.js.map +1 -1
  33. package/dist/components/credential-sign-in.d.ts +2 -7
  34. package/dist/components/credential-sign-in.js +4 -7
  35. package/dist/components/credential-sign-in.js.map +1 -1
  36. package/dist/components/credential-sign-up.d.ts +2 -9
  37. package/dist/components/credential-sign-up.js +7 -9
  38. package/dist/components/credential-sign-up.js.map +1 -1
  39. package/dist/components/elements/form-warning.d.ts +1 -3
  40. package/dist/components/elements/form-warning.d.ts.map +1 -1
  41. package/dist/components/elements/form-warning.js +3 -6
  42. package/dist/components/elements/form-warning.js.map +1 -1
  43. package/dist/components/elements/maybe-full-page.d.ts +1 -2
  44. package/dist/components/elements/maybe-full-page.d.ts.map +1 -1
  45. package/dist/components/elements/maybe-full-page.js +4 -6
  46. package/dist/components/elements/maybe-full-page.js.map +1 -1
  47. package/dist/components/elements/separator-with-text.d.ts +1 -3
  48. package/dist/components/elements/separator-with-text.d.ts.map +1 -1
  49. package/dist/components/elements/separator-with-text.js +3 -6
  50. package/dist/components/elements/separator-with-text.js.map +1 -1
  51. package/dist/components/elements/sidebar-layout.d.ts +1 -2
  52. package/dist/components/elements/sidebar-layout.d.ts.map +1 -1
  53. package/dist/components/elements/sidebar-layout.js +5 -7
  54. package/dist/components/elements/sidebar-layout.js.map +1 -1
  55. package/dist/components/elements/ssr-layout-effect.d.ts +1 -3
  56. package/dist/components/elements/ssr-layout-effect.d.ts.map +1 -1
  57. package/dist/components/elements/ssr-layout-effect.js +2 -5
  58. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  59. package/dist/components/elements/user-avatar.d.ts +2 -15
  60. package/dist/components/elements/user-avatar.js +2 -4
  61. package/dist/components/elements/user-avatar.js.map +1 -1
  62. package/dist/components/link.d.ts +2 -4
  63. package/dist/components/link.d.ts.map +1 -1
  64. package/dist/components/link.js +5 -7
  65. package/dist/components/link.js.map +1 -1
  66. package/dist/components/magic-link-sign-in.d.ts +2 -7
  67. package/dist/components/magic-link-sign-in.js +4 -7
  68. package/dist/components/magic-link-sign-in.js.map +1 -1
  69. package/dist/components/message-cards/known-error-message-card.d.ts +1 -2
  70. package/dist/components/message-cards/known-error-message-card.d.ts.map +1 -1
  71. package/dist/components/message-cards/known-error-message-card.js +2 -5
  72. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  73. package/dist/components/message-cards/message-card.d.ts +2 -19
  74. package/dist/components/message-cards/message-card.js +5 -7
  75. package/dist/components/message-cards/message-card.js.map +1 -1
  76. package/dist/components/message-cards/predefined-message-card.d.ts +1 -3
  77. package/dist/components/message-cards/predefined-message-card.d.ts.map +1 -1
  78. package/dist/components/message-cards/predefined-message-card.js +2 -5
  79. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  80. package/dist/components/oauth-button-group.d.ts +2 -19
  81. package/dist/components/oauth-button-group.js +3 -6
  82. package/dist/components/oauth-button-group.js.map +1 -1
  83. package/dist/components/oauth-button.d.ts +2 -17
  84. package/dist/components/oauth-button.js +5 -7
  85. package/dist/components/oauth-button.js.map +1 -1
  86. package/dist/components/passkey-button.d.ts +1 -3
  87. package/dist/components/passkey-button.d.ts.map +1 -1
  88. package/dist/components/passkey-button.js +3 -6
  89. package/dist/components/passkey-button.js.map +1 -1
  90. package/dist/components/profile-image-editor.d.ts +2 -3
  91. package/dist/components/profile-image-editor.d.ts.map +1 -1
  92. package/dist/components/profile-image-editor.js +5 -6
  93. package/dist/components/profile-image-editor.js.map +1 -1
  94. package/dist/components/selected-team-switcher.d.ts +2 -31
  95. package/dist/components/selected-team-switcher.js +3 -6
  96. package/dist/components/selected-team-switcher.js.map +1 -1
  97. package/dist/components/team-icon.d.ts +2 -4
  98. package/dist/components/team-icon.d.ts.map +1 -1
  99. package/dist/components/team-icon.js +2 -4
  100. package/dist/components/team-icon.js.map +1 -1
  101. package/dist/components/team-switcher.d.ts +2 -31
  102. package/dist/components/team-switcher.js +4 -7
  103. package/dist/components/team-switcher.js.map +1 -1
  104. package/dist/components/use-in-iframe.d.ts.map +1 -1
  105. package/dist/components/use-in-iframe.js +3 -6
  106. package/dist/components/use-in-iframe.js.map +1 -1
  107. package/dist/components/user-button.d.ts +2 -22
  108. package/dist/components/user-button.js +5 -7
  109. package/dist/components/user-button.js.map +1 -1
  110. package/dist/components-page/account-settings/active-sessions/active-sessions-page.d.ts +1 -3
  111. package/dist/components-page/account-settings/active-sessions/active-sessions-page.d.ts.map +1 -1
  112. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js +3 -5
  113. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  114. package/dist/components-page/account-settings/api-keys/api-keys-page.d.ts +1 -3
  115. package/dist/components-page/account-settings/api-keys/api-keys-page.d.ts.map +1 -1
  116. package/dist/components-page/account-settings/api-keys/api-keys-page.js +2 -4
  117. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  118. package/dist/components-page/account-settings/editable-text.d.ts +1 -3
  119. package/dist/components-page/account-settings/editable-text.d.ts.map +1 -1
  120. package/dist/components-page/account-settings/editable-text.js +2 -4
  121. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  122. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts +1 -3
  123. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts.map +1 -1
  124. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js +2 -4
  125. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  126. package/dist/components-page/account-settings/email-and-auth/emails-section.d.ts +1 -3
  127. package/dist/components-page/account-settings/email-and-auth/emails-section.d.ts.map +1 -1
  128. package/dist/components-page/account-settings/email-and-auth/emails-section.js +3 -5
  129. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  130. package/dist/components-page/account-settings/email-and-auth/mfa-section.d.ts +1 -3
  131. package/dist/components-page/account-settings/email-and-auth/mfa-section.d.ts.map +1 -1
  132. package/dist/components-page/account-settings/email-and-auth/mfa-section.js +6 -7
  133. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  134. package/dist/components-page/account-settings/email-and-auth/otp-section.d.ts +1 -3
  135. package/dist/components-page/account-settings/email-and-auth/otp-section.d.ts.map +1 -1
  136. package/dist/components-page/account-settings/email-and-auth/otp-section.js +2 -4
  137. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  138. package/dist/components-page/account-settings/email-and-auth/passkey-section.d.ts +1 -3
  139. package/dist/components-page/account-settings/email-and-auth/passkey-section.d.ts.map +1 -1
  140. package/dist/components-page/account-settings/email-and-auth/passkey-section.js +2 -4
  141. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  142. package/dist/components-page/account-settings/email-and-auth/password-section.d.ts +1 -3
  143. package/dist/components-page/account-settings/email-and-auth/password-section.d.ts.map +1 -1
  144. package/dist/components-page/account-settings/email-and-auth/password-section.js +5 -6
  145. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  146. package/dist/components-page/account-settings/notifications/notifications-page.d.ts +1 -3
  147. package/dist/components-page/account-settings/notifications/notifications-page.d.ts.map +1 -1
  148. package/dist/components-page/account-settings/notifications/notifications-page.js +2 -4
  149. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  150. package/dist/components-page/account-settings/page-layout.d.ts +1 -3
  151. package/dist/components-page/account-settings/page-layout.d.ts.map +1 -1
  152. package/dist/components-page/account-settings/page-layout.js +2 -4
  153. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  154. package/dist/components-page/account-settings/payments/payments-page.d.ts +2 -4
  155. package/dist/components-page/account-settings/payments/payments-page.d.ts.map +1 -1
  156. package/dist/components-page/account-settings/payments/payments-page.js +3 -6
  157. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  158. package/dist/components-page/account-settings/payments/payments-panel.d.ts +2 -3
  159. package/dist/components-page/account-settings/payments/payments-panel.d.ts.map +1 -1
  160. package/dist/components-page/account-settings/payments/payments-panel.js +3 -6
  161. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  162. package/dist/components-page/account-settings/profile-page/profile-page.d.ts +1 -3
  163. package/dist/components-page/account-settings/profile-page/profile-page.d.ts.map +1 -1
  164. package/dist/components-page/account-settings/profile-page/profile-page.js +2 -4
  165. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  166. package/dist/components-page/account-settings/section.d.ts +1 -3
  167. package/dist/components-page/account-settings/section.d.ts.map +1 -1
  168. package/dist/components-page/account-settings/section.js +2 -4
  169. package/dist/components-page/account-settings/section.js.map +1 -1
  170. package/dist/components-page/account-settings/settings/delete-account-section.d.ts +1 -3
  171. package/dist/components-page/account-settings/settings/delete-account-section.d.ts.map +1 -1
  172. package/dist/components-page/account-settings/settings/delete-account-section.js +2 -4
  173. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  174. package/dist/components-page/account-settings/settings/settings-page.d.ts +1 -3
  175. package/dist/components-page/account-settings/settings/settings-page.d.ts.map +1 -1
  176. package/dist/components-page/account-settings/settings/settings-page.js +2 -4
  177. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  178. package/dist/components-page/account-settings/settings/sign-out-section.d.ts +1 -3
  179. package/dist/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  180. package/dist/components-page/account-settings/settings/sign-out-section.js +2 -4
  181. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  182. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +2 -4
  183. package/dist/components-page/account-settings/teams/leave-team-section.d.ts.map +1 -1
  184. package/dist/components-page/account-settings/teams/leave-team-section.js +2 -4
  185. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  186. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +2 -3
  187. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts.map +1 -1
  188. package/dist/components-page/account-settings/teams/team-api-keys-section.js +2 -4
  189. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  190. package/dist/components-page/account-settings/teams/team-creation-page.d.ts +1 -3
  191. package/dist/components-page/account-settings/teams/team-creation-page.d.ts.map +1 -1
  192. package/dist/components-page/account-settings/teams/team-creation-page.js +3 -5
  193. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  194. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +2 -4
  195. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts.map +1 -1
  196. package/dist/components-page/account-settings/teams/team-display-name-section.js +2 -4
  197. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  198. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +2 -4
  199. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts.map +1 -1
  200. package/dist/components-page/account-settings/teams/team-member-invitation-section.js +3 -5
  201. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  202. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +2 -4
  203. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts.map +1 -1
  204. package/dist/components-page/account-settings/teams/team-member-list-section.js +2 -4
  205. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  206. package/dist/components-page/account-settings/teams/team-page.d.ts +2 -4
  207. package/dist/components-page/account-settings/teams/team-page.d.ts.map +1 -1
  208. package/dist/components-page/account-settings/teams/team-page.js +2 -4
  209. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  210. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +2 -4
  211. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts.map +1 -1
  212. package/dist/components-page/account-settings/teams/team-profile-image-section.js +2 -4
  213. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  214. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +2 -4
  215. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts.map +1 -1
  216. package/dist/components-page/account-settings/teams/team-profile-user-section.js +2 -4
  217. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  218. package/dist/components-page/account-settings.d.ts +2 -58
  219. package/dist/components-page/account-settings.js +5 -7
  220. package/dist/components-page/account-settings.js.map +1 -1
  221. package/dist/components-page/auth-page.d.ts +2 -26
  222. package/dist/components-page/auth-page.js +4 -7
  223. package/dist/components-page/auth-page.js.map +1 -1
  224. package/dist/components-page/cli-auth-confirm.d.ts +2 -21
  225. package/dist/components-page/cli-auth-confirm.js +4 -7
  226. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  227. package/dist/components-page/cli-auth-confirm.test.js +4 -5
  228. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  229. package/dist/components-page/email-verification.d.ts +2 -10
  230. package/dist/components-page/email-verification.js +5 -7
  231. package/dist/components-page/email-verification.js.map +1 -1
  232. package/dist/components-page/error-page.d.ts +2 -10
  233. package/dist/components-page/error-page.js +3 -6
  234. package/dist/components-page/error-page.js.map +1 -1
  235. package/dist/components-page/forgot-password.d.ts +2 -14
  236. package/dist/components-page/forgot-password.js +4 -7
  237. package/dist/components-page/forgot-password.js.map +1 -1
  238. package/dist/components-page/hexclave-handler-client.d.ts +2 -62
  239. package/dist/components-page/hexclave-handler-client.js +2 -5
  240. package/dist/components-page/hexclave-handler-client.js.map +1 -1
  241. package/dist/components-page/hexclave-handler-client.test.js +1 -3
  242. package/dist/components-page/hexclave-handler-client.test.js.map +1 -1
  243. package/dist/components-page/hexclave-handler.d.ts +2 -37
  244. package/dist/components-page/hexclave-handler.js +5 -4
  245. package/dist/components-page/hexclave-handler.js.map +1 -1
  246. package/dist/components-page/magic-link-callback.d.ts +2 -10
  247. package/dist/components-page/magic-link-callback.js +6 -9
  248. package/dist/components-page/magic-link-callback.js.map +1 -1
  249. package/dist/components-page/mfa.d.ts +2 -11
  250. package/dist/components-page/mfa.js +2 -5
  251. package/dist/components-page/mfa.js.map +1 -1
  252. package/dist/components-page/oauth-callback.d.ts +2 -11
  253. package/dist/components-page/oauth-callback.js +5 -8
  254. package/dist/components-page/oauth-callback.js.map +1 -1
  255. package/dist/components-page/oauth-callback.test.js +4 -5
  256. package/dist/components-page/oauth-callback.test.js.map +1 -1
  257. package/dist/components-page/onboarding.d.ts +2 -9
  258. package/dist/components-page/onboarding.js +4 -7
  259. package/dist/components-page/onboarding.js.map +1 -1
  260. package/dist/components-page/password-reset.d.ts +2 -17
  261. package/dist/components-page/password-reset.js +9 -8
  262. package/dist/components-page/password-reset.js.map +1 -1
  263. package/dist/components-page/section.js +2 -2
  264. package/dist/components-page/sign-in.d.ts +2 -23
  265. package/dist/components-page/sign-in.js +2 -4
  266. package/dist/components-page/sign-in.js.map +1 -1
  267. package/dist/components-page/sign-out.d.ts +2 -10
  268. package/dist/components-page/sign-out.js +3 -6
  269. package/dist/components-page/sign-out.js.map +1 -1
  270. package/dist/components-page/sign-up.d.ts +2 -13
  271. package/dist/components-page/sign-up.js +3 -6
  272. package/dist/components-page/sign-up.js.map +1 -1
  273. package/dist/components-page/team-creation.d.ts +1 -3
  274. package/dist/components-page/team-creation.d.ts.map +1 -1
  275. package/dist/components-page/team-creation.js +4 -7
  276. package/dist/components-page/team-creation.js.map +1 -1
  277. package/dist/components-page/team-invitation.d.ts +2 -13
  278. package/dist/components-page/team-invitation.js +5 -7
  279. package/dist/components-page/team-invitation.js.map +1 -1
  280. package/dist/config.js +17 -19
  281. package/dist/convex-D2mFhYyd.d.ts +13 -0
  282. package/dist/convex-D2mFhYyd.d.ts.map +1 -0
  283. package/dist/cookie-DTOQvCYn.d.ts +42 -0
  284. package/dist/cookie-DTOQvCYn.d.ts.map +1 -0
  285. package/dist/credential-sign-in-BxCi9NEV.d.ts +5 -0
  286. package/dist/credential-sign-in-BxCi9NEV.d.ts.map +1 -0
  287. package/dist/credential-sign-up-tYm5rV86.d.ts +7 -0
  288. package/dist/credential-sign-up-tYm5rV86.d.ts.map +1 -0
  289. package/dist/dev-tool/dev-tool-core.d.ts +1 -2
  290. package/dist/dev-tool/dev-tool-core.d.ts.map +1 -1
  291. package/dist/dev-tool/dev-tool-core.js +4 -6
  292. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  293. package/dist/dev-tool/dev-tool-styles.js +3 -6
  294. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  295. package/dist/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
  296. package/dist/dev-tool/dev-tool-trigger-position.js +6 -7
  297. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  298. package/dist/dev-tool/dev-tool-trigger-position.test.js +1 -3
  299. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  300. package/dist/dev-tool/index.d.ts +1 -2
  301. package/dist/dev-tool/index.d.ts.map +1 -1
  302. package/dist/dev-tool/index.js +4 -6
  303. package/dist/dev-tool/index.js.map +1 -1
  304. package/dist/email-verification-Cr_KKvtQ.d.ts +8 -0
  305. package/dist/email-verification-Cr_KKvtQ.d.ts.map +1 -0
  306. package/dist/error-page-D0KwN73t.d.ts +8 -0
  307. package/dist/error-page-D0KwN73t.d.ts.map +1 -0
  308. package/dist/esm/clickmap/clickmap-core.d.ts +1 -1
  309. package/dist/esm/clickmap/clickmap-core.d.ts.map +1 -1
  310. package/dist/esm/clickmap/clickmap-core.js +3 -4
  311. package/dist/esm/clickmap/clickmap-core.js.map +1 -1
  312. package/dist/esm/clickmap/clickmap-styles.js +1 -2
  313. package/dist/esm/clickmap/clickmap-styles.js.map +1 -1
  314. package/dist/esm/clickmap/index.d.ts +1 -1
  315. package/dist/esm/clickmap/index.d.ts.map +1 -1
  316. package/dist/esm/clickmap/index.js +3 -4
  317. package/dist/esm/clickmap/index.js.map +1 -1
  318. package/dist/esm/components/api-key-dialogs.d.ts +3 -4
  319. package/dist/esm/components/api-key-dialogs.d.ts.map +1 -1
  320. package/dist/esm/components/api-key-dialogs.js +4 -6
  321. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  322. package/dist/esm/components/api-key-table.d.ts +2 -3
  323. package/dist/esm/components/api-key-table.d.ts.map +1 -1
  324. package/dist/esm/components/api-key-table.js +2 -4
  325. package/dist/esm/components/api-key-table.js.map +1 -1
  326. package/dist/esm/components/credential-sign-in.d.ts +1 -3
  327. package/dist/esm/components/credential-sign-in.d.ts.map +1 -1
  328. package/dist/esm/components/credential-sign-in.js +3 -5
  329. package/dist/esm/components/credential-sign-in.js.map +1 -1
  330. package/dist/esm/components/credential-sign-up.d.ts +1 -3
  331. package/dist/esm/components/credential-sign-up.d.ts.map +1 -1
  332. package/dist/esm/components/credential-sign-up.js +4 -6
  333. package/dist/esm/components/credential-sign-up.js.map +1 -1
  334. package/dist/esm/components/elements/form-warning.d.ts +1 -3
  335. package/dist/esm/components/elements/form-warning.d.ts.map +1 -1
  336. package/dist/esm/components/elements/form-warning.js +2 -4
  337. package/dist/esm/components/elements/form-warning.js.map +1 -1
  338. package/dist/esm/components/elements/maybe-full-page.d.ts +1 -2
  339. package/dist/esm/components/elements/maybe-full-page.d.ts.map +1 -1
  340. package/dist/esm/components/elements/maybe-full-page.js +2 -4
  341. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  342. package/dist/esm/components/elements/separator-with-text.d.ts +1 -3
  343. package/dist/esm/components/elements/separator-with-text.d.ts.map +1 -1
  344. package/dist/esm/components/elements/separator-with-text.js +2 -4
  345. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  346. package/dist/esm/components/elements/sidebar-layout.d.ts +1 -2
  347. package/dist/esm/components/elements/sidebar-layout.d.ts.map +1 -1
  348. package/dist/esm/components/elements/sidebar-layout.js +3 -5
  349. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  350. package/dist/esm/components/elements/ssr-layout-effect.d.ts +1 -3
  351. package/dist/esm/components/elements/ssr-layout-effect.d.ts.map +1 -1
  352. package/dist/esm/components/elements/ssr-layout-effect.js +1 -3
  353. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  354. package/dist/esm/components/elements/user-avatar.d.ts +1 -3
  355. package/dist/esm/components/elements/user-avatar.d.ts.map +1 -1
  356. package/dist/esm/components/elements/user-avatar.js +1 -2
  357. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  358. package/dist/esm/components/link.d.ts +2 -4
  359. package/dist/esm/components/link.d.ts.map +1 -1
  360. package/dist/esm/components/link.js +2 -4
  361. package/dist/esm/components/link.js.map +1 -1
  362. package/dist/esm/components/magic-link-sign-in.d.ts +1 -3
  363. package/dist/esm/components/magic-link-sign-in.d.ts.map +1 -1
  364. package/dist/esm/components/magic-link-sign-in.js +3 -5
  365. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  366. package/dist/esm/components/message-cards/known-error-message-card.d.ts +1 -2
  367. package/dist/esm/components/message-cards/known-error-message-card.d.ts.map +1 -1
  368. package/dist/esm/components/message-cards/known-error-message-card.js +1 -3
  369. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  370. package/dist/esm/components/message-cards/message-card.d.ts +1 -2
  371. package/dist/esm/components/message-cards/message-card.d.ts.map +1 -1
  372. package/dist/esm/components/message-cards/message-card.js +3 -5
  373. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  374. package/dist/esm/components/message-cards/predefined-message-card.d.ts +1 -3
  375. package/dist/esm/components/message-cards/predefined-message-card.d.ts.map +1 -1
  376. package/dist/esm/components/message-cards/predefined-message-card.js +1 -3
  377. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  378. package/dist/esm/components/oauth-button-group.d.ts +1 -3
  379. package/dist/esm/components/oauth-button-group.d.ts.map +1 -1
  380. package/dist/esm/components/oauth-button-group.js +2 -4
  381. package/dist/esm/components/oauth-button-group.js.map +1 -1
  382. package/dist/esm/components/oauth-button.d.ts +1 -3
  383. package/dist/esm/components/oauth-button.d.ts.map +1 -1
  384. package/dist/esm/components/oauth-button.js +2 -4
  385. package/dist/esm/components/oauth-button.js.map +1 -1
  386. package/dist/esm/components/passkey-button.d.ts +1 -3
  387. package/dist/esm/components/passkey-button.d.ts.map +1 -1
  388. package/dist/esm/components/passkey-button.js +2 -4
  389. package/dist/esm/components/passkey-button.js.map +1 -1
  390. package/dist/esm/components/profile-image-editor.d.ts +2 -3
  391. package/dist/esm/components/profile-image-editor.d.ts.map +1 -1
  392. package/dist/esm/components/profile-image-editor.js +1 -2
  393. package/dist/esm/components/profile-image-editor.js.map +1 -1
  394. package/dist/esm/components/selected-team-switcher.d.ts +2 -3
  395. package/dist/esm/components/selected-team-switcher.d.ts.map +1 -1
  396. package/dist/esm/components/selected-team-switcher.js +2 -4
  397. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  398. package/dist/esm/components/team-icon.d.ts +2 -3
  399. package/dist/esm/components/team-icon.d.ts.map +1 -1
  400. package/dist/esm/components/team-icon.js +1 -2
  401. package/dist/esm/components/team-icon.js.map +1 -1
  402. package/dist/esm/components/team-switcher.d.ts +2 -3
  403. package/dist/esm/components/team-switcher.d.ts.map +1 -1
  404. package/dist/esm/components/team-switcher.js +3 -5
  405. package/dist/esm/components/team-switcher.js.map +1 -1
  406. package/dist/esm/components/use-in-iframe.d.ts.map +1 -1
  407. package/dist/esm/components/use-in-iframe.js +2 -4
  408. package/dist/esm/components/use-in-iframe.js.map +1 -1
  409. package/dist/esm/components/user-button.d.ts +1 -2
  410. package/dist/esm/components/user-button.d.ts.map +1 -1
  411. package/dist/esm/components/user-button.js +3 -5
  412. package/dist/esm/components/user-button.js.map +1 -1
  413. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.d.ts +1 -3
  414. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.d.ts.map +1 -1
  415. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js +2 -3
  416. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  417. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.d.ts +1 -3
  418. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.d.ts.map +1 -1
  419. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js +1 -2
  420. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  421. package/dist/esm/components-page/account-settings/editable-text.d.ts +1 -3
  422. package/dist/esm/components-page/account-settings/editable-text.d.ts.map +1 -1
  423. package/dist/esm/components-page/account-settings/editable-text.js +1 -2
  424. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  425. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts +1 -3
  426. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.d.ts.map +1 -1
  427. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js +1 -2
  428. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  429. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.d.ts +1 -3
  430. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.d.ts.map +1 -1
  431. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js +2 -3
  432. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  433. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.d.ts +1 -3
  434. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.d.ts.map +1 -1
  435. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js +3 -4
  436. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  437. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.d.ts +1 -3
  438. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.d.ts.map +1 -1
  439. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js +1 -2
  440. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  441. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.d.ts +1 -3
  442. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.d.ts.map +1 -1
  443. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js +1 -2
  444. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  445. package/dist/esm/components-page/account-settings/email-and-auth/password-section.d.ts +1 -3
  446. package/dist/esm/components-page/account-settings/email-and-auth/password-section.d.ts.map +1 -1
  447. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js +2 -3
  448. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  449. package/dist/esm/components-page/account-settings/notifications/notifications-page.d.ts +1 -3
  450. package/dist/esm/components-page/account-settings/notifications/notifications-page.d.ts.map +1 -1
  451. package/dist/esm/components-page/account-settings/notifications/notifications-page.js +1 -2
  452. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  453. package/dist/esm/components-page/account-settings/page-layout.d.ts +1 -3
  454. package/dist/esm/components-page/account-settings/page-layout.d.ts.map +1 -1
  455. package/dist/esm/components-page/account-settings/page-layout.js +1 -2
  456. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  457. package/dist/esm/components-page/account-settings/payments/payments-page.d.ts +2 -3
  458. package/dist/esm/components-page/account-settings/payments/payments-page.d.ts.map +1 -1
  459. package/dist/esm/components-page/account-settings/payments/payments-page.js +2 -4
  460. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  461. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +2 -3
  462. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts.map +1 -1
  463. package/dist/esm/components-page/account-settings/payments/payments-panel.js +2 -4
  464. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  465. package/dist/esm/components-page/account-settings/profile-page/profile-page.d.ts +1 -3
  466. package/dist/esm/components-page/account-settings/profile-page/profile-page.d.ts.map +1 -1
  467. package/dist/esm/components-page/account-settings/profile-page/profile-page.js +1 -2
  468. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  469. package/dist/esm/components-page/account-settings/section.d.ts +1 -3
  470. package/dist/esm/components-page/account-settings/section.d.ts.map +1 -1
  471. package/dist/esm/components-page/account-settings/section.js +1 -2
  472. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  473. package/dist/esm/components-page/account-settings/settings/delete-account-section.d.ts +1 -3
  474. package/dist/esm/components-page/account-settings/settings/delete-account-section.d.ts.map +1 -1
  475. package/dist/esm/components-page/account-settings/settings/delete-account-section.js +1 -2
  476. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  477. package/dist/esm/components-page/account-settings/settings/settings-page.d.ts +1 -3
  478. package/dist/esm/components-page/account-settings/settings/settings-page.d.ts.map +1 -1
  479. package/dist/esm/components-page/account-settings/settings/settings-page.js +1 -2
  480. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  481. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts +1 -3
  482. package/dist/esm/components-page/account-settings/settings/sign-out-section.d.ts.map +1 -1
  483. package/dist/esm/components-page/account-settings/settings/sign-out-section.js +1 -2
  484. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  485. package/dist/esm/components-page/account-settings/teams/leave-team-section.d.ts +2 -3
  486. package/dist/esm/components-page/account-settings/teams/leave-team-section.d.ts.map +1 -1
  487. package/dist/esm/components-page/account-settings/teams/leave-team-section.js +1 -2
  488. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  489. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +2 -3
  490. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts.map +1 -1
  491. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js +1 -2
  492. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  493. package/dist/esm/components-page/account-settings/teams/team-creation-page.d.ts +1 -3
  494. package/dist/esm/components-page/account-settings/teams/team-creation-page.d.ts.map +1 -1
  495. package/dist/esm/components-page/account-settings/teams/team-creation-page.js +2 -3
  496. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  497. package/dist/esm/components-page/account-settings/teams/team-display-name-section.d.ts +2 -3
  498. package/dist/esm/components-page/account-settings/teams/team-display-name-section.d.ts.map +1 -1
  499. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js +1 -2
  500. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  501. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.d.ts +2 -3
  502. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.d.ts.map +1 -1
  503. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js +2 -3
  504. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  505. package/dist/esm/components-page/account-settings/teams/team-member-list-section.d.ts +2 -3
  506. package/dist/esm/components-page/account-settings/teams/team-member-list-section.d.ts.map +1 -1
  507. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js +1 -2
  508. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  509. package/dist/esm/components-page/account-settings/teams/team-page.d.ts +2 -3
  510. package/dist/esm/components-page/account-settings/teams/team-page.d.ts.map +1 -1
  511. package/dist/esm/components-page/account-settings/teams/team-page.js +1 -2
  512. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  513. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.d.ts +2 -3
  514. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.d.ts.map +1 -1
  515. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js +1 -2
  516. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  517. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.d.ts +2 -3
  518. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.d.ts.map +1 -1
  519. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js +1 -2
  520. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  521. package/dist/esm/components-page/account-settings.d.ts +9 -11
  522. package/dist/esm/components-page/account-settings.d.ts.map +1 -1
  523. package/dist/esm/components-page/account-settings.js +3 -5
  524. package/dist/esm/components-page/account-settings.js.map +1 -1
  525. package/dist/esm/components-page/auth-page.d.ts +1 -3
  526. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  527. package/dist/esm/components-page/auth-page.js +3 -5
  528. package/dist/esm/components-page/auth-page.js.map +1 -1
  529. package/dist/esm/components-page/cli-auth-confirm.d.ts +1 -3
  530. package/dist/esm/components-page/cli-auth-confirm.d.ts.map +1 -1
  531. package/dist/esm/components-page/cli-auth-confirm.js +3 -5
  532. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  533. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -5
  534. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  535. package/dist/esm/components-page/email-verification.d.ts +1 -3
  536. package/dist/esm/components-page/email-verification.d.ts.map +1 -1
  537. package/dist/esm/components-page/email-verification.js +2 -4
  538. package/dist/esm/components-page/email-verification.js.map +1 -1
  539. package/dist/esm/components-page/error-page.d.ts +1 -3
  540. package/dist/esm/components-page/error-page.d.ts.map +1 -1
  541. package/dist/esm/components-page/error-page.js +2 -4
  542. package/dist/esm/components-page/error-page.js.map +1 -1
  543. package/dist/esm/components-page/forgot-password.d.ts +2 -4
  544. package/dist/esm/components-page/forgot-password.d.ts.map +1 -1
  545. package/dist/esm/components-page/forgot-password.js +3 -5
  546. package/dist/esm/components-page/forgot-password.js.map +1 -1
  547. package/dist/esm/components-page/hexclave-handler-client.d.ts +14 -14
  548. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -1
  549. package/dist/esm/components-page/hexclave-handler-client.js +1 -3
  550. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -1
  551. package/dist/esm/components-page/hexclave-handler-client.test.js +2 -3
  552. package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -1
  553. package/dist/esm/components-page/hexclave-handler.d.ts +2 -3
  554. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -1
  555. package/dist/esm/components-page/hexclave-handler.js +1 -2
  556. package/dist/esm/components-page/hexclave-handler.js.map +1 -1
  557. package/dist/esm/components-page/magic-link-callback.d.ts +1 -3
  558. package/dist/esm/components-page/magic-link-callback.d.ts.map +1 -1
  559. package/dist/esm/components-page/magic-link-callback.js +2 -4
  560. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  561. package/dist/esm/components-page/mfa.d.ts +1 -3
  562. package/dist/esm/components-page/mfa.d.ts.map +1 -1
  563. package/dist/esm/components-page/mfa.js +1 -3
  564. package/dist/esm/components-page/mfa.js.map +1 -1
  565. package/dist/esm/components-page/oauth-callback.d.ts +1 -3
  566. package/dist/esm/components-page/oauth-callback.d.ts.map +1 -1
  567. package/dist/esm/components-page/oauth-callback.js +4 -6
  568. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  569. package/dist/esm/components-page/oauth-callback.test.js +4 -5
  570. package/dist/esm/components-page/oauth-callback.test.js.map +1 -1
  571. package/dist/esm/components-page/onboarding.d.ts +1 -3
  572. package/dist/esm/components-page/onboarding.d.ts.map +1 -1
  573. package/dist/esm/components-page/onboarding.js +3 -5
  574. package/dist/esm/components-page/onboarding.js.map +1 -1
  575. package/dist/esm/components-page/password-reset.d.ts +2 -4
  576. package/dist/esm/components-page/password-reset.d.ts.map +1 -1
  577. package/dist/esm/components-page/password-reset.js +3 -5
  578. package/dist/esm/components-page/password-reset.js.map +1 -1
  579. package/dist/esm/components-page/section.js +3 -4
  580. package/dist/esm/components-page/sign-in.d.ts +1 -3
  581. package/dist/esm/components-page/sign-in.d.ts.map +1 -1
  582. package/dist/esm/components-page/sign-in.js +1 -2
  583. package/dist/esm/components-page/sign-in.js.map +1 -1
  584. package/dist/esm/components-page/sign-out.d.ts +1 -3
  585. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  586. package/dist/esm/components-page/sign-out.js +2 -4
  587. package/dist/esm/components-page/sign-out.js.map +1 -1
  588. package/dist/esm/components-page/sign-up.d.ts +1 -3
  589. package/dist/esm/components-page/sign-up.d.ts.map +1 -1
  590. package/dist/esm/components-page/sign-up.js +2 -4
  591. package/dist/esm/components-page/sign-up.js.map +1 -1
  592. package/dist/esm/components-page/team-creation.d.ts +1 -3
  593. package/dist/esm/components-page/team-creation.d.ts.map +1 -1
  594. package/dist/esm/components-page/team-creation.js +3 -5
  595. package/dist/esm/components-page/team-creation.js.map +1 -1
  596. package/dist/esm/components-page/team-invitation.d.ts +1 -3
  597. package/dist/esm/components-page/team-invitation.d.ts.map +1 -1
  598. package/dist/esm/components-page/team-invitation.js +2 -4
  599. package/dist/esm/components-page/team-invitation.js.map +1 -1
  600. package/dist/esm/config.js +1 -2
  601. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  602. package/dist/esm/dev-tool/dev-tool-core.d.ts.map +1 -1
  603. package/dist/esm/dev-tool/dev-tool-core.js +3 -4
  604. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  605. package/dist/esm/dev-tool/dev-tool-styles.js +1 -2
  606. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  607. package/dist/esm/dev-tool/dev-tool-trigger-position.d.ts.map +1 -1
  608. package/dist/esm/dev-tool/dev-tool-trigger-position.js +5 -5
  609. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  610. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js +2 -3
  611. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  612. package/dist/esm/dev-tool/index.d.ts +1 -1
  613. package/dist/esm/dev-tool/index.d.ts.map +1 -1
  614. package/dist/esm/dev-tool/index.js +3 -4
  615. package/dist/esm/dev-tool/index.js.map +1 -1
  616. package/dist/esm/generated/env.js +1 -1
  617. package/dist/esm/generated/env.js.map +1 -1
  618. package/dist/esm/generated/global-css.d.ts +1 -1
  619. package/dist/esm/generated/global-css.js +2 -2
  620. package/dist/esm/generated/global-css.js.map +1 -1
  621. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  622. package/dist/esm/generated/quetzal-translations.js +1 -2
  623. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  624. package/dist/esm/global.d.ts.map +1 -1
  625. package/dist/esm/in-page-ui/base-styles.d.ts.map +1 -1
  626. package/dist/esm/in-page-ui/base-styles.js +1 -1
  627. package/dist/esm/in-page-ui/base-styles.js.map +1 -1
  628. package/dist/esm/in-page-ui/dom.d.ts.map +1 -1
  629. package/dist/esm/in-page-ui/dom.js +1 -1
  630. package/dist/esm/in-page-ui/dom.js.map +1 -1
  631. package/dist/esm/index.d.ts +25 -25
  632. package/dist/esm/index.js +2 -4
  633. package/dist/esm/integrations/convex/component/convex.config.d.ts +1 -3
  634. package/dist/esm/integrations/convex/component/convex.config.d.ts.map +1 -1
  635. package/dist/esm/integrations/convex/component/convex.config.js +1 -2
  636. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  637. package/dist/esm/integrations/convex.js +1 -2
  638. package/dist/esm/integrations/convex.js.map +1 -1
  639. package/dist/esm/lib/auth.js +2 -3
  640. package/dist/esm/lib/auth.js.map +1 -1
  641. package/dist/esm/lib/auth.test.js +2 -3
  642. package/dist/esm/lib/auth.test.js.map +1 -1
  643. package/dist/esm/lib/cookie.d.ts.map +1 -1
  644. package/dist/esm/lib/cookie.js +4 -22
  645. package/dist/esm/lib/cookie.js.map +1 -1
  646. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -1
  647. package/dist/esm/lib/hexclave-app/api-keys/index.js +1 -2
  648. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -1
  649. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +35 -43
  650. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  651. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +1 -2
  652. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  653. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +2 -3
  654. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  655. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +26 -28
  656. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  657. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +3 -4
  658. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  659. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +2 -3
  660. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
  661. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts +1 -1
  662. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  663. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +7 -8
  664. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  665. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  666. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +2 -3
  667. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  668. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js +2 -3
  669. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  670. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +3 -3
  671. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
  672. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +1 -2
  673. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -1
  674. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +1 -1
  675. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  676. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js +1 -2
  677. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
  678. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +13 -13
  679. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -1
  680. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js +2 -3
  681. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
  682. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  683. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +1 -1
  684. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
  685. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +2 -3
  686. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
  687. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -1
  688. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js +14 -8
  689. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
  690. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js +134 -3
  691. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
  692. package/dist/esm/lib/hexclave-app/apps/index.d.ts +3 -3
  693. package/dist/esm/lib/hexclave-app/apps/index.js +1 -2
  694. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +8 -8
  695. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
  696. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js +1 -2
  697. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  698. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts +6 -6
  699. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -1
  700. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js +1 -2
  701. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  702. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts +7 -7
  703. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -1
  704. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js +1 -2
  705. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
  706. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -1
  707. package/dist/esm/lib/hexclave-app/common.js +1 -1
  708. package/dist/esm/lib/hexclave-app/common.js.map +1 -1
  709. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -1
  710. package/dist/esm/lib/hexclave-app/connected-accounts/index.js +1 -1
  711. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -1
  712. package/dist/esm/lib/hexclave-app/contact-channels/index.js +1 -1
  713. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -1
  714. package/dist/esm/lib/hexclave-app/customers/index.d.ts +1 -1
  715. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -1
  716. package/dist/esm/lib/hexclave-app/customers/index.js +1 -1
  717. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts +1 -1
  718. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -1
  719. package/dist/esm/lib/hexclave-app/data-vault/index.js +1 -1
  720. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -1
  721. package/dist/esm/lib/hexclave-app/email/index.js +1 -1
  722. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -1
  723. package/dist/esm/lib/hexclave-app/email-templates/index.js +1 -1
  724. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -1
  725. package/dist/esm/lib/hexclave-app/index.d.ts +14 -14
  726. package/dist/esm/lib/hexclave-app/index.js +1 -2
  727. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -1
  728. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js +1 -1
  729. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
  730. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -1
  731. package/dist/esm/lib/hexclave-app/notification-categories/index.js +1 -1
  732. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -1
  733. package/dist/esm/lib/hexclave-app/permissions/index.js +1 -1
  734. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -1
  735. package/dist/esm/lib/hexclave-app/plan-usage/index.d.ts.map +1 -1
  736. package/dist/esm/lib/hexclave-app/plan-usage/index.js +1 -1
  737. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts +1 -1
  738. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -1
  739. package/dist/esm/lib/hexclave-app/project-configs/index.js +1 -1
  740. package/dist/esm/lib/hexclave-app/projects/index.d.ts +2 -2
  741. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -1
  742. package/dist/esm/lib/hexclave-app/projects/index.js +5 -1
  743. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -1
  744. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -1
  745. package/dist/esm/lib/hexclave-app/session-replays/index.js +1 -1
  746. package/dist/esm/lib/hexclave-app/teams/index.d.ts +4 -4
  747. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -1
  748. package/dist/esm/lib/hexclave-app/teams/index.js +1 -1
  749. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -1
  750. package/dist/esm/lib/hexclave-app/url-targets.d.ts +1 -1
  751. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -1
  752. package/dist/esm/lib/hexclave-app/url-targets.js +2 -3
  753. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -1
  754. package/dist/esm/lib/hexclave-app/url-targets.test.js +2 -3
  755. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -1
  756. package/dist/esm/lib/hexclave-app/users/index.d.ts +9 -9
  757. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -1
  758. package/dist/esm/lib/hexclave-app/users/index.js +1 -2
  759. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -1
  760. package/dist/esm/lib/hooks.d.ts +1 -1
  761. package/dist/esm/lib/hooks.d.ts.map +1 -1
  762. package/dist/esm/lib/hooks.js +1 -2
  763. package/dist/esm/lib/hooks.js.map +1 -1
  764. package/dist/esm/lib/translations.d.ts.map +1 -1
  765. package/dist/esm/lib/translations.js +1 -2
  766. package/dist/esm/lib/translations.js.map +1 -1
  767. package/dist/esm/providers/hexclave-context.d.ts +1 -1
  768. package/dist/esm/providers/hexclave-context.d.ts.map +1 -1
  769. package/dist/esm/providers/hexclave-context.js +1 -3
  770. package/dist/esm/providers/hexclave-context.js.map +1 -1
  771. package/dist/esm/providers/hexclave-provider-client.d.ts +2 -3
  772. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -1
  773. package/dist/esm/providers/hexclave-provider-client.js +2 -4
  774. package/dist/esm/providers/hexclave-provider-client.js.map +1 -1
  775. package/dist/esm/providers/hexclave-provider.d.ts +3 -4
  776. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -1
  777. package/dist/esm/providers/hexclave-provider.js +2 -3
  778. package/dist/esm/providers/hexclave-provider.js.map +1 -1
  779. package/dist/esm/providers/theme-provider.d.ts +1 -2
  780. package/dist/esm/providers/theme-provider.d.ts.map +1 -1
  781. package/dist/esm/providers/theme-provider.js +4 -6
  782. package/dist/esm/providers/theme-provider.js.map +1 -1
  783. package/dist/esm/providers/translation-provider-client.d.ts +1 -2
  784. package/dist/esm/providers/translation-provider-client.d.ts.map +1 -1
  785. package/dist/esm/providers/translation-provider-client.js +1 -3
  786. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  787. package/dist/esm/providers/translation-provider.d.ts +2 -3
  788. package/dist/esm/providers/translation-provider.d.ts.map +1 -1
  789. package/dist/esm/providers/translation-provider.js +1 -2
  790. package/dist/esm/providers/translation-provider.js.map +1 -1
  791. package/dist/esm/pushed-config-error-overlay/index.d.ts +1 -1
  792. package/dist/esm/pushed-config-error-overlay/index.d.ts.map +1 -1
  793. package/dist/esm/pushed-config-error-overlay/index.js +3 -4
  794. package/dist/esm/pushed-config-error-overlay/index.js.map +1 -1
  795. package/dist/esm/pushed-config-error-overlay/index.test.js +2 -3
  796. package/dist/esm/pushed-config-error-overlay/index.test.js.map +1 -1
  797. package/dist/esm/tanstack-start-server-context.d.ts +1 -3
  798. package/dist/esm/tanstack-start-server-context.d.ts.map +1 -1
  799. package/dist/esm/utils/browser-script.d.ts +1 -3
  800. package/dist/esm/utils/browser-script.d.ts.map +1 -1
  801. package/dist/esm/utils/browser-script.js +1 -2
  802. package/dist/esm/utils/browser-script.js.map +1 -1
  803. package/dist/esm/utils/constants.js +1 -1
  804. package/dist/esm/utils/constants.js.map +1 -1
  805. package/dist/esm/utils/url.d.ts.map +1 -1
  806. package/dist/esm/utils/url.js +1 -2
  807. package/dist/esm/utils/url.js.map +1 -1
  808. package/dist/forgot-password-B7RLLsC2.d.ts +12 -0
  809. package/dist/forgot-password-B7RLLsC2.d.ts.map +1 -0
  810. package/dist/generated/env.js +2 -3
  811. package/dist/generated/env.js.map +1 -1
  812. package/dist/generated/global-css.d.ts +1 -1
  813. package/dist/generated/global-css.js +3 -4
  814. package/dist/generated/global-css.js.map +1 -1
  815. package/dist/generated/quetzal-translations.d.ts +2 -6
  816. package/dist/generated/quetzal-translations.js +2 -4
  817. package/dist/generated/quetzal-translations.js.map +1 -1
  818. package/dist/global.d.ts.map +1 -1
  819. package/dist/hexclave-provider-BdiqjaCz.d.ts +29 -0
  820. package/dist/hexclave-provider-BdiqjaCz.d.ts.map +1 -0
  821. package/dist/hooks-psPwqxZ4.d.ts +43 -0
  822. package/dist/hooks-psPwqxZ4.d.ts.map +1 -0
  823. package/dist/in-page-ui/base-styles.d.ts.map +1 -1
  824. package/dist/in-page-ui/base-styles.js +2 -3
  825. package/dist/in-page-ui/base-styles.js.map +1 -1
  826. package/dist/in-page-ui/dom.d.ts.map +1 -1
  827. package/dist/in-page-ui/dom.js +2 -3
  828. package/dist/in-page-ui/dom.js.map +1 -1
  829. package/dist/index-BKZ67WMa.d.ts +1 -0
  830. package/dist/index-BSr2pd22.d.ts +14 -0
  831. package/dist/index-BSr2pd22.d.ts.map +1 -0
  832. package/dist/index-BVVgDSdq.d.ts +1 -0
  833. package/dist/index-Bo5DpPFH.d.ts +17 -0
  834. package/dist/index-Bo5DpPFH.d.ts.map +1 -0
  835. package/dist/index-CBDR4cNg.d.ts +206 -0
  836. package/dist/index-CBDR4cNg.d.ts.map +1 -0
  837. package/dist/index-C_kxyHao.d.ts +57 -0
  838. package/dist/{lib/hexclave-app/connected-accounts/index.d.ts.map → index-C_kxyHao.d.ts.map} +1 -1
  839. package/dist/index-D7Vdg30O.d.ts +27 -0
  840. package/dist/index-D7Vdg30O.d.ts.map +1 -0
  841. package/dist/index-DN04TjLM.d.ts +43 -0
  842. package/dist/index-DN04TjLM.d.ts.map +1 -0
  843. package/dist/index-DSzMf-rS.d.ts +43 -0
  844. package/dist/index-DSzMf-rS.d.ts.map +1 -0
  845. package/dist/index-DbiyXho6.d.ts +129 -0
  846. package/dist/index-DbiyXho6.d.ts.map +1 -0
  847. package/dist/index-Dq4xsW7_.d.ts +106 -0
  848. package/dist/index-Dq4xsW7_.d.ts.map +1 -0
  849. package/dist/index-O3hJsHSl.d.ts +11 -0
  850. package/dist/index-O3hJsHSl.d.ts.map +1 -0
  851. package/dist/index-TUtJOdMm.d.ts +42 -0
  852. package/dist/index-TUtJOdMm.d.ts.map +1 -0
  853. package/dist/index-fOYcs4NH.d.ts +53 -0
  854. package/dist/{lib/hexclave-app/api-keys/index.d.ts.map → index-fOYcs4NH.d.ts.map} +1 -1
  855. package/dist/index-hYjsGKNc.d.ts +66 -0
  856. package/dist/index-hYjsGKNc.d.ts.map +1 -0
  857. package/dist/index-p0N9MbE5.d.ts +147 -0
  858. package/dist/index-p0N9MbE5.d.ts.map +1 -0
  859. package/dist/index.d.ts +33 -41
  860. package/dist/index.js +193 -193
  861. package/dist/integrations/convex/component/convex.config.d.ts +1 -1
  862. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  863. package/dist/integrations/convex/component/convex.config.js +2 -5
  864. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  865. package/dist/integrations/convex.d.ts +2 -13
  866. package/dist/integrations/convex.js +2 -4
  867. package/dist/integrations/convex.js.map +1 -1
  868. package/dist/lib/auth.js +3 -5
  869. package/dist/lib/auth.js.map +1 -1
  870. package/dist/lib/auth.test.js +1 -3
  871. package/dist/lib/auth.test.js.map +1 -1
  872. package/dist/lib/cookie.d.ts +2 -42
  873. package/dist/lib/cookie.js +7 -25
  874. package/dist/lib/cookie.js.map +1 -1
  875. package/dist/lib/hexclave-app/api-keys/index.d.ts +2 -53
  876. package/dist/lib/hexclave-app/api-keys/index.js +2 -4
  877. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -1
  878. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +2 -449
  879. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +2 -4
  880. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
  881. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +1 -3
  882. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  883. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -611
  884. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +9 -10
  885. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  886. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -3
  887. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -1
  888. package/dist/lib/hexclave-app/apps/implementations/common.d.ts +2 -66
  889. package/dist/lib/hexclave-app/apps/implementations/common.js +10 -11
  890. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  891. package/dist/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -1
  892. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +3 -5
  893. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -1
  894. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js +1 -3
  895. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -1
  896. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -3
  897. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -1
  898. package/dist/lib/hexclave-app/apps/implementations/index.js +2 -4
  899. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -1
  900. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts +2 -35
  901. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js +2 -4
  902. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -1
  903. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +2 -274
  904. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js +3 -5
  905. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -1
  906. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  907. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js +2 -3
  908. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -1
  909. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js +1 -3
  910. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -1
  911. package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts +2 -122
  912. package/dist/lib/hexclave-app/apps/implementations/session-replay.js +15 -10
  913. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -1
  914. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js +135 -3
  915. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -1
  916. package/dist/lib/hexclave-app/apps/index.d.ts +1 -3
  917. package/dist/lib/hexclave-app/apps/index.js +32 -34
  918. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +3 -272
  919. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js +3 -6
  920. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
  921. package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +2 -237
  922. package/dist/lib/hexclave-app/apps/interfaces/client-app.js +3 -6
  923. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -1
  924. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +2 -174
  925. package/dist/lib/hexclave-app/apps/interfaces/server-app.js +3 -6
  926. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -1
  927. package/dist/lib/hexclave-app/common.d.ts +2 -183
  928. package/dist/lib/hexclave-app/common.js +2 -3
  929. package/dist/lib/hexclave-app/common.js.map +1 -1
  930. package/dist/lib/hexclave-app/connected-accounts/index.d.ts +2 -57
  931. package/dist/lib/hexclave-app/contact-channels/index.d.ts +2 -43
  932. package/dist/lib/hexclave-app/contact-channels/index.js +2 -3
  933. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -1
  934. package/dist/lib/hexclave-app/customers/index.d.ts +2 -129
  935. package/dist/lib/hexclave-app/data-vault/index.d.ts +2 -14
  936. package/dist/lib/hexclave-app/email/index.d.ts +2 -206
  937. package/dist/lib/hexclave-app/email-templates/index.d.ts +2 -17
  938. package/dist/lib/hexclave-app/email-templates/index.js +2 -3
  939. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -1
  940. package/dist/lib/hexclave-app/index.d.ts +10 -15
  941. package/dist/lib/hexclave-app/index.js +49 -51
  942. package/dist/lib/hexclave-app/internal-api-keys/index.d.ts +2 -42
  943. package/dist/lib/hexclave-app/internal-api-keys/index.js +2 -3
  944. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -1
  945. package/dist/lib/hexclave-app/notification-categories/index.d.ts +2 -11
  946. package/dist/lib/hexclave-app/permissions/index.d.ts +2 -43
  947. package/dist/lib/hexclave-app/permissions/index.js +2 -3
  948. package/dist/lib/hexclave-app/permissions/index.js.map +1 -1
  949. package/dist/lib/hexclave-app/plan-usage/index.d.ts +2 -27
  950. package/dist/lib/hexclave-app/project-configs/index.d.ts +2 -106
  951. package/dist/lib/hexclave-app/projects/index.d.ts +2 -154
  952. package/dist/lib/hexclave-app/projects/index.js +6 -3
  953. package/dist/lib/hexclave-app/projects/index.js.map +1 -1
  954. package/dist/lib/hexclave-app/session-replays/index.d.ts +2 -66
  955. package/dist/lib/hexclave-app/teams/index.d.ts +2 -167
  956. package/dist/lib/hexclave-app/teams/index.js +2 -3
  957. package/dist/lib/hexclave-app/teams/index.js.map +1 -1
  958. package/dist/lib/hexclave-app/url-targets.d.ts +2 -39
  959. package/dist/lib/hexclave-app/url-targets.js +3 -5
  960. package/dist/lib/hexclave-app/url-targets.js.map +1 -1
  961. package/dist/lib/hexclave-app/url-targets.test.js +1 -3
  962. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -1
  963. package/dist/lib/hexclave-app/users/index.d.ts +2 -400
  964. package/dist/lib/hexclave-app/users/index.js +2 -4
  965. package/dist/lib/hexclave-app/users/index.js.map +1 -1
  966. package/dist/lib/hooks.d.ts +2 -45
  967. package/dist/lib/hooks.js +2 -4
  968. package/dist/lib/hooks.js.map +1 -1
  969. package/dist/lib/translations.d.ts.map +1 -1
  970. package/dist/lib/translations.js +4 -5
  971. package/dist/lib/translations.js.map +1 -1
  972. package/dist/magic-link-callback-DOfNLydt.d.ts +8 -0
  973. package/dist/magic-link-callback-DOfNLydt.d.ts.map +1 -0
  974. package/dist/magic-link-sign-in-D5MFDeWQ.d.ts +5 -0
  975. package/dist/magic-link-sign-in-D5MFDeWQ.d.ts.map +1 -0
  976. package/dist/message-card-C0AQX5-y.d.ts +18 -0
  977. package/dist/message-card-C0AQX5-y.d.ts.map +1 -0
  978. package/dist/mfa-CwYuxAd-.d.ts +9 -0
  979. package/dist/mfa-CwYuxAd-.d.ts.map +1 -0
  980. package/dist/oauth-button-PE3z60ay.d.ts +15 -0
  981. package/dist/oauth-button-PE3z60ay.d.ts.map +1 -0
  982. package/dist/oauth-button-group-slCOrSxK.d.ts +17 -0
  983. package/dist/oauth-button-group-slCOrSxK.d.ts.map +1 -0
  984. package/dist/oauth-callback-tCVTRbF2.d.ts +9 -0
  985. package/dist/oauth-callback-tCVTRbF2.d.ts.map +1 -0
  986. package/dist/onboarding-CdpQNCZF.d.ts +7 -0
  987. package/dist/onboarding-CdpQNCZF.d.ts.map +1 -0
  988. package/dist/password-reset-CxIuXeIx.d.ts +15 -0
  989. package/dist/password-reset-CxIuXeIx.d.ts.map +1 -0
  990. package/dist/providers/hexclave-context.d.ts +1 -1
  991. package/dist/providers/hexclave-context.d.ts.map +1 -1
  992. package/dist/providers/hexclave-context.js +5 -8
  993. package/dist/providers/hexclave-context.js.map +1 -1
  994. package/dist/providers/hexclave-provider-client.d.ts +2 -3
  995. package/dist/providers/hexclave-provider-client.d.ts.map +1 -1
  996. package/dist/providers/hexclave-provider-client.js +4 -6
  997. package/dist/providers/hexclave-provider-client.js.map +1 -1
  998. package/dist/providers/hexclave-provider.d.ts +2 -32
  999. package/dist/providers/hexclave-provider.js +7 -5
  1000. package/dist/providers/hexclave-provider.js.map +1 -1
  1001. package/dist/providers/theme-provider.d.ts +2 -50
  1002. package/dist/providers/theme-provider.js +7 -9
  1003. package/dist/providers/theme-provider.js.map +1 -1
  1004. package/dist/providers/translation-provider-client.d.ts +1 -2
  1005. package/dist/providers/translation-provider-client.d.ts.map +1 -1
  1006. package/dist/providers/translation-provider-client.js +5 -8
  1007. package/dist/providers/translation-provider-client.js.map +1 -1
  1008. package/dist/providers/translation-provider.d.ts +2 -16
  1009. package/dist/providers/translation-provider.js +2 -4
  1010. package/dist/providers/translation-provider.js.map +1 -1
  1011. package/dist/pushed-config-error-overlay/index.d.ts +1 -2
  1012. package/dist/pushed-config-error-overlay/index.d.ts.map +1 -1
  1013. package/dist/pushed-config-error-overlay/index.js +4 -6
  1014. package/dist/pushed-config-error-overlay/index.js.map +1 -1
  1015. package/dist/pushed-config-error-overlay/index.test.js +1 -3
  1016. package/dist/pushed-config-error-overlay/index.test.js.map +1 -1
  1017. package/dist/quetzal-translations-XeH3zQ9l.d.ts +6 -0
  1018. package/dist/quetzal-translations-XeH3zQ9l.d.ts.map +1 -0
  1019. package/dist/redirect-page-urls-NUHUchgR.d.ts +35 -0
  1020. package/dist/redirect-page-urls-NUHUchgR.d.ts.map +1 -0
  1021. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  1022. package/dist/session-replay-CQ849yH1.d.ts +122 -0
  1023. package/dist/session-replay-CQ849yH1.d.ts.map +1 -0
  1024. package/dist/sign-in-BT45jb_W.d.ts +21 -0
  1025. package/dist/sign-in-BT45jb_W.d.ts.map +1 -0
  1026. package/dist/sign-out-DBnSkfDz.d.ts +8 -0
  1027. package/dist/sign-out-DBnSkfDz.d.ts.map +1 -0
  1028. package/dist/sign-up-BjE_0DB4.d.ts +11 -0
  1029. package/dist/sign-up-BjE_0DB4.d.ts.map +1 -0
  1030. package/dist/{storage-ksajV_p6.d.ts → storage-kputlpQY.d.ts} +1 -1
  1031. package/dist/storage-kputlpQY.d.ts.map +1 -0
  1032. package/dist/tanstack-start-server-context.d.ts +2635 -2
  1033. package/dist/tanstack-start-server-context.d.ts.map +1 -1
  1034. package/dist/team-invitation-B5Ol7vdd.d.ts +11 -0
  1035. package/dist/team-invitation-B5Ol7vdd.d.ts.map +1 -0
  1036. package/dist/theme-provider-D9_ngSbi.d.ts +49 -0
  1037. package/dist/theme-provider-D9_ngSbi.d.ts.map +1 -0
  1038. package/dist/translation-provider-WOaZXqAz.d.ts +15 -0
  1039. package/dist/translation-provider-WOaZXqAz.d.ts.map +1 -0
  1040. package/dist/url-targets-CWO0mjTr.d.ts +39 -0
  1041. package/dist/url-targets-CWO0mjTr.d.ts.map +1 -0
  1042. package/dist/user-avatar-CTyDsibI.d.ts +13 -0
  1043. package/dist/user-avatar-CTyDsibI.d.ts.map +1 -0
  1044. package/dist/user-button-CykqVKoH.d.ts +21 -0
  1045. package/dist/user-button-CykqVKoH.d.ts.map +1 -0
  1046. package/dist/utils/browser-script.d.ts +1 -3
  1047. package/dist/utils/browser-script.d.ts.map +1 -1
  1048. package/dist/utils/browser-script.js +2 -4
  1049. package/dist/utils/browser-script.js.map +1 -1
  1050. package/dist/utils/constants.js +2 -3
  1051. package/dist/utils/constants.js.map +1 -1
  1052. package/dist/utils/url.d.ts.map +1 -1
  1053. package/dist/utils/url.js +2 -4
  1054. package/dist/utils/url.js.map +1 -1
  1055. package/package.json +6 -6
  1056. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +160 -1
  1057. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +38 -12
  1058. package/dist/components/credential-sign-in.d.ts.map +0 -1
  1059. package/dist/components/credential-sign-up.d.ts.map +0 -1
  1060. package/dist/components/elements/user-avatar.d.ts.map +0 -1
  1061. package/dist/components/magic-link-sign-in.d.ts.map +0 -1
  1062. package/dist/components/message-cards/message-card.d.ts.map +0 -1
  1063. package/dist/components/oauth-button-group.d.ts.map +0 -1
  1064. package/dist/components/oauth-button.d.ts.map +0 -1
  1065. package/dist/components/selected-team-switcher.d.ts.map +0 -1
  1066. package/dist/components/team-switcher.d.ts.map +0 -1
  1067. package/dist/components/user-button.d.ts.map +0 -1
  1068. package/dist/components-page/account-settings.d.ts.map +0 -1
  1069. package/dist/components-page/auth-page.d.ts.map +0 -1
  1070. package/dist/components-page/cli-auth-confirm.d.ts.map +0 -1
  1071. package/dist/components-page/email-verification.d.ts.map +0 -1
  1072. package/dist/components-page/error-page.d.ts.map +0 -1
  1073. package/dist/components-page/forgot-password.d.ts.map +0 -1
  1074. package/dist/components-page/hexclave-handler-client.d.ts.map +0 -1
  1075. package/dist/components-page/hexclave-handler.d.ts.map +0 -1
  1076. package/dist/components-page/magic-link-callback.d.ts.map +0 -1
  1077. package/dist/components-page/mfa.d.ts.map +0 -1
  1078. package/dist/components-page/oauth-callback.d.ts.map +0 -1
  1079. package/dist/components-page/onboarding.d.ts.map +0 -1
  1080. package/dist/components-page/password-reset.d.ts.map +0 -1
  1081. package/dist/components-page/sign-in.d.ts.map +0 -1
  1082. package/dist/components-page/sign-out.d.ts.map +0 -1
  1083. package/dist/components-page/sign-up.d.ts.map +0 -1
  1084. package/dist/components-page/team-invitation.d.ts.map +0 -1
  1085. package/dist/generated/quetzal-translations.d.ts.map +0 -1
  1086. package/dist/integrations/convex.d.ts.map +0 -1
  1087. package/dist/lib/cookie.d.ts.map +0 -1
  1088. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  1089. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  1090. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +0 -1
  1091. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  1092. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  1093. package/dist/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +0 -1
  1094. package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +0 -1
  1095. package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +0 -1
  1096. package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +0 -1
  1097. package/dist/lib/hexclave-app/common.d.ts.map +0 -1
  1098. package/dist/lib/hexclave-app/contact-channels/index.d.ts.map +0 -1
  1099. package/dist/lib/hexclave-app/customers/index.d.ts.map +0 -1
  1100. package/dist/lib/hexclave-app/data-vault/index.d.ts.map +0 -1
  1101. package/dist/lib/hexclave-app/email/index.d.ts.map +0 -1
  1102. package/dist/lib/hexclave-app/email-templates/index.d.ts.map +0 -1
  1103. package/dist/lib/hexclave-app/internal-api-keys/index.d.ts.map +0 -1
  1104. package/dist/lib/hexclave-app/notification-categories/index.d.ts.map +0 -1
  1105. package/dist/lib/hexclave-app/permissions/index.d.ts.map +0 -1
  1106. package/dist/lib/hexclave-app/plan-usage/index.d.ts.map +0 -1
  1107. package/dist/lib/hexclave-app/project-configs/index.d.ts.map +0 -1
  1108. package/dist/lib/hexclave-app/projects/index.d.ts.map +0 -1
  1109. package/dist/lib/hexclave-app/session-replays/index.d.ts.map +0 -1
  1110. package/dist/lib/hexclave-app/teams/index.d.ts.map +0 -1
  1111. package/dist/lib/hexclave-app/url-targets.d.ts.map +0 -1
  1112. package/dist/lib/hexclave-app/users/index.d.ts.map +0 -1
  1113. package/dist/lib/hooks.d.ts.map +0 -1
  1114. package/dist/providers/hexclave-provider.d.ts.map +0 -1
  1115. package/dist/providers/theme-provider.d.ts.map +0 -1
  1116. package/dist/providers/translation-provider.d.ts.map +0 -1
  1117. package/dist/storage-ksajV_p6.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth-confirm.js","names":["hexclaveAppInternalsSymbol","MessageCard","Typography"],"sources":["../../src/components-page/cli-auth-confirm.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Typography } from \"@hexclave/ui\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\nimport { hexclaveAppInternalsSymbol } from \"../lib/hexclave-app/common\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { useStackApp } from \"../lib/hooks\";\n\nasync function postCliAuthComplete(app: StackClientApp, body: Record<string, unknown>) {\n return await app[hexclaveAppInternalsSymbol].sendRequest(\"/auth/cli/complete\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n}\n\nasync function ensureCliCompleteOk(result: Response) {\n if (!result.ok) {\n throw new Error(`Authorization failed: ${result.status} ${await result.text()}`);\n }\n}\n\nasync function completeCliAuthWithRefreshToken(app: StackClientApp, loginCode: string, refreshToken: string) {\n const result = await postCliAuthComplete(app, { login_code: loginCode, refresh_token: refreshToken });\n await ensureCliCompleteOk(result);\n}\n\n// Hexclave rebrand: sessionStorage key — straight rename (per-tab, low TTL).\nconst CLI_AUTH_CONFIRMED_KEY = \"hexclave-cli-auth-confirmed\";\n\nfunction markConfirmed(loginCode: string) {\n sessionStorage.setItem(CLI_AUTH_CONFIRMED_KEY, loginCode);\n}\n\nfunction isConfirmed(loginCode: string): boolean {\n return sessionStorage.getItem(CLI_AUTH_CONFIRMED_KEY) === loginCode;\n}\n\nfunction clearConfirmed() {\n sessionStorage.removeItem(CLI_AUTH_CONFIRMED_KEY);\n}\n\nfunction getError(err: unknown): Error {\n return err instanceof Error ? err : new Error(String(err));\n}\n\nfunction getObjectField(data: unknown, fieldName: string): unknown {\n return typeof data === \"object\" && data !== null && fieldName in data\n ? data[fieldName as keyof typeof data]\n : undefined;\n}\n\nfunction getStringField(data: unknown, fieldName: string): string | undefined {\n const value = getObjectField(data, fieldName);\n return typeof value === \"string\" ? value : undefined;\n}\n\nexport type CliAuthConfirmationStatus =\n | \"idle\"\n | \"invalid\"\n | \"authorizing\"\n | \"redirecting\"\n | \"success\"\n | \"error\";\n\nexport type CliAuthConfirmationState = {\n status: CliAuthConfirmationStatus,\n loginCode: string | null,\n error: Error | null,\n isLoading: boolean,\n authorize: () => Promise<void>,\n retry: () => void,\n};\n\nexport function useCliAuthConfirmation(): CliAuthConfirmationState {\n const app = useStackApp();\n const user = app.useUser({ includeRestricted: true });\n const [status, setStatus] = useState<Exclude<CliAuthConfirmationStatus, \"invalid\">>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const autoCompleteRef = useRef(false);\n const authorizeInProgressRef = useRef(false);\n const [loginCode] = useState(() => {\n if (typeof window === 'undefined') return null;\n return new URLSearchParams(window.location.search).get(\"login_code\");\n });\n const [confirmed] = useState(() => {\n if (typeof window === 'undefined') return false;\n return loginCode != null && isConfirmed(loginCode);\n });\n\n const completeWithCurrentUser = useCallback(async () => {\n if (!loginCode) {\n throw new Error(\"Missing login code in URL parameters\");\n }\n if (!user) {\n throw new Error(\"Cannot complete CLI authorization without a signed-in user\");\n }\n const refreshToken = (await user.currentSession.getTokens()).refreshToken;\n if (!refreshToken) {\n throw new Error(\"Could not retrieve session token\");\n }\n await completeCliAuthWithRefreshToken(app, loginCode, refreshToken);\n }, [app, loginCode, user]);\n\n useEffect(() => {\n if (!confirmed || !user || autoCompleteRef.current) {\n return;\n }\n autoCompleteRef.current = true;\n runAsynchronouslyWithAlert(async () => {\n setStatus(\"authorizing\");\n try {\n await completeWithCurrentUser();\n clearConfirmed();\n setStatus(\"success\");\n } catch (err) {\n setError(getError(err));\n setStatus(\"error\");\n }\n });\n }, [confirmed, user, completeWithCurrentUser]);\n\n const authorize = useCallback(async () => {\n if (authorizeInProgressRef.current) {\n return;\n }\n authorizeInProgressRef.current = true;\n\n try {\n if (!loginCode) {\n setError(new Error(\"Missing login code in URL parameters\"));\n setStatus(\"error\");\n return;\n }\n\n setError(null);\n setStatus(\"authorizing\");\n if (user) {\n await completeWithCurrentUser();\n clearConfirmed();\n setStatus(\"success\");\n return;\n }\n\n const checkResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"check\" });\n if (!checkResult.ok) {\n throw new Error(`Failed to verify login code: ${checkResult.status} ${await checkResult.text()}`);\n }\n const checkData: unknown = await checkResult.json();\n const cliSessionState = getStringField(checkData, \"cli_session_state\") ?? null;\n\n if (cliSessionState === \"anonymous\") {\n const claimResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"claim-anon-session\" });\n\n if (!claimResult.ok) {\n throw new Error(`Failed to claim anonymous session: ${claimResult.status} ${await claimResult.text()}`);\n }\n\n const tokens: unknown = await claimResult.json();\n const accessToken = getStringField(tokens, \"access_token\");\n const refreshToken = getStringField(tokens, \"refresh_token\");\n if (!accessToken || !refreshToken) {\n throw new Error(\"Anonymous CLI session claim did not return tokens\");\n }\n await app[hexclaveAppInternalsSymbol].signInWithTokens({\n accessToken,\n refreshToken,\n });\n markConfirmed(loginCode);\n setStatus(\"redirecting\");\n await app.redirectToSignUp({ replace: true });\n return;\n }\n\n markConfirmed(loginCode);\n setStatus(\"redirecting\");\n await app.redirectToSignIn({ replace: true });\n } catch (err) {\n setError(getError(err));\n setStatus(\"error\");\n } finally {\n authorizeInProgressRef.current = false;\n }\n }, [app, completeWithCurrentUser, loginCode, user]);\n\n const retry = useCallback(() => {\n setError(null);\n autoCompleteRef.current = false;\n setStatus(\"idle\");\n }, []);\n\n const visibleStatus = loginCode == null ? \"invalid\" : status;\n return {\n status: visibleStatus,\n loginCode,\n error,\n isLoading: visibleStatus === \"authorizing\" || visibleStatus === \"redirecting\",\n authorize,\n retry,\n };\n}\n\nexport function CliAuthConfirmation({ fullPage = true }: { fullPage?: boolean }) {\n const { t } = useTranslation();\n const cliAuth = useCliAuthConfirmation();\n\n if (cliAuth.status === \"success\") {\n return (\n <MessageCard title={t(\"CLI Authorization Successful\")} fullPage={fullPage}>\n <Typography>\n {t(\"The CLI application has been authorized successfully. You can close this window and return to the command line.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"error\") {\n return (\n <MessageCard\n title={t(\"Authorization Failed\")}\n fullPage={fullPage}\n primaryButtonText={t(\"Try Again\")}\n primaryAction={cliAuth.retry}\n >\n <Typography className=\"text-red-600\">\n {t(\"Failed to authorize the CLI application:\")}\n </Typography>\n <Typography className=\"text-red-600\">\n {cliAuth.error?.message}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"invalid\") {\n return (\n <MessageCard title={t(\"Invalid CLI Authorization Link\")} fullPage={fullPage}>\n <Typography className=\"text-red-600\">\n {t(\"This CLI authorization link is missing a login code. Please return to the command line and start the login process again.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"authorizing\" || cliAuth.status === \"redirecting\") {\n return (\n <MessageCard title={t(\"Completing Authorization...\")} fullPage={fullPage}>\n <Typography>\n {t(\"Finishing up the CLI authorization...\")}\n </Typography>\n </MessageCard>\n );\n }\n\n return (\n <MessageCard\n title={t(\"Authorize CLI Application\")}\n fullPage={fullPage}\n primaryButtonText={cliAuth.isLoading ? t(\"Authorizing...\") : t(\"Authorize\")}\n primaryAction={cliAuth.authorize}\n >\n <Typography>\n {t(\"A command line application is requesting access to your account. Click the button below to authorize it.\")}\n </Typography>\n <Typography variant=\"destructive\">\n {t(\"WARNING: Make sure you trust the command line application, as it will gain access to your account. If you did not initiate this request, you can close this page and ignore it. We will never send you this link via email or any other means.\")}\n </Typography>\n </MessageCard>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli-auth-confirm.js","names":["hexclaveAppInternalsSymbol","MessageCard","Typography"],"sources":["../../src/components-page/cli-auth-confirm.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Typography } from \"@hexclave/ui\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\nimport { hexclaveAppInternalsSymbol } from \"../lib/hexclave-app/common\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { useStackApp } from \"../lib/hooks\";\n\nasync function postCliAuthComplete(app: StackClientApp, body: Record<string, unknown>) {\n return await app[hexclaveAppInternalsSymbol].sendRequest(\"/auth/cli/complete\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n}\n\nasync function ensureCliCompleteOk(result: Response) {\n if (!result.ok) {\n throw new Error(`Authorization failed: ${result.status} ${await result.text()}`);\n }\n}\n\nasync function completeCliAuthWithRefreshToken(app: StackClientApp, loginCode: string, refreshToken: string) {\n const result = await postCliAuthComplete(app, { login_code: loginCode, refresh_token: refreshToken });\n await ensureCliCompleteOk(result);\n}\n\n// Hexclave rebrand: sessionStorage key — straight rename (per-tab, low TTL).\nconst CLI_AUTH_CONFIRMED_KEY = \"hexclave-cli-auth-confirmed\";\n\nfunction markConfirmed(loginCode: string) {\n sessionStorage.setItem(CLI_AUTH_CONFIRMED_KEY, loginCode);\n}\n\nfunction isConfirmed(loginCode: string): boolean {\n return sessionStorage.getItem(CLI_AUTH_CONFIRMED_KEY) === loginCode;\n}\n\nfunction clearConfirmed() {\n sessionStorage.removeItem(CLI_AUTH_CONFIRMED_KEY);\n}\n\nfunction getError(err: unknown): Error {\n return err instanceof Error ? err : new Error(String(err));\n}\n\nfunction getObjectField(data: unknown, fieldName: string): unknown {\n return typeof data === \"object\" && data !== null && fieldName in data\n ? data[fieldName as keyof typeof data]\n : undefined;\n}\n\nfunction getStringField(data: unknown, fieldName: string): string | undefined {\n const value = getObjectField(data, fieldName);\n return typeof value === \"string\" ? value : undefined;\n}\n\nexport type CliAuthConfirmationStatus =\n | \"idle\"\n | \"invalid\"\n | \"authorizing\"\n | \"redirecting\"\n | \"success\"\n | \"error\";\n\nexport type CliAuthConfirmationState = {\n status: CliAuthConfirmationStatus,\n loginCode: string | null,\n error: Error | null,\n isLoading: boolean,\n authorize: () => Promise<void>,\n retry: () => void,\n};\n\nexport function useCliAuthConfirmation(): CliAuthConfirmationState {\n const app = useStackApp();\n const user = app.useUser({ includeRestricted: true });\n const [status, setStatus] = useState<Exclude<CliAuthConfirmationStatus, \"invalid\">>(\"idle\");\n const [error, setError] = useState<Error | null>(null);\n const autoCompleteRef = useRef(false);\n const authorizeInProgressRef = useRef(false);\n const [loginCode] = useState(() => {\n if (typeof window === 'undefined') return null;\n return new URLSearchParams(window.location.search).get(\"login_code\");\n });\n const [confirmed] = useState(() => {\n if (typeof window === 'undefined') return false;\n return loginCode != null && isConfirmed(loginCode);\n });\n\n const completeWithCurrentUser = useCallback(async () => {\n if (!loginCode) {\n throw new Error(\"Missing login code in URL parameters\");\n }\n if (!user) {\n throw new Error(\"Cannot complete CLI authorization without a signed-in user\");\n }\n const refreshToken = (await user.currentSession.getTokens()).refreshToken;\n if (!refreshToken) {\n throw new Error(\"Could not retrieve session token\");\n }\n await completeCliAuthWithRefreshToken(app, loginCode, refreshToken);\n }, [app, loginCode, user]);\n\n useEffect(() => {\n if (!confirmed || !user || autoCompleteRef.current) {\n return;\n }\n autoCompleteRef.current = true;\n runAsynchronouslyWithAlert(async () => {\n setStatus(\"authorizing\");\n try {\n await completeWithCurrentUser();\n clearConfirmed();\n setStatus(\"success\");\n } catch (err) {\n setError(getError(err));\n setStatus(\"error\");\n }\n });\n }, [confirmed, user, completeWithCurrentUser]);\n\n const authorize = useCallback(async () => {\n if (authorizeInProgressRef.current) {\n return;\n }\n authorizeInProgressRef.current = true;\n\n try {\n if (!loginCode) {\n setError(new Error(\"Missing login code in URL parameters\"));\n setStatus(\"error\");\n return;\n }\n\n setError(null);\n setStatus(\"authorizing\");\n if (user) {\n await completeWithCurrentUser();\n clearConfirmed();\n setStatus(\"success\");\n return;\n }\n\n const checkResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"check\" });\n if (!checkResult.ok) {\n throw new Error(`Failed to verify login code: ${checkResult.status} ${await checkResult.text()}`);\n }\n const checkData: unknown = await checkResult.json();\n const cliSessionState = getStringField(checkData, \"cli_session_state\") ?? null;\n\n if (cliSessionState === \"anonymous\") {\n const claimResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"claim-anon-session\" });\n\n if (!claimResult.ok) {\n throw new Error(`Failed to claim anonymous session: ${claimResult.status} ${await claimResult.text()}`);\n }\n\n const tokens: unknown = await claimResult.json();\n const accessToken = getStringField(tokens, \"access_token\");\n const refreshToken = getStringField(tokens, \"refresh_token\");\n if (!accessToken || !refreshToken) {\n throw new Error(\"Anonymous CLI session claim did not return tokens\");\n }\n await app[hexclaveAppInternalsSymbol].signInWithTokens({\n accessToken,\n refreshToken,\n });\n markConfirmed(loginCode);\n setStatus(\"redirecting\");\n await app.redirectToSignUp({ replace: true });\n return;\n }\n\n markConfirmed(loginCode);\n setStatus(\"redirecting\");\n await app.redirectToSignIn({ replace: true });\n } catch (err) {\n setError(getError(err));\n setStatus(\"error\");\n } finally {\n authorizeInProgressRef.current = false;\n }\n }, [app, completeWithCurrentUser, loginCode, user]);\n\n const retry = useCallback(() => {\n setError(null);\n autoCompleteRef.current = false;\n setStatus(\"idle\");\n }, []);\n\n const visibleStatus = loginCode == null ? \"invalid\" : status;\n return {\n status: visibleStatus,\n loginCode,\n error,\n isLoading: visibleStatus === \"authorizing\" || visibleStatus === \"redirecting\",\n authorize,\n retry,\n };\n}\n\nexport function CliAuthConfirmation({ fullPage = true }: { fullPage?: boolean }) {\n const { t } = useTranslation();\n const cliAuth = useCliAuthConfirmation();\n\n if (cliAuth.status === \"success\") {\n return (\n <MessageCard title={t(\"CLI Authorization Successful\")} fullPage={fullPage}>\n <Typography>\n {t(\"The CLI application has been authorized successfully. You can close this window and return to the command line.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"error\") {\n return (\n <MessageCard\n title={t(\"Authorization Failed\")}\n fullPage={fullPage}\n primaryButtonText={t(\"Try Again\")}\n primaryAction={cliAuth.retry}\n >\n <Typography className=\"text-red-600\">\n {t(\"Failed to authorize the CLI application:\")}\n </Typography>\n <Typography className=\"text-red-600\">\n {cliAuth.error?.message}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"invalid\") {\n return (\n <MessageCard title={t(\"Invalid CLI Authorization Link\")} fullPage={fullPage}>\n <Typography className=\"text-red-600\">\n {t(\"This CLI authorization link is missing a login code. Please return to the command line and start the login process again.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (cliAuth.status === \"authorizing\" || cliAuth.status === \"redirecting\") {\n return (\n <MessageCard title={t(\"Completing Authorization...\")} fullPage={fullPage}>\n <Typography>\n {t(\"Finishing up the CLI authorization...\")}\n </Typography>\n </MessageCard>\n );\n }\n\n return (\n <MessageCard\n title={t(\"Authorize CLI Application\")}\n fullPage={fullPage}\n primaryButtonText={cliAuth.isLoading ? t(\"Authorizing...\") : t(\"Authorize\")}\n primaryAction={cliAuth.authorize}\n >\n <Typography>\n {t(\"A command line application is requesting access to your account. Click the button below to authorize it.\")}\n </Typography>\n <Typography variant=\"destructive\">\n {t(\"WARNING: Make sure you trust the command line application, as it will gain access to your account. If you did not initiate this request, you can close this page and ignore it. We will never send you this link via email or any other means.\")}\n </Typography>\n </MessageCard>\n );\n}\n"],"mappings":";;;;;;;;;;;AAgBA,eAAe,oBAAoB,KAAqB,MAA+B;CACrF,OAAO,MAAM,IAAIA,8BAAAA,2BAA2B,CAAC,YAAY,sBAAsB;EAC7E,QAAQ;EACR,SAAS,EAAE,gBAAgB,mBAAmB;EAC9C,MAAM,KAAK,UAAU,IAAI;CAC3B,CAAC;AACH;AAEA,eAAe,oBAAoB,QAAkB;CACnD,IAAI,CAAC,OAAO,IACV,MAAM,IAAI,MAAM,yBAAyB,OAAO,OAAO,GAAG,MAAM,OAAO,KAAK,GAAG;AAEnF;AAEA,eAAe,gCAAgC,KAAqB,WAAmB,cAAsB;CAE3G,MAAM,oBAAoB,MADL,oBAAoB,KAAK;EAAE,YAAY;EAAW,eAAe;CAAa,CAAC,CACpE;AAClC;AAGA,MAAM,yBAAyB;AAE/B,SAAS,cAAc,WAAmB;CACxC,eAAe,QAAQ,wBAAwB,SAAS;AAC1D;AAEA,SAAS,YAAY,WAA4B;CAC/C,OAAO,eAAe,QAAQ,sBAAsB,MAAM;AAC5D;AAEA,SAAS,iBAAiB;CACxB,eAAe,WAAW,sBAAsB;AAClD;AAEA,SAAS,SAAS,KAAqB;CACrC,OAAO,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAC3D;AAEA,SAAS,eAAe,MAAe,WAA4B;CACjE,OAAO,OAAO,SAAS,YAAY,SAAS,QAAQ,aAAa,OAC7D,KAAK,aACL,KAAA;AACN;AAEA,SAAS,eAAe,MAAe,WAAuC;CAC5E,MAAM,QAAQ,eAAe,MAAM,SAAS;CAC5C,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;AAC7C;AAmBA,SAAgB,yBAAmD;CACjE,MAAM,OAAA,GAAA,gBAAA,YAAA,CAAkB;CACxB,MAAM,OAAO,IAAI,QAAQ,EAAE,mBAAmB,KAAK,CAAC;CACpD,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,SAAA,CAAqE,MAAM;CAC1F,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,SAAA,CAAmC,IAAI;CACrD,MAAM,mBAAA,GAAA,MAAA,OAAA,CAAyB,KAAK;CACpC,MAAM,0BAAA,GAAA,MAAA,OAAA,CAAgC,KAAK;CAC3C,MAAM,CAAC,cAAA,GAAA,MAAA,SAAA,OAA4B;EACjC,IAAI,OAAO,WAAW,aAAa,OAAO;EAC1C,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,CAAC,CAAC,IAAI,YAAY;CACrE,CAAC;CACD,MAAM,CAAC,cAAA,GAAA,MAAA,SAAA,OAA4B;EACjC,IAAI,OAAO,WAAW,aAAa,OAAO;EAC1C,OAAO,aAAa,QAAQ,YAAY,SAAS;CACnD,CAAC;CAED,MAAM,2BAAA,GAAA,MAAA,YAAA,CAAsC,YAAY;EACtD,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,sCAAsC;EAExD,IAAI,CAAC,MACH,MAAM,IAAI,MAAM,4DAA4D;EAE9E,MAAM,gBAAgB,MAAM,KAAK,eAAe,UAAU,EAAA,CAAG;EAC7D,IAAI,CAAC,cACH,MAAM,IAAI,MAAM,kCAAkC;EAEpD,MAAM,gCAAgC,KAAK,WAAW,YAAY;CACpE,GAAG;EAAC;EAAK;EAAW;CAAI,CAAC;CAEzB,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,gBAAgB,SACzC;EAEF,gBAAgB,UAAU;EAC1B,CAAA,GAAA,qCAAA,2BAAA,CAA2B,YAAY;GACrC,UAAU,aAAa;GACvB,IAAI;IACF,MAAM,wBAAwB;IAC9B,eAAe;IACf,UAAU,SAAS;GACrB,SAAS,KAAK;IACZ,SAAS,SAAS,GAAG,CAAC;IACtB,UAAU,OAAO;GACnB;EACF,CAAC;CACH,GAAG;EAAC;EAAW;EAAM;CAAuB,CAAC;CAE7C,MAAM,aAAA,GAAA,MAAA,YAAA,CAAwB,YAAY;EACxC,IAAI,uBAAuB,SACzB;EAEF,uBAAuB,UAAU;EAEjC,IAAI;GACF,IAAI,CAAC,WAAW;IACd,yBAAS,IAAI,MAAM,sCAAsC,CAAC;IAC1D,UAAU,OAAO;IACjB;GACF;GAEA,SAAS,IAAI;GACb,UAAU,aAAa;GACvB,IAAI,MAAM;IACR,MAAM,wBAAwB;IAC9B,eAAe;IACf,UAAU,SAAS;IACnB;GACF;GAEA,MAAM,cAAc,MAAM,oBAAoB,KAAK;IAAE,YAAY;IAAW,MAAM;GAAQ,CAAC;GAC3F,IAAI,CAAC,YAAY,IACf,MAAM,IAAI,MAAM,gCAAgC,YAAY,OAAO,GAAG,MAAM,YAAY,KAAK,GAAG;GAKlG,KAFwB,eAAe,MADN,YAAY,KAAK,GACA,mBAAmB,KAAK,UAElD,aAAa;IACnC,MAAM,cAAc,MAAM,oBAAoB,KAAK;KAAE,YAAY;KAAW,MAAM;IAAqB,CAAC;IAExG,IAAI,CAAC,YAAY,IACf,MAAM,IAAI,MAAM,sCAAsC,YAAY,OAAO,GAAG,MAAM,YAAY,KAAK,GAAG;IAGxG,MAAM,SAAkB,MAAM,YAAY,KAAK;IAC/C,MAAM,cAAc,eAAe,QAAQ,cAAc;IACzD,MAAM,eAAe,eAAe,QAAQ,eAAe;IAC3D,IAAI,CAAC,eAAe,CAAC,cACnB,MAAM,IAAI,MAAM,mDAAmD;IAErE,MAAM,IAAIA,8BAAAA,2BAA2B,CAAC,iBAAiB;KACrD;KACA;IACF,CAAC;IACD,cAAc,SAAS;IACvB,UAAU,aAAa;IACvB,MAAM,IAAI,iBAAiB,EAAE,SAAS,KAAK,CAAC;IAC5C;GACF;GAEA,cAAc,SAAS;GACvB,UAAU,aAAa;GACvB,MAAM,IAAI,iBAAiB,EAAE,SAAS,KAAK,CAAC;EAC9C,SAAS,KAAK;GACZ,SAAS,SAAS,GAAG,CAAC;GACtB,UAAU,OAAO;EACnB,UAAU;GACR,uBAAuB,UAAU;EACnC;CACF,GAAG;EAAC;EAAK;EAAyB;EAAW;CAAI,CAAC;CAElD,MAAM,SAAA,GAAA,MAAA,YAAA,OAA0B;EAC9B,SAAS,IAAI;EACb,gBAAgB,UAAU;EAC1B,UAAU,MAAM;CAClB,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,aAAa,OAAO,YAAY;CACtD,OAAO;EACL,QAAQ;EACR;EACA;EACA,WAAW,kBAAkB,iBAAiB,kBAAkB;EAChE;EACA;CACF;AACF;AAEA,SAAgB,oBAAoB,EAAE,WAAW,QAAgC;CAC/E,MAAM,EAAE,OAAA,GAAA,uBAAA,eAAA,CAAqB;CAC7B,MAAM,UAAU,uBAAuB;CAEvC,IAAI,QAAQ,WAAW,WACrB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EAAa,OAAO,EAAE,8BAA8B;EAAa;YAC/D,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,iHAAiH,EAC1G,CAAA;CACD,CAAA;CAIjB,IAAI,QAAQ,WAAW,SACrB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACD,4CAAAA,aAAD;EACE,OAAO,EAAE,sBAAsB;EACrB;EACV,mBAAmB,EAAE,WAAW;EAChC,eAAe,QAAQ;YAJzB,CAME,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD;GAAY,WAAU;aACnB,EAAE,0CAA0C;EACnC,CAAA,GACZ,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,YAAD;GAAY,WAAU;aACnB,QAAQ,OAAO;EACN,CAAA,CACD;;CAIjB,IAAI,QAAQ,WAAW,WACrB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,4CAAAA,aAAD;EAAa,OAAO,EAAE,gCAAgC;EAAa;YACjE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD;GAAY,WAAU;aACnB,EAAE,2HAA2H;EACpH,CAAA;CACD,CAAA;CAIjB,IAAI,QAAQ,WAAW,iBAAiB,QAAQ,WAAW,eACzD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,4CAAAA,aAAD;EAAa,OAAO,EAAE,6BAA6B;EAAa;YAC9D,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,uCAAuC,EAChC,CAAA;CACD,CAAA;CAIjB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACD,4CAAAA,aAAD;EACE,OAAO,EAAE,2BAA2B;EAC1B;EACV,mBAAmB,QAAQ,YAAY,EAAE,gBAAgB,IAAI,EAAE,WAAW;EAC1E,eAAe,QAAQ;YAJzB,CAME,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,0GAA0G,EACnG,CAAA,GACZ,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,YAAD;GAAY,SAAQ;aACjB,EAAE,gPAAgP;EACzO,CAAA,CACD;;AAEjB"}
@@ -1,14 +1,13 @@
1
- const require_chunk = require('../chunk-BE-pF4vm.js');
1
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
2
2
  let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
3
- let ___lib_hexclave_app_common_js = require("../lib/hexclave-app/common.js");
4
3
  let react = require("react");
5
- react = require_chunk.__toESM(react);
4
+ react = require_rolldown_runtime.__toESM(react);
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react_dom_client = require("react-dom/client");
8
7
  let vitest = require("vitest");
8
+ let ___lib_hexclave_app_common_js = require("../lib/hexclave-app/common.js");
9
9
  let ___providers_hexclave_context_js = require("../providers/hexclave-context.js");
10
10
  let __cli_auth_confirm_js = require("./cli-auth-confirm.js");
11
-
12
11
  //#region src/components-page/cli-auth-confirm.test.tsx
13
12
  // @vitest-environment jsdom
14
13
  const previousActEnvironment = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT");
@@ -171,6 +170,6 @@ function getButton(label) {
171
170
  (0, vitest.expect)(getByTestId("status").textContent).toBe("invalid");
172
171
  });
173
172
  });
174
-
175
173
  //#endregion
174
+
176
175
  //# sourceMappingURL=cli-auth-confirm.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-auth-confirm.test.js","names":["vi","hexclaveAppInternalsSymbol","HexclaveContext"],"sources":["../../src/components-page/cli-auth-confirm.test.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// @vitest-environment jsdom\n\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport React, { act } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { hexclaveAppInternalsSymbol } from \"../lib/hexclave-app/common\";\nimport { HexclaveContext } from \"../providers/hexclave-context\";\nimport { useCliAuthConfirmation } from \"./cli-auth-confirm\";\n\nconst previousActEnvironment = Reflect.get(globalThis, \"IS_REACT_ACT_ENVIRONMENT\");\n\nfunction responseJson(data: unknown, init?: ResponseInit) {\n return new Response(JSON.stringify(data), {\n status: init?.status ?? 200,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\nfunction createAppTestDouble(options: {\n user: unknown,\n sendRequest: (path: string, requestOptions: RequestInit) => Promise<Response>,\n signInWithTokens?: (tokens: { accessToken: string, refreshToken: string }) => Promise<void>,\n redirectToSignIn?: (options: { replace: true }) => Promise<void>,\n redirectToSignUp?: (options: { replace: true }) => Promise<void>,\n}) {\n const app = {\n useUser: () => options.user,\n redirectToSignIn: options.redirectToSignIn ?? vi.fn(async () => {}),\n redirectToSignUp: options.redirectToSignUp ?? vi.fn(async () => {}),\n [hexclaveAppInternalsSymbol]: {\n sendRequest: options.sendRequest,\n signInWithTokens: options.signInWithTokens ?? vi.fn(async () => {}),\n },\n };\n\n // This test double intentionally implements only the StackClientApp surface\n // that useCliAuthConfirmation touches.\n return app as unknown as StackClientApp<true>;\n}\n\nfunction HookProbe() {\n const cliAuth = useCliAuthConfirmation();\n return (\n <>\n <div data-testid=\"status\">{cliAuth.status}</div>\n <div data-testid=\"error\">{cliAuth.error?.message}</div>\n <button type=\"button\" onClick={() => runAsynchronously(cliAuth.authorize)}>authorize</button>\n <button onClick={cliAuth.retry}>retry</button>\n </>\n );\n}\n\nlet root: Root | null = null;\nlet container: HTMLDivElement | null = null;\n\nasync function renderWithApp(app: StackClientApp<true>) {\n container = document.createElement(\"div\");\n document.body.append(container);\n root = createRoot(container);\n await act(async () => {\n root?.render(\n <HexclaveContext.Provider value={{ app }}>\n <HookProbe />\n </HexclaveContext.Provider>\n );\n });\n}\n\nfunction getByTestId(testId: string): HTMLElement {\n const element = container?.querySelector(`[data-testid=\"${testId}\"]`);\n if (!(element instanceof HTMLElement)) {\n throw new Error(`Could not find test element ${testId}`);\n }\n return element;\n}\n\nfunction getButton(label: string): HTMLButtonElement {\n const button = [...container?.querySelectorAll(\"button\") ?? []]\n .find((element) => element.textContent === label);\n if (!(button instanceof HTMLButtonElement)) {\n throw new Error(`Could not find button ${label}`);\n }\n return button;\n}\n\ndescribe(\"useCliAuthConfirmation\", () => {\n beforeEach(() => {\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", true);\n });\n\n afterEach(() => {\n act(() => {\n root?.unmount();\n });\n container?.remove();\n root = null;\n container = null;\n vi.restoreAllMocks();\n window.history.replaceState({}, \"\", \"/\");\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", previousActEnvironment);\n });\n\n it(\"completes CLI auth with the current user's refresh token\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const getTokens = vi.fn(async () => ({ refreshToken: \"refresh-token\" }));\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }));\n const app = createAppTestDouble({\n user: { currentSession: { getTokens } },\n sendRequest,\n });\n\n await renderWithApp(app);\n await act(async () => {\n getButton(\"authorize\").click();\n });\n\n expect(getByTestId(\"status\").textContent).toBe(\"success\");\n expect(getTokens).toHaveBeenCalledOnce();\n expect(sendRequest).toHaveBeenCalledOnce();\n expect(sendRequest.mock.calls[0][0]).toBe(\"/auth/cli/complete\");\n expect(JSON.parse(String(sendRequest.mock.calls[0][1].body))).toMatchInlineSnapshot(`\n {\n \"login_code\": \"login-code\",\n \"refresh_token\": \"refresh-token\",\n }\n `);\n });\n\n it(\"ignores duplicate authorize clicks before React re-renders\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const getTokens = vi.fn(async () => ({ refreshToken: \"refresh-token\" }));\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }));\n const app = createAppTestDouble({\n user: { currentSession: { getTokens } },\n sendRequest,\n });\n\n await renderWithApp(app);\n await act(async () => {\n const authorizeButton = getButton(\"authorize\");\n authorizeButton.click();\n authorizeButton.click();\n });\n\n expect(sendRequest).toHaveBeenCalledOnce();\n });\n\n it(\"claims anonymous CLI sessions before redirecting to sign-up\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const signInWithTokens = vi.fn(async (_tokens: { accessToken: string, refreshToken: string }) => {});\n const redirectToSignUp = vi.fn(async (_options: { replace: true }) => {});\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }))\n .mockResolvedValueOnce(responseJson({ cli_session_state: \"anonymous\" }))\n .mockResolvedValueOnce(responseJson({ access_token: \"access-token\", refresh_token: \"refresh-token\" }));\n const app = createAppTestDouble({\n user: null,\n sendRequest,\n signInWithTokens,\n redirectToSignUp,\n });\n\n await renderWithApp(app);\n await act(async () => {\n getButton(\"authorize\").click();\n });\n\n expect(redirectToSignUp).toHaveBeenCalledWith({ replace: true });\n expect(signInWithTokens).toHaveBeenCalledWith({\n accessToken: \"access-token\",\n refreshToken: \"refresh-token\",\n });\n expect(sessionStorage.getItem(\"hexclave-cli-auth-confirmed\")).toBe(\"login-code\");\n expect(sendRequest.mock.calls.map(call => JSON.parse(String(call[1].body)))).toMatchInlineSnapshot(`\n [\n {\n \"login_code\": \"login-code\",\n \"mode\": \"check\",\n },\n {\n \"login_code\": \"login-code\",\n \"mode\": \"claim-anon-session\",\n },\n ]\n `);\n });\n\n it(\"reports invalid when the login code is missing\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm\");\n const app = createAppTestDouble({\n user: null,\n sendRequest: vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 })),\n });\n\n await renderWithApp(app);\n\n expect(getByTestId(\"status\").textContent).toBe(\"invalid\");\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli-auth-confirm.test.js","names":["vi","hexclaveAppInternalsSymbol","HexclaveContext"],"sources":["../../src/components-page/cli-auth-confirm.test.tsx"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n// @vitest-environment jsdom\n\nimport { runAsynchronously } from \"@hexclave/shared/dist/utils/promises\";\nimport React, { act } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\nimport { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\nimport type { StackClientApp } from \"../lib/hexclave-app/apps/interfaces/client-app\";\nimport { hexclaveAppInternalsSymbol } from \"../lib/hexclave-app/common\";\nimport { HexclaveContext } from \"../providers/hexclave-context\";\nimport { useCliAuthConfirmation } from \"./cli-auth-confirm\";\n\nconst previousActEnvironment = Reflect.get(globalThis, \"IS_REACT_ACT_ENVIRONMENT\");\n\nfunction responseJson(data: unknown, init?: ResponseInit) {\n return new Response(JSON.stringify(data), {\n status: init?.status ?? 200,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\nfunction createAppTestDouble(options: {\n user: unknown,\n sendRequest: (path: string, requestOptions: RequestInit) => Promise<Response>,\n signInWithTokens?: (tokens: { accessToken: string, refreshToken: string }) => Promise<void>,\n redirectToSignIn?: (options: { replace: true }) => Promise<void>,\n redirectToSignUp?: (options: { replace: true }) => Promise<void>,\n}) {\n const app = {\n useUser: () => options.user,\n redirectToSignIn: options.redirectToSignIn ?? vi.fn(async () => {}),\n redirectToSignUp: options.redirectToSignUp ?? vi.fn(async () => {}),\n [hexclaveAppInternalsSymbol]: {\n sendRequest: options.sendRequest,\n signInWithTokens: options.signInWithTokens ?? vi.fn(async () => {}),\n },\n };\n\n // This test double intentionally implements only the StackClientApp surface\n // that useCliAuthConfirmation touches.\n return app as unknown as StackClientApp<true>;\n}\n\nfunction HookProbe() {\n const cliAuth = useCliAuthConfirmation();\n return (\n <>\n <div data-testid=\"status\">{cliAuth.status}</div>\n <div data-testid=\"error\">{cliAuth.error?.message}</div>\n <button type=\"button\" onClick={() => runAsynchronously(cliAuth.authorize)}>authorize</button>\n <button onClick={cliAuth.retry}>retry</button>\n </>\n );\n}\n\nlet root: Root | null = null;\nlet container: HTMLDivElement | null = null;\n\nasync function renderWithApp(app: StackClientApp<true>) {\n container = document.createElement(\"div\");\n document.body.append(container);\n root = createRoot(container);\n await act(async () => {\n root?.render(\n <HexclaveContext.Provider value={{ app }}>\n <HookProbe />\n </HexclaveContext.Provider>\n );\n });\n}\n\nfunction getByTestId(testId: string): HTMLElement {\n const element = container?.querySelector(`[data-testid=\"${testId}\"]`);\n if (!(element instanceof HTMLElement)) {\n throw new Error(`Could not find test element ${testId}`);\n }\n return element;\n}\n\nfunction getButton(label: string): HTMLButtonElement {\n const button = [...container?.querySelectorAll(\"button\") ?? []]\n .find((element) => element.textContent === label);\n if (!(button instanceof HTMLButtonElement)) {\n throw new Error(`Could not find button ${label}`);\n }\n return button;\n}\n\ndescribe(\"useCliAuthConfirmation\", () => {\n beforeEach(() => {\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", true);\n });\n\n afterEach(() => {\n act(() => {\n root?.unmount();\n });\n container?.remove();\n root = null;\n container = null;\n vi.restoreAllMocks();\n window.history.replaceState({}, \"\", \"/\");\n Reflect.set(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", previousActEnvironment);\n });\n\n it(\"completes CLI auth with the current user's refresh token\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const getTokens = vi.fn(async () => ({ refreshToken: \"refresh-token\" }));\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }));\n const app = createAppTestDouble({\n user: { currentSession: { getTokens } },\n sendRequest,\n });\n\n await renderWithApp(app);\n await act(async () => {\n getButton(\"authorize\").click();\n });\n\n expect(getByTestId(\"status\").textContent).toBe(\"success\");\n expect(getTokens).toHaveBeenCalledOnce();\n expect(sendRequest).toHaveBeenCalledOnce();\n expect(sendRequest.mock.calls[0][0]).toBe(\"/auth/cli/complete\");\n expect(JSON.parse(String(sendRequest.mock.calls[0][1].body))).toMatchInlineSnapshot(`\n {\n \"login_code\": \"login-code\",\n \"refresh_token\": \"refresh-token\",\n }\n `);\n });\n\n it(\"ignores duplicate authorize clicks before React re-renders\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const getTokens = vi.fn(async () => ({ refreshToken: \"refresh-token\" }));\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }));\n const app = createAppTestDouble({\n user: { currentSession: { getTokens } },\n sendRequest,\n });\n\n await renderWithApp(app);\n await act(async () => {\n const authorizeButton = getButton(\"authorize\");\n authorizeButton.click();\n authorizeButton.click();\n });\n\n expect(sendRequest).toHaveBeenCalledOnce();\n });\n\n it(\"claims anonymous CLI sessions before redirecting to sign-up\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm?login_code=login-code\");\n const signInWithTokens = vi.fn(async (_tokens: { accessToken: string, refreshToken: string }) => {});\n const redirectToSignUp = vi.fn(async (_options: { replace: true }) => {});\n const sendRequest = vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 }))\n .mockResolvedValueOnce(responseJson({ cli_session_state: \"anonymous\" }))\n .mockResolvedValueOnce(responseJson({ access_token: \"access-token\", refresh_token: \"refresh-token\" }));\n const app = createAppTestDouble({\n user: null,\n sendRequest,\n signInWithTokens,\n redirectToSignUp,\n });\n\n await renderWithApp(app);\n await act(async () => {\n getButton(\"authorize\").click();\n });\n\n expect(redirectToSignUp).toHaveBeenCalledWith({ replace: true });\n expect(signInWithTokens).toHaveBeenCalledWith({\n accessToken: \"access-token\",\n refreshToken: \"refresh-token\",\n });\n expect(sessionStorage.getItem(\"hexclave-cli-auth-confirmed\")).toBe(\"login-code\");\n expect(sendRequest.mock.calls.map(call => JSON.parse(String(call[1].body)))).toMatchInlineSnapshot(`\n [\n {\n \"login_code\": \"login-code\",\n \"mode\": \"check\",\n },\n {\n \"login_code\": \"login-code\",\n \"mode\": \"claim-anon-session\",\n },\n ]\n `);\n });\n\n it(\"reports invalid when the login code is missing\", async () => {\n window.history.replaceState({}, \"\", \"/handler/cli-auth-confirm\");\n const app = createAppTestDouble({\n user: null,\n sendRequest: vi.fn(async (_path: string, _requestOptions: RequestInit) => new Response(null, { status: 200 })),\n });\n\n await renderWithApp(app);\n\n expect(getByTestId(\"status\").textContent).toBe(\"invalid\");\n });\n});\n"],"mappings":"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"}
@@ -1,10 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components-page/email-verification.d.ts
4
- declare function EmailVerification(props: {
5
- searchParams?: Record<string, string>;
6
- fullPage?: boolean;
7
- }): react_jsx_runtime0.JSX.Element;
8
- //#endregion
9
- export { EmailVerification };
10
- //# sourceMappingURL=email-verification.d.ts.map
1
+ import { t as EmailVerification } from "../email-verification-Cr_KKvtQ.js";
2
+ export { EmailVerification };
@@ -1,16 +1,14 @@
1
- 'use client';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
5
4
  let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
6
5
  let react = require("react");
7
- react = require_chunk.__toESM(react);
6
+ react = require_rolldown_runtime.__toESM(react);
8
7
  let ___index_js = require("../index.js");
9
8
  let ___lib_translations_js = require("../lib/translations.js");
10
9
  let react_jsx_runtime = require("react/jsx-runtime");
11
10
  let _hexclave_shared = require("@hexclave/shared");
12
11
  let ___components_message_cards_message_card_js = require("../components/message-cards/message-card.js");
13
-
14
12
  //#region src/components-page/email-verification.tsx
15
13
  function EmailVerification(props) {
16
14
  const { t } = (0, ___lib_translations_js.useTranslation)();
@@ -54,7 +52,7 @@ function EmailVerification(props) {
54
52
  });
55
53
  }
56
54
  }
57
-
58
55
  //#endregion
59
56
  exports.EmailVerification = EmailVerification;
57
+
60
58
  //# sourceMappingURL=email-verification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-verification.js","names":["React","MessageCard","KnownErrors"],"sources":["../../src/components-page/email-verification.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport React from \"react\";\nimport { useStackApp, useUser } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function EmailVerification(props: {\n searchParams?: Record<string, string>,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser();\n const [result, setResult] = React.useState<Awaited<ReturnType<typeof hexclaveApp.verifyEmail>> | null>(null);\n\n const invalidJsx = (\n <MessageCard title={t(\"Invalid Verification Link\")} fullPage={!!props.fullPage}>\n <p>{t(\"Please check if you have the correct link. If you continue to have issues, please contact support.\")}</p>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t(\"Expired Verification Link\")} fullPage={!!props.fullPage}>\n <p>{t(\"Your email verification link has expired. Please request a new verification link from your account settings.\")}</p>\n </MessageCard>\n );\n\n if (!props.searchParams?.code) {\n return invalidJsx;\n }\n\n if (!result) {\n return <MessageCard\n title={t(\"Do you want to verify your email?\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Verify\")}\n primaryAction={async () => {\n const result = await hexclaveApp.verifyEmail(props.searchParams?.code || throwErr(\"No verification code provided\"));\n setResult(result);\n }}\n secondaryButtonText={t(\"Cancel\")}\n secondaryAction={async () => {\n await hexclaveApp.redirectToHome();\n }}\n />;\n } else {\n if (result.status === 'error') {\n if (KnownErrors.VerificationCodeNotFound.isInstance(result.error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(result.error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(result.error)) {\n // everything fine, continue\n } else {\n throw result.error;\n }\n }\n\n return <MessageCard\n title={t(\"You email has been verified!\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go home\")}\n primaryAction={async () => {\n await hexclaveApp.redirectToHome();\n }}\n />;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,SAAgB,kBAAkB,OAG/B;CACD,MAAM,EAAE,kDAAsB;CAC9B,MAAM,4CAA2B;AACpB,2BAAS;CACtB,MAAM,CAAC,QAAQ,aAAaA,cAAM,SAAqE,KAAK;CAE5G,MAAM,aACJ,2CAACC;EAAY,OAAO,EAAE,4BAA4B;EAAE,UAAU,CAAC,CAAC,MAAM;YACpE,2CAAC,iBAAG,EAAE,qGAAqG,GAAK;GACpG;CAGhB,MAAM,aACJ,2CAACA;EAAY,OAAO,EAAE,4BAA4B;EAAE,UAAU,CAAC,CAAC,MAAM;YACpE,2CAAC,iBAAG,EAAE,+GAA+G,GAAK;GAC9G;AAGhB,KAAI,CAAC,MAAM,cAAc,KACvB,QAAO;AAGT,KAAI,CAAC,OACH,QAAO,2CAACA;EACN,OAAO,EAAE,oCAAoC;EAC7C,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,SAAS;EAC9B,eAAe,YAAY;AAEzB,aADe,MAAM,YAAY,YAAY,MAAM,cAAc,yDAAiB,gCAAgC,CAAC,CAClG;;EAEnB,qBAAqB,EAAE,SAAS;EAChC,iBAAiB,YAAY;AAC3B,SAAM,YAAY,gBAAgB;;GAEpC;MACG;AACL,MAAI,OAAO,WAAW,QACpB,KAAIC,6BAAY,yBAAyB,WAAW,OAAO,MAAM,CAC/D,QAAO;WACEA,6BAAY,wBAAwB,WAAW,OAAO,MAAM,CACrE,QAAO;WACEA,6BAAY,4BAA4B,WAAW,OAAO,MAAM,EAAE,OAG3E,OAAM,OAAO;AAIjB,SAAO,2CAACD;GACN,OAAO,EAAE,+BAA+B;GACxC,UAAU,CAAC,CAAC,MAAM;GAClB,mBAAmB,EAAE,UAAU;GAC/B,eAAe,YAAY;AACzB,UAAM,YAAY,gBAAgB;;IAEpC"}
1
+ {"version":3,"file":"email-verification.js","names":["React","MessageCard","KnownErrors"],"sources":["../../src/components-page/email-verification.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownErrors } from \"@hexclave/shared\";\nimport { throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport React from \"react\";\nimport { useStackApp, useUser } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function EmailVerification(props: {\n searchParams?: Record<string, string>,\n fullPage?: boolean,\n}) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser();\n const [result, setResult] = React.useState<Awaited<ReturnType<typeof hexclaveApp.verifyEmail>> | null>(null);\n\n const invalidJsx = (\n <MessageCard title={t(\"Invalid Verification Link\")} fullPage={!!props.fullPage}>\n <p>{t(\"Please check if you have the correct link. If you continue to have issues, please contact support.\")}</p>\n </MessageCard>\n );\n\n const expiredJsx = (\n <MessageCard title={t(\"Expired Verification Link\")} fullPage={!!props.fullPage}>\n <p>{t(\"Your email verification link has expired. Please request a new verification link from your account settings.\")}</p>\n </MessageCard>\n );\n\n if (!props.searchParams?.code) {\n return invalidJsx;\n }\n\n if (!result) {\n return <MessageCard\n title={t(\"Do you want to verify your email?\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Verify\")}\n primaryAction={async () => {\n const result = await hexclaveApp.verifyEmail(props.searchParams?.code || throwErr(\"No verification code provided\"));\n setResult(result);\n }}\n secondaryButtonText={t(\"Cancel\")}\n secondaryAction={async () => {\n await hexclaveApp.redirectToHome();\n }}\n />;\n } else {\n if (result.status === 'error') {\n if (KnownErrors.VerificationCodeNotFound.isInstance(result.error)) {\n return invalidJsx;\n } else if (KnownErrors.VerificationCodeExpired.isInstance(result.error)) {\n return expiredJsx;\n } else if (KnownErrors.VerificationCodeAlreadyUsed.isInstance(result.error)) {\n // everything fine, continue\n } else {\n throw result.error;\n }\n }\n\n return <MessageCard\n title={t(\"You email has been verified!\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go home\")}\n primaryAction={async () => {\n await hexclaveApp.redirectToHome();\n }}\n />;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,kBAAkB,OAG/B;CACD,MAAM,EAAE,OAAA,GAAA,uBAAA,eAAA,CAAqB;CAC7B,MAAM,eAAA,GAAA,YAAA,YAAA,CAA0B;CACnB,CAAA,GAAA,YAAA,QAAA,CAAQ;CACrB,MAAM,CAAC,QAAQ,aAAaA,MAAAA,QAAM,SAAqE,IAAI;CAE3G,MAAM,aACJ,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EAAa,OAAO,EAAE,2BAA2B;EAAG,UAAU,CAAC,CAAC,MAAM;YACpE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD,EAAA,UAAI,EAAE,oGAAoG,EAAK,CAAA;CACpG,CAAA;CAGf,MAAM,aACJ,iBAAA,GAAA,kBAAA,IAAA,CAACA,4CAAAA,aAAD;EAAa,OAAO,EAAE,2BAA2B;EAAG,UAAU,CAAC,CAAC,MAAM;YACpE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD,EAAA,UAAI,EAAE,8GAA8G,EAAK,CAAA;CAC9G,CAAA;CAGf,IAAI,CAAC,MAAM,cAAc,MACvB,OAAO;CAGT,IAAI,CAAC,QACH,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,4CAAAA,aAAD;EACL,OAAO,EAAE,mCAAmC;EAC5C,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,QAAQ;EAC7B,eAAe,YAAY;GAEzB,UAAU,MADW,YAAY,YAAY,MAAM,cAAc,SAAA,GAAA,mCAAA,SAAA,CAAiB,+BAA+B,CAAC,CAClG;EAClB;EACA,qBAAqB,EAAE,QAAQ;EAC/B,iBAAiB,YAAY;GAC3B,MAAM,YAAY,eAAe;EACnC;CACD,CAAA;MACI;EACL,IAAI,OAAO,WAAW,SACpB,IAAIC,iBAAAA,YAAY,yBAAyB,WAAW,OAAO,KAAK,GAC9D,OAAO;OACF,IAAIA,iBAAAA,YAAY,wBAAwB,WAAW,OAAO,KAAK,GACpE,OAAO;OACF,IAAIA,iBAAAA,YAAY,4BAA4B,WAAW,OAAO,KAAK,GAAG,CAE7E,OACE,MAAM,OAAO;EAIjB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACD,4CAAAA,aAAD;GACL,OAAO,EAAE,8BAA8B;GACvC,UAAU,CAAC,CAAC,MAAM;GAClB,mBAAmB,EAAE,SAAS;GAC9B,eAAe,YAAY;IACzB,MAAM,YAAY,eAAe;GACnC;EACD,CAAA;CACH;AACF"}
@@ -1,10 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components-page/error-page.d.ts
4
- declare function ErrorPage(props: {
5
- fullPage?: boolean;
6
- searchParams: Record<string, string>;
7
- }): react_jsx_runtime0.JSX.Element;
8
- //#endregion
9
- export { ErrorPage };
10
- //# sourceMappingURL=error-page.d.ts.map
1
+ import { t as ErrorPage } from "../error-page-D0KwN73t.js";
2
+ export { ErrorPage };
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
3
  let _hexclave_ui = require("@hexclave/ui");
6
4
  let ___index_js = require("../index.js");
7
5
  let ___lib_translations_js = require("../lib/translations.js");
@@ -10,7 +8,6 @@ let _hexclave_shared = require("@hexclave/shared");
10
8
  let ___components_message_cards_known_error_message_card_js = require("../components/message-cards/known-error-message-card.js");
11
9
  let ___components_message_cards_message_card_js = require("../components/message-cards/message-card.js");
12
10
  let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
13
-
14
11
  //#region src/components-page/error-page.tsx
15
12
  function ErrorPage(props) {
16
13
  const { t } = (0, ___lib_translations_js.useTranslation)();
@@ -71,7 +68,7 @@ function ErrorPage(props) {
71
68
  fullPage: !!props.fullPage
72
69
  });
73
70
  }
74
-
75
71
  //#endregion
76
72
  exports.ErrorPage = ErrorPage;
73
+
77
74
  //# sourceMappingURL=error-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-page.js","names":["PredefinedMessageCard","KnownError","KnownErrors","MessageCard","Typography","KnownErrorMessageCard"],"sources":["../../src/components-page/error-page.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownError, KnownErrors } from \"@hexclave/shared\";\nimport { Typography } from \"@hexclave/ui\";\nimport { useStackApp } from \"..\";\nimport { KnownErrorMessageCard } from \"../components/message-cards/known-error-message-card\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\n\nexport function ErrorPage(props: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const errorCode = props.searchParams.errorCode;\n const message = props.searchParams.message;\n const details = props.searchParams.details;\n\n const unknownErrorCard = <PredefinedMessageCard type='unknownError' fullPage={!!props.fullPage} />;\n\n if (!errorCode || !message) {\n return unknownErrorCard;\n }\n\n let error;\n try {\n const detailJson = details ? JSON.parse(details) : {};\n error = KnownError.fromJson({ code: errorCode, message, details: detailJson });\n } catch (e) {\n return unknownErrorCard;\n }\n\n if (KnownErrors.OAuthConnectionAlreadyConnectedToAnotherUser.isInstance(error)) {\n // TODO: add \"Connect a different account\" button\n return (\n <MessageCard\n title={t(\"Failed to connect account\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go Home\")}\n primaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"This account is already connected to another user. Please connect a different account.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.UserAlreadyConnectedToAnotherOAuthConnection.isInstance(error)) {\n // TODO: add \"Connect again\" button\n return (\n <MessageCard\n title={t(\"Failed to connect account\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go Home\")}\n primaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The user is already connected to another OAuth account. Did you maybe selected the wrong account on the OAuth provider page?\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.OAuthProviderAccessDenied.isInstance(error)) {\n return (\n <MessageCard\n title={t(\"OAuth provider access denied\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Sign in again\")}\n primaryAction={() => hexclaveApp.redirectToSignIn()}\n secondaryButtonText={t(\"Go Home\")}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The sign-in operation has been cancelled or denied. Please try again.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.OAuthProviderTemporarilyUnavailable.isInstance(error)) {\n return (\n <MessageCard\n title={t(\"OAuth provider is temporarily unavailable\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Try again\")}\n primaryAction={() => hexclaveApp.redirectToSignIn()}\n secondaryButtonText={t(\"Go Home\")}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The OAuth provider could not complete sign-in right now. Please try again in a moment.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n return <KnownErrorMessageCard error={error} fullPage={!!props.fullPage} />;\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,SAAgB,UAAU,OAAqE;CAC7F,MAAM,EAAE,kDAAsB;CAC9B,MAAM,4CAA2B;CACjC,MAAM,YAAY,MAAM,aAAa;CACrC,MAAM,UAAU,MAAM,aAAa;CACnC,MAAM,UAAU,MAAM,aAAa;CAEnC,MAAM,mBAAmB,2CAACA;EAAsB,MAAK;EAAe,UAAU,CAAC,CAAC,MAAM;GAAY;AAElG,KAAI,CAAC,aAAa,CAAC,QACjB,QAAO;CAGT,IAAI;AACJ,KAAI;EACF,MAAM,aAAa,UAAU,KAAK,MAAM,QAAQ,GAAG,EAAE;AACrD,UAAQC,4BAAW,SAAS;GAAE,MAAM;GAAW;GAAS,SAAS;GAAY,CAAC;UACvE,GAAG;AACV,SAAO;;AAGT,KAAIC,6BAAY,6CAA6C,WAAW,MAAM,CAE5E,QACE,2CAACC;EACC,OAAO,EAAE,4BAA4B;EACrC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,UAAU;EAC/B,qBAAqB,YAAY,gBAAgB;YAEjD,2CAACC,qCACE,EAAE,yFAAyF,GACjF;GACD;AAIlB,KAAIF,6BAAY,6CAA6C,WAAW,MAAM,CAE5E,QACE,2CAACC;EACC,OAAO,EAAE,4BAA4B;EACrC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,UAAU;EAC/B,qBAAqB,YAAY,gBAAgB;YAEjD,2CAACC,qCACE,EAAE,+HAA+H,GACvH;GACD;AAIlB,KAAIF,6BAAY,0BAA0B,WAAW,MAAM,CACzD,QACE,2CAACC;EACC,OAAO,EAAE,+BAA+B;EACxC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,gBAAgB;EACrC,qBAAqB,YAAY,kBAAkB;EACnD,qBAAqB,EAAE,UAAU;EACjC,uBAAuB,YAAY,gBAAgB;YAEnD,2CAACC,qCACE,EAAE,wEAAwE,GAChE;GACD;AAIlB,KAAIF,6BAAY,oCAAoC,WAAW,MAAM,CACnE,QACE,2CAACC;EACC,OAAO,EAAE,4CAA4C;EACrD,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,YAAY;EACjC,qBAAqB,YAAY,kBAAkB;EACnD,qBAAqB,EAAE,UAAU;EACjC,uBAAuB,YAAY,gBAAgB;YAEnD,2CAACC,qCACE,EAAE,yFAAyF,GACjF;GACD;AAIlB,QAAO,2CAACC;EAA6B;EAAO,UAAU,CAAC,CAAC,MAAM;GAAY"}
1
+ {"version":3,"file":"error-page.js","names":["PredefinedMessageCard","KnownError","KnownErrors","MessageCard","Typography","KnownErrorMessageCard"],"sources":["../../src/components-page/error-page.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownError, KnownErrors } from \"@hexclave/shared\";\nimport { Typography } from \"@hexclave/ui\";\nimport { useStackApp } from \"..\";\nimport { KnownErrorMessageCard } from \"../components/message-cards/known-error-message-card\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\n\nexport function ErrorPage(props: { fullPage?: boolean, searchParams: Record<string, string> }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const errorCode = props.searchParams.errorCode;\n const message = props.searchParams.message;\n const details = props.searchParams.details;\n\n const unknownErrorCard = <PredefinedMessageCard type='unknownError' fullPage={!!props.fullPage} />;\n\n if (!errorCode || !message) {\n return unknownErrorCard;\n }\n\n let error;\n try {\n const detailJson = details ? JSON.parse(details) : {};\n error = KnownError.fromJson({ code: errorCode, message, details: detailJson });\n } catch (e) {\n return unknownErrorCard;\n }\n\n if (KnownErrors.OAuthConnectionAlreadyConnectedToAnotherUser.isInstance(error)) {\n // TODO: add \"Connect a different account\" button\n return (\n <MessageCard\n title={t(\"Failed to connect account\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go Home\")}\n primaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"This account is already connected to another user. Please connect a different account.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.UserAlreadyConnectedToAnotherOAuthConnection.isInstance(error)) {\n // TODO: add \"Connect again\" button\n return (\n <MessageCard\n title={t(\"Failed to connect account\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Go Home\")}\n primaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The user is already connected to another OAuth account. Did you maybe selected the wrong account on the OAuth provider page?\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.OAuthProviderAccessDenied.isInstance(error)) {\n return (\n <MessageCard\n title={t(\"OAuth provider access denied\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Sign in again\")}\n primaryAction={() => hexclaveApp.redirectToSignIn()}\n secondaryButtonText={t(\"Go Home\")}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The sign-in operation has been cancelled or denied. Please try again.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (KnownErrors.OAuthProviderTemporarilyUnavailable.isInstance(error)) {\n return (\n <MessageCard\n title={t(\"OAuth provider is temporarily unavailable\")}\n fullPage={!!props.fullPage}\n primaryButtonText={t(\"Try again\")}\n primaryAction={() => hexclaveApp.redirectToSignIn()}\n secondaryButtonText={t(\"Go Home\")}\n secondaryAction={() => hexclaveApp.redirectToHome()}\n >\n <Typography>\n {t(\"The OAuth provider could not complete sign-in right now. Please try again in a moment.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n return <KnownErrorMessageCard error={error} fullPage={!!props.fullPage} />;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,UAAU,OAAqE;CAC7F,MAAM,EAAE,OAAA,GAAA,uBAAA,eAAA,CAAqB;CAC7B,MAAM,eAAA,GAAA,YAAA,YAAA,CAA0B;CAChC,MAAM,YAAY,MAAM,aAAa;CACrC,MAAM,UAAU,MAAM,aAAa;CACnC,MAAM,UAAU,MAAM,aAAa;CAEnC,MAAM,mBAAmB,iBAAA,GAAA,kBAAA,IAAA,CAACA,uDAAAA,uBAAD;EAAuB,MAAK;EAAe,UAAU,CAAC,CAAC,MAAM;CAAW,CAAA;CAEjG,IAAI,CAAC,aAAa,CAAC,SACjB,OAAO;CAGT,IAAI;CACJ,IAAI;EACF,MAAM,aAAa,UAAU,KAAK,MAAM,OAAO,IAAI,CAAC;EACpD,QAAQC,iBAAAA,WAAW,SAAS;GAAE,MAAM;GAAW;GAAS,SAAS;EAAW,CAAC;CAC/E,SAAS,GAAG;EACV,OAAO;CACT;CAEA,IAAIC,iBAAAA,YAAY,6CAA6C,WAAW,KAAK,GAE3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EACE,OAAO,EAAE,2BAA2B;EACpC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,SAAS;EAC9B,qBAAqB,YAAY,eAAe;YAEhD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,wFAAwF,EACjF,CAAA;CACD,CAAA;CAIjB,IAAIF,iBAAAA,YAAY,6CAA6C,WAAW,KAAK,GAE3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EACE,OAAO,EAAE,2BAA2B;EACpC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,SAAS;EAC9B,qBAAqB,YAAY,eAAe;YAEhD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,8HAA8H,EACvH,CAAA;CACD,CAAA;CAIjB,IAAIF,iBAAAA,YAAY,0BAA0B,WAAW,KAAK,GACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EACE,OAAO,EAAE,8BAA8B;EACvC,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,eAAe;EACpC,qBAAqB,YAAY,iBAAiB;EAClD,qBAAqB,EAAE,SAAS;EAChC,uBAAuB,YAAY,eAAe;YAElD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,uEAAuE,EAChE,CAAA;CACD,CAAA;CAIjB,IAAIF,iBAAAA,YAAY,oCAAoC,WAAW,KAAK,GAClE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,4CAAAA,aAAD;EACE,OAAO,EAAE,2CAA2C;EACpD,UAAU,CAAC,CAAC,MAAM;EAClB,mBAAmB,EAAE,WAAW;EAChC,qBAAqB,YAAY,iBAAiB;EAClD,qBAAqB,EAAE,SAAS;EAChC,uBAAuB,YAAY,eAAe;YAElD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,YAAD,EAAA,UACG,EAAE,wFAAwF,EACjF,CAAA;CACD,CAAA;CAIjB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,wDAAAA,uBAAD;EAA8B;EAAO,UAAU,CAAC,CAAC,MAAM;CAAW,CAAA;AAC3E"}
@@ -1,14 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components-page/forgot-password.d.ts
4
- declare function ForgotPasswordForm({
5
- onSent
6
- }: {
7
- onSent?: () => void;
8
- }): react_jsx_runtime0.JSX.Element;
9
- declare function ForgotPassword(props: {
10
- fullPage?: boolean;
11
- }): react_jsx_runtime0.JSX.Element;
12
- //#endregion
13
- export { ForgotPassword, ForgotPasswordForm };
14
- //# sourceMappingURL=forgot-password.d.ts.map
1
+ import { n as ForgotPasswordForm, t as ForgotPassword } from "../forgot-password-B7RLLsC2.js";
2
+ export { ForgotPassword, ForgotPasswordForm };
@@ -1,10 +1,8 @@
1
- 'use client';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
5
- let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
3
  let _hookform_resolvers_yup = require("@hookform/resolvers/yup");
7
4
  let _hexclave_shared_dist_schema_fields = require("@hexclave/shared/dist/schema-fields");
5
+ let _hexclave_shared_dist_utils_promises = require("@hexclave/shared/dist/utils/promises");
8
6
  let _hexclave_ui = require("@hexclave/ui");
9
7
  let react = require("react");
10
8
  let react_hook_form = require("react-hook-form");
@@ -15,7 +13,6 @@ let react_jsx_runtime = require("react/jsx-runtime");
15
13
  let ___components_elements_maybe_full_page_js = require("../components/elements/maybe-full-page.js");
16
14
  let ___components_link_js = require("../components/link.js");
17
15
  let ___components_message_cards_predefined_message_card_js = require("../components/message-cards/predefined-message-card.js");
18
-
19
16
  //#region src/components-page/forgot-password.tsx
20
17
  function ForgotPasswordForm({ onSent }) {
21
18
  const { t } = (0, ___lib_translations_js.useTranslation)();
@@ -99,8 +96,8 @@ function ForgotPassword(props) {
99
96
  })
100
97
  });
101
98
  }
102
-
103
99
  //#endregion
104
100
  exports.ForgotPassword = ForgotPassword;
105
101
  exports.ForgotPasswordForm = ForgotPasswordForm;
102
+
106
103
  //# sourceMappingURL=forgot-password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forgot-password.js","names":["Label","Input","FormWarningText","Button","PredefinedMessageCard","MaybeFullPage","Typography","StyledLink"],"sources":["../../src/components-page/forgot-password.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Label, Typography, cn } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { StyledLink } from \"../components/link\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function ForgotPasswordForm({ onSent }: { onSent?: () => void }) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n email: strictEmailSchema(t(\"Please enter a valid email\")).defined().nonEmpty(t(\"Please enter your email\"))\n });\n\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const hexclaveApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n await hexclaveApp.sendForgotPasswordEmail(email);\n onSent?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form\n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">{t(\"Your Email\")}</Label>\n <Input\n id=\"email\"\n type=\"email\"\n autoComplete=\"email\"\n {...register('email', { onChange: () => clearErrors('email') })}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t(\"Send Email\")}\n </Button>\n </form>\n );\n}\n\n\nexport function ForgotPassword(props: { fullPage?: boolean }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser();\n const [sent, setSent] = useState(false);\n\n if (user) {\n return <PredefinedMessageCard type='signedIn' fullPage={!!props.fullPage} />;\n }\n\n if (sent) {\n return <PredefinedMessageCard type='emailSent' fullPage={!!props.fullPage} />;\n }\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className={cn(\n \"stack-scope max-w-[380px] flex-basis-[380px]\",\n props.fullPage ? \"p-4\" : \"p-0\"\n )}>\n <div className=\"text-center\">\n <Typography type='h2'>{t(\"Reset Your Password\")}</Typography>\n <Typography>\n {t(\"Don't need to reset?\")}{\" \"}\n <StyledLink\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n runAsynchronouslyWithAlert(hexclaveApp.redirectToSignIn());\n }}\n >\n {t(\"Sign in\")}\n </StyledLink>\n </Typography>\n </div>\n <div className=\"mt-6\">\n <ForgotPasswordForm onSent={() => setSent(true)} />\n </div>\n </div>\n </MaybeFullPage>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,mBAAmB,EAAE,UAAmC;CACtE,MAAM,EAAE,kDAAsB;CAM9B,MAAM,EAAE,UAAU,cAAc,WAAW,EAAE,UAAU,6CAAwB,EAC7E,sGALuB,EACvB,kEAAyB,EAAE,6BAA6B,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAC3G,CAAC,CAG6B,EAC9B,CAAC;CACF,MAAM,4CAA2B;CACjC,MAAM,CAAC,SAAS,kCAAuB,MAAM;CAE7C,MAAM,WAAW,OAAO,SAAuC;AAC7D,aAAW,KAAK;AAChB,MAAI;GACF,MAAM,EAAE,UAAU;AAClB,SAAM,YAAY,wBAAwB,MAAM;AAClD,aAAU;YACA;AACR,cAAW,MAAM;;;AAIrB,QACE,4CAAC;EACC,WAAU;EACV,WAAU,2EAAgC,aAAa,SAAS,CAAC,EAAE,CAAC;EACpE;;GAEA,2CAACA;IAAM,SAAQ;IAAQ,WAAU;cAAQ,EAAE,aAAa;KAAS;GACjE,2CAACC;IACC,IAAG;IACH,MAAK;IACL,cAAa;IACb,GAAI,SAAS,SAAS,EAAE,gBAAgB,YAAY,QAAQ,EAAE,CAAC;KAC/D;GACF,2CAACC,0DAAgB,MAAM,OAAO,OAAO,SAAS,UAAU,GAAI;GAE5D,2CAACC;IAAO,MAAK;IAAS,WAAU;IAAgB;cAC7C,EAAE,aAAa;KACT;;GACJ;;AAKX,SAAgB,eAAe,OAA+B;CAC5D,MAAM,EAAE,kDAAsB;CAC9B,MAAM,4CAA2B;CACjC,MAAM,iCAAgB;CACtB,MAAM,CAAC,MAAM,+BAAoB,MAAM;AAEvC,KAAI,KACF,QAAO,2CAACC;EAAsB,MAAK;EAAW,UAAU,CAAC,CAAC,MAAM;GAAY;AAG9E,KAAI,KACF,QAAO,2CAACA;EAAsB,MAAK;EAAY,UAAU,CAAC,CAAC,MAAM;GAAY;AAG/E,QACE,2CAACC;EAAc,UAAU,CAAC,CAAC,MAAM;YAC/B,4CAAC;GAAI,gCACH,gDACA,MAAM,WAAW,QAAQ,MAC1B;cACC,4CAAC;IAAI,WAAU;eACb,2CAACC;KAAW,MAAK;eAAM,EAAE,sBAAsB;MAAc,EAC7D,4CAACA;KACE,EAAE,uBAAuB;KAAE;KAC5B,2CAACC;MACC,MAAK;MACL,UAAU,MAAM;AACd,SAAE,gBAAgB;AAClB,4EAA2B,YAAY,kBAAkB,CAAC;;gBAG3D,EAAE,UAAU;OACF;QACF;KACT,EACN,2CAAC;IAAI,WAAU;cACb,2CAAC,sBAAmB,cAAc,QAAQ,KAAK,GAAI;KAC/C;IACF;GACQ"}
1
+ {"version":3,"file":"forgot-password.js","names":["Label","Input","FormWarningText","Button","PredefinedMessageCard","MaybeFullPage","Typography","StyledLink"],"sources":["../../src/components-page/forgot-password.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { strictEmailSchema, yupObject } from \"@hexclave/shared/dist/schema-fields\";\nimport { runAsynchronouslyWithAlert } from \"@hexclave/shared/dist/utils/promises\";\nimport { Button, Input, Label, Typography, cn } from \"@hexclave/ui\";\nimport { useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\nimport { useStackApp, useUser } from \"..\";\nimport { FormWarningText } from \"../components/elements/form-warning\";\nimport { MaybeFullPage } from \"../components/elements/maybe-full-page\";\nimport { StyledLink } from \"../components/link\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nexport function ForgotPasswordForm({ onSent }: { onSent?: () => void }) {\n const { t } = useTranslation();\n\n const schema = yupObject({\n email: strictEmailSchema(t(\"Please enter a valid email\")).defined().nonEmpty(t(\"Please enter your email\"))\n });\n\n const { register, handleSubmit, formState: { errors }, clearErrors } = useForm({\n resolver: yupResolver(schema)\n });\n const hexclaveApp = useStackApp();\n const [loading, setLoading] = useState(false);\n\n const onSubmit = async (data: yup.InferType<typeof schema>) => {\n setLoading(true);\n try {\n const { email } = data;\n await hexclaveApp.sendForgotPasswordEmail(email);\n onSent?.();\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <form\n className=\"flex flex-col items-stretch stack-scope\"\n onSubmit={e => runAsynchronouslyWithAlert(handleSubmit(onSubmit)(e))}\n noValidate\n >\n <Label htmlFor=\"email\" className=\"mb-1\">{t(\"Your Email\")}</Label>\n <Input\n id=\"email\"\n type=\"email\"\n autoComplete=\"email\"\n {...register('email', { onChange: () => clearErrors('email') })}\n />\n <FormWarningText text={errors.email?.message?.toString()} />\n\n <Button type=\"submit\" className=\"mt-6\" loading={loading}>\n {t(\"Send Email\")}\n </Button>\n </form>\n );\n}\n\n\nexport function ForgotPassword(props: { fullPage?: boolean }) {\n const { t } = useTranslation();\n const hexclaveApp = useStackApp();\n const user = useUser();\n const [sent, setSent] = useState(false);\n\n if (user) {\n return <PredefinedMessageCard type='signedIn' fullPage={!!props.fullPage} />;\n }\n\n if (sent) {\n return <PredefinedMessageCard type='emailSent' fullPage={!!props.fullPage} />;\n }\n\n return (\n <MaybeFullPage fullPage={!!props.fullPage}>\n <div className={cn(\n \"stack-scope max-w-[380px] flex-basis-[380px]\",\n props.fullPage ? \"p-4\" : \"p-0\"\n )}>\n <div className=\"text-center\">\n <Typography type='h2'>{t(\"Reset Your Password\")}</Typography>\n <Typography>\n {t(\"Don't need to reset?\")}{\" \"}\n <StyledLink\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n runAsynchronouslyWithAlert(hexclaveApp.redirectToSignIn());\n }}\n >\n {t(\"Sign in\")}\n </StyledLink>\n </Typography>\n </div>\n <div className=\"mt-6\">\n <ForgotPasswordForm onSent={() => setSent(true)} />\n </div>\n </div>\n </MaybeFullPage>\n );\n};\n"],"mappings":"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"}
@@ -1,62 +1,2 @@
1
- import { HandlerUrls } from "../lib/hexclave-app/common.js";
2
- import { StackClientApp } from "../lib/hexclave-app/apps/interfaces/client-app.js";
3
- import { AccountSettings } from "./account-settings.js";
4
- import { CliAuthConfirmation } from "./cli-auth-confirm.js";
5
- import { EmailVerification } from "./email-verification.js";
6
- import { ErrorPage } from "./error-page.js";
7
- import { ForgotPassword } from "./forgot-password.js";
8
- import { MagicLinkCallback } from "./magic-link-callback.js";
9
- import { MFA } from "./mfa.js";
10
- import { OAuthCallback } from "./oauth-callback.js";
11
- import { Onboarding } from "./onboarding.js";
12
- import { PasswordReset } from "./password-reset.js";
13
- import { SignOut } from "./sign-out.js";
14
- import { TeamInvitation } from "./team-invitation.js";
15
- import { SignIn } from "./sign-in.js";
16
- import { SignUp } from "./sign-up.js";
17
- import { KnownError } from "@hexclave/shared";
18
-
19
- //#region src/components-page/hexclave-handler-client.d.ts
20
- type Components = {
21
- SignIn: typeof SignIn;
22
- SignUp: typeof SignUp;
23
- EmailVerification: typeof EmailVerification;
24
- PasswordReset: typeof PasswordReset;
25
- ForgotPassword: typeof ForgotPassword;
26
- SignOut: typeof SignOut;
27
- OAuthCallback: typeof OAuthCallback;
28
- MagicLinkCallback: typeof MagicLinkCallback;
29
- TeamInvitation: typeof TeamInvitation;
30
- ErrorPage: typeof ErrorPage;
31
- AccountSettings: typeof AccountSettings;
32
- CliAuthConfirmation: typeof CliAuthConfirmation;
33
- MFA: typeof MFA;
34
- Onboarding: typeof Onboarding;
35
- };
36
- type RouteProps = {
37
- params: Promise<{
38
- stack?: string[];
39
- }> | {
40
- stack?: string[];
41
- };
42
- searchParams: Promise<Record<string, string>> | Record<string, string>;
43
- };
44
- type RedirectToPageResult = {
45
- status: "success";
46
- } | {
47
- status: "known-error";
48
- error: KnownError;
49
- } | {
50
- status: "unknown-error";
51
- };
52
- type BaseHandlerProps = {
53
- fullPage: boolean;
54
- componentProps?: { [K in keyof Components]?: Parameters<Components[K]>[0] };
55
- };
56
- declare function getRedirectToPageResult(app: StackClientApp, redirectToPage: keyof HandlerUrls): Promise<RedirectToPageResult>;
57
- declare function HexclaveHandlerClient(props: BaseHandlerProps & Partial<RouteProps> & {
58
- location?: string;
59
- }): any;
60
- //#endregion
61
- export { BaseHandlerProps, HexclaveHandlerClient, getRedirectToPageResult };
62
- //# sourceMappingURL=hexclave-handler-client.d.ts.map
1
+ import { d as getRedirectToPageResult, l as BaseHandlerProps, u as HexclaveHandlerClient } from "../index-p0N9MbE5.js";
2
+ export { BaseHandlerProps, HexclaveHandlerClient, getRedirectToPageResult };
@@ -1,7 +1,5 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
3
  let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
6
4
  let react = require("react");
7
5
  let ___index_js = require("../index.js");
@@ -29,7 +27,6 @@ let __onboarding_js = require("./onboarding.js");
29
27
  let __password_reset_js = require("./password-reset.js");
30
28
  let __sign_out_js = require("./sign-out.js");
31
29
  let __team_invitation_js = require("./team-invitation.js");
32
-
33
30
  //#region src/components-page/hexclave-handler-client.tsx
34
31
  const availablePaths = {
35
32
  signIn: "sign-in",
@@ -254,8 +251,8 @@ function toAbsoluteOrRelativeRedirectTarget(url) {
254
251
  function useClientOriginAfterHydration() {
255
252
  return (0, react.useSyncExternalStore)(() => () => {}, () => window.location.origin, () => void 0);
256
253
  }
257
-
258
254
  //#endregion
259
255
  exports.HexclaveHandlerClient = HexclaveHandlerClient;
260
256
  exports.getRedirectToPageResult = getRedirectToPageResult;
257
+
261
258
  //# sourceMappingURL=hexclave-handler-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hexclave-handler-client.js","names":["SignIn","SignUp","EmailVerification","PasswordReset","ForgotPassword","SignOut","OAuthCallback","MagicLinkCallback","TeamInvitation","AccountSettings","ErrorPage","CliAuthConfirmation","MFA","Onboarding","HexclaveAssertionError","hexclaveAppInternalsSymbol","KnownError","KnownErrorMessageCard","PredefinedMessageCard","MessageCard","Suspense","RedirectType"],"sources":["../../src/components-page/hexclave-handler-client.tsx"],"sourcesContent":["\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownError } from \"@hexclave/shared\";\nimport { captureError, HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined } from \"@hexclave/shared/dist/utils/objects\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { getRelativePart } from \"@hexclave/shared/dist/utils/urls\";\nimport { notFound, redirect, RedirectType, usePathname, useSearchParams } from 'next/navigation'; // THIS_LINE_PLATFORM next\nimport { Suspense, useMemo, useSyncExternalStore } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { HandlerUrls, StackClientApp, hexclaveAppInternalsSymbol } from \"../lib/hexclave-app\";\nimport { isLocalHandlerUrlTarget, resolveUnknownHandlerPathFallbackUrl } from \"../lib/hexclave-app/url-targets\";\nimport { AccountSettings } from \"./account-settings\";\nimport { CliAuthConfirmation } from \"./cli-auth-confirm\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { MFA } from \"./mfa\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { Onboarding } from \"./onboarding\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\nimport { KnownErrorMessageCard } from \"../components/message-cards/known-error-message-card\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n CliAuthConfirmation: typeof CliAuthConfirmation,\n MFA: typeof MFA,\n Onboarding: typeof Onboarding,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\ntype RedirectToPageResult =\n | { status: \"success\" }\n | { status: \"known-error\", error: KnownError }\n | { status: \"unknown-error\" };\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n cliAuthConfirm: 'cli-auth-confirm',\n mfa: 'mfa',\n error: 'error',\n onboarding: 'onboarding',\n} as const;\n\nconst placeholderOrigin = \"http://example.com\";\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\nexport type BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n shouldRedirectToPage?: (name: keyof HandlerUrls) => boolean,\n getDefaultUnknownPathUrl?: (path: string) => string | null,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, shouldRedirectToPage, getDefaultUnknownPathUrl, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n if (shouldRedirectToPage?.('signIn')) return { redirectToPage: 'signIn' as const };\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n if (shouldRedirectToPage?.('signUp')) return { redirectToPage: 'signUp' as const };\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n if (shouldRedirectToPage?.('emailVerification')) return { redirectToPage: 'emailVerification' as const };\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n if (shouldRedirectToPage?.('passwordReset')) return { redirectToPage: 'passwordReset' as const };\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n if (shouldRedirectToPage?.('forgotPassword')) return { redirectToPage: 'forgotPassword' as const };\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n if (shouldRedirectToPage?.('signOut')) return { redirectToPage: 'signOut' as const };\n return <SignOut\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n if (shouldRedirectToPage?.('oauthCallback')) return { redirectToPage: 'oauthCallback' as const };\n return <OAuthCallback\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n if (shouldRedirectToPage?.('magicLinkCallback')) return { redirectToPage: 'magicLinkCallback' as const };\n return <MagicLinkCallback\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n if (shouldRedirectToPage?.('teamInvitation')) return { redirectToPage: 'teamInvitation' as const };\n return <TeamInvitation\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ErrorPage)}\n />;\n }\n case availablePaths.cliAuthConfirm: {\n if (shouldRedirectToPage?.('cliAuthConfirm')) return { redirectToPage: 'cliAuthConfirm' as const };\n return <CliAuthConfirmation\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.CliAuthConfirmation)}\n />;\n }\n case availablePaths.mfa: {\n if (shouldRedirectToPage?.('mfa')) return { redirectToPage: 'mfa' as const };\n return <MFA\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MFA)}\n />;\n }\n case availablePaths.onboarding: {\n if (shouldRedirectToPage?.('onboarding')) return { redirectToPage: 'onboarding' as const };\n return <Onboarding\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.Onboarding)}\n />;\n }\n default: {\n if (Object.values(availablePaths).includes(path as any)) {\n throw new HexclaveAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });\n }\n for (const [key, value] of Object.entries(pathAliases)) {\n if (path.toLowerCase().replaceAll('-', '') === key.toLowerCase().replaceAll('-', '')) {\n const redirectUrl = `${app[hexclaveAppInternalsSymbol].getUrls().handler}/${value}?${new URLSearchParams(searchParams).toString()}`;\n return { redirect: redirectUrl };\n }\n }\n const defaultUnknownPathUrl = getDefaultUnknownPathUrl?.(path);\n if (defaultUnknownPathUrl != null) {\n const defaultUnknownPathUrlObject = new URL(defaultUnknownPathUrl, \"http://example.com\");\n for (const [key, value] of Object.entries(searchParams)) {\n defaultUnknownPathUrlObject.searchParams.set(key, value);\n }\n return { redirect: toAbsoluteOrRelativeRedirectTarget(defaultUnknownPathUrlObject) };\n }\n return onNotFound();\n }\n }\n}\n\nexport async function getRedirectToPageResult(\n app: StackClientApp,\n redirectToPage: keyof HandlerUrls,\n): Promise<RedirectToPageResult> {\n try {\n await app[hexclaveAppInternalsSymbol].redirectToHandler(redirectToPage, { replace: true });\n return { status: \"success\" };\n } catch (e) {\n if (KnownError.isKnownError(e)) {\n return { status: \"known-error\", error: e };\n }\n captureError(\"<HexclaveHandlerClient redirectToPage />\", e);\n return { status: \"unknown-error\" };\n }\n}\n\nfunction RedirectToPage(props: {\n app: StackClientApp,\n fullPage?: boolean,\n redirectToPage: keyof HandlerUrls,\n}) {\n const redirectResultPromise = useMemo(\n () => getRedirectToPageResult(props.app, props.redirectToPage),\n [props.app, props.redirectToPage],\n );\n\n const redirectResult = use(redirectResultPromise);\n if (redirectResult.status === \"known-error\") {\n return <KnownErrorMessageCard error={redirectResult.error} fullPage={props.fullPage} />;\n }\n if (redirectResult.status === \"unknown-error\") {\n return <PredefinedMessageCard type=\"unknownError\" fullPage={props.fullPage} />;\n }\n return <MessageCard title=\"Redirecting...\" fullPage={props.fullPage} />;\n}\n\nexport function HexclaveHandlerClient(props: BaseHandlerProps & Partial<RouteProps> & { location?: string }) {\n // Use hooks to get app\n const hexclaveApp = useStackApp();\n const handlerUrls = hexclaveApp[hexclaveAppInternalsSymbol].getUrls();\n const clientOrigin = useClientOriginAfterHydration();\n\n const pathname = usePathname();\n const searchParamsFromHook = useSearchParams();\n const currentLocation = pathname;\n const searchParamsSource = searchParamsFromHook;\n\n const { path, searchParams, handlerPath } = useMemo(() => {\n const handlerPath = new URL(handlerUrls.handler, 'http://example.com').pathname;\n const relativePath = currentLocation.startsWith(handlerPath)\n ? currentLocation.slice(handlerPath.length).replace(/^\\/+/, '')\n : currentLocation.replace(/^\\/+/, '');\n\n return {\n path: relativePath,\n searchParams: Object.fromEntries(searchParamsSource.entries()),\n handlerPath,\n };\n }, [currentLocation, searchParamsSource, handlerUrls.handler]);\n\n const getDefaultUnknownPathUrl = (unknownPath: string): string | null => {\n return resolveUnknownHandlerPathFallbackUrl({\n defaultTarget: hexclaveApp[hexclaveAppInternalsSymbol].getConstructorOptions().urls?.default,\n projectId: hexclaveApp.projectId,\n unknownPath,\n });\n };\n\n const shouldRedirectToPage = (name: keyof HandlerUrls): boolean => {\n const url = handlerUrls[name];\n const isCrossDomainLocalOauthCallback = name === \"oauthCallback\" && searchParams.hexclave_cross_domain_auth === \"1\";\n if (isCrossDomainLocalOauthCallback) {\n return false;\n }\n return !isLocalHandlerUrlTarget({\n targetUrl: url,\n handlerPath,\n currentOrigin: clientOrigin,\n });\n };\n\n const result = renderComponent({\n path,\n searchParams,\n fullPage: props.fullPage,\n componentProps: props.componentProps,\n shouldRedirectToPage,\n getDefaultUnknownPathUrl,\n onNotFound: () =>\n notFound()\n ,\n app: hexclaveApp,\n });\n\n const redirectToPage = (result != null && typeof result === 'object' && 'redirectToPage' in result) ? result.redirectToPage : undefined;\n\n if (redirectToPage != null) {\n return (\n <Suspense fallback={<MessageCard title=\"Redirecting...\" fullPage={props.fullPage} />}>\n <RedirectToPage app={hexclaveApp} redirectToPage={redirectToPage} fullPage={props.fullPage} />\n </Suspense>\n );\n }\n\n if (result && 'redirect' in result) {\n redirect(result.redirect, RedirectType.replace);\n }\n\n\n return result;\n}\n\n// filter undefined values in object. if object itself is undefined, return undefined\nfunction filterUndefinedINU<T extends {}>(value: T | undefined): FilterUndefined<T> | undefined {\n return value === undefined ? value : filterUndefined(value);\n}\n\nfunction toAbsoluteOrRelativeRedirectTarget(url: URL): string {\n return url.origin === \"http://example.com\" ? getRelativePart(url) : url.toString();\n}\n\nfunction useClientOriginAfterHydration(): string | undefined {\n // The first hydrated render must match SSR. After hydration, React re-checks\n // the snapshot and lets us distinguish same-path cross-origin handler URLs.\n return useSyncExternalStore(\n () => () => {},\n () => window.location.origin,\n () => undefined,\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hexclave-handler-client.js","names":["SignIn","SignUp","EmailVerification","PasswordReset","ForgotPassword","SignOut","OAuthCallback","MagicLinkCallback","TeamInvitation","AccountSettings","ErrorPage","CliAuthConfirmation","MFA","Onboarding","HexclaveAssertionError","hexclaveAppInternalsSymbol","KnownError","KnownErrorMessageCard","PredefinedMessageCard","MessageCard","Suspense","RedirectType"],"sources":["../../src/components-page/hexclave-handler-client.tsx"],"sourcesContent":["\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { KnownError } from \"@hexclave/shared\";\nimport { captureError, HexclaveAssertionError } from \"@hexclave/shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined } from \"@hexclave/shared/dist/utils/objects\";\nimport { use } from \"@hexclave/shared/dist/utils/react\";\nimport { getRelativePart } from \"@hexclave/shared/dist/utils/urls\";\nimport { notFound, redirect, RedirectType, usePathname, useSearchParams } from 'next/navigation'; // THIS_LINE_PLATFORM next\nimport { Suspense, useMemo, useSyncExternalStore } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { HandlerUrls, StackClientApp, hexclaveAppInternalsSymbol } from \"../lib/hexclave-app\";\nimport { isLocalHandlerUrlTarget, resolveUnknownHandlerPathFallbackUrl } from \"../lib/hexclave-app/url-targets\";\nimport { AccountSettings } from \"./account-settings\";\nimport { CliAuthConfirmation } from \"./cli-auth-confirm\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { MFA } from \"./mfa\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { Onboarding } from \"./onboarding\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\nimport { KnownErrorMessageCard } from \"../components/message-cards/known-error-message-card\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { PredefinedMessageCard } from \"../components/message-cards/predefined-message-card\";\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n CliAuthConfirmation: typeof CliAuthConfirmation,\n MFA: typeof MFA,\n Onboarding: typeof Onboarding,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\ntype RedirectToPageResult =\n | { status: \"success\" }\n | { status: \"known-error\", error: KnownError }\n | { status: \"unknown-error\" };\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n cliAuthConfirm: 'cli-auth-confirm',\n mfa: 'mfa',\n error: 'error',\n onboarding: 'onboarding',\n} as const;\n\nconst placeholderOrigin = \"http://example.com\";\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\nexport type BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n shouldRedirectToPage?: (name: keyof HandlerUrls) => boolean,\n getDefaultUnknownPathUrl?: (path: string) => string | null,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, shouldRedirectToPage, getDefaultUnknownPathUrl, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n if (shouldRedirectToPage?.('signIn')) return { redirectToPage: 'signIn' as const };\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n if (shouldRedirectToPage?.('signUp')) return { redirectToPage: 'signUp' as const };\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n if (shouldRedirectToPage?.('emailVerification')) return { redirectToPage: 'emailVerification' as const };\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n if (shouldRedirectToPage?.('passwordReset')) return { redirectToPage: 'passwordReset' as const };\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n if (shouldRedirectToPage?.('forgotPassword')) return { redirectToPage: 'forgotPassword' as const };\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ForgotPassword)}\n />;\n }\n case availablePaths.signOut: {\n if (shouldRedirectToPage?.('signOut')) return { redirectToPage: 'signOut' as const };\n return <SignOut\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.SignOut)}\n />;\n }\n case availablePaths.oauthCallback: {\n if (shouldRedirectToPage?.('oauthCallback')) return { redirectToPage: 'oauthCallback' as const };\n return <OAuthCallback\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.OAuthCallback)}\n />;\n }\n case availablePaths.magicLinkCallback: {\n if (shouldRedirectToPage?.('magicLinkCallback')) return { redirectToPage: 'magicLinkCallback' as const };\n return <MagicLinkCallback\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MagicLinkCallback)}\n />;\n }\n case availablePaths.teamInvitation: {\n if (shouldRedirectToPage?.('teamInvitation')) return { redirectToPage: 'teamInvitation' as const };\n return <TeamInvitation\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.TeamInvitation)}\n />;\n }\n case availablePaths.accountSettings: {\n return <AccountSettings\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.AccountSettings)}\n />;\n }\n case availablePaths.error: {\n return <ErrorPage\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.ErrorPage)}\n />;\n }\n case availablePaths.cliAuthConfirm: {\n if (shouldRedirectToPage?.('cliAuthConfirm')) return { redirectToPage: 'cliAuthConfirm' as const };\n return <CliAuthConfirmation\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.CliAuthConfirmation)}\n />;\n }\n case availablePaths.mfa: {\n if (shouldRedirectToPage?.('mfa')) return { redirectToPage: 'mfa' as const };\n return <MFA\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.MFA)}\n />;\n }\n case availablePaths.onboarding: {\n if (shouldRedirectToPage?.('onboarding')) return { redirectToPage: 'onboarding' as const };\n return <Onboarding\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.Onboarding)}\n />;\n }\n default: {\n if (Object.values(availablePaths).includes(path as any)) {\n throw new HexclaveAssertionError(`Path alias ${path} not included in switch statement, but in availablePaths?`, { availablePaths });\n }\n for (const [key, value] of Object.entries(pathAliases)) {\n if (path.toLowerCase().replaceAll('-', '') === key.toLowerCase().replaceAll('-', '')) {\n const redirectUrl = `${app[hexclaveAppInternalsSymbol].getUrls().handler}/${value}?${new URLSearchParams(searchParams).toString()}`;\n return { redirect: redirectUrl };\n }\n }\n const defaultUnknownPathUrl = getDefaultUnknownPathUrl?.(path);\n if (defaultUnknownPathUrl != null) {\n const defaultUnknownPathUrlObject = new URL(defaultUnknownPathUrl, \"http://example.com\");\n for (const [key, value] of Object.entries(searchParams)) {\n defaultUnknownPathUrlObject.searchParams.set(key, value);\n }\n return { redirect: toAbsoluteOrRelativeRedirectTarget(defaultUnknownPathUrlObject) };\n }\n return onNotFound();\n }\n }\n}\n\nexport async function getRedirectToPageResult(\n app: StackClientApp,\n redirectToPage: keyof HandlerUrls,\n): Promise<RedirectToPageResult> {\n try {\n await app[hexclaveAppInternalsSymbol].redirectToHandler(redirectToPage, { replace: true });\n return { status: \"success\" };\n } catch (e) {\n if (KnownError.isKnownError(e)) {\n return { status: \"known-error\", error: e };\n }\n captureError(\"<HexclaveHandlerClient redirectToPage />\", e);\n return { status: \"unknown-error\" };\n }\n}\n\nfunction RedirectToPage(props: {\n app: StackClientApp,\n fullPage?: boolean,\n redirectToPage: keyof HandlerUrls,\n}) {\n const redirectResultPromise = useMemo(\n () => getRedirectToPageResult(props.app, props.redirectToPage),\n [props.app, props.redirectToPage],\n );\n\n const redirectResult = use(redirectResultPromise);\n if (redirectResult.status === \"known-error\") {\n return <KnownErrorMessageCard error={redirectResult.error} fullPage={props.fullPage} />;\n }\n if (redirectResult.status === \"unknown-error\") {\n return <PredefinedMessageCard type=\"unknownError\" fullPage={props.fullPage} />;\n }\n return <MessageCard title=\"Redirecting...\" fullPage={props.fullPage} />;\n}\n\nexport function HexclaveHandlerClient(props: BaseHandlerProps & Partial<RouteProps> & { location?: string }) {\n // Use hooks to get app\n const hexclaveApp = useStackApp();\n const handlerUrls = hexclaveApp[hexclaveAppInternalsSymbol].getUrls();\n const clientOrigin = useClientOriginAfterHydration();\n\n const pathname = usePathname();\n const searchParamsFromHook = useSearchParams();\n const currentLocation = pathname;\n const searchParamsSource = searchParamsFromHook;\n\n const { path, searchParams, handlerPath } = useMemo(() => {\n const handlerPath = new URL(handlerUrls.handler, 'http://example.com').pathname;\n const relativePath = currentLocation.startsWith(handlerPath)\n ? currentLocation.slice(handlerPath.length).replace(/^\\/+/, '')\n : currentLocation.replace(/^\\/+/, '');\n\n return {\n path: relativePath,\n searchParams: Object.fromEntries(searchParamsSource.entries()),\n handlerPath,\n };\n }, [currentLocation, searchParamsSource, handlerUrls.handler]);\n\n const getDefaultUnknownPathUrl = (unknownPath: string): string | null => {\n return resolveUnknownHandlerPathFallbackUrl({\n defaultTarget: hexclaveApp[hexclaveAppInternalsSymbol].getConstructorOptions().urls?.default,\n projectId: hexclaveApp.projectId,\n unknownPath,\n });\n };\n\n const shouldRedirectToPage = (name: keyof HandlerUrls): boolean => {\n const url = handlerUrls[name];\n const isCrossDomainLocalOauthCallback = name === \"oauthCallback\" && searchParams.hexclave_cross_domain_auth === \"1\";\n if (isCrossDomainLocalOauthCallback) {\n return false;\n }\n return !isLocalHandlerUrlTarget({\n targetUrl: url,\n handlerPath,\n currentOrigin: clientOrigin,\n });\n };\n\n const result = renderComponent({\n path,\n searchParams,\n fullPage: props.fullPage,\n componentProps: props.componentProps,\n shouldRedirectToPage,\n getDefaultUnknownPathUrl,\n onNotFound: () =>\n notFound()\n ,\n app: hexclaveApp,\n });\n\n const redirectToPage = (result != null && typeof result === 'object' && 'redirectToPage' in result) ? result.redirectToPage : undefined;\n\n if (redirectToPage != null) {\n return (\n <Suspense fallback={<MessageCard title=\"Redirecting...\" fullPage={props.fullPage} />}>\n <RedirectToPage app={hexclaveApp} redirectToPage={redirectToPage} fullPage={props.fullPage} />\n </Suspense>\n );\n }\n\n if (result && 'redirect' in result) {\n redirect(result.redirect, RedirectType.replace);\n }\n\n\n return result;\n}\n\n// filter undefined values in object. if object itself is undefined, return undefined\nfunction filterUndefinedINU<T extends {}>(value: T | undefined): FilterUndefined<T> | undefined {\n return value === undefined ? value : filterUndefined(value);\n}\n\nfunction toAbsoluteOrRelativeRedirectTarget(url: URL): string {\n return url.origin === \"http://example.com\" ? getRelativePart(url) : url.toString();\n}\n\nfunction useClientOriginAfterHydration(): string | undefined {\n // The first hydrated render must match SSR. After hydration, React re-checks\n // the snapshot and lets us distinguish same-path cross-origin handler URLs.\n return useSyncExternalStore(\n () => () => {},\n () => window.location.origin,\n () => undefined,\n );\n}\n"],"mappings":"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"}