@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
@@ -1,28 +1,32 @@
1
- import { jsxs as R, jsx as m } from "react/jsx-runtime";
2
- import { createContext as me, useEffect as K, useState as U, useRef as P, useCallback as k, useMemo as O, useContext as we, memo as Qe } from "react";
3
- const ae = me(null);
4
- function be({ theme: e, themeOverrides: t }) {
5
- K(() => {
1
+ import { jsx as ne, jsxs as Ge } from "react/jsx-runtime";
2
+ import { useEffect as x, useState as G, useRef as P, useCallback as B, useMemo as M } from "react";
3
+ import { A as Ke, a as He, C as Je } from "./LoadingSpinner-6vml-zwr.js";
4
+ import { g as oe, a as Ee, A as Ve, h as Y, u as pe } from "./apiClient-B2JxVPlH.js";
5
+ let Z = 0;
6
+ function Me({ theme: e, themeOverrides: A }) {
7
+ x(() => {
6
8
  if (typeof document > "u" || typeof window > "u")
7
9
  return;
8
- const A = document.documentElement;
10
+ const t = document.documentElement;
11
+ let i = !1;
12
+ e === "dark" ? i = !0 : e === "light" ? i = !1 : i = window.matchMedia("(prefers-color-scheme: dark)").matches;
9
13
  let r = !1;
10
- e === "dark" ? (A.classList.add("cedros-dark"), r = !0) : e === "light" ? A.classList.remove("cedros-dark") : window.matchMedia("(prefers-color-scheme: dark)").matches ? (A.classList.add("cedros-dark"), r = !0) : A.classList.remove("cedros-dark");
14
+ i ? (Z++, r = !0, t.classList.add("cedros-dark")) : Z === 0 && t.classList.remove("cedros-dark");
11
15
  const n = /* @__PURE__ */ new Map();
12
- return t && Object.entries(t).forEach(([i, o]) => {
13
- if (o) {
14
- const I = A.style.getPropertyValue(i);
15
- n.set(i, I), A.style.setProperty(i, o);
16
+ return A && Object.entries(A).forEach(([o, g]) => {
17
+ if (g) {
18
+ const c = t.style.getPropertyValue(o);
19
+ n.set(o, c), t.style.setProperty(o, g);
16
20
  }
17
21
  }), () => {
18
- r && A.classList.remove("cedros-dark"), n.forEach((i, o) => {
19
- i ? A.style.setProperty(o, i) : A.style.removeProperty(o);
22
+ r && (Z--, Z === 0 && t.classList.remove("cedros-dark")), n.forEach((o, g) => {
23
+ o ? t.style.setProperty(g, o) : t.style.removeProperty(g);
20
24
  });
21
25
  };
22
- }, [e, t]);
26
+ }, [e, A]);
23
27
  }
24
- const Ge = "cedros_tokens", Ke = 6e4;
25
- class He {
28
+ const Pe = "cedros_tokens", Ye = 6e4;
29
+ class Ne {
26
30
  storage;
27
31
  requestedStorage;
28
32
  storageKey;
@@ -34,9 +38,11 @@ class He {
34
38
  onRefreshError = null;
35
39
  // P-02: Track destruction to prevent timer callbacks from executing after cleanup
36
40
  isDestroyed = !1;
41
+ // S-13: Prevent onSessionExpired from firing multiple times
42
+ sessionExpiredFired = !1;
37
43
  allowWebStorage;
38
- constructor(t = "cookie", A = Ge, r = {}) {
39
- this.requestedStorage = t, this.storage = t, this.storageKey = A, this.allowWebStorage = r.allowWebStorage ?? !1, this.warnIfLocalStorage(), !this.allowWebStorage && (this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && (this.storage = "memory"), this.loadFromStorage();
44
+ constructor(A = "cookie", t = Pe, i = {}) {
45
+ this.requestedStorage = A, this.storage = A, this.storageKey = t, this.allowWebStorage = i.allowWebStorage ?? !1, this.warnIfLocalStorage(), !this.allowWebStorage && (this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && (this.storage = "memory"), this.loadFromStorage();
40
46
  }
41
47
  /**
42
48
  * S-18/UI-XSS: Warn about localStorage XSS vulnerability in all environments.
@@ -45,36 +51,36 @@ class He {
45
51
  */
46
52
  warnIfLocalStorage() {
47
53
  if ((this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && typeof console < "u") {
48
- const t = this.allowWebStorage ? "" : " (web storage disabled by default; set allowWebStorage=true to enable)";
54
+ const A = this.allowWebStorage ? "" : " (web storage disabled by default; set allowWebStorage=true to enable)";
49
55
  console.warn(
50
- "[cedros-login] SECURITY: Using web storage for token storage. Tokens are vulnerable to XSS attacks." + t + " PRODUCTION RECOMMENDATIONS: (1) Use httpOnly cookie storage instead, (2) If web storage required: implement strict Content-Security-Policy, sanitize all input/output, audit third-party scripts. See https://owasp.org/www-community/attacks/xss/"
56
+ "[cedros-login] SECURITY: Using web storage for token storage. Tokens are vulnerable to XSS attacks." + A + " PRODUCTION RECOMMENDATIONS: (1) Use httpOnly cookie storage instead, (2) If web storage required: implement strict Content-Security-Policy, sanitize all input/output, audit third-party scripts. See https://owasp.org/www-community/attacks/xss/"
51
57
  );
52
58
  }
53
59
  }
54
60
  /**
55
61
  * Set the callback for when tokens need to be refreshed
56
62
  */
57
- setRefreshCallback(t) {
58
- this.onRefreshNeeded = t, this.scheduleRefresh();
63
+ setRefreshCallback(A) {
64
+ this.onRefreshNeeded = A, this.scheduleRefresh();
59
65
  }
60
66
  /**
61
67
  * Set the callback for when session expires
62
68
  */
63
- setSessionExpiredCallback(t) {
64
- this.onSessionExpired = t;
69
+ setSessionExpiredCallback(A) {
70
+ this.onSessionExpired = A;
65
71
  }
66
72
  /**
67
73
  * Set the callback for when token refresh fails
68
74
  * This allows the UI to show an error message to the user
69
75
  */
70
- setRefreshErrorCallback(t) {
71
- this.onRefreshError = t;
76
+ setRefreshErrorCallback(A) {
77
+ this.onRefreshError = A;
72
78
  }
73
79
  /**
74
80
  * Store tokens and schedule auto-refresh
75
81
  */
76
- setTokens(t) {
77
- this.tokens = t, this.expiresAt = Date.now() + t.expiresIn * 1e3, this.saveToStorage(), this.scheduleRefresh();
82
+ setTokens(A) {
83
+ this.tokens = A, this.expiresAt = Date.now() + A.expiresIn * 1e3, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();
78
84
  }
79
85
  /**
80
86
  * Get the current access token
@@ -83,8 +89,8 @@ class He {
83
89
  */
84
90
  getAccessToken() {
85
91
  if (this.isDestroyed) return null;
86
- const t = this.tokens?.accessToken;
87
- return t ? Date.now() >= this.expiresAt ? (this.clear(), this.onSessionExpired?.(), null) : t : null;
92
+ const A = this.tokens?.accessToken;
93
+ return A ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : A : null;
88
94
  }
89
95
  /**
90
96
  * Get the current refresh token
@@ -110,7 +116,7 @@ class He {
110
116
  * P-02: Also sets isDestroyed flag to prevent timer callbacks from executing.
111
117
  */
112
118
  destroy() {
113
- this.isDestroyed = !0, this.cancelRefresh(), this.onRefreshNeeded = null, this.onSessionExpired = null, this.onRefreshError = null, this.tokens = null;
119
+ this.isDestroyed = !0, this.cancelRefresh(), this.clearStorage(), this.onRefreshNeeded = null, this.onSessionExpired = null, this.onRefreshError = null, this.tokens = null;
114
120
  }
115
121
  /**
116
122
  * Get time until token expiry in ms
@@ -118,25 +124,32 @@ class He {
118
124
  getTimeUntilExpiry() {
119
125
  return this.tokens ? Math.max(0, this.expiresAt - Date.now()) : 0;
120
126
  }
127
+ /**
128
+ * S-13: Fire onSessionExpired at most once per token lifecycle.
129
+ * Reset by setTokens() when new tokens are stored.
130
+ */
131
+ fireSessionExpired() {
132
+ this.sessionExpiredFired || (this.sessionExpiredFired = !0, this.onSessionExpired?.());
133
+ }
121
134
  scheduleRefresh() {
122
135
  if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;
123
- const t = this.getTimeUntilExpiry(), A = Math.max(0, t - Ke);
124
- if (A <= 0) {
136
+ const A = this.getTimeUntilExpiry(), t = Math.max(0, A - Ye);
137
+ if (t <= 0) {
125
138
  if (this.isDestroyed) return;
126
- this.onRefreshNeeded().catch((r) => {
139
+ this.onRefreshNeeded().catch((i) => {
127
140
  if (this.isDestroyed) return;
128
- const n = r instanceof Error ? r : new Error("Token refresh failed");
129
- this.onRefreshError?.(n), this.clear(), this.onSessionExpired?.();
141
+ const r = i instanceof Error ? i : new Error("Token refresh failed");
142
+ this.onRefreshError?.(r), this.clear(), this.fireSessionExpired();
130
143
  });
131
144
  return;
132
145
  }
133
146
  this.refreshTimer = setTimeout(() => {
134
- this.isDestroyed || this.onRefreshNeeded?.().catch((r) => {
147
+ this.isDestroyed || this.onRefreshNeeded?.().catch((i) => {
135
148
  if (this.isDestroyed) return;
136
- const n = r instanceof Error ? r : new Error("Token refresh failed");
137
- this.onRefreshError?.(n), this.clear(), this.onSessionExpired?.();
149
+ const r = i instanceof Error ? i : new Error("Token refresh failed");
150
+ this.onRefreshError?.(r), this.clear(), this.fireSessionExpired();
138
151
  });
139
- }, A);
152
+ }, t);
140
153
  }
141
154
  cancelRefresh() {
142
155
  this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null);
@@ -145,17 +158,17 @@ class He {
145
158
  if (this.storage !== "memory" && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
146
159
  try {
147
160
  if (this.storage === "localStorage" || this.storage === "sessionStorage") {
148
- const t = this.storage === "localStorage" ? localStorage : sessionStorage, A = t.getItem(this.storageKey);
149
- if (A) {
150
- const r = JSON.parse(A);
151
- this.isValidStoredTokenData(r) ? r.expiresAt > Date.now() ? (this.tokens = r.tokens, this.expiresAt = r.expiresAt) : t.removeItem(this.storageKey) : t.removeItem(this.storageKey);
161
+ const A = this.storage === "localStorage" ? localStorage : sessionStorage, t = A.getItem(this.storageKey);
162
+ if (t) {
163
+ const i = JSON.parse(t);
164
+ this.isValidStoredTokenData(i) ? i.expiresAt > Date.now() ? (this.tokens = i.tokens, this.expiresAt = i.expiresAt) : A.removeItem(this.storageKey) : A.removeItem(this.storageKey);
152
165
  }
153
166
  }
154
167
  } catch {
155
168
  if (this.storage === "localStorage" || this.storage === "sessionStorage") {
156
- const t = this.storage === "localStorage" ? localStorage : sessionStorage;
169
+ const A = this.storage === "localStorage" ? localStorage : sessionStorage;
157
170
  try {
158
- t.removeItem(this.storageKey);
171
+ A.removeItem(this.storageKey);
159
172
  } catch {
160
173
  }
161
174
  }
@@ -164,22 +177,22 @@ class He {
164
177
  /**
165
178
  * Validate that parsed data matches expected StoredTokenData structure
166
179
  */
167
- isValidStoredTokenData(t) {
168
- if (typeof t != "object" || t === null) return !1;
169
- const A = t;
170
- if (typeof A.expiresAt != "number" || typeof A.tokens != "object" || A.tokens === null) return !1;
171
- const r = A.tokens;
172
- return !(typeof r.accessToken != "string" || typeof r.refreshToken != "string" || typeof r.expiresIn != "number");
180
+ isValidStoredTokenData(A) {
181
+ if (typeof A != "object" || A === null) return !1;
182
+ const t = A;
183
+ if (typeof t.expiresAt != "number" || typeof t.tokens != "object" || t.tokens === null) return !1;
184
+ const i = t.tokens;
185
+ return !(typeof i.accessToken != "string" || typeof i.refreshToken != "string" || typeof i.expiresIn != "number");
173
186
  }
174
187
  saveToStorage() {
175
188
  if (!(this.storage === "memory" || !this.tokens) && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
176
189
  try {
177
190
  if (this.storage === "localStorage" || this.storage === "sessionStorage") {
178
- const t = this.storage === "localStorage" ? localStorage : sessionStorage, A = {
191
+ const A = this.storage === "localStorage" ? localStorage : sessionStorage, t = {
179
192
  tokens: this.tokens,
180
193
  expiresAt: this.expiresAt
181
194
  };
182
- t.setItem(this.storageKey, JSON.stringify(A));
195
+ A.setItem(this.storageKey, JSON.stringify(t));
183
196
  }
184
197
  } catch {
185
198
  }
@@ -192,31 +205,40 @@ class He {
192
205
  }
193
206
  }
194
207
  }
195
- const Je = "cedros_auth_sync";
196
- class Me {
208
+ const xe = "cedros_auth_sync";
209
+ class Oe {
197
210
  channel = null;
198
211
  callback = null;
199
212
  boundHandler = null;
200
213
  constructor() {
201
- typeof window < "u" && "BroadcastChannel" in window && (this.channel = new BroadcastChannel(Je), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener("message", this.boundHandler));
214
+ typeof window < "u" && "BroadcastChannel" in window && (this.channel = new BroadcastChannel(xe), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener("message", this.boundHandler));
202
215
  }
203
216
  /**
204
- * Handle incoming sync messages
217
+ * Handle incoming sync messages.
218
+ * S-15: Validate message shape to prevent forged auth state from same-origin XSS.
205
219
  */
206
- handleMessage(t) {
207
- this.callback?.(t.data);
220
+ handleMessage(A) {
221
+ const t = A.data;
222
+ if (!(!t || typeof t != "object" || typeof t.type != "string") && ["login", "logout", "refresh"].includes(t.type)) {
223
+ if (t.type === "login") {
224
+ const i = t;
225
+ if (typeof i.user != "object" || i.user === null || typeof i.user.id != "string")
226
+ return;
227
+ }
228
+ this.callback?.(t);
229
+ }
208
230
  }
209
231
  /**
210
232
  * Set the callback for sync events from other tabs
211
233
  */
212
- setCallback(t) {
213
- this.callback = t;
234
+ setCallback(A) {
235
+ this.callback = A;
214
236
  }
215
237
  /**
216
238
  * Broadcast login event to other tabs
217
239
  */
218
- broadcastLogin(t) {
219
- this.channel?.postMessage({ type: "login", user: t });
240
+ broadcastLogin(A) {
241
+ this.channel?.postMessage({ type: "login", user: A });
220
242
  }
221
243
  /**
222
244
  * Broadcast logout event to other tabs
@@ -238,448 +260,446 @@ class Me {
238
260
  this.channel && (this.boundHandler && (this.channel.removeEventListener("message", this.boundHandler), this.boundHandler = null), this.channel.close(), this.channel = null), this.callback = null;
239
261
  }
240
262
  }
241
- const ce = 20;
242
- function ne() {
243
- if (typeof document > "u") return null;
244
- const e = document.querySelector('meta[name="csrf-token"]');
245
- if (e) {
246
- const A = e.getAttribute("content");
247
- if (A && A.length >= ce)
248
- return A;
249
- }
250
- const t = document.cookie.split(";");
251
- for (const A of t) {
252
- const [r, ...n] = A.trim().split("="), i = n.join("="), o = r.toLowerCase();
253
- if (o === "xsrf-token" || o === "csrf-token")
254
- try {
255
- const I = decodeURIComponent(i.trim());
256
- if (I.length >= ce)
257
- return I;
258
- } catch {
259
- continue;
260
- }
261
- }
262
- return null;
263
- }
264
- function X(e) {
263
+ function q(e) {
265
264
  if (typeof e != "object" || e === null) return !1;
266
- const t = e;
267
- if (typeof t.user != "object" || t.user === null) return !1;
268
- const A = t.user;
269
- return typeof A.id == "string" && A.id.length > 0;
265
+ const A = e;
266
+ if (typeof A.user != "object" || A.user === null) return !1;
267
+ const t = A.user;
268
+ return typeof t.id == "string" && t.id.length > 0;
270
269
  }
271
- function Ne(e) {
270
+ function ve(e) {
272
271
  if (typeof e != "object" || e === null) return !1;
273
- const t = e;
274
- return typeof t.accessToken == "string" && t.accessToken.length > 0 && typeof t.refreshToken == "string" && t.refreshToken.length > 0 && typeof t.expiresIn == "number" && t.expiresIn > 0;
272
+ const A = e;
273
+ return typeof A.accessToken == "string" && A.accessToken.length > 0 && typeof A.refreshToken == "string" && A.refreshToken.length > 0 && typeof A.expiresIn == "number" && A.expiresIn > 0;
275
274
  }
276
- function Ve({
275
+ function Te({
277
276
  serverUrl: e,
278
- session: t,
279
- callbacks: A,
280
- requestTimeoutMs: r
277
+ session: A,
278
+ callbacks: t,
279
+ requestTimeoutMs: i
281
280
  }) {
282
- const [n, i] = U(null), [o, I] = U("idle"), c = P(null), w = P(null), B = P(A), p = P(!0), f = P(null);
283
- K(() => {
284
- B.current = A;
285
- }, [A]), K(() => (p.current = !0, () => {
286
- p.current = !1;
281
+ const [r, n] = G(null), [o, g] = G("idle"), c = P(null), I = P(null), y = P(t), d = P(!0), f = P(null), U = P(() => Promise.resolve()), D = P(() => {
282
+ });
283
+ x(() => {
284
+ y.current = t;
285
+ }, [t]), x(() => (d.current = !0, () => {
286
+ d.current = !1;
287
287
  }), []);
288
- const Q = k((s) => {
289
- p.current && i(s);
290
- }, []), u = k((s) => {
291
- p.current && I(s);
292
- }, []), h = O(
288
+ const w = B((l) => {
289
+ d.current && n(l);
290
+ }, []), Q = B((l) => {
291
+ d.current && g(l);
292
+ }, []), u = M(
293
293
  () => ({
294
- storage: t?.storage ?? "cookie",
295
- autoRefresh: t?.autoRefresh ?? !0,
296
- syncTabs: t?.syncTabs ?? !0,
297
- persistKey: t?.persistKey,
298
- allowWebStorage: t?.allowWebStorage ?? !1
294
+ storage: A?.storage ?? "cookie",
295
+ autoRefresh: A?.autoRefresh ?? !0,
296
+ syncTabs: A?.syncTabs ?? !0,
297
+ persistKey: A?.persistKey,
298
+ allowWebStorage: A?.allowWebStorage ?? !1
299
299
  }),
300
300
  [
301
- t?.storage,
302
- t?.autoRefresh,
303
- t?.syncTabs,
304
- t?.persistKey,
305
- t?.allowWebStorage
301
+ A?.storage,
302
+ A?.autoRefresh,
303
+ A?.syncTabs,
304
+ A?.persistKey,
305
+ A?.allowWebStorage
306
306
  ]
307
307
  );
308
- K(() => (c.current = new He(h.storage, h.persistKey, {
309
- allowWebStorage: h.allowWebStorage
310
- }), h.syncTabs && (w.current = new Me()), () => {
311
- c.current?.destroy(), c.current = null, w.current?.close();
312
- }), [
313
- h.storage,
314
- h.syncTabs,
315
- h.persistKey,
316
- h.allowWebStorage
308
+ x(() => {
309
+ const l = new Ne(u.storage, u.persistKey, {
310
+ allowWebStorage: u.allowWebStorage
311
+ });
312
+ return c.current = l, u.autoRefresh && l.setRefreshCallback(() => U.current()), l.setSessionExpiredCallback(() => D.current()), u.syncTabs && (I.current = new Oe()), () => {
313
+ l.destroy(), c.current = null, I.current?.close();
314
+ };
315
+ }, [
316
+ u.storage,
317
+ u.syncTabs,
318
+ u.persistKey,
319
+ u.allowWebStorage,
320
+ u.autoRefresh
317
321
  ]);
318
- const a = k(async () => {
322
+ const F = B(async () => {
319
323
  if (f.current)
320
324
  return f.current;
321
- const s = c.current?.getRefreshToken(), E = !!s, F = ne(), b = {};
322
- E && (b["Content-Type"] = "application/json"), F && (b["X-CSRF-Token"] = F);
323
- const N = (async () => {
324
- const V = new AbortController(), L = r ?? 1e4, Ue = window.setTimeout(() => V.abort(), L);
325
+ const l = c.current?.getRefreshToken(), S = !!l, b = oe(), K = {};
326
+ S && (K["Content-Type"] = "application/json"), b && (K["X-CSRF-Token"] = b);
327
+ let m, J;
328
+ const v = new Promise((j, ie) => {
329
+ m = j, J = ie;
330
+ });
331
+ f.current = v, (async () => {
332
+ const j = new AbortController(), ie = i ?? 1e4, me = window.setTimeout(() => j.abort(), ie);
325
333
  try {
326
- const ge = await fetch(`${e}/refresh`, {
334
+ const X = await fetch(`${e}/refresh`, {
327
335
  method: "POST",
328
- headers: Object.keys(b).length > 0 ? b : void 0,
336
+ headers: Object.keys(K).length > 0 ? K : void 0,
329
337
  credentials: "include",
330
- body: E ? JSON.stringify({ refreshToken: s }) : void 0,
331
- signal: V.signal
338
+ body: S ? JSON.stringify({ refreshToken: l }) : void 0,
339
+ signal: j.signal
332
340
  });
333
- if (!ge.ok)
341
+ if (!X.ok)
334
342
  throw new Error("Token refresh failed");
335
- const z = await ge.json();
336
- if (z.tokens) {
337
- if (!Ne(z.tokens))
343
+ const re = await X.json();
344
+ if (re.tokens) {
345
+ if (!ve(re.tokens))
338
346
  throw new Error("Invalid token response structure");
339
- c.current?.setTokens(z.tokens);
340
- } else if (h.storage !== "cookie")
347
+ c.current?.setTokens(re.tokens);
348
+ } else if (u.storage !== "cookie")
341
349
  throw new Error("Token refresh failed");
342
- w.current?.broadcastRefresh();
350
+ I.current?.broadcastRefresh(), m();
351
+ } catch (X) {
352
+ throw J(X), X;
343
353
  } finally {
344
- window.clearTimeout(Ue);
354
+ window.clearTimeout(me);
345
355
  }
346
- })();
347
- f.current = N;
356
+ })().catch(() => {
357
+ });
348
358
  try {
349
- await N;
359
+ await v;
350
360
  } finally {
351
361
  f.current = null;
352
362
  }
353
- }, [e, h.storage, r]), g = k(() => {
354
- if (h.storage === "cookie") return;
355
- const s = c.current?.getAccessToken();
356
- if (s)
357
- return { Authorization: `Bearer ${s}` };
358
- }, [h.storage]), C = k(() => {
359
- c.current?.clear(), Q(null), u("unauthenticated"), B.current?.onSessionExpired?.();
360
- }, [u, Q]);
361
- K(() => {
362
- c.current && (h.autoRefresh && c.current.setRefreshCallback(a), c.current.setSessionExpiredCallback(C));
363
- }, [h.autoRefresh, a, C]);
364
- const d = k(async () => {
363
+ }, [e, u.storage, i]), E = B(() => {
364
+ if (u.storage === "cookie") return;
365
+ const l = c.current?.getAccessToken();
366
+ if (l)
367
+ return { Authorization: `Bearer ${l}` };
368
+ }, [u.storage]), h = B(() => {
369
+ c.current?.clear(), w(null), Q("unauthenticated"), y.current?.onSessionExpired?.();
370
+ }, [Q, w]);
371
+ U.current = F, D.current = h;
372
+ const a = B(
373
+ (l) => {
374
+ const S = new AbortController(), b = i ?? 1e4, K = window.setTimeout(() => S.abort(), b), m = {}, J = E();
375
+ J && Object.assign(m, J);
376
+ const v = oe();
377
+ return v && (m["X-CSRF-Token"] = v), {
378
+ promise: fetch(l, {
379
+ credentials: "include",
380
+ headers: Object.keys(m).length > 0 ? m : void 0,
381
+ signal: S.signal
382
+ }),
383
+ cleanup: () => window.clearTimeout(K)
384
+ };
385
+ },
386
+ [E, i]
387
+ ), s = B(async () => {
388
+ const l = a(`${e}/user`);
365
389
  try {
366
- const s = await fetch(`${e}/user`, {
367
- credentials: "include",
368
- headers: g()
369
- });
370
- if (s.ok) {
371
- const E = await s.json();
372
- if (X(E)) {
373
- Q(E.user), u("authenticated");
390
+ const S = await l.promise;
391
+ if (S.ok) {
392
+ const b = await S.json();
393
+ if (q(b)) {
394
+ w(b.user), Q("authenticated");
374
395
  return;
375
396
  }
376
397
  }
377
- if (s.status === 401 && h.autoRefresh) {
398
+ if (S.status === 401 && u.autoRefresh) {
378
399
  try {
379
- await a();
400
+ await F();
380
401
  } catch {
381
- C();
402
+ h();
382
403
  return;
383
404
  }
384
- const E = await fetch(`${e}/user`, {
385
- credentials: "include",
386
- headers: g()
387
- });
388
- if (E.ok) {
389
- const F = await E.json();
390
- if (X(F)) {
391
- Q(F.user), u("authenticated");
392
- return;
405
+ const b = a(`${e}/user`);
406
+ try {
407
+ const K = await b.promise;
408
+ if (K.ok) {
409
+ const m = await K.json();
410
+ if (q(m)) {
411
+ w(m.user), Q("authenticated");
412
+ return;
413
+ }
393
414
  }
415
+ } finally {
416
+ b.cleanup();
394
417
  }
395
418
  }
396
- Q(null), u("unauthenticated");
419
+ w(null), Q("unauthenticated");
397
420
  } catch {
421
+ w(null), Q("unauthenticated");
422
+ } finally {
423
+ l.cleanup();
398
424
  }
399
425
  }, [
400
426
  e,
401
- h.autoRefresh,
427
+ u.autoRefresh,
428
+ F,
402
429
  a,
403
- g,
404
- C,
405
- u,
406
- Q
430
+ h,
431
+ Q,
432
+ w
407
433
  ]);
408
- K(() => {
409
- !w.current || !h.syncTabs || w.current.setCallback((s) => {
410
- switch (s.type) {
434
+ x(() => {
435
+ !I.current || !u.syncTabs || I.current.setCallback((l) => {
436
+ switch (l.type) {
411
437
  case "login":
412
- Q(s.user), u("authenticated");
438
+ w(l.user), Q("authenticated");
413
439
  break;
414
440
  case "logout":
415
- Q(null), u("unauthenticated"), c.current?.clear();
441
+ w(null), Q("unauthenticated"), c.current?.clear();
416
442
  break;
417
443
  case "refresh":
418
- d();
444
+ s();
419
445
  break;
420
446
  default:
421
- console.warn("[Cedros Login] Unhandled tab sync event:", s);
447
+ console.warn("[Cedros Login] Unhandled tab sync event:", l);
422
448
  }
423
449
  });
424
- }, [h.syncTabs, d, u, Q]), K(() => {
425
- const s = new AbortController(), E = r ?? 1e4, F = window.setTimeout(() => s.abort(), E);
450
+ }, [u.syncTabs, s, Q, w]), x(() => {
451
+ const l = new AbortController(), S = i ?? 1e4, b = window.setTimeout(() => l.abort(), S);
426
452
  return (async () => {
427
- u("loading");
453
+ Q("loading");
428
454
  try {
429
- const N = await fetch(`${e}/user`, {
455
+ const m = await fetch(`${e}/user`, {
430
456
  credentials: "include",
431
- headers: g(),
432
- signal: s.signal
457
+ headers: E(),
458
+ signal: l.signal
433
459
  });
434
- if (N.ok) {
435
- const V = await N.json();
436
- if (X(V)) {
437
- Q(V.user), u("authenticated");
460
+ if (m.ok) {
461
+ const J = await m.json();
462
+ if (q(J)) {
463
+ w(J.user), Q("authenticated");
438
464
  return;
439
465
  }
440
466
  }
441
- if (N.status === 401 && h.autoRefresh) {
467
+ if (m.status === 401 && u.autoRefresh) {
442
468
  try {
443
- await a();
469
+ await F();
444
470
  } catch {
445
- C();
471
+ h();
446
472
  return;
447
473
  }
448
- const V = await fetch(`${e}/user`, {
474
+ const J = await fetch(`${e}/user`, {
449
475
  credentials: "include",
450
- headers: g(),
451
- signal: s.signal
476
+ headers: E(),
477
+ signal: l.signal
452
478
  });
453
- if (V.ok) {
454
- const L = await V.json();
455
- if (X(L)) {
456
- Q(L.user), u("authenticated");
479
+ if (J.ok) {
480
+ const v = await J.json();
481
+ if (q(v)) {
482
+ w(v.user), Q("authenticated");
457
483
  return;
458
484
  }
459
485
  }
460
486
  }
461
- Q(null), u("unauthenticated");
487
+ w(null), Q("unauthenticated");
462
488
  } catch {
463
- Q(null), u("unauthenticated");
489
+ w(null), Q("unauthenticated");
464
490
  }
465
491
  })(), () => {
466
- window.clearTimeout(F), s.abort();
492
+ window.clearTimeout(b), l.abort();
467
493
  };
468
494
  }, [
469
495
  e,
470
- h.autoRefresh,
471
- a,
472
- g,
473
- C,
474
- u,
496
+ u.autoRefresh,
497
+ F,
498
+ E,
499
+ h,
475
500
  Q,
476
- r
501
+ w,
502
+ i
477
503
  ]);
478
- const D = k(
479
- (s, E) => {
480
- Q(s), u("authenticated"), E && c.current?.setTokens(E), p.current && w.current?.broadcastLogin(s);
504
+ const C = B(
505
+ (l, S) => {
506
+ w(l), Q("authenticated"), S && c.current?.setTokens(S), d.current && I.current?.broadcastLogin(l);
481
507
  },
482
- [Q, u]
483
- ), y = k(async () => {
484
- const s = ne();
508
+ [w, Q]
509
+ ), k = B(async () => {
510
+ const l = oe(), S = new AbortController(), b = i ?? 1e4, K = window.setTimeout(() => S.abort(), b);
485
511
  try {
486
512
  await fetch(`${e}/logout`, {
487
513
  method: "POST",
488
514
  headers: {
489
- ...s ? { "X-CSRF-Token": s } : {},
490
- ...g() ?? {}
515
+ ...l ? { "X-CSRF-Token": l } : {},
516
+ ...E() ?? {}
491
517
  },
492
- credentials: "include"
518
+ credentials: "include",
519
+ signal: S.signal
493
520
  });
494
521
  } catch {
495
522
  } finally {
496
- Q(null), u("unauthenticated"), c.current?.clear(), w.current?.broadcastLogout(), B.current?.onLogout?.();
523
+ window.clearTimeout(K), w(null), Q("unauthenticated"), c.current?.clear(), I.current?.broadcastLogout(), y.current?.onLogout?.();
497
524
  }
498
- }, [e, g, Q, u]), l = k(() => c.current?.getAccessToken() ?? null, []);
525
+ }, [e, E, w, Q, i]), H = B(() => c.current?.getAccessToken() ?? null, []);
499
526
  return {
500
- user: n,
527
+ user: r,
501
528
  authState: o,
502
- handleLoginSuccess: D,
503
- logout: y,
504
- refreshUser: d,
505
- getAccessToken: l
529
+ handleLoginSuccess: C,
530
+ logout: k,
531
+ refreshUser: s,
532
+ getAccessToken: H
506
533
  };
507
534
  }
508
- function Be() {
509
- const e = we(ae);
510
- if (!e)
511
- throw new Error("useCedrosLogin must be used within a CedrosLoginProvider");
512
- return e;
513
- }
514
- function de() {
515
- return we(ae);
516
- }
517
- const Oe = {
535
+ const Re = {
518
536
  mCost: 19456,
519
537
  // 19 MiB
520
538
  tCost: 2,
521
539
  pCost: 1
522
540
  };
523
- function Pe(e) {
541
+ function Xe(e) {
524
542
  return e.length === 16;
525
543
  }
526
- function xe(e) {
544
+ function Le(e) {
527
545
  if (e.length === 16) return !0;
528
546
  if (e.length < 18) return !1;
529
- const t = e[0];
530
- return !(t !== 128 && t !== 8);
547
+ const A = e[0];
548
+ return A === 0 || A === 1 || A === 128 || A === 8;
531
549
  }
532
- function Ye(e) {
550
+ function We(e) {
533
551
  return e.length === 32;
534
552
  }
535
- function ve(e) {
553
+ function je(e) {
536
554
  return e.length === 12;
537
555
  }
538
- function Te(e) {
556
+ function Ze(e) {
539
557
  return e.length >= 16;
540
558
  }
541
- function Re(e) {
559
+ function qe(e) {
542
560
  return e.length === 32;
543
561
  }
544
- function Le(e) {
545
- if (!Pe(e))
562
+ function _e(e) {
563
+ if (!Xe(e))
546
564
  throw new Error(`Invalid seed length: expected 16, got ${e.length}`);
547
565
  return e;
548
566
  }
549
- function qt(e) {
550
- if (!xe(e))
567
+ function ZA(e) {
568
+ if (!Le(e))
551
569
  throw new Error(`Invalid share length: expected >=16, got ${e.length}`);
552
570
  return e;
553
571
  }
554
- function Ee(e) {
555
- if (!Ye(e))
572
+ function ye(e) {
573
+ if (!We(e))
556
574
  throw new Error(`Invalid key length: expected 32, got ${e.length}`);
557
575
  return e;
558
576
  }
559
- function Xe(e) {
560
- if (!ve(e))
577
+ function $e(e) {
578
+ if (!je(e))
561
579
  throw new Error(`Invalid nonce length: expected 12, got ${e.length}`);
562
580
  return e;
563
581
  }
564
- function We(e) {
565
- if (!Te(e))
582
+ function ze(e) {
583
+ if (!Ze(e))
566
584
  throw new Error(`Invalid salt length: expected >=16, got ${e.length}`);
567
585
  return e;
568
586
  }
569
- function je(e) {
570
- if (!Re(e))
587
+ function eA(e) {
588
+ if (!qe(e))
571
589
  throw new Error(`Invalid PRF salt length: expected 32, got ${e.length}`);
572
590
  return e;
573
591
  }
574
- function x(e) {
592
+ function T(e) {
575
593
  return new Uint8Array(e);
576
594
  }
577
- function q(e) {
595
+ function ee(e) {
578
596
  if (typeof crypto > "u" || !crypto.getRandomValues)
579
597
  throw new Error(
580
598
  "WebCrypto API not available. Secure random generation requires a modern browser."
581
599
  );
582
- const t = new Uint8Array(e);
583
- return crypto.getRandomValues(t), t;
600
+ const A = new Uint8Array(e);
601
+ return crypto.getRandomValues(A), A;
584
602
  }
585
- function _t() {
586
- return Le(q(16));
603
+ function qA() {
604
+ return _e(ee(16));
587
605
  }
588
- function Ze() {
589
- return Xe(q(12));
606
+ function AA() {
607
+ return $e(ee(12));
590
608
  }
591
- function $t() {
592
- return We(q(16));
609
+ function _A() {
610
+ return ze(ee(16));
593
611
  }
594
- function qe() {
595
- return je(q(32));
612
+ function tA() {
613
+ return eA(ee(32));
596
614
  }
597
- function pe(e) {
615
+ function ke(e) {
598
616
  if (!(!e || e.length === 0)) {
599
- e.fill(0);
600
- for (let t = 0; t < e.length; t++)
601
- e[t] = t * 90 & 255;
617
+ if (typeof globalThis.crypto?.getRandomValues == "function")
618
+ globalThis.crypto.getRandomValues(e);
619
+ else
620
+ for (let A = 0; A < e.length; A++)
621
+ e[A] = A * 90 & 255;
602
622
  e.fill(0);
603
623
  }
604
624
  }
605
- function zt(...e) {
606
- for (const t of e)
607
- t && pe(t);
625
+ function $A(...e) {
626
+ for (const A of e)
627
+ A && ke(A);
608
628
  }
609
- async function _e(e) {
629
+ async function iA(e) {
610
630
  return crypto.subtle.importKey(
611
631
  "raw",
612
- x(e),
632
+ T(e),
613
633
  { name: "AES-GCM", length: 256 },
614
634
  !1,
615
635
  // not extractable
616
636
  ["encrypt", "decrypt"]
617
637
  );
618
638
  }
619
- async function $e(e, t, A) {
620
- const r = A ?? Ze(), n = await _e(t), i = await crypto.subtle.encrypt(
621
- { name: "AES-GCM", iv: x(r) },
622
- n,
623
- x(e)
639
+ async function rA(e, A, t) {
640
+ const i = t ?? AA(), r = await iA(A), n = await crypto.subtle.encrypt(
641
+ { name: "AES-GCM", iv: T(i) },
642
+ r,
643
+ T(e)
624
644
  );
625
645
  return {
626
- ciphertext: new Uint8Array(i),
627
- nonce: r
646
+ ciphertext: new Uint8Array(n),
647
+ nonce: i
628
648
  };
629
649
  }
630
- async function eA(e, t) {
631
- const A = await $e(e, t);
650
+ async function zA(e, A) {
651
+ const t = await rA(e, A);
632
652
  return {
633
- ciphertext: Z(A.ciphertext),
634
- nonce: Z(A.nonce)
653
+ ciphertext: z(t.ciphertext),
654
+ nonce: z(t.nonce)
635
655
  };
636
656
  }
637
- function Z(e) {
638
- const A = [];
639
- for (let r = 0; r < e.length; r += 32768) {
640
- const n = e.subarray(r, Math.min(r + 32768, e.length));
641
- A.push(String.fromCharCode(...n));
657
+ function z(e) {
658
+ const t = [];
659
+ for (let i = 0; i < e.length; i += 32768) {
660
+ const r = e.subarray(i, Math.min(i + 32768, e.length));
661
+ t.push(String.fromCharCode(...r));
642
662
  }
643
- return btoa(A.join(""));
663
+ return btoa(t.join(""));
644
664
  }
645
- function ze(e) {
646
- let t;
665
+ function nA(e) {
666
+ let A;
647
667
  try {
648
- t = atob(e);
668
+ A = atob(e);
649
669
  } catch {
650
670
  throw new Error("Invalid base64 string: input is malformed or contains invalid characters");
651
671
  }
652
- const A = new Uint8Array(t.length);
653
- for (let r = 0; r < t.length; r++)
654
- A[r] = t.charCodeAt(r);
655
- return A;
672
+ const t = new Uint8Array(A.length);
673
+ for (let i = 0; i < A.length; i++)
674
+ t[i] = A.charCodeAt(i);
675
+ return t;
656
676
  }
657
- async function et(e, t, A, r = 32) {
658
- const n = await crypto.subtle.importKey(
677
+ async function oA(e, A, t, i = 32) {
678
+ const r = await crypto.subtle.importKey(
659
679
  "raw",
660
- x(e),
680
+ T(e),
661
681
  "HKDF",
662
682
  !1,
663
683
  ["deriveBits"]
664
- ), i = new TextEncoder().encode(A), o = await crypto.subtle.deriveBits(
684
+ ), n = new TextEncoder().encode(t), o = await crypto.subtle.deriveBits(
665
685
  {
666
686
  name: "HKDF",
667
687
  hash: "SHA-256",
668
- salt: x(t ?? new Uint8Array(32)),
688
+ salt: T(A ?? new Uint8Array(32)),
669
689
  // Zero salt if not provided
670
- info: x(i)
690
+ info: T(n)
671
691
  },
672
- n,
673
- r * 8
692
+ r,
693
+ i * 8
674
694
  // bits
675
695
  );
676
696
  return new Uint8Array(o);
677
697
  }
678
- async function tA(e, t) {
679
- const A = await et(e, t, "cedros-wallet-share-b-encryption", 32);
680
- return Ee(A);
698
+ async function et(e, A) {
699
+ const t = await oA(e, A, "cedros-wallet-share-b-encryption", 32);
700
+ return ye(t);
681
701
  }
682
- async function tt() {
702
+ async function sA() {
683
703
  try {
684
704
  const e = await crypto.subtle.importKey("raw", new Uint8Array(32), "HKDF", !1, [
685
705
  "deriveBits"
@@ -698,156 +718,156 @@ async function tt() {
698
718
  return !1;
699
719
  }
700
720
  }
701
- function Y(e, t, A, r) {
702
- function n(i) {
703
- return i instanceof A ? i : new A(function(o) {
704
- o(i);
721
+ function R(e, A, t, i) {
722
+ function r(n) {
723
+ return n instanceof t ? n : new t(function(o) {
724
+ o(n);
705
725
  });
706
726
  }
707
- return new (A || (A = Promise))(function(i, o) {
708
- function I(B) {
727
+ return new (t || (t = Promise))(function(n, o) {
728
+ function g(y) {
709
729
  try {
710
- w(r.next(B));
711
- } catch (p) {
712
- o(p);
730
+ I(i.next(y));
731
+ } catch (d) {
732
+ o(d);
713
733
  }
714
734
  }
715
- function c(B) {
735
+ function c(y) {
716
736
  try {
717
- w(r.throw(B));
718
- } catch (p) {
719
- o(p);
737
+ I(i.throw(y));
738
+ } catch (d) {
739
+ o(d);
720
740
  }
721
741
  }
722
- function w(B) {
723
- B.done ? i(B.value) : n(B.value).then(I, c);
742
+ function I(y) {
743
+ y.done ? n(y.value) : r(y.value).then(g, c);
724
744
  }
725
- w((r = r.apply(e, [])).next());
745
+ I((i = i.apply(e, [])).next());
726
746
  });
727
747
  }
728
- class S {
748
+ class p {
729
749
  constructor() {
730
750
  this.mutex = Promise.resolve();
731
751
  }
732
752
  lock() {
733
- let t = () => {
753
+ let A = () => {
734
754
  };
735
- return this.mutex = this.mutex.then(() => new Promise(t)), new Promise((A) => {
736
- t = A;
755
+ return this.mutex = this.mutex.then(() => new Promise(A)), new Promise((t) => {
756
+ A = t;
737
757
  });
738
758
  }
739
- dispatch(t) {
740
- return Y(this, void 0, void 0, function* () {
741
- const A = yield this.lock();
759
+ dispatch(A) {
760
+ return R(this, void 0, void 0, function* () {
761
+ const t = yield this.lock();
742
762
  try {
743
- return yield Promise.resolve(t());
763
+ return yield Promise.resolve(A());
744
764
  } finally {
745
- A();
765
+ t();
746
766
  }
747
767
  });
748
768
  }
749
769
  }
750
- var ee;
751
- function At() {
770
+ var se;
771
+ function IA() {
752
772
  return typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global;
753
773
  }
754
- const oe = At(), te = (ee = oe.Buffer) !== null && ee !== void 0 ? ee : null, rt = oe.TextEncoder ? new oe.TextEncoder() : null;
755
- function ye(e, t) {
756
- return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (t & 15) + (t >> 6 | t >> 3 & 8);
774
+ const Ce = IA(), Ie = (se = Ce.Buffer) !== null && se !== void 0 ? se : null, aA = Ce.TextEncoder ? new Ce.TextEncoder() : null;
775
+ function Se(e, A) {
776
+ return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (A & 15) + (A >> 6 | A >> 3 & 8);
757
777
  }
758
- function ke(e, t) {
759
- const A = t.length >> 1;
760
- for (let r = 0; r < A; r++) {
761
- const n = r << 1;
762
- e[r] = ye(t.charCodeAt(n), t.charCodeAt(n + 1));
778
+ function De(e, A) {
779
+ const t = A.length >> 1;
780
+ for (let i = 0; i < t; i++) {
781
+ const r = i << 1;
782
+ e[i] = Se(A.charCodeAt(r), A.charCodeAt(r + 1));
763
783
  }
764
784
  }
765
- function it(e, t) {
766
- if (e.length !== t.length * 2)
785
+ function gA(e, A) {
786
+ if (e.length !== A.length * 2)
767
787
  return !1;
768
- for (let A = 0; A < t.length; A++) {
769
- const r = A << 1;
770
- if (t[A] !== ye(e.charCodeAt(r), e.charCodeAt(r + 1)))
788
+ for (let t = 0; t < A.length; t++) {
789
+ const i = t << 1;
790
+ if (A[t] !== Se(e.charCodeAt(i), e.charCodeAt(i + 1)))
771
791
  return !1;
772
792
  }
773
793
  return !0;
774
794
  }
775
- const le = 87, he = 48;
776
- function se(e, t, A) {
777
- let r = 0;
778
- for (let n = 0; n < A; n++) {
779
- let i = t[n] >>> 4;
780
- e[r++] = i > 9 ? i + le : i + he, i = t[n] & 15, e[r++] = i > 9 ? i + le : i + he;
795
+ const ue = 87, we = 48;
796
+ function he(e, A, t) {
797
+ let i = 0;
798
+ for (let r = 0; r < t; r++) {
799
+ let n = A[r] >>> 4;
800
+ e[i++] = n > 9 ? n + ue : n + we, n = A[r] & 15, e[i++] = n > 9 ? n + ue : n + we;
781
801
  }
782
802
  return String.fromCharCode.apply(null, e);
783
803
  }
784
- const M = te !== null ? (e) => {
804
+ const O = Ie !== null ? (e) => {
785
805
  if (typeof e == "string") {
786
- const t = te.from(e, "utf8");
787
- return new Uint8Array(t.buffer, t.byteOffset, t.length);
806
+ const A = Ie.from(e, "utf8");
807
+ return new Uint8Array(A.buffer, A.byteOffset, A.length);
788
808
  }
789
- if (te.isBuffer(e))
809
+ if (Ie.isBuffer(e))
790
810
  return new Uint8Array(e.buffer, e.byteOffset, e.length);
791
811
  if (ArrayBuffer.isView(e))
792
812
  return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
793
813
  throw new Error("Invalid data type!");
794
814
  } : (e) => {
795
815
  if (typeof e == "string")
796
- return rt.encode(e);
816
+ return aA.encode(e);
797
817
  if (ArrayBuffer.isView(e))
798
818
  return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
799
819
  throw new Error("Invalid data type!");
800
- }, G = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", T = new Uint8Array(256);
801
- for (let e = 0; e < G.length; e++)
802
- T[G.charCodeAt(e)] = e;
803
- function Ce(e, t = !0) {
804
- const A = e.length, r = A % 3, n = [], i = A - r;
805
- for (let o = 0; o < i; o += 3) {
806
- const I = (e[o] << 16 & 16711680) + (e[o + 1] << 8 & 65280) + (e[o + 2] & 255), c = G.charAt(I >> 18 & 63) + G.charAt(I >> 12 & 63) + G.charAt(I >> 6 & 63) + G.charAt(I & 63);
807
- n.push(c);
808
- }
809
- if (r === 1) {
810
- const o = e[A - 1], I = G.charAt(o >> 2), c = G.charAt(o << 4 & 63);
811
- n.push(`${I}${c}`), t && n.push("==");
812
- } else if (r === 2) {
813
- const o = (e[A - 2] << 8) + e[A - 1], I = G.charAt(o >> 10), c = G.charAt(o >> 4 & 63), w = G.charAt(o << 2 & 63);
814
- n.push(`${I}${c}${w}`), t && n.push("=");
815
- }
816
- return n.join("");
817
- }
818
- function nt(e) {
819
- let t = Math.floor(e.length * 0.75);
820
- const A = e.length;
821
- return e[A - 1] === "=" && (t -= 1, e[A - 2] === "=" && (t -= 1)), t;
822
- }
823
- function ot(e) {
824
- const t = nt(e), A = e.length, r = new Uint8Array(t);
825
- let n = 0;
826
- for (let i = 0; i < A; i += 4) {
827
- const o = T[e.charCodeAt(i)], I = T[e.charCodeAt(i + 1)], c = T[e.charCodeAt(i + 2)], w = T[e.charCodeAt(i + 3)];
828
- r[n] = o << 2 | I >> 4, n += 1, r[n] = (I & 15) << 4 | c >> 2, n += 1, r[n] = (c & 3) << 6 | w & 63, n += 1;
820
+ }, V = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", W = new Uint8Array(256);
821
+ for (let e = 0; e < V.length; e++)
822
+ W[V.charCodeAt(e)] = e;
823
+ function Qe(e, A = !0) {
824
+ const t = e.length, i = t % 3, r = [], n = t - i;
825
+ for (let o = 0; o < n; o += 3) {
826
+ const g = (e[o] << 16 & 16711680) + (e[o + 1] << 8 & 65280) + (e[o + 2] & 255), c = V.charAt(g >> 18 & 63) + V.charAt(g >> 12 & 63) + V.charAt(g >> 6 & 63) + V.charAt(g & 63);
827
+ r.push(c);
828
+ }
829
+ if (i === 1) {
830
+ const o = e[t - 1], g = V.charAt(o >> 2), c = V.charAt(o << 4 & 63);
831
+ r.push(`${g}${c}`), A && r.push("==");
832
+ } else if (i === 2) {
833
+ const o = (e[t - 2] << 8) + e[t - 1], g = V.charAt(o >> 10), c = V.charAt(o >> 4 & 63), I = V.charAt(o << 2 & 63);
834
+ r.push(`${g}${c}${I}`), A && r.push("=");
835
+ }
836
+ return r.join("");
837
+ }
838
+ function lA(e) {
839
+ let A = Math.floor(e.length * 0.75);
840
+ const t = e.length;
841
+ return e[t - 1] === "=" && (A -= 1, e[t - 2] === "=" && (A -= 1)), A;
842
+ }
843
+ function cA(e) {
844
+ const A = lA(e), t = e.length, i = new Uint8Array(A);
845
+ let r = 0;
846
+ for (let n = 0; n < t; n += 4) {
847
+ const o = W[e.charCodeAt(n)], g = W[e.charCodeAt(n + 1)], c = W[e.charCodeAt(n + 2)], I = W[e.charCodeAt(n + 3)];
848
+ i[r] = o << 2 | g >> 4, r += 1, i[r] = (g & 15) << 4 | c >> 2, r += 1, i[r] = (c & 3) << 6 | I & 63, r += 1;
829
849
  }
830
- return r;
850
+ return i;
831
851
  }
832
- const W = 16 * 1024, v = 4, st = new S(), Ae = /* @__PURE__ */ new Map();
833
- function Se(e, t) {
834
- return Y(this, void 0, void 0, function* () {
835
- let A = null, r = null, n = !1;
852
+ const _ = 16 * 1024, L = 4, CA = new p(), ae = /* @__PURE__ */ new Map();
853
+ function Fe(e, A) {
854
+ return R(this, void 0, void 0, function* () {
855
+ let t = null, i = null, r = !1;
836
856
  if (typeof WebAssembly > "u")
837
857
  throw new Error("WebAssembly is not supported in this environment!");
838
- const i = (l, s = 0) => {
839
- r.set(l, s);
840
- }, o = () => r, I = () => A.exports, c = (l) => {
841
- A.exports.Hash_SetMemorySize(l);
842
- const s = A.exports.Hash_GetBuffer(), E = A.exports.memory.buffer;
843
- r = new Uint8Array(E, s, l);
844
- }, w = () => new DataView(A.exports.memory.buffer).getUint32(A.exports.STATE_SIZE, !0), B = st.dispatch(() => Y(this, void 0, void 0, function* () {
845
- if (!Ae.has(e.name)) {
846
- const s = ot(e.data), E = WebAssembly.compile(s);
847
- Ae.set(e.name, E);
858
+ const n = (s, C = 0) => {
859
+ i.set(s, C);
860
+ }, o = () => i, g = () => t.exports, c = (s) => {
861
+ t.exports.Hash_SetMemorySize(s);
862
+ const C = t.exports.Hash_GetBuffer(), k = t.exports.memory.buffer;
863
+ i = new Uint8Array(k, C, s);
864
+ }, I = () => new DataView(t.exports.memory.buffer).getUint32(t.exports.STATE_SIZE, !0), y = CA.dispatch(() => R(this, void 0, void 0, function* () {
865
+ if (!ae.has(e.name)) {
866
+ const C = cA(e.data), k = WebAssembly.compile(C);
867
+ ae.set(e.name, k);
848
868
  }
849
- const l = yield Ae.get(e.name);
850
- A = yield WebAssembly.instantiate(l, {
869
+ const s = yield ae.get(e.name);
870
+ t = yield WebAssembly.instantiate(s, {
851
871
  // env: {
852
872
  // emscripten_memcpy_big: (dest, src, num) => {
853
873
  // const memoryBuffer = wasmInstance.exports.memory.buffer;
@@ -861,157 +881,157 @@ function Se(e, t) {
861
881
  // },
862
882
  // },
863
883
  });
864
- })), p = () => Y(this, void 0, void 0, function* () {
865
- A || (yield B);
866
- const l = A.exports.Hash_GetBuffer(), s = A.exports.memory.buffer;
867
- r = new Uint8Array(s, l, W);
868
- }), f = (l = null) => {
869
- n = !0, A.exports.Hash_Init(l);
870
- }, Q = (l) => {
871
- let s = 0;
872
- for (; s < l.length; ) {
873
- const E = l.subarray(s, s + W);
874
- s += E.length, r.set(E), A.exports.Hash_Update(E.length);
884
+ })), d = () => R(this, void 0, void 0, function* () {
885
+ t || (yield y);
886
+ const s = t.exports.Hash_GetBuffer(), C = t.exports.memory.buffer;
887
+ i = new Uint8Array(C, s, _);
888
+ }), f = (s = null) => {
889
+ r = !0, t.exports.Hash_Init(s);
890
+ }, U = (s) => {
891
+ let C = 0;
892
+ for (; C < s.length; ) {
893
+ const k = s.subarray(C, C + _);
894
+ C += k.length, i.set(k), t.exports.Hash_Update(k.length);
875
895
  }
876
- }, u = (l) => {
877
- if (!n)
896
+ }, D = (s) => {
897
+ if (!r)
878
898
  throw new Error("update() called before init()");
879
- const s = M(l);
880
- Q(s);
881
- }, h = new Uint8Array(t * 2), a = (l, s = null) => {
882
- if (!n)
899
+ const C = O(s);
900
+ U(C);
901
+ }, w = new Uint8Array(A * 2), Q = (s, C = null) => {
902
+ if (!r)
883
903
  throw new Error("digest() called before init()");
884
- return n = !1, A.exports.Hash_Final(s), l === "binary" ? r.slice(0, t) : se(h, r, t);
885
- }, g = () => {
886
- if (!n)
904
+ return r = !1, t.exports.Hash_Final(C), s === "binary" ? i.slice(0, A) : he(w, i, A);
905
+ }, u = () => {
906
+ if (!r)
887
907
  throw new Error("save() can only be called after init() and before digest()");
888
- const l = A.exports.Hash_GetState(), s = w(), E = A.exports.memory.buffer, F = new Uint8Array(E, l, s), b = new Uint8Array(v + s);
889
- return ke(b, e.hash), b.set(F, v), b;
890
- }, C = (l) => {
891
- if (!(l instanceof Uint8Array))
908
+ const s = t.exports.Hash_GetState(), C = I(), k = t.exports.memory.buffer, H = new Uint8Array(k, s, C), l = new Uint8Array(L + C);
909
+ return De(l, e.hash), l.set(H, L), l;
910
+ }, F = (s) => {
911
+ if (!(s instanceof Uint8Array))
892
912
  throw new Error("load() expects an Uint8Array generated by save()");
893
- const s = A.exports.Hash_GetState(), E = w(), F = v + E, b = A.exports.memory.buffer;
894
- if (l.length !== F)
895
- throw new Error(`Bad state length (expected ${F} bytes, got ${l.length})`);
896
- if (!it(e.hash, l.subarray(0, v)))
913
+ const C = t.exports.Hash_GetState(), k = I(), H = L + k, l = t.exports.memory.buffer;
914
+ if (s.length !== H)
915
+ throw new Error(`Bad state length (expected ${H} bytes, got ${s.length})`);
916
+ if (!gA(e.hash, s.subarray(0, L)))
897
917
  throw new Error("This state was written by an incompatible hash implementation");
898
- const N = l.subarray(v);
899
- new Uint8Array(b, s, E).set(N), n = !0;
900
- }, d = (l) => typeof l == "string" ? l.length < W / 4 : l.byteLength < W;
901
- let D = d;
918
+ const S = s.subarray(L);
919
+ new Uint8Array(l, C, k).set(S), r = !0;
920
+ }, E = (s) => typeof s == "string" ? s.length < _ / 4 : s.byteLength < _;
921
+ let h = E;
902
922
  switch (e.name) {
903
923
  case "argon2":
904
924
  case "scrypt":
905
- D = () => !0;
925
+ h = () => !0;
906
926
  break;
907
927
  case "blake2b":
908
928
  case "blake2s":
909
- D = (l, s) => s <= 512 && d(l);
929
+ h = (s, C) => C <= 512 && E(s);
910
930
  break;
911
931
  case "blake3":
912
- D = (l, s) => s === 0 && d(l);
932
+ h = (s, C) => C === 0 && E(s);
913
933
  break;
914
934
  case "xxhash64":
915
935
  // cannot simplify
916
936
  case "xxhash3":
917
937
  case "xxhash128":
918
938
  case "crc64":
919
- D = () => !1;
939
+ h = () => !1;
920
940
  break;
921
941
  }
922
- const y = (l, s = null, E = null) => {
923
- if (!D(l, s))
924
- return f(s), u(l), a("hex", E);
925
- const F = M(l);
926
- return r.set(F), A.exports.Hash_Calculate(F.length, s, E), se(h, r, t);
942
+ const a = (s, C = null, k = null) => {
943
+ if (!h(s, C))
944
+ return f(C), D(s), Q("hex", k);
945
+ const H = O(s);
946
+ return i.set(H), t.exports.Hash_Calculate(H.length, C, k), he(w, i, A);
927
947
  };
928
- return yield p(), {
948
+ return yield d(), {
929
949
  getMemory: o,
930
- writeMemory: i,
931
- getExports: I,
950
+ writeMemory: n,
951
+ getExports: g,
932
952
  setMemorySize: c,
933
953
  init: f,
934
- update: u,
935
- digest: a,
936
- save: g,
937
- load: C,
938
- calculate: y,
939
- hashLength: t
954
+ update: D,
955
+ digest: Q,
956
+ save: u,
957
+ load: F,
958
+ calculate: a,
959
+ hashLength: A
940
960
  };
941
961
  });
942
962
  }
943
- new S();
944
- var It = "argon2", at = "AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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", gt = "e4cdc523", ct = {
945
- name: It,
946
- data: at,
947
- hash: gt
948
- }, lt = "blake2b", ht = "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", Ct = "c6f286e6", ut = {
949
- name: lt,
950
- data: ht,
951
- hash: Ct
963
+ new p();
964
+ var hA = "argon2", fA = "AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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", uA = "e4cdc523", wA = {
965
+ name: hA,
966
+ data: fA,
967
+ hash: uA
968
+ }, QA = "blake2b", BA = "AGFzbQEAAAABEQRgAAF/YAJ/fwBgAX8AYAAAAwoJAAECAwECAgABBQQBAQICBg4CfwFBsIsFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACkhhc2hfRmluYWwAAwlIYXNoX0luaXQABQtIYXNoX1VwZGF0ZQAGDUhhc2hfR2V0U3RhdGUABw5IYXNoX0NhbGN1bGF0ZQAIClNUQVRFX1NJWkUDAQrTOAkFAEGACQvrAgIFfwF+AkAgAUEBSA0AAkACQAJAIAFBgAFBACgC4IoBIgJrIgNKDQAgASEEDAELQQBBADYC4IoBAkAgAkH/AEoNACACQeCJAWohBSAAIQRBACEGA0AgBSAELQAAOgAAIARBAWohBCAFQQFqIQUgAyAGQQFqIgZB/wFxSg0ACwtBAEEAKQPAiQEiB0KAAXw3A8CJAUEAQQApA8iJASAHQv9+Vq18NwPIiQFB4IkBEAIgACADaiEAAkAgASADayIEQYEBSA0AIAIgAWohBQNAQQBBACkDwIkBIgdCgAF8NwPAiQFBAEEAKQPIiQEgB0L/flatfDcDyIkBIAAQAiAAQYABaiEAIAVBgH9qIgVBgAJLDQALIAVBgH9qIQQMAQsgBEEATA0BC0EAIQUDQCAFQQAoAuCKAWpB4IkBaiAAIAVqLQAAOgAAIAQgBUEBaiIFQf8BcUoNAAsLQQBBACgC4IoBIARqNgLgigELC78uASR+QQBBACkD0IkBQQApA7CJASIBQQApA5CJAXwgACkDICICfCIDhULr+obav7X2wR+FQiCJIgRCq/DT9K/uvLc8fCIFIAGFQiiJIgYgA3wgACkDKCIBfCIHIASFQjCJIgggBXwiCSAGhUIBiSIKQQApA8iJAUEAKQOoiQEiBEEAKQOIiQF8IAApAxAiA3wiBYVCn9j52cKR2oKbf4VCIIkiC0K7zqqm2NDrs7t/fCIMIASFQiiJIg0gBXwgACkDGCIEfCIOfCAAKQNQIgV8Ig9BACkDwIkBQQApA6CJASIQQQApA4CJASIRfCAAKQMAIgZ8IhKFQtGFmu/6z5SH0QCFQiCJIhNCiJLznf/M+YTqAHwiFCAQhUIoiSIVIBJ8IAApAwgiEHwiFiAThUIwiSIXhUIgiSIYQQApA9iJAUEAKQO4iQEiE0EAKQOYiQF8IAApAzAiEnwiGYVC+cL4m5Gjs/DbAIVCIIkiGkLx7fT4paf9p6V/fCIbIBOFQiiJIhwgGXwgACkDOCITfCIZIBqFQjCJIhogG3wiG3wiHSAKhUIoiSIeIA98IAApA1giCnwiDyAYhUIwiSIYIB18Ih0gDiALhUIwiSIOIAx8Ih8gDYVCAYkiDCAWfCAAKQNAIgt8Ig0gGoVCIIkiFiAJfCIaIAyFQiiJIiAgDXwgACkDSCIJfCIhIBaFQjCJIhYgGyAchUIBiSIMIAd8IAApA2AiB3wiDSAOhUIgiSIOIBcgFHwiFHwiFyAMhUIoiSIbIA18IAApA2giDHwiHCAOhUIwiSIOIBd8IhcgG4VCAYkiGyAZIBQgFYVCAYkiFHwgACkDcCINfCIVIAiFQiCJIhkgH3wiHyAUhUIoiSIUIBV8IAApA3giCHwiFXwgDHwiIoVCIIkiI3wiJCAbhUIoiSIbICJ8IBJ8IiIgFyAYIBUgGYVCMIkiFSAffCIZIBSFQgGJIhQgIXwgDXwiH4VCIIkiGHwiFyAUhUIoiSIUIB98IAV8Ih8gGIVCMIkiGCAXfCIXIBSFQgGJIhR8IAF8IiEgFiAafCIWIBUgHSAehUIBiSIaIBx8IAl8IhyFQiCJIhV8Ih0gGoVCKIkiGiAcfCAIfCIcIBWFQjCJIhWFQiCJIh4gGSAOIBYgIIVCAYkiFiAPfCACfCIPhUIgiSIOfCIZIBaFQiiJIhYgD3wgC3wiDyAOhUIwiSIOIBl8Ihl8IiAgFIVCKIkiFCAhfCAEfCIhIB6FQjCJIh4gIHwiICAiICOFQjCJIiIgJHwiIyAbhUIBiSIbIBx8IAp8IhwgDoVCIIkiDiAXfCIXIBuFQiiJIhsgHHwgE3wiHCAOhUIwiSIOIBkgFoVCAYkiFiAffCAQfCIZICKFQiCJIh8gFSAdfCIVfCIdIBaFQiiJIhYgGXwgB3wiGSAfhUIwiSIfIB18Ih0gFoVCAYkiFiAVIBqFQgGJIhUgD3wgBnwiDyAYhUIgiSIYICN8IhogFYVCKIkiFSAPfCADfCIPfCAHfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBnwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAOIBd8Ig4gDyAYhUIwiSIPICAgFIVCAYkiFCAZfCAKfCIXhUIgiSIYfCIZIBSFQiiJIhQgF3wgC3wiF3wgBXwiICAPIBp8Ig8gHyAOIBuFQgGJIg4gIXwgCHwiGoVCIIkiG3wiHyAOhUIoiSIOIBp8IAx8IhogG4VCMIkiG4VCIIkiISAdIB4gDyAVhUIBiSIPIBx8IAF8IhWFQiCJIhx8Ih0gD4VCKIkiDyAVfCADfCIVIByFQjCJIhwgHXwiHXwiHiAWhUIoiSIWICB8IA18IiAgIYVCMIkiISAefCIeIBogFyAYhUIwiSIXIBl8IhggFIVCAYkiFHwgCXwiGSAchUIgiSIaICR8IhwgFIVCKIkiFCAZfCACfCIZIBqFQjCJIhogHSAPhUIBiSIPICJ8IAR8Ih0gF4VCIIkiFyAbIB98Iht8Ih8gD4VCKIkiDyAdfCASfCIdIBeFQjCJIhcgH3wiHyAPhUIBiSIPIBsgDoVCAYkiDiAVfCATfCIVICOFQiCJIhsgGHwiGCAOhUIoiSIOIBV8IBB8IhV8IAx8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAHfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBogHHwiGiAVIBuFQjCJIhUgHiAWhUIBiSIWIB18IAR8IhuFQiCJIhx8Ih0gFoVCKIkiFiAbfCAQfCIbfCABfCIeIBUgGHwiFSAXIBogFIVCAYkiFCAgfCATfCIYhUIgiSIXfCIaIBSFQiiJIhQgGHwgCXwiGCAXhUIwiSIXhUIgiSIgIB8gISAVIA6FQgGJIg4gGXwgCnwiFYVCIIkiGXwiHyAOhUIoiSIOIBV8IA18IhUgGYVCMIkiGSAffCIffCIhIA+FQiiJIg8gHnwgBXwiHiAghUIwiSIgICF8IiEgGyAchUIwiSIbIB18IhwgFoVCAYkiFiAYfCADfCIYIBmFQiCJIhkgJHwiHSAWhUIoiSIWIBh8IBJ8IhggGYVCMIkiGSAfIA6FQgGJIg4gInwgAnwiHyAbhUIgiSIbIBcgGnwiF3wiGiAOhUIoiSIOIB98IAZ8Ih8gG4VCMIkiGyAafCIaIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAh8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgC3wiFXwgBXwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAh8IiIgGiAgIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGHwgCXwiGIVCIIkiHHwiGiAUhUIoiSIUIBh8IAZ8IhggHIVCMIkiHCAafCIaIBSFQgGJIhR8IAR8IiAgGSAdfCIZIBUgISAPhUIBiSIPIB98IAN8Ih2FQiCJIhV8Ih8gD4VCKIkiDyAdfCACfCIdIBWFQjCJIhWFQiCJIiEgFyAbIBkgFoVCAYkiFiAefCABfCIZhUIgiSIbfCIXIBaFQiiJIhYgGXwgE3wiGSAbhUIwiSIbIBd8Ihd8Ih4gFIVCKIkiFCAgfCAMfCIgICGFQjCJIiEgHnwiHiAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IBJ8Ih0gG4VCIIkiGyAafCIaIA6FQiiJIg4gHXwgC3wiHSAbhUIwiSIbIBcgFoVCAYkiFiAYfCANfCIXICKFQiCJIhggFSAffCIVfCIfIBaFQiiJIhYgF3wgEHwiFyAYhUIwiSIYIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGXwgCnwiFSAchUIgiSIZICN8IhwgD4VCKIkiDyAVfCAHfCIVfCASfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAbIBp8IhogFSAZhUIwiSIVIB4gFIVCAYkiFCAXfCADfCIXhUIgiSIZfCIbIBSFQiiJIhQgF3wgB3wiF3wgAnwiHiAVIBx8IhUgGCAaIA6FQgGJIg4gIHwgC3wiGoVCIIkiGHwiHCAOhUIoiSIOIBp8IAR8IhogGIVCMIkiGIVCIIkiICAfICEgFSAPhUIBiSIPIB18IAZ8IhWFQiCJIh18Ih8gD4VCKIkiDyAVfCAKfCIVIB2FQjCJIh0gH3wiH3wiISAWhUIoiSIWIB58IAx8Ih4gIIVCMIkiICAhfCIhIBogFyAZhUIwiSIXIBt8IhkgFIVCAYkiFHwgEHwiGiAdhUIgiSIbICR8Ih0gFIVCKIkiFCAafCAJfCIaIBuFQjCJIhsgHyAPhUIBiSIPICJ8IBN8Ih8gF4VCIIkiFyAYIBx8Ihh8IhwgD4VCKIkiDyAffCABfCIfIBeFQjCJIhcgHHwiHCAPhUIBiSIPIBggDoVCAYkiDiAVfCAIfCIVICOFQiCJIhggGXwiGSAOhUIoiSIOIBV8IA18IhV8IA18IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAMfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHXwiGyAVIBiFQjCJIhUgISAWhUIBiSIWIB98IBB8IhiFQiCJIh18Ih8gFoVCKIkiFiAYfCAIfCIYfCASfCIhIBUgGXwiFSAXIBsgFIVCAYkiFCAefCAHfCIZhUIgiSIXfCIbIBSFQiiJIhQgGXwgAXwiGSAXhUIwiSIXhUIgiSIeIBwgICAVIA6FQgGJIg4gGnwgAnwiFYVCIIkiGnwiHCAOhUIoiSIOIBV8IAV8IhUgGoVCMIkiGiAcfCIcfCIgIA+FQiiJIg8gIXwgBHwiISAehUIwiSIeICB8IiAgGCAdhUIwiSIYIB98Ih0gFoVCAYkiFiAZfCAGfCIZIBqFQiCJIhogJHwiHyAWhUIoiSIWIBl8IBN8IhkgGoVCMIkiGiAcIA6FQgGJIg4gInwgCXwiHCAYhUIgiSIYIBcgG3wiF3wiGyAOhUIoiSIOIBx8IAN8IhwgGIVCMIkiGCAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAt8IhUgI4VCIIkiFyAdfCIdIBSFQiiJIhQgFXwgCnwiFXwgBHwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAl8IiIgGyAeIBUgF4VCMIkiFSAdfCIXIBSFQgGJIhQgGXwgDHwiGYVCIIkiHXwiGyAUhUIoiSIUIBl8IAp8IhkgHYVCMIkiHSAbfCIbIBSFQgGJIhR8IAN8Ih4gGiAffCIaIBUgICAPhUIBiSIPIBx8IAd8IhyFQiCJIhV8Ih8gD4VCKIkiDyAcfCAQfCIcIBWFQjCJIhWFQiCJIiAgFyAYIBogFoVCAYkiFiAhfCATfCIahUIgiSIYfCIXIBaFQiiJIhYgGnwgDXwiGiAYhUIwiSIYIBd8Ihd8IiEgFIVCKIkiFCAefCAFfCIeICCFQjCJIiAgIXwiISAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIBx8IAt8IhwgGIVCIIkiGCAbfCIbIA6FQiiJIg4gHHwgEnwiHCAYhUIwiSIYIBcgFoVCAYkiFiAZfCABfCIXICKFQiCJIhkgFSAffCIVfCIfIBaFQiiJIhYgF3wgBnwiFyAZhUIwiSIZIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGnwgCHwiFSAdhUIgiSIaICN8Ih0gD4VCKIkiDyAVfCACfCIVfCANfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgCXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAYIBt8IhggFSAahUIwiSIVICEgFIVCAYkiFCAXfCASfCIXhUIgiSIafCIbIBSFQiiJIhQgF3wgCHwiF3wgB3wiISAVIB18IhUgGSAYIA6FQgGJIg4gHnwgBnwiGIVCIIkiGXwiHSAOhUIoiSIOIBh8IAt8IhggGYVCMIkiGYVCIIkiHiAfICAgFSAPhUIBiSIPIBx8IAp8IhWFQiCJIhx8Ih8gD4VCKIkiDyAVfCAEfCIVIByFQjCJIhwgH3wiH3wiICAWhUIoiSIWICF8IAN8IiEgHoVCMIkiHiAgfCIgIBggFyAahUIwiSIXIBt8IhogFIVCAYkiFHwgBXwiGCAchUIgiSIbICR8IhwgFIVCKIkiFCAYfCABfCIYIBuFQjCJIhsgHyAPhUIBiSIPICJ8IAx8Ih8gF4VCIIkiFyAZIB18Ihl8Ih0gD4VCKIkiDyAffCATfCIfIBeFQjCJIhcgHXwiHSAPhUIBiSIPIBkgDoVCAYkiDiAVfCAQfCIVICOFQiCJIhkgGnwiGiAOhUIoiSIOIBV8IAJ8IhV8IBN8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCASfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHHwiGyAVIBmFQjCJIhUgICAWhUIBiSIWIB98IAt8IhmFQiCJIhx8Ih8gFoVCKIkiFiAZfCACfCIZfCAJfCIgIBUgGnwiFSAXIBsgFIVCAYkiFCAhfCAFfCIahUIgiSIXfCIbIBSFQiiJIhQgGnwgA3wiGiAXhUIwiSIXhUIgiSIhIB0gHiAVIA6FQgGJIg4gGHwgEHwiFYVCIIkiGHwiHSAOhUIoiSIOIBV8IAF8IhUgGIVCMIkiGCAdfCIdfCIeIA+FQiiJIg8gIHwgDXwiICAhhUIwiSIhIB58Ih4gGSAchUIwiSIZIB98IhwgFoVCAYkiFiAafCAIfCIaIBiFQiCJIhggJHwiHyAWhUIoiSIWIBp8IAp8IhogGIVCMIkiGCAdIA6FQgGJIg4gInwgBHwiHSAZhUIgiSIZIBcgG3wiF3wiGyAOhUIoiSIOIB18IAd8Ih0gGYVCMIkiGSAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAx8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgBnwiFXwgEnwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IBN8IiIgGyAhIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGnwgBnwiGoVCIIkiHHwiGyAUhUIoiSIUIBp8IBB8IhogHIVCMIkiHCAbfCIbIBSFQgGJIhR8IA18IiEgGCAffCIYIBUgHiAPhUIBiSIPIB18IAJ8Ih2FQiCJIhV8Ih4gD4VCKIkiDyAdfCABfCIdIBWFQjCJIhWFQiCJIh8gFyAZIBggFoVCAYkiFiAgfCADfCIYhUIgiSIZfCIXIBaFQiiJIhYgGHwgBHwiGCAZhUIwiSIZIBd8Ihd8IiAgFIVCKIkiFCAhfCAIfCIhIB+FQjCJIh8gIHwiICAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IAd8Ih0gGYVCIIkiGSAbfCIbIA6FQiiJIg4gHXwgDHwiHSAZhUIwiSIZIBcgFoVCAYkiFiAafCALfCIXICKFQiCJIhogFSAefCIVfCIeIBaFQiiJIhYgF3wgCXwiFyAahUIwiSIaIB58Ih4gFoVCAYkiFiAVIA+FQgGJIg8gGHwgBXwiFSAchUIgiSIYICN8IhwgD4VCKIkiDyAVfCAKfCIVfCACfCIChUIgiSIifCIjIBaFQiiJIhYgAnwgC3wiAiAihUIwiSILICN8IiIgFoVCAYkiFiAZIBt8IhkgFSAYhUIwiSIVICAgFIVCAYkiFCAXfCANfCINhUIgiSIXfCIYIBSFQiiJIhQgDXwgBXwiBXwgEHwiECAVIBx8Ig0gGiAZIA6FQgGJIg4gIXwgDHwiDIVCIIkiFXwiGSAOhUIoiSIOIAx8IBJ8IhIgFYVCMIkiDIVCIIkiFSAeIB8gDSAPhUIBiSINIB18IAl8IgmFQiCJIg98IhogDYVCKIkiDSAJfCAIfCIJIA+FQjCJIgggGnwiD3wiGiAWhUIoiSIWIBB8IAd8IhAgEYUgDCAZfCIHIA6FQgGJIgwgCXwgCnwiCiALhUIgiSILIAUgF4VCMIkiBSAYfCIJfCIOIAyFQiiJIgwgCnwgE3wiEyALhUIwiSIKIA58IguFNwOAiQFBACADIAYgDyANhUIBiSINIAJ8fCICIAWFQiCJIgUgB3wiBiANhUIoiSIHIAJ8fCICQQApA4iJAYUgBCABIBIgCSAUhUIBiSIDfHwiASAIhUIgiSISICJ8IgkgA4VCKIkiAyABfHwiASAShUIwiSIEIAl8IhKFNwOIiQFBACATQQApA5CJAYUgECAVhUIwiSIQIBp8IhOFNwOQiQFBACABQQApA5iJAYUgAiAFhUIwiSICIAZ8IgGFNwOYiQFBACASIAOFQgGJQQApA6CJAYUgAoU3A6CJAUEAIBMgFoVCAYlBACkDqIkBhSAKhTcDqIkBQQAgASAHhUIBiUEAKQOwiQGFIASFNwOwiQFBACALIAyFQgGJQQApA7iJAYUgEIU3A7iJAQvdAgUBfwF+AX8BfgJ/IwBBwABrIgAkAAJAQQApA9CJAUIAUg0AQQBBACkDwIkBIgFBACgC4IoBIgKsfCIDNwPAiQFBAEEAKQPIiQEgAyABVK18NwPIiQECQEEALQDoigFFDQBBAEJ/NwPYiQELQQBCfzcD0IkBAkAgAkH/AEoNAEEAIQQDQCACIARqQeCJAWpBADoAACAEQQFqIgRBgAFBACgC4IoBIgJrSA0ACwtB4IkBEAIgAEEAKQOAiQE3AwAgAEEAKQOIiQE3AwggAEEAKQOQiQE3AxAgAEEAKQOYiQE3AxggAEEAKQOgiQE3AyAgAEEAKQOoiQE3AyggAEEAKQOwiQE3AzAgAEEAKQO4iQE3AzhBACgC5IoBIgVBAUgNAEEAIQRBACECA0AgBEGACWogACAEai0AADoAACAEQQFqIQQgBSACQQFqIgJB/wFxSg0ACwsgAEHAAGokAAv9AwMBfwF+AX8jAEGAAWsiAiQAQQBBgQI7AfKKAUEAIAE6APGKAUEAIAA6APCKAUGQfiEAA0AgAEGAiwFqQgA3AAAgAEH4igFqQgA3AAAgAEHwigFqQgA3AAAgAEEYaiIADQALQQAhAEEAQQApA/CKASIDQoiS853/zPmE6gCFNwOAiQFBAEEAKQP4igFCu86qptjQ67O7f4U3A4iJAUEAQQApA4CLAUKr8NP0r+68tzyFNwOQiQFBAEEAKQOIiwFC8e30+KWn/aelf4U3A5iJAUEAQQApA5CLAULRhZrv+s+Uh9EAhTcDoIkBQQBBACkDmIsBQp/Y+dnCkdqCm3+FNwOoiQFBAEEAKQOgiwFC6/qG2r+19sEfhTcDsIkBQQBBACkDqIsBQvnC+JuRo7Pw2wCFNwO4iQFBACADp0H/AXE2AuSKAQJAIAFBAUgNACACQgA3A3ggAkIANwNwIAJCADcDaCACQgA3A2AgAkIANwNYIAJCADcDUCACQgA3A0ggAkIANwNAIAJCADcDOCACQgA3AzAgAkIANwMoIAJCADcDICACQgA3AxggAkIANwMQIAJCADcDCCACQgA3AwBBACEEA0AgAiAAaiAAQYAJai0AADoAACAAQQFqIQAgBEEBaiIEQf8BcSABSA0ACyACQYABEAELIAJBgAFqJAALEgAgAEEDdkH/P3EgAEEQdhAECwkAQYAJIAAQAQsGAEGAiQELGwAgAUEDdkH/P3EgAUEQdhAEQYAJIAAQARADCwsLAQBBgAgLBPAAAAA=", dA = "c6f286e6", EA = {
969
+ name: QA,
970
+ data: BA,
971
+ hash: dA
952
972
  };
953
- new S();
954
- function ue(e) {
973
+ new p();
974
+ function Be(e) {
955
975
  return !Number.isInteger(e) || e < 8 || e > 512 || e % 8 !== 0 ? new Error("Invalid variant! Valid values: 8, 16, ..., 512") : null;
956
976
  }
957
- function ft(e, t) {
958
- return e | t << 16;
977
+ function pA(e, A) {
978
+ return e | A << 16;
959
979
  }
960
- function Ie(e = 512, t = null) {
961
- if (ue(e))
962
- return Promise.reject(ue(e));
963
- let A = null, r = e;
964
- if (t !== null) {
965
- if (A = M(t), A.length > 64)
980
+ function fe(e = 512, A = null) {
981
+ if (Be(e))
982
+ return Promise.reject(Be(e));
983
+ let t = null, i = e;
984
+ if (A !== null) {
985
+ if (t = O(A), t.length > 64)
966
986
  return Promise.reject(new Error("Max key length is 64 bytes"));
967
- r = ft(e, A.length);
987
+ i = pA(e, t.length);
968
988
  }
969
- const n = e / 8;
970
- return Se(ut, n).then((i) => {
971
- r > 512 && i.writeMemory(A), i.init(r);
989
+ const r = e / 8;
990
+ return Fe(EA, r).then((n) => {
991
+ i > 512 && n.writeMemory(t), n.init(i);
972
992
  const o = {
973
- init: r > 512 ? () => (i.writeMemory(A), i.init(r), o) : () => (i.init(r), o),
974
- update: (I) => (i.update(I), o),
993
+ init: i > 512 ? () => (n.writeMemory(t), n.init(i), o) : () => (n.init(i), o),
994
+ update: (g) => (n.update(g), o),
975
995
  // biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
976
- digest: (I) => i.digest(I),
977
- save: () => i.save(),
978
- load: (I) => (i.load(I), o),
996
+ digest: (g) => n.digest(g),
997
+ save: () => n.save(),
998
+ load: (g) => (n.load(g), o),
979
999
  blockSize: 128,
980
- digestSize: n
1000
+ digestSize: r
981
1001
  };
982
1002
  return o;
983
1003
  });
984
1004
  }
985
- function wt(e, t, A) {
986
- const r = [
987
- `m=${t.memorySize}`,
988
- `t=${t.iterations}`,
989
- `p=${t.parallelism}`
1005
+ function yA(e, A, t) {
1006
+ const i = [
1007
+ `m=${A.memorySize}`,
1008
+ `t=${A.iterations}`,
1009
+ `p=${A.parallelism}`
990
1010
  ].join(",");
991
- return `$argon2${t.hashType}$v=19$${r}$${Ce(e, !1)}$${Ce(A, !1)}`;
1011
+ return `$argon2${A.hashType}$v=19$${i}$${Qe(e, !1)}$${Qe(t, !1)}`;
992
1012
  }
993
- const fe = new DataView(new ArrayBuffer(4));
994
- function J(e) {
995
- return fe.setInt32(0, e, !0), new Uint8Array(fe.buffer);
1013
+ const de = new DataView(new ArrayBuffer(4));
1014
+ function N(e) {
1015
+ return de.setInt32(0, e, !0), new Uint8Array(de.buffer);
996
1016
  }
997
- function re(e, t, A) {
998
- return Y(this, void 0, void 0, function* () {
999
- if (A <= 64) {
1000
- const c = yield Ie(A * 8);
1001
- return c.update(J(A)), c.update(t), c.digest("binary");
1017
+ function ge(e, A, t) {
1018
+ return R(this, void 0, void 0, function* () {
1019
+ if (t <= 64) {
1020
+ const c = yield fe(t * 8);
1021
+ return c.update(N(t)), c.update(A), c.digest("binary");
1002
1022
  }
1003
- const r = Math.ceil(A / 32) - 2, n = new Uint8Array(A);
1004
- e.init(), e.update(J(A)), e.update(t);
1005
- let i = e.digest("binary");
1006
- n.set(i.subarray(0, 32), 0);
1007
- for (let c = 1; c < r; c++)
1008
- e.init(), e.update(i), i = e.digest("binary"), n.set(i.subarray(0, 32), c * 32);
1009
- const o = A - 32 * r;
1010
- let I;
1011
- return o === 64 ? (I = e, I.init()) : I = yield Ie(o * 8), I.update(i), i = I.digest("binary"), n.set(i.subarray(0, o), r * 32), n;
1023
+ const i = Math.ceil(t / 32) - 2, r = new Uint8Array(t);
1024
+ e.init(), e.update(N(t)), e.update(A);
1025
+ let n = e.digest("binary");
1026
+ r.set(n.subarray(0, 32), 0);
1027
+ for (let c = 1; c < i; c++)
1028
+ e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32), c * 32);
1029
+ const o = t - 32 * i;
1030
+ let g;
1031
+ return o === 64 ? (g = e, g.init()) : g = yield fe(o * 8), g.update(n), n = g.digest("binary"), r.set(n.subarray(0, o), i * 32), r;
1012
1032
  });
1013
1033
  }
1014
- function Qt(e) {
1034
+ function kA(e) {
1015
1035
  switch (e) {
1016
1036
  case "d":
1017
1037
  return 0;
@@ -1021,46 +1041,46 @@ function Qt(e) {
1021
1041
  return 2;
1022
1042
  }
1023
1043
  }
1024
- function Bt(e) {
1025
- return Y(this, void 0, void 0, function* () {
1026
- var t;
1027
- const { parallelism: A, iterations: r, hashLength: n } = e, i = M(e.password), o = M(e.salt), I = 19, c = Qt(e.hashType), { memorySize: w } = e, B = M((t = e.secret) !== null && t !== void 0 ? t : ""), [p, f] = yield Promise.all([
1028
- Se(ct, 1024),
1029
- Ie(512)
1044
+ function SA(e) {
1045
+ return R(this, void 0, void 0, function* () {
1046
+ var A;
1047
+ const { parallelism: t, iterations: i, hashLength: r } = e, n = O(e.password), o = O(e.salt), g = 19, c = kA(e.hashType), { memorySize: I } = e, y = O((A = e.secret) !== null && A !== void 0 ? A : ""), [d, f] = yield Promise.all([
1048
+ Fe(wA, 1024),
1049
+ fe(512)
1030
1050
  ]);
1031
- p.setMemorySize(w * 1024 + 1024);
1032
- const Q = new Uint8Array(24), u = new DataView(Q.buffer);
1033
- u.setInt32(0, A, !0), u.setInt32(4, n, !0), u.setInt32(8, w, !0), u.setInt32(12, r, !0), u.setInt32(16, I, !0), u.setInt32(20, c, !0), p.writeMemory(Q, w * 1024), f.init(), f.update(Q), f.update(J(i.length)), f.update(i), f.update(J(o.length)), f.update(o), f.update(J(B.length)), f.update(B), f.update(J(0));
1034
- const a = Math.floor(w / (A * 4)) * 4, g = new Uint8Array(72), C = f.digest("binary");
1035
- g.set(C);
1036
- for (let y = 0; y < A; y++) {
1037
- g.set(J(0), 64), g.set(J(y), 68);
1038
- let l = y * a, s = yield re(f, g, 1024);
1039
- p.writeMemory(s, l * 1024), l += 1, g.set(J(1), 64), s = yield re(f, g, 1024), p.writeMemory(s, l * 1024);
1051
+ d.setMemorySize(I * 1024 + 1024);
1052
+ const U = new Uint8Array(24), D = new DataView(U.buffer);
1053
+ D.setInt32(0, t, !0), D.setInt32(4, r, !0), D.setInt32(8, I, !0), D.setInt32(12, i, !0), D.setInt32(16, g, !0), D.setInt32(20, c, !0), d.writeMemory(U, I * 1024), f.init(), f.update(U), f.update(N(n.length)), f.update(n), f.update(N(o.length)), f.update(o), f.update(N(y.length)), f.update(y), f.update(N(0));
1054
+ const Q = Math.floor(I / (t * 4)) * 4, u = new Uint8Array(72), F = f.digest("binary");
1055
+ u.set(F);
1056
+ for (let a = 0; a < t; a++) {
1057
+ u.set(N(0), 64), u.set(N(a), 68);
1058
+ let s = a * Q, C = yield ge(f, u, 1024);
1059
+ d.writeMemory(C, s * 1024), s += 1, u.set(N(1), 64), C = yield ge(f, u, 1024), d.writeMemory(C, s * 1024);
1040
1060
  }
1041
- const d = new Uint8Array(1024);
1042
- ke(d, p.calculate(new Uint8Array([]), w));
1043
- const D = yield re(f, d, n);
1061
+ const E = new Uint8Array(1024);
1062
+ De(E, d.calculate(new Uint8Array([]), I));
1063
+ const h = yield ge(f, E, r);
1044
1064
  if (e.outputType === "hex") {
1045
- const y = new Uint8Array(n * 2);
1046
- return se(y, D, n);
1065
+ const a = new Uint8Array(r * 2);
1066
+ return he(a, h, r);
1047
1067
  }
1048
- return e.outputType === "encoded" ? wt(o, e, D) : D;
1068
+ return e.outputType === "encoded" ? yA(o, e, h) : h;
1049
1069
  });
1050
1070
  }
1051
- const dt = (e) => {
1052
- var t;
1071
+ const DA = (e) => {
1072
+ var A;
1053
1073
  if (!e || typeof e != "object")
1054
1074
  throw new Error("Invalid options parameter. It requires an object.");
1055
1075
  if (!e.password)
1056
1076
  throw new Error("Password must be specified");
1057
- if (e.password = M(e.password), e.password.length < 1)
1077
+ if (e.password = O(e.password), e.password.length < 1)
1058
1078
  throw new Error("Password must be specified");
1059
1079
  if (!e.salt)
1060
1080
  throw new Error("Salt must be specified");
1061
- if (e.salt = M(e.salt), e.salt.length < 8)
1081
+ if (e.salt = O(e.salt), e.salt.length < 8)
1062
1082
  throw new Error("Salt should be at least 8 bytes long");
1063
- if (e.secret = M((t = e.secret) !== null && t !== void 0 ? t : ""), !Number.isInteger(e.iterations) || e.iterations < 1)
1083
+ if (e.secret = O((A = e.secret) !== null && A !== void 0 ? A : ""), !Number.isInteger(e.iterations) || e.iterations < 1)
1064
1084
  throw new Error("Iterations should be a positive number");
1065
1085
  if (!Number.isInteger(e.parallelism) || e.parallelism < 1)
1066
1086
  throw new Error("Parallelism should be a positive number");
@@ -1073,50 +1093,50 @@ const dt = (e) => {
1073
1093
  if (e.outputType === void 0 && (e.outputType = "hex"), !["hex", "binary", "encoded"].includes(e.outputType))
1074
1094
  throw new Error(`Insupported output type ${e.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
1075
1095
  };
1076
- function De(e) {
1077
- return Y(this, void 0, void 0, function* () {
1078
- return dt(e), Bt(Object.assign(Object.assign({}, e), { hashType: "id" }));
1096
+ function Ue(e) {
1097
+ return R(this, void 0, void 0, function* () {
1098
+ return DA(e), SA(Object.assign(Object.assign({}, e), { hashType: "id" }));
1079
1099
  });
1080
1100
  }
1081
- new S();
1082
- new S();
1083
- new S();
1084
- new S();
1085
- new S();
1086
- new S();
1087
- new S();
1088
- new S();
1089
- new S();
1090
- new S();
1091
- new S();
1092
- new S();
1093
- new S();
1094
- new S();
1095
- new S();
1096
- new S();
1097
- new S();
1098
- new S();
1099
- new S();
1100
- new S();
1101
- const Et = 32;
1102
- async function AA(e, t, A = Oe) {
1103
- pt(A);
1101
+ new p();
1102
+ new p();
1103
+ new p();
1104
+ new p();
1105
+ new p();
1106
+ new p();
1107
+ new p();
1108
+ new p();
1109
+ new p();
1110
+ new p();
1111
+ new p();
1112
+ new p();
1113
+ new p();
1114
+ new p();
1115
+ new p();
1116
+ new p();
1117
+ new p();
1118
+ new p();
1119
+ new p();
1120
+ new p();
1121
+ const FA = 32;
1122
+ async function At(e, A, t = Re) {
1123
+ UA(t);
1104
1124
  try {
1105
- const r = await De({
1125
+ const i = await Ue({
1106
1126
  password: e,
1107
- salt: t,
1108
- iterations: A.tCost,
1109
- memorySize: A.mCost,
1110
- parallelism: A.pCost,
1111
- hashLength: Et,
1127
+ salt: A,
1128
+ iterations: t.tCost,
1129
+ memorySize: t.mCost,
1130
+ parallelism: t.pCost,
1131
+ hashLength: FA,
1112
1132
  outputType: "binary"
1113
1133
  });
1114
- return Ee(r);
1134
+ return ye(i);
1115
1135
  } catch {
1116
1136
  throw new Error("Key derivation failed");
1117
1137
  }
1118
1138
  }
1119
- function pt(e) {
1139
+ function UA(e) {
1120
1140
  if (e.mCost < 16384)
1121
1141
  throw new Error("KDF memory cost too low (minimum 16 MiB)");
1122
1142
  if (e.mCost > 1048576)
@@ -1130,9 +1150,9 @@ function pt(e) {
1130
1150
  if (e.pCost > 4)
1131
1151
  throw new Error("KDF parallelism too high (maximum 4)");
1132
1152
  }
1133
- async function yt() {
1153
+ async function bA() {
1134
1154
  try {
1135
- const e = await De({
1155
+ const e = await Ue({
1136
1156
  password: "test",
1137
1157
  salt: new Uint8Array(16),
1138
1158
  iterations: 1,
@@ -1142,49 +1162,47 @@ async function yt() {
1142
1162
  hashLength: 32,
1143
1163
  outputType: "binary"
1144
1164
  });
1145
- return e.length !== 32 ? !1 : (pe(e), !0);
1165
+ return e.length !== 32 ? !1 : (ke(e), !0);
1146
1166
  } catch {
1147
1167
  return !1;
1148
1168
  }
1149
1169
  }
1150
- function kt(e) {
1170
+ function mA(e) {
1151
1171
  return e === "localhost" || e === "127.0.0.1" || e.endsWith(".localhost");
1152
1172
  }
1153
- function Fe(e) {
1173
+ function be(e) {
1154
1174
  if (typeof window > "u")
1155
1175
  return;
1156
- const t = window.location.hostname;
1157
- if (!kt(t)) {
1158
- console.warn(
1159
- "[Cedros] SEC-004: WebAuthn RP domain validation not configured. In production, set wallet.allowedRpDomains to prevent passkey phishing."
1176
+ const A = window.location.hostname;
1177
+ if (!mA(A))
1178
+ throw new Error(
1179
+ "[Cedros] WebAuthn RP domain validation is not configured. Set wallet.allowedRpDomains to a non-empty list of allowed domains."
1160
1180
  );
1161
- return;
1162
- }
1163
1181
  }
1164
- function _() {
1182
+ function Ae() {
1165
1183
  return typeof window < "u" && typeof window.PublicKeyCredential < "u" && typeof navigator.credentials < "u";
1166
1184
  }
1167
- async function St() {
1168
- if (!_())
1185
+ async function GA() {
1186
+ if (!Ae())
1169
1187
  return !1;
1170
1188
  try {
1171
1189
  if (!await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable())
1172
1190
  return !1;
1173
1191
  if ("getClientCapabilities" in PublicKeyCredential && typeof PublicKeyCredential.getClientCapabilities == "function") {
1174
- const t = await PublicKeyCredential.getClientCapabilities();
1175
- if (t && "prf" in t)
1176
- return t.prf === !0;
1192
+ const A = await PublicKeyCredential.getClientCapabilities();
1193
+ if (A && "prf" in A)
1194
+ return A.prf === !0;
1177
1195
  }
1178
1196
  return !0;
1179
1197
  } catch {
1180
1198
  return !1;
1181
1199
  }
1182
1200
  }
1183
- async function rA(e, t, A, r, n) {
1184
- if (!_())
1201
+ async function tt(e, A, t, i, r) {
1202
+ if (!Ae())
1185
1203
  throw new Error("WebAuthn is not available in this browser");
1186
- Fe();
1187
- const i = r ?? qe(), o = await navigator.credentials.create({
1204
+ be();
1205
+ const n = i ?? tA(), o = await navigator.credentials.create({
1188
1206
  publicKey: {
1189
1207
  challenge: crypto.getRandomValues(new Uint8Array(32)),
1190
1208
  rp: {
@@ -1192,9 +1210,9 @@ async function rA(e, t, A, r, n) {
1192
1210
  id: window.location.hostname
1193
1211
  },
1194
1212
  user: {
1195
- id: x(e),
1196
- name: t,
1197
- displayName: A
1213
+ id: T(e),
1214
+ name: A,
1215
+ displayName: t
1198
1216
  },
1199
1217
  pubKeyCredParams: [
1200
1218
  { type: "public-key", alg: -7 },
@@ -1212,7 +1230,7 @@ async function rA(e, t, A, r, n) {
1212
1230
  extensions: {
1213
1231
  prf: {
1214
1232
  eval: {
1215
- first: i
1233
+ first: n
1216
1234
  }
1217
1235
  }
1218
1236
  }
@@ -1220,30 +1238,30 @@ async function rA(e, t, A, r, n) {
1220
1238
  });
1221
1239
  if (!o)
1222
1240
  throw new Error("Passkey registration was cancelled");
1223
- const I = o.getClientExtensionResults();
1224
- if (!I.prf?.enabled || !I.prf?.results?.first)
1241
+ const g = o.getClientExtensionResults();
1242
+ if (!g.prf?.enabled || !g.prf?.results?.first)
1225
1243
  throw new Error(
1226
1244
  "PRF extension is not supported by this authenticator. Please use a device with a compatible platform authenticator."
1227
1245
  );
1228
- const c = I.prf?.results?.first;
1246
+ const c = g.prf?.results?.first;
1229
1247
  if (!c)
1230
1248
  throw new Error("PRF extension did not return a result");
1231
- const w = new Uint8Array(c);
1232
- if (w.length !== 32)
1249
+ const I = new Uint8Array(c);
1250
+ if (I.length !== 32)
1233
1251
  throw new Error(
1234
- `Unexpected PRF output length: expected 32 bytes, got ${w.length}. The authenticator may not be compatible.`
1252
+ `Unexpected PRF output length: expected 32 bytes, got ${I.length}. The authenticator may not be compatible.`
1235
1253
  );
1236
1254
  return {
1237
- credentialId: Z(new Uint8Array(o.rawId)),
1238
- prfSalt: Z(i),
1239
- prfOutput: w
1255
+ credentialId: z(new Uint8Array(o.rawId)),
1256
+ prfSalt: z(n),
1257
+ prfOutput: I
1240
1258
  };
1241
1259
  }
1242
- async function iA(e, t) {
1243
- if (!_())
1260
+ async function it(e, A) {
1261
+ if (!Ae())
1244
1262
  throw new Error("WebAuthn is not available in this browser");
1245
- Fe();
1246
- const A = ze(e), r = await navigator.credentials.get({
1263
+ be();
1264
+ const t = nA(e), i = await navigator.credentials.get({
1247
1265
  publicKey: {
1248
1266
  challenge: crypto.getRandomValues(new Uint8Array(32)),
1249
1267
  rpId: window.location.hostname,
@@ -1254,107 +1272,110 @@ async function iA(e, t) {
1254
1272
  extensions: {
1255
1273
  prf: {
1256
1274
  eval: {
1257
- first: A
1275
+ first: t
1258
1276
  }
1259
1277
  }
1260
1278
  }
1261
1279
  }
1262
1280
  });
1263
- if (!r)
1264
- throw new Error("Passkey authentication was cancelled");
1265
- const i = r.getClientExtensionResults().prf?.results?.first;
1266
1281
  if (!i)
1282
+ throw new Error("Passkey authentication was cancelled");
1283
+ const n = i.getClientExtensionResults().prf?.results?.first;
1284
+ if (!n)
1267
1285
  throw new Error("PRF extension did not return a result during authentication");
1268
- return {
1269
- prfOutput: new Uint8Array(i)
1270
- };
1271
- }
1272
- async function Dt() {
1273
- const [e, t, A, r, n, i, o] = await Promise.all([
1274
- Ft(),
1275
- Ut(),
1276
- tt(),
1277
- mt(),
1278
- Promise.resolve(_()),
1279
- St(),
1280
- yt()
1286
+ const o = new Uint8Array(n);
1287
+ if (o.length !== 32)
1288
+ throw new Error(
1289
+ `Unexpected PRF output length: expected 32 bytes, got ${o.length}. The authenticator may not be compatible.`
1290
+ );
1291
+ return { prfOutput: o };
1292
+ }
1293
+ async function KA() {
1294
+ const [e, A, t, i, r, n, o] = await Promise.all([
1295
+ HA(),
1296
+ JA(),
1297
+ sA(),
1298
+ VA(),
1299
+ Promise.resolve(Ae()),
1300
+ GA(),
1301
+ bA()
1281
1302
  ]);
1282
1303
  return {
1283
1304
  webCrypto: e,
1284
- aesGcm: t,
1285
- hkdf: A,
1286
- ed25519: r,
1287
- webAuthn: n,
1288
- webAuthnPrf: i,
1305
+ aesGcm: A,
1306
+ hkdf: t,
1307
+ ed25519: i,
1308
+ webAuthn: r,
1309
+ webAuthnPrf: n,
1289
1310
  argon2: o,
1290
- allSupported: e && t && A && n && i && o
1311
+ allSupported: e && A && t && r && n && o
1291
1312
  };
1292
1313
  }
1293
- async function Ft() {
1314
+ async function HA() {
1294
1315
  try {
1295
1316
  return typeof crypto < "u" && typeof crypto.subtle < "u" && typeof crypto.getRandomValues == "function";
1296
1317
  } catch {
1297
1318
  return !1;
1298
1319
  }
1299
1320
  }
1300
- async function Ut() {
1321
+ async function JA() {
1301
1322
  try {
1302
1323
  const e = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, !1, [
1303
1324
  "encrypt",
1304
1325
  "decrypt"
1305
- ]), t = new Uint8Array([1, 2, 3, 4]), A = crypto.getRandomValues(new Uint8Array(12)), r = await crypto.subtle.encrypt({ name: "AES-GCM", iv: A }, e, t), n = await crypto.subtle.decrypt({ name: "AES-GCM", iv: A }, e, r), i = new Uint8Array(n);
1306
- return i.length === t.length && i.every((o, I) => o === t[I]);
1326
+ ]), A = new Uint8Array([1, 2, 3, 4]), t = crypto.getRandomValues(new Uint8Array(12)), i = await crypto.subtle.encrypt({ name: "AES-GCM", iv: t }, e, A), r = await crypto.subtle.decrypt({ name: "AES-GCM", iv: t }, e, i), n = new Uint8Array(r);
1327
+ return n.length === A.length && n.every((o, g) => o === A[g]);
1307
1328
  } catch {
1308
1329
  return !1;
1309
1330
  }
1310
1331
  }
1311
- async function mt() {
1332
+ async function VA() {
1312
1333
  try {
1313
1334
  return await crypto.subtle.generateKey("Ed25519", !1, ["sign", "verify"]), !0;
1314
1335
  } catch {
1315
1336
  return !1;
1316
1337
  }
1317
1338
  }
1318
- function nA(e) {
1339
+ function rt(e) {
1319
1340
  if (e.allSupported)
1320
1341
  return null;
1321
- const t = [];
1322
- return e.webCrypto || t.push("Web Crypto API"), e.aesGcm || t.push("AES-GCM encryption"), e.hkdf || t.push("HKDF key derivation"), e.webAuthn || t.push("WebAuthn/Passkeys"), e.webAuthnPrf || t.push("WebAuthn PRF extension (requires platform authenticator)"), e.argon2 || t.push("Argon2 password hashing"), t.length === 0 ? null : `Your browser or device is missing required features: ${t.join(", ")}. Please use a modern browser with a platform authenticator (e.g., Touch ID, Face ID, Windows Hello).`;
1342
+ const A = [];
1343
+ return e.webCrypto || A.push("Web Crypto API"), e.aesGcm || A.push("AES-GCM encryption"), e.hkdf || A.push("HKDF key derivation"), e.webAuthn || A.push("WebAuthn/Passkeys"), e.webAuthnPrf || A.push("WebAuthn PRF extension (requires platform authenticator)"), e.argon2 || A.push("Argon2 password hashing"), A.length === 0 ? null : `Your browser or device is missing required features: ${A.join(", ")}. Please use a modern browser with a platform authenticator (e.g., Touch ID, Face ID, Windows Hello).`;
1323
1344
  }
1324
- function oA() {
1325
- const e = typeof navigator < "u" ? navigator.userAgent : "", t = e.match(/Chrome\/(\d+)/);
1326
- if (t) {
1327
- const i = parseInt(t[1], 10);
1345
+ function nt() {
1346
+ const e = typeof navigator < "u" ? navigator.userAgent : "", A = e.match(/Chrome\/(\d+)/);
1347
+ if (A) {
1348
+ const n = parseInt(A[1], 10);
1328
1349
  return {
1329
1350
  browser: "Chrome",
1330
- version: t[1],
1331
- likelySupported: i >= 116
1351
+ version: A[1],
1352
+ likelySupported: n >= 116
1332
1353
  };
1333
1354
  }
1334
- const A = e.match(/Version\/(\d+)/);
1335
- if (A && e.includes("Safari") && !e.includes("Chrome")) {
1336
- const i = parseInt(A[1], 10);
1355
+ const t = e.match(/Version\/(\d+)/);
1356
+ if (t && e.includes("Safari") && !e.includes("Chrome")) {
1357
+ const n = parseInt(t[1], 10);
1337
1358
  return {
1338
1359
  browser: "Safari",
1339
- version: A[1],
1340
- likelySupported: i >= 17
1360
+ version: t[1],
1361
+ likelySupported: n >= 17
1341
1362
  };
1342
1363
  }
1343
- const r = e.match(/Firefox\/(\d+)/);
1344
- if (r)
1364
+ const i = e.match(/Firefox\/(\d+)/);
1365
+ if (i)
1345
1366
  return {
1346
1367
  browser: "Firefox",
1347
- version: r[1],
1368
+ version: i[1],
1348
1369
  likelySupported: !1
1349
1370
  // Firefox PRF support is limited
1350
1371
  };
1351
- const n = e.match(/Edg\/(\d+)/);
1352
- if (n) {
1353
- const i = parseInt(n[1], 10);
1372
+ const r = e.match(/Edg\/(\d+)/);
1373
+ if (r) {
1374
+ const n = parseInt(r[1], 10);
1354
1375
  return {
1355
1376
  browser: "Edge",
1356
- version: n[1],
1357
- likelySupported: i >= 116
1377
+ version: r[1],
1378
+ likelySupported: n >= 116
1358
1379
  };
1359
1380
  }
1360
1381
  return {
@@ -1363,172 +1384,13 @@ function oA() {
1363
1384
  likelySupported: !1
1364
1385
  };
1365
1386
  }
1366
- let j = null;
1367
- async function bt(e = !1) {
1368
- return !e && j !== null || (j = await Dt()), j;
1369
- }
1370
- const Gt = 1e4, Kt = 2;
1371
- function Ht(e, t) {
1372
- return {
1373
- code: e.code || "SERVER_ERROR",
1374
- message: e.message || t,
1375
- details: e.details
1376
- };
1377
- }
1378
- function Jt() {
1379
- return {
1380
- code: "NETWORK_ERROR",
1381
- message: "Unable to connect to server"
1382
- };
1383
- }
1384
- async function Mt(e, t, A) {
1385
- const r = new AbortController(), n = setTimeout(() => r.abort(), A);
1386
- try {
1387
- return await fetch(e, {
1388
- ...t,
1389
- signal: r.signal
1390
- });
1391
- } finally {
1392
- clearTimeout(n);
1393
- }
1394
- }
1395
- function Nt(e) {
1396
- if (e instanceof Error) {
1397
- if (e.retryable) return !0;
1398
- if (e.name === "AbortError") return !1;
1399
- if (e.message.includes("fetch")) return !0;
1400
- }
1401
- return !1;
1402
- }
1403
- function Vt(e) {
1404
- return new Promise((t) => setTimeout(t, e));
1405
- }
1406
- class Ot {
1407
- baseUrl;
1408
- timeoutMs;
1409
- retryAttempts;
1410
- getAccessToken;
1411
- constructor(t) {
1412
- this.baseUrl = t.baseUrl, this.timeoutMs = t.timeoutMs ?? Gt, this.retryAttempts = t.retryAttempts ?? Kt, this.getAccessToken = t.getAccessToken;
1413
- }
1414
- /**
1415
- * Make an API request with timeout and optional retry
1416
- */
1417
- async request(t) {
1418
- const { method: A, path: r, body: n, credentials: i = "include", skipRetry: o = !1, validator: I } = t, c = `${this.baseUrl}${r}`, B = o || !(A === "GET" || A === "HEAD" || A === "PUT" || A === "DELETE") ? 1 : this.retryAttempts + 1, p = {};
1419
- n !== void 0 && (p["Content-Type"] = "application/json");
1420
- const f = this.getAccessToken?.();
1421
- f && (p.Authorization = `Bearer ${f}`);
1422
- const Q = ne();
1423
- Q && (p["X-CSRF-Token"] = Q);
1424
- let u;
1425
- for (let h = 1; h <= B; h++)
1426
- try {
1427
- const a = await Mt(
1428
- c,
1429
- {
1430
- method: A,
1431
- headers: p,
1432
- credentials: i,
1433
- body: n !== void 0 ? JSON.stringify(n) : void 0
1434
- },
1435
- this.timeoutMs
1436
- ), g = a.headers.get("content-type") || "";
1437
- let C = {};
1438
- if (g.includes("application/json")) {
1439
- if (a.status !== 204)
1440
- try {
1441
- C = await a.json();
1442
- } catch (d) {
1443
- const D = d instanceof Error ? d.message : "parse failed";
1444
- throw new Error(`Invalid JSON response: ${D}`);
1445
- }
1446
- } else {
1447
- const d = await a.text();
1448
- if (d) {
1449
- const D = d.length > 200 ? d.slice(0, 200) + "..." : d;
1450
- C = {
1451
- message: g.includes("text/html") || d.trimStart().startsWith("<") ? `Unexpected HTML response (${a.status}). The server may be unavailable.` : D
1452
- };
1453
- }
1454
- }
1455
- if (!a.ok) {
1456
- if (a.status >= 400 && a.status < 500)
1457
- throw { isApiError: !0, data: C, status: a.status };
1458
- const d = new Error(`Server error: ${a.status}`);
1459
- throw d.retryable = !0, d;
1460
- }
1461
- if (I)
1462
- try {
1463
- return I(C);
1464
- } catch (d) {
1465
- throw new Error(
1466
- `Response validation failed: ${d instanceof Error ? d.message : "Invalid response shape"}`
1467
- );
1468
- }
1469
- return C;
1470
- } catch (a) {
1471
- if (u = a, typeof a == "object" && a !== null && "isApiError" in a)
1472
- throw a;
1473
- if (h < B && Nt(a)) {
1474
- await Vt(100 * Math.pow(2, h - 1));
1475
- continue;
1476
- }
1477
- throw a;
1478
- }
1479
- throw u;
1480
- }
1481
- /**
1482
- * POST request helper
1483
- */
1484
- async post(t, A, r) {
1485
- return this.request({ method: "POST", path: t, body: A, ...r });
1486
- }
1487
- /**
1488
- * GET request helper
1489
- */
1490
- async get(t, A) {
1491
- return this.request({ method: "GET", path: t, ...A });
1492
- }
1493
- /**
1494
- * PATCH request helper
1495
- */
1496
- async patch(t, A, r) {
1497
- return this.request({ method: "PATCH", path: t, body: A, ...r });
1498
- }
1499
- /**
1500
- * DELETE request helper
1501
- */
1502
- async delete(t, A) {
1503
- return this.request({ method: "DELETE", path: t, ...A });
1504
- }
1505
- }
1506
- function Pt(e) {
1507
- return typeof e == "object" && e !== null && "isApiError" in e;
1508
- }
1509
- function xt(e) {
1510
- return typeof e == "object" && e !== null && "code" in e && "message" in e;
1511
- }
1512
- function H(e, t) {
1513
- if (xt(e))
1514
- return e;
1515
- if (Pt(e))
1516
- return Ht(e.data, t);
1517
- if (e instanceof Error) {
1518
- if (e.name === "AbortError")
1519
- return {
1520
- code: "NETWORK_ERROR",
1521
- message: "Request timed out"
1522
- };
1523
- if (e.message.startsWith("Server error:") || e.message.startsWith("Invalid JSON response"))
1524
- return {
1525
- code: "SERVER_ERROR",
1526
- message: t
1527
- };
1528
- }
1529
- return Jt();
1387
+ let $ = null, le = null;
1388
+ const MA = 6e4;
1389
+ async function PA(e = !1) {
1390
+ const A = Date.now(), t = le === null || A - le > MA;
1391
+ return !e && !(typeof window > "u") && !t && $ !== null || ($ = await KA(), le = Date.now()), $;
1530
1392
  }
1531
- function Yt(e) {
1393
+ function YA(e) {
1532
1394
  switch (e.type) {
1533
1395
  case "password":
1534
1396
  return { password: e.password };
@@ -1536,160 +1398,160 @@ function Yt(e) {
1536
1398
  return { prfOutput: e.prfOutput };
1537
1399
  }
1538
1400
  }
1539
- function vt() {
1540
- const e = de(), [t, A] = U(!1), [r, n] = U(null), i = O(() => e ? new Ot({
1541
- baseUrl: e.config.serverUrl,
1542
- timeoutMs: e.config.requestTimeout,
1543
- retryAttempts: e.config.retryAttempts,
1544
- getAccessToken: e._internal?.getAccessToken
1545
- }) : null, [e]), o = k(async () => {
1546
- if (!i)
1401
+ function NA() {
1402
+ const e = Ee(), [A, t] = G(!1), [i, r] = G(null), n = e?.config.serverUrl, o = e?.config.requestTimeout, g = e?.config.retryAttempts, c = e?._internal?.getAccessToken, I = M(() => e ? new Ve({
1403
+ baseUrl: n,
1404
+ timeoutMs: o,
1405
+ retryAttempts: g,
1406
+ getAccessToken: c
1407
+ }) : null, [e, n, o, g, c]), y = B(async () => {
1408
+ if (!I)
1547
1409
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1548
- A(!0), n(null);
1410
+ t(!0), r(null);
1549
1411
  try {
1550
- return await i.get("/wallet/status");
1551
- } catch (a) {
1552
- const g = H(a, "Failed to fetch wallet status");
1553
- throw n(g.message), g;
1412
+ return await I.get("/wallet/status");
1413
+ } catch (h) {
1414
+ const a = Y(h, "Failed to fetch wallet status");
1415
+ throw r(a.message), a;
1554
1416
  } finally {
1555
- A(!1);
1417
+ t(!1);
1556
1418
  }
1557
- }, [i]), I = k(async () => {
1558
- if (!i)
1419
+ }, [I]), d = B(async () => {
1420
+ if (!I)
1559
1421
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1560
- A(!0), n(null);
1422
+ t(!0), r(null);
1561
1423
  try {
1562
- return await i.get("/wallet/material");
1563
- } catch (a) {
1564
- const g = H(a, "Failed to fetch wallet material");
1565
- if (g.code === "NOT_FOUND")
1424
+ return await I.get("/wallet/material");
1425
+ } catch (h) {
1426
+ const a = Y(h, "Failed to fetch wallet material");
1427
+ if (a.code === "NOT_FOUND")
1566
1428
  return null;
1567
- throw n(g.message), g;
1429
+ throw r(a.message), a;
1568
1430
  } finally {
1569
- A(!1);
1431
+ t(!1);
1570
1432
  }
1571
- }, [i]), c = k(
1572
- async (a) => {
1573
- if (!i)
1433
+ }, [I]), f = B(
1434
+ async (h) => {
1435
+ if (!I)
1574
1436
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1575
- A(!0), n(null);
1437
+ t(!0), r(null);
1576
1438
  try {
1577
- await i.post("/wallet/enroll", a);
1578
- } catch (g) {
1579
- const C = H(g, "Failed to enroll wallet");
1580
- throw n(C.message), C;
1439
+ await I.post("/wallet/enroll", h);
1440
+ } catch (a) {
1441
+ const s = Y(a, "Failed to enroll wallet");
1442
+ throw r(s.message), s;
1581
1443
  } finally {
1582
- A(!1);
1444
+ t(!1);
1583
1445
  }
1584
1446
  },
1585
- [i]
1586
- ), w = k(
1587
- async (a) => {
1588
- if (!i)
1447
+ [I]
1448
+ ), U = B(
1449
+ async (h) => {
1450
+ if (!I)
1589
1451
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1590
- A(!0), n(null);
1452
+ t(!0), r(null);
1591
1453
  try {
1592
- await i.post("/wallet/recover", a);
1593
- } catch (g) {
1594
- const C = H(g, "Failed to recover wallet");
1595
- throw n(C.message), C;
1454
+ await I.post("/wallet/recover", h);
1455
+ } catch (a) {
1456
+ const s = Y(a, "Failed to recover wallet");
1457
+ throw r(s.message), s;
1596
1458
  } finally {
1597
- A(!1);
1459
+ t(!1);
1598
1460
  }
1599
1461
  },
1600
- [i]
1601
- ), B = k(
1602
- async (a) => {
1603
- if (!i)
1462
+ [I]
1463
+ ), D = B(
1464
+ async (h) => {
1465
+ if (!I)
1604
1466
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1605
- A(!0), n(null);
1467
+ t(!0), r(null);
1606
1468
  try {
1607
- return await i.post("/wallet/sign", a);
1608
- } catch (g) {
1609
- const C = H(g, "Failed to sign transaction");
1610
- throw n(C.message), C;
1469
+ return await I.post("/wallet/sign", h);
1470
+ } catch (a) {
1471
+ const s = Y(a, "Failed to sign transaction");
1472
+ throw r(s.message), s;
1611
1473
  } finally {
1612
- A(!1);
1474
+ t(!1);
1613
1475
  }
1614
1476
  },
1615
- [i]
1616
- ), p = k(
1617
- async (a) => {
1618
- if (!i)
1477
+ [I]
1478
+ ), w = B(
1479
+ async (h) => {
1480
+ if (!I)
1619
1481
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1620
- A(!0), n(null);
1482
+ t(!0), r(null);
1621
1483
  try {
1622
- await i.post("/wallet/rotate-user-secret", a);
1623
- } catch (g) {
1624
- const C = H(g, "Failed to rotate user secret");
1625
- throw n(C.message), C;
1484
+ await I.post("/wallet/rotate-user-secret", h);
1485
+ } catch (a) {
1486
+ const s = Y(a, "Failed to rotate user secret");
1487
+ throw r(s.message), s;
1626
1488
  } finally {
1627
- A(!1);
1489
+ t(!1);
1628
1490
  }
1629
1491
  },
1630
- [i]
1631
- ), f = k(
1632
- async (a) => {
1633
- if (!i)
1492
+ [I]
1493
+ ), Q = B(
1494
+ async (h) => {
1495
+ if (!I)
1634
1496
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1635
- A(!0), n(null);
1497
+ t(!0), r(null);
1636
1498
  try {
1637
- return await i.post(
1499
+ return await I.post(
1638
1500
  "/wallet/unlock",
1639
- Yt(a)
1501
+ YA(h)
1640
1502
  );
1641
- } catch (g) {
1642
- const C = H(g, "Failed to unlock wallet");
1643
- throw n(C.message), C;
1503
+ } catch (a) {
1504
+ const s = Y(a, "Failed to unlock wallet");
1505
+ throw r(s.message), s;
1644
1506
  } finally {
1645
- A(!1);
1507
+ t(!1);
1646
1508
  }
1647
1509
  },
1648
- [i]
1649
- ), Q = k(async () => {
1650
- if (!i)
1510
+ [I]
1511
+ ), u = B(async () => {
1512
+ if (!I)
1651
1513
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1652
- A(!0), n(null);
1514
+ t(!0), r(null);
1653
1515
  try {
1654
- await i.post("/wallet/lock", {});
1655
- } catch (a) {
1656
- const g = H(a, "Failed to lock wallet");
1657
- throw n(g.message), g;
1516
+ await I.post("/wallet/lock", {});
1517
+ } catch (h) {
1518
+ const a = Y(h, "Failed to lock wallet");
1519
+ throw r(a.message), a;
1658
1520
  } finally {
1659
- A(!1);
1521
+ t(!1);
1660
1522
  }
1661
- }, [i]), u = k(
1662
- async (a) => {
1663
- if (!i)
1523
+ }, [I]), F = B(
1524
+ async (h) => {
1525
+ if (!I)
1664
1526
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1665
- A(!0), n(null);
1527
+ t(!0), r(null);
1666
1528
  try {
1667
- return await i.post("/wallet/share-b", a);
1668
- } catch (g) {
1669
- const C = H(g, "Failed to get Share B for recovery");
1670
- throw n(C.message), C;
1529
+ return await I.post("/wallet/share-b", h);
1530
+ } catch (a) {
1531
+ const s = Y(a, "Failed to get Share B for recovery");
1532
+ throw r(s.message), s;
1671
1533
  } finally {
1672
- A(!1);
1534
+ t(!1);
1673
1535
  }
1674
1536
  },
1675
- [i]
1676
- ), h = k(() => n(null), []);
1537
+ [I]
1538
+ ), E = B(() => r(null), []);
1677
1539
  return {
1678
- getStatus: o,
1679
- getMaterial: I,
1680
- enroll: c,
1681
- recover: w,
1682
- signTransaction: B,
1683
- rotateUserSecret: p,
1684
- unlock: f,
1685
- lock: Q,
1686
- getShareBForRecovery: u,
1687
- isLoading: t,
1688
- error: r,
1689
- clearError: h
1540
+ getStatus: y,
1541
+ getMaterial: d,
1542
+ enroll: f,
1543
+ recover: U,
1544
+ signTransaction: D,
1545
+ rotateUserSecret: w,
1546
+ unlock: Q,
1547
+ lock: u,
1548
+ getShareBForRecovery: F,
1549
+ isLoading: A,
1550
+ error: i,
1551
+ clearError: E
1690
1552
  };
1691
1553
  }
1692
- const Tt = {
1554
+ const xA = {
1693
1555
  status: "not_enrolled",
1694
1556
  solanaPubkey: null,
1695
1557
  authMethod: null,
@@ -1703,341 +1565,207 @@ const Tt = {
1703
1565
  clearError: () => {
1704
1566
  }
1705
1567
  };
1706
- function Rt() {
1707
- const t = de() !== null, [A, r] = U("loading"), [n, i] = U(null), [o, I] = U(null), [c, w] = U(!1), [B, p] = U(!1), [f, Q] = U(null), [u, h] = U(null), { getStatus: a, isLoading: g } = vt(), C = P(!1);
1708
- K(() => {
1709
- if (!t) return;
1710
- let y = !1;
1568
+ function OA() {
1569
+ const A = Ee() !== null, [t, i] = G("loading"), [r, n] = G(null), [o, g] = G(null), [c, I] = G(!1), [y, d] = G(!1), [f, U] = G(null), [D, w] = G(null), { getStatus: Q, isLoading: u } = NA(), F = P(!1);
1570
+ x(() => {
1571
+ if (!A) return;
1572
+ let a = !1;
1711
1573
  return (async () => {
1712
1574
  try {
1713
- const s = await bt();
1714
- if (y) return;
1715
- Q(s), s.allSupported || (r("error"), h(
1575
+ const C = await PA();
1576
+ if (a) return;
1577
+ U(C), C.allSupported || (i("error"), w(
1716
1578
  "Your browser or device does not support all required features. Please use a modern browser with a platform authenticator."
1717
1579
  ));
1718
1580
  } catch {
1719
- if (y) return;
1720
- Q(null), r("error"), h("Failed to check crypto capabilities");
1581
+ if (a) return;
1582
+ U(null), i("error"), w("Failed to check crypto capabilities");
1721
1583
  }
1722
1584
  })(), () => {
1723
- y = !0;
1585
+ a = !0;
1724
1586
  };
1725
- }, [t]);
1726
- const d = k(async () => {
1727
- if (!(!t || !f?.allSupported)) {
1728
- r("loading"), h(null);
1587
+ }, [A]);
1588
+ const E = B(async () => {
1589
+ if (!(!A || !f?.allSupported)) {
1590
+ i("loading"), w(null);
1729
1591
  try {
1730
- const y = await a();
1731
- i(y.solanaPubkey ?? null), I(y.authMethod ?? null), w(y.hasExternalWallet), p(y.unlocked), y.hasExternalWallet ? r("enrolled_unlocked") : y.enrolled ? r(y.unlocked ? "enrolled_unlocked" : "enrolled_locked") : r("not_enrolled");
1732
- } catch (y) {
1733
- r("error"), h(y instanceof Error ? y.message : "Failed to fetch wallet status");
1592
+ const a = await Q();
1593
+ n(a.solanaPubkey ?? null), g(a.authMethod ?? null), I(a.hasExternalWallet), d(a.unlocked), a.hasExternalWallet ? i("enrolled_unlocked") : a.enrolled ? i(a.unlocked ? "enrolled_unlocked" : "enrolled_locked") : i("not_enrolled");
1594
+ } catch (a) {
1595
+ i("error"), w(a instanceof Error ? a.message : "Failed to fetch wallet status");
1734
1596
  }
1735
1597
  }
1736
- }, [t, f?.allSupported, a]);
1737
- K(() => {
1738
- t && f?.allSupported && !g && !C.current && (C.current = !0, d());
1739
- }, [t, f?.allSupported, g, d]);
1740
- const D = k(() => h(null), []);
1741
- return t ? {
1742
- status: A,
1743
- solanaPubkey: n,
1598
+ }, [A, f?.allSupported, Q]);
1599
+ x(() => {
1600
+ A && f?.allSupported && !u && !F.current && (F.current = !0, E());
1601
+ }, [A, f?.allSupported, u, E]);
1602
+ const h = B(() => w(null), []);
1603
+ return A ? {
1604
+ status: t,
1605
+ solanaPubkey: r,
1744
1606
  authMethod: o,
1745
1607
  hasExternalWallet: c,
1746
- isUnlocked: B,
1608
+ isUnlocked: y,
1747
1609
  capabilities: f,
1748
1610
  isSupported: f?.allSupported ?? !1,
1749
- error: u,
1750
- refresh: d,
1751
- clearError: D
1752
- } : Tt;
1611
+ error: D,
1612
+ refresh: E,
1613
+ clearError: h
1614
+ } : xA;
1753
1615
  }
1754
- const $ = "__CEDROS_EMBEDDED_WALLET__";
1755
- function Lt(e) {
1756
- typeof window < "u" && (window[$] = e);
1616
+ const te = "__CEDROS_EMBEDDED_WALLET__";
1617
+ function vA(e) {
1618
+ typeof window < "u" && (window[te] = e);
1757
1619
  }
1758
- function ie() {
1759
- typeof window < "u" && delete window[$];
1620
+ function ce() {
1621
+ typeof window < "u" && delete window[te];
1760
1622
  }
1761
- function sA() {
1762
- return typeof window > "u" ? !1 : window[$]?.available ?? !1;
1623
+ function ot() {
1624
+ return typeof window > "u" ? !1 : window[te]?.available ?? !1;
1763
1625
  }
1764
- function IA() {
1765
- return typeof window > "u" ? null : window[$] ?? null;
1626
+ function st() {
1627
+ return typeof window > "u" ? null : window[te] ?? null;
1766
1628
  }
1767
- function Xt() {
1768
- const { config: e, user: t } = Be(), { status: A, solanaPubkey: r, hasExternalWallet: n } = Rt(), i = e.wallet?.exposeAvailability ?? !1, o = e.wallet?.exposePublicKey ?? !1;
1769
- return K(() => {
1770
- if (!i || !t) {
1771
- ie();
1629
+ function TA() {
1630
+ const { config: e, user: A } = pe(), { status: t, solanaPubkey: i, hasExternalWallet: r } = OA(), n = e.wallet?.exposeAvailability ?? !1, o = e.wallet?.exposePublicKey ?? !1;
1631
+ return x(() => {
1632
+ if (!n || !A) {
1633
+ ce();
1772
1634
  return;
1773
1635
  }
1774
- if (n) {
1775
- ie();
1636
+ if (r) {
1637
+ ce();
1776
1638
  return;
1777
1639
  }
1778
- if (A === "loading")
1640
+ if (t === "loading")
1779
1641
  return;
1780
- const I = A === "enrolled_locked" || A === "enrolled_unlocked";
1781
- return Lt({
1782
- available: I,
1783
- publicKey: o && I ? r : null
1642
+ const g = t === "enrolled_locked" || t === "enrolled_unlocked";
1643
+ return vA({
1644
+ available: g,
1645
+ publicKey: o && g ? i : null
1784
1646
  }), () => {
1785
- ie();
1647
+ ce();
1786
1648
  };
1787
- }, [i, o, t, A, r, n]), null;
1788
- }
1789
- function aA({ config: e, children: t }) {
1790
- const [A, r] = U(null), [n, i] = U(!1), o = O(
1649
+ }, [n, o, A, t, i, r]), null;
1650
+ }
1651
+ function It({ config: e, children: A }) {
1652
+ const [t, i] = G(null), [r, n] = G(!1), o = P(e.callbacks);
1653
+ o.current = e.callbacks;
1654
+ const g = P({
1655
+ onLoginSuccess: (...l) => o.current?.onLoginSuccess?.(...l),
1656
+ onLoginError: (...l) => o.current?.onLoginError?.(...l),
1657
+ onLogout: () => o.current?.onLogout?.(),
1658
+ onSessionExpired: () => o.current?.onSessionExpired?.()
1659
+ }), c = M(
1791
1660
  () => JSON.stringify(e.themeOverrides ?? null),
1792
1661
  [e.themeOverrides]
1793
- ), I = O(() => JSON.stringify(e.session ?? null), [e.session]), c = O(() => JSON.stringify(e.features ?? null), [e.features]), w = O(() => JSON.stringify(e.forms ?? null), [e.forms]), B = O(
1662
+ ), I = M(() => JSON.stringify(e.session ?? null), [e.session]), y = M(() => JSON.stringify(e.features ?? null), [e.features]), d = M(() => JSON.stringify(e.forms ?? null), [e.forms]), f = M(
1794
1663
  () => e,
1795
- // eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison
1664
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison; callbacks excluded (see UI-06)
1796
1665
  [
1797
1666
  e.serverUrl,
1798
1667
  e.googleClientId,
1799
1668
  e.requestTimeout,
1800
1669
  e.retryAttempts,
1801
1670
  e.theme,
1802
- o,
1803
- I,
1804
1671
  c,
1805
- w,
1806
- e.callbacks
1672
+ I,
1673
+ y,
1674
+ d
1807
1675
  ]
1808
1676
  );
1809
- be({
1810
- theme: B.theme,
1811
- themeOverrides: B.themeOverrides
1677
+ Me({
1678
+ theme: f.theme,
1679
+ themeOverrides: f.themeOverrides
1812
1680
  });
1813
1681
  const {
1814
- user: p,
1815
- authState: f,
1816
- handleLoginSuccess: Q,
1817
- logout: u,
1818
- refreshUser: h,
1819
- getAccessToken: a
1820
- } = Ve({
1821
- serverUrl: B.serverUrl,
1822
- session: B.session,
1823
- callbacks: B.callbacks,
1824
- requestTimeoutMs: B.requestTimeout
1825
- }), g = k(async () => {
1826
- r(null), await u();
1827
- }, [u]), C = k(
1682
+ user: U,
1683
+ authState: D,
1684
+ handleLoginSuccess: w,
1685
+ logout: Q,
1686
+ refreshUser: u,
1687
+ getAccessToken: F
1688
+ } = Te({
1689
+ serverUrl: f.serverUrl,
1690
+ session: f.session,
1691
+ callbacks: g.current,
1692
+ requestTimeoutMs: f.requestTimeout
1693
+ }), E = B(async () => {
1694
+ i(null), await Q();
1695
+ }, [Q]), h = B(
1828
1696
  (...l) => {
1829
- r(null), Q(...l);
1697
+ i(null), w(...l);
1830
1698
  },
1831
- [Q]
1832
- ), d = k(() => i(!0), []), D = k(() => i(!1), []), y = O(
1699
+ [w]
1700
+ ), a = B(() => n(!0), []), s = B(() => n(!1), []), C = M(
1833
1701
  () => ({
1834
- config: B,
1835
- user: p,
1836
- authState: f,
1837
- error: A,
1838
- logout: g,
1839
- refreshUser: h,
1840
- isModalOpen: n,
1841
- openModal: d,
1842
- closeModal: D,
1702
+ config: f,
1703
+ user: U,
1704
+ authState: D,
1705
+ logout: E,
1706
+ refreshUser: u,
1843
1707
  _internal: {
1844
- handleLoginSuccess: C,
1845
- getAccessToken: a
1708
+ handleLoginSuccess: h,
1709
+ getAccessToken: F
1846
1710
  }
1847
1711
  }),
1848
- [
1849
- B,
1850
- p,
1851
- f,
1852
- A,
1853
- g,
1854
- h,
1855
- n,
1856
- d,
1857
- D,
1858
- C,
1859
- a
1860
- ]
1712
+ [f, U, D, E, u, h, F]
1713
+ ), k = M(
1714
+ () => ({
1715
+ error: t,
1716
+ isModalOpen: r,
1717
+ openModal: a,
1718
+ closeModal: s
1719
+ }),
1720
+ [t, r, a, s]
1721
+ ), H = M(
1722
+ () => ({ ...C, ...k }),
1723
+ [C, k]
1861
1724
  );
1862
- return /* @__PURE__ */ R(ae.Provider, { value: y, children: [
1863
- /* @__PURE__ */ m(Xt, {}),
1864
- t
1865
- ] });
1725
+ return /* @__PURE__ */ ne(Ke.Provider, { value: C, children: /* @__PURE__ */ ne(He.Provider, { value: k, children: /* @__PURE__ */ Ge(Je.Provider, { value: H, children: [
1726
+ /* @__PURE__ */ ne(TA, {}),
1727
+ A
1728
+ ] }) }) });
1866
1729
  }
1867
- function gA() {
1868
- const { user: e, authState: t, error: A, logout: r, refreshUser: n, openModal: i, closeModal: o } = Be();
1730
+ function at() {
1731
+ const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } = pe();
1869
1732
  return {
1870
1733
  user: e,
1871
- authState: t,
1872
- error: A,
1873
- isAuthenticated: t === "authenticated" && e !== null,
1874
- isLoading: t === "loading",
1875
- logout: r,
1876
- refreshUser: n,
1877
- openLoginModal: i,
1734
+ authState: A,
1735
+ error: t,
1736
+ isAuthenticated: A === "authenticated" && e !== null,
1737
+ isLoading: A === "loading",
1738
+ logout: i,
1739
+ refreshUser: r,
1740
+ openLoginModal: n,
1878
1741
  closeLoginModal: o
1879
1742
  };
1880
1743
  }
1881
- const Wt = {
1882
- sm: 16,
1883
- md: 24,
1884
- lg: 32,
1885
- xl: 48
1886
- // H-04: Added for WalletUnlock component
1887
- }, cA = Qe(function({
1888
- size: t = "md",
1889
- className: A = "",
1890
- style: r,
1891
- label: n = "Loading",
1892
- announce: i = !1
1893
- }) {
1894
- const o = Wt[t], I = /* @__PURE__ */ R(
1895
- "svg",
1896
- {
1897
- className: `cedros-spinner ${A}`,
1898
- width: o,
1899
- height: o,
1900
- viewBox: "0 0 24 24",
1901
- fill: "none",
1902
- style: r,
1903
- "aria-label": n,
1904
- role: "status",
1905
- "aria-hidden": i ? "true" : void 0,
1906
- children: [
1907
- /* @__PURE__ */ m(
1908
- "circle",
1909
- {
1910
- className: "cedros-spinner-track",
1911
- cx: "12",
1912
- cy: "12",
1913
- r: "10",
1914
- stroke: "currentColor",
1915
- strokeWidth: "3",
1916
- strokeOpacity: "0.25"
1917
- }
1918
- ),
1919
- /* @__PURE__ */ m(
1920
- "circle",
1921
- {
1922
- className: "cedros-spinner-head",
1923
- cx: "12",
1924
- cy: "12",
1925
- r: "10",
1926
- stroke: "currentColor",
1927
- strokeWidth: "3",
1928
- strokeLinecap: "round",
1929
- strokeDasharray: "31.4 31.4",
1930
- transform: "rotate(-90 12 12)",
1931
- children: /* @__PURE__ */ m(
1932
- "animateTransform",
1933
- {
1934
- attributeName: "transform",
1935
- type: "rotate",
1936
- from: "0 12 12",
1937
- to: "360 12 12",
1938
- dur: "1s",
1939
- repeatCount: "indefinite"
1940
- }
1941
- )
1942
- }
1943
- )
1944
- ]
1945
- }
1946
- );
1947
- return i ? /* @__PURE__ */ R("span", { "aria-live": "polite", "aria-busy": "true", children: [
1948
- I,
1949
- /* @__PURE__ */ m("span", { className: "cedros-sr-only", children: n })
1950
- ] }) : I;
1951
- }), lA = Qe(function({
1952
- error: t,
1953
- className: A = "",
1954
- onDismiss: r,
1955
- autoFocus: n = !1
1956
- }) {
1957
- const i = P(null);
1958
- if (K(() => {
1959
- t && n && i.current && i.current.focus();
1960
- }, [t, n]), !t) return null;
1961
- const o = typeof t == "string" ? t : t.message;
1962
- return /* @__PURE__ */ R(
1963
- "div",
1964
- {
1965
- ref: i,
1966
- className: `cedros-error ${A}`,
1967
- role: "alert",
1968
- "aria-live": "assertive",
1969
- tabIndex: n ? -1 : void 0,
1970
- children: [
1971
- /* @__PURE__ */ R(
1972
- "svg",
1973
- {
1974
- className: "cedros-error-icon",
1975
- width: "16",
1976
- height: "16",
1977
- viewBox: "0 0 16 16",
1978
- fill: "none",
1979
- "aria-hidden": "true",
1980
- children: [
1981
- /* @__PURE__ */ m("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
1982
- /* @__PURE__ */ m("path", { d: "M8 4.5v4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
1983
- /* @__PURE__ */ m("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })
1984
- ]
1985
- }
1986
- ),
1987
- /* @__PURE__ */ m("span", { className: "cedros-error-message", children: o }),
1988
- r && /* @__PURE__ */ m(
1989
- "button",
1990
- {
1991
- type: "button",
1992
- className: "cedros-error-dismiss",
1993
- onClick: r,
1994
- "aria-label": "Dismiss error",
1995
- children: /* @__PURE__ */ m("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ m(
1996
- "path",
1997
- {
1998
- d: "M10.5 3.5L3.5 10.5M3.5 3.5l7 7",
1999
- stroke: "currentColor",
2000
- strokeWidth: "1.5",
2001
- strokeLinecap: "round"
2002
- }
2003
- ) })
2004
- }
2005
- )
2006
- ]
2007
- }
2008
- );
2009
- });
2010
1744
  export {
2011
- Ot as A,
2012
- IA as B,
2013
- aA as C,
2014
- Oe as D,
2015
- lA as E,
2016
- cA as L,
2017
- gA as a,
2018
- $t as b,
2019
- eA as c,
2020
- Z as d,
2021
- AA as e,
2022
- qt as f,
2023
- _t as g,
2024
- H as h,
2025
- Le as i,
2026
- pe as j,
2027
- nA as k,
2028
- oA as l,
2029
- de as m,
2030
- vt as n,
2031
- qe as o,
2032
- iA as p,
2033
- tA as q,
2034
- rA as r,
2035
- Yt as s,
2036
- Ee as t,
2037
- Be as u,
2038
- ze as v,
2039
- zt as w,
2040
- Rt as x,
2041
- ae as y,
2042
- sA as z
1745
+ It as C,
1746
+ Re as D,
1747
+ _A as a,
1748
+ zA as b,
1749
+ z as c,
1750
+ At as d,
1751
+ ke as e,
1752
+ ZA as f,
1753
+ qA as g,
1754
+ _e as h,
1755
+ rt as i,
1756
+ nt as j,
1757
+ NA as k,
1758
+ tA as l,
1759
+ it as m,
1760
+ et as n,
1761
+ YA as o,
1762
+ nA as p,
1763
+ OA as q,
1764
+ tt as r,
1765
+ ot as s,
1766
+ ye as t,
1767
+ at as u,
1768
+ UA as v,
1769
+ $A as w,
1770
+ st as x
2043
1771
  };