@hexclave/next 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (837) hide show
  1. package/dist/components/api-key-dialogs.d.ts +1 -1
  2. package/dist/components/api-key-dialogs.js.map +1 -1
  3. package/dist/components/api-key-table.d.ts +1 -1
  4. package/dist/components/api-key-table.js.map +1 -1
  5. package/dist/components/credential-sign-in.js.map +1 -1
  6. package/dist/components/credential-sign-up.js.map +1 -1
  7. package/dist/components/elements/form-warning.js.map +1 -1
  8. package/dist/components/elements/maybe-full-page.js.map +1 -1
  9. package/dist/components/elements/separator-with-text.js.map +1 -1
  10. package/dist/components/elements/sidebar-layout.js.map +1 -1
  11. package/dist/components/elements/ssr-layout-effect.js.map +1 -1
  12. package/dist/components/elements/user-avatar.js.map +1 -1
  13. package/dist/components/link.js.map +1 -1
  14. package/dist/components/magic-link-sign-in.js +2 -2
  15. package/dist/components/magic-link-sign-in.js.map +1 -1
  16. package/dist/components/message-cards/known-error-message-card.js +2 -2
  17. package/dist/components/message-cards/known-error-message-card.js.map +1 -1
  18. package/dist/components/message-cards/message-card.js.map +1 -1
  19. package/dist/components/message-cards/predefined-message-card.js +9 -9
  20. package/dist/components/message-cards/predefined-message-card.js.map +1 -1
  21. package/dist/components/oauth-button-group.js +2 -2
  22. package/dist/components/oauth-button-group.js.map +1 -1
  23. package/dist/components/oauth-button.js +2 -2
  24. package/dist/components/oauth-button.js.map +1 -1
  25. package/dist/components/passkey-button.js +2 -2
  26. package/dist/components/passkey-button.js.map +1 -1
  27. package/dist/components/profile-image-editor.js.map +1 -1
  28. package/dist/components/selected-team-switcher.d.ts +1 -1
  29. package/dist/components/selected-team-switcher.js.map +1 -1
  30. package/dist/components/team-icon.d.ts +1 -1
  31. package/dist/components/team-icon.js.map +1 -1
  32. package/dist/components/team-switcher.d.ts +1 -1
  33. package/dist/components/team-switcher.js.map +1 -1
  34. package/dist/components/use-in-iframe.js.map +1 -1
  35. package/dist/components/user-button.js.map +1 -1
  36. package/dist/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  37. package/dist/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  38. package/dist/components-page/account-settings/editable-text.js.map +1 -1
  39. package/dist/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  40. package/dist/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  41. package/dist/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  42. package/dist/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  43. package/dist/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  44. package/dist/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  45. package/dist/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  46. package/dist/components-page/account-settings/page-layout.js.map +1 -1
  47. package/dist/components-page/account-settings/payments/payments-page.d.ts +1 -1
  48. package/dist/components-page/account-settings/payments/payments-page.js.map +1 -1
  49. package/dist/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  50. package/dist/components-page/account-settings/payments/payments-panel.js +3 -3
  51. package/dist/components-page/account-settings/payments/payments-panel.js.map +1 -1
  52. package/dist/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  53. package/dist/components-page/account-settings/section.js.map +1 -1
  54. package/dist/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  55. package/dist/components-page/account-settings/settings/settings-page.js.map +1 -1
  56. package/dist/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  57. package/dist/components-page/account-settings/teams/leave-team-section.d.ts +1 -1
  58. package/dist/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  59. package/dist/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  60. package/dist/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  61. package/dist/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  62. package/dist/components-page/account-settings/teams/team-display-name-section.d.ts +1 -1
  63. package/dist/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  64. package/dist/components-page/account-settings/teams/team-member-invitation-section.d.ts +1 -1
  65. package/dist/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  66. package/dist/components-page/account-settings/teams/team-member-list-section.d.ts +1 -1
  67. package/dist/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  68. package/dist/components-page/account-settings/teams/team-page.d.ts +1 -1
  69. package/dist/components-page/account-settings/teams/team-page.js.map +1 -1
  70. package/dist/components-page/account-settings/teams/team-profile-image-section.d.ts +1 -1
  71. package/dist/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  72. package/dist/components-page/account-settings/teams/team-profile-user-section.d.ts +1 -1
  73. package/dist/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  74. package/dist/components-page/account-settings.js.map +1 -1
  75. package/dist/components-page/auth-page.d.ts.map +1 -1
  76. package/dist/components-page/auth-page.js +55 -10
  77. package/dist/components-page/auth-page.js.map +1 -1
  78. package/dist/components-page/cli-auth-confirm.js +3 -3
  79. package/dist/components-page/cli-auth-confirm.js.map +1 -1
  80. package/dist/components-page/cli-auth-confirm.test.js +4 -4
  81. package/dist/components-page/cli-auth-confirm.test.js.map +1 -1
  82. package/dist/components-page/email-verification.js +4 -4
  83. package/dist/components-page/email-verification.js.map +1 -1
  84. package/dist/components-page/error-page.js +9 -9
  85. package/dist/components-page/error-page.js.map +1 -1
  86. package/dist/components-page/forgot-password.js +4 -4
  87. package/dist/components-page/forgot-password.js.map +1 -1
  88. package/dist/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  89. package/dist/components-page/hexclave-handler-client.d.ts.map +1 -0
  90. package/dist/components-page/{stack-handler-client.js → hexclave-handler-client.js} +19 -18
  91. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  92. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  93. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  94. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  95. package/dist/components-page/hexclave-handler.js.map +1 -0
  96. package/dist/components-page/magic-link-callback.js +7 -7
  97. package/dist/components-page/magic-link-callback.js.map +1 -1
  98. package/dist/components-page/mfa.js +4 -4
  99. package/dist/components-page/mfa.js.map +1 -1
  100. package/dist/components-page/oauth-callback.js +3 -3
  101. package/dist/components-page/oauth-callback.js.map +1 -1
  102. package/dist/components-page/onboarding.js +3 -3
  103. package/dist/components-page/onboarding.js.map +1 -1
  104. package/dist/components-page/password-reset.js +8 -8
  105. package/dist/components-page/password-reset.js.map +1 -1
  106. package/dist/components-page/sign-in.js.map +1 -1
  107. package/dist/components-page/sign-out.d.ts +1 -0
  108. package/dist/components-page/sign-out.d.ts.map +1 -1
  109. package/dist/components-page/sign-out.js +11 -5
  110. package/dist/components-page/sign-out.js.map +1 -1
  111. package/dist/components-page/sign-up.js.map +1 -1
  112. package/dist/components-page/team-creation.js.map +1 -1
  113. package/dist/components-page/team-invitation.js +16 -16
  114. package/dist/components-page/team-invitation.js.map +1 -1
  115. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  116. package/dist/dev-tool/dev-tool-core.js +11 -11
  117. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  118. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  119. package/dist/dev-tool/dev-tool-styles.js +371 -371
  120. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  121. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  122. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  123. package/dist/dev-tool/index.d.ts +4 -4
  124. package/dist/dev-tool/index.js +4 -4
  125. package/dist/dev-tool/index.js.map +1 -1
  126. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  127. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  128. package/dist/esm/components/api-key-table.d.ts +1 -1
  129. package/dist/esm/components/api-key-table.js.map +1 -1
  130. package/dist/esm/components/credential-sign-in.js.map +1 -1
  131. package/dist/esm/components/credential-sign-up.js.map +1 -1
  132. package/dist/esm/components/elements/form-warning.js.map +1 -1
  133. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  134. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  135. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  136. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  137. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  138. package/dist/esm/components/link.js.map +1 -1
  139. package/dist/esm/components/magic-link-sign-in.js +2 -2
  140. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  141. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  142. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  143. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  144. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  145. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  146. package/dist/esm/components/oauth-button-group.js +2 -2
  147. package/dist/esm/components/oauth-button-group.js.map +1 -1
  148. package/dist/esm/components/oauth-button.js +2 -2
  149. package/dist/esm/components/oauth-button.js.map +1 -1
  150. package/dist/esm/components/passkey-button.js +2 -2
  151. package/dist/esm/components/passkey-button.js.map +1 -1
  152. package/dist/esm/components/profile-image-editor.js.map +1 -1
  153. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  154. package/dist/esm/components/team-icon.js.map +1 -1
  155. package/dist/esm/components/team-switcher.js.map +1 -1
  156. package/dist/esm/components/use-in-iframe.js.map +1 -1
  157. package/dist/esm/components/user-button.js.map +1 -1
  158. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  159. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  160. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  171. package/dist/esm/components-page/account-settings/payments/payments-panel.js +3 -3
  172. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  173. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  174. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  175. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  180. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  188. package/dist/esm/components-page/account-settings.js.map +1 -1
  189. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  190. package/dist/esm/components-page/auth-page.js +56 -11
  191. package/dist/esm/components-page/auth-page.js.map +1 -1
  192. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  193. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  194. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  195. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  196. package/dist/esm/components-page/email-verification.js +4 -4
  197. package/dist/esm/components-page/email-verification.js.map +1 -1
  198. package/dist/esm/components-page/error-page.js +9 -9
  199. package/dist/esm/components-page/error-page.js.map +1 -1
  200. package/dist/esm/components-page/forgot-password.js +4 -4
  201. package/dist/esm/components-page/forgot-password.js.map +1 -1
  202. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +4 -4
  203. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  204. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +17 -16
  205. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  206. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  207. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  208. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  209. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  210. package/dist/esm/components-page/magic-link-callback.js +7 -7
  211. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  212. package/dist/esm/components-page/mfa.js +4 -4
  213. package/dist/esm/components-page/mfa.js.map +1 -1
  214. package/dist/esm/components-page/oauth-callback.js +3 -3
  215. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  216. package/dist/esm/components-page/onboarding.js +3 -3
  217. package/dist/esm/components-page/onboarding.js.map +1 -1
  218. package/dist/esm/components-page/password-reset.js +8 -8
  219. package/dist/esm/components-page/password-reset.js.map +1 -1
  220. package/dist/esm/components-page/sign-in.js.map +1 -1
  221. package/dist/esm/components-page/sign-out.d.ts +1 -0
  222. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  223. package/dist/esm/components-page/sign-out.js +11 -5
  224. package/dist/esm/components-page/sign-out.js.map +1 -1
  225. package/dist/esm/components-page/sign-up.js.map +1 -1
  226. package/dist/esm/components-page/team-creation.js.map +1 -1
  227. package/dist/esm/components-page/team-invitation.js +16 -16
  228. package/dist/esm/components-page/team-invitation.js.map +1 -1
  229. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  230. package/dist/esm/dev-tool/dev-tool-core.js +10 -10
  231. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  232. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  233. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  234. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  235. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  236. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  237. package/dist/esm/dev-tool/index.d.ts +4 -4
  238. package/dist/esm/dev-tool/index.js +4 -4
  239. package/dist/esm/dev-tool/index.js.map +1 -1
  240. package/dist/esm/generated/global-css.d.ts +1 -1
  241. package/dist/esm/generated/global-css.js +1 -1
  242. package/dist/esm/generated/global-css.js.map +1 -1
  243. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  244. package/dist/esm/index.d.ts +4 -4
  245. package/dist/esm/index.js +3 -3
  246. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  247. package/dist/esm/integrations/convex.js +1 -1
  248. package/dist/esm/integrations/convex.js.map +1 -1
  249. package/dist/esm/lib/auth.js.map +1 -1
  250. package/dist/esm/lib/auth.test.js.map +1 -1
  251. package/dist/esm/lib/cookie.js +2 -2
  252. package/dist/esm/lib/cookie.js.map +1 -1
  253. package/dist/esm/lib/env.js.map +1 -1
  254. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  255. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  256. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  257. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  258. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  259. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  260. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  261. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  262. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  263. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  264. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  265. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  266. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +23 -30
  267. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  268. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  269. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  270. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  271. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  272. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +7 -7
  273. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  274. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  275. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  276. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  277. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  278. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  279. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  280. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  281. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  282. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  283. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  284. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  285. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  286. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  287. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  288. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  289. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  290. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  291. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  292. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  293. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  294. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  295. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  296. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  297. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  298. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  299. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  300. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  301. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  302. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  303. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  304. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  305. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  306. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  307. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  308. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  309. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  310. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  311. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  312. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  313. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  314. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  315. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  316. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  317. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  318. package/dist/esm/lib/hexclave-app/common.js +7 -0
  319. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  320. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  321. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  322. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  323. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  324. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  325. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  326. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  327. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  328. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  329. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  330. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email/index.d.ts +1 -1
  331. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  332. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  333. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  334. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  335. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  336. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  337. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  338. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  339. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  340. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  341. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  342. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  343. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  344. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  345. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  346. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  347. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  348. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  349. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  350. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  351. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  352. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  353. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  354. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  355. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  356. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  357. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  358. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  359. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  360. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  361. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  362. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  363. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  364. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  365. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  366. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  367. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  368. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  369. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  370. package/dist/esm/lib/hooks.d.ts +1 -1
  371. package/dist/esm/lib/hooks.js +9 -9
  372. package/dist/esm/lib/hooks.js.map +1 -1
  373. package/dist/esm/lib/translations.js.map +1 -1
  374. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  375. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  376. package/dist/esm/providers/hexclave-context.js +12 -0
  377. package/dist/esm/providers/hexclave-context.js.map +1 -0
  378. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  379. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  380. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  381. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  382. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  383. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  384. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  385. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  386. package/dist/esm/providers/theme-provider.js.map +1 -1
  387. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  388. package/dist/esm/providers/translation-provider.js.map +1 -1
  389. package/dist/esm/tanstack-start-server-context.d.ts +1 -1
  390. package/dist/esm/utils/browser-script.js.map +1 -1
  391. package/dist/esm/utils/constants.js.map +1 -1
  392. package/dist/esm/utils/url.js.map +1 -1
  393. package/dist/generated/global-css.d.ts +1 -1
  394. package/dist/generated/global-css.js +1 -1
  395. package/dist/generated/global-css.js.map +1 -1
  396. package/dist/generated/quetzal-translations.js.map +1 -1
  397. package/dist/index.d.ts +18 -18
  398. package/dist/index.js +9 -9
  399. package/dist/integrations/convex/component/convex.config.d.ts +2 -2
  400. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  401. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  402. package/dist/integrations/convex.js +2 -2
  403. package/dist/integrations/convex.js.map +1 -1
  404. package/dist/lib/auth.js.map +1 -1
  405. package/dist/lib/auth.test.js.map +1 -1
  406. package/dist/lib/cookie.js +2 -2
  407. package/dist/lib/cookie.js.map +1 -1
  408. package/dist/lib/env.js.map +1 -1
  409. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  410. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  411. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  412. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  413. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  414. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  415. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  416. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  417. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.js +2 -2
  418. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  419. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +13 -13
  420. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  421. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +22 -29
  422. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  423. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  424. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  425. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts +4 -4
  426. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/common.d.ts.map +1 -1
  427. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +6 -6
  428. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  429. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  430. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  432. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  433. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  434. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  435. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  436. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  437. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  438. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  439. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  440. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  442. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  444. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +5 -5
  446. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  447. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  448. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  449. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  450. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  451. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  452. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  453. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  454. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  456. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  458. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  459. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  460. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  461. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  462. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  463. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  464. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  465. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  466. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  467. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +2 -2
  468. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  469. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  470. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  471. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +8 -8
  472. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  473. package/dist/lib/hexclave-app/common.js +9 -0
  474. package/dist/lib/hexclave-app/common.js.map +1 -0
  475. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  476. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  477. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  478. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  479. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  480. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  481. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  482. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  483. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  484. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  485. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts +1 -1
  486. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  487. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  488. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  489. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  490. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  491. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  492. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  493. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  494. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  495. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  496. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  497. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  498. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  500. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  501. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  502. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  503. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  504. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  505. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  506. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  507. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  508. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  509. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  510. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  511. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  512. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  513. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  514. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  515. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  516. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  517. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +2 -2
  518. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  519. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +1 -1
  520. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  521. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  522. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  523. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  524. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  525. package/dist/lib/hooks.d.ts +3 -3
  526. package/dist/lib/hooks.d.ts.map +1 -1
  527. package/dist/lib/hooks.js +9 -9
  528. package/dist/lib/hooks.js.map +1 -1
  529. package/dist/lib/translations.js.map +1 -1
  530. package/dist/providers/hexclave-context.d.ts +11 -0
  531. package/dist/providers/hexclave-context.d.ts.map +1 -0
  532. package/dist/providers/hexclave-context.js +15 -0
  533. package/dist/providers/hexclave-context.js.map +1 -0
  534. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  535. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  536. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  537. package/dist/providers/hexclave-provider-client.js.map +1 -0
  538. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +5 -5
  539. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  540. package/dist/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  541. package/dist/providers/hexclave-provider.js.map +1 -0
  542. package/dist/providers/theme-provider.js.map +1 -1
  543. package/dist/providers/translation-provider-client.js.map +1 -1
  544. package/dist/providers/translation-provider.js.map +1 -1
  545. package/dist/{storage-kTmOAWHW.d.ts → storage-CKzvsBxG.d.ts} +18 -18
  546. package/dist/{storage-kTmOAWHW.d.ts.map → storage-CKzvsBxG.d.ts.map} +1 -1
  547. package/dist/tanstack-start-server-context.d.ts +1 -1
  548. package/dist/utils/browser-script.js.map +1 -1
  549. package/dist/utils/constants.js.map +1 -1
  550. package/dist/utils/url.js.map +1 -1
  551. package/package.json +6 -5
  552. package/src/components/api-key-dialogs.tsx +173 -0
  553. package/src/components/api-key-table.tsx +127 -0
  554. package/src/components/credential-sign-in.tsx +83 -0
  555. package/src/components/credential-sign-up.tsx +108 -0
  556. package/src/components/elements/form-warning.tsx +17 -0
  557. package/src/components/elements/maybe-full-page.tsx +60 -0
  558. package/src/components/elements/separator-with-text.tsx +22 -0
  559. package/src/components/elements/sidebar-layout.tsx +136 -0
  560. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  561. package/src/components/elements/user-avatar.tsx +32 -0
  562. package/src/components/link.tsx +40 -0
  563. package/src/components/magic-link-sign-in.tsx +143 -0
  564. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  565. package/src/components/message-cards/message-card.tsx +46 -0
  566. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  567. package/src/components/oauth-button-group.tsx +35 -0
  568. package/src/components/oauth-button.tsx +222 -0
  569. package/src/components/passkey-button.tsx +43 -0
  570. package/src/components/profile-image-editor.tsx +194 -0
  571. package/src/components/selected-team-switcher.tsx +97 -0
  572. package/src/components/team-icon.tsx +30 -0
  573. package/src/components/team-switcher.tsx +191 -0
  574. package/src/components/use-in-iframe.tsx +18 -0
  575. package/src/components/user-button.tsx +157 -0
  576. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  577. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  578. package/src/components-page/account-settings/editable-text.tsx +53 -0
  579. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  580. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  581. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  582. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  583. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  584. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  585. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  586. package/src/components-page/account-settings/page-layout.tsx +11 -0
  587. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  588. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  589. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  590. package/src/components-page/account-settings/section.tsx +26 -0
  591. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  592. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  593. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  594. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  595. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  596. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  597. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  598. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  599. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  600. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  601. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  602. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  603. package/src/components-page/account-settings.tsx +343 -0
  604. package/src/components-page/auth-page.tsx +206 -0
  605. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  606. package/src/components-page/cli-auth-confirm.tsx +278 -0
  607. package/src/components-page/email-verification.tsx +76 -0
  608. package/src/components-page/error-page.tsx +105 -0
  609. package/src/components-page/forgot-password.tsx +105 -0
  610. package/src/components-page/hexclave-handler-client.tsx +325 -0
  611. package/src/components-page/hexclave-handler.tsx +48 -0
  612. package/src/components-page/magic-link-callback.tsx +92 -0
  613. package/src/components-page/mfa.tsx +222 -0
  614. package/src/components-page/oauth-callback.tsx +78 -0
  615. package/src/components-page/onboarding.tsx +176 -0
  616. package/src/components-page/password-reset.tsx +185 -0
  617. package/src/components-page/section.tsx +27 -0
  618. package/src/components-page/sign-in.tsx +34 -0
  619. package/src/components-page/sign-out.tsx +37 -0
  620. package/src/components-page/sign-up.tsx +24 -0
  621. package/src/components-page/team-creation.tsx +78 -0
  622. package/src/components-page/team-invitation.tsx +150 -0
  623. package/src/dev-tool/dev-tool-core.ts +2460 -0
  624. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  625. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  626. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  627. package/src/dev-tool/index.ts +149 -0
  628. package/src/generated/.gitignore +3 -0
  629. package/src/generated/quetzal-translations.ts +4312 -0
  630. package/src/global.css +13 -0
  631. package/src/global.d.ts +5 -0
  632. package/src/index.ts +39 -0
  633. package/src/integrations/convex/component/README.md +74 -0
  634. package/src/integrations/convex/component/convex.config.ts +9 -0
  635. package/src/integrations/convex.ts +28 -0
  636. package/src/lib/auth.test.ts +67 -0
  637. package/src/lib/auth.ts +175 -0
  638. package/src/lib/cookie.ts +421 -0
  639. package/src/lib/env.ts +93 -0
  640. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  641. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  642. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +141 -0
  643. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  644. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3912 -0
  645. package/src/lib/hexclave-app/apps/implementations/common.ts +244 -0
  646. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  647. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  648. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  649. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  650. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  651. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  652. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  653. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  654. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  655. package/src/lib/hexclave-app/apps/index.ts +40 -0
  656. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  657. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  658. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  659. package/src/lib/hexclave-app/common.ts +216 -0
  660. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  661. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  662. package/src/lib/hexclave-app/customers/index.ts +158 -0
  663. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  664. package/src/lib/hexclave-app/email/index.ts +280 -0
  665. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  666. package/src/lib/hexclave-app/index.ts +146 -0
  667. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  668. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  669. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  670. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  671. package/src/lib/hexclave-app/projects/index.ts +236 -0
  672. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  673. package/src/lib/hexclave-app/teams/index.ts +206 -0
  674. package/src/lib/hexclave-app/url-targets.test.ts +253 -0
  675. package/src/lib/hexclave-app/url-targets.ts +395 -0
  676. package/src/lib/hexclave-app/users/index.ts +523 -0
  677. package/src/lib/hooks.tsx +63 -0
  678. package/src/lib/translations.tsx +23 -0
  679. package/src/providers/hexclave-context.tsx +20 -0
  680. package/src/providers/hexclave-provider-client.tsx +39 -0
  681. package/src/providers/hexclave-provider.tsx +48 -0
  682. package/src/providers/theme-provider.tsx +121 -0
  683. package/src/providers/translation-provider-client.tsx +35 -0
  684. package/src/providers/translation-provider.tsx +25 -0
  685. package/src/tanstack-start-server-context.d.ts +13 -0
  686. package/src/utils/browser-script.tsx +135 -0
  687. package/src/utils/constants.tsx +58 -0
  688. package/src/utils/url.ts +24 -0
  689. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  690. package/dist/components-page/stack-handler-client.js.map +0 -1
  691. package/dist/components-page/stack-handler.d.ts.map +0 -1
  692. package/dist/components-page/stack-handler.js.map +0 -1
  693. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  694. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  695. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  696. package/dist/esm/components-page/stack-handler.js.map +0 -1
  697. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  698. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  699. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  700. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  701. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  702. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  703. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  704. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  705. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  706. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  707. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  708. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  709. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  710. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  711. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  712. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  713. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  714. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  715. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  716. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  717. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  718. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  720. package/dist/esm/lib/stack-app/common.js +0 -7
  721. package/dist/esm/lib/stack-app/common.js.map +0 -1
  722. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  723. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  724. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  725. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  726. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  727. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  728. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  729. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  730. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  731. package/dist/esm/providers/stack-context.d.ts +0 -11
  732. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  733. package/dist/esm/providers/stack-context.js +0 -12
  734. package/dist/esm/providers/stack-context.js.map +0 -1
  735. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  736. package/dist/esm/providers/stack-provider-client.js +0 -30
  737. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  738. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  739. package/dist/esm/providers/stack-provider.js.map +0 -1
  740. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  741. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  742. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  743. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  744. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  745. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  746. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  747. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  748. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  749. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  750. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  751. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  752. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  753. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  754. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  755. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  756. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  757. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  758. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  759. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  760. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  761. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  762. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  763. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  764. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  765. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  766. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  767. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  768. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  769. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  770. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  771. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  772. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  773. package/dist/lib/stack-app/common.d.ts.map +0 -1
  774. package/dist/lib/stack-app/common.js +0 -9
  775. package/dist/lib/stack-app/common.js.map +0 -1
  776. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  777. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  778. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  779. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  780. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  781. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  782. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  783. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  784. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  785. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  786. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  787. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  788. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  789. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  790. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  791. package/dist/lib/stack-app/projects/index.js.map +0 -1
  792. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  793. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  794. package/dist/lib/stack-app/teams/index.js.map +0 -1
  795. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  796. package/dist/lib/stack-app/url-targets.js.map +0 -1
  797. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  798. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  799. package/dist/lib/stack-app/users/index.js.map +0 -1
  800. package/dist/providers/stack-context.d.ts +0 -11
  801. package/dist/providers/stack-context.d.ts.map +0 -1
  802. package/dist/providers/stack-context.js +0 -15
  803. package/dist/providers/stack-context.js.map +0 -1
  804. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  805. package/dist/providers/stack-provider-client.js.map +0 -1
  806. package/dist/providers/stack-provider.d.ts.map +0 -1
  807. package/dist/providers/stack-provider.js.map +0 -1
  808. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  809. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  810. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  811. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  812. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  813. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  814. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  815. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  816. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  817. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  818. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  819. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  820. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  821. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  822. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  823. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  824. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  825. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  826. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  827. /package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  828. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  829. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  830. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  831. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  832. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  833. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  834. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  835. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  836. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  837. /package/dist/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","names":[],"sources":["../../src/lib/env.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n/**\n * Centralized environment-variable reads for the SDK.\n *\n * Keep each key explicit and reference `process.env.KEY` directly so bundlers\n * like Next.js can inline values at build time.\n *\n * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and\n * falls back to the legacy STACK_* literal(s). Both operands stay literal\n * `process.env.X` references so bundlers can inline them. The port-prefix var\n * is a straight rename (no dual-read).\n */\nexport const envVars = {\n // Hexclave rebrand: port-prefix var renamed outright (no dual-read).\n get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_SECRET_SERVER_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : undefined) ?? undefined;\n },\n get STACK_SUPER_SECRET_ADMIN_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_BROWSER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_SERVER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : undefined) ?? undefined;\n },\n get STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : undefined) ?? undefined;\n },\n get NODE_ENV() {\n return (typeof process !== \"undefined\" ? process.env.NODE_ENV : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : undefined) ?? undefined;\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"env.js","names":[],"sources":["../../src/lib/env.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n/**\n * Centralized environment-variable reads for the SDK.\n *\n * Keep each key explicit and reference `process.env.KEY` directly so bundlers\n * like Next.js can inline values at build time.\n *\n * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and\n * falls back to the legacy STACK_* literal(s). Both operands stay literal\n * `process.env.X` references so bundlers can inline them. The port-prefix var\n * is a straight rename (no dual-read).\n */\nexport const envVars = {\n // Hexclave rebrand: port-prefix var renamed outright (no dual-read).\n get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_SECRET_SERVER_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : undefined) ?? undefined;\n },\n get STACK_SUPER_SECRET_ADMIN_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_BROWSER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_SERVER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : undefined) ?? undefined;\n },\n get STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : undefined) ?? undefined;\n },\n get NODE_ENV() {\n return (typeof process !== \"undefined\" ? process.env.NODE_ENV : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : undefined) ?? undefined;\n },\n};\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as yup from "yup";
2
- import { TeamApiKeysCrud, UserApiKeysCrud, teamApiKeysCreateInputSchema, userApiKeysCreateInputSchema } from "@hexclave/shared/dist/interface/crud/project-api-keys";
3
2
  import { IfAndOnlyIf, PrettifyType } from "@hexclave/shared/dist/utils/types";
3
+ import { TeamApiKeysCrud, UserApiKeysCrud, teamApiKeysCreateInputSchema, userApiKeysCreateInputSchema } from "@hexclave/shared/dist/interface/crud/project-api-keys";
4
4
 
5
- //#region src/lib/stack-app/api-keys/index.d.ts
5
+ //#region src/lib/hexclave-app/api-keys/index.d.ts
6
6
  type ApiKeyType = "user" | "team";
7
7
  type ApiKey<Type extends ApiKeyType = ApiKeyType, IsFirstView extends boolean = false> = {
8
8
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../../src/lib/stack-app/api-keys/index.ts"],"mappings":";;;;;KASY,UAAA;AAAA,KAEA,MAAA,cAAoB,UAAA,GAAa,UAAA;EAEvC,EAAA;EACA,WAAA;EACA,SAAA,GAAY,IAAA;EACZ,iBAAA,GAAoB,IAAA;EACpB,SAAA,EAAW,IAAA;EACX,KAAA,EAAO,WAAA,CAAY,WAAA;IAA6B,QAAA;EAAA;EAChD,MAAA,CAAO,OAAA,EAAS,mBAAA,CAAoB,IAAA,IAAQ,OAAA;EAC5C,MAAA,QAAc,OAAA;EACd,OAAA;EACA,UAAA;AAAA,qBAGgB,IAAA;EAAS,IAAA;EAAc,MAAA;AAAA,6BACvB,IAAA;EAAS,IAAA;EAAc,MAAA;AAAA;AAAA,KAGjC,mBAAA,GAAsB,YAAA,CAAa,MAAA;AAAA,KACnC,UAAA,GAAa,YAAA,CAAa,MAAA;AAAA,KAE1B,mBAAA,GAAsB,YAAA,CAAa,MAAA;AAAA,KACnC,UAAA,GAAa,YAAA,CAAa,MAAA;AAAA,KAE1B,qBAAA,cAAmC,UAAA,GAAa,UAAA;EAExD,WAAA;EACA,SAAA,EAAW,IAAA;EA3B0C;;;;EAgCrD,QAAA;AAAA;AAAA,iBAEY,2BAAA,CAA4B,IAAA,UAAc,MAAA,UAAgB,OAAA,EAAS,qBAAA,WAAgC,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,iBAChI,2BAAA,CAA4B,IAAA,UAAc,MAAA,UAAgB,OAAA,EAAS,qBAAA,WAAgC,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,iBAChI,2BAAA,CAA4B,IAAA,EAAM,UAAA,EAAY,cAAA,UAAwB,OAAA,EAAS,qBAAA,GAAwB,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA,IAAgC,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,KAW7L,mBAAA,cAAiC,UAAA,GAAa,UAAA;EACxD,WAAA;EACA,SAAA,GAAY,IAAA;EACZ,OAAA;AAAA;AAAA,iBAEc,yBAAA,CAA0B,IAAA,UAAc,OAAA,EAAS,mBAAA,WAA8B,OAAA,CAAQ,eAAA;AAAA,iBACvF,yBAAA,CAA0B,IAAA,UAAc,OAAA,EAAS,mBAAA,WAA8B,OAAA,CAAQ,eAAA;AAAA,iBACvF,yBAAA,CAA0B,IAAA,EAAM,UAAA,EAAY,OAAA,EAAS,mBAAA,GAAsB,OAAA,CAAQ,eAAA,uBAAsC,eAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/lib/hexclave-app/api-keys/index.ts"],"mappings":";;;;;KASY,UAAA;AAAA,KAEA,MAAA,cAAoB,UAAA,GAAa,UAAA;EAEvC,EAAA;EACA,WAAA;EACA,SAAA,GAAY,IAAA;EACZ,iBAAA,GAAoB,IAAA;EACpB,SAAA,EAAW,IAAA;EACX,KAAA,EAAO,WAAA,CAAY,WAAA;IAA6B,QAAA;EAAA;EAChD,MAAA,CAAO,OAAA,EAAS,mBAAA,CAAoB,IAAA,IAAQ,OAAA;EAC5C,MAAA,QAAc,OAAA;EACd,OAAA;EACA,UAAA;AAAA,qBAGgB,IAAA;EAAS,IAAA;EAAc,MAAA;AAAA,6BACvB,IAAA;EAAS,IAAA;EAAc,MAAA;AAAA;AAAA,KAGjC,mBAAA,GAAsB,YAAA,CAAa,MAAA;AAAA,KACnC,UAAA,GAAa,YAAA,CAAa,MAAA;AAAA,KAE1B,mBAAA,GAAsB,YAAA,CAAa,MAAA;AAAA,KACnC,UAAA,GAAa,YAAA,CAAa,MAAA;AAAA,KAE1B,qBAAA,cAAmC,UAAA,GAAa,UAAA;EAExD,WAAA;EACA,SAAA,EAAW,IAAA;EA3B0C;;;;EAgCrD,QAAA;AAAA;AAAA,iBAEY,2BAAA,CAA4B,IAAA,UAAc,MAAA,UAAgB,OAAA,EAAS,qBAAA,WAAgC,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,iBAChI,2BAAA,CAA4B,IAAA,UAAc,MAAA,UAAgB,OAAA,EAAS,qBAAA,WAAgC,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,iBAChI,2BAAA,CAA4B,IAAA,EAAM,UAAA,EAAY,cAAA,UAAwB,OAAA,EAAS,qBAAA,GAAwB,OAAA,CAAQ,GAAA,CAAI,SAAA,QAAiB,4BAAA,IAAgC,GAAA,CAAI,SAAA,QAAiB,4BAAA;AAAA,KAW7L,mBAAA,cAAiC,UAAA,GAAa,UAAA;EACxD,WAAA;EACA,SAAA,GAAY,IAAA;EACZ,OAAA;AAAA;AAAA,iBAEc,yBAAA,CAA0B,IAAA,UAAc,OAAA,EAAS,mBAAA,WAA8B,OAAA,CAAQ,eAAA;AAAA,iBACvF,yBAAA,CAA0B,IAAA,UAAc,OAAA,EAAS,mBAAA,WAA8B,OAAA,CAAQ,eAAA;AAAA,iBACvF,yBAAA,CAA0B,IAAA,EAAM,UAAA,EAAY,OAAA,EAAS,mBAAA,GAAsB,OAAA,CAAQ,eAAA,uBAAsC,eAAA"}
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_chunk = require('../../../chunk-BE-pF4vm.js');
3
3
  let _hexclave_shared_dist_utils_objects = require("@hexclave/shared/dist/utils/objects");
4
4
 
5
- //#region src/lib/stack-app/api-keys/index.ts
5
+ //#region src/lib/hexclave-app/api-keys/index.ts
6
6
  async function apiKeyCreationOptionsToCrud(type, userIdOrTeamId, options) {
7
7
  return {
8
8
  description: options.description,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/lib/hexclave-app/api-keys/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { TeamApiKeysCrud, UserApiKeysCrud, teamApiKeysCreateInputSchema, userApiKeysCreateInputSchema } from \"@hexclave/shared/dist/interface/crud/project-api-keys\";\nimport { filterUndefined } from \"@hexclave/shared/dist/utils/objects\";\nimport { IfAndOnlyIf, PrettifyType } from \"@hexclave/shared/dist/utils/types\";\nimport type * as yup from \"yup\";\n\nexport type ApiKeyType = \"user\" | \"team\";\n\nexport type ApiKey<Type extends ApiKeyType = ApiKeyType, IsFirstView extends boolean = false> =\n & {\n id: string,\n description: string,\n expiresAt?: Date,\n manuallyRevokedAt?: Date | null,\n createdAt: Date,\n value: IfAndOnlyIf<IsFirstView, true, string, { lastFour: string }>,\n update(options: ApiKeyUpdateOptions<Type>): Promise<void>,\n revoke: () => Promise<void>,\n isValid: () => boolean,\n whyInvalid: () => \"manually-revoked\" | \"expired\" | null,\n }\n & (\n | (\"user\" extends Type ? { type: \"user\", userId: string } : never)\n | (\"team\" extends Type ? { type: \"team\", teamId: string } : never)\n );\n\nexport type UserApiKeyFirstView = PrettifyType<ApiKey<\"user\", true>>;\nexport type UserApiKey = PrettifyType<ApiKey<\"user\", false>>;\n\nexport type TeamApiKeyFirstView = PrettifyType<ApiKey<\"team\", true>>;\nexport type TeamApiKey = PrettifyType<ApiKey<\"team\", false>>;\n\nexport type ApiKeyCreationOptions<Type extends ApiKeyType = ApiKeyType> =\n & {\n description: string,\n expiresAt: Date | null,\n /**\n * Whether the API key should be considered public. A public API key will not be detected by the secret scanner, which\n * automatically revokes API keys when it detects that they may have been exposed to the public.\n */\n isPublic?: boolean,\n };\nexport function apiKeyCreationOptionsToCrud(type: \"user\", userId: string, options: ApiKeyCreationOptions<\"user\">): Promise<yup.InferType<typeof userApiKeysCreateInputSchema>>;\nexport function apiKeyCreationOptionsToCrud(type: \"team\", teamId: string, options: ApiKeyCreationOptions<\"team\">): Promise<yup.InferType<typeof teamApiKeysCreateInputSchema>>;\nexport function apiKeyCreationOptionsToCrud(type: ApiKeyType, userIdOrTeamId: string, options: ApiKeyCreationOptions): Promise<yup.InferType<typeof userApiKeysCreateInputSchema> | yup.InferType<typeof teamApiKeysCreateInputSchema>>;\nexport async function apiKeyCreationOptionsToCrud(type: ApiKeyType, userIdOrTeamId: string, options: ApiKeyCreationOptions): Promise<yup.InferType<typeof userApiKeysCreateInputSchema> | yup.InferType<typeof teamApiKeysCreateInputSchema>> {\n return {\n description: options.description,\n expires_at_millis: options.expiresAt == null ? options.expiresAt : options.expiresAt.getTime(),\n is_public: options.isPublic,\n ...(type === \"user\" ? { user_id: userIdOrTeamId } : { team_id: userIdOrTeamId }),\n };\n}\n\n\nexport type ApiKeyUpdateOptions<Type extends ApiKeyType = ApiKeyType> = {\n description?: string,\n expiresAt?: Date | null,\n revoked?: boolean,\n};\nexport function apiKeyUpdateOptionsToCrud(type: \"user\", options: ApiKeyUpdateOptions<\"user\">): Promise<UserApiKeysCrud[\"Client\"][\"Update\"]>;\nexport function apiKeyUpdateOptionsToCrud(type: \"team\", options: ApiKeyUpdateOptions<\"team\">): Promise<TeamApiKeysCrud[\"Client\"][\"Update\"]>;\nexport function apiKeyUpdateOptionsToCrud(type: ApiKeyType, options: ApiKeyUpdateOptions): Promise<UserApiKeysCrud[\"Client\"][\"Update\"] | TeamApiKeysCrud[\"Client\"][\"Update\"]>;\nexport async function apiKeyUpdateOptionsToCrud(type: ApiKeyType, options: ApiKeyUpdateOptions): Promise<UserApiKeysCrud[\"Client\"][\"Update\"] | TeamApiKeysCrud[\"Client\"][\"Update\"]> {\n return filterUndefined({\n description: options.description,\n expires_at_millis: options.expiresAt == null ? options.expiresAt : options.expiresAt.getTime(),\n revoked: options.revoked,\n });\n}\n"],"mappings":";;;;;AAgDA,eAAsB,4BAA4B,MAAkB,gBAAwB,SAAkJ;AAC5O,QAAO;EACL,aAAa,QAAQ;EACrB,mBAAmB,QAAQ,aAAa,OAAO,QAAQ,YAAY,QAAQ,UAAU,SAAS;EAC9F,WAAW,QAAQ;EACnB,GAAI,SAAS,SAAS,EAAE,SAAS,gBAAgB,GAAG,EAAE,SAAS,gBAAgB;EAChF;;AAYH,eAAsB,0BAA0B,MAAkB,SAAkH;AAClL,iEAAuB;EACrB,aAAa,QAAQ;EACrB,mBAAmB,QAAQ,aAAa,OAAO,QAAQ,YAAY,QAAQ,UAAU,SAAS;EAC9F,SAAS,QAAQ;EAClB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { EmailConfig, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, TokenStoreInit, stackAppInternalsSymbol } from "../../common.js";
1
+ import { EmailConfig, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, TokenStoreInit, hexclaveAppInternalsSymbol } from "../../common.js";
2
2
  import { AdminEmailOutbox, AdminSentEmail } from "../../email/index.js";
3
3
  import { InternalApiKey, InternalApiKeyBase, InternalApiKeyBaseCrudRead, InternalApiKeyCreateOptions, InternalApiKeyFirstView } from "../../internal-api-keys/index.js";
4
4
  import { AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions } from "../../permissions/index.js";
@@ -8,7 +8,7 @@ import { AdminOwnedProject, AdminProject } from "../../projects/index.js";
8
8
  import { AnalyticsOptions } from "./session-replay.js";
9
9
  import { StackClientApp } from "../interfaces/client-app.js";
10
10
  import { AdminEmailTemplate } from "../../email-templates/index.js";
11
- import { _StackServerAppImplIncomplete } from "./server-app-impl.js";
11
+ import { _HexclaveServerAppImplIncomplete } from "./server-app-impl.js";
12
12
  import { HexclaveAdminInterface } from "@hexclave/shared";
13
13
  import * as _hexclave_shared_dist_interface_crud_current_user0 from "@hexclave/shared/dist/interface/crud/current-user";
14
14
  import { Result } from "@hexclave/shared/dist/utils/results";
@@ -27,8 +27,8 @@ import { InternalApiKeysCrud } from "@hexclave/shared/dist/interface/crud/intern
27
27
  import { MetricsResponse, MetricsUserCounts, UserActivityResponse } from "@hexclave/shared/dist/interface/admin-metrics";
28
28
  import { EmailTemplateCrud } from "@hexclave/shared/dist/interface/crud/email-templates";
29
29
 
30
- //#region src/lib/stack-app/apps/implementations/admin-app-impl.d.ts
31
- declare class _StackAdminAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _StackServerAppImplIncomplete<HasTokenStore, ProjectId> implements StackAdminApp<HasTokenStore, ProjectId> {
30
+ //#region src/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts
31
+ declare class _HexclaveAdminAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _HexclaveServerAppImplIncomplete<HasTokenStore, ProjectId> implements StackAdminApp<HasTokenStore, ProjectId> {
32
32
  protected _interface: HexclaveAdminInterface;
33
33
  private readonly _adminProjectCache;
34
34
  private readonly _internalApiKeysCache;
@@ -126,7 +126,7 @@ declare class _StackAdminAppImplIncomplete<HasTokenStore extends boolean, Projec
126
126
  protected _refreshProjectConfig(): Promise<void>;
127
127
  protected _refreshInternalApiKeys(): Promise<void>;
128
128
  protected _refreshUsers(): Promise<void>;
129
- get [stackAppInternalsSymbol](): {
129
+ get [hexclaveAppInternalsSymbol](): {
130
130
  useMetrics: (includeAnonymous?: boolean) => MetricsResponse;
131
131
  useUserActivity: (userId: string) => UserActivityResponse;
132
132
  useMetricsUserCounts: () => MetricsUserCounts;
@@ -423,5 +423,5 @@ declare class _StackAdminAppImplIncomplete<HasTokenStore extends boolean, Projec
423
423
  }>;
424
424
  }
425
425
  //#endregion
426
- export { _StackAdminAppImplIncomplete };
426
+ export { _HexclaveAdminAppImplIncomplete };
427
427
  //# sourceMappingURL=admin-app-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-app-impl.d.ts","names":[],"sources":["../../../../../src/lib/hexclave-app/apps/implementations/admin-app-impl.ts"],"mappings":"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"}
@@ -13,7 +13,7 @@ let ______permissions_index_js = require("../../permissions/index.js");
13
13
  let ______projects_index_js = require("../../projects/index.js");
14
14
  let __server_app_impl_js = require("./server-app-impl.js");
15
15
 
16
- //#region src/lib/stack-app/apps/implementations/admin-app-impl.ts
16
+ //#region src/lib/hexclave-app/apps/implementations/admin-app-impl.ts
17
17
  /**
18
18
  * Converts a PushedConfigSource (SDK camelCase) to BranchConfigSourceApi (API snake_case).
19
19
  */
@@ -44,7 +44,7 @@ function apiToPushedConfigSource(source) {
44
44
  };
45
45
  return source;
46
46
  }
47
- var _StackAdminAppImplIncomplete = class extends __server_app_impl_js._StackServerAppImplIncomplete {
47
+ var _HexclaveAdminAppImplIncomplete = class extends __server_app_impl_js._HexclaveServerAppImplIncomplete {
48
48
  constructor(options, extraOptions) {
49
49
  const resolvedOptions = (0, __common_js.resolveConstructorOptions)(options);
50
50
  const publishableClientKey = resolvedOptions.publishableClientKey ?? (0, __common_js.getDefaultPublishableClientKey)();
@@ -475,9 +475,9 @@ var _StackAdminAppImplIncomplete = class extends __server_app_impl_js._StackServ
475
475
  this._metricsUserCountsCache.refresh([])
476
476
  ]);
477
477
  }
478
- get [______common_js.stackAppInternalsSymbol]() {
478
+ get [______common_js.hexclaveAppInternalsSymbol]() {
479
479
  return {
480
- ...super[______common_js.stackAppInternalsSymbol],
480
+ ...super[______common_js.hexclaveAppInternalsSymbol],
481
481
  useMetrics: (includeAnonymous = false) => {
482
482
  return (0, __common_js.useAsyncCache)(this._metricsCache, [includeAnonymous], "adminApp.useMetrics()");
483
483
  },
@@ -1044,5 +1044,5 @@ var _StackAdminAppImplIncomplete = class extends __server_app_impl_js._StackServ
1044
1044
  };
1045
1045
 
1046
1046
  //#endregion
1047
- exports._StackAdminAppImplIncomplete = _StackAdminAppImplIncomplete;
1047
+ exports._HexclaveAdminAppImplIncomplete = _HexclaveAdminAppImplIncomplete;
1048
1048
  //# sourceMappingURL=admin-app-impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-app-impl.js","names":["_HexclaveServerAppImplIncomplete","HexclaveAdminInterface","HexclaveAssertionError","Result","hexclaveAppInternalsSymbol","KnownErrors"],"sources":["../../../../../src/lib/hexclave-app/apps/implementations/admin-app-impl.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { KnownErrors, HexclaveAdminInterface } from \"@hexclave/shared\";\nimport { getProductionModeErrors } from \"@hexclave/shared/dist/helpers/production-mode\";\nimport { InternalApiKeyCreateCrudResponse } from \"@hexclave/shared/dist/interface/admin-interface\";\nimport type { MetricsResponse, MetricsUserCounts, UserActivityResponse } from \"@hexclave/shared/dist/interface/admin-metrics\";\nimport { AnalyticsQueryOptions, AnalyticsQueryResponse } from \"@hexclave/shared/dist/interface/crud/analytics\";\nimport { EmailTemplateCrud } from \"@hexclave/shared/dist/interface/crud/email-templates\";\nimport { InternalApiKeysCrud } from \"@hexclave/shared/dist/interface/crud/internal-api-keys\";\nimport { ProjectsCrud } from \"@hexclave/shared/dist/interface/crud/projects\";\nimport type { AdminGetSessionReplayChunkEventsResponse } from \"@hexclave/shared/dist/interface/crud/session-replays\";\nimport type { Transaction, TransactionType } from \"@hexclave/shared/dist/interface/crud/transactions\";\nimport type { RestrictedReason } from \"@hexclave/shared/dist/schema-fields\";\nimport type { MoneyAmount } from \"@hexclave/shared/dist/utils/currency-constants\";\nimport { HexclaveAssertionError, throwErr } from \"@hexclave/shared/dist/utils/errors\";\nimport type { Json } from \"@hexclave/shared/dist/utils/json\";\nimport { pick, typedEntries, typedValues } from \"@hexclave/shared/dist/utils/objects\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { useMemo } from \"react\"; // THIS_LINE_PLATFORM react-like\nimport { AdminEmailOutbox, AdminSentEmail } from \"../..\";\nimport { EmailConfig, hexclaveAppInternalsSymbol } from \"../../common\";\nimport { AdminEmailTemplate } from \"../../email-templates\";\nimport { InternalApiKey, InternalApiKeyBase, InternalApiKeyBaseCrudRead, InternalApiKeyCreateOptions, InternalApiKeyFirstView, internalApiKeyCreateOptionsToCrud } from \"../../internal-api-keys\";\nimport { AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions, adminProjectPermissionDefinitionCreateOptionsToCrud, adminProjectPermissionDefinitionUpdateOptionsToCrud, adminTeamPermissionDefinitionCreateOptionsToCrud, adminTeamPermissionDefinitionUpdateOptionsToCrud } from \"../../permissions\";\nimport { AdminOwnedProject, AdminProject, AdminProjectUpdateOptions, PushConfigOptions, adminProjectUpdateOptionsToCrud } from \"../../projects\";\nimport type { AdminSessionReplay, AdminSessionReplayChunk, ListSessionReplayChunksOptions, ListSessionReplayChunksResult, ListSessionReplaysOptions, ListSessionReplaysResult, SessionReplayAllEventsResult } from \"../../session-replays\";\nimport { ManagedEmailProviderListItem, ManagedEmailProviderSetupResult, ManagedEmailProviderStatus, EmailOutboxUpdateOptions, StackAdminApp, StackAdminAppConstructorOptions } from \"../interfaces/admin-app\";\nimport { clientVersion, createCache, getDefaultExtraRequestHeaders, getDefaultProjectId, getDefaultPublishableClientKey, getDefaultSecretServerKey, getDefaultSuperSecretAdminKey, resolveApiUrls, resolveConstructorOptions } from \"./common\";\nimport { _HexclaveServerAppImplIncomplete } from \"./server-app-impl\";\n\nimport { CompleteConfig, EnvironmentConfigOverrideOverride } from \"@hexclave/shared/dist/config/schema\";\nimport { branchConfigSourceSchema } from \"@hexclave/shared/dist/schema-fields\";\nimport * as yup from \"yup\";\nimport { PushedConfigSource } from \"../../projects\";\nimport { useAsyncCache } from \"./common\"; // THIS_LINE_PLATFORM react-like\n\ntype BranchConfigSourceApi = yup.InferType<typeof branchConfigSourceSchema>;\n/**\n * Converts a PushedConfigSource (SDK camelCase) to BranchConfigSourceApi (API snake_case).\n */\nfunction pushedConfigSourceToApi(source: PushedConfigSource): BranchConfigSourceApi {\n if (source.type === \"pushed-from-github\") {\n return {\n type: \"pushed-from-github\",\n owner: source.owner,\n repo: source.repo,\n branch: source.branch,\n commit_hash: source.commitHash,\n config_file_path: source.configFilePath,\n workflow_path: source.workflowPath,\n };\n }\n return source;\n}\n\n/**\n * Converts a BranchConfigSourceApi (API snake_case) to PushedConfigSource (SDK camelCase).\n */\nfunction apiToPushedConfigSource(source: BranchConfigSourceApi): PushedConfigSource {\n if (source.type === \"pushed-from-github\") {\n return {\n type: \"pushed-from-github\",\n owner: source.owner,\n repo: source.repo,\n branch: source.branch,\n commitHash: source.commit_hash,\n configFilePath: source.config_file_path,\n workflowPath: source.workflow_path,\n };\n }\n return source;\n}\n\nexport class _HexclaveAdminAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _HexclaveServerAppImplIncomplete<HasTokenStore, ProjectId> implements StackAdminApp<HasTokenStore, ProjectId> {\n declare protected _interface: HexclaveAdminInterface;\n\n private readonly _adminProjectCache = createCache(async () => {\n return await this._interface.getProject();\n });\n private readonly _internalApiKeysCache = createCache(async () => {\n const res = await this._interface.listInternalApiKeys();\n return res;\n });\n private readonly _adminEmailThemeCache = createCache(async ([id]: [string]) => {\n return await this._interface.getEmailTheme(id);\n });\n private readonly _adminEmailThemesCache = createCache(async () => {\n return await this._interface.listEmailThemes();\n });\n private readonly _adminEmailTemplatesCache = createCache(async () => {\n return await this._interface.listInternalEmailTemplates();\n });\n private readonly _adminEmailDraftsCache = createCache(async () => {\n return await this._interface.listInternalEmailDrafts();\n });\n private readonly _adminTeamPermissionDefinitionsCache = createCache(async () => {\n return await this._interface.listTeamPermissionDefinitions();\n });\n private readonly _adminProjectPermissionDefinitionsCache = createCache(async () => {\n return await this._interface.listProjectPermissionDefinitions();\n });\n private readonly _svixTokenCache = createCache(async () => {\n return await this._interface.getSvixToken();\n });\n private readonly _metricsCache = createCache(async ([includeAnonymous]: [boolean]) => {\n return await this._interface.getMetrics(includeAnonymous);\n });\n private readonly _userActivityCache = createCache(async ([userId]: [string]) => {\n return await this._interface.getUserActivity(userId);\n });\n private readonly _metricsUserCountsCache = createCache(async () => {\n return await this._interface.getMetricsUserCounts();\n });\n private readonly _emailPreviewCache = createCache(async ([themeId, themeTsxSource, templateId, templateTsxSource]: [string | null | false | undefined, string | undefined, string | undefined, string | undefined]) => {\n return await this._interface.renderEmailPreview({ themeId, themeTsxSource, templateId, templateTsxSource });\n });\n private readonly _emailPreviewWithEditableMarkersCache = createCache(async ([themeId, themeTsxSource, templateId, templateTsxSource, editableSource]: [string | null | false | undefined, string | undefined, string | undefined, string | undefined, 'template' | 'theme' | 'both' | undefined]) => {\n return await this._interface.renderEmailPreview({ themeId, themeTsxSource, templateId, templateTsxSource, editableMarkers: true, editableSource });\n });\n private readonly _configOverridesCache = createCache(async () => {\n return await this._interface.getConfig();\n });\n private readonly _stripeAccountInfoCache = createCache(async () => {\n try {\n return await this._interface.getStripeAccountInfo();\n } catch (error: any) {\n if (error?.status === 404) {\n return null;\n }\n throw error;\n }\n });\n private readonly _transactionsCache = createCache(async ([cursor, limit, type, customerType, customerId]: [string | undefined, number | undefined, TransactionType | undefined, 'user' | 'team' | 'custom' | undefined, string | undefined]) => {\n return await this._interface.listTransactions({ cursor, limit, type, customerType, customerId });\n });\n\n constructor(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>, extraOptions?: { uniqueIdentifier?: string, checkString?: string, interface?: HexclaveAdminInterface }) {\n const resolvedOptions = resolveConstructorOptions(options);\n\n const publishableClientKey = resolvedOptions.publishableClientKey ?? getDefaultPublishableClientKey();\n\n super(resolvedOptions, {\n ...extraOptions,\n interface: extraOptions?.interface ?? (() => {\n const apiUrls = resolveApiUrls(resolvedOptions.baseUrl);\n return new HexclaveAdminInterface({\n getBaseUrl: () => apiUrls()[0],\n getApiUrls: apiUrls,\n projectId: resolvedOptions.projectId ?? getDefaultProjectId(),\n extraRequestHeaders: resolvedOptions.extraRequestHeaders ?? getDefaultExtraRequestHeaders(),\n clientVersion,\n ...resolvedOptions.projectOwnerSession ? {\n projectOwnerSession: resolvedOptions.projectOwnerSession,\n } : {\n ...(publishableClientKey ? { publishableClientKey } : {}),\n secretServerKey: resolvedOptions.secretServerKey ?? getDefaultSecretServerKey(),\n superSecretAdminKey: resolvedOptions.superSecretAdminKey ?? getDefaultSuperSecretAdminKey(),\n },\n });\n })(),\n });\n }\n\n _adminConfigFromCrud(data: { config_string: string }): CompleteConfig {\n return JSON.parse(data.config_string);\n }\n\n _adminOwnedProjectFromCrud(data: ProjectsCrud['Admin']['Read'], onRefresh: () => Promise<void>): AdminOwnedProject {\n if (this._tokenStoreInit !== null) {\n throw new HexclaveAssertionError(\"Owned apps must always have tokenStore === null — did you not create this project with app._createOwnedApp()?\");\n }\n return {\n ...this._adminProjectFromCrud(data, onRefresh),\n app: this as StackAdminApp<false>,\n };\n }\n\n _adminProjectFromCrud(data: ProjectsCrud['Admin']['Read'], onRefresh: () => Promise<void>): AdminProject {\n if (data.id !== this.projectId) {\n throw new HexclaveAssertionError(`The project ID of the provided project JSON (${data.id}) does not match the project ID of the app (${this.projectId})!`);\n }\n\n const app = this;\n return {\n id: data.id,\n displayName: data.display_name,\n description: data.description,\n createdAt: new Date(data.created_at_millis),\n isProductionMode: data.is_production_mode,\n isDevelopmentEnvironment: data.is_development_environment,\n ownerTeamId: data.owner_team_id,\n onboardingStatus: data.onboarding_status,\n logoUrl: data.logo_url,\n logoFullUrl: data.logo_full_url,\n logoDarkModeUrl: data.logo_dark_mode_url,\n logoFullDarkModeUrl: data.logo_full_dark_mode_url,\n config: {\n signUpEnabled: data.config.sign_up_enabled,\n credentialEnabled: data.config.credential_enabled,\n magicLinkEnabled: data.config.magic_link_enabled,\n passkeyEnabled: data.config.passkey_enabled,\n clientTeamCreationEnabled: data.config.client_team_creation_enabled,\n clientUserDeletionEnabled: data.config.client_user_deletion_enabled,\n allowLocalhost: data.config.allow_localhost,\n oauthAccountMergeStrategy: data.config.oauth_account_merge_strategy,\n allowUserApiKeys: data.config.allow_user_api_keys,\n allowTeamApiKeys: data.config.allow_team_api_keys,\n oauthProviders: data.config.oauth_providers.map((p) => ((p.type === 'shared' ? {\n id: p.id,\n type: 'shared',\n } as const : {\n id: p.id,\n type: 'standard',\n clientId: p.client_id ?? throwErr(\"Client ID is missing\"),\n clientSecret: p.client_secret ?? throwErr(\"Client secret is missing\"),\n facebookConfigId: p.facebook_config_id,\n microsoftTenantId: p.microsoft_tenant_id,\n appleBundleIds: p.apple_bundle_ids,\n } as const))),\n emailConfig: data.config.email_config.type === 'shared' ? {\n type: 'shared'\n } : {\n type: 'standard',\n host: data.config.email_config.host ?? throwErr(\"Email host is missing\"),\n port: data.config.email_config.port ?? throwErr(\"Email port is missing\"),\n username: data.config.email_config.username ?? throwErr(\"Email username is missing\"),\n password: data.config.email_config.password ?? throwErr(\"Email password is missing\"),\n senderName: data.config.email_config.sender_name ?? throwErr(\"Email sender name is missing\"),\n senderEmail: data.config.email_config.sender_email ?? throwErr(\"Email sender email is missing\"),\n },\n emailTheme: data.config.email_theme,\n domains: data.config.domains.map((d) => ({\n domain: d.domain,\n handlerPath: d.handler_path,\n })),\n createTeamOnSignUp: data.config.create_team_on_sign_up,\n teamCreatorDefaultPermissions: data.config.team_creator_default_permissions,\n teamMemberDefaultPermissions: data.config.team_member_default_permissions,\n userDefaultPermissions: data.config.user_default_permissions,\n },\n async getConfig() {\n return app._adminConfigFromCrud(await app._interface.getConfig());\n },\n useConfig() {\n const config = useAsyncCache(app._configOverridesCache, [], \"project.useConfig()\");\n return useMemo(() => app._adminConfigFromCrud(config), [config]);\n },\n async updateConfig(configOverride: EnvironmentConfigOverrideOverride) {\n await app._interface.updateConfigOverride(\"environment\", configOverride);\n await app._refreshProjectConfig();\n },\n async pushConfig(config: EnvironmentConfigOverrideOverride, options: PushConfigOptions) {\n await app._interface.setConfigOverride(\"branch\", config, pushedConfigSourceToApi(options.source));\n await app._refreshProjectConfig();\n },\n async updatePushedConfig(config: EnvironmentConfigOverrideOverride) {\n await app._interface.updateConfigOverride(\"branch\", config);\n await app._refreshProjectConfig();\n },\n async getPushedConfigSource(): Promise<PushedConfigSource> {\n const apiSource = await app._interface.getPushedConfigSource();\n return apiToPushedConfigSource(apiSource);\n },\n async unlinkPushedConfigSource(): Promise<void> {\n await app._interface.unlinkPushedConfigSource();\n await app._refreshProjectConfig();\n },\n async resetConfigOverrideKeys(level: \"branch\" | \"environment\", keys: string[]): Promise<void> {\n await app._interface.resetConfigOverrideKeys(level, keys);\n await app._refreshProjectConfig();\n },\n async getConfigOverride(level: \"branch\" | \"environment\"): Promise<Record<string, unknown>> {\n const result = await app._interface.getConfigOverride(level);\n return JSON.parse(result.config_string);\n },\n async replaceConfigOverride(level: \"branch\" | \"environment\", config: Record<string, unknown>): Promise<void> {\n if (level === \"branch\") {\n const source = await app._interface.getPushedConfigSource();\n await app._interface.setConfigOverride(level, config, source);\n } else {\n await app._interface.setConfigOverride(level, config);\n }\n await app._refreshProjectConfig();\n },\n async update(update: AdminProjectUpdateOptions) {\n const { requirePublishableClientKey, ...projectUpdate } = update;\n const updateOptions = adminProjectUpdateOptionsToCrud(projectUpdate);\n const hasConfigUpdate = !!updateOptions.config\n && typedValues(updateOptions.config).some((value) => value !== undefined);\n const hasProjectUpdate = typedEntries(updateOptions).some(([key, value]) => {\n if (key === \"config\") return hasConfigUpdate;\n return value !== undefined;\n });\n\n if (hasProjectUpdate) {\n await app._interface.updateProject(updateOptions);\n await onRefresh();\n }\n\n if (requirePublishableClientKey !== undefined) {\n await app._interface.updateConfigOverride(\"project\", {\n \"project.requirePublishableClientKey\": requirePublishableClientKey,\n });\n await app._refreshProjectConfig();\n }\n },\n async delete() {\n await app._interface.deleteProject();\n },\n async getProductionModeErrors() {\n return getProductionModeErrors(data);\n },\n useProductionModeErrors() {\n return getProductionModeErrors(data);\n },\n };\n }\n\n _adminEmailTemplateFromCrud(data: EmailTemplateCrud['Admin']['Read']): AdminEmailTemplate {\n return {\n type: data.type,\n subject: data.subject,\n content: data.content,\n isDefault: data.is_default,\n };\n }\n\n override async getProject(): Promise<AdminProject> {\n return this._adminProjectFromCrud(\n Result.orThrow(await this._adminProjectCache.getOrWait([], \"write-only\")),\n () => this._refreshProject()\n );\n }\n\n override useProject(): AdminProject {\n const crud = useAsyncCache(this._adminProjectCache, [], \"adminApp.useProject()\");\n return useMemo(() => this._adminProjectFromCrud(\n crud,\n () => this._refreshProject()\n ), [crud]);\n }\n\n protected _createInternalApiKeyBaseFromCrud(data: InternalApiKeyBaseCrudRead): InternalApiKeyBase {\n const app = this;\n return {\n id: data.id,\n description: data.description,\n expiresAt: new Date(data.expires_at_millis),\n manuallyRevokedAt: data.manually_revoked_at_millis ? new Date(data.manually_revoked_at_millis) : null,\n createdAt: new Date(data.created_at_millis),\n isValid() {\n return this.whyInvalid() === null;\n },\n whyInvalid() {\n if (this.expiresAt.getTime() < Date.now()) return \"expired\";\n if (this.manuallyRevokedAt) return \"manually-revoked\";\n return null;\n },\n async revoke() {\n const res = await app._interface.revokeInternalApiKeyById(data.id);\n await app._refreshInternalApiKeys();\n return res;\n }\n };\n }\n\n protected _createInternalApiKeyFromCrud(data: InternalApiKeysCrud[\"Admin\"][\"Read\"]): InternalApiKey {\n return {\n ...this._createInternalApiKeyBaseFromCrud(data),\n publishableClientKey: data.publishable_client_key ? { lastFour: data.publishable_client_key.last_four } : null,\n secretServerKey: data.secret_server_key ? { lastFour: data.secret_server_key.last_four } : null,\n superSecretAdminKey: data.super_secret_admin_key ? { lastFour: data.super_secret_admin_key.last_four } : null,\n };\n }\n\n protected _createInternalApiKeyFirstViewFromCrud(data: InternalApiKeyCreateCrudResponse): InternalApiKeyFirstView {\n return {\n ...this._createInternalApiKeyBaseFromCrud(data),\n publishableClientKey: data.publishable_client_key,\n secretServerKey: data.secret_server_key,\n superSecretAdminKey: data.super_secret_admin_key,\n };\n }\n\n async listInternalApiKeys(): Promise<InternalApiKey[]> {\n const crud = Result.orThrow(await this._internalApiKeysCache.getOrWait([], \"write-only\"));\n return crud.map((j) => this._createInternalApiKeyFromCrud(j));\n }\n\n useInternalApiKeys(): InternalApiKey[] {\n const crud = useAsyncCache(this._internalApiKeysCache, [], \"adminApp.useInternalApiKeys()\");\n return useMemo(() => {\n return crud.map((j) => this._createInternalApiKeyFromCrud(j));\n }, [crud]);\n }\n\n async createInternalApiKey(options: InternalApiKeyCreateOptions): Promise<InternalApiKeyFirstView> {\n const crud = await this._interface.createInternalApiKey(internalApiKeyCreateOptionsToCrud(options));\n await this._refreshInternalApiKeys();\n return this._createInternalApiKeyFirstViewFromCrud(crud);\n }\n\n\n useEmailThemes(): { id: string, displayName: string }[] {\n const crud = useAsyncCache(this._adminEmailThemesCache, [], \"adminApp.useEmailThemes()\");\n return useMemo(() => {\n return crud.map((theme) => ({\n id: theme.id,\n displayName: theme.display_name,\n }));\n }, [crud]);\n }\n useEmailTemplates(): { id: string, displayName: string, themeId?: string, tsxSource: string }[] {\n const crud = useAsyncCache(this._adminEmailTemplatesCache, [], \"adminApp.useEmailTemplates()\");\n return useMemo(() => {\n return crud.map((template) => ({\n id: template.id,\n displayName: template.display_name,\n themeId: template.theme_id,\n tsxSource: template.tsx_source,\n }));\n }, [crud]);\n }\n useEmailDrafts(): { id: string, displayName: string, themeId: string | undefined | false, tsxSource: string, sentAt: Date | null }[] {\n const crud = useAsyncCache(this._adminEmailDraftsCache, [], \"adminApp.useEmailDrafts()\");\n return useMemo(() => {\n return crud.map((draft) => ({\n id: draft.id,\n displayName: draft.display_name,\n themeId: draft.theme_id,\n tsxSource: draft.tsx_source,\n sentAt: draft.sent_at_millis ? new Date(draft.sent_at_millis) : null,\n }));\n }, [crud]);\n }\n async listEmailThemes(): Promise<{ id: string, displayName: string }[]> {\n const crud = Result.orThrow(await this._adminEmailThemesCache.getOrWait([], \"write-only\"));\n return crud.map((theme) => ({\n id: theme.id,\n displayName: theme.display_name,\n }));\n }\n\n async listEmailTemplates(): Promise<{ id: string, displayName: string, themeId?: string, tsxSource: string }[]> {\n const crud = Result.orThrow(await this._adminEmailTemplatesCache.getOrWait([], \"write-only\"));\n return crud.map((template) => ({\n id: template.id,\n displayName: template.display_name,\n themeId: template.theme_id,\n tsxSource: template.tsx_source,\n }));\n }\n\n async listEmailDrafts(): Promise<{ id: string, displayName: string, themeId: string | undefined | false, tsxSource: string, sentAt: Date | null }[]> {\n const crud = Result.orThrow(await this._adminEmailDraftsCache.getOrWait([], \"write-only\"));\n return crud.map((draft) => ({\n id: draft.id,\n displayName: draft.display_name,\n themeId: draft.theme_id,\n tsxSource: draft.tsx_source,\n sentAt: draft.sent_at_millis ? new Date(draft.sent_at_millis) : null,\n }));\n }\n\n\n async createTeamPermissionDefinition(data: AdminTeamPermissionDefinitionCreateOptions): Promise<AdminTeamPermission> {\n const crud = await this._interface.createTeamPermissionDefinition(adminTeamPermissionDefinitionCreateOptionsToCrud(data));\n await this._adminTeamPermissionDefinitionsCache.refresh([]);\n return this._serverTeamPermissionDefinitionFromCrud(crud);\n }\n\n async updateTeamPermissionDefinition(permissionId: string, data: AdminTeamPermissionDefinitionUpdateOptions) {\n await this._interface.updateTeamPermissionDefinition(permissionId, adminTeamPermissionDefinitionUpdateOptionsToCrud(data));\n await this._adminTeamPermissionDefinitionsCache.refresh([]);\n }\n\n async deleteTeamPermissionDefinition(permissionId: string): Promise<void> {\n await this._interface.deleteTeamPermissionDefinition(permissionId);\n await this._adminTeamPermissionDefinitionsCache.refresh([]);\n }\n\n async listTeamPermissionDefinitions(): Promise<AdminTeamPermissionDefinition[]> {\n const crud = Result.orThrow(await this._adminTeamPermissionDefinitionsCache.getOrWait([], \"write-only\"));\n return crud.map((p) => this._serverTeamPermissionDefinitionFromCrud(p));\n }\n\n async listTeamPermissionDefinitionsPaginated(\n options: { limit: number, cursor?: string, query?: string },\n ): Promise<{ items: AdminTeamPermissionDefinition[], nextCursor: string | null }> {\n const result = await this._interface.listTeamPermissionDefinitionsPaginated(options);\n return {\n items: result.items.map((p) => this._serverTeamPermissionDefinitionFromCrud(p)),\n nextCursor: result.nextCursor,\n };\n }\n\n useTeamPermissionDefinitions(): AdminTeamPermissionDefinition[] {\n const crud = useAsyncCache(this._adminTeamPermissionDefinitionsCache, [], \"adminApp.useTeamPermissionDefinitions()\");\n return useMemo(() => {\n return crud.map((p) => this._serverTeamPermissionDefinitionFromCrud(p));\n }, [crud]);\n }\n\n async createProjectPermissionDefinition(data: AdminProjectPermissionDefinitionCreateOptions): Promise<AdminProjectPermission> {\n const crud = await this._interface.createProjectPermissionDefinition(adminProjectPermissionDefinitionCreateOptionsToCrud(data));\n await this._adminProjectPermissionDefinitionsCache.refresh([]);\n return this._serverProjectPermissionDefinitionFromCrud(crud);\n }\n\n async updateProjectPermissionDefinition(permissionId: string, data: AdminProjectPermissionDefinitionUpdateOptions) {\n await this._interface.updateProjectPermissionDefinition(permissionId, adminProjectPermissionDefinitionUpdateOptionsToCrud(data));\n await this._adminProjectPermissionDefinitionsCache.refresh([]);\n }\n\n async deleteProjectPermissionDefinition(permissionId: string): Promise<void> {\n await this._interface.deleteProjectPermissionDefinition(permissionId);\n await this._adminProjectPermissionDefinitionsCache.refresh([]);\n }\n\n async listProjectPermissionDefinitions(): Promise<AdminProjectPermissionDefinition[]> {\n const crud = Result.orThrow(await this._adminProjectPermissionDefinitionsCache.getOrWait([], \"write-only\"));\n return crud.map((p) => this._serverProjectPermissionDefinitionFromCrud(p));\n }\n\n useProjectPermissionDefinitions(): AdminProjectPermissionDefinition[] {\n const crud = useAsyncCache(this._adminProjectPermissionDefinitionsCache, [], \"adminApp.useProjectPermissionDefinitions()\");\n return useMemo(() => {\n return crud.map((p) => this._serverProjectPermissionDefinitionFromCrud(p));\n }, [crud]);\n }\n useSvixToken(): { token: string, url: string | undefined } {\n const crud = useAsyncCache(this._svixTokenCache, [], \"adminApp.useSvixToken()\");\n return { token: crud.token, url: crud.url };\n }\n\n protected override async _refreshProject() {\n await Promise.all([\n super._refreshProject(),\n this._adminProjectCache.refresh([]),\n ]);\n }\n\n protected async _refreshProjectConfig() {\n await Promise.all([\n this._configOverridesCache.refresh([]),\n this._adminProjectCache.refresh([]),\n ]);\n }\n\n protected async _refreshInternalApiKeys() {\n await this._internalApiKeysCache.refresh([]);\n }\n\n protected override async _refreshUsers() {\n await Promise.all([\n super._refreshUsers(),\n this._metricsCache.refresh([false]),\n this._metricsCache.refresh([true]),\n this._metricsUserCountsCache.refresh([]),\n ]);\n }\n\n get [hexclaveAppInternalsSymbol]() {\n return {\n ...super[hexclaveAppInternalsSymbol],\n useMetrics: (includeAnonymous: boolean = false): MetricsResponse => {\n return useAsyncCache(this._metricsCache, [includeAnonymous] as const, \"adminApp.useMetrics()\") as MetricsResponse;\n },\n useUserActivity: (userId: string): UserActivityResponse => {\n return useAsyncCache(this._userActivityCache, [userId] as const, \"adminApp.useUserActivity()\") as UserActivityResponse;\n },\n useMetricsUserCounts: (): MetricsUserCounts => {\n return useAsyncCache(this._metricsUserCountsCache, [] as const, \"adminApp.useMetricsUserCounts()\") as MetricsUserCounts;\n },\n };\n }\n\n async sendTestEmail(options: {\n recipientEmail: string,\n emailConfig: EmailConfig,\n }): Promise<Result<undefined, { errorMessage: string }>> {\n let response: { success: boolean, error_message?: string };\n try {\n response = await this._interface.sendTestEmail({\n recipient_email: options.recipientEmail,\n email_config: {\n ...(pick(options.emailConfig, ['host', 'port', 'username', 'password'])),\n sender_email: options.emailConfig.senderEmail,\n sender_name: options.emailConfig.senderName,\n },\n });\n } catch (error) {\n // Translate the quota-exhaustion KnownError into the existing\n // Result.error shape so SDK/dashboard callers don't need to branch on\n // exceptions. The backend throws `ItemQuantityInsufficientAmount`\n // (consistent with every other limit-rejection endpoint), but this\n // method's historical contract has always been a `Result`.\n if (error instanceof KnownErrors.ItemQuantityInsufficientAmount) {\n return Result.error({\n errorMessage: \"Monthly email sending limit exceeded for your plan. Please upgrade your plan or wait until next month before sending more test emails.\",\n });\n }\n throw error;\n }\n\n if (response.success) {\n return Result.ok(undefined);\n } else {\n return Result.error({ errorMessage: response.error_message ?? throwErr(\"Email test error not specified\") });\n }\n }\n\n async sendTestWebhook(options: { endpointId: string }): Promise<Result<undefined, { errorMessage: string }>> {\n const response = await this._interface.sendTestWebhook({\n endpoint_id: options.endpointId,\n });\n\n if (response.success) {\n return Result.ok(undefined);\n } else {\n return Result.error({ errorMessage: response.error_message ?? throwErr(\"Webhook test error not specified\") });\n }\n }\n\n async listSentEmails(): Promise<AdminSentEmail[]> {\n const response = await this._interface.listSentEmails();\n return response.items.map((email) => ({\n id: email.id,\n to: email.to ?? [],\n subject: email.subject,\n recipient: email.to?.[0] ?? \"\",\n sentAt: new Date(email.sent_at_millis),\n error: email.error,\n }));\n }\n\n async setupManagedEmailProvider(options: { subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderSetupResult> {\n const response = await this._interface.setupManagedEmailProvider({\n subdomain: options.subdomain,\n sender_local_part: options.senderLocalPart,\n });\n return {\n domainId: response.domain_id,\n subdomain: response.subdomain,\n senderLocalPart: response.sender_local_part,\n nameServerRecords: response.name_server_records,\n status: response.status,\n };\n }\n\n async checkManagedEmailStatus(options: { domainId: string, subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderStatus> {\n const response = await this._interface.checkManagedEmailStatus({\n domain_id: options.domainId,\n subdomain: options.subdomain,\n sender_local_part: options.senderLocalPart,\n });\n return {\n status: response.status,\n };\n }\n\n async listManagedEmailDomains(): Promise<ManagedEmailProviderListItem[]> {\n const response = await this._interface.listManagedEmailDomains();\n return response.items.map((item) => ({\n domainId: item.domain_id,\n subdomain: item.subdomain,\n senderLocalPart: item.sender_local_part,\n status: item.status,\n nameServerRecords: item.name_server_records,\n }));\n }\n\n async applyManagedEmailProvider(options: { domainId: string }): Promise<{ status: \"applied\" }> {\n const result = await this._interface.applyManagedEmailProvider({\n domain_id: options.domainId,\n });\n await this._refreshProjectConfig();\n return result;\n }\n\n async deleteManagedEmailDomain(options: { resendDomainId: string }): Promise<{ status: \"deleted\" }> {\n return await this._interface.deleteManagedEmailDomain({\n resend_domain_id: options.resendDomainId,\n });\n }\n\n async sendSignInInvitationEmail(email: string, callbackUrl: string): Promise<void> {\n await this._interface.sendSignInInvitationEmail(email, callbackUrl);\n }\n\n async createEmailTemplate(displayName: string): Promise<{ id: string }> {\n const result = await this._interface.createEmailTemplate(displayName);\n await this._adminEmailTemplatesCache.refresh([]);\n\n return result;\n }\n\n async deleteEmailTemplate(id: string): Promise<void> {\n await this._interface.deleteEmailTemplate(id);\n await this._adminEmailTemplatesCache.refresh([]);\n }\n\n async createEmailDraft(options: { displayName: string, themeId?: string | false, tsxSource?: string }): Promise<{ id: string }> {\n const result = await this._interface.createEmailDraft({\n display_name: options.displayName,\n theme_id: options.themeId,\n tsx_source: options.tsxSource,\n });\n await this._adminEmailDraftsCache.refresh([]);\n return result;\n }\n\n async updateEmailDraft(id: string, data: { displayName?: string, themeId?: string | undefined | false, tsxSource?: string }): Promise<void> {\n await this._interface.updateEmailDraft(id, {\n display_name: data.displayName,\n theme_id: data.themeId,\n tsx_source: data.tsxSource,\n });\n await this._adminEmailDraftsCache.refresh([]);\n }\n\n async deleteEmailDraft(id: string): Promise<void> {\n await this._interface.deleteEmailDraft(id);\n const current = this._adminEmailDraftsCache.getIfCached([]);\n if (current.status === \"ok\" && current.data.status === \"ok\") {\n this._adminEmailDraftsCache.forceSetCachedValue([], Result.ok(current.data.data.filter((d) => d.id !== id)));\n }\n await this._adminEmailDraftsCache.refresh([]);\n }\n\n async refreshEmailDrafts(): Promise<void> {\n await this._adminEmailDraftsCache.refresh([]);\n }\n\n async saveChatMessage(threadId: string, message: any): Promise<void> {\n await this._interface.saveChatMessage(threadId, message);\n }\n\n async listChatMessages(threadId: string): Promise<{ messages: Array<any> }> {\n return await this._interface.listChatMessages(threadId);\n }\n\n async rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsxSource: string }> {\n const result = await this._interface.rewriteTemplateSourceWithAI(templateTsxSource);\n return { tsxSource: result.tsx_source };\n }\n\n async createEmailTheme(displayName: string): Promise<{ id: string }> {\n const result = await this._interface.createEmailTheme(displayName);\n await this._adminEmailThemesCache.refresh([]);\n return result;\n }\n\n async getEmailPreview(options: { themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string }): Promise<string> {\n return (await this._interface.renderEmailPreview(options)).html;\n }\n useEmailPreview(options: { themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string }): string {\n const crud = useAsyncCache(this._emailPreviewCache, [options.themeId, options.themeTsxSource, options.templateId, options.templateTsxSource] as const, \"adminApp.useEmailPreview()\");\n return crud.html;\n }\n async getEmailPreviewWithEditableMarkers(options: { themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string, editableSource?: 'template' | 'theme' | 'both' }): Promise<{ html: string, editableRegions?: Record<string, unknown> }> {\n const result = await this._interface.renderEmailPreview({ ...options, editableMarkers: true, editableSource: options.editableSource });\n return { html: result.html, editableRegions: result.editable_regions };\n }\n useEmailPreviewWithEditableMarkers(options: { themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string, editableSource?: 'template' | 'theme' | 'both' }): { html: string, editableRegions?: Record<string, unknown> } {\n const crud = useAsyncCache(this._emailPreviewWithEditableMarkersCache, [options.themeId, options.themeTsxSource, options.templateId, options.templateTsxSource, options.editableSource] as const, \"adminApp.useEmailPreviewWithEditableMarkers()\");\n return { html: crud.html, editableRegions: crud.editable_regions };\n }\n useEmailTheme(id: string): { displayName: string, tsxSource: string } {\n const crud = useAsyncCache(this._adminEmailThemeCache, [id] as const, \"adminApp.useEmailTheme()\");\n return {\n displayName: crud.display_name,\n tsxSource: crud.tsx_source,\n };\n }\n async updateEmailTheme(id: string, tsxSource: string): Promise<void> {\n await this._interface.updateEmailTheme(id, tsxSource);\n await this._adminEmailThemesCache.refresh([]);\n await this._adminEmailThemeCache.invalidate([id]);\n }\n\n async deleteEmailTheme(id: string): Promise<void> {\n await this._interface.deleteEmailTheme(id);\n await this._adminEmailThemesCache.refresh([]);\n await this._adminEmailThemeCache.invalidate([id]);\n }\n\n async updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ renderedHtml: string }> {\n const result = await this._interface.updateEmailTemplate(id, tsxSource, themeId);\n await this._adminEmailTemplatesCache.refresh([]);\n return { renderedHtml: result.rendered_html };\n }\n\n async setupPayments(): Promise<{ url: string }> {\n const result = await this._interface.setupPayments();\n await this._stripeAccountInfoCache.refresh([]);\n return result;\n }\n\n async createStripeWidgetAccountSession(): Promise<{ client_secret: string }> {\n return await this._interface.createStripeWidgetAccountSession();\n }\n\n async getPaymentMethodConfigs(): Promise<{ configId: string, methods: Array<{ id: string, name: string, enabled: boolean, available: boolean, overridable: boolean }> } | null> {\n return await this._interface.getPaymentMethodConfigs();\n }\n\n async updatePaymentMethodConfigs(configId: string, updates: Record<string, 'on' | 'off'>): Promise<void> {\n await this._interface.updatePaymentMethodConfigs(configId, updates);\n }\n\n async createItemQuantityChange(options: (\n { userId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { teamId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { customCustomerId: string, itemId: string, quantity: number, expiresAt?: string, description?: string }\n )): Promise<void> {\n await this._interface.updateItemQuantity(\n { itemId: options.itemId, ...(\"userId\" in options ? { userId: options.userId } : (\"teamId\" in options ? { teamId: options.teamId } : { customCustomerId: options.customCustomerId })) },\n {\n delta: options.quantity,\n expires_at: options.expiresAt,\n description: options.description,\n allow_negative: true,\n }\n );\n }\n\n async refundTransaction(options: {\n type: \"subscription\" | \"one-time-purchase\",\n id: string,\n invoiceId?: string,\n amountUsd: MoneyAmount,\n endAction?: \"now\" | \"at-period-end\",\n }): Promise<{ refundTransactionId: string }> {\n const result = await this._interface.refundTransaction({\n type: options.type,\n id: options.id,\n invoiceId: options.invoiceId,\n amountUsd: options.amountUsd,\n endAction: options.endAction,\n });\n await this._transactionsCache.invalidateWhere(() => true);\n return { refundTransactionId: result.refundTransactionId };\n }\n\n async listTransactions(params: { cursor?: string, limit?: number, type?: TransactionType, customerType?: 'user' | 'team' | 'custom', customerId?: string }): Promise<{ transactions: Transaction[], nextCursor: string | null }> {\n const crud = Result.orThrow(await this._transactionsCache.getOrWait([params.cursor, params.limit, params.type, params.customerType, params.customerId] as const, \"write-only\"));\n return crud;\n }\n\n // Email Outbox methods\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Complex discriminated union conversion from API response\n private _emailOutboxCrudToAdmin(crud: any): AdminEmailOutbox {\n const recipient = crud.to;\n let to: AdminEmailOutbox[\"to\"];\n if (recipient.type === \"user-primary-email\") {\n to = { type: \"user-primary-email\", userId: recipient.user_id };\n } else if (recipient.type === \"user-custom-emails\") {\n to = { type: \"user-custom-emails\", userId: recipient.user_id, emails: recipient.emails };\n } else {\n to = { type: \"custom-emails\", emails: recipient.emails };\n }\n\n // Base fields present on all emails\n const base = {\n id: crud.id as string,\n createdAt: new Date(crud.created_at_millis),\n updatedAt: new Date(crud.updated_at_millis),\n tsxSource: crud.tsx_source as string,\n themeId: (crud.theme_id as string | null) ?? null,\n to,\n scheduledAt: new Date(crud.scheduled_at_millis),\n // Source tracking for grouping emails by template/draft\n createdWith: crud.created_with as \"draft\" | \"programmatic-call\",\n emailDraftId: crud.email_draft_id as string | null,\n emailProgrammaticCallTemplateId: crud.email_programmatic_call_template_id as string | null,\n variables: (crud.variables ?? {}) as Record<string, Json>,\n isPaused: false as const,\n hasRendered: false as const,\n hasDelivered: false as const,\n // Retry tracking fields\n sendRetries: crud.send_retries as number,\n nextSendRetryAt: crud.next_send_retry_at_millis ? new Date(crud.next_send_retry_at_millis) : null,\n sendAttemptErrors: crud.send_attempt_errors ? (crud.send_attempt_errors as Array<{\n attempt_number: number,\n timestamp: string,\n external_message: string,\n external_details: Record<string, unknown>,\n internal_message: string,\n internal_details: Record<string, unknown>,\n }>).map((e) => ({\n attemptNumber: e.attempt_number,\n timestamp: e.timestamp,\n externalMessage: e.external_message,\n externalDetails: e.external_details,\n internalMessage: e.internal_message,\n internalDetails: e.internal_details,\n })) : null,\n };\n\n // Rendered fields (available after rendering completes successfully)\n const rendered = crud.has_rendered ? {\n ...base,\n startedRenderingAt: new Date(crud.started_rendering_at_millis),\n renderedAt: new Date(crud.rendered_at_millis),\n subject: crud.subject as string,\n html: crud.html as string | null,\n text: crud.text as string | null,\n isTransactional: crud.is_transactional as boolean,\n isHighPriority: crud.is_high_priority as boolean,\n notificationCategoryId: crud.notification_category_id as string | null,\n hasRendered: true as const,\n } : null;\n\n // Started sending fields\n const startedSending = rendered && crud.started_sending_at_millis ? {\n ...rendered,\n startedSendingAt: new Date(crud.started_sending_at_millis),\n } : null;\n\n // Finished delivering fields\n const finishedDelivering = startedSending && crud.has_delivered ? {\n ...startedSending,\n deliveredAt: new Date(crud.delivered_at_millis),\n hasDelivered: true as const,\n } : null;\n\n // Use type assertion at the end because TypeScript has trouble with\n // spread + override patterns on discriminated unions with const literal types\n const result = (() => {\n switch (crud.status) {\n case \"paused\": {\n return {\n ...base,\n status: \"paused\" as const,\n simpleStatus: \"in-progress\" as const,\n isPaused: true as const,\n };\n }\n case \"preparing\": {\n return {\n ...base,\n status: \"preparing\" as const,\n simpleStatus: \"in-progress\" as const,\n };\n }\n case \"rendering\": {\n return {\n ...base,\n status: \"rendering\" as const,\n simpleStatus: \"in-progress\" as const,\n startedRenderingAt: new Date(crud.started_rendering_at_millis),\n };\n }\n case \"render-error\": {\n return {\n ...base,\n status: \"render-error\" as const,\n simpleStatus: \"error\" as const,\n startedRenderingAt: new Date(crud.started_rendering_at_millis),\n renderedAt: new Date(crud.rendered_at_millis),\n renderError: crud.render_error,\n };\n }\n case \"scheduled\": {\n return {\n ...rendered!,\n status: \"scheduled\" as const,\n simpleStatus: \"in-progress\" as const,\n };\n }\n case \"queued\": {\n return {\n ...rendered!,\n status: \"queued\" as const,\n simpleStatus: \"in-progress\" as const,\n };\n }\n case \"sending\": {\n return {\n ...startedSending!,\n status: \"sending\" as const,\n simpleStatus: \"in-progress\" as const,\n };\n }\n case \"server-error\": {\n return {\n ...startedSending!,\n status: \"server-error\" as const,\n simpleStatus: \"error\" as const,\n errorAt: new Date(crud.error_at_millis),\n serverError: crud.server_error,\n };\n }\n case \"skipped\": {\n return {\n ...base,\n status: \"skipped\" as const,\n simpleStatus: \"ok\" as const,\n skippedAt: new Date(crud.skipped_at_millis),\n skippedReason: crud.skipped_reason,\n skippedDetails: crud.skipped_details ?? {},\n hasRendered: crud.has_rendered as boolean,\n // Optional fields\n startedRenderingAt: crud.started_rendering_at_millis ? new Date(crud.started_rendering_at_millis) : undefined,\n renderedAt: crud.rendered_at_millis ? new Date(crud.rendered_at_millis) : undefined,\n subject: crud.subject,\n html: crud.html,\n text: crud.text,\n isTransactional: crud.is_transactional,\n isHighPriority: crud.is_high_priority,\n notificationCategoryId: crud.notification_category_id,\n startedSendingAt: crud.started_sending_at_millis ? new Date(crud.started_sending_at_millis) : undefined,\n };\n }\n case \"bounced\": {\n return {\n ...startedSending!,\n status: \"bounced\" as const,\n simpleStatus: \"error\" as const,\n bouncedAt: new Date(crud.bounced_at_millis),\n };\n }\n case \"delivery-delayed\": {\n return {\n ...startedSending!,\n status: \"delivery-delayed\" as const,\n simpleStatus: \"ok\" as const,\n deliveryDelayedAt: new Date(crud.delivery_delayed_at_millis),\n };\n }\n case \"sent\": {\n return {\n ...finishedDelivering!,\n status: \"sent\" as const,\n simpleStatus: \"ok\" as const,\n canHaveDeliveryInfo: crud.can_have_delivery_info,\n };\n }\n case \"opened\": {\n return {\n ...finishedDelivering!,\n status: \"opened\" as const,\n simpleStatus: \"ok\" as const,\n openedAt: new Date(crud.opened_at_millis),\n canHaveDeliveryInfo: true as const,\n };\n }\n case \"clicked\": {\n return {\n ...finishedDelivering!,\n status: \"clicked\" as const,\n simpleStatus: \"ok\" as const,\n clickedAt: new Date(crud.clicked_at_millis),\n canHaveDeliveryInfo: true as const,\n };\n }\n case \"marked-as-spam\": {\n return {\n ...finishedDelivering!,\n status: \"marked-as-spam\" as const,\n simpleStatus: \"ok\" as const,\n markedAsSpamAt: new Date(crud.marked_as_spam_at_millis),\n canHaveDeliveryInfo: true as const,\n };\n }\n default: {\n throw new HexclaveAssertionError(`Unknown email outbox status: ${crud.status}`, { status: crud.status });\n }\n }\n })();\n // The type system has difficulty with spread + override patterns on discriminated unions,\n // so we use a type assertion here. The switch statement above ensures we return the correct shape.\n return result as AdminEmailOutbox;\n }\n\n async listOutboxEmails(options?: { status?: string, simpleStatus?: string, limit?: number, cursor?: string }): Promise<{ items: AdminEmailOutbox[], nextCursor: string | null }> {\n const response = await this._interface.listOutboxEmails({\n status: options?.status,\n simple_status: options?.simpleStatus,\n limit: options?.limit,\n cursor: options?.cursor,\n });\n return {\n items: response.items.map((item) => this._emailOutboxCrudToAdmin(item)),\n nextCursor: response.pagination?.next_cursor ?? null,\n };\n }\n\n async getOutboxEmail(id: string): Promise<AdminEmailOutbox> {\n const response = await this._interface.getOutboxEmail(id);\n return this._emailOutboxCrudToAdmin(response);\n }\n\n async updateOutboxEmail(id: string, options: EmailOutboxUpdateOptions): Promise<AdminEmailOutbox> {\n const response = await this._interface.updateOutboxEmail(id, {\n is_paused: options.isPaused,\n scheduled_at_millis: options.scheduledAtMillis,\n cancel: options.cancel,\n tsx_source: options.tsxSource,\n theme_id: options.themeId,\n });\n return this._emailOutboxCrudToAdmin(response);\n }\n\n async pauseOutboxEmail(id: string): Promise<AdminEmailOutbox> {\n return await this.updateOutboxEmail(id, { isPaused: true });\n }\n\n async unpauseOutboxEmail(id: string): Promise<AdminEmailOutbox> {\n return await this.updateOutboxEmail(id, { isPaused: false });\n }\n\n async cancelOutboxEmail(id: string): Promise<AdminEmailOutbox> {\n return await this.updateOutboxEmail(id, { cancel: true });\n }\n\n useTransactions(params: { cursor?: string, limit?: number, type?: TransactionType, customerType?: 'user' | 'team' | 'custom', customerId?: string }): { transactions: Transaction[], nextCursor: string | null } {\n const data = useAsyncCache(this._transactionsCache, [params.cursor, params.limit, params.type, params.customerType, params.customerId] as const, \"adminApp.useTransactions()\");\n return data;\n }\n\n async getStripeAccountInfo(): Promise<null | { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean }> {\n return await this._interface.getStripeAccountInfo();\n }\n\n useStripeAccountInfo(): { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean } | null {\n const data = useAsyncCache(this._stripeAccountInfoCache, [], \"adminApp.useStripeAccountInfo()\");\n return data;\n }\n\n async queryAnalytics(options: AnalyticsQueryOptions): Promise<AnalyticsQueryResponse> {\n return await this._interface.queryAnalytics(options);\n }\n\n async listSessionReplays(options?: ListSessionReplaysOptions): Promise<ListSessionReplaysResult> {\n const response = await this._interface.listSessionReplays({\n cursor: options?.cursor,\n limit: options?.limit,\n user_ids: options?.userIds,\n team_ids: options?.teamIds,\n duration_ms_min: options?.durationMsMin,\n duration_ms_max: options?.durationMsMax,\n last_event_at_from_millis: options?.lastEventAtFromMillis,\n last_event_at_to_millis: options?.lastEventAtToMillis,\n click_count_min: options?.clickCountMin,\n });\n\n const items: AdminSessionReplay[] = response.items.map((r) => ({\n id: r.id,\n projectUser: {\n id: r.project_user.id,\n displayName: r.project_user.display_name,\n primaryEmail: r.project_user.primary_email,\n },\n startedAt: new Date(r.started_at_millis),\n lastEventAt: new Date(r.last_event_at_millis),\n chunkCount: r.chunk_count,\n eventCount: r.event_count,\n }));\n\n return {\n items,\n nextCursor: response.pagination.next_cursor,\n };\n }\n\n async getSessionReplay(sessionReplayId: string): Promise<AdminSessionReplay> {\n const response = await this._interface.getSessionReplay(sessionReplayId);\n return {\n id: response.id,\n projectUser: {\n id: response.project_user.id,\n displayName: response.project_user.display_name,\n primaryEmail: response.project_user.primary_email,\n },\n startedAt: new Date(response.started_at_millis),\n lastEventAt: new Date(response.last_event_at_millis),\n chunkCount: response.chunk_count,\n eventCount: response.event_count,\n };\n }\n\n async listSessionReplayChunks(sessionReplayId: string, options?: ListSessionReplayChunksOptions): Promise<ListSessionReplayChunksResult> {\n const response = await this._interface.listSessionReplayChunks(sessionReplayId, {\n cursor: options?.cursor,\n limit: options?.limit,\n });\n\n const items: AdminSessionReplayChunk[] = response.items.map((c) => ({\n id: c.id,\n batchId: c.batch_id,\n sessionReplaySegmentId: c.session_replay_segment_id,\n browserSessionId: c.browser_session_id,\n eventCount: c.event_count,\n byteLength: c.byte_length,\n firstEventAt: new Date(c.first_event_at_millis),\n lastEventAt: new Date(c.last_event_at_millis),\n createdAt: new Date(c.created_at_millis),\n }));\n\n return {\n items,\n nextCursor: response.pagination.next_cursor,\n };\n }\n\n async getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise<AdminGetSessionReplayChunkEventsResponse> {\n return await this._interface.getSessionReplayChunkEvents(sessionReplayId, chunkId);\n }\n\n async getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number, limit?: number }): Promise<SessionReplayAllEventsResult> {\n const response = await this._interface.getSessionReplayEvents(sessionReplayId, options);\n return {\n chunks: response.chunks.map((c) => ({\n id: c.id,\n batchId: c.batch_id,\n sessionReplaySegmentId: c.session_replay_segment_id,\n eventCount: c.event_count,\n byteLength: c.byte_length,\n firstEventAt: new Date(c.first_event_at_millis),\n lastEventAt: new Date(c.last_event_at_millis),\n createdAt: new Date(c.created_at_millis),\n })),\n chunkEvents: response.chunk_events.map((ce) => ({\n chunkId: ce.chunk_id,\n events: ce.events,\n })),\n };\n }\n\n async previewAffectedUsersByOnboardingChange(\n onboarding: { requireEmailVerification?: boolean },\n limit?: number,\n ): Promise<{\n affectedUsers: Array<{\n id: string,\n displayName: string | null,\n primaryEmail: string | null,\n restrictedReason: RestrictedReason,\n }>,\n totalAffectedCount: number,\n }> {\n const result = await this._interface.previewAffectedUsersByOnboardingChange(\n { require_email_verification: onboarding.requireEmailVerification },\n limit,\n );\n return {\n affectedUsers: result.affected_users.map(u => ({\n id: u.id,\n displayName: u.display_name,\n primaryEmail: u.primary_email,\n restrictedReason: u.restricted_reason as RestrictedReason,\n })),\n totalAffectedCount: result.total_affected_count,\n };\n }\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ const require_chunk = require('../../../../chunk-BE-pF4vm.js');
2
2
  let vitest = require("vitest");
3
3
  let ___interfaces_client_app_js = require("../interfaces/client-app.js");
4
4
 
5
- //#region src/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.ts
5
+ //#region src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts
6
6
  function createMockDocument() {
7
7
  const cookieJar = /* @__PURE__ */ new Map();
8
8
  return {
@@ -88,7 +88,7 @@ function createMockDocument() {
88
88
  const previousDocument = globalThis.document;
89
89
  let redirectedUrl = "";
90
90
  vitest.vi.spyOn(clientApp, "_getCurrentRefreshTokenIdIfSignedIn").mockResolvedValue(null);
91
- vitest.vi.spyOn(clientApp, "_getNestedCrossDomainAuthParamsForRedirect").mockResolvedValue({
91
+ vitest.vi.spyOn(clientApp, "_getCrossDomainHandoffParamsForRedirect").mockResolvedValue({
92
92
  state: "fresh-nested-state",
93
93
  codeChallenge: "fresh-nested-code-challenge"
94
94
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-impl.cross-domain.test.js","names":["StackClientApp"],"sources":["../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { describe, expect, it, vi } from \"vitest\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\nfunction createMockDocument(): Document {\n const cookieJar = new Map<string, string>();\n return {\n get cookie() {\n return [...cookieJar.entries()].map(([key, value]) => `${key}=${value}`).join(\"; \");\n },\n set cookie(str: string) {\n const [nameValue] = str.split(\";\");\n const eqIndex = nameValue.indexOf(\"=\");\n if (eqIndex < 0) return;\n cookieJar.set(nameValue.slice(0, eqIndex).trim(), nameValue.slice(eqIndex + 1).trim());\n },\n createElement: () => ({}),\n } as any;\n}\n\ndescribe(\"StackClientApp cross-domain auth\", () => {\n it(\"uses the fresh post-auth refresh token when minting a cross-domain handoff\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: {\n accessToken: \"stale-access-token\",\n refreshToken: \"stale-refresh-token\",\n },\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalSendClientRequest = Reflect.get(clientInterface, \"sendClientRequest\");\n const capturedRefreshTokens: string[] = [];\n\n Reflect.set(clientInterface, \"sendClientRequest\", async (_path: unknown, _requestOptions: unknown, session: unknown) => {\n const getRefreshToken = Reflect.get(session ?? {}, \"getRefreshToken\");\n if (typeof getRefreshToken !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session to the client interface.\");\n }\n const refreshToken = getRefreshToken.call(session);\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected cross-domain auth to pass a refresh-token-backed session.\");\n }\n capturedRefreshTokens.push(refreshTokenString);\n return {\n ok: true,\n json: async () => ({ redirect_url: \"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\" }),\n };\n });\n\n try {\n const createCrossDomainAuthRedirectUrl = Reflect.get(clientApp, \"_createCrossDomainAuthRedirectUrl\");\n if (typeof createCrossDomainAuthRedirectUrl !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _createCrossDomainAuthRedirectUrl in tests.\");\n }\n\n await expect(createCrossDomainAuthRedirectUrl.call(clientApp, {\n redirectUri: \"https://example.com/handler/oauth-callback\",\n state: \"handoff-state\",\n codeChallenge: \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\",\n afterCallbackRedirectUrl: \"https://example.com/account-settings\",\n overrideTokenStoreInit: {\n accessToken: \"fresh-access-token\",\n refreshToken: \"fresh-refresh-token\",\n },\n })).resolves.toBe(\"https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state\");\n } finally {\n Reflect.set(clientInterface, \"sendClientRequest\", originalSendClientRequest);\n }\n\n expect(capturedRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n });\n\n it(\"uses a fresh nested OAuth state while preserving the outer cross-domain return state\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000002\";\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const outerState = \"outer-cross-domain-state\";\n const outerCodeChallenge = \"abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~\";\n const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);\n currentUrl.searchParams.set(\"after_auth_return_to\", `https://demo.stack-auth.com/?hexclave_cross_domain_auth=1&hexclave_cross_domain_state=${outerState}`);\n currentUrl.searchParams.set(\"hexclave_cross_domain_state\", outerState);\n currentUrl.searchParams.set(\"hexclave_cross_domain_code_challenge\", outerCodeChallenge);\n currentUrl.searchParams.set(\"hexclave_cross_domain_after_callback_redirect_url\", \"https://demo.stack-auth.com/\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_refresh_token_id\", \"source-session\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_callback_url\", \"https://demo.stack-auth.com/\");\n\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n vi.spyOn(clientApp as any, \"_getCurrentRefreshTokenIdIfSignedIn\").mockResolvedValue(null);\n vi.spyOn(clientApp as any, \"_getCrossDomainHandoffParamsForRedirect\").mockResolvedValue({\n state: \"fresh-nested-state\",\n codeChallenge: \"fresh-nested-code-challenge\",\n });\n vi.spyOn(clientApp as any, \"_isTrusted\").mockResolvedValue(true);\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentUrl.toString(),\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n await expect((clientApp as any)._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n const redirectUrl = new URL(redirectedUrl);\n expect(redirectUrl.searchParams.get(\"state\")).toBe(\"fresh-nested-state\");\n expect(redirectUrl.searchParams.get(\"code_challenge\")).toBe(\"fresh-nested-code-challenge\");\n const redirectUri = new URL(redirectUrl.searchParams.get(\"redirect_uri\") ?? \"\");\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_state\")).toBe(outerState);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_code_challenge\")).toBe(outerCodeChallenge);\n expect(redirectUri.searchParams.get(\"hexclave_cross_domain_after_callback_redirect_url\")).toBe(\"https://demo.stack-auth.com/\");\n });\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConvexCtx, GetCurrentPartialUserOptions, GetCurrentUserOptions, HandlerUrlOptions, HandlerUrls, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, RequestLike, ResolvedHandlerUrls, TokenStoreInit, stackAppInternalsSymbol } from "../../common.js";
1
+ import { ConvexCtx, GetCurrentPartialUserOptions, GetCurrentUserOptions, HandlerUrlOptions, HandlerUrls, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, RequestLike, ResolvedHandlerUrls, TokenStoreInit, hexclaveAppInternalsSymbol } from "../../common.js";
2
2
  import { Customer, CustomerBilling, CustomerInvoicesList, CustomerInvoicesRequestOptions, CustomerProductsList, CustomerProductsRequestOptions, Item } from "../../customers/index.js";
3
3
  import { TeamPermission } from "../../permissions/index.js";
4
4
  import { ApiKey } from "../../api-keys/index.js";
@@ -13,7 +13,7 @@ import { StackClientApp, StackClientAppConstructorOptions, StackClientAppJson }
13
13
  import { CookieHelper } from "../../../cookie.js";
14
14
  import { TokenObject } from "./common.js";
15
15
  import { CrossDomainHandoffParams } from "./redirect-page-urls.js";
16
- import { _StackAdminAppImplIncomplete } from "./admin-app-impl.js";
16
+ import { _HexclaveAdminAppImplIncomplete } from "./admin-app-impl.js";
17
17
  import { HexclaveClientInterface, KnownErrors } from "@hexclave/shared";
18
18
  import { CurrentUserCrud } from "@hexclave/shared/dist/interface/crud/current-user";
19
19
  import { Result } from "@hexclave/shared/dist/utils/results";
@@ -40,11 +40,11 @@ import { SessionsCrud } from "@hexclave/shared/dist/interface/crud/sessions";
40
40
  import { Store } from "@hexclave/shared/dist/utils/stores";
41
41
  import * as cookie from "cookie";
42
42
 
43
- //#region src/lib/stack-app/apps/implementations/client-app-impl.d.ts
44
- type StackClientAppImplConstructorOptionsResolved<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {
43
+ //#region src/lib/hexclave-app/apps/implementations/client-app-impl.d.ts
44
+ type HexclaveClientAppImplConstructorOptionsResolved<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {
45
45
  inheritsFrom?: undefined;
46
46
  };
47
- declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string = string> implements StackClientApp<HasTokenStore, ProjectId> {
47
+ declare class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string = string> implements StackClientApp<HasTokenStore, ProjectId> {
48
48
  /**
49
49
  * There is a circular dependency between the admin app and the client app, as the former inherits from the latter and
50
50
  * the latter needs to use the former when creating a new instance of an internal project.
@@ -53,9 +53,9 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
53
53
  * which imports both this file and ./admin-app-impl.ts.
54
54
  */
55
55
  static readonly LazyStackAdminAppImpl: {
56
- value: typeof _StackAdminAppImplIncomplete | undefined;
56
+ value: typeof _HexclaveAdminAppImplIncomplete | undefined;
57
57
  };
58
- protected readonly _options: StackClientAppImplConstructorOptionsResolved<HasTokenStore, ProjectId>;
58
+ protected readonly _options: HexclaveClientAppImplConstructorOptionsResolved<HasTokenStore, ProjectId>;
59
59
  protected readonly _extraOptions: {
60
60
  uniqueIdentifier?: string;
61
61
  checkString?: string;
@@ -145,7 +145,8 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
145
145
  protected _usePendingAuthResolutions(overrideTokenStoreInit?: TokenStoreInit): void;
146
146
  protected _isOAuthCallbackUrlHosted(): boolean;
147
147
  protected _currentUrlLooksLikeOAuthCallback(): boolean;
148
- protected _currentUrlLooksLikeStackOAuthCallback(): boolean;
148
+ protected _currentUrlLooksLikeHexclaveOAuthCallback(): boolean;
149
+ protected _currentUrlLooksLikeNestedCrossDomainOAuthCallback(): boolean;
149
150
  protected _getOAuthCallbackRedirectUri(): string;
150
151
  protected _getCurrentRefreshTokenIdIfSignedIn(options?: {
151
152
  awaitPendingAuthResolutions?: boolean;
@@ -158,7 +159,6 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
158
159
  overrideTokenStoreInit?: TokenStoreInit;
159
160
  }): Promise<string>;
160
161
  protected _maybeHandleNestedCrossDomainAuth(): Promise<boolean>;
161
- protected _getNestedCrossDomainAuthParamsForRedirect(): Promise<CrossDomainHandoffParams>;
162
162
  /**
163
163
  * Cloudflare workers does not allow use of randomness on the global scope (on which the Stack app is probably
164
164
  * initialized). For that reason, we generate the unique identifier lazily when it is first needed instead of in the
@@ -292,7 +292,7 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
292
292
  useInvoices(options: CustomerInvoicesRequestOptions): CustomerInvoicesList;
293
293
  protected _currentUserFromCrud(crud: NonNullable<CurrentUserCrud['Client']['Read']>, session: InternalSession): ProjectCurrentUser<ProjectId>;
294
294
  protected _clientSessionFromCrud(crud: SessionsCrud['Client']['Read']): ActiveSession;
295
- protected _getOwnedAdminApp(forProjectId: string, session: InternalSession): _StackAdminAppImplIncomplete<false, string>;
295
+ protected _getOwnedAdminApp(forProjectId: string, session: InternalSession): _HexclaveAdminAppImplIncomplete<false, string>;
296
296
  get projectId(): ProjectId;
297
297
  get version(): string;
298
298
  private _botChallengeSiteKeysWarned;
@@ -538,10 +538,10 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
538
538
  protected _refreshUsers(): Promise<void>;
539
539
  protected _refreshProject(): Promise<void>;
540
540
  protected _refreshOwnedProjects(session: InternalSession): Promise<void>;
541
- static get [stackAppInternalsSymbol](): {
541
+ static get [hexclaveAppInternalsSymbol](): {
542
542
  fromClientJson: <HasTokenStore extends boolean, ProjectId extends string>(json: StackClientAppJson<HasTokenStore, ProjectId>) => StackClientApp<HasTokenStore, ProjectId>;
543
543
  };
544
- get [stackAppInternalsSymbol](): {
544
+ get [hexclaveAppInternalsSymbol](): {
545
545
  toClientJson: () => StackClientAppJson<HasTokenStore, ProjectId>;
546
546
  setCurrentUser: (userJsonPromise: Promise<CurrentUserCrud["Client"]["Read"] | null>) => void;
547
547
  getConstructorOptions: () => {
@@ -595,5 +595,5 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
595
595
  };
596
596
  }
597
597
  //#endregion
598
- export { _StackClientAppImplIncomplete };
598
+ export { _HexclaveClientAppImplIncomplete };
599
599
  //# sourceMappingURL=client-app-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-impl.d.ts","names":[],"sources":["../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.ts"],"mappings":"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"}