@hexclave/next 1.0.3 → 1.0.6

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 (864) 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 +6 -6
  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} +16 -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} +60 -24
  91. package/dist/components-page/hexclave-handler-client.js.map +1 -0
  92. package/dist/components-page/hexclave-handler-client.test.js +51 -0
  93. package/dist/components-page/hexclave-handler-client.test.js.map +1 -0
  94. package/dist/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  95. package/dist/components-page/hexclave-handler.d.ts.map +1 -0
  96. package/dist/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  97. package/dist/components-page/hexclave-handler.js.map +1 -0
  98. package/dist/components-page/magic-link-callback.js +7 -7
  99. package/dist/components-page/magic-link-callback.js.map +1 -1
  100. package/dist/components-page/mfa.js +4 -4
  101. package/dist/components-page/mfa.js.map +1 -1
  102. package/dist/components-page/oauth-callback.js +3 -3
  103. package/dist/components-page/oauth-callback.js.map +1 -1
  104. package/dist/components-page/onboarding.js +3 -3
  105. package/dist/components-page/onboarding.js.map +1 -1
  106. package/dist/components-page/password-reset.js +8 -8
  107. package/dist/components-page/password-reset.js.map +1 -1
  108. package/dist/components-page/sign-in.js.map +1 -1
  109. package/dist/components-page/sign-out.d.ts +1 -0
  110. package/dist/components-page/sign-out.d.ts.map +1 -1
  111. package/dist/components-page/sign-out.js +11 -5
  112. package/dist/components-page/sign-out.js.map +1 -1
  113. package/dist/components-page/sign-up.js.map +1 -1
  114. package/dist/components-page/team-creation.js.map +1 -1
  115. package/dist/components-page/team-invitation.js +16 -16
  116. package/dist/components-page/team-invitation.js.map +1 -1
  117. package/dist/dev-tool/dev-tool-core.d.ts +1 -1
  118. package/dist/dev-tool/dev-tool-core.js +13 -13
  119. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  120. package/dist/dev-tool/dev-tool-styles.d.ts +1 -1
  121. package/dist/dev-tool/dev-tool-styles.js +371 -371
  122. package/dist/dev-tool/dev-tool-styles.js.map +1 -1
  123. package/dist/dev-tool/dev-tool-trigger-position.js.map +1 -1
  124. package/dist/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  125. package/dist/dev-tool/index.d.ts +4 -4
  126. package/dist/dev-tool/index.js +4 -4
  127. package/dist/dev-tool/index.js.map +1 -1
  128. package/dist/esm/components/api-key-dialogs.d.ts +1 -1
  129. package/dist/esm/components/api-key-dialogs.js.map +1 -1
  130. package/dist/esm/components/api-key-table.d.ts +1 -1
  131. package/dist/esm/components/api-key-table.js.map +1 -1
  132. package/dist/esm/components/credential-sign-in.js.map +1 -1
  133. package/dist/esm/components/credential-sign-up.js.map +1 -1
  134. package/dist/esm/components/elements/form-warning.js.map +1 -1
  135. package/dist/esm/components/elements/maybe-full-page.js.map +1 -1
  136. package/dist/esm/components/elements/separator-with-text.js.map +1 -1
  137. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  138. package/dist/esm/components/elements/ssr-layout-effect.js.map +1 -1
  139. package/dist/esm/components/elements/user-avatar.js.map +1 -1
  140. package/dist/esm/components/link.js.map +1 -1
  141. package/dist/esm/components/magic-link-sign-in.js +2 -2
  142. package/dist/esm/components/magic-link-sign-in.js.map +1 -1
  143. package/dist/esm/components/message-cards/known-error-message-card.js +2 -2
  144. package/dist/esm/components/message-cards/known-error-message-card.js.map +1 -1
  145. package/dist/esm/components/message-cards/message-card.js.map +1 -1
  146. package/dist/esm/components/message-cards/predefined-message-card.js +9 -9
  147. package/dist/esm/components/message-cards/predefined-message-card.js.map +1 -1
  148. package/dist/esm/components/oauth-button-group.js +2 -2
  149. package/dist/esm/components/oauth-button-group.js.map +1 -1
  150. package/dist/esm/components/oauth-button.js +2 -2
  151. package/dist/esm/components/oauth-button.js.map +1 -1
  152. package/dist/esm/components/passkey-button.js +2 -2
  153. package/dist/esm/components/passkey-button.js.map +1 -1
  154. package/dist/esm/components/profile-image-editor.js.map +1 -1
  155. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  156. package/dist/esm/components/team-icon.js.map +1 -1
  157. package/dist/esm/components/team-switcher.js.map +1 -1
  158. package/dist/esm/components/use-in-iframe.js.map +1 -1
  159. package/dist/esm/components/user-button.js.map +1 -1
  160. package/dist/esm/components-page/account-settings/active-sessions/active-sessions-page.js.map +1 -1
  161. package/dist/esm/components-page/account-settings/api-keys/api-keys-page.js.map +1 -1
  162. package/dist/esm/components-page/account-settings/editable-text.js.map +1 -1
  163. package/dist/esm/components-page/account-settings/email-and-auth/email-and-auth-page.js.map +1 -1
  164. package/dist/esm/components-page/account-settings/email-and-auth/emails-section.js.map +1 -1
  165. package/dist/esm/components-page/account-settings/email-and-auth/mfa-section.js.map +1 -1
  166. package/dist/esm/components-page/account-settings/email-and-auth/otp-section.js.map +1 -1
  167. package/dist/esm/components-page/account-settings/email-and-auth/passkey-section.js.map +1 -1
  168. package/dist/esm/components-page/account-settings/email-and-auth/password-section.js.map +1 -1
  169. package/dist/esm/components-page/account-settings/notifications/notifications-page.js.map +1 -1
  170. package/dist/esm/components-page/account-settings/page-layout.js.map +1 -1
  171. package/dist/esm/components-page/account-settings/payments/payments-page.js.map +1 -1
  172. package/dist/esm/components-page/account-settings/payments/payments-panel.d.ts +1 -1
  173. package/dist/esm/components-page/account-settings/payments/payments-panel.js +5 -5
  174. package/dist/esm/components-page/account-settings/payments/payments-panel.js.map +1 -1
  175. package/dist/esm/components-page/account-settings/profile-page/profile-page.js.map +1 -1
  176. package/dist/esm/components-page/account-settings/section.js.map +1 -1
  177. package/dist/esm/components-page/account-settings/settings/delete-account-section.js.map +1 -1
  178. package/dist/esm/components-page/account-settings/settings/settings-page.js.map +1 -1
  179. package/dist/esm/components-page/account-settings/settings/sign-out-section.js.map +1 -1
  180. package/dist/esm/components-page/account-settings/teams/leave-team-section.js.map +1 -1
  181. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.d.ts +1 -1
  182. package/dist/esm/components-page/account-settings/teams/team-api-keys-section.js.map +1 -1
  183. package/dist/esm/components-page/account-settings/teams/team-creation-page.js.map +1 -1
  184. package/dist/esm/components-page/account-settings/teams/team-display-name-section.js.map +1 -1
  185. package/dist/esm/components-page/account-settings/teams/team-member-invitation-section.js.map +1 -1
  186. package/dist/esm/components-page/account-settings/teams/team-member-list-section.js.map +1 -1
  187. package/dist/esm/components-page/account-settings/teams/team-page.js.map +1 -1
  188. package/dist/esm/components-page/account-settings/teams/team-profile-image-section.js.map +1 -1
  189. package/dist/esm/components-page/account-settings/teams/team-profile-user-section.js.map +1 -1
  190. package/dist/esm/components-page/account-settings.js.map +1 -1
  191. package/dist/esm/components-page/auth-page.d.ts.map +1 -1
  192. package/dist/esm/components-page/auth-page.js +56 -11
  193. package/dist/esm/components-page/auth-page.js.map +1 -1
  194. package/dist/esm/components-page/cli-auth-confirm.js +3 -3
  195. package/dist/esm/components-page/cli-auth-confirm.js.map +1 -1
  196. package/dist/esm/components-page/cli-auth-confirm.test.js +4 -4
  197. package/dist/esm/components-page/cli-auth-confirm.test.js.map +1 -1
  198. package/dist/esm/components-page/email-verification.js +4 -4
  199. package/dist/esm/components-page/email-verification.js.map +1 -1
  200. package/dist/esm/components-page/error-page.js +9 -9
  201. package/dist/esm/components-page/error-page.js.map +1 -1
  202. package/dist/esm/components-page/forgot-password.js +4 -4
  203. package/dist/esm/components-page/forgot-password.js.map +1 -1
  204. package/dist/esm/components-page/{stack-handler-client.d.ts → hexclave-handler-client.d.ts} +15 -4
  205. package/dist/esm/components-page/hexclave-handler-client.d.ts.map +1 -0
  206. package/dist/esm/components-page/{stack-handler-client.js → hexclave-handler-client.js} +59 -24
  207. package/dist/esm/components-page/hexclave-handler-client.js.map +1 -0
  208. package/dist/esm/components-page/hexclave-handler-client.test.js +51 -0
  209. package/dist/esm/components-page/hexclave-handler-client.test.js.map +1 -0
  210. package/dist/esm/components-page/{stack-handler.d.ts → hexclave-handler.d.ts} +5 -5
  211. package/dist/esm/components-page/hexclave-handler.d.ts.map +1 -0
  212. package/dist/esm/components-page/{stack-handler.js → hexclave-handler.js} +4 -4
  213. package/dist/esm/components-page/hexclave-handler.js.map +1 -0
  214. package/dist/esm/components-page/magic-link-callback.js +7 -7
  215. package/dist/esm/components-page/magic-link-callback.js.map +1 -1
  216. package/dist/esm/components-page/mfa.js +4 -4
  217. package/dist/esm/components-page/mfa.js.map +1 -1
  218. package/dist/esm/components-page/oauth-callback.js +3 -3
  219. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  220. package/dist/esm/components-page/onboarding.js +3 -3
  221. package/dist/esm/components-page/onboarding.js.map +1 -1
  222. package/dist/esm/components-page/password-reset.js +8 -8
  223. package/dist/esm/components-page/password-reset.js.map +1 -1
  224. package/dist/esm/components-page/sign-in.js.map +1 -1
  225. package/dist/esm/components-page/sign-out.d.ts +1 -0
  226. package/dist/esm/components-page/sign-out.d.ts.map +1 -1
  227. package/dist/esm/components-page/sign-out.js +11 -5
  228. package/dist/esm/components-page/sign-out.js.map +1 -1
  229. package/dist/esm/components-page/sign-up.js.map +1 -1
  230. package/dist/esm/components-page/team-creation.js.map +1 -1
  231. package/dist/esm/components-page/team-invitation.js +16 -16
  232. package/dist/esm/components-page/team-invitation.js.map +1 -1
  233. package/dist/esm/dev-tool/dev-tool-core.d.ts +1 -1
  234. package/dist/esm/dev-tool/dev-tool-core.js +12 -12
  235. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  236. package/dist/esm/dev-tool/dev-tool-styles.d.ts +1 -1
  237. package/dist/esm/dev-tool/dev-tool-styles.js +371 -371
  238. package/dist/esm/dev-tool/dev-tool-styles.js.map +1 -1
  239. package/dist/esm/dev-tool/dev-tool-trigger-position.js.map +1 -1
  240. package/dist/esm/dev-tool/dev-tool-trigger-position.test.js.map +1 -1
  241. package/dist/esm/dev-tool/index.d.ts +4 -4
  242. package/dist/esm/dev-tool/index.js +4 -4
  243. package/dist/esm/dev-tool/index.js.map +1 -1
  244. package/dist/esm/generated/env.d.ts +26 -0
  245. package/dist/esm/{lib → generated}/env.d.ts.map +1 -1
  246. package/dist/esm/generated/env.js +67 -0
  247. package/dist/esm/generated/env.js.map +1 -0
  248. package/dist/esm/generated/global-css.d.ts +1 -1
  249. package/dist/esm/generated/global-css.js +1 -1
  250. package/dist/esm/generated/global-css.js.map +1 -1
  251. package/dist/esm/generated/quetzal-translations.d.ts +2 -2
  252. package/dist/esm/generated/quetzal-translations.js.map +1 -1
  253. package/dist/esm/global.d.ts +8 -1
  254. package/dist/esm/global.d.ts.map +1 -0
  255. package/dist/esm/index.d.ts +4 -4
  256. package/dist/esm/index.js +3 -3
  257. package/dist/esm/integrations/convex/component/convex.config.js.map +1 -1
  258. package/dist/esm/integrations/convex.js +1 -1
  259. package/dist/esm/integrations/convex.js.map +1 -1
  260. package/dist/esm/lib/auth.js.map +1 -1
  261. package/dist/esm/lib/auth.test.js.map +1 -1
  262. package/dist/esm/lib/cookie.js +2 -2
  263. package/dist/esm/lib/cookie.js.map +1 -1
  264. package/dist/{lib/stack-app → esm/lib/hexclave-app}/api-keys/index.d.ts +2 -2
  265. package/dist/esm/lib/hexclave-app/api-keys/index.d.ts.map +1 -0
  266. package/dist/esm/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  267. package/dist/esm/lib/hexclave-app/api-keys/index.js.map +1 -0
  268. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  269. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  270. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +7 -7
  271. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  272. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
  273. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  274. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +16 -14
  275. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  276. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +76 -56
  277. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  278. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  279. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  280. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
  281. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  282. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/common.js +34 -20
  283. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  284. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  285. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.d.ts.map +1 -0
  286. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  287. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  288. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  289. package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  290. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  291. package/dist/esm/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  292. package/dist/esm/lib/hexclave-app/apps/implementations/index.js +27 -0
  293. package/dist/esm/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  294. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  295. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.d.ts.map +1 -0
  296. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  297. package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  298. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  299. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.d.ts.map +1 -0
  300. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +7 -7
  301. package/dist/esm/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  302. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  303. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.d.ts.map +1 -0
  304. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  305. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  306. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  307. package/dist/esm/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  308. package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  309. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.d.ts.map +1 -0
  310. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  311. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  312. package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  313. package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  314. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  315. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -0
  316. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +3 -3
  317. package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  318. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  319. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.d.ts.map +1 -0
  320. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +3 -3
  321. package/dist/esm/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  322. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +1 -1
  323. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.d.ts.map +1 -0
  324. package/dist/esm/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +3 -3
  325. package/dist/esm/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  326. package/dist/esm/lib/{stack-app → hexclave-app}/common.d.ts +7 -7
  327. package/dist/esm/lib/hexclave-app/common.d.ts.map +1 -0
  328. package/dist/esm/lib/hexclave-app/common.js +7 -0
  329. package/dist/esm/lib/hexclave-app/common.js.map +1 -0
  330. package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  331. package/dist/esm/lib/hexclave-app/connected-accounts/index.d.ts.map +1 -0
  332. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  333. package/dist/esm/lib/hexclave-app/contact-channels/index.d.ts.map +1 -0
  334. package/dist/esm/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  335. package/dist/esm/lib/hexclave-app/contact-channels/index.js.map +1 -0
  336. package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  337. package/dist/esm/lib/hexclave-app/customers/index.d.ts.map +1 -0
  338. package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  339. package/dist/esm/lib/hexclave-app/data-vault/index.d.ts.map +1 -0
  340. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email/index.d.ts +1 -1
  341. package/dist/esm/lib/hexclave-app/email/index.d.ts.map +1 -0
  342. package/dist/{lib/stack-app → esm/lib/hexclave-app}/email-templates/index.d.ts +1 -1
  343. package/dist/esm/lib/hexclave-app/email-templates/index.d.ts.map +1 -0
  344. package/dist/esm/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  345. package/dist/esm/lib/hexclave-app/email-templates/index.js.map +1 -0
  346. package/dist/esm/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  347. package/dist/esm/lib/{stack-app → hexclave-app}/index.js +2 -2
  348. package/dist/{lib/stack-app → esm/lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  349. package/dist/esm/lib/hexclave-app/internal-api-keys/index.d.ts.map +1 -0
  350. package/dist/esm/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  351. package/dist/esm/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  352. package/dist/{lib/stack-app → esm/lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  353. package/dist/esm/lib/hexclave-app/notification-categories/index.d.ts.map +1 -0
  354. package/dist/{lib/stack-app → esm/lib/hexclave-app}/permissions/index.d.ts +1 -1
  355. package/dist/esm/lib/hexclave-app/permissions/index.d.ts.map +1 -0
  356. package/dist/esm/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  357. package/dist/esm/lib/hexclave-app/permissions/index.js.map +1 -0
  358. package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  359. package/dist/esm/lib/hexclave-app/project-configs/index.d.ts.map +1 -0
  360. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  361. package/dist/esm/lib/hexclave-app/projects/index.d.ts.map +1 -0
  362. package/dist/esm/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  363. package/dist/esm/lib/hexclave-app/projects/index.js.map +1 -0
  364. package/dist/{lib/stack-app → esm/lib/hexclave-app}/session-replays/index.d.ts +1 -1
  365. package/dist/esm/lib/hexclave-app/session-replays/index.d.ts.map +1 -0
  366. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  367. package/dist/esm/lib/hexclave-app/teams/index.d.ts.map +1 -0
  368. package/dist/esm/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  369. package/dist/esm/lib/hexclave-app/teams/index.js.map +1 -0
  370. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  371. package/dist/esm/lib/hexclave-app/url-targets.d.ts.map +1 -0
  372. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
  373. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -0
  374. package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
  375. package/dist/esm/lib/hexclave-app/url-targets.test.js.map +1 -0
  376. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  377. package/dist/esm/lib/hexclave-app/users/index.d.ts.map +1 -0
  378. package/dist/esm/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  379. package/dist/esm/lib/hexclave-app/users/index.js.map +1 -0
  380. package/dist/esm/lib/hooks.d.ts +1 -1
  381. package/dist/esm/lib/hooks.js +9 -9
  382. package/dist/esm/lib/hooks.js.map +1 -1
  383. package/dist/esm/lib/translations.js.map +1 -1
  384. package/dist/esm/providers/hexclave-context.d.ts +11 -0
  385. package/dist/esm/providers/hexclave-context.d.ts.map +1 -0
  386. package/dist/esm/providers/hexclave-context.js +12 -0
  387. package/dist/esm/providers/hexclave-context.js.map +1 -0
  388. package/dist/esm/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  389. package/dist/esm/providers/hexclave-provider-client.d.ts.map +1 -0
  390. package/dist/esm/providers/hexclave-provider-client.js +30 -0
  391. package/dist/esm/providers/hexclave-provider-client.js.map +1 -0
  392. package/dist/esm/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +3 -3
  393. package/dist/esm/providers/hexclave-provider.d.ts.map +1 -0
  394. package/dist/esm/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  395. package/dist/esm/providers/hexclave-provider.js.map +1 -0
  396. package/dist/esm/providers/theme-provider.js.map +1 -1
  397. package/dist/esm/providers/translation-provider-client.js.map +1 -1
  398. package/dist/esm/providers/translation-provider.js.map +1 -1
  399. package/dist/esm/tanstack-start-server-context.d.ts +1 -1
  400. package/dist/esm/utils/browser-script.js.map +1 -1
  401. package/dist/esm/utils/constants.js.map +1 -1
  402. package/dist/esm/utils/url.js.map +1 -1
  403. package/dist/generated/env.d.ts +26 -0
  404. package/dist/{lib → generated}/env.d.ts.map +1 -1
  405. package/dist/generated/env.js +69 -0
  406. package/dist/generated/env.js.map +1 -0
  407. package/dist/generated/global-css.d.ts +1 -1
  408. package/dist/generated/global-css.js +1 -1
  409. package/dist/generated/global-css.js.map +1 -1
  410. package/dist/generated/quetzal-translations.d.ts +2 -2
  411. package/dist/generated/quetzal-translations.js.map +1 -1
  412. package/dist/global.d.ts +8 -1
  413. package/dist/global.d.ts.map +1 -0
  414. package/dist/index.d.ts +18 -18
  415. package/dist/index.js +9 -9
  416. package/dist/integrations/convex/component/convex.config.d.ts +2 -2
  417. package/dist/integrations/convex/component/convex.config.d.ts.map +1 -1
  418. package/dist/integrations/convex/component/convex.config.js.map +1 -1
  419. package/dist/integrations/convex.js +2 -2
  420. package/dist/integrations/convex.js.map +1 -1
  421. package/dist/lib/auth.js.map +1 -1
  422. package/dist/lib/auth.test.js.map +1 -1
  423. package/dist/lib/cookie.js +2 -2
  424. package/dist/lib/cookie.js.map +1 -1
  425. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts +2 -2
  426. package/dist/{esm/lib/stack-app → lib/hexclave-app}/api-keys/index.d.ts.map +1 -1
  427. package/dist/lib/{stack-app → hexclave-app}/api-keys/index.js +1 -1
  428. package/dist/lib/hexclave-app/api-keys/index.js.map +1 -0
  429. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.d.ts +6 -6
  430. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -0
  431. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/admin-app-impl.js +5 -5
  432. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -0
  433. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +381 -0
  434. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -0
  435. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.d.ts +16 -14
  436. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -0
  437. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.js +74 -54
  438. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -0
  439. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.js +1 -1
  440. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +1 -0
  441. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.d.ts +11 -11
  442. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -0
  443. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/common.js +33 -19
  444. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -0
  445. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.d.ts +1 -1
  446. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/event-tracker.d.ts.map +1 -1
  447. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.js +1 -1
  448. package/dist/lib/hexclave-app/apps/implementations/event-tracker.js.map +1 -0
  449. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.js +1 -1
  450. package/dist/lib/hexclave-app/apps/implementations/event-tracker.test.js.map +1 -0
  451. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +9 -0
  452. package/dist/lib/hexclave-app/apps/implementations/index.d.ts.map +1 -0
  453. package/dist/lib/hexclave-app/apps/implementations/index.js +31 -0
  454. package/dist/lib/hexclave-app/apps/implementations/index.js.map +1 -0
  455. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.d.ts +1 -1
  456. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/redirect-page-urls.d.ts.map +1 -1
  457. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/redirect-page-urls.js +1 -1
  458. package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js.map +1 -0
  459. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.d.ts +4 -4
  460. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/server-app-impl.d.ts.map +1 -1
  461. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/server-app-impl.js +6 -6
  462. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.js.map +1 -0
  463. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts +1 -1
  464. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-refresh-subscription.d.ts.map +1 -1
  465. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.js +1 -1
  466. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.js.map +1 -0
  467. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.js +1 -1
  468. package/dist/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.js.map +1 -0
  469. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts +1 -1
  470. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/implementations/session-replay.d.ts.map +1 -1
  471. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.js +1 -1
  472. package/dist/lib/hexclave-app/apps/implementations/session-replay.js.map +1 -0
  473. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.d.ts +1 -0
  474. package/dist/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.js +1 -1
  475. package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js.map +1 -0
  476. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.d.ts +1 -1
  477. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/admin-app.d.ts.map +1 -1
  478. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/admin-app.js +2 -2
  479. package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -0
  480. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.d.ts +4 -4
  481. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/client-app.d.ts.map +1 -1
  482. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/client-app.js +2 -2
  483. package/dist/lib/hexclave-app/apps/interfaces/client-app.js.map +1 -0
  484. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.d.ts +2 -2
  485. package/dist/{esm/lib/stack-app → lib/hexclave-app}/apps/interfaces/server-app.d.ts.map +1 -1
  486. package/dist/lib/{stack-app → hexclave-app}/apps/interfaces/server-app.js +2 -2
  487. package/dist/lib/hexclave-app/apps/interfaces/server-app.js.map +1 -0
  488. package/dist/lib/{stack-app → hexclave-app}/common.d.ts +8 -8
  489. package/dist/{esm/lib/stack-app → lib/hexclave-app}/common.d.ts.map +1 -1
  490. package/dist/lib/hexclave-app/common.js +9 -0
  491. package/dist/lib/hexclave-app/common.js.map +1 -0
  492. package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.d.ts +1 -1
  493. package/dist/{esm/lib/stack-app → lib/hexclave-app}/connected-accounts/index.d.ts.map +1 -1
  494. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.d.ts +1 -1
  495. package/dist/{esm/lib/stack-app → lib/hexclave-app}/contact-channels/index.d.ts.map +1 -1
  496. package/dist/lib/{stack-app → hexclave-app}/contact-channels/index.js +1 -1
  497. package/dist/lib/hexclave-app/contact-channels/index.js.map +1 -0
  498. package/dist/lib/{stack-app → hexclave-app}/customers/index.d.ts +1 -1
  499. package/dist/{esm/lib/stack-app → lib/hexclave-app}/customers/index.d.ts.map +1 -1
  500. package/dist/lib/{stack-app → hexclave-app}/data-vault/index.d.ts +1 -1
  501. package/dist/{esm/lib/stack-app → lib/hexclave-app}/data-vault/index.d.ts.map +1 -1
  502. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts +1 -1
  503. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email/index.d.ts.map +1 -1
  504. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts +1 -1
  505. package/dist/{esm/lib/stack-app → lib/hexclave-app}/email-templates/index.d.ts.map +1 -1
  506. package/dist/lib/{stack-app → hexclave-app}/email-templates/index.js +1 -1
  507. package/dist/lib/hexclave-app/email-templates/index.js.map +1 -0
  508. package/dist/lib/{stack-app → hexclave-app}/index.d.ts +2 -2
  509. package/dist/lib/{stack-app → hexclave-app}/index.js +2 -2
  510. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts +1 -1
  511. package/dist/{esm/lib/stack-app → lib/hexclave-app}/internal-api-keys/index.d.ts.map +1 -1
  512. package/dist/lib/{stack-app → hexclave-app}/internal-api-keys/index.js +1 -1
  513. package/dist/lib/hexclave-app/internal-api-keys/index.js.map +1 -0
  514. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts +1 -1
  515. package/dist/{esm/lib/stack-app → lib/hexclave-app}/notification-categories/index.d.ts.map +1 -1
  516. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts +1 -1
  517. package/dist/{esm/lib/stack-app → lib/hexclave-app}/permissions/index.d.ts.map +1 -1
  518. package/dist/lib/{stack-app → hexclave-app}/permissions/index.js +1 -1
  519. package/dist/lib/hexclave-app/permissions/index.js.map +1 -0
  520. package/dist/lib/{stack-app → hexclave-app}/project-configs/index.d.ts +1 -1
  521. package/dist/{esm/lib/stack-app → lib/hexclave-app}/project-configs/index.d.ts.map +1 -1
  522. package/dist/lib/{stack-app → hexclave-app}/projects/index.d.ts +1 -1
  523. package/dist/{esm/lib/stack-app → lib/hexclave-app}/projects/index.d.ts.map +1 -1
  524. package/dist/lib/{stack-app → hexclave-app}/projects/index.js +1 -1
  525. package/dist/lib/hexclave-app/projects/index.js.map +1 -0
  526. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts +1 -1
  527. package/dist/{esm/lib/stack-app → lib/hexclave-app}/session-replays/index.d.ts.map +1 -1
  528. package/dist/lib/{stack-app → hexclave-app}/teams/index.d.ts +1 -1
  529. package/dist/{esm/lib/stack-app → lib/hexclave-app}/teams/index.d.ts.map +1 -1
  530. package/dist/lib/{stack-app → hexclave-app}/teams/index.js +1 -1
  531. package/dist/lib/hexclave-app/teams/index.js.map +1 -0
  532. package/dist/lib/{stack-app → hexclave-app}/url-targets.d.ts +1 -1
  533. package/dist/{esm/lib/stack-app → lib/hexclave-app}/url-targets.d.ts.map +1 -1
  534. package/dist/lib/{stack-app → hexclave-app}/url-targets.js +26 -12
  535. package/dist/lib/hexclave-app/url-targets.js.map +1 -0
  536. package/dist/lib/hexclave-app/url-targets.test.d.ts +1 -0
  537. package/dist/lib/{stack-app → hexclave-app}/url-targets.test.js +13 -1
  538. package/dist/lib/hexclave-app/url-targets.test.js.map +1 -0
  539. package/dist/lib/{stack-app → hexclave-app}/users/index.d.ts +1 -1
  540. package/dist/{esm/lib/stack-app → lib/hexclave-app}/users/index.d.ts.map +1 -1
  541. package/dist/lib/{stack-app → hexclave-app}/users/index.js +1 -1
  542. package/dist/lib/hexclave-app/users/index.js.map +1 -0
  543. package/dist/lib/hooks.d.ts +3 -3
  544. package/dist/lib/hooks.d.ts.map +1 -1
  545. package/dist/lib/hooks.js +9 -9
  546. package/dist/lib/hooks.js.map +1 -1
  547. package/dist/lib/translations.js.map +1 -1
  548. package/dist/providers/hexclave-context.d.ts +11 -0
  549. package/dist/providers/hexclave-context.d.ts.map +1 -0
  550. package/dist/providers/hexclave-context.js +15 -0
  551. package/dist/providers/hexclave-context.js.map +1 -0
  552. package/dist/providers/{stack-provider-client.d.ts → hexclave-provider-client.d.ts} +5 -5
  553. package/dist/providers/hexclave-provider-client.d.ts.map +1 -0
  554. package/dist/providers/{stack-provider-client.js → hexclave-provider-client.js} +9 -9
  555. package/dist/providers/hexclave-provider-client.js.map +1 -0
  556. package/dist/providers/{stack-provider.d.ts → hexclave-provider.d.ts} +5 -5
  557. package/dist/providers/hexclave-provider.d.ts.map +1 -0
  558. package/dist/providers/{stack-provider.js → hexclave-provider.js} +6 -6
  559. package/dist/providers/hexclave-provider.js.map +1 -0
  560. package/dist/providers/theme-provider.js.map +1 -1
  561. package/dist/providers/translation-provider-client.js.map +1 -1
  562. package/dist/providers/translation-provider.js.map +1 -1
  563. package/dist/{storage-kTmOAWHW.d.ts → storage-CKzvsBxG.d.ts} +18 -18
  564. package/dist/{storage-kTmOAWHW.d.ts.map → storage-CKzvsBxG.d.ts.map} +1 -1
  565. package/dist/tanstack-start-server-context.d.ts +1 -1
  566. package/dist/utils/browser-script.js.map +1 -1
  567. package/dist/utils/constants.js.map +1 -1
  568. package/dist/utils/url.js.map +1 -1
  569. package/package.json +11 -8
  570. package/src/components/api-key-dialogs.tsx +173 -0
  571. package/src/components/api-key-table.tsx +127 -0
  572. package/src/components/credential-sign-in.tsx +83 -0
  573. package/src/components/credential-sign-up.tsx +108 -0
  574. package/src/components/elements/form-warning.tsx +17 -0
  575. package/src/components/elements/maybe-full-page.tsx +60 -0
  576. package/src/components/elements/separator-with-text.tsx +22 -0
  577. package/src/components/elements/sidebar-layout.tsx +136 -0
  578. package/src/components/elements/ssr-layout-effect.tsx +24 -0
  579. package/src/components/elements/user-avatar.tsx +32 -0
  580. package/src/components/link.tsx +40 -0
  581. package/src/components/magic-link-sign-in.tsx +143 -0
  582. package/src/components/message-cards/known-error-message-card.tsx +33 -0
  583. package/src/components/message-cards/message-card.tsx +46 -0
  584. package/src/components/message-cards/predefined-message-card.tsx +88 -0
  585. package/src/components/oauth-button-group.tsx +35 -0
  586. package/src/components/oauth-button.tsx +222 -0
  587. package/src/components/passkey-button.tsx +43 -0
  588. package/src/components/profile-image-editor.tsx +194 -0
  589. package/src/components/selected-team-switcher.tsx +97 -0
  590. package/src/components/team-icon.tsx +30 -0
  591. package/src/components/team-switcher.tsx +191 -0
  592. package/src/components/use-in-iframe.tsx +18 -0
  593. package/src/components/user-button.tsx +157 -0
  594. package/src/components-page/account-settings/active-sessions/active-sessions-page.tsx +238 -0
  595. package/src/components-page/account-settings/api-keys/api-keys-page.tsx +157 -0
  596. package/src/components-page/account-settings/editable-text.tsx +53 -0
  597. package/src/components-page/account-settings/email-and-auth/email-and-auth-page.tsx +24 -0
  598. package/src/components-page/account-settings/email-and-auth/emails-section.tsx +201 -0
  599. package/src/components-page/account-settings/email-and-auth/mfa-section.tsx +139 -0
  600. package/src/components-page/account-settings/email-and-auth/otp-section.tsx +102 -0
  601. package/src/components-page/account-settings/email-and-auth/passkey-section.tsx +112 -0
  602. package/src/components-page/account-settings/email-and-auth/password-section.tsx +174 -0
  603. package/src/components-page/account-settings/notifications/notifications-page.tsx +44 -0
  604. package/src/components-page/account-settings/page-layout.tsx +11 -0
  605. package/src/components-page/account-settings/payments/payments-page.tsx +73 -0
  606. package/src/components-page/account-settings/payments/payments-panel.tsx +543 -0
  607. package/src/components-page/account-settings/profile-page/profile-page.tsx +61 -0
  608. package/src/components-page/account-settings/section.tsx +26 -0
  609. package/src/components-page/account-settings/settings/delete-account-section.tsx +85 -0
  610. package/src/components-page/account-settings/settings/settings-page.tsx +19 -0
  611. package/src/components-page/account-settings/settings/sign-out-section.tsx +40 -0
  612. package/src/components-page/account-settings/teams/leave-team-section.tsx +57 -0
  613. package/src/components-page/account-settings/teams/team-api-keys-section.tsx +74 -0
  614. package/src/components-page/account-settings/teams/team-creation-page.tsx +92 -0
  615. package/src/components-page/account-settings/teams/team-display-name-section.tsx +31 -0
  616. package/src/components-page/account-settings/teams/team-member-invitation-section.tsx +128 -0
  617. package/src/components-page/account-settings/teams/team-member-list-section.tsx +59 -0
  618. package/src/components-page/account-settings/teams/team-page.tsx +28 -0
  619. package/src/components-page/account-settings/teams/team-profile-image-section.tsx +33 -0
  620. package/src/components-page/account-settings/teams/team-profile-user-section.tsx +29 -0
  621. package/src/components-page/account-settings.tsx +343 -0
  622. package/src/components-page/auth-page.tsx +206 -0
  623. package/src/components-page/cli-auth-confirm.test.tsx +204 -0
  624. package/src/components-page/cli-auth-confirm.tsx +278 -0
  625. package/src/components-page/email-verification.tsx +76 -0
  626. package/src/components-page/error-page.tsx +105 -0
  627. package/src/components-page/forgot-password.tsx +105 -0
  628. package/src/components-page/hexclave-handler-client.test.tsx +64 -0
  629. package/src/components-page/hexclave-handler-client.tsx +364 -0
  630. package/src/components-page/hexclave-handler.tsx +48 -0
  631. package/src/components-page/magic-link-callback.tsx +92 -0
  632. package/src/components-page/mfa.tsx +222 -0
  633. package/src/components-page/oauth-callback.tsx +78 -0
  634. package/src/components-page/onboarding.tsx +176 -0
  635. package/src/components-page/password-reset.tsx +185 -0
  636. package/src/components-page/section.tsx +27 -0
  637. package/src/components-page/sign-in.tsx +34 -0
  638. package/src/components-page/sign-out.tsx +37 -0
  639. package/src/components-page/sign-up.tsx +24 -0
  640. package/src/components-page/team-creation.tsx +78 -0
  641. package/src/components-page/team-invitation.tsx +150 -0
  642. package/src/dev-tool/dev-tool-core.ts +2460 -0
  643. package/src/dev-tool/dev-tool-styles.ts +2758 -0
  644. package/src/dev-tool/dev-tool-trigger-position.test.ts +113 -0
  645. package/src/dev-tool/dev-tool-trigger-position.ts +109 -0
  646. package/src/dev-tool/index.ts +149 -0
  647. package/src/generated/.gitignore +3 -0
  648. package/src/generated/quetzal-translations.ts +4312 -0
  649. package/src/global.css +13 -0
  650. package/src/global.d.ts +12 -0
  651. package/src/index.ts +39 -0
  652. package/src/integrations/convex/component/README.md +74 -0
  653. package/src/integrations/convex/component/convex.config.ts +9 -0
  654. package/src/integrations/convex.ts +28 -0
  655. package/src/lib/auth.test.ts +67 -0
  656. package/src/lib/auth.ts +175 -0
  657. package/src/lib/cookie.ts +421 -0
  658. package/src/lib/hexclave-app/api-keys/index.ts +73 -0
  659. package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +1261 -0
  660. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +454 -0
  661. package/src/lib/hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.ts +36 -0
  662. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +3956 -0
  663. package/src/lib/hexclave-app/apps/implementations/common.ts +264 -0
  664. package/src/lib/hexclave-app/apps/implementations/event-tracker.test.ts +105 -0
  665. package/src/lib/hexclave-app/apps/implementations/event-tracker.ts +306 -0
  666. package/src/lib/hexclave-app/apps/implementations/index.ts +35 -0
  667. package/src/lib/hexclave-app/apps/implementations/redirect-page-urls.ts +342 -0
  668. package/src/lib/hexclave-app/apps/implementations/server-app-impl.ts +1619 -0
  669. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.test.ts +106 -0
  670. package/src/lib/hexclave-app/apps/implementations/session-refresh-subscription.ts +52 -0
  671. package/src/lib/hexclave-app/apps/implementations/session-replay.test.ts +33 -0
  672. package/src/lib/hexclave-app/apps/implementations/session-replay.ts +356 -0
  673. package/src/lib/hexclave-app/apps/index.ts +40 -0
  674. package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +192 -0
  675. package/src/lib/hexclave-app/apps/interfaces/client-app.ts +180 -0
  676. package/src/lib/hexclave-app/apps/interfaces/server-app.ts +129 -0
  677. package/src/lib/hexclave-app/common.ts +216 -0
  678. package/src/lib/hexclave-app/connected-accounts/index.ts +49 -0
  679. package/src/lib/hexclave-app/contact-channels/index.ts +80 -0
  680. package/src/lib/hexclave-app/customers/index.ts +158 -0
  681. package/src/lib/hexclave-app/data-vault/index.ts +12 -0
  682. package/src/lib/hexclave-app/email/index.ts +280 -0
  683. package/src/lib/hexclave-app/email-templates/index.ts +24 -0
  684. package/src/lib/hexclave-app/index.ts +146 -0
  685. package/src/lib/hexclave-app/internal-api-keys/index.ts +55 -0
  686. package/src/lib/hexclave-app/notification-categories/index.ts +12 -0
  687. package/src/lib/hexclave-app/permissions/index.ts +75 -0
  688. package/src/lib/hexclave-app/project-configs/index.ts +103 -0
  689. package/src/lib/hexclave-app/projects/index.ts +236 -0
  690. package/src/lib/hexclave-app/session-replays/index.ts +72 -0
  691. package/src/lib/hexclave-app/teams/index.ts +206 -0
  692. package/src/lib/hexclave-app/url-targets.test.ts +270 -0
  693. package/src/lib/hexclave-app/url-targets.ts +413 -0
  694. package/src/lib/hexclave-app/users/index.ts +523 -0
  695. package/src/lib/hooks.tsx +63 -0
  696. package/src/lib/translations.tsx +23 -0
  697. package/src/providers/hexclave-context.tsx +20 -0
  698. package/src/providers/hexclave-provider-client.tsx +39 -0
  699. package/src/providers/hexclave-provider.tsx +48 -0
  700. package/src/providers/theme-provider.tsx +121 -0
  701. package/src/providers/translation-provider-client.tsx +35 -0
  702. package/src/providers/translation-provider.tsx +25 -0
  703. package/src/tanstack-start-server-context.d.ts +13 -0
  704. package/src/utils/browser-script.tsx +135 -0
  705. package/src/utils/constants.tsx +58 -0
  706. package/src/utils/url.ts +24 -0
  707. package/dist/components-page/stack-handler-client.d.ts.map +0 -1
  708. package/dist/components-page/stack-handler-client.js.map +0 -1
  709. package/dist/components-page/stack-handler.d.ts.map +0 -1
  710. package/dist/components-page/stack-handler.js.map +0 -1
  711. package/dist/esm/components-page/stack-handler-client.d.ts.map +0 -1
  712. package/dist/esm/components-page/stack-handler-client.js.map +0 -1
  713. package/dist/esm/components-page/stack-handler.d.ts.map +0 -1
  714. package/dist/esm/components-page/stack-handler.js.map +0 -1
  715. package/dist/esm/lib/env.d.ts +0 -42
  716. package/dist/esm/lib/env.js +0 -93
  717. package/dist/esm/lib/env.js.map +0 -1
  718. package/dist/esm/lib/stack-app/api-keys/index.js.map +0 -1
  719. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  720. package/dist/esm/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  721. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
  722. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  723. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  724. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  725. package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  726. package/dist/esm/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  727. package/dist/esm/lib/stack-app/apps/implementations/common.js.map +0 -1
  728. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  729. package/dist/esm/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  730. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts +0 -9
  731. package/dist/esm/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  732. package/dist/esm/lib/stack-app/apps/implementations/index.js +0 -27
  733. package/dist/esm/lib/stack-app/apps/implementations/index.js.map +0 -1
  734. package/dist/esm/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  735. package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  736. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  737. package/dist/esm/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  738. package/dist/esm/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  739. package/dist/esm/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  740. package/dist/esm/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  741. package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  742. package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  743. package/dist/esm/lib/stack-app/common.js +0 -7
  744. package/dist/esm/lib/stack-app/common.js.map +0 -1
  745. package/dist/esm/lib/stack-app/contact-channels/index.js.map +0 -1
  746. package/dist/esm/lib/stack-app/email-templates/index.js.map +0 -1
  747. package/dist/esm/lib/stack-app/internal-api-keys/index.js.map +0 -1
  748. package/dist/esm/lib/stack-app/permissions/index.js.map +0 -1
  749. package/dist/esm/lib/stack-app/projects/index.js.map +0 -1
  750. package/dist/esm/lib/stack-app/teams/index.js.map +0 -1
  751. package/dist/esm/lib/stack-app/url-targets.js.map +0 -1
  752. package/dist/esm/lib/stack-app/url-targets.test.js.map +0 -1
  753. package/dist/esm/lib/stack-app/users/index.js.map +0 -1
  754. package/dist/esm/providers/stack-context.d.ts +0 -11
  755. package/dist/esm/providers/stack-context.d.ts.map +0 -1
  756. package/dist/esm/providers/stack-context.js +0 -12
  757. package/dist/esm/providers/stack-context.js.map +0 -1
  758. package/dist/esm/providers/stack-provider-client.d.ts.map +0 -1
  759. package/dist/esm/providers/stack-provider-client.js +0 -30
  760. package/dist/esm/providers/stack-provider-client.js.map +0 -1
  761. package/dist/esm/providers/stack-provider.d.ts.map +0 -1
  762. package/dist/esm/providers/stack-provider.js.map +0 -1
  763. package/dist/lib/env.d.ts +0 -42
  764. package/dist/lib/env.js +0 -95
  765. package/dist/lib/env.js.map +0 -1
  766. package/dist/lib/stack-app/api-keys/index.d.ts.map +0 -1
  767. package/dist/lib/stack-app/api-keys/index.js.map +0 -1
  768. package/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts.map +0 -1
  769. package/dist/lib/stack-app/apps/implementations/admin-app-impl.js.map +0 -1
  770. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js +0 -121
  771. package/dist/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.js.map +0 -1
  772. package/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts.map +0 -1
  773. package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +0 -1
  774. package/dist/lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.js.map +0 -1
  775. package/dist/lib/stack-app/apps/implementations/common.d.ts.map +0 -1
  776. package/dist/lib/stack-app/apps/implementations/common.js.map +0 -1
  777. package/dist/lib/stack-app/apps/implementations/event-tracker.d.ts.map +0 -1
  778. package/dist/lib/stack-app/apps/implementations/event-tracker.js.map +0 -1
  779. package/dist/lib/stack-app/apps/implementations/event-tracker.test.js.map +0 -1
  780. package/dist/lib/stack-app/apps/implementations/index.d.ts +0 -9
  781. package/dist/lib/stack-app/apps/implementations/index.d.ts.map +0 -1
  782. package/dist/lib/stack-app/apps/implementations/index.js +0 -31
  783. package/dist/lib/stack-app/apps/implementations/index.js.map +0 -1
  784. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.d.ts.map +0 -1
  785. package/dist/lib/stack-app/apps/implementations/redirect-page-urls.js.map +0 -1
  786. package/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts.map +0 -1
  787. package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +0 -1
  788. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.d.ts.map +0 -1
  789. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.js.map +0 -1
  790. package/dist/lib/stack-app/apps/implementations/session-refresh-subscription.test.js.map +0 -1
  791. package/dist/lib/stack-app/apps/implementations/session-replay.d.ts.map +0 -1
  792. package/dist/lib/stack-app/apps/implementations/session-replay.js.map +0 -1
  793. package/dist/lib/stack-app/apps/implementations/session-replay.test.js.map +0 -1
  794. package/dist/lib/stack-app/apps/interfaces/admin-app.d.ts.map +0 -1
  795. package/dist/lib/stack-app/apps/interfaces/admin-app.js.map +0 -1
  796. package/dist/lib/stack-app/apps/interfaces/client-app.d.ts.map +0 -1
  797. package/dist/lib/stack-app/apps/interfaces/client-app.js.map +0 -1
  798. package/dist/lib/stack-app/apps/interfaces/server-app.d.ts.map +0 -1
  799. package/dist/lib/stack-app/apps/interfaces/server-app.js.map +0 -1
  800. package/dist/lib/stack-app/common.d.ts.map +0 -1
  801. package/dist/lib/stack-app/common.js +0 -9
  802. package/dist/lib/stack-app/common.js.map +0 -1
  803. package/dist/lib/stack-app/connected-accounts/index.d.ts.map +0 -1
  804. package/dist/lib/stack-app/contact-channels/index.d.ts.map +0 -1
  805. package/dist/lib/stack-app/contact-channels/index.js.map +0 -1
  806. package/dist/lib/stack-app/customers/index.d.ts.map +0 -1
  807. package/dist/lib/stack-app/data-vault/index.d.ts.map +0 -1
  808. package/dist/lib/stack-app/email/index.d.ts.map +0 -1
  809. package/dist/lib/stack-app/email-templates/index.d.ts.map +0 -1
  810. package/dist/lib/stack-app/email-templates/index.js.map +0 -1
  811. package/dist/lib/stack-app/internal-api-keys/index.d.ts.map +0 -1
  812. package/dist/lib/stack-app/internal-api-keys/index.js.map +0 -1
  813. package/dist/lib/stack-app/notification-categories/index.d.ts.map +0 -1
  814. package/dist/lib/stack-app/permissions/index.d.ts.map +0 -1
  815. package/dist/lib/stack-app/permissions/index.js.map +0 -1
  816. package/dist/lib/stack-app/project-configs/index.d.ts.map +0 -1
  817. package/dist/lib/stack-app/projects/index.d.ts.map +0 -1
  818. package/dist/lib/stack-app/projects/index.js.map +0 -1
  819. package/dist/lib/stack-app/session-replays/index.d.ts.map +0 -1
  820. package/dist/lib/stack-app/teams/index.d.ts.map +0 -1
  821. package/dist/lib/stack-app/teams/index.js.map +0 -1
  822. package/dist/lib/stack-app/url-targets.d.ts.map +0 -1
  823. package/dist/lib/stack-app/url-targets.js.map +0 -1
  824. package/dist/lib/stack-app/url-targets.test.js.map +0 -1
  825. package/dist/lib/stack-app/users/index.d.ts.map +0 -1
  826. package/dist/lib/stack-app/users/index.js.map +0 -1
  827. package/dist/providers/stack-context.d.ts +0 -11
  828. package/dist/providers/stack-context.d.ts.map +0 -1
  829. package/dist/providers/stack-context.js +0 -15
  830. package/dist/providers/stack-context.js.map +0 -1
  831. package/dist/providers/stack-provider-client.d.ts.map +0 -1
  832. package/dist/providers/stack-provider-client.js.map +0 -1
  833. package/dist/providers/stack-provider.d.ts.map +0 -1
  834. package/dist/providers/stack-provider.js.map +0 -1
  835. /package/dist/{esm/lib/stack-app/apps/implementations/client-app-impl.cross-domain.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
  836. /package/dist/esm/{lib/stack-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts → components-page/hexclave-handler-client.test.d.ts} +0 -0
  837. /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.cross-domain.test.d.ts +0 -0
  838. /package/dist/{lib/stack-app → esm/lib/hexclave-app}/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts +0 -0
  839. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/event-tracker.test.d.ts +0 -0
  840. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-refresh-subscription.test.d.ts +0 -0
  841. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/implementations/session-replay.test.d.ts +0 -0
  842. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  843. /package/dist/esm/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  844. /package/dist/esm/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  845. /package/dist/esm/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  846. /package/dist/esm/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  847. /package/dist/esm/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  848. /package/dist/esm/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  849. /package/dist/esm/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  850. /package/dist/esm/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
  851. /package/dist/esm/lib/{stack-app → hexclave-app}/url-targets.test.d.ts +0 -0
  852. /package/dist/lib/{stack-app/apps/implementations/event-tracker.test.d.ts → hexclave-app/apps/implementations/client-app-impl.cross-domain.test.d.ts} +0 -0
  853. /package/dist/lib/{stack-app/apps/implementations/session-refresh-subscription.test.d.ts → hexclave-app/apps/implementations/client-app-impl.oauth-prefetch.test.d.ts} +0 -0
  854. /package/dist/lib/{stack-app/apps/implementations/session-replay.test.d.ts → hexclave-app/apps/implementations/event-tracker.test.d.ts} +0 -0
  855. /package/dist/lib/{stack-app/url-targets.test.d.ts → hexclave-app/apps/implementations/session-refresh-subscription.test.d.ts} +0 -0
  856. /package/dist/lib/{stack-app → hexclave-app}/apps/index.d.ts +0 -0
  857. /package/dist/lib/{stack-app → hexclave-app}/apps/index.js +0 -0
  858. /package/dist/lib/{stack-app → hexclave-app}/connected-accounts/index.js +0 -0
  859. /package/dist/lib/{stack-app → hexclave-app}/customers/index.js +0 -0
  860. /package/dist/lib/{stack-app → hexclave-app}/data-vault/index.js +0 -0
  861. /package/dist/lib/{stack-app → hexclave-app}/email/index.js +0 -0
  862. /package/dist/lib/{stack-app → hexclave-app}/notification-categories/index.js +0 -0
  863. /package/dist/lib/{stack-app → hexclave-app}/project-configs/index.js +0 -0
  864. /package/dist/lib/{stack-app → hexclave-app}/session-replays/index.js +0 -0
@@ -0,0 +1,381 @@
1
+ const require_chunk = require('../../../../chunk-BE-pF4vm.js');
2
+ let vitest = require("vitest");
3
+ let _hexclave_shared_dist_sessions = require("@hexclave/shared/dist/sessions");
4
+ let _hexclave_shared_dist_utils_stores = require("@hexclave/shared/dist/utils/stores");
5
+ let ___interfaces_client_app_js = require("../interfaces/client-app.js");
6
+
7
+ //#region src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts
8
+ function createAccessTokenString(refreshTokenId) {
9
+ const encode = (value) => Buffer.from(JSON.stringify(value)).toString("base64url");
10
+ const nowSeconds = Math.floor(Date.now() / 1e3);
11
+ return [
12
+ encode({
13
+ alg: "none",
14
+ typ: "JWT"
15
+ }),
16
+ encode({
17
+ sub: "user-id",
18
+ exp: nowSeconds + 60,
19
+ iat: nowSeconds,
20
+ iss: "https://api.example.test",
21
+ aud: "project-id",
22
+ project_id: "project-id",
23
+ branch_id: "main",
24
+ refresh_token_id: refreshTokenId,
25
+ role: "authenticated",
26
+ name: null,
27
+ email: null,
28
+ email_verified: false,
29
+ selected_team_id: null,
30
+ signed_up_at: nowSeconds,
31
+ is_anonymous: false,
32
+ is_restricted: false,
33
+ restricted_reason: null,
34
+ requires_totp_mfa: false
35
+ }),
36
+ ""
37
+ ].join(".");
38
+ }
39
+ function createMockDocument() {
40
+ const cookieJar = /* @__PURE__ */ new Map();
41
+ return {
42
+ get cookie() {
43
+ return [...cookieJar.entries()].map(([key, value]) => `${key}=${value}`).join("; ");
44
+ },
45
+ set cookie(str) {
46
+ const [nameValue] = str.split(";");
47
+ const eqIndex = nameValue.indexOf("=");
48
+ if (eqIndex < 0) return;
49
+ cookieJar.set(nameValue.slice(0, eqIndex).trim(), nameValue.slice(eqIndex + 1).trim());
50
+ },
51
+ createElement: () => ({})
52
+ };
53
+ }
54
+ (0, vitest.describe)("StackClientApp cross-domain auth", () => {
55
+ (0, vitest.it)("uses the fresh post-auth refresh token when minting a cross-domain handoff", async () => {
56
+ const freshAccessToken = createAccessTokenString("fresh-refresh-token-id");
57
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
58
+ baseUrl: "http://localhost:12345",
59
+ projectId: "00000000-0000-4000-8000-000000000000",
60
+ publishableClientKey: "stack-pk-test",
61
+ tokenStore: {
62
+ accessToken: createAccessTokenString("stale-refresh-token-id"),
63
+ refreshToken: "stale-refresh-token"
64
+ },
65
+ redirectMethod: "none",
66
+ noAutomaticPrefetch: true
67
+ });
68
+ const clientInterface = Reflect.get(clientApp, "_interface");
69
+ const originalSendClientRequest = Reflect.get(clientInterface, "sendClientRequest");
70
+ const originalFetchNewAccessToken = Reflect.get(clientInterface, "fetchNewAccessToken");
71
+ const capturedRefreshTokens = [];
72
+ const capturedAccessTokenRefreshTokenIds = [];
73
+ const refreshedRawRefreshTokens = [];
74
+ Reflect.set(clientInterface, "sendClientRequest", async (_path, _requestOptions, session) => {
75
+ const getRefreshToken = Reflect.get(session ?? {}, "getRefreshToken");
76
+ const getOrFetchLikelyValidTokens = Reflect.get(session ?? {}, "getOrFetchLikelyValidTokens");
77
+ if (typeof getRefreshToken !== "function") throw new Error("Expected cross-domain auth to pass a session to the client interface.");
78
+ if (typeof getOrFetchLikelyValidTokens !== "function") throw new Error("Expected cross-domain auth to pass a session with token accessors.");
79
+ const refreshToken = getRefreshToken.call(session);
80
+ const refreshTokenString = Reflect.get(refreshToken ?? {}, "token");
81
+ if (typeof refreshTokenString !== "string") throw new Error("Expected cross-domain auth to pass a refresh-token-backed session.");
82
+ capturedRefreshTokens.push(refreshTokenString);
83
+ const tokens = await getOrFetchLikelyValidTokens.call(session, 0, null);
84
+ capturedAccessTokenRefreshTokenIds.push(tokens.accessToken.payload.refresh_token_id);
85
+ return {
86
+ ok: true,
87
+ json: async () => ({ redirect_url: "https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state" })
88
+ };
89
+ });
90
+ Reflect.set(clientInterface, "fetchNewAccessToken", async (refreshToken) => {
91
+ const refreshTokenString = Reflect.get(refreshToken ?? {}, "token");
92
+ if (typeof refreshTokenString !== "string") throw new Error("Expected refresh token while fetching a new access token.");
93
+ refreshedRawRefreshTokens.push(refreshTokenString);
94
+ return _hexclave_shared_dist_sessions.AccessToken.createIfValid(freshAccessToken) ?? (() => {
95
+ throw new Error("Expected test access token to be valid");
96
+ })();
97
+ });
98
+ try {
99
+ const createCrossDomainAuthRedirectUrl = Reflect.get(clientApp, "_createCrossDomainAuthRedirectUrl");
100
+ if (typeof createCrossDomainAuthRedirectUrl !== "function") throw new Error("Expected StackClientApp to expose _createCrossDomainAuthRedirectUrl in tests.");
101
+ await (0, vitest.expect)(createCrossDomainAuthRedirectUrl.call(clientApp, {
102
+ redirectUri: "https://example.com/handler/oauth-callback",
103
+ state: "handoff-state",
104
+ codeChallenge: "abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~",
105
+ afterCallbackRedirectUrl: "https://example.com/account-settings",
106
+ overrideTokenStoreInit: {
107
+ accessToken: createAccessTokenString("fresh-stale-refresh-token-id"),
108
+ refreshToken: "fresh-refresh-token"
109
+ }
110
+ })).resolves.toBe("https://example.com/handler/oauth-callback?code=handoff-code&state=handoff-state");
111
+ } finally {
112
+ Reflect.set(clientInterface, "sendClientRequest", originalSendClientRequest);
113
+ Reflect.set(clientInterface, "fetchNewAccessToken", originalFetchNewAccessToken);
114
+ }
115
+ (0, vitest.expect)(refreshedRawRefreshTokens).toEqual(["fresh-refresh-token"]);
116
+ (0, vitest.expect)(capturedRefreshTokens).toEqual(["fresh-refresh-token"]);
117
+ (0, vitest.expect)(capturedAccessTokenRefreshTokenIds).toEqual(["fresh-refresh-token-id"]);
118
+ });
119
+ (0, vitest.it)("uses a fresh nested OAuth state while preserving the outer cross-domain return state", async () => {
120
+ const projectId = "00000000-0000-4000-8000-000000000002";
121
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
122
+ baseUrl: "http://localhost:12345",
123
+ projectId,
124
+ publishableClientKey: "stack-pk-test",
125
+ tokenStore: "memory",
126
+ redirectMethod: "window",
127
+ urls: { default: { type: "hosted" } },
128
+ noAutomaticPrefetch: true
129
+ });
130
+ const outerState = "outer-cross-domain-state";
131
+ const outerCodeChallenge = "abcdefghijklmnopqrstuvwxyzABCDEFG_0123456789-._~";
132
+ const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);
133
+ currentUrl.searchParams.set("after_auth_return_to", `https://demo.stack-auth.com/?hexclave_cross_domain_auth=1&hexclave_cross_domain_state=${outerState}`);
134
+ currentUrl.searchParams.set("hexclave_cross_domain_state", outerState);
135
+ currentUrl.searchParams.set("hexclave_cross_domain_code_challenge", outerCodeChallenge);
136
+ currentUrl.searchParams.set("hexclave_cross_domain_after_callback_redirect_url", "https://demo.stack-auth.com/");
137
+ currentUrl.searchParams.set("stack_nested_cross_domain_auth_refresh_token_id", "source-session");
138
+ currentUrl.searchParams.set("stack_nested_cross_domain_auth_callback_url", "https://demo.stack-auth.com/");
139
+ const previousWindow = globalThis.window;
140
+ const previousDocument = globalThis.document;
141
+ let redirectedUrl = "";
142
+ vitest.vi.spyOn(clientApp, "_fetchCurrentRefreshTokenIdIfSignedIn").mockResolvedValue(null);
143
+ vitest.vi.spyOn(clientApp, "_getCrossDomainHandoffParamsForRedirect").mockResolvedValue({
144
+ state: "fresh-nested-state",
145
+ codeChallenge: "fresh-nested-code-challenge"
146
+ });
147
+ vitest.vi.spyOn(clientApp, "_isTrusted").mockResolvedValue(true);
148
+ globalThis.document = createMockDocument();
149
+ globalThis.window = { location: {
150
+ href: currentUrl.toString(),
151
+ replace: (url) => {
152
+ redirectedUrl = url;
153
+ throw new Error("INTENTIONAL_TEST_ABORT");
154
+ }
155
+ } };
156
+ try {
157
+ await (0, vitest.expect)(clientApp._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError("INTENTIONAL_TEST_ABORT");
158
+ } finally {
159
+ globalThis.window = previousWindow;
160
+ globalThis.document = previousDocument;
161
+ }
162
+ const redirectUrl = new URL(redirectedUrl);
163
+ (0, vitest.expect)(redirectUrl.searchParams.get("state")).toBe("fresh-nested-state");
164
+ (0, vitest.expect)(redirectUrl.searchParams.get("code_challenge")).toBe("fresh-nested-code-challenge");
165
+ const redirectUri = new URL(redirectUrl.searchParams.get("redirect_uri") ?? "");
166
+ (0, vitest.expect)(redirectUri.searchParams.get("hexclave_cross_domain_state")).toBe(outerState);
167
+ (0, vitest.expect)(redirectUri.searchParams.get("hexclave_cross_domain_code_challenge")).toBe(outerCodeChallenge);
168
+ (0, vitest.expect)(redirectUri.searchParams.get("hexclave_cross_domain_after_callback_redirect_url")).toBe("https://demo.stack-auth.com/");
169
+ });
170
+ (0, vitest.it)("clears a stale target-domain session before deferring to the source-domain session", async () => {
171
+ const projectId = "00000000-0000-4000-8000-000000000006";
172
+ const hostedAccessToken = createAccessTokenString("hosted-old-refresh-token-id");
173
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
174
+ baseUrl: "http://localhost:12345",
175
+ projectId,
176
+ publishableClientKey: "stack-pk-test",
177
+ tokenStore: "memory",
178
+ redirectMethod: "window",
179
+ urls: { default: { type: "hosted" } },
180
+ noAutomaticPrefetch: true
181
+ });
182
+ const tokenStore = Reflect.get(clientApp, "_memoryTokenStore");
183
+ if (!(tokenStore instanceof _hexclave_shared_dist_utils_stores.Store)) throw new Error("Expected StackClientApp to use a memory token store in this test.");
184
+ tokenStore.set({
185
+ refreshToken: "hosted-old-refresh-token",
186
+ accessToken: hostedAccessToken
187
+ });
188
+ const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);
189
+ currentUrl.searchParams.set("stack_nested_cross_domain_auth_refresh_token_id", "source-anonymous-refresh-token-id");
190
+ currentUrl.searchParams.set("stack_nested_cross_domain_auth_callback_url", "https://demo.stack-auth.com/handler/oauth-callback");
191
+ currentUrl.searchParams.set("hexclave_cross_domain_state", "outer-state");
192
+ currentUrl.searchParams.set("hexclave_cross_domain_code_challenge", "outer-code-challenge");
193
+ currentUrl.searchParams.set("hexclave_cross_domain_after_callback_redirect_url", "https://demo.stack-auth.com/app");
194
+ const previousWindow = globalThis.window;
195
+ const previousDocument = globalThis.document;
196
+ let redirectedUrl = "";
197
+ const clientInterface = Reflect.get(clientApp, "_interface");
198
+ const originalFetchNewAccessToken = Reflect.get(clientInterface, "fetchNewAccessToken");
199
+ Reflect.set(clientInterface, "fetchNewAccessToken", async () => {
200
+ return _hexclave_shared_dist_sessions.AccessToken.createIfValid(hostedAccessToken) ?? (() => {
201
+ throw new Error("Expected test access token to be valid");
202
+ })();
203
+ });
204
+ vitest.vi.spyOn(clientApp, "_isTrusted").mockResolvedValue(true);
205
+ globalThis.document = createMockDocument();
206
+ globalThis.window = { location: {
207
+ href: currentUrl.toString(),
208
+ replace: (url) => {
209
+ redirectedUrl = url;
210
+ throw new Error("INTENTIONAL_TEST_ABORT");
211
+ }
212
+ } };
213
+ try {
214
+ await (0, vitest.expect)(clientApp._maybeHandleNestedCrossDomainAuth()).rejects.toThrowError("INTENTIONAL_TEST_ABORT");
215
+ } finally {
216
+ Reflect.set(clientInterface, "fetchNewAccessToken", originalFetchNewAccessToken);
217
+ globalThis.window = previousWindow;
218
+ globalThis.document = previousDocument;
219
+ }
220
+ (0, vitest.expect)(tokenStore.get()).toEqual({
221
+ refreshToken: null,
222
+ accessToken: null
223
+ });
224
+ (0, vitest.expect)(new URL(redirectedUrl).origin).toBe("https://demo.stack-auth.com");
225
+ });
226
+ (0, vitest.it)("uses the latest browser refresh cookie before computing nested cross-domain session IDs", async () => {
227
+ const projectId = "00000000-0000-4000-8000-000000000007";
228
+ const previousWindow = globalThis.window;
229
+ const previousDocument = globalThis.document;
230
+ globalThis.document = createMockDocument();
231
+ globalThis.window = { location: {
232
+ href: "https://demo.stack-auth.com/",
233
+ protocol: "https:",
234
+ hostname: "demo.stack-auth.com"
235
+ } };
236
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
237
+ baseUrl: "http://localhost:12345",
238
+ projectId,
239
+ publishableClientKey: "stack-pk-test",
240
+ tokenStore: "cookie",
241
+ redirectMethod: "none",
242
+ noAutomaticPrefetch: true
243
+ });
244
+ const clientInterface = Reflect.get(clientApp, "_interface");
245
+ const originalFetchNewAccessToken = Reflect.get(clientInterface, "fetchNewAccessToken");
246
+ const refreshedRawRefreshTokens = [];
247
+ try {
248
+ const getBrowserCookieTokenStore = Reflect.get(clientApp, "_getBrowserCookieTokenStore");
249
+ if (typeof getBrowserCookieTokenStore !== "function") throw new Error("Expected StackClientApp to expose _getBrowserCookieTokenStore in tests.");
250
+ getBrowserCookieTokenStore.call(clientApp).set({
251
+ refreshToken: "old-refresh-token",
252
+ accessToken: createAccessTokenString("old-refresh-token-id")
253
+ });
254
+ document.cookie = `__Host-hexclave-refresh-${projectId}--default=${JSON.stringify({
255
+ refresh_token: "new-refresh-token",
256
+ updated_at_millis: 1
257
+ })}`;
258
+ Reflect.set(clientInterface, "fetchNewAccessToken", async (refreshToken) => {
259
+ const refreshTokenString = Reflect.get(refreshToken ?? {}, "token");
260
+ if (typeof refreshTokenString !== "string") throw new Error("Expected refresh token while fetching a new access token.");
261
+ refreshedRawRefreshTokens.push(refreshTokenString);
262
+ return _hexclave_shared_dist_sessions.AccessToken.createIfValid(createAccessTokenString("new-refresh-token-id")) ?? (() => {
263
+ throw new Error("Expected test access token to be valid");
264
+ })();
265
+ });
266
+ const fetchCurrentRefreshTokenIdIfSignedIn = Reflect.get(clientApp, "_fetchCurrentRefreshTokenIdIfSignedIn");
267
+ if (typeof fetchCurrentRefreshTokenIdIfSignedIn !== "function") throw new Error("Expected StackClientApp to expose _fetchCurrentRefreshTokenIdIfSignedIn in tests.");
268
+ await (0, vitest.expect)(fetchCurrentRefreshTokenIdIfSignedIn.call(clientApp, { awaitPendingAuthResolutions: false })).resolves.toBe("new-refresh-token-id");
269
+ } finally {
270
+ Reflect.set(clientInterface, "fetchNewAccessToken", originalFetchNewAccessToken);
271
+ globalThis.window = previousWindow;
272
+ globalThis.document = previousDocument;
273
+ }
274
+ (0, vitest.expect)(refreshedRawRefreshTokens).toEqual(["new-refresh-token"]);
275
+ });
276
+ (0, vitest.it)("uses direct sign-out instead of hosted sign-out redirects when code execution is available", async () => {
277
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
278
+ baseUrl: "http://localhost:12345",
279
+ projectId: "00000000-0000-4000-8000-000000000003",
280
+ publishableClientKey: "stack-pk-test",
281
+ tokenStore: "memory",
282
+ redirectMethod: "window",
283
+ urls: {
284
+ handler: "/handler",
285
+ signOut: { type: "hosted" }
286
+ },
287
+ noAutomaticPrefetch: true
288
+ });
289
+ const signOutSpy = vitest.vi.spyOn(clientApp, "signOut").mockRejectedValue(/* @__PURE__ */ new Error("INTENTIONAL_TEST_ABORT"));
290
+ try {
291
+ await (0, vitest.expect)(clientApp.redirectToSignOut()).rejects.toThrowError("INTENTIONAL_TEST_ABORT");
292
+ (0, vitest.expect)(signOutSpy).toHaveBeenCalledWith();
293
+ } finally {
294
+ signOutSpy.mockRestore();
295
+ }
296
+ });
297
+ (0, vitest.it)("keeps default hosted signOut() on the source domain when afterSignOut is not configured", async () => {
298
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
299
+ baseUrl: "http://localhost:12345",
300
+ projectId: "00000000-0000-4000-8000-000000000004",
301
+ publishableClientKey: "stack-pk-test",
302
+ tokenStore: "memory",
303
+ redirectMethod: "window",
304
+ urls: { default: { type: "hosted" } },
305
+ noAutomaticPrefetch: true
306
+ });
307
+ const currentHref = "https://demo.stack-auth.com/settings?tab=profile";
308
+ const clientInterface = Reflect.get(clientApp, "_interface");
309
+ const originalSignOut = Reflect.get(clientInterface, "signOut");
310
+ Reflect.set(clientInterface, "signOut", async () => {});
311
+ const previousWindow = globalThis.window;
312
+ const previousDocument = globalThis.document;
313
+ let redirectedUrl = "";
314
+ globalThis.document = createMockDocument();
315
+ globalThis.window = { location: {
316
+ href: currentHref,
317
+ replace: (url) => {
318
+ redirectedUrl = url;
319
+ throw new Error("INTENTIONAL_TEST_ABORT");
320
+ }
321
+ } };
322
+ try {
323
+ const signOut = Reflect.get(clientApp, "_signOut");
324
+ if (typeof signOut !== "function") throw new Error("Expected StackClientApp to expose _signOut in tests.");
325
+ await (0, vitest.expect)(signOut.call(clientApp, Reflect.get(clientInterface, "createSession").call(clientInterface, { refreshToken: null }))).rejects.toThrowError("INTENTIONAL_TEST_ABORT");
326
+ } finally {
327
+ Reflect.set(clientInterface, "signOut", originalSignOut);
328
+ globalThis.window = previousWindow;
329
+ globalThis.document = previousDocument;
330
+ }
331
+ (0, vitest.expect)(redirectedUrl).toBe("/settings?tab=profile");
332
+ });
333
+ (0, vitest.it)("ignores stale session callbacks after a newer refresh token owns the token store", async () => {
334
+ const clientApp = new ___interfaces_client_app_js.StackClientApp({
335
+ baseUrl: "http://localhost:12345",
336
+ projectId: "00000000-0000-4000-8000-000000000005",
337
+ publishableClientKey: "stack-pk-test",
338
+ tokenStore: "memory",
339
+ redirectMethod: "none",
340
+ noAutomaticPrefetch: true
341
+ });
342
+ const oldAccessToken = createAccessTokenString("old-refresh-token-id");
343
+ const refreshedOldAccessToken = createAccessTokenString("refreshed-old-refresh-token-id");
344
+ const newAccessToken = createAccessTokenString("new-refresh-token-id");
345
+ const tokenStore = new _hexclave_shared_dist_utils_stores.Store({
346
+ refreshToken: "old-refresh-token",
347
+ accessToken: oldAccessToken
348
+ });
349
+ const clientInterface = Reflect.get(clientApp, "_interface");
350
+ const originalFetchNewAccessToken = Reflect.get(clientInterface, "fetchNewAccessToken");
351
+ Reflect.set(clientInterface, "fetchNewAccessToken", async () => {
352
+ return _hexclave_shared_dist_sessions.AccessToken.createIfValid(refreshedOldAccessToken) ?? (() => {
353
+ throw new Error("Expected test access token to be valid");
354
+ })();
355
+ });
356
+ try {
357
+ const getSessionFromTokenStore = Reflect.get(clientApp, "_getSessionFromTokenStore");
358
+ if (typeof getSessionFromTokenStore !== "function") throw new Error("Expected StackClientApp to expose _getSessionFromTokenStore in tests.");
359
+ const oldSession = getSessionFromTokenStore.call(clientApp, tokenStore);
360
+ tokenStore.set({
361
+ refreshToken: "new-refresh-token",
362
+ accessToken: newAccessToken
363
+ });
364
+ await oldSession.fetchNewTokens();
365
+ (0, vitest.expect)(tokenStore.get()).toEqual({
366
+ refreshToken: "new-refresh-token",
367
+ accessToken: newAccessToken
368
+ });
369
+ oldSession.markInvalid();
370
+ (0, vitest.expect)(tokenStore.get()).toEqual({
371
+ refreshToken: "new-refresh-token",
372
+ accessToken: newAccessToken
373
+ });
374
+ } finally {
375
+ Reflect.set(clientInterface, "fetchNewAccessToken", originalFetchNewAccessToken);
376
+ }
377
+ });
378
+ });
379
+
380
+ //#endregion
381
+ //# sourceMappingURL=client-app-impl.cross-domain.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-impl.cross-domain.test.js","names":["StackClientApp","AccessToken","Store","vi"],"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 { AccessToken } from \"@hexclave/shared/dist/sessions\";\nimport { Store } from \"@hexclave/shared/dist/utils/stores\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\nfunction createAccessTokenString(refreshTokenId: string): string {\n const encode = (value: unknown) => Buffer.from(JSON.stringify(value)).toString(\"base64url\");\n const nowSeconds = Math.floor(Date.now() / 1000);\n return [\n encode({ alg: \"none\", typ: \"JWT\" }),\n encode({\n sub: \"user-id\",\n exp: nowSeconds + 60,\n iat: nowSeconds,\n iss: \"https://api.example.test\",\n aud: \"project-id\",\n project_id: \"project-id\",\n branch_id: \"main\",\n refresh_token_id: refreshTokenId,\n role: \"authenticated\",\n name: null,\n email: null,\n email_verified: false,\n selected_team_id: null,\n signed_up_at: nowSeconds,\n is_anonymous: false,\n is_restricted: false,\n restricted_reason: null,\n requires_totp_mfa: false,\n }),\n \"\",\n ].join(\".\");\n}\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 freshAccessToken = createAccessTokenString(\"fresh-refresh-token-id\");\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: createAccessTokenString(\"stale-refresh-token-id\"),\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 originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n const capturedRefreshTokens: string[] = [];\n const capturedAccessTokenRefreshTokenIds: string[] = [];\n const refreshedRawRefreshTokens: string[] = [];\n\n Reflect.set(clientInterface, \"sendClientRequest\", async (_path: unknown, _requestOptions: unknown, session: unknown) => {\n const getRefreshToken = Reflect.get(session ?? {}, \"getRefreshToken\");\n const getOrFetchLikelyValidTokens = Reflect.get(session ?? {}, \"getOrFetchLikelyValidTokens\");\n if (typeof getRefreshToken !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session to the client interface.\");\n }\n if (typeof getOrFetchLikelyValidTokens !== \"function\") {\n throw new Error(\"Expected cross-domain auth to pass a session with token accessors.\");\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 const tokens = await getOrFetchLikelyValidTokens.call(session, 0, null);\n capturedAccessTokenRefreshTokenIds.push(tokens.accessToken.payload.refresh_token_id);\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 Reflect.set(clientInterface, \"fetchNewAccessToken\", async (refreshToken: unknown) => {\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected refresh token while fetching a new access token.\");\n }\n refreshedRawRefreshTokens.push(refreshTokenString);\n return AccessToken.createIfValid(freshAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\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: createAccessTokenString(\"fresh-stale-refresh-token-id\"),\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 Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n }\n\n expect(refreshedRawRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n expect(capturedRefreshTokens).toEqual([\"fresh-refresh-token\"]);\n expect(capturedAccessTokenRefreshTokenIds).toEqual([\"fresh-refresh-token-id\"]);\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, \"_fetchCurrentRefreshTokenIdIfSignedIn\").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 it(\"clears a stale target-domain session before deferring to the source-domain session\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000006\";\n const hostedAccessToken = createAccessTokenString(\"hosted-old-refresh-token-id\");\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 tokenStore = Reflect.get(clientApp, \"_memoryTokenStore\");\n if (!(tokenStore instanceof Store)) {\n throw new Error(\"Expected StackClientApp to use a memory token store in this test.\");\n }\n tokenStore.set({\n refreshToken: \"hosted-old-refresh-token\",\n accessToken: hostedAccessToken,\n });\n\n const currentUrl = new URL(`https://${projectId}.example-stack-hosted.test/handler/sign-in`);\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_refresh_token_id\", \"source-anonymous-refresh-token-id\");\n currentUrl.searchParams.set(\"stack_nested_cross_domain_auth_callback_url\", \"https://demo.stack-auth.com/handler/oauth-callback\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_state\", \"outer-state\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_code_challenge\", \"outer-code-challenge\");\n currentUrl.searchParams.set(\"hexclave_cross_domain_after_callback_redirect_url\", \"https://demo.stack-auth.com/app\");\n\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async () => {\n return AccessToken.createIfValid(hostedAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\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 Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(tokenStore.get()).toEqual({\n refreshToken: null,\n accessToken: null,\n });\n expect(new URL(redirectedUrl).origin).toBe(\"https://demo.stack-auth.com\");\n });\n\n it(\"uses the latest browser refresh cookie before computing nested cross-domain session IDs\", async () => {\n const projectId = \"00000000-0000-4000-8000-000000000007\";\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: \"https://demo.stack-auth.com/\",\n protocol: \"https:\",\n hostname: \"demo.stack-auth.com\",\n },\n } as any;\n\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId,\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"cookie\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n const refreshedRawRefreshTokens: string[] = [];\n\n try {\n const getBrowserCookieTokenStore = Reflect.get(clientApp, \"_getBrowserCookieTokenStore\");\n if (typeof getBrowserCookieTokenStore !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _getBrowserCookieTokenStore in tests.\");\n }\n const tokenStore = getBrowserCookieTokenStore.call(clientApp);\n tokenStore.set({\n refreshToken: \"old-refresh-token\",\n accessToken: createAccessTokenString(\"old-refresh-token-id\"),\n });\n\n document.cookie = `__Host-hexclave-refresh-${projectId}--default=${JSON.stringify({\n refresh_token: \"new-refresh-token\",\n updated_at_millis: 1,\n })}`;\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async (refreshToken: unknown) => {\n const refreshTokenString = Reflect.get(refreshToken ?? {}, \"token\");\n if (typeof refreshTokenString !== \"string\") {\n throw new Error(\"Expected refresh token while fetching a new access token.\");\n }\n refreshedRawRefreshTokens.push(refreshTokenString);\n return AccessToken.createIfValid(createAccessTokenString(\"new-refresh-token-id\")) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n\n const fetchCurrentRefreshTokenIdIfSignedIn = Reflect.get(clientApp, \"_fetchCurrentRefreshTokenIdIfSignedIn\");\n if (typeof fetchCurrentRefreshTokenIdIfSignedIn !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _fetchCurrentRefreshTokenIdIfSignedIn in tests.\");\n }\n await expect(fetchCurrentRefreshTokenIdIfSignedIn.call(clientApp, {\n awaitPendingAuthResolutions: false,\n })).resolves.toBe(\"new-refresh-token-id\");\n } finally {\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(refreshedRawRefreshTokens).toEqual([\"new-refresh-token\"]);\n });\n\n it(\"uses direct sign-out instead of hosted sign-out redirects when code execution is available\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000003\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n handler: \"/handler\",\n signOut: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const signOutSpy = vi.spyOn(clientApp, \"signOut\").mockRejectedValue(new Error(\"INTENTIONAL_TEST_ABORT\"));\n\n try {\n await expect(clientApp.redirectToSignOut()).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n expect(signOutSpy).toHaveBeenCalledWith();\n } finally {\n signOutSpy.mockRestore();\n }\n });\n\n it(\"keeps default hosted signOut() on the source domain when afterSignOut is not configured\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000004\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"window\",\n urls: {\n default: { type: \"hosted\" },\n },\n noAutomaticPrefetch: true,\n });\n const currentHref = \"https://demo.stack-auth.com/settings?tab=profile\";\n\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalSignOut = Reflect.get(clientInterface, \"signOut\");\n Reflect.set(clientInterface, \"signOut\", async () => {});\n const previousWindow = globalThis.window;\n const previousDocument = globalThis.document;\n let redirectedUrl = \"\";\n\n globalThis.document = createMockDocument();\n globalThis.window = {\n location: {\n href: currentHref,\n replace: (url: string) => {\n redirectedUrl = url;\n throw new Error(\"INTENTIONAL_TEST_ABORT\");\n },\n },\n } as any;\n\n try {\n const signOut = Reflect.get(clientApp, \"_signOut\");\n if (typeof signOut !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _signOut in tests.\");\n }\n await expect(signOut.call(clientApp, Reflect.get(clientInterface, \"createSession\").call(clientInterface, {\n refreshToken: null,\n }))).rejects.toThrowError(\"INTENTIONAL_TEST_ABORT\");\n } finally {\n Reflect.set(clientInterface, \"signOut\", originalSignOut);\n globalThis.window = previousWindow;\n globalThis.document = previousDocument;\n }\n\n expect(redirectedUrl).toBe(\"/settings?tab=profile\");\n });\n\n it(\"ignores stale session callbacks after a newer refresh token owns the token store\", async () => {\n const clientApp = new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000005\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n });\n const oldAccessToken = createAccessTokenString(\"old-refresh-token-id\");\n const refreshedOldAccessToken = createAccessTokenString(\"refreshed-old-refresh-token-id\");\n const newAccessToken = createAccessTokenString(\"new-refresh-token-id\");\n const tokenStore = new Store({\n refreshToken: \"old-refresh-token\",\n accessToken: oldAccessToken,\n });\n const clientInterface = Reflect.get(clientApp, \"_interface\");\n const originalFetchNewAccessToken = Reflect.get(clientInterface, \"fetchNewAccessToken\");\n Reflect.set(clientInterface, \"fetchNewAccessToken\", async () => {\n return AccessToken.createIfValid(refreshedOldAccessToken) ?? (() => {\n throw new Error(\"Expected test access token to be valid\");\n })();\n });\n\n try {\n const getSessionFromTokenStore = Reflect.get(clientApp, \"_getSessionFromTokenStore\");\n if (typeof getSessionFromTokenStore !== \"function\") {\n throw new Error(\"Expected StackClientApp to expose _getSessionFromTokenStore in tests.\");\n }\n const oldSession = getSessionFromTokenStore.call(clientApp, tokenStore);\n tokenStore.set({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n\n await oldSession.fetchNewTokens();\n expect(tokenStore.get()).toEqual({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n\n oldSession.markInvalid();\n expect(tokenStore.get()).toEqual({\n refreshToken: \"new-refresh-token\",\n accessToken: newAccessToken,\n });\n } finally {\n Reflect.set(clientInterface, \"fetchNewAccessToken\", originalFetchNewAccessToken);\n }\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,9 +145,10 @@ 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
- protected _getCurrentRefreshTokenIdIfSignedIn(options?: {
151
+ protected _fetchCurrentRefreshTokenIdIfSignedIn(options?: {
151
152
  awaitPendingAuthResolutions?: boolean;
152
153
  overrideTokenStoreInit?: TokenStoreInit;
153
154
  }): Promise<string | null>;
@@ -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
@@ -182,6 +182,7 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
182
182
  private _parseStructuredRefreshCookie;
183
183
  private _extractRefreshTokenFromCookieMap;
184
184
  protected _getTokensFromCookies(cookies: cookie.Cookies): TokenObject;
185
+ private _getCurrentBrowserCookieTokenStoreValue;
185
186
  protected get _accessTokenCookieName(): string;
186
187
  protected get _legacyAccessTokenCookieName(): string;
187
188
  private _getAllBrowserCookies;
@@ -292,7 +293,7 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
292
293
  useInvoices(options: CustomerInvoicesRequestOptions): CustomerInvoicesList;
293
294
  protected _currentUserFromCrud(crud: NonNullable<CurrentUserCrud['Client']['Read']>, session: InternalSession): ProjectCurrentUser<ProjectId>;
294
295
  protected _clientSessionFromCrud(crud: SessionsCrud['Client']['Read']): ActiveSession;
295
- protected _getOwnedAdminApp(forProjectId: string, session: InternalSession): _StackAdminAppImplIncomplete<false, string>;
296
+ protected _getOwnedAdminApp(forProjectId: string, session: InternalSession): _HexclaveAdminAppImplIncomplete<false, string>;
296
297
  get projectId(): ProjectId;
297
298
  get version(): string;
298
299
  private _botChallengeSiteKeysWarned;
@@ -481,6 +482,7 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
481
482
  protected _signOut(session: InternalSession, options?: {
482
483
  redirectUrl?: URL | string;
483
484
  }): Promise<void>;
485
+ protected _redirectToDefaultAfterSignOut(): Promise<void>;
484
486
  signOut(options?: {
485
487
  redirectUrl?: URL | string;
486
488
  tokenStore?: TokenStoreInit;
@@ -538,10 +540,10 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
538
540
  protected _refreshUsers(): Promise<void>;
539
541
  protected _refreshProject(): Promise<void>;
540
542
  protected _refreshOwnedProjects(session: InternalSession): Promise<void>;
541
- static get [stackAppInternalsSymbol](): {
543
+ static get [hexclaveAppInternalsSymbol](): {
542
544
  fromClientJson: <HasTokenStore extends boolean, ProjectId extends string>(json: StackClientAppJson<HasTokenStore, ProjectId>) => StackClientApp<HasTokenStore, ProjectId>;
543
545
  };
544
- get [stackAppInternalsSymbol](): {
546
+ get [hexclaveAppInternalsSymbol](): {
545
547
  toClientJson: () => StackClientAppJson<HasTokenStore, ProjectId>;
546
548
  setCurrentUser: (userJsonPromise: Promise<CurrentUserCrud["Client"]["Read"] | null>) => void;
547
549
  getConstructorOptions: () => {
@@ -595,5 +597,5 @@ declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, Proje
595
597
  };
596
598
  }
597
599
  //#endregion
598
- export { _StackClientAppImplIncomplete };
600
+ export { _HexclaveClientAppImplIncomplete };
599
601
  //# 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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"}