@cedros/login-react 0.0.12 → 0.0.13

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 (428) hide show
  1. package/README.md +68 -0
  2. package/dist/AdminDepositList-Cx0xRwES.js +305 -0
  3. package/dist/AdminDepositList-Cx0xRwES.js.map +1 -0
  4. package/dist/AdminDepositList-UEcyRZkA.cjs +1 -0
  5. package/dist/AdminDepositList-UEcyRZkA.cjs.map +1 -0
  6. package/dist/AdminUserDetail-BzEIdNJh.cjs +1 -0
  7. package/dist/AdminUserDetail-BzEIdNJh.cjs.map +1 -0
  8. package/dist/AdminUserDetail-DHFDzY8B.js +1195 -0
  9. package/dist/AdminUserDetail-DHFDzY8B.js.map +1 -0
  10. package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs +1 -0
  11. package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs.map +1 -0
  12. package/dist/AdminWithdrawalHistory-BGjfrIe3.js +904 -0
  13. package/dist/AdminWithdrawalHistory-BGjfrIe3.js.map +1 -0
  14. package/dist/AuthenticationSettings-5Vi7Ib_A.cjs +1 -0
  15. package/dist/AuthenticationSettings-5Vi7Ib_A.cjs.map +1 -0
  16. package/dist/AuthenticationSettings-BPAh1my6.cjs +1 -0
  17. package/dist/AuthenticationSettings-BPAh1my6.cjs.map +1 -0
  18. package/dist/AuthenticationSettings-CJg8CJY9.js +9 -0
  19. package/dist/AuthenticationSettings-CJg8CJY9.js.map +1 -0
  20. package/dist/AuthenticationSettings-CR_i6TTS.js +495 -0
  21. package/dist/AuthenticationSettings-CR_i6TTS.js.map +1 -0
  22. package/dist/AutosaveStatus-CYkC2aI_.cjs +1 -0
  23. package/dist/AutosaveStatus-CYkC2aI_.cjs.map +1 -0
  24. package/dist/AutosaveStatus-N4uNS6-2.js +1497 -0
  25. package/dist/AutosaveStatus-N4uNS6-2.js.map +1 -0
  26. package/dist/CreditSystemSettings-BnAOK_tT.cjs +1 -0
  27. package/dist/CreditSystemSettings-BnAOK_tT.cjs.map +1 -0
  28. package/dist/CreditSystemSettings-CIf_SfJq.js +210 -0
  29. package/dist/CreditSystemSettings-CIf_SfJq.js.map +1 -0
  30. package/dist/CreditSystemSettings-CePYGgev.js +9 -0
  31. package/dist/CreditSystemSettings-CePYGgev.js.map +1 -0
  32. package/dist/CreditSystemSettings-Ck5WIMp3.cjs +1 -0
  33. package/dist/CreditSystemSettings-Ck5WIMp3.cjs.map +1 -0
  34. package/dist/{DepositsSection-0Hqr0yDm.js → DepositsSection-DA89uR9A.js} +5 -5
  35. package/dist/{DepositsSection-0Hqr0yDm.js.map → DepositsSection-DA89uR9A.js.map} +1 -1
  36. package/dist/DepositsSection-i6XdhLNs.cjs +1 -0
  37. package/dist/{DepositsSection-CGKCzM-H.cjs.map → DepositsSection-i6XdhLNs.cjs.map} +1 -1
  38. package/dist/EmailRegisterForm-BrDL3BZy.js +927 -0
  39. package/dist/EmailRegisterForm-BrDL3BZy.js.map +1 -0
  40. package/dist/EmailRegisterForm-CxktR-4J.cjs +1 -0
  41. package/dist/EmailRegisterForm-CxktR-4J.cjs.map +1 -0
  42. package/dist/EmailSettings-B8xwgd6_.cjs +1 -0
  43. package/dist/EmailSettings-B8xwgd6_.cjs.map +1 -0
  44. package/dist/{AuthenticationSettings-BSoIQ58T.js → EmailSettings-Bna7Z53E.js} +3 -3
  45. package/dist/EmailSettings-Bna7Z53E.js.map +1 -0
  46. package/dist/EmailSettings-DZywTTRq.cjs +1 -0
  47. package/dist/EmailSettings-DZywTTRq.cjs.map +1 -0
  48. package/dist/EmailSettings-DbMDfVaM.js +17 -0
  49. package/dist/EmailSettings-DbMDfVaM.js.map +1 -0
  50. package/dist/{EmbeddedWalletSettings-iVf_3pn3.js → EmbeddedWalletSettings-ANbhj3Lt.js} +3 -3
  51. package/dist/EmbeddedWalletSettings-ANbhj3Lt.js.map +1 -0
  52. package/dist/EmbeddedWalletSettings-BEztqO19.js +79 -0
  53. package/dist/EmbeddedWalletSettings-BEztqO19.js.map +1 -0
  54. package/dist/EmbeddedWalletSettings-D6M7pwgk.cjs +1 -0
  55. package/dist/EmbeddedWalletSettings-D6M7pwgk.cjs.map +1 -0
  56. package/dist/EmbeddedWalletSettings-DivEPn39.cjs +1 -0
  57. package/dist/EmbeddedWalletSettings-DivEPn39.cjs.map +1 -0
  58. package/dist/ErrorMessage-CHbYbVi2.cjs +1 -0
  59. package/dist/ErrorMessage-CHbYbVi2.cjs.map +1 -0
  60. package/dist/ErrorMessage-CcEK0pYO.js +64 -0
  61. package/dist/ErrorMessage-CcEK0pYO.js.map +1 -0
  62. package/dist/{GoogleLoginButton-BzHr545L.js → GoogleLoginButton-B3uRMJ_n.js} +4 -3
  63. package/dist/{GoogleLoginButton-BzHr545L.js.map → GoogleLoginButton-B3uRMJ_n.js.map} +1 -1
  64. package/dist/GoogleLoginButton-BydKswn4.cjs +1 -0
  65. package/dist/{GoogleLoginButton-DoAdOqb3.cjs.map → GoogleLoginButton-BydKswn4.cjs.map} +1 -1
  66. package/dist/LoadingSpinner-6vml-zwr.js +79 -0
  67. package/dist/LoadingSpinner-6vml-zwr.js.map +1 -0
  68. package/dist/LoadingSpinner-d6sSxgQN.cjs +1 -0
  69. package/dist/LoadingSpinner-d6sSxgQN.cjs.map +1 -0
  70. package/dist/PermissionsSection-BGaj_sI7.js +1026 -0
  71. package/dist/PermissionsSection-BGaj_sI7.js.map +1 -0
  72. package/dist/PermissionsSection-CKXXDfqi.cjs +1 -0
  73. package/dist/PermissionsSection-CKXXDfqi.cjs.map +1 -0
  74. package/dist/ServerSettings-B2RKhJtZ.js +84 -0
  75. package/dist/ServerSettings-B2RKhJtZ.js.map +1 -0
  76. package/dist/ServerSettings-BZXlm1BX.cjs +1 -0
  77. package/dist/ServerSettings-BZXlm1BX.cjs.map +1 -0
  78. package/dist/{ServerSettings-C_osdbiX.js → ServerSettings-Bqm4-bt2.js} +3 -3
  79. package/dist/ServerSettings-Bqm4-bt2.js.map +1 -0
  80. package/dist/ServerSettings-DZUKo6By.cjs +1 -0
  81. package/dist/ServerSettings-DZUKo6By.cjs.map +1 -0
  82. package/dist/SettingsPageLayout-COSYLMu7.cjs +1 -0
  83. package/dist/SettingsPageLayout-COSYLMu7.cjs.map +1 -0
  84. package/dist/SettingsPageLayout-DpgNEkuu.js +50 -0
  85. package/dist/SettingsPageLayout-DpgNEkuu.js.map +1 -0
  86. package/dist/{SolanaLoginButton-C-CfZxAZ.js → SolanaLoginButton-C_u9OppS.js} +5 -4
  87. package/dist/{SolanaLoginButton-C-CfZxAZ.js.map → SolanaLoginButton-C_u9OppS.js.map} +1 -1
  88. package/dist/SolanaLoginButton-fAW7kRUu.cjs +1 -0
  89. package/dist/{SolanaLoginButton-CPzms0kf.cjs.map → SolanaLoginButton-fAW7kRUu.cjs.map} +1 -1
  90. package/dist/StatsBar-BX-hHtTq.js +66 -0
  91. package/dist/StatsBar-BX-hHtTq.js.map +1 -0
  92. package/dist/StatsBar-DTUZCwDD.cjs +1 -0
  93. package/dist/StatsBar-DTUZCwDD.cjs.map +1 -0
  94. package/dist/{TeamSection-Bjt72upx.js → TeamSection-CvrCoa9D.js} +27 -26
  95. package/dist/TeamSection-CvrCoa9D.js.map +1 -0
  96. package/dist/TeamSection-DlUD5kp5.cjs +1 -0
  97. package/dist/TeamSection-DlUD5kp5.cjs.map +1 -0
  98. package/dist/UsersSection-C2U8Tb7V.cjs +1 -0
  99. package/dist/{UsersSection-DU86czWP.cjs.map → UsersSection-C2U8Tb7V.cjs.map} +1 -1
  100. package/dist/{UsersSection-hAcyfSZk.js → UsersSection-Dbh9PTSA.js} +17 -15
  101. package/dist/{UsersSection-hAcyfSZk.js.map → UsersSection-Dbh9PTSA.js.map} +1 -1
  102. package/dist/WebhookSettings-BT5q6AZ8.js +17 -0
  103. package/dist/WebhookSettings-BT5q6AZ8.js.map +1 -0
  104. package/dist/WebhookSettings-BWl_wsvg.cjs +1 -0
  105. package/dist/WebhookSettings-BWl_wsvg.cjs.map +1 -0
  106. package/dist/WebhookSettings-DXNH5bal.cjs +1 -0
  107. package/dist/WebhookSettings-DXNH5bal.cjs.map +1 -0
  108. package/dist/{WebhookSettings-IyhyTFes.js → WebhookSettings-bUg2u_p0.js} +4 -4
  109. package/dist/WebhookSettings-bUg2u_p0.js.map +1 -0
  110. package/dist/WithdrawalsSection-BL_LOUq8.cjs +1 -0
  111. package/dist/{WithdrawalsSection-iZJBuZ7O.cjs.map → WithdrawalsSection-BL_LOUq8.cjs.map} +1 -1
  112. package/dist/WithdrawalsSection-CN-lLnqX.js +20 -0
  113. package/dist/{WithdrawalsSection-B1415d-G.js.map → WithdrawalsSection-CN-lLnqX.js.map} +1 -1
  114. package/dist/admin-only.cjs +1 -0
  115. package/dist/admin-only.cjs.map +1 -0
  116. package/dist/{admin/types.d.ts → admin-only.d.ts} +228 -167
  117. package/dist/admin-only.js +8 -0
  118. package/dist/admin-only.js.map +1 -0
  119. package/dist/apiClient-B2JxVPlH.js +216 -0
  120. package/dist/apiClient-B2JxVPlH.js.map +1 -0
  121. package/dist/apiClient-CTTKhsYb.cjs +1 -0
  122. package/dist/apiClient-CTTKhsYb.cjs.map +1 -0
  123. package/dist/assets/argon2Worker-Bi5TuQvD.js.map +1 -1
  124. package/dist/email-only.cjs +1 -1
  125. package/dist/email-only.d.ts +634 -16
  126. package/dist/email-only.js +16 -13
  127. package/dist/email-only.js.map +1 -1
  128. package/dist/google-only.cjs +1 -1
  129. package/dist/google-only.d.ts +543 -13
  130. package/dist/google-only.js +11 -8
  131. package/dist/google-only.js.map +1 -1
  132. package/dist/index.cjs +2061 -1
  133. package/dist/index.cjs.map +1 -1
  134. package/dist/index.d.ts +5007 -144
  135. package/dist/index.js +13507 -116
  136. package/dist/index.js.map +1 -1
  137. package/dist/login-react.css +1 -1
  138. package/dist/plugin-5qRh-YhX.js +596 -0
  139. package/dist/plugin-5qRh-YhX.js.map +1 -0
  140. package/dist/plugin-BtYBW6JY.cjs +1 -0
  141. package/dist/plugin-BtYBW6JY.cjs.map +1 -0
  142. package/dist/sanitization-Bo_tn-L2.cjs +1 -0
  143. package/dist/sanitization-Bo_tn-L2.cjs.map +1 -0
  144. package/dist/sanitization-CQ-H1MSg.js +39 -0
  145. package/dist/sanitization-CQ-H1MSg.js.map +1 -0
  146. package/dist/shamir-AeLLfw0p.cjs +1 -0
  147. package/dist/shamir-AeLLfw0p.cjs.map +1 -0
  148. package/dist/{solanaKeypair-BlXol3nh.js → shamir-B0wConeK.js} +765 -757
  149. package/dist/shamir-B0wConeK.js.map +1 -0
  150. package/dist/silentWalletEnroll-B8pgdKZO.cjs +1 -0
  151. package/dist/silentWalletEnroll-B8pgdKZO.cjs.map +1 -0
  152. package/dist/silentWalletEnroll-DR2kPw7W.js +41 -0
  153. package/dist/silentWalletEnroll-DR2kPw7W.js.map +1 -0
  154. package/dist/solana-only.cjs +1 -1
  155. package/dist/solana-only.d.ts +594 -13
  156. package/dist/solana-only.js +12 -9
  157. package/dist/solana-only.js.map +1 -1
  158. package/dist/style.d.ts +1 -0
  159. package/dist/useAdminDeposits-BDY5KJ0-.js +151 -0
  160. package/dist/useAdminDeposits-BDY5KJ0-.js.map +1 -0
  161. package/dist/useAdminDeposits-Dvx3_UUE.cjs +1 -0
  162. package/dist/useAdminDeposits-Dvx3_UUE.cjs.map +1 -0
  163. package/dist/{ErrorMessage-DU2VBb85.js → useAuth-Bge6KaWN.js} +954 -1226
  164. package/dist/useAuth-Bge6KaWN.js.map +1 -0
  165. package/dist/useAuth-DhIDTLRd.cjs +1 -0
  166. package/dist/useAuth-DhIDTLRd.cjs.map +1 -0
  167. package/dist/useOrgs-Be3KH4ib.js +215 -0
  168. package/dist/useOrgs-Be3KH4ib.js.map +1 -0
  169. package/dist/useOrgs-CVbacmaQ.cjs +1 -0
  170. package/dist/useOrgs-CVbacmaQ.cjs.map +1 -0
  171. package/dist/useSystemSettings-D9Cr7ZTl.cjs +1 -0
  172. package/dist/useSystemSettings-D9Cr7ZTl.cjs.map +1 -0
  173. package/dist/useSystemSettings-DN5YqfNq.js +97 -0
  174. package/dist/useSystemSettings-DN5YqfNq.js.map +1 -0
  175. package/dist/{validation-BebL7hMF.js → validation-B8kMV3BL.js} +1 -1
  176. package/dist/{validation-BebL7hMF.js.map → validation-B8kMV3BL.js.map} +1 -1
  177. package/dist/{validation-BeXIfuHB.cjs → validation-BuGQrA-K.cjs} +1 -1
  178. package/dist/{validation-BeXIfuHB.cjs.map → validation-BuGQrA-K.cjs.map} +1 -1
  179. package/package.json +11 -1
  180. package/dist/AuthenticationSettings-BSoIQ58T.js.map +0 -1
  181. package/dist/AuthenticationSettings-CNmWEPFV.cjs +0 -1
  182. package/dist/AuthenticationSettings-CNmWEPFV.cjs.map +0 -1
  183. package/dist/CreditSystemSettings-BYxoFwaP.js +0 -9
  184. package/dist/CreditSystemSettings-BYxoFwaP.js.map +0 -1
  185. package/dist/CreditSystemSettings-D2fLorNx.cjs +0 -1
  186. package/dist/CreditSystemSettings-D2fLorNx.cjs.map +0 -1
  187. package/dist/DepositsSection-CGKCzM-H.cjs +0 -1
  188. package/dist/EmailRegisterForm-C0PStlj5.js +0 -961
  189. package/dist/EmailRegisterForm-C0PStlj5.js.map +0 -1
  190. package/dist/EmailRegisterForm-DaPLGws2.cjs +0 -1
  191. package/dist/EmailRegisterForm-DaPLGws2.cjs.map +0 -1
  192. package/dist/EmailSettings-CiLDwzNb.cjs +0 -1
  193. package/dist/EmailSettings-CiLDwzNb.cjs.map +0 -1
  194. package/dist/EmailSettings-DTjpO65J.js +0 -9
  195. package/dist/EmailSettings-DTjpO65J.js.map +0 -1
  196. package/dist/EmbeddedWalletSettings-CX7sYiPy.cjs +0 -1
  197. package/dist/EmbeddedWalletSettings-CX7sYiPy.cjs.map +0 -1
  198. package/dist/EmbeddedWalletSettings-iVf_3pn3.js.map +0 -1
  199. package/dist/ErrorMessage-BXHiYibN.cjs +0 -1
  200. package/dist/ErrorMessage-BXHiYibN.cjs.map +0 -1
  201. package/dist/ErrorMessage-DU2VBb85.js.map +0 -1
  202. package/dist/GoogleLoginButton-DoAdOqb3.cjs +0 -1
  203. package/dist/ServerSettings-C_osdbiX.js.map +0 -1
  204. package/dist/ServerSettings-HqSb_VDj.cjs +0 -1
  205. package/dist/ServerSettings-HqSb_VDj.cjs.map +0 -1
  206. package/dist/SolanaLoginButton-CPzms0kf.cjs +0 -1
  207. package/dist/TeamSection-Bjt72upx.js.map +0 -1
  208. package/dist/TeamSection-DZeWHkLd.cjs +0 -1
  209. package/dist/TeamSection-DZeWHkLd.cjs.map +0 -1
  210. package/dist/UsersSection-DU86czWP.cjs +0 -1
  211. package/dist/WebhookSettings-Br9bakAL.cjs +0 -1
  212. package/dist/WebhookSettings-Br9bakAL.cjs.map +0 -1
  213. package/dist/WebhookSettings-IyhyTFes.js.map +0 -1
  214. package/dist/WithdrawalsSection-B1415d-G.js +0 -20
  215. package/dist/WithdrawalsSection-iZJBuZ7O.cjs +0 -1
  216. package/dist/admin/AdminShell.d.ts +0 -38
  217. package/dist/admin/icons.d.ts +0 -2
  218. package/dist/admin/index.d.ts +0 -10
  219. package/dist/admin/plugin.d.ts +0 -3
  220. package/dist/admin/sections/AuthenticationSettings.d.ts +0 -3
  221. package/dist/admin/sections/CreditSystemSettings.d.ts +0 -3
  222. package/dist/admin/sections/DepositsSection.d.ts +0 -3
  223. package/dist/admin/sections/EmailSettings.d.ts +0 -3
  224. package/dist/admin/sections/EmbeddedWalletSettings.d.ts +0 -3
  225. package/dist/admin/sections/FeatureSettings.d.ts +0 -3
  226. package/dist/admin/sections/InvitesSection.d.ts +0 -3
  227. package/dist/admin/sections/MembersSection.d.ts +0 -3
  228. package/dist/admin/sections/ServerSettings.d.ts +0 -3
  229. package/dist/admin/sections/SettingsSections.d.ts +0 -7
  230. package/dist/admin/sections/TeamSection.d.ts +0 -3
  231. package/dist/admin/sections/UsersSection.d.ts +0 -3
  232. package/dist/admin/sections/WebhookSettings.d.ts +0 -3
  233. package/dist/admin/sections/WithdrawalsSection.d.ts +0 -3
  234. package/dist/components/LoginButton.d.ts +0 -23
  235. package/dist/components/LoginForm.d.ts +0 -9
  236. package/dist/components/LoginModal.d.ts +0 -9
  237. package/dist/components/admin/AdminUserDetail.d.ts +0 -23
  238. package/dist/components/admin/AdminUserList.d.ts +0 -21
  239. package/dist/components/admin/CedrosAdminDashboard.d.ts +0 -52
  240. package/dist/components/admin/PermissionsSection.d.ts +0 -7
  241. package/dist/components/admin/ProfileDropdown.d.ts +0 -34
  242. package/dist/components/admin/SetupWizard.d.ts +0 -30
  243. package/dist/components/admin/StatsBar.d.ts +0 -17
  244. package/dist/components/admin/SystemSettings.d.ts +0 -19
  245. package/dist/components/admin/settings/AuthenticationSettings.d.ts +0 -4
  246. package/dist/components/admin/settings/AutosaveStatus.d.ts +0 -6
  247. package/dist/components/admin/settings/CreditSystemSettings.d.ts +0 -6
  248. package/dist/components/admin/settings/EmailSettings.d.ts +0 -4
  249. package/dist/components/admin/settings/EmbeddedWalletSettings.d.ts +0 -4
  250. package/dist/components/admin/settings/FeatureSettings.d.ts +0 -4
  251. package/dist/components/admin/settings/MessagingSettings.d.ts +0 -4
  252. package/dist/components/admin/settings/SecuritySettings.d.ts +0 -4
  253. package/dist/components/admin/settings/ServerSettings.d.ts +0 -4
  254. package/dist/components/admin/settings/SettingsPageLayout.d.ts +0 -16
  255. package/dist/components/admin/settings/SsoProvidersSettings.d.ts +0 -4
  256. package/dist/components/admin/settings/WebhookSettings.d.ts +0 -4
  257. package/dist/components/admin/settings/index.d.ts +0 -31
  258. package/dist/components/admin/settings/settingsInputs.d.ts +0 -79
  259. package/dist/components/admin/settings/settingsMetadata.d.ts +0 -18
  260. package/dist/components/apple/AppleLoginButton.d.ts +0 -29
  261. package/dist/components/deposit/CreditBalance.d.ts +0 -19
  262. package/dist/components/deposit/DepositFlow.d.ts +0 -118
  263. package/dist/components/deposit/FeeConfigDisplay.d.ts +0 -15
  264. package/dist/components/deposit/History.d.ts +0 -21
  265. package/dist/components/deposit/TieredAmountSlider.d.ts +0 -19
  266. package/dist/components/deposit/TokenSelector.d.ts +0 -23
  267. package/dist/components/deposit/admin/AdminDepositList.d.ts +0 -21
  268. package/dist/components/deposit/admin/AdminDepositStats.d.ts +0 -15
  269. package/dist/components/deposit/admin/AdminPrivacyPeriodDeposits.d.ts +0 -19
  270. package/dist/components/deposit/admin/AdminWithdrawalHistory.d.ts +0 -19
  271. package/dist/components/deposit/admin/AdminWithdrawalQueue.d.ts +0 -23
  272. package/dist/components/deposit/admin/AdminWithdrawalStats.d.ts +0 -10
  273. package/dist/components/deposit/admin/FeatureDisabledMessage.d.ts +0 -15
  274. package/dist/components/deposit/admin/PrivacySystemStatus.d.ts +0 -15
  275. package/dist/components/deposit/admin/featureDisabled.d.ts +0 -14
  276. package/dist/components/deposit/admin/index.d.ts +0 -22
  277. package/dist/components/deposit/index.d.ts +0 -12
  278. package/dist/components/deposit/tierUtils.d.ts +0 -8
  279. package/dist/components/deposit/tokens.d.ts +0 -19
  280. package/dist/components/email/EmailLoginForm.d.ts +0 -11
  281. package/dist/components/email/EmailRegisterForm.d.ts +0 -14
  282. package/dist/components/email/ForgotPasswordForm.d.ts +0 -17
  283. package/dist/components/email/PasswordInput.d.ts +0 -14
  284. package/dist/components/email/ResetPasswordForm.d.ts +0 -22
  285. package/dist/components/google/GoogleLoginButton.d.ts +0 -12
  286. package/dist/components/invites/InviteForm.d.ts +0 -38
  287. package/dist/components/invites/InviteList.d.ts +0 -40
  288. package/dist/components/members/MemberList.d.ts +0 -47
  289. package/dist/components/org/CreateOrgForm.d.ts +0 -7
  290. package/dist/components/org/OrgAvatar.d.ts +0 -7
  291. package/dist/components/org/OrgListView.d.ts +0 -9
  292. package/dist/components/org/OrgSelector.d.ts +0 -52
  293. package/dist/components/org/OrgSwitcher.d.ts +0 -47
  294. package/dist/components/org/icons.d.ts +0 -8
  295. package/dist/components/profile/UserProfileSettings.d.ts +0 -35
  296. package/dist/components/profile/index.d.ts +0 -2
  297. package/dist/components/sessions/SessionList.d.ts +0 -33
  298. package/dist/components/shared/ErrorBoundary.d.ts +0 -38
  299. package/dist/components/shared/ErrorMessage.d.ts +0 -14
  300. package/dist/components/shared/LoadingSpinner.d.ts +0 -16
  301. package/dist/components/solana/SolanaLoginButton.d.ts +0 -49
  302. package/dist/components/templates/FullPageLayout.d.ts +0 -40
  303. package/dist/components/templates/SplitPageLayout.d.ts +0 -44
  304. package/dist/components/templates/index.d.ts +0 -4
  305. package/dist/components/totp/OtpInput.d.ts +0 -32
  306. package/dist/components/totp/QrCode.d.ts +0 -21
  307. package/dist/components/totp/TotpSettings.d.ts +0 -38
  308. package/dist/components/totp/TotpSetup.d.ts +0 -23
  309. package/dist/components/totp/TotpVerify.d.ts +0 -25
  310. package/dist/components/totp/index.d.ts +0 -10
  311. package/dist/components/wallet/CapabilityWarning.d.ts +0 -11
  312. package/dist/components/wallet/PasskeyPrompt.d.ts +0 -34
  313. package/dist/components/wallet/RecoveryPhraseDisplay.d.ts +0 -18
  314. package/dist/components/wallet/RecoveryPhraseInput.d.ts +0 -21
  315. package/dist/components/wallet/WalletAddressRow.d.ts +0 -10
  316. package/dist/components/wallet/WalletEnrollment.d.ts +0 -15
  317. package/dist/components/wallet/WalletManager.d.ts +0 -9
  318. package/dist/components/wallet/WalletRecovery.d.ts +0 -19
  319. package/dist/components/wallet/WalletStatus.d.ts +0 -28
  320. package/dist/components/wallet/WalletUnlock.d.ts +0 -23
  321. package/dist/components/wallet/index.d.ts +0 -23
  322. package/dist/components/webauthn/PasskeyLoginButton.d.ts +0 -8
  323. package/dist/context/CedrosLoginContext.d.ts +0 -24
  324. package/dist/context/CedrosLoginProvider.d.ts +0 -17
  325. package/dist/context/EmbeddedWalletExposure.d.ts +0 -19
  326. package/dist/context/useCedrosLogin.d.ts +0 -12
  327. package/dist/crypto/aesGcm.d.ts +0 -89
  328. package/dist/crypto/argon2.d.ts +0 -65
  329. package/dist/crypto/argon2Worker.d.ts +0 -1
  330. package/dist/crypto/argon2WorkerClient.d.ts +0 -28
  331. package/dist/crypto/bip39.d.ts +0 -106
  332. package/dist/crypto/capabilities.d.ts +0 -35
  333. package/dist/crypto/entropy.d.ts +0 -56
  334. package/dist/crypto/hkdf.d.ts +0 -38
  335. package/dist/crypto/index.d.ts +0 -30
  336. package/dist/crypto/secureWipe.d.ts +0 -71
  337. package/dist/crypto/shamir.d.ts +0 -52
  338. package/dist/crypto/solanaKeypair.d.ts +0 -63
  339. package/dist/crypto/types.d.ts +0 -134
  340. package/dist/crypto/webauthnPrf.d.ts +0 -108
  341. package/dist/hooks/useAdminDeposits.d.ts +0 -10
  342. package/dist/hooks/useAdminUsers.d.ts +0 -28
  343. package/dist/hooks/useAppleAuth.d.ts +0 -52
  344. package/dist/hooks/useAuth.d.ts +0 -34
  345. package/dist/hooks/useAuthSession.d.ts +0 -19
  346. package/dist/hooks/useAuthorize.d.ts +0 -62
  347. package/dist/hooks/useCredits.d.ts +0 -11
  348. package/dist/hooks/useDashboardPermissions.d.ts +0 -45
  349. package/dist/hooks/useDeposit.d.ts +0 -16
  350. package/dist/hooks/useEmailAuth.d.ts +0 -60
  351. package/dist/hooks/useGoogleAuth.d.ts +0 -67
  352. package/dist/hooks/useInstantLink.d.ts +0 -42
  353. package/dist/hooks/useInvites.d.ts +0 -57
  354. package/dist/hooks/useMembers.d.ts +0 -52
  355. package/dist/hooks/useOrgs.d.ts +0 -49
  356. package/dist/hooks/usePasswordReset.d.ts +0 -32
  357. package/dist/hooks/usePendingRecovery.d.ts +0 -34
  358. package/dist/hooks/useProfile.d.ts +0 -35
  359. package/dist/hooks/useRateLimiter.d.ts +0 -58
  360. package/dist/hooks/useServerFeatures.d.ts +0 -55
  361. package/dist/hooks/useSessions.d.ts +0 -45
  362. package/dist/hooks/useSettingsAutosave.d.ts +0 -29
  363. package/dist/hooks/useSetup.d.ts +0 -25
  364. package/dist/hooks/useSolanaAuth.d.ts +0 -30
  365. package/dist/hooks/useSsoProviders.d.ts +0 -52
  366. package/dist/hooks/useSystemSettings.d.ts +0 -47
  367. package/dist/hooks/useThemeManager.d.ts +0 -11
  368. package/dist/hooks/useTotp.d.ts +0 -52
  369. package/dist/hooks/useTotpVerify.d.ts +0 -38
  370. package/dist/hooks/useTransactionSigning.d.ts +0 -45
  371. package/dist/hooks/useWallet.d.ts +0 -10
  372. package/dist/hooks/useWalletDiscovery.d.ts +0 -24
  373. package/dist/hooks/useWalletEnrollment.d.ts +0 -9
  374. package/dist/hooks/useWalletMaterial.d.ts +0 -10
  375. package/dist/hooks/useWalletRecovery.d.ts +0 -9
  376. package/dist/hooks/useWalletSigning.d.ts +0 -31
  377. package/dist/hooks/useWebAuthn.d.ts +0 -25
  378. package/dist/i18n/I18nProvider.d.ts +0 -16
  379. package/dist/i18n/context.d.ts +0 -6
  380. package/dist/i18n/index.d.ts +0 -5
  381. package/dist/i18n/translations.d.ts +0 -66
  382. package/dist/i18n/useI18n.d.ts +0 -9
  383. package/dist/index-ZS9AwAal.cjs +0 -2061
  384. package/dist/index-ZS9AwAal.cjs.map +0 -1
  385. package/dist/index-dgg5tlO7.js +0 -19650
  386. package/dist/index-dgg5tlO7.js.map +0 -1
  387. package/dist/silentWalletEnroll-C3JRAD9_.js +0 -42
  388. package/dist/silentWalletEnroll-C3JRAD9_.js.map +0 -1
  389. package/dist/silentWalletEnroll-DRYQAQfg.cjs +0 -1
  390. package/dist/silentWalletEnroll-DRYQAQfg.cjs.map +0 -1
  391. package/dist/solanaKeypair-BlXol3nh.js.map +0 -1
  392. package/dist/solanaKeypair-C-lIR1JY.cjs +0 -1
  393. package/dist/solanaKeypair-C-lIR1JY.cjs.map +0 -1
  394. package/dist/types/adminUser.d.ts +0 -168
  395. package/dist/types/auth.d.ts +0 -122
  396. package/dist/types/config.d.ts +0 -266
  397. package/dist/types/deposit.d.ts +0 -490
  398. package/dist/types/index.d.ts +0 -13
  399. package/dist/types/invite.d.ts +0 -71
  400. package/dist/types/member.d.ts +0 -45
  401. package/dist/types/org.d.ts +0 -133
  402. package/dist/types/profile.d.ts +0 -56
  403. package/dist/types/session.d.ts +0 -28
  404. package/dist/types/setup.d.ts +0 -47
  405. package/dist/types/systemSettings.d.ts +0 -85
  406. package/dist/types/totp.d.ts +0 -52
  407. package/dist/types/wallet.d.ts +0 -309
  408. package/dist/utils/adminUserApi.d.ts +0 -60
  409. package/dist/utils/apiClient.d.ts +0 -78
  410. package/dist/utils/cryptoShim.d.ts +0 -17
  411. package/dist/utils/csrf.d.ts +0 -1
  412. package/dist/utils/deviceDetection.d.ts +0 -17
  413. package/dist/utils/embeddedWallet.d.ts +0 -75
  414. package/dist/utils/inviteApi.d.ts +0 -31
  415. package/dist/utils/memberApi.d.ts +0 -23
  416. package/dist/utils/orgApi.d.ts +0 -36
  417. package/dist/utils/profileApi.d.ts +0 -26
  418. package/dist/utils/sanitization.d.ts +0 -66
  419. package/dist/utils/sessionApi.d.ts +0 -16
  420. package/dist/utils/setupApi.d.ts +0 -21
  421. package/dist/utils/silentWalletEnroll.d.ts +0 -41
  422. package/dist/utils/systemSettingsApi.d.ts +0 -18
  423. package/dist/utils/tabSync.d.ts +0 -46
  424. package/dist/utils/tokenManager.d.ts +0 -107
  425. package/dist/utils/unlockCredential.d.ts +0 -5
  426. package/dist/utils/validation.d.ts +0 -48
  427. package/dist/utils/walletDetection.d.ts +0 -23
  428. package/dist/utils/webauthnJson.d.ts +0 -21
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("./apiClient-CTTKhsYb.cjs"),e=require("./useAuth-DhIDTLRd.cjs"),r=require("./shamir-AeLLfw0p.cjs");async function T(A){const{password:p,serverUrl:h,accessToken:n,timeoutMs:y=3e4}=A,t=[];try{const s=e.generateSeed();t.push(s);const{shareA:a,shareB:o}=r.splitSecret(s);t.push(a,o);const c=e.generateArgon2Salt(),l=await r.argon2DeriveInWorker(p,c,e.DEFAULT_KDF_PARAMS);t.push(l);const i=await e.aesGcmEncryptToBase64(a,e.toEncryptionKey(l)),d=r.getPublicKeyFromSeed(s),u=r.publicKeyToBase58(d),g={solanaPubkey:u,shareAAuthMethod:"password",shareACiphertext:i.ciphertext,shareANonce:i.nonce,shareB:e.uint8ArrayToBase64(o),shareAKdfSalt:e.uint8ArrayToBase64(c),shareAKdfParams:e.DEFAULT_KDF_PARAMS};return await new S.ApiClient({baseUrl:h,timeoutMs:y,getAccessToken:n?()=>n:void 0}).post("/wallet/enroll",g),{success:!0,solanaPubkey:u}}catch(s){return{success:!1,error:s instanceof Error?s.message:"Wallet enrollment failed"}}finally{e.wipeAll(...t)}}exports.silentWalletEnroll=T;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silentWalletEnroll-B8pgdKZO.cjs","sources":["../src/utils/silentWalletEnroll.ts"],"sourcesContent":["/**\n * Silent wallet enrollment utility\n *\n * Performs wallet enrollment in the background without UI interaction.\n * Used for auto-enrolling wallets during registration.\n *\n * Security: Uses the same Shamir Secret Sharing scheme as manual enrollment.\n * The recovery phrase is not shown - user can retrieve it later if needed.\n */\n\nimport {\n generateSeed,\n generateArgon2Salt,\n splitSecret,\n argon2DeriveInWorker,\n aesGcmEncryptToBase64,\n uint8ArrayToBase64,\n getPublicKeyFromSeed,\n publicKeyToBase58,\n wipeAll,\n toEncryptionKey,\n DEFAULT_KDF_PARAMS,\n} from '../crypto';\nimport { ApiClient } from './apiClient';\nimport type { WalletEnrollRequest } from '../types/wallet';\n\nexport interface SilentEnrollOptions {\n /** User's password for Share A encryption */\n password: string;\n /** Server base URL */\n serverUrl: string;\n /** Access token for authentication (optional if using cookies) */\n accessToken?: string;\n /** Request timeout in ms */\n timeoutMs?: number;\n}\n\nexport interface SilentEnrollResult {\n success: boolean;\n solanaPubkey?: string;\n error?: string;\n}\n\n/**\n * Silently enroll a wallet for a user\n *\n * This function performs the complete wallet enrollment process:\n * 1. Generate 32-byte seed\n * 2. Split into 3 Shamir shares (threshold 2)\n * 3. Encrypt Share A with password-derived key (Argon2id)\n * 4. Derive Solana public key from seed\n * 5. Upload encrypted Share A + plaintext Share B to server\n *\n * The recovery phrase (Share C) is not returned - user can recover it\n * later through the wallet recovery flow if needed.\n *\n * @param options - Enrollment options\n * @returns Result with success status and Solana public key\n */\nexport async function silentWalletEnroll(\n options: SilentEnrollOptions\n): Promise<SilentEnrollResult> {\n const { password, serverUrl, accessToken, timeoutMs = 30000 } = options;\n\n // Track sensitive data for cleanup\n const sensitiveData: Uint8Array[] = [];\n\n try {\n // Step 1: Generate seed\n const seed = generateSeed();\n sensitiveData.push(seed);\n\n // Step 2: Split into shares\n const { shareA, shareB } = splitSecret(seed);\n sensitiveData.push(shareA, shareB);\n\n // Step 3: Derive encryption key from password\n const salt = generateArgon2Salt();\n const key = await argon2DeriveInWorker(password, salt, DEFAULT_KDF_PARAMS);\n sensitiveData.push(key);\n\n // Step 4: Encrypt Share A\n const encryptedA = await aesGcmEncryptToBase64(shareA, toEncryptionKey(key));\n\n // Step 5: Derive Solana public key\n const publicKey = getPublicKeyFromSeed(seed);\n const solanaPubkey = publicKeyToBase58(publicKey);\n\n // Step 6: Build enrollment request\n // Only send encrypted shares — never send the raw seed to the server\n const request: WalletEnrollRequest = {\n solanaPubkey,\n shareAAuthMethod: 'password',\n shareACiphertext: encryptedA.ciphertext,\n shareANonce: encryptedA.nonce,\n shareB: uint8ArrayToBase64(shareB),\n shareAKdfSalt: uint8ArrayToBase64(salt),\n shareAKdfParams: DEFAULT_KDF_PARAMS,\n };\n\n // Step 7: Upload to server\n // If accessToken provided, use it; otherwise rely on cookies\n const apiClient = new ApiClient({\n baseUrl: serverUrl,\n timeoutMs,\n getAccessToken: accessToken ? () => accessToken : undefined,\n });\n\n await apiClient.post('/wallet/enroll', request);\n\n return {\n success: true,\n solanaPubkey,\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Wallet enrollment failed';\n // Silent failure - don't break registration flow\n return {\n success: false,\n error: errorMessage,\n };\n } finally {\n // Always wipe sensitive data\n wipeAll(...sensitiveData);\n }\n}\n"],"names":["silentWalletEnroll","options","password","serverUrl","accessToken","timeoutMs","sensitiveData","seed","generateSeed","shareA","shareB","splitSecret","salt","generateArgon2Salt","key","argon2DeriveInWorker","DEFAULT_KDF_PARAMS","encryptedA","aesGcmEncryptToBase64","toEncryptionKey","publicKey","getPublicKeyFromSeed","solanaPubkey","publicKeyToBase58","request","uint8ArrayToBase64","ApiClient","err","wipeAll"],"mappings":"mMA2DA,eAAsBA,EACpBC,EAC6B,CAC7B,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,YAAAC,EAAa,UAAAC,EAAY,KAAUJ,EAG1DK,EAA8B,CAAA,EAEpC,GAAI,CAEF,MAAMC,EAAOC,EAAAA,aAAA,EACbF,EAAc,KAAKC,CAAI,EAGvB,KAAM,CAAE,OAAAE,EAAQ,OAAAC,GAAWC,EAAAA,YAAYJ,CAAI,EAC3CD,EAAc,KAAKG,EAAQC,CAAM,EAGjC,MAAME,EAAOC,EAAAA,mBAAA,EACPC,EAAM,MAAMC,EAAAA,qBAAqBb,EAAUU,EAAMI,EAAAA,kBAAkB,EACzEV,EAAc,KAAKQ,CAAG,EAGtB,MAAMG,EAAa,MAAMC,EAAAA,sBAAsBT,EAAQU,EAAAA,gBAAgBL,CAAG,CAAC,EAGrEM,EAAYC,EAAAA,qBAAqBd,CAAI,EACrCe,EAAeC,EAAAA,kBAAkBH,CAAS,EAI1CI,EAA+B,CACnC,aAAAF,EACA,iBAAkB,WAClB,iBAAkBL,EAAW,WAC7B,YAAaA,EAAW,MACxB,OAAQQ,EAAAA,mBAAmBf,CAAM,EACjC,cAAee,EAAAA,mBAAmBb,CAAI,EACtC,gBAAiBI,EAAAA,kBAAA,EAWnB,aANkB,IAAIU,YAAU,CAC9B,QAASvB,EACT,UAAAE,EACA,eAAgBD,EAAc,IAAMA,EAAc,MAAA,CACnD,EAEe,KAAK,iBAAkBoB,CAAO,EAEvC,CACL,QAAS,GACT,aAAAF,CAAA,CAEJ,OAASK,EAAK,CAGZ,MAAO,CACL,QAAS,GACT,MAJmBA,aAAe,MAAQA,EAAI,QAAU,0BAIjD,CAEX,QAAA,CAEEC,EAAAA,QAAQ,GAAGtB,CAAa,CAC1B,CACF"}
@@ -0,0 +1,41 @@
1
+ import { A as g } from "./apiClient-B2JxVPlH.js";
2
+ import { g as f, a as w, D as i, b as K, t as b, c as p, w as S } from "./useAuth-Bge6KaWN.js";
3
+ import { s as T, a as k, g as B, p as D } from "./shamir-B0wConeK.js";
4
+ async function P(u) {
5
+ const { password: A, serverUrl: h, accessToken: r, timeoutMs: y = 3e4 } = u, s = [];
6
+ try {
7
+ const e = f();
8
+ s.push(e);
9
+ const { shareA: a, shareB: t } = T(e);
10
+ s.push(a, t);
11
+ const o = w(), n = await k(A, o, i);
12
+ s.push(n);
13
+ const c = await K(a, b(n)), m = B(e), l = D(m), d = {
14
+ solanaPubkey: l,
15
+ shareAAuthMethod: "password",
16
+ shareACiphertext: c.ciphertext,
17
+ shareANonce: c.nonce,
18
+ shareB: p(t),
19
+ shareAKdfSalt: p(o),
20
+ shareAKdfParams: i
21
+ };
22
+ return await new g({
23
+ baseUrl: h,
24
+ timeoutMs: y,
25
+ getAccessToken: r ? () => r : void 0
26
+ }).post("/wallet/enroll", d), {
27
+ success: !0,
28
+ solanaPubkey: l
29
+ };
30
+ } catch (e) {
31
+ return {
32
+ success: !1,
33
+ error: e instanceof Error ? e.message : "Wallet enrollment failed"
34
+ };
35
+ } finally {
36
+ S(...s);
37
+ }
38
+ }
39
+ export {
40
+ P as silentWalletEnroll
41
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silentWalletEnroll-DR2kPw7W.js","sources":["../src/utils/silentWalletEnroll.ts"],"sourcesContent":["/**\n * Silent wallet enrollment utility\n *\n * Performs wallet enrollment in the background without UI interaction.\n * Used for auto-enrolling wallets during registration.\n *\n * Security: Uses the same Shamir Secret Sharing scheme as manual enrollment.\n * The recovery phrase is not shown - user can retrieve it later if needed.\n */\n\nimport {\n generateSeed,\n generateArgon2Salt,\n splitSecret,\n argon2DeriveInWorker,\n aesGcmEncryptToBase64,\n uint8ArrayToBase64,\n getPublicKeyFromSeed,\n publicKeyToBase58,\n wipeAll,\n toEncryptionKey,\n DEFAULT_KDF_PARAMS,\n} from '../crypto';\nimport { ApiClient } from './apiClient';\nimport type { WalletEnrollRequest } from '../types/wallet';\n\nexport interface SilentEnrollOptions {\n /** User's password for Share A encryption */\n password: string;\n /** Server base URL */\n serverUrl: string;\n /** Access token for authentication (optional if using cookies) */\n accessToken?: string;\n /** Request timeout in ms */\n timeoutMs?: number;\n}\n\nexport interface SilentEnrollResult {\n success: boolean;\n solanaPubkey?: string;\n error?: string;\n}\n\n/**\n * Silently enroll a wallet for a user\n *\n * This function performs the complete wallet enrollment process:\n * 1. Generate 32-byte seed\n * 2. Split into 3 Shamir shares (threshold 2)\n * 3. Encrypt Share A with password-derived key (Argon2id)\n * 4. Derive Solana public key from seed\n * 5. Upload encrypted Share A + plaintext Share B to server\n *\n * The recovery phrase (Share C) is not returned - user can recover it\n * later through the wallet recovery flow if needed.\n *\n * @param options - Enrollment options\n * @returns Result with success status and Solana public key\n */\nexport async function silentWalletEnroll(\n options: SilentEnrollOptions\n): Promise<SilentEnrollResult> {\n const { password, serverUrl, accessToken, timeoutMs = 30000 } = options;\n\n // Track sensitive data for cleanup\n const sensitiveData: Uint8Array[] = [];\n\n try {\n // Step 1: Generate seed\n const seed = generateSeed();\n sensitiveData.push(seed);\n\n // Step 2: Split into shares\n const { shareA, shareB } = splitSecret(seed);\n sensitiveData.push(shareA, shareB);\n\n // Step 3: Derive encryption key from password\n const salt = generateArgon2Salt();\n const key = await argon2DeriveInWorker(password, salt, DEFAULT_KDF_PARAMS);\n sensitiveData.push(key);\n\n // Step 4: Encrypt Share A\n const encryptedA = await aesGcmEncryptToBase64(shareA, toEncryptionKey(key));\n\n // Step 5: Derive Solana public key\n const publicKey = getPublicKeyFromSeed(seed);\n const solanaPubkey = publicKeyToBase58(publicKey);\n\n // Step 6: Build enrollment request\n // Only send encrypted shares — never send the raw seed to the server\n const request: WalletEnrollRequest = {\n solanaPubkey,\n shareAAuthMethod: 'password',\n shareACiphertext: encryptedA.ciphertext,\n shareANonce: encryptedA.nonce,\n shareB: uint8ArrayToBase64(shareB),\n shareAKdfSalt: uint8ArrayToBase64(salt),\n shareAKdfParams: DEFAULT_KDF_PARAMS,\n };\n\n // Step 7: Upload to server\n // If accessToken provided, use it; otherwise rely on cookies\n const apiClient = new ApiClient({\n baseUrl: serverUrl,\n timeoutMs,\n getAccessToken: accessToken ? () => accessToken : undefined,\n });\n\n await apiClient.post('/wallet/enroll', request);\n\n return {\n success: true,\n solanaPubkey,\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'Wallet enrollment failed';\n // Silent failure - don't break registration flow\n return {\n success: false,\n error: errorMessage,\n };\n } finally {\n // Always wipe sensitive data\n wipeAll(...sensitiveData);\n }\n}\n"],"names":["silentWalletEnroll","options","password","serverUrl","accessToken","timeoutMs","sensitiveData","seed","generateSeed","shareA","shareB","splitSecret","salt","generateArgon2Salt","key","argon2DeriveInWorker","DEFAULT_KDF_PARAMS","encryptedA","aesGcmEncryptToBase64","toEncryptionKey","publicKey","getPublicKeyFromSeed","solanaPubkey","publicKeyToBase58","request","uint8ArrayToBase64","ApiClient","err","wipeAll"],"mappings":";;;AA2DA,eAAsBA,EACpBC,GAC6B;AAC7B,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,aAAAC,GAAa,WAAAC,IAAY,QAAUJ,GAG1DK,IAA8B,CAAA;AAEpC,MAAI;AAEF,UAAMC,IAAOC,EAAA;AACb,IAAAF,EAAc,KAAKC,CAAI;AAGvB,UAAM,EAAE,QAAAE,GAAQ,QAAAC,MAAWC,EAAYJ,CAAI;AAC3C,IAAAD,EAAc,KAAKG,GAAQC,CAAM;AAGjC,UAAME,IAAOC,EAAA,GACPC,IAAM,MAAMC,EAAqBb,GAAUU,GAAMI,CAAkB;AACzE,IAAAV,EAAc,KAAKQ,CAAG;AAGtB,UAAMG,IAAa,MAAMC,EAAsBT,GAAQU,EAAgBL,CAAG,CAAC,GAGrEM,IAAYC,EAAqBd,CAAI,GACrCe,IAAeC,EAAkBH,CAAS,GAI1CI,IAA+B;AAAA,MACnC,cAAAF;AAAA,MACA,kBAAkB;AAAA,MAClB,kBAAkBL,EAAW;AAAA,MAC7B,aAAaA,EAAW;AAAA,MACxB,QAAQQ,EAAmBf,CAAM;AAAA,MACjC,eAAee,EAAmBb,CAAI;AAAA,MACtC,iBAAiBI;AAAA,IAAA;AAWnB,iBANkB,IAAIU,EAAU;AAAA,MAC9B,SAASvB;AAAA,MACT,WAAAE;AAAA,MACA,gBAAgBD,IAAc,MAAMA,IAAc;AAAA,IAAA,CACnD,EAEe,KAAK,kBAAkBoB,CAAO,GAEvC;AAAA,MACL,SAAS;AAAA,MACT,cAAAF;AAAA,IAAA;AAAA,EAEJ,SAASK,GAAK;AAGZ,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAJmBA,aAAe,QAAQA,EAAI,UAAU;AAAA,IAIjD;AAAA,EAEX,UAAA;AAEE,IAAAC,EAAQ,GAAGtB,CAAa;AAAA,EAC1B;AACF;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./ErrorMessage-BXHiYibN.cjs"),e=require("./SolanaLoginButton-CPzms0kf.cjs");exports.CedrosLoginProvider=o.CedrosLoginProvider;exports.ErrorMessage=o.ErrorMessage;exports.LoadingSpinner=o.LoadingSpinner;exports.useAuth=o.useAuth;exports.useCedrosLogin=o.useCedrosLogin;exports.SolanaLoginButton=e.SolanaLoginButton;exports.useSolanaAuth=e.useSolanaAuth;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useAuth-DhIDTLRd.cjs"),r=require("./apiClient-CTTKhsYb.cjs"),o=require("./SolanaLoginButton-fAW7kRUu.cjs"),n=require("./LoadingSpinner-d6sSxgQN.cjs"),i=require("./ErrorMessage-CHbYbVi2.cjs");exports.CedrosLoginProvider=e.CedrosLoginProvider;exports.useAuth=e.useAuth;exports.useCedrosLogin=r.useCedrosLogin;exports.SolanaLoginButton=o.SolanaLoginButton;exports.useSolanaAuth=o.useSolanaAuth;exports.LoadingSpinner=n.LoadingSpinner;exports.ErrorMessage=i.ErrorMessage;
@@ -1,13 +1,594 @@
1
- /**
2
- * @cedros/login-react/solana-only
3
- *
4
- * Bundle with only Solana wallet authentication (~120KB due to wallet-adapter).
5
- */
6
- export { CedrosLoginProvider } from './context/CedrosLoginProvider';
7
- export { useCedrosLogin } from './context/useCedrosLogin';
8
- export { SolanaLoginButton } from './components/solana/SolanaLoginButton';
9
- export { LoadingSpinner } from './components/shared/LoadingSpinner';
10
- export { ErrorMessage } from './components/shared/ErrorMessage';
11
- export { useAuth } from './hooks/useAuth';
12
- export { useSolanaAuth } from './hooks/useSolanaAuth';
13
- export type { AuthMethod, AuthUser, TokenPair, AuthError, AuthErrorCode, AuthResponse, ChallengeResponse, AuthState, SolanaNetwork, SolanaConfig, SessionStorage, ThemeMode, FeatureFlags, SessionConfig, AuthCallbacks, ThemeOverrides, CedrosLoginConfig, } from './types';
1
+ import { CSSProperties } from 'react';
2
+ import { JSX } from 'react/jsx-runtime';
3
+ import { NamedExoticComponent } from 'react';
4
+ import { ReactNode } from 'react';
5
+
6
+ /**
7
+ * Authentication callbacks
8
+ */
9
+ export declare interface AuthCallbacks {
10
+ /** Called after successful login */
11
+ onLoginSuccess?: (user: AuthUser, method: AuthMethod) => void;
12
+ /** Called when login fails */
13
+ onLoginError?: (error: AuthError) => void;
14
+ /** Called after logout */
15
+ onLogout?: () => void;
16
+ /** Called when session expires */
17
+ onSessionExpired?: () => void;
18
+ }
19
+
20
+ /**
21
+ * Authentication error response
22
+ */
23
+ export declare interface AuthError {
24
+ code: AuthErrorCode;
25
+ message: string;
26
+ details?: Record<string, unknown>;
27
+ }
28
+
29
+ /**
30
+ * Standard error codes
31
+ */
32
+ export declare type AuthErrorCode = 'INVALID_CREDENTIALS' | 'ACCOUNT_LOCKED' | 'EMAIL_EXISTS' | 'WALLET_EXISTS' | 'INVALID_TOKEN' | 'TOKEN_EXPIRED' | 'INVALID_SIGNATURE' | 'INVALID_PUBLIC_KEY' | 'CHALLENGE_EXPIRED' | 'VALIDATION_ERROR' | 'RATE_LIMITED' | 'NOT_FOUND' | 'FORBIDDEN' | 'UNAUTHORIZED' | 'STEP_UP_REQUIRED' | 'TOTP_REQUIRED' | 'INVALID_TOTP_CODE' | 'SERVICE_UNAVAILABLE' | 'SERVER_ERROR' | 'NETWORK_ERROR' | 'UNKNOWN_ERROR';
33
+
34
+ /**
35
+ * Authentication method used for login/registration
36
+ * TYPE-01: Must match backend AuthMethod enum in server/src/models/mod.rs
37
+ */
38
+ export declare type AuthMethod = 'email' | 'google' | 'apple' | 'solana' | 'webauthn' | 'sso';
39
+
40
+ /**
41
+ * Authentication response from server
42
+ */
43
+ export declare interface AuthResponse {
44
+ user: AuthUser;
45
+ tokens?: TokenPair;
46
+ isNewUser: boolean;
47
+ callbackData?: Record<string, unknown>;
48
+ }
49
+
50
+ /**
51
+ * Authentication state
52
+ */
53
+ export declare type AuthState = 'idle' | 'loading' | 'authenticated' | 'unauthenticated' | 'error';
54
+
55
+ /**
56
+ * Auth state context — changes only on login/logout/token refresh.
57
+ *
58
+ * Subscribing to this context alone avoids re-renders from UI state
59
+ * changes (modal open/close, error display).
60
+ */
61
+ declare interface AuthStateContextValue {
62
+ config: CedrosLoginConfig;
63
+ user: AuthUser | null;
64
+ authState: AuthState;
65
+ logout: () => Promise<void>;
66
+ refreshUser: () => Promise<void>;
67
+ _internal?: CedrosLoginInternalAPI;
68
+ }
69
+
70
+ /**
71
+ * UI state context — changes on modal/error state changes.
72
+ *
73
+ * Subscribing to this context alone avoids re-renders from auth state
74
+ * changes (login, token refresh).
75
+ */
76
+ declare interface AuthUIContextValue {
77
+ error: AuthError | null;
78
+ isModalOpen: boolean;
79
+ openModal: () => void;
80
+ closeModal: () => void;
81
+ }
82
+
83
+ /**
84
+ * Authenticated user information
85
+ */
86
+ export declare interface AuthUser {
87
+ id: string;
88
+ email?: string;
89
+ name?: string;
90
+ picture?: string;
91
+ walletAddress?: string;
92
+ authMethods: AuthMethod[];
93
+ emailVerified: boolean;
94
+ /** Whether TOTP 2FA is enabled for this user */
95
+ totpEnabled?: boolean;
96
+ createdAt: string;
97
+ updatedAt: string;
98
+ }
99
+
100
+ /**
101
+ * Full configuration for CedrosLoginProvider
102
+ */
103
+ export declare interface CedrosLoginConfig {
104
+ /** Auth server base URL */
105
+ serverUrl: string;
106
+ /** App name for Solana message: "Login to {appName}". Default: window.location.hostname */
107
+ appName?: string;
108
+ /** Google OAuth client ID. Required if Google auth enabled */
109
+ googleClientId?: string;
110
+ /** Apple Sign In client ID (Services ID). Required if Apple auth enabled */
111
+ appleClientId?: string;
112
+ /** Solana configuration options */
113
+ solana?: SolanaConfig;
114
+ /** Enable/disable auth methods */
115
+ features?: FeatureFlags;
116
+ /** Form behavior configuration (forgot password, terms, email opt-in) */
117
+ forms?: FormConfig;
118
+ /** TOTP/2FA configuration (app-based authenticator) */
119
+ totp?: TotpConfig;
120
+ /** Embedded wallet configuration */
121
+ wallet?: WalletConfig;
122
+ /** Session/token configuration */
123
+ session?: SessionConfig;
124
+ /** Authentication event callbacks */
125
+ callbacks?: AuthCallbacks;
126
+ /** Theme mode. Default: 'auto' */
127
+ theme?: ThemeMode;
128
+ /** CSS variable overrides for custom theming */
129
+ themeOverrides?: ThemeOverrides;
130
+ /** API request timeout in ms. Default: 10000 */
131
+ requestTimeout?: number;
132
+ /** Retry attempts on transient errors. Default: 2 */
133
+ retryAttempts?: number;
134
+ }
135
+
136
+ /**
137
+ * Combined context value (backward-compatible with existing consumers)
138
+ */
139
+ declare interface CedrosLoginContextValue extends AuthStateContextValue, AuthUIContextValue {
140
+ }
141
+
142
+ /**
143
+ * Internal helpers for auth hooks (not part of public API)
144
+ */
145
+ declare interface CedrosLoginInternalAPI {
146
+ handleLoginSuccess: (user: AuthUser, tokens?: TokenPair) => void;
147
+ getAccessToken: () => string | null;
148
+ }
149
+
150
+ /**
151
+ * Provider component that wraps your app and provides authentication context.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <CedrosLoginProvider config={{ serverUrl: 'https://api.example.com' }}>
156
+ * <App />
157
+ * </CedrosLoginProvider>
158
+ * ```
159
+ */
160
+ export declare function CedrosLoginProvider({ config, children }: CedrosLoginProviderProps): JSX.Element;
161
+
162
+ declare interface CedrosLoginProviderProps {
163
+ config: CedrosLoginConfig;
164
+ children: ReactNode;
165
+ }
166
+
167
+ /**
168
+ * Solana challenge response
169
+ */
170
+ export declare interface ChallengeResponse {
171
+ nonce: string;
172
+ message: string;
173
+ expiresAt: string;
174
+ }
175
+
176
+ /**
177
+ * UI-08: Standardized error prop type for display components.
178
+ *
179
+ * Use this type for component props that display errors to users.
180
+ * Components should handle both AuthError objects and plain strings:
181
+ * - AuthError: structured error from API with code and message
182
+ * - string: simple error message for form validation or local errors
183
+ * - null: no error state
184
+ *
185
+ * @example
186
+ * ```tsx
187
+ * interface MyFormProps {
188
+ * error?: DisplayError;
189
+ * }
190
+ *
191
+ * // In component:
192
+ * const message = typeof error === 'string' ? error : error?.message;
193
+ * ```
194
+ */
195
+ declare type DisplayError = AuthError | string | null;
196
+
197
+ /**
198
+ * Email marketing opt-in checkbox configuration
199
+ */
200
+ declare interface EmailOptInConfig {
201
+ /** Whether to show the checkbox. @default false */
202
+ show?: boolean;
203
+ /** Default checked state. @default false */
204
+ defaultChecked?: boolean;
205
+ /** Custom label text. @default "Send me updates and news" */
206
+ label?: string;
207
+ }
208
+
209
+ /**
210
+ * Error message display component with accessibility support.
211
+ * Announces errors to screen readers and optionally focuses the message.
212
+ * Wrapped with React.memo to prevent unnecessary re-renders.
213
+ */
214
+ export declare const ErrorMessage: NamedExoticComponent<ErrorMessageProps>;
215
+
216
+ declare interface ErrorMessageProps {
217
+ error: DisplayError;
218
+ className?: string;
219
+ onDismiss?: () => void;
220
+ /** If true, focus the error message when it appears (for accessibility) */
221
+ autoFocus?: boolean;
222
+ }
223
+
224
+ /**
225
+ * Feature flags to enable/disable auth methods
226
+ */
227
+ export declare interface FeatureFlags {
228
+ /** Enable email/password auth. Default: true */
229
+ email?: boolean;
230
+ /** Enable Google OAuth. Default: true (requires googleClientId) */
231
+ google?: boolean;
232
+ /** Enable Apple Sign In. Default: true (requires appleClientId) */
233
+ apple?: boolean;
234
+ /** Enable Solana wallet sign-in. Default: true */
235
+ solana?: boolean;
236
+ /** Enable WebAuthn passkeys (server-managed). Default: true */
237
+ webauthn?: boolean;
238
+ /** Enable embedded wallet auto-enrollment on registration. Default: true */
239
+ walletEnrollment?: boolean;
240
+ }
241
+
242
+ /**
243
+ * Forgot password behavior configuration
244
+ */
245
+ declare interface ForgotPasswordConfig {
246
+ /**
247
+ * Mode for handling "forgot password" clicks.
248
+ * - 'reset': Shows ForgotPasswordForm (traditional reset flow)
249
+ * - 'instantLink': Sends an instant link for passwordless sign-in
250
+ * @default 'reset'
251
+ */
252
+ mode?: 'reset' | 'instantLink';
253
+ }
254
+
255
+ /**
256
+ * Form behavior configuration
257
+ */
258
+ declare interface FormConfig {
259
+ /** Forgot password behavior on sign in form */
260
+ forgotPassword?: ForgotPasswordConfig;
261
+ /** Terms of service checkbox on register form */
262
+ termsOfService?: TermsOfServiceConfig;
263
+ /** Email marketing opt-in checkbox on register form */
264
+ emailOptIn?: EmailOptInConfig;
265
+ }
266
+
267
+ /**
268
+ * Accessible loading spinner component.
269
+ * Announces loading state to screen readers when announce prop is true.
270
+ * Wrapped with React.memo to prevent unnecessary re-renders.
271
+ */
272
+ export declare const LoadingSpinner: NamedExoticComponent<LoadingSpinnerProps>;
273
+
274
+ declare interface LoadingSpinnerProps {
275
+ size?: 'sm' | 'md' | 'lg' | 'xl';
276
+ className?: string;
277
+ style?: CSSProperties;
278
+ /** Custom label for screen readers (default: "Loading") */
279
+ label?: string;
280
+ /** If true, announce the loading state to screen readers */
281
+ announce?: boolean;
282
+ }
283
+
284
+ /**
285
+ * Session handling configuration
286
+ *
287
+ * @security For best security, use the default `cookie` storage with `autoRefresh: true`.
288
+ * Avoid `localStorage` in production unless absolutely necessary.
289
+ */
290
+ export declare interface SessionConfig {
291
+ /**
292
+ * Where to store tokens. Default: 'cookie'
293
+ *
294
+ * @security `cookie` is strongly recommended for production use.
295
+ * See {@link SessionStorage} for security implications of each option.
296
+ */
297
+ storage?: SessionStorage;
298
+ /** Auto-refresh tokens before expiry. Default: true */
299
+ autoRefresh?: boolean;
300
+ /** Sync auth state across browser tabs. Default: true */
301
+ syncTabs?: boolean;
302
+ /** Storage key for tokens when using web storage. Default: 'cedros_tokens' */
303
+ persistKey?: string;
304
+ /**
305
+ * Explicitly allow web storage for tokens.
306
+ *
307
+ * @security This is intentionally opt-in because `localStorage` and
308
+ * `sessionStorage` are vulnerable to XSS token theft.
309
+ *
310
+ * If you enable this, also implement a strict CSP and audit any third-party scripts.
311
+ */
312
+ allowWebStorage?: boolean;
313
+ }
314
+
315
+ /**
316
+ * Session storage mode
317
+ *
318
+ * **Security considerations:**
319
+ * - `cookie`: **Recommended.** HttpOnly cookies managed by server. Immune to XSS.
320
+ * - `memory`: Secure but lost on page refresh. Good for high-security applications.
321
+ * - `localStorage`: **Use with caution.** Tokens are accessible to any JavaScript
322
+ * on the page, making them vulnerable to XSS attacks. Only use when cookie-based
323
+ * auth is not possible (e.g., cross-origin scenarios without proper CORS).
324
+ */
325
+ export declare type SessionStorage = 'cookie' | 'memory' | 'localStorage' | 'sessionStorage';
326
+
327
+ /**
328
+ * Solana configuration options
329
+ */
330
+ export declare interface SolanaConfig {
331
+ /** Solana network to connect to. Default: 'mainnet-beta' */
332
+ network?: SolanaNetwork;
333
+ /** Auto-reconnect wallet on page load. Default: false */
334
+ autoConnect?: boolean;
335
+ }
336
+
337
+ /**
338
+ * Solana wallet login button with one-click authentication.
339
+ *
340
+ * Handles wallet connection and message signing automatically.
341
+ * If wallet is already connected, signs immediately.
342
+ * If not connected, connects first then auto-signs.
343
+ */
344
+ export declare function SolanaLoginButton({ onSuccess, onError, className, variant, size, disabled, hideIfNoWallet, walletContext, }: SolanaLoginButtonProps): JSX.Element | null;
345
+
346
+ declare interface SolanaLoginButtonProps {
347
+ onSuccess?: () => void;
348
+ onError?: (error: Error) => void;
349
+ className?: string;
350
+ variant?: 'default' | 'outline';
351
+ size?: 'sm' | 'md' | 'lg';
352
+ disabled?: boolean;
353
+ /**
354
+ * Hide the button if no Solana wallets are detected.
355
+ * When true (default), button renders nothing if no wallets are installed.
356
+ * When false, button always renders (useful for showing "install wallet" prompts).
357
+ * @default true
358
+ */
359
+ hideIfNoWallet?: boolean;
360
+ /**
361
+ * Solana wallet adapter context. Pass this from @solana/wallet-adapter-react's useWallet().
362
+ * The button will handle connection and signing automatically for a one-click experience.
363
+ */
364
+ walletContext?: {
365
+ publicKey: {
366
+ toBase58: () => string;
367
+ } | null;
368
+ signMessage: ((message: Uint8Array) => Promise<Uint8Array>) | null;
369
+ connected: boolean;
370
+ connecting: boolean;
371
+ connect: () => Promise<void>;
372
+ wallet: {
373
+ adapter: {
374
+ name: string;
375
+ };
376
+ } | null;
377
+ select: (walletName: string) => void;
378
+ wallets: Array<{
379
+ adapter: {
380
+ name: string;
381
+ icon: string;
382
+ readyState: string;
383
+ };
384
+ }>;
385
+ };
386
+ }
387
+
388
+ /**
389
+ * Solana network configuration
390
+ */
391
+ export declare type SolanaNetwork = 'mainnet-beta' | 'devnet';
392
+
393
+ /**
394
+ * Terms of service checkbox configuration
395
+ */
396
+ declare interface TermsOfServiceConfig {
397
+ /** Whether to show the checkbox. @default false */
398
+ show?: boolean;
399
+ /** Whether agreement is required to register. @default true (when shown) */
400
+ required?: boolean;
401
+ /** Default checked state. @default false */
402
+ defaultChecked?: boolean;
403
+ /** URL to terms of service page */
404
+ url?: string;
405
+ /** Custom label text. @default "I agree to the Terms of Service" */
406
+ label?: string;
407
+ }
408
+
409
+ /**
410
+ * Theme mode
411
+ */
412
+ export declare type ThemeMode = 'light' | 'dark' | 'auto';
413
+
414
+ /**
415
+ * CSS variable theme overrides
416
+ */
417
+ export declare interface ThemeOverrides {
418
+ '--cedros-primary'?: string;
419
+ '--cedros-primary-foreground'?: string;
420
+ '--cedros-background'?: string;
421
+ '--cedros-foreground'?: string;
422
+ '--cedros-muted'?: string;
423
+ '--cedros-muted-foreground'?: string;
424
+ '--cedros-border'?: string;
425
+ '--cedros-input'?: string;
426
+ '--cedros-ring'?: string;
427
+ '--cedros-radius'?: string;
428
+ '--cedros-destructive'?: string;
429
+ '--cedros-destructive-foreground'?: string;
430
+ [key: string]: string | undefined;
431
+ }
432
+
433
+ /**
434
+ * JWT token pair returned from authentication
435
+ */
436
+ export declare interface TokenPair {
437
+ accessToken: string;
438
+ refreshToken: string;
439
+ expiresIn: number;
440
+ }
441
+
442
+ /**
443
+ * Two-factor authentication (TOTP) configuration
444
+ *
445
+ * Admin-level settings for app-based 2FA using authenticator apps.
446
+ */
447
+ declare interface TotpConfig {
448
+ /**
449
+ * Whether TOTP 2FA is enabled for the application.
450
+ * @default false
451
+ */
452
+ enabled?: boolean;
453
+ /**
454
+ * Whether TOTP 2FA is required for all users.
455
+ * If false, users can optionally enable it for their account.
456
+ * @default false
457
+ */
458
+ required?: boolean;
459
+ /**
460
+ * Issuer name shown in authenticator apps.
461
+ * @default appName or hostname
462
+ */
463
+ issuer?: string;
464
+ }
465
+
466
+ /**
467
+ * Main authentication hook providing user state and actions.
468
+ *
469
+ * @example
470
+ * ```tsx
471
+ * function MyComponent() {
472
+ * const { user, isAuthenticated, logout, openLoginModal } = useAuth();
473
+ *
474
+ * if (!isAuthenticated) {
475
+ * return <button onClick={openLoginModal}>Login</button>;
476
+ * }
477
+ *
478
+ * return (
479
+ * <div>
480
+ * <p>Welcome, {user?.name}</p>
481
+ * <button onClick={logout}>Logout</button>
482
+ * </div>
483
+ * );
484
+ * }
485
+ * ```
486
+ */
487
+ export declare function useAuth(): UseAuthReturn;
488
+
489
+ declare interface UseAuthReturn {
490
+ user: AuthUser | null;
491
+ authState: AuthState;
492
+ error: AuthError | null;
493
+ isAuthenticated: boolean;
494
+ isLoading: boolean;
495
+ logout: () => Promise<void>;
496
+ refreshUser: () => Promise<void>;
497
+ openLoginModal: () => void;
498
+ closeLoginModal: () => void;
499
+ }
500
+
501
+ /**
502
+ * Hook to access the full Cedros Login context.
503
+ * Must be used within a CedrosLoginProvider.
504
+ *
505
+ * For better performance, prefer `useAuthState()` or `useAuthUI()` when you
506
+ * only need a subset of the context. This hook re-renders on any change.
507
+ */
508
+ export declare function useCedrosLogin(): CedrosLoginContextValue;
509
+
510
+ /**
511
+ * Hook for Solana wallet authentication.
512
+ *
513
+ * @example
514
+ * ```tsx
515
+ * function SolanaLogin() {
516
+ * const { requestChallenge, signIn, isLoading } = useSolanaAuth();
517
+ * const { publicKey, signMessage } = useWallet();
518
+ *
519
+ * const handleLogin = async () => {
520
+ * const challenge = await requestChallenge(publicKey.toBase58());
521
+ * const signature = await signMessage(new TextEncoder().encode(challenge.message));
522
+ * const result = await signIn(
523
+ * publicKey.toBase58(),
524
+ * Buffer.from(signature).toString('base64'),
525
+ * challenge.message
526
+ * );
527
+ * };
528
+ * }
529
+ * ```
530
+ */
531
+ export declare function useSolanaAuth(): UseSolanaAuthReturn;
532
+
533
+ declare interface UseSolanaAuthReturn {
534
+ requestChallenge: (publicKey: string) => Promise<ChallengeResponse>;
535
+ signIn: (publicKey: string, signature: string, message: string) => Promise<AuthResponse>;
536
+ isLoading: boolean;
537
+ error: AuthError | null;
538
+ clearError: () => void;
539
+ }
540
+
541
+ /**
542
+ * Embedded wallet configuration
543
+ *
544
+ * Controls whether the embedded wallet is advertised to other Cedros modules
545
+ * (like cedros-pay) running in the same application.
546
+ */
547
+ declare interface WalletConfig {
548
+ /**
549
+ * Expose embedded wallet availability via window global.
550
+ *
551
+ * When enabled, sets `window.__CEDROS_EMBEDDED_WALLET__` with:
552
+ * - `available`: boolean - whether user has enrolled SSS wallet
553
+ * - `publicKey`: string | null - Solana public key if available
554
+ *
555
+ * This allows other modules (e.g., cedros-pay) to detect embedded wallet
556
+ * and offer crypto payment options to users without browser wallet extensions.
557
+ *
558
+ * @security The signing function is NOT exposed on window. Signing must go
559
+ * through React context (useTransactionSigning hook) to prevent unauthorized
560
+ * access by arbitrary scripts.
561
+ *
562
+ * @default false
563
+ */
564
+ exposeAvailability?: boolean;
565
+ /**
566
+ * Whether to include the user's wallet public key in the window global.
567
+ *
568
+ * @security This is a privacy tradeoff: exposing a stable identifier on `window`
569
+ * makes it available to any script on the page.
570
+ *
571
+ * If you only need to know whether an embedded wallet exists, keep this `false`.
572
+ *
573
+ * @default false
574
+ */
575
+ exposePublicKey?: boolean;
576
+ /**
577
+ * SEC-004: Allowed domains for WebAuthn RP ID validation.
578
+ *
579
+ * In production, passkey operations will be rejected if the current hostname
580
+ * is not in this list. This prevents passkey registration on malicious domains
581
+ * that might be serving the app.
582
+ *
583
+ * @security Without this, an attacker could phish users to a lookalike domain
584
+ * and get them to register passkeys that only work on the malicious domain.
585
+ * While this doesn't compromise real credentials, it can be used in social
586
+ * engineering attacks.
587
+ *
588
+ * @example ['myapp.com', 'app.myapp.com']
589
+ * @default [] (localhost/127.0.0.1 always allowed for development)
590
+ */
591
+ allowedRpDomains?: string[];
592
+ }
593
+
594
+ export { }