@cedros/login-react 0.0.12 → 0.0.14
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.
- package/README.md +68 -0
- package/dist/AdminDepositList-CyT4VBH8.js +311 -0
- package/dist/AdminDepositList-CyT4VBH8.js.map +1 -0
- package/dist/AdminDepositList-b2AXtLg0.cjs +1 -0
- package/dist/AdminDepositList-b2AXtLg0.cjs.map +1 -0
- package/dist/AdminWithdrawalHistory-Cud-yuWy.js +916 -0
- package/dist/AdminWithdrawalHistory-Cud-yuWy.js.map +1 -0
- package/dist/AdminWithdrawalHistory-DL9zbu2b.cjs +1 -0
- package/dist/AdminWithdrawalHistory-DL9zbu2b.cjs.map +1 -0
- package/dist/AuthenticationSettings-D739nNul.cjs +1 -0
- package/dist/AuthenticationSettings-D739nNul.cjs.map +1 -0
- package/dist/AuthenticationSettings-DtLoxQ2z.cjs +1 -0
- package/dist/AuthenticationSettings-DtLoxQ2z.cjs.map +1 -0
- package/dist/AuthenticationSettings-Dx3JCI3m.js +9 -0
- package/dist/AuthenticationSettings-Dx3JCI3m.js.map +1 -0
- package/dist/AuthenticationSettings-vowmQPXz.js +525 -0
- package/dist/AuthenticationSettings-vowmQPXz.js.map +1 -0
- package/dist/AutosaveStatus-CCrZszKA.cjs +1 -0
- package/dist/AutosaveStatus-CCrZszKA.cjs.map +1 -0
- package/dist/AutosaveStatus-Ciyt350A.js +1497 -0
- package/dist/AutosaveStatus-Ciyt350A.js.map +1 -0
- package/dist/CreditSystemSettings-BQ3h4CyM.js +210 -0
- package/dist/CreditSystemSettings-BQ3h4CyM.js.map +1 -0
- package/dist/CreditSystemSettings-C6dUsu72.cjs +1 -0
- package/dist/CreditSystemSettings-C6dUsu72.cjs.map +1 -0
- package/dist/CreditSystemSettings-CBot8EPW.cjs +1 -0
- package/dist/CreditSystemSettings-CBot8EPW.cjs.map +1 -0
- package/dist/CreditSystemSettings-bVuNLsqp.js +9 -0
- package/dist/CreditSystemSettings-bVuNLsqp.js.map +1 -0
- package/dist/DepositsSection-BkKUS4vk.cjs +1 -0
- package/dist/DepositsSection-BkKUS4vk.cjs.map +1 -0
- package/dist/{DepositsSection-0Hqr0yDm.js → DepositsSection-DD9MKUFt.js} +20 -14
- package/dist/DepositsSection-DD9MKUFt.js.map +1 -0
- package/dist/EmailRegisterForm-Pvm3I8GP.cjs +1 -0
- package/dist/EmailRegisterForm-Pvm3I8GP.cjs.map +1 -0
- package/dist/EmailRegisterForm-nI0BOIxR.js +927 -0
- package/dist/EmailRegisterForm-nI0BOIxR.js.map +1 -0
- package/dist/EmailSettings-B9qwPSiM.cjs +1 -0
- package/dist/EmailSettings-B9qwPSiM.cjs.map +1 -0
- package/dist/EmailSettings-CCA8dNCi.js +17 -0
- package/dist/EmailSettings-CCA8dNCi.js.map +1 -0
- package/dist/EmailSettings-RbgAq9FB.cjs +1 -0
- package/dist/EmailSettings-RbgAq9FB.cjs.map +1 -0
- package/dist/{AuthenticationSettings-BSoIQ58T.js → EmailSettings-mxlKNcPl.js} +3 -3
- package/dist/EmailSettings-mxlKNcPl.js.map +1 -0
- package/dist/EmbeddedWalletSettings-B4h-8rxB.cjs +1 -0
- package/dist/EmbeddedWalletSettings-B4h-8rxB.cjs.map +1 -0
- package/dist/EmbeddedWalletSettings-BInZvFZf.js +79 -0
- package/dist/EmbeddedWalletSettings-BInZvFZf.js.map +1 -0
- package/dist/{EmbeddedWalletSettings-iVf_3pn3.js → EmbeddedWalletSettings-CXlZFFDw.js} +3 -3
- package/dist/EmbeddedWalletSettings-CXlZFFDw.js.map +1 -0
- package/dist/EmbeddedWalletSettings-D5JXae1L.cjs +1 -0
- package/dist/EmbeddedWalletSettings-D5JXae1L.cjs.map +1 -0
- package/dist/ErrorMessage-CHbYbVi2.cjs +1 -0
- package/dist/ErrorMessage-CHbYbVi2.cjs.map +1 -0
- package/dist/ErrorMessage-CcEK0pYO.js +64 -0
- package/dist/ErrorMessage-CcEK0pYO.js.map +1 -0
- package/dist/{GoogleLoginButton-BzHr545L.js → GoogleLoginButton-CXwp4LsQ.js} +4 -3
- package/dist/{GoogleLoginButton-BzHr545L.js.map → GoogleLoginButton-CXwp4LsQ.js.map} +1 -1
- package/dist/GoogleLoginButton-zS_69-KV.cjs +1 -0
- package/dist/{GoogleLoginButton-DoAdOqb3.cjs.map → GoogleLoginButton-zS_69-KV.cjs.map} +1 -1
- package/dist/LoadingSpinner-6vml-zwr.js +79 -0
- package/dist/LoadingSpinner-6vml-zwr.js.map +1 -0
- package/dist/LoadingSpinner-d6sSxgQN.cjs +1 -0
- package/dist/LoadingSpinner-d6sSxgQN.cjs.map +1 -0
- package/dist/PermissionsSection-BPbE-hNx.cjs +1 -0
- package/dist/PermissionsSection-BPbE-hNx.cjs.map +1 -0
- package/dist/PermissionsSection-CighC1p6.js +1026 -0
- package/dist/PermissionsSection-CighC1p6.js.map +1 -0
- package/dist/ServerSettings-BE8fsE5k.js +84 -0
- package/dist/ServerSettings-BE8fsE5k.js.map +1 -0
- package/dist/ServerSettings-CYTlQ2xy.cjs +1 -0
- package/dist/ServerSettings-CYTlQ2xy.cjs.map +1 -0
- package/dist/ServerSettings-DFs9jQ3f.cjs +1 -0
- package/dist/ServerSettings-DFs9jQ3f.cjs.map +1 -0
- package/dist/{ServerSettings-C_osdbiX.js → ServerSettings-pSmWDC1d.js} +3 -3
- package/dist/ServerSettings-pSmWDC1d.js.map +1 -0
- package/dist/SettingsPageLayout--GZ_iHLc.js +50 -0
- package/dist/SettingsPageLayout--GZ_iHLc.js.map +1 -0
- package/dist/SettingsPageLayout-j5lMjEID.cjs +1 -0
- package/dist/SettingsPageLayout-j5lMjEID.cjs.map +1 -0
- package/dist/SolanaLoginButton-BjOxpE1C.cjs +1 -0
- package/dist/{SolanaLoginButton-CPzms0kf.cjs.map → SolanaLoginButton-BjOxpE1C.cjs.map} +1 -1
- package/dist/{SolanaLoginButton-C-CfZxAZ.js → SolanaLoginButton-P22QjBaO.js} +5 -4
- package/dist/{SolanaLoginButton-C-CfZxAZ.js.map → SolanaLoginButton-P22QjBaO.js.map} +1 -1
- package/dist/StatsBar-BX-hHtTq.js +66 -0
- package/dist/StatsBar-BX-hHtTq.js.map +1 -0
- package/dist/StatsBar-DTUZCwDD.cjs +1 -0
- package/dist/StatsBar-DTUZCwDD.cjs.map +1 -0
- package/dist/{TeamSection-Bjt72upx.js → TeamSection-BIECkp7g.js} +27 -26
- package/dist/TeamSection-BIECkp7g.js.map +1 -0
- package/dist/TeamSection-BOH9pv_E.cjs +1 -0
- package/dist/TeamSection-BOH9pv_E.cjs.map +1 -0
- package/dist/UsersSection-e6q7FHzx.cjs +1 -0
- package/dist/UsersSection-e6q7FHzx.cjs.map +1 -0
- package/dist/UsersSection-t-zm0jZW.js +33 -0
- package/dist/UsersSection-t-zm0jZW.js.map +1 -0
- package/dist/{WebhookSettings-IyhyTFes.js → WebhookSettings-Bb70MbFj.js} +4 -4
- package/dist/WebhookSettings-Bb70MbFj.js.map +1 -0
- package/dist/WebhookSettings-C-gvNAW1.cjs +1 -0
- package/dist/WebhookSettings-C-gvNAW1.cjs.map +1 -0
- package/dist/WebhookSettings-CGyDKjrm.cjs +1 -0
- package/dist/WebhookSettings-CGyDKjrm.cjs.map +1 -0
- package/dist/WebhookSettings-kIstSjZi.js +17 -0
- package/dist/WebhookSettings-kIstSjZi.js.map +1 -0
- package/dist/WithdrawalsSection-sljIyeaz.cjs +1 -0
- package/dist/WithdrawalsSection-sljIyeaz.cjs.map +1 -0
- package/dist/WithdrawalsSection-yRDTVFsb.js +27 -0
- package/dist/WithdrawalsSection-yRDTVFsb.js.map +1 -0
- package/dist/admin-only.cjs +1 -0
- package/dist/admin-only.cjs.map +1 -0
- package/dist/{admin/types.d.ts → admin-only.d.ts} +228 -167
- package/dist/admin-only.js +8 -0
- package/dist/admin-only.js.map +1 -0
- package/dist/assets/argon2Worker-Bi5TuQvD.js.map +1 -1
- package/dist/email-only.cjs +1 -1
- package/dist/email-only.d.ts +645 -16
- package/dist/email-only.js +16 -13
- package/dist/email-only.js.map +1 -1
- package/dist/google-only.cjs +1 -1
- package/dist/google-only.d.ts +554 -13
- package/dist/google-only.js +11 -8
- package/dist/google-only.js.map +1 -1
- package/dist/index.cjs +2061 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5030 -144
- package/dist/index.js +13482 -117
- package/dist/index.js.map +1 -1
- package/dist/login-react.css +1 -1
- package/dist/plugin-8_dpq7tC.cjs +1 -0
- package/dist/plugin-8_dpq7tC.cjs.map +1 -0
- package/dist/plugin-D1NdppqC.js +596 -0
- package/dist/plugin-D1NdppqC.js.map +1 -0
- package/dist/sanitization-Bo_tn-L2.cjs +1 -0
- package/dist/sanitization-Bo_tn-L2.cjs.map +1 -0
- package/dist/sanitization-CQ-H1MSg.js +39 -0
- package/dist/sanitization-CQ-H1MSg.js.map +1 -0
- package/dist/shamir-4DyQMJCk.cjs +1 -0
- package/dist/shamir-4DyQMJCk.cjs.map +1 -0
- package/dist/{solanaKeypair-BlXol3nh.js → shamir-L-s-Tp1Z.js} +765 -757
- package/dist/shamir-L-s-Tp1Z.js.map +1 -0
- package/dist/silentWalletEnroll-BgTb4H5I.cjs +1 -0
- package/dist/silentWalletEnroll-BgTb4H5I.cjs.map +1 -0
- package/dist/silentWalletEnroll-DWt6Pr3B.js +41 -0
- package/dist/silentWalletEnroll-DWt6Pr3B.js.map +1 -0
- package/dist/solana-only.cjs +1 -1
- package/dist/solana-only.d.ts +605 -13
- package/dist/solana-only.js +12 -9
- package/dist/solana-only.js.map +1 -1
- package/dist/style.d.ts +1 -0
- package/dist/useAdminDeposits-BTSyeAfg.js +151 -0
- package/dist/useAdminDeposits-BTSyeAfg.js.map +1 -0
- package/dist/useAdminDeposits-BkkCwHWp.cjs +1 -0
- package/dist/useAdminDeposits-BkkCwHWp.cjs.map +1 -0
- package/dist/{ErrorMessage-DU2VBb85.js → useAuth-C3dpk0po.js} +1005 -1241
- package/dist/useAuth-C3dpk0po.js.map +1 -0
- package/dist/useAuth-D3Pk_H3z.cjs +1 -0
- package/dist/useAuth-D3Pk_H3z.cjs.map +1 -0
- package/dist/useCedrosLogin-C9MrcZvh.cjs +1 -0
- package/dist/useCedrosLogin-C9MrcZvh.cjs.map +1 -0
- package/dist/useCedrosLogin-_94MmGGq.js +216 -0
- package/dist/useCedrosLogin-_94MmGGq.js.map +1 -0
- package/dist/useOrgs-C3pzMA9h.js +215 -0
- package/dist/useOrgs-C3pzMA9h.js.map +1 -0
- package/dist/useOrgs-DDVRCaVi.cjs +1 -0
- package/dist/useOrgs-DDVRCaVi.cjs.map +1 -0
- package/dist/useSystemSettings-DBlAMjFi.js +97 -0
- package/dist/useSystemSettings-DBlAMjFi.js.map +1 -0
- package/dist/useSystemSettings-DRrreszl.cjs +1 -0
- package/dist/useSystemSettings-DRrreszl.cjs.map +1 -0
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs +1 -0
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs.map +1 -0
- package/dist/useUsersStatsSummary-NjEFvWuz.js +1246 -0
- package/dist/useUsersStatsSummary-NjEFvWuz.js.map +1 -0
- package/dist/{validation-BebL7hMF.js → validation-B8kMV3BL.js} +1 -1
- package/dist/{validation-BebL7hMF.js.map → validation-B8kMV3BL.js.map} +1 -1
- package/dist/{validation-BeXIfuHB.cjs → validation-BuGQrA-K.cjs} +1 -1
- package/dist/{validation-BeXIfuHB.cjs.map → validation-BuGQrA-K.cjs.map} +1 -1
- package/package.json +11 -1
- package/dist/AuthenticationSettings-BSoIQ58T.js.map +0 -1
- package/dist/AuthenticationSettings-CNmWEPFV.cjs +0 -1
- package/dist/AuthenticationSettings-CNmWEPFV.cjs.map +0 -1
- package/dist/CreditSystemSettings-BYxoFwaP.js +0 -9
- package/dist/CreditSystemSettings-BYxoFwaP.js.map +0 -1
- package/dist/CreditSystemSettings-D2fLorNx.cjs +0 -1
- package/dist/CreditSystemSettings-D2fLorNx.cjs.map +0 -1
- package/dist/DepositsSection-0Hqr0yDm.js.map +0 -1
- package/dist/DepositsSection-CGKCzM-H.cjs +0 -1
- package/dist/DepositsSection-CGKCzM-H.cjs.map +0 -1
- package/dist/EmailRegisterForm-C0PStlj5.js +0 -961
- package/dist/EmailRegisterForm-C0PStlj5.js.map +0 -1
- package/dist/EmailRegisterForm-DaPLGws2.cjs +0 -1
- package/dist/EmailRegisterForm-DaPLGws2.cjs.map +0 -1
- package/dist/EmailSettings-CiLDwzNb.cjs +0 -1
- package/dist/EmailSettings-CiLDwzNb.cjs.map +0 -1
- package/dist/EmailSettings-DTjpO65J.js +0 -9
- package/dist/EmailSettings-DTjpO65J.js.map +0 -1
- package/dist/EmbeddedWalletSettings-CX7sYiPy.cjs +0 -1
- package/dist/EmbeddedWalletSettings-CX7sYiPy.cjs.map +0 -1
- package/dist/EmbeddedWalletSettings-iVf_3pn3.js.map +0 -1
- package/dist/ErrorMessage-BXHiYibN.cjs +0 -1
- package/dist/ErrorMessage-BXHiYibN.cjs.map +0 -1
- package/dist/ErrorMessage-DU2VBb85.js.map +0 -1
- package/dist/GoogleLoginButton-DoAdOqb3.cjs +0 -1
- package/dist/ServerSettings-C_osdbiX.js.map +0 -1
- package/dist/ServerSettings-HqSb_VDj.cjs +0 -1
- package/dist/ServerSettings-HqSb_VDj.cjs.map +0 -1
- package/dist/SolanaLoginButton-CPzms0kf.cjs +0 -1
- package/dist/TeamSection-Bjt72upx.js.map +0 -1
- package/dist/TeamSection-DZeWHkLd.cjs +0 -1
- package/dist/TeamSection-DZeWHkLd.cjs.map +0 -1
- package/dist/UsersSection-DU86czWP.cjs +0 -1
- package/dist/UsersSection-DU86czWP.cjs.map +0 -1
- package/dist/UsersSection-hAcyfSZk.js +0 -81
- package/dist/UsersSection-hAcyfSZk.js.map +0 -1
- package/dist/WebhookSettings-Br9bakAL.cjs +0 -1
- package/dist/WebhookSettings-Br9bakAL.cjs.map +0 -1
- package/dist/WebhookSettings-IyhyTFes.js.map +0 -1
- package/dist/WithdrawalsSection-B1415d-G.js +0 -20
- package/dist/WithdrawalsSection-B1415d-G.js.map +0 -1
- package/dist/WithdrawalsSection-iZJBuZ7O.cjs +0 -1
- package/dist/WithdrawalsSection-iZJBuZ7O.cjs.map +0 -1
- package/dist/admin/AdminShell.d.ts +0 -38
- package/dist/admin/icons.d.ts +0 -2
- package/dist/admin/index.d.ts +0 -10
- package/dist/admin/plugin.d.ts +0 -3
- package/dist/admin/sections/AuthenticationSettings.d.ts +0 -3
- package/dist/admin/sections/CreditSystemSettings.d.ts +0 -3
- package/dist/admin/sections/DepositsSection.d.ts +0 -3
- package/dist/admin/sections/EmailSettings.d.ts +0 -3
- package/dist/admin/sections/EmbeddedWalletSettings.d.ts +0 -3
- package/dist/admin/sections/FeatureSettings.d.ts +0 -3
- package/dist/admin/sections/InvitesSection.d.ts +0 -3
- package/dist/admin/sections/MembersSection.d.ts +0 -3
- package/dist/admin/sections/ServerSettings.d.ts +0 -3
- package/dist/admin/sections/SettingsSections.d.ts +0 -7
- package/dist/admin/sections/TeamSection.d.ts +0 -3
- package/dist/admin/sections/UsersSection.d.ts +0 -3
- package/dist/admin/sections/WebhookSettings.d.ts +0 -3
- package/dist/admin/sections/WithdrawalsSection.d.ts +0 -3
- package/dist/components/LoginButton.d.ts +0 -23
- package/dist/components/LoginForm.d.ts +0 -9
- package/dist/components/LoginModal.d.ts +0 -9
- package/dist/components/admin/AdminUserDetail.d.ts +0 -23
- package/dist/components/admin/AdminUserList.d.ts +0 -21
- package/dist/components/admin/CedrosAdminDashboard.d.ts +0 -52
- package/dist/components/admin/PermissionsSection.d.ts +0 -7
- package/dist/components/admin/ProfileDropdown.d.ts +0 -34
- package/dist/components/admin/SetupWizard.d.ts +0 -30
- package/dist/components/admin/StatsBar.d.ts +0 -17
- package/dist/components/admin/SystemSettings.d.ts +0 -19
- package/dist/components/admin/settings/AuthenticationSettings.d.ts +0 -4
- package/dist/components/admin/settings/AutosaveStatus.d.ts +0 -6
- package/dist/components/admin/settings/CreditSystemSettings.d.ts +0 -6
- package/dist/components/admin/settings/EmailSettings.d.ts +0 -4
- package/dist/components/admin/settings/EmbeddedWalletSettings.d.ts +0 -4
- package/dist/components/admin/settings/FeatureSettings.d.ts +0 -4
- package/dist/components/admin/settings/MessagingSettings.d.ts +0 -4
- package/dist/components/admin/settings/SecuritySettings.d.ts +0 -4
- package/dist/components/admin/settings/ServerSettings.d.ts +0 -4
- package/dist/components/admin/settings/SettingsPageLayout.d.ts +0 -16
- package/dist/components/admin/settings/SsoProvidersSettings.d.ts +0 -4
- package/dist/components/admin/settings/WebhookSettings.d.ts +0 -4
- package/dist/components/admin/settings/index.d.ts +0 -31
- package/dist/components/admin/settings/settingsInputs.d.ts +0 -79
- package/dist/components/admin/settings/settingsMetadata.d.ts +0 -18
- package/dist/components/apple/AppleLoginButton.d.ts +0 -29
- package/dist/components/deposit/CreditBalance.d.ts +0 -19
- package/dist/components/deposit/DepositFlow.d.ts +0 -118
- package/dist/components/deposit/FeeConfigDisplay.d.ts +0 -15
- package/dist/components/deposit/History.d.ts +0 -21
- package/dist/components/deposit/TieredAmountSlider.d.ts +0 -19
- package/dist/components/deposit/TokenSelector.d.ts +0 -23
- package/dist/components/deposit/admin/AdminDepositList.d.ts +0 -21
- package/dist/components/deposit/admin/AdminDepositStats.d.ts +0 -15
- package/dist/components/deposit/admin/AdminPrivacyPeriodDeposits.d.ts +0 -19
- package/dist/components/deposit/admin/AdminWithdrawalHistory.d.ts +0 -19
- package/dist/components/deposit/admin/AdminWithdrawalQueue.d.ts +0 -23
- package/dist/components/deposit/admin/AdminWithdrawalStats.d.ts +0 -10
- package/dist/components/deposit/admin/FeatureDisabledMessage.d.ts +0 -15
- package/dist/components/deposit/admin/PrivacySystemStatus.d.ts +0 -15
- package/dist/components/deposit/admin/featureDisabled.d.ts +0 -14
- package/dist/components/deposit/admin/index.d.ts +0 -22
- package/dist/components/deposit/index.d.ts +0 -12
- package/dist/components/deposit/tierUtils.d.ts +0 -8
- package/dist/components/deposit/tokens.d.ts +0 -19
- package/dist/components/email/EmailLoginForm.d.ts +0 -11
- package/dist/components/email/EmailRegisterForm.d.ts +0 -14
- package/dist/components/email/ForgotPasswordForm.d.ts +0 -17
- package/dist/components/email/PasswordInput.d.ts +0 -14
- package/dist/components/email/ResetPasswordForm.d.ts +0 -22
- package/dist/components/google/GoogleLoginButton.d.ts +0 -12
- package/dist/components/invites/InviteForm.d.ts +0 -38
- package/dist/components/invites/InviteList.d.ts +0 -40
- package/dist/components/members/MemberList.d.ts +0 -47
- package/dist/components/org/CreateOrgForm.d.ts +0 -7
- package/dist/components/org/OrgAvatar.d.ts +0 -7
- package/dist/components/org/OrgListView.d.ts +0 -9
- package/dist/components/org/OrgSelector.d.ts +0 -52
- package/dist/components/org/OrgSwitcher.d.ts +0 -47
- package/dist/components/org/icons.d.ts +0 -8
- package/dist/components/profile/UserProfileSettings.d.ts +0 -35
- package/dist/components/profile/index.d.ts +0 -2
- package/dist/components/sessions/SessionList.d.ts +0 -33
- package/dist/components/shared/ErrorBoundary.d.ts +0 -38
- package/dist/components/shared/ErrorMessage.d.ts +0 -14
- package/dist/components/shared/LoadingSpinner.d.ts +0 -16
- package/dist/components/solana/SolanaLoginButton.d.ts +0 -49
- package/dist/components/templates/FullPageLayout.d.ts +0 -40
- package/dist/components/templates/SplitPageLayout.d.ts +0 -44
- package/dist/components/templates/index.d.ts +0 -4
- package/dist/components/totp/OtpInput.d.ts +0 -32
- package/dist/components/totp/QrCode.d.ts +0 -21
- package/dist/components/totp/TotpSettings.d.ts +0 -38
- package/dist/components/totp/TotpSetup.d.ts +0 -23
- package/dist/components/totp/TotpVerify.d.ts +0 -25
- package/dist/components/totp/index.d.ts +0 -10
- package/dist/components/wallet/CapabilityWarning.d.ts +0 -11
- package/dist/components/wallet/PasskeyPrompt.d.ts +0 -34
- package/dist/components/wallet/RecoveryPhraseDisplay.d.ts +0 -18
- package/dist/components/wallet/RecoveryPhraseInput.d.ts +0 -21
- package/dist/components/wallet/WalletAddressRow.d.ts +0 -10
- package/dist/components/wallet/WalletEnrollment.d.ts +0 -15
- package/dist/components/wallet/WalletManager.d.ts +0 -9
- package/dist/components/wallet/WalletRecovery.d.ts +0 -19
- package/dist/components/wallet/WalletStatus.d.ts +0 -28
- package/dist/components/wallet/WalletUnlock.d.ts +0 -23
- package/dist/components/wallet/index.d.ts +0 -23
- package/dist/components/webauthn/PasskeyLoginButton.d.ts +0 -8
- package/dist/context/CedrosLoginContext.d.ts +0 -24
- package/dist/context/CedrosLoginProvider.d.ts +0 -17
- package/dist/context/EmbeddedWalletExposure.d.ts +0 -19
- package/dist/context/useCedrosLogin.d.ts +0 -12
- package/dist/crypto/aesGcm.d.ts +0 -89
- package/dist/crypto/argon2.d.ts +0 -65
- package/dist/crypto/argon2Worker.d.ts +0 -1
- package/dist/crypto/argon2WorkerClient.d.ts +0 -28
- package/dist/crypto/bip39.d.ts +0 -106
- package/dist/crypto/capabilities.d.ts +0 -35
- package/dist/crypto/entropy.d.ts +0 -56
- package/dist/crypto/hkdf.d.ts +0 -38
- package/dist/crypto/index.d.ts +0 -30
- package/dist/crypto/secureWipe.d.ts +0 -71
- package/dist/crypto/shamir.d.ts +0 -52
- package/dist/crypto/solanaKeypair.d.ts +0 -63
- package/dist/crypto/types.d.ts +0 -134
- package/dist/crypto/webauthnPrf.d.ts +0 -108
- package/dist/hooks/useAdminDeposits.d.ts +0 -10
- package/dist/hooks/useAdminUsers.d.ts +0 -28
- package/dist/hooks/useAppleAuth.d.ts +0 -52
- package/dist/hooks/useAuth.d.ts +0 -34
- package/dist/hooks/useAuthSession.d.ts +0 -19
- package/dist/hooks/useAuthorize.d.ts +0 -62
- package/dist/hooks/useCredits.d.ts +0 -11
- package/dist/hooks/useDashboardPermissions.d.ts +0 -45
- package/dist/hooks/useDeposit.d.ts +0 -16
- package/dist/hooks/useEmailAuth.d.ts +0 -60
- package/dist/hooks/useGoogleAuth.d.ts +0 -67
- package/dist/hooks/useInstantLink.d.ts +0 -42
- package/dist/hooks/useInvites.d.ts +0 -57
- package/dist/hooks/useMembers.d.ts +0 -52
- package/dist/hooks/useOrgs.d.ts +0 -49
- package/dist/hooks/usePasswordReset.d.ts +0 -32
- package/dist/hooks/usePendingRecovery.d.ts +0 -34
- package/dist/hooks/useProfile.d.ts +0 -35
- package/dist/hooks/useRateLimiter.d.ts +0 -58
- package/dist/hooks/useServerFeatures.d.ts +0 -55
- package/dist/hooks/useSessions.d.ts +0 -45
- package/dist/hooks/useSettingsAutosave.d.ts +0 -29
- package/dist/hooks/useSetup.d.ts +0 -25
- package/dist/hooks/useSolanaAuth.d.ts +0 -30
- package/dist/hooks/useSsoProviders.d.ts +0 -52
- package/dist/hooks/useSystemSettings.d.ts +0 -47
- package/dist/hooks/useThemeManager.d.ts +0 -11
- package/dist/hooks/useTotp.d.ts +0 -52
- package/dist/hooks/useTotpVerify.d.ts +0 -38
- package/dist/hooks/useTransactionSigning.d.ts +0 -45
- package/dist/hooks/useWallet.d.ts +0 -10
- package/dist/hooks/useWalletDiscovery.d.ts +0 -24
- package/dist/hooks/useWalletEnrollment.d.ts +0 -9
- package/dist/hooks/useWalletMaterial.d.ts +0 -10
- package/dist/hooks/useWalletRecovery.d.ts +0 -9
- package/dist/hooks/useWalletSigning.d.ts +0 -31
- package/dist/hooks/useWebAuthn.d.ts +0 -25
- package/dist/i18n/I18nProvider.d.ts +0 -16
- package/dist/i18n/context.d.ts +0 -6
- package/dist/i18n/index.d.ts +0 -5
- package/dist/i18n/translations.d.ts +0 -66
- package/dist/i18n/useI18n.d.ts +0 -9
- package/dist/index-ZS9AwAal.cjs +0 -2061
- package/dist/index-ZS9AwAal.cjs.map +0 -1
- package/dist/index-dgg5tlO7.js +0 -19650
- package/dist/index-dgg5tlO7.js.map +0 -1
- package/dist/silentWalletEnroll-C3JRAD9_.js +0 -42
- package/dist/silentWalletEnroll-C3JRAD9_.js.map +0 -1
- package/dist/silentWalletEnroll-DRYQAQfg.cjs +0 -1
- package/dist/silentWalletEnroll-DRYQAQfg.cjs.map +0 -1
- package/dist/solanaKeypair-BlXol3nh.js.map +0 -1
- package/dist/solanaKeypair-C-lIR1JY.cjs +0 -1
- package/dist/solanaKeypair-C-lIR1JY.cjs.map +0 -1
- package/dist/types/adminUser.d.ts +0 -168
- package/dist/types/auth.d.ts +0 -122
- package/dist/types/config.d.ts +0 -266
- package/dist/types/deposit.d.ts +0 -490
- package/dist/types/index.d.ts +0 -13
- package/dist/types/invite.d.ts +0 -71
- package/dist/types/member.d.ts +0 -45
- package/dist/types/org.d.ts +0 -133
- package/dist/types/profile.d.ts +0 -56
- package/dist/types/session.d.ts +0 -28
- package/dist/types/setup.d.ts +0 -47
- package/dist/types/systemSettings.d.ts +0 -85
- package/dist/types/totp.d.ts +0 -52
- package/dist/types/wallet.d.ts +0 -309
- package/dist/utils/adminUserApi.d.ts +0 -60
- package/dist/utils/apiClient.d.ts +0 -78
- package/dist/utils/cryptoShim.d.ts +0 -17
- package/dist/utils/csrf.d.ts +0 -1
- package/dist/utils/deviceDetection.d.ts +0 -17
- package/dist/utils/embeddedWallet.d.ts +0 -75
- package/dist/utils/inviteApi.d.ts +0 -31
- package/dist/utils/memberApi.d.ts +0 -23
- package/dist/utils/orgApi.d.ts +0 -36
- package/dist/utils/profileApi.d.ts +0 -26
- package/dist/utils/sanitization.d.ts +0 -66
- package/dist/utils/sessionApi.d.ts +0 -16
- package/dist/utils/setupApi.d.ts +0 -21
- package/dist/utils/silentWalletEnroll.d.ts +0 -41
- package/dist/utils/systemSettingsApi.d.ts +0 -18
- package/dist/utils/tabSync.d.ts +0 -46
- package/dist/utils/tokenManager.d.ts +0 -107
- package/dist/utils/unlockCredential.d.ts +0 -5
- package/dist/utils/validation.d.ts +0 -48
- package/dist/utils/walletDetection.d.ts +0 -23
- package/dist/utils/webauthnJson.d.ts +0 -21
|
@@ -1,28 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { jsx as ne, jsxs as Ke } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as N, useState as G, useRef as P, useCallback as d, useMemo as V } from "react";
|
|
3
|
+
import { A as He, a as Je, C as Ve } from "./LoadingSpinner-6vml-zwr.js";
|
|
4
|
+
import { A as Ee, g as oe, a as pe, h as Y, u as ye } from "./useCedrosLogin-_94MmGGq.js";
|
|
5
|
+
let Z = 0;
|
|
6
|
+
function Me({ theme: e, themeOverrides: A }) {
|
|
7
|
+
N(() => {
|
|
6
8
|
if (typeof document > "u" || typeof window > "u")
|
|
7
9
|
return;
|
|
8
|
-
const
|
|
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
|
-
|
|
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
|
|
13
|
-
if (
|
|
14
|
-
const
|
|
15
|
-
n.set(
|
|
16
|
+
return A && Object.entries(A).forEach(([o, a]) => {
|
|
17
|
+
if (a) {
|
|
18
|
+
const l = t.style.getPropertyValue(o);
|
|
19
|
+
n.set(o, l), t.style.setProperty(o, a);
|
|
16
20
|
}
|
|
17
21
|
}), () => {
|
|
18
|
-
r &&
|
|
19
|
-
|
|
22
|
+
r && (Z--, Z === 0 && t.classList.remove("cedros-dark")), n.forEach((o, a) => {
|
|
23
|
+
o ? t.style.setProperty(a, o) : t.style.removeProperty(a);
|
|
20
24
|
});
|
|
21
25
|
};
|
|
22
|
-
}, [e,
|
|
26
|
+
}, [e, A]);
|
|
27
|
+
}
|
|
28
|
+
const Pe = {
|
|
29
|
+
email: !0,
|
|
30
|
+
google: !0,
|
|
31
|
+
apple: !0,
|
|
32
|
+
solana: !0,
|
|
33
|
+
webauthn: !0,
|
|
34
|
+
instantLink: !0
|
|
35
|
+
};
|
|
36
|
+
function Ne(e, A, t) {
|
|
37
|
+
const [i, r] = G(null), [n, o] = G(A), a = P(!1);
|
|
38
|
+
return N(() => {
|
|
39
|
+
if (!A || a.current) return;
|
|
40
|
+
a.current = !0, new Ee({
|
|
41
|
+
baseUrl: e,
|
|
42
|
+
timeoutMs: t ?? 5e3,
|
|
43
|
+
retryAttempts: 1
|
|
44
|
+
}).get("/features", { credentials: "omit" }).then((s) => {
|
|
45
|
+
r({
|
|
46
|
+
email: s.email,
|
|
47
|
+
google: s.google,
|
|
48
|
+
apple: s.apple,
|
|
49
|
+
solana: s.solana,
|
|
50
|
+
webauthn: s.webauthn,
|
|
51
|
+
instantLink: s.instantLink
|
|
52
|
+
});
|
|
53
|
+
}).catch(() => {
|
|
54
|
+
r(Pe);
|
|
55
|
+
}).finally(() => {
|
|
56
|
+
o(!1);
|
|
57
|
+
});
|
|
58
|
+
}, [A, e, t]), { features: i, isLoading: n };
|
|
23
59
|
}
|
|
24
|
-
const
|
|
25
|
-
class
|
|
60
|
+
const Ye = "cedros_tokens", xe = 6e4;
|
|
61
|
+
class Oe {
|
|
26
62
|
storage;
|
|
27
63
|
requestedStorage;
|
|
28
64
|
storageKey;
|
|
@@ -34,9 +70,11 @@ class He {
|
|
|
34
70
|
onRefreshError = null;
|
|
35
71
|
// P-02: Track destruction to prevent timer callbacks from executing after cleanup
|
|
36
72
|
isDestroyed = !1;
|
|
73
|
+
// S-13: Prevent onSessionExpired from firing multiple times
|
|
74
|
+
sessionExpiredFired = !1;
|
|
37
75
|
allowWebStorage;
|
|
38
|
-
constructor(
|
|
39
|
-
this.requestedStorage =
|
|
76
|
+
constructor(A = "cookie", t = Ye, i = {}) {
|
|
77
|
+
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
78
|
}
|
|
41
79
|
/**
|
|
42
80
|
* S-18/UI-XSS: Warn about localStorage XSS vulnerability in all environments.
|
|
@@ -45,36 +83,36 @@ class He {
|
|
|
45
83
|
*/
|
|
46
84
|
warnIfLocalStorage() {
|
|
47
85
|
if ((this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && typeof console < "u") {
|
|
48
|
-
const
|
|
86
|
+
const A = this.allowWebStorage ? "" : " (web storage disabled by default; set allowWebStorage=true to enable)";
|
|
49
87
|
console.warn(
|
|
50
|
-
"[cedros-login] SECURITY: Using web storage for token storage. Tokens are vulnerable to XSS attacks." +
|
|
88
|
+
"[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
89
|
);
|
|
52
90
|
}
|
|
53
91
|
}
|
|
54
92
|
/**
|
|
55
93
|
* Set the callback for when tokens need to be refreshed
|
|
56
94
|
*/
|
|
57
|
-
setRefreshCallback(
|
|
58
|
-
this.onRefreshNeeded =
|
|
95
|
+
setRefreshCallback(A) {
|
|
96
|
+
this.onRefreshNeeded = A, this.scheduleRefresh();
|
|
59
97
|
}
|
|
60
98
|
/**
|
|
61
99
|
* Set the callback for when session expires
|
|
62
100
|
*/
|
|
63
|
-
setSessionExpiredCallback(
|
|
64
|
-
this.onSessionExpired =
|
|
101
|
+
setSessionExpiredCallback(A) {
|
|
102
|
+
this.onSessionExpired = A;
|
|
65
103
|
}
|
|
66
104
|
/**
|
|
67
105
|
* Set the callback for when token refresh fails
|
|
68
106
|
* This allows the UI to show an error message to the user
|
|
69
107
|
*/
|
|
70
|
-
setRefreshErrorCallback(
|
|
71
|
-
this.onRefreshError =
|
|
108
|
+
setRefreshErrorCallback(A) {
|
|
109
|
+
this.onRefreshError = A;
|
|
72
110
|
}
|
|
73
111
|
/**
|
|
74
112
|
* Store tokens and schedule auto-refresh
|
|
75
113
|
*/
|
|
76
|
-
setTokens(
|
|
77
|
-
this.tokens =
|
|
114
|
+
setTokens(A) {
|
|
115
|
+
this.tokens = A, this.expiresAt = Date.now() + A.expiresIn * 1e3, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();
|
|
78
116
|
}
|
|
79
117
|
/**
|
|
80
118
|
* Get the current access token
|
|
@@ -83,8 +121,8 @@ class He {
|
|
|
83
121
|
*/
|
|
84
122
|
getAccessToken() {
|
|
85
123
|
if (this.isDestroyed) return null;
|
|
86
|
-
const
|
|
87
|
-
return
|
|
124
|
+
const A = this.tokens?.accessToken;
|
|
125
|
+
return A ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : A : null;
|
|
88
126
|
}
|
|
89
127
|
/**
|
|
90
128
|
* Get the current refresh token
|
|
@@ -110,7 +148,7 @@ class He {
|
|
|
110
148
|
* P-02: Also sets isDestroyed flag to prevent timer callbacks from executing.
|
|
111
149
|
*/
|
|
112
150
|
destroy() {
|
|
113
|
-
this.isDestroyed = !0, this.cancelRefresh(), this.onRefreshNeeded = null, this.onSessionExpired = null, this.onRefreshError = null, this.tokens = null;
|
|
151
|
+
this.isDestroyed = !0, this.cancelRefresh(), this.clearStorage(), this.onRefreshNeeded = null, this.onSessionExpired = null, this.onRefreshError = null, this.tokens = null;
|
|
114
152
|
}
|
|
115
153
|
/**
|
|
116
154
|
* Get time until token expiry in ms
|
|
@@ -118,25 +156,32 @@ class He {
|
|
|
118
156
|
getTimeUntilExpiry() {
|
|
119
157
|
return this.tokens ? Math.max(0, this.expiresAt - Date.now()) : 0;
|
|
120
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* S-13: Fire onSessionExpired at most once per token lifecycle.
|
|
161
|
+
* Reset by setTokens() when new tokens are stored.
|
|
162
|
+
*/
|
|
163
|
+
fireSessionExpired() {
|
|
164
|
+
this.sessionExpiredFired || (this.sessionExpiredFired = !0, this.onSessionExpired?.());
|
|
165
|
+
}
|
|
121
166
|
scheduleRefresh() {
|
|
122
167
|
if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;
|
|
123
|
-
const
|
|
124
|
-
if (
|
|
168
|
+
const A = this.getTimeUntilExpiry(), t = Math.max(0, A - xe);
|
|
169
|
+
if (t <= 0) {
|
|
125
170
|
if (this.isDestroyed) return;
|
|
126
|
-
this.onRefreshNeeded().catch((
|
|
171
|
+
this.onRefreshNeeded().catch((i) => {
|
|
127
172
|
if (this.isDestroyed) return;
|
|
128
|
-
const
|
|
129
|
-
this.onRefreshError?.(
|
|
173
|
+
const r = i instanceof Error ? i : new Error("Token refresh failed");
|
|
174
|
+
this.onRefreshError?.(r), this.clear(), this.fireSessionExpired();
|
|
130
175
|
});
|
|
131
176
|
return;
|
|
132
177
|
}
|
|
133
178
|
this.refreshTimer = setTimeout(() => {
|
|
134
|
-
this.isDestroyed || this.onRefreshNeeded?.().catch((
|
|
179
|
+
this.isDestroyed || this.onRefreshNeeded?.().catch((i) => {
|
|
135
180
|
if (this.isDestroyed) return;
|
|
136
|
-
const
|
|
137
|
-
this.onRefreshError?.(
|
|
181
|
+
const r = i instanceof Error ? i : new Error("Token refresh failed");
|
|
182
|
+
this.onRefreshError?.(r), this.clear(), this.fireSessionExpired();
|
|
138
183
|
});
|
|
139
|
-
},
|
|
184
|
+
}, t);
|
|
140
185
|
}
|
|
141
186
|
cancelRefresh() {
|
|
142
187
|
this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null);
|
|
@@ -145,17 +190,17 @@ class He {
|
|
|
145
190
|
if (this.storage !== "memory" && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
|
|
146
191
|
try {
|
|
147
192
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
const
|
|
151
|
-
this.isValidStoredTokenData(
|
|
193
|
+
const A = this.storage === "localStorage" ? localStorage : sessionStorage, t = A.getItem(this.storageKey);
|
|
194
|
+
if (t) {
|
|
195
|
+
const i = JSON.parse(t);
|
|
196
|
+
this.isValidStoredTokenData(i) ? i.expiresAt > Date.now() ? (this.tokens = i.tokens, this.expiresAt = i.expiresAt) : A.removeItem(this.storageKey) : A.removeItem(this.storageKey);
|
|
152
197
|
}
|
|
153
198
|
}
|
|
154
199
|
} catch {
|
|
155
200
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
156
|
-
const
|
|
201
|
+
const A = this.storage === "localStorage" ? localStorage : sessionStorage;
|
|
157
202
|
try {
|
|
158
|
-
|
|
203
|
+
A.removeItem(this.storageKey);
|
|
159
204
|
} catch {
|
|
160
205
|
}
|
|
161
206
|
}
|
|
@@ -164,22 +209,22 @@ class He {
|
|
|
164
209
|
/**
|
|
165
210
|
* Validate that parsed data matches expected StoredTokenData structure
|
|
166
211
|
*/
|
|
167
|
-
isValidStoredTokenData(
|
|
168
|
-
if (typeof
|
|
169
|
-
const
|
|
170
|
-
if (typeof
|
|
171
|
-
const
|
|
172
|
-
return !(typeof
|
|
212
|
+
isValidStoredTokenData(A) {
|
|
213
|
+
if (typeof A != "object" || A === null) return !1;
|
|
214
|
+
const t = A;
|
|
215
|
+
if (typeof t.expiresAt != "number" || typeof t.tokens != "object" || t.tokens === null) return !1;
|
|
216
|
+
const i = t.tokens;
|
|
217
|
+
return !(typeof i.accessToken != "string" || typeof i.refreshToken != "string" || typeof i.expiresIn != "number");
|
|
173
218
|
}
|
|
174
219
|
saveToStorage() {
|
|
175
220
|
if (!(this.storage === "memory" || !this.tokens) && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
|
|
176
221
|
try {
|
|
177
222
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
178
|
-
const
|
|
223
|
+
const A = this.storage === "localStorage" ? localStorage : sessionStorage, t = {
|
|
179
224
|
tokens: this.tokens,
|
|
180
225
|
expiresAt: this.expiresAt
|
|
181
226
|
};
|
|
182
|
-
|
|
227
|
+
A.setItem(this.storageKey, JSON.stringify(t));
|
|
183
228
|
}
|
|
184
229
|
} catch {
|
|
185
230
|
}
|
|
@@ -192,31 +237,40 @@ class He {
|
|
|
192
237
|
}
|
|
193
238
|
}
|
|
194
239
|
}
|
|
195
|
-
const
|
|
196
|
-
class
|
|
240
|
+
const ve = "cedros_auth_sync";
|
|
241
|
+
class Te {
|
|
197
242
|
channel = null;
|
|
198
243
|
callback = null;
|
|
199
244
|
boundHandler = null;
|
|
200
245
|
constructor() {
|
|
201
|
-
typeof window < "u" && "BroadcastChannel" in window && (this.channel = new BroadcastChannel(
|
|
246
|
+
typeof window < "u" && "BroadcastChannel" in window && (this.channel = new BroadcastChannel(ve), this.boundHandler = this.handleMessage.bind(this), this.channel.addEventListener("message", this.boundHandler));
|
|
202
247
|
}
|
|
203
248
|
/**
|
|
204
|
-
* Handle incoming sync messages
|
|
249
|
+
* Handle incoming sync messages.
|
|
250
|
+
* S-15: Validate message shape to prevent forged auth state from same-origin XSS.
|
|
205
251
|
*/
|
|
206
|
-
handleMessage(
|
|
207
|
-
|
|
252
|
+
handleMessage(A) {
|
|
253
|
+
const t = A.data;
|
|
254
|
+
if (!(!t || typeof t != "object" || typeof t.type != "string") && ["login", "logout", "refresh"].includes(t.type)) {
|
|
255
|
+
if (t.type === "login") {
|
|
256
|
+
const i = t;
|
|
257
|
+
if (typeof i.user != "object" || i.user === null || typeof i.user.id != "string")
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
this.callback?.(t);
|
|
261
|
+
}
|
|
208
262
|
}
|
|
209
263
|
/**
|
|
210
264
|
* Set the callback for sync events from other tabs
|
|
211
265
|
*/
|
|
212
|
-
setCallback(
|
|
213
|
-
this.callback =
|
|
266
|
+
setCallback(A) {
|
|
267
|
+
this.callback = A;
|
|
214
268
|
}
|
|
215
269
|
/**
|
|
216
270
|
* Broadcast login event to other tabs
|
|
217
271
|
*/
|
|
218
|
-
broadcastLogin(
|
|
219
|
-
this.channel?.postMessage({ type: "login", user:
|
|
272
|
+
broadcastLogin(A) {
|
|
273
|
+
this.channel?.postMessage({ type: "login", user: A });
|
|
220
274
|
}
|
|
221
275
|
/**
|
|
222
276
|
* Broadcast logout event to other tabs
|
|
@@ -238,448 +292,446 @@ class Me {
|
|
|
238
292
|
this.channel && (this.boundHandler && (this.channel.removeEventListener("message", this.boundHandler), this.boundHandler = null), this.channel.close(), this.channel = null), this.callback = null;
|
|
239
293
|
}
|
|
240
294
|
}
|
|
241
|
-
|
|
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) {
|
|
295
|
+
function q(e) {
|
|
265
296
|
if (typeof e != "object" || e === null) return !1;
|
|
266
|
-
const
|
|
267
|
-
if (typeof
|
|
268
|
-
const
|
|
269
|
-
return typeof
|
|
297
|
+
const A = e;
|
|
298
|
+
if (typeof A.user != "object" || A.user === null) return !1;
|
|
299
|
+
const t = A.user;
|
|
300
|
+
return typeof t.id == "string" && t.id.length > 0;
|
|
270
301
|
}
|
|
271
|
-
function
|
|
302
|
+
function Re(e) {
|
|
272
303
|
if (typeof e != "object" || e === null) return !1;
|
|
273
|
-
const
|
|
274
|
-
return typeof
|
|
304
|
+
const A = e;
|
|
305
|
+
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
306
|
}
|
|
276
|
-
function
|
|
307
|
+
function Le({
|
|
277
308
|
serverUrl: e,
|
|
278
|
-
session:
|
|
279
|
-
callbacks:
|
|
280
|
-
requestTimeoutMs:
|
|
309
|
+
session: A,
|
|
310
|
+
callbacks: t,
|
|
311
|
+
requestTimeoutMs: i
|
|
281
312
|
}) {
|
|
282
|
-
const [
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
313
|
+
const [r, n] = G(null), [o, a] = G("idle"), l = P(null), s = P(null), k = P(t), w = P(!0), B = P(null), b = P(() => Promise.resolve()), F = P(() => {
|
|
314
|
+
});
|
|
315
|
+
N(() => {
|
|
316
|
+
k.current = t;
|
|
317
|
+
}, [t]), N(() => (w.current = !0, () => {
|
|
318
|
+
w.current = !1;
|
|
287
319
|
}), []);
|
|
288
|
-
const Q =
|
|
289
|
-
|
|
290
|
-
}, []),
|
|
291
|
-
|
|
292
|
-
}, []),
|
|
320
|
+
const Q = d((c) => {
|
|
321
|
+
w.current && n(c);
|
|
322
|
+
}, []), f = d((c) => {
|
|
323
|
+
w.current && a(c);
|
|
324
|
+
}, []), u = V(
|
|
293
325
|
() => ({
|
|
294
|
-
storage:
|
|
295
|
-
autoRefresh:
|
|
296
|
-
syncTabs:
|
|
297
|
-
persistKey:
|
|
298
|
-
allowWebStorage:
|
|
326
|
+
storage: A?.storage ?? "cookie",
|
|
327
|
+
autoRefresh: A?.autoRefresh ?? !0,
|
|
328
|
+
syncTabs: A?.syncTabs ?? !0,
|
|
329
|
+
persistKey: A?.persistKey,
|
|
330
|
+
allowWebStorage: A?.allowWebStorage ?? !1
|
|
299
331
|
}),
|
|
300
332
|
[
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
333
|
+
A?.storage,
|
|
334
|
+
A?.autoRefresh,
|
|
335
|
+
A?.syncTabs,
|
|
336
|
+
A?.persistKey,
|
|
337
|
+
A?.allowWebStorage
|
|
306
338
|
]
|
|
307
339
|
);
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
340
|
+
N(() => {
|
|
341
|
+
const c = new Oe(u.storage, u.persistKey, {
|
|
342
|
+
allowWebStorage: u.allowWebStorage
|
|
343
|
+
});
|
|
344
|
+
return l.current = c, u.autoRefresh && c.setRefreshCallback(() => b.current()), c.setSessionExpiredCallback(() => F.current()), u.syncTabs && (s.current = new Te()), () => {
|
|
345
|
+
c.destroy(), l.current = null, s.current?.close();
|
|
346
|
+
};
|
|
347
|
+
}, [
|
|
348
|
+
u.storage,
|
|
349
|
+
u.syncTabs,
|
|
350
|
+
u.persistKey,
|
|
351
|
+
u.allowWebStorage,
|
|
352
|
+
u.autoRefresh
|
|
317
353
|
]);
|
|
318
|
-
const
|
|
319
|
-
if (
|
|
320
|
-
return
|
|
321
|
-
const
|
|
322
|
-
E && (
|
|
323
|
-
|
|
324
|
-
|
|
354
|
+
const m = d(async () => {
|
|
355
|
+
if (B.current)
|
|
356
|
+
return B.current;
|
|
357
|
+
const c = l.current?.getRefreshToken(), E = !!c, U = oe(), K = {};
|
|
358
|
+
E && (K["Content-Type"] = "application/json"), U && (K["X-CSRF-Token"] = U);
|
|
359
|
+
let D, J;
|
|
360
|
+
const v = new Promise((j, ie) => {
|
|
361
|
+
D = j, J = ie;
|
|
362
|
+
});
|
|
363
|
+
B.current = v, (async () => {
|
|
364
|
+
const j = new AbortController(), ie = i ?? 1e4, Ge = window.setTimeout(() => j.abort(), ie);
|
|
325
365
|
try {
|
|
326
|
-
const
|
|
366
|
+
const L = await fetch(`${e}/refresh`, {
|
|
327
367
|
method: "POST",
|
|
328
|
-
headers: Object.keys(
|
|
368
|
+
headers: Object.keys(K).length > 0 ? K : void 0,
|
|
329
369
|
credentials: "include",
|
|
330
|
-
body: E ? JSON.stringify({ refreshToken:
|
|
331
|
-
signal:
|
|
370
|
+
body: E ? JSON.stringify({ refreshToken: c }) : void 0,
|
|
371
|
+
signal: j.signal
|
|
332
372
|
});
|
|
333
|
-
if (!
|
|
373
|
+
if (!L.ok)
|
|
334
374
|
throw new Error("Token refresh failed");
|
|
335
|
-
const
|
|
336
|
-
if (
|
|
337
|
-
if (!
|
|
375
|
+
const re = await L.json();
|
|
376
|
+
if (re.tokens) {
|
|
377
|
+
if (!Re(re.tokens))
|
|
338
378
|
throw new Error("Invalid token response structure");
|
|
339
|
-
|
|
340
|
-
} else if (
|
|
379
|
+
l.current?.setTokens(re.tokens);
|
|
380
|
+
} else if (u.storage !== "cookie")
|
|
341
381
|
throw new Error("Token refresh failed");
|
|
342
|
-
|
|
382
|
+
s.current?.broadcastRefresh(), D();
|
|
383
|
+
} catch (L) {
|
|
384
|
+
throw J(L), L;
|
|
343
385
|
} finally {
|
|
344
|
-
window.clearTimeout(
|
|
386
|
+
window.clearTimeout(Ge);
|
|
345
387
|
}
|
|
346
|
-
})()
|
|
347
|
-
|
|
388
|
+
})().catch(() => {
|
|
389
|
+
});
|
|
348
390
|
try {
|
|
349
|
-
await
|
|
391
|
+
await v;
|
|
350
392
|
} finally {
|
|
351
|
-
|
|
393
|
+
B.current = null;
|
|
352
394
|
}
|
|
353
|
-
}, [e,
|
|
354
|
-
if (
|
|
355
|
-
const
|
|
356
|
-
if (
|
|
357
|
-
return { Authorization: `Bearer ${
|
|
358
|
-
}, [
|
|
359
|
-
|
|
360
|
-
}, [
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
395
|
+
}, [e, u.storage, i]), p = d(() => {
|
|
396
|
+
if (u.storage === "cookie") return;
|
|
397
|
+
const c = l.current?.getAccessToken();
|
|
398
|
+
if (c)
|
|
399
|
+
return { Authorization: `Bearer ${c}` };
|
|
400
|
+
}, [u.storage]), h = d(() => {
|
|
401
|
+
l.current?.clear(), Q(null), f("unauthenticated"), k.current?.onSessionExpired?.();
|
|
402
|
+
}, [f, Q]);
|
|
403
|
+
b.current = m, F.current = h;
|
|
404
|
+
const g = d(
|
|
405
|
+
(c) => {
|
|
406
|
+
const E = new AbortController(), U = i ?? 1e4, K = window.setTimeout(() => E.abort(), U), D = {}, J = p();
|
|
407
|
+
J && Object.assign(D, J);
|
|
408
|
+
const v = oe();
|
|
409
|
+
return v && (D["X-CSRF-Token"] = v), {
|
|
410
|
+
promise: fetch(c, {
|
|
411
|
+
credentials: "include",
|
|
412
|
+
headers: Object.keys(D).length > 0 ? D : void 0,
|
|
413
|
+
signal: E.signal
|
|
414
|
+
}),
|
|
415
|
+
cleanup: () => window.clearTimeout(K)
|
|
416
|
+
};
|
|
417
|
+
},
|
|
418
|
+
[p, i]
|
|
419
|
+
), I = d(async () => {
|
|
420
|
+
const c = g(`${e}/user`);
|
|
365
421
|
try {
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
const E = await s.json();
|
|
372
|
-
if (X(E)) {
|
|
373
|
-
Q(E.user), u("authenticated");
|
|
422
|
+
const E = await c.promise;
|
|
423
|
+
if (E.ok) {
|
|
424
|
+
const U = await E.json();
|
|
425
|
+
if (q(U)) {
|
|
426
|
+
Q(U.user), f("authenticated");
|
|
374
427
|
return;
|
|
375
428
|
}
|
|
376
429
|
}
|
|
377
|
-
if (
|
|
430
|
+
if (E.status === 401 && u.autoRefresh) {
|
|
378
431
|
try {
|
|
379
|
-
await
|
|
432
|
+
await m();
|
|
380
433
|
} catch {
|
|
381
|
-
|
|
434
|
+
h();
|
|
382
435
|
return;
|
|
383
436
|
}
|
|
384
|
-
const
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
437
|
+
const U = g(`${e}/user`);
|
|
438
|
+
try {
|
|
439
|
+
const K = await U.promise;
|
|
440
|
+
if (K.ok) {
|
|
441
|
+
const D = await K.json();
|
|
442
|
+
if (q(D)) {
|
|
443
|
+
Q(D.user), f("authenticated");
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
393
446
|
}
|
|
447
|
+
} finally {
|
|
448
|
+
U.cleanup();
|
|
394
449
|
}
|
|
395
450
|
}
|
|
396
|
-
Q(null),
|
|
451
|
+
Q(null), f("unauthenticated");
|
|
397
452
|
} catch {
|
|
453
|
+
Q(null), f("unauthenticated");
|
|
454
|
+
} finally {
|
|
455
|
+
c.cleanup();
|
|
398
456
|
}
|
|
399
457
|
}, [
|
|
400
458
|
e,
|
|
401
|
-
|
|
402
|
-
|
|
459
|
+
u.autoRefresh,
|
|
460
|
+
m,
|
|
403
461
|
g,
|
|
404
|
-
|
|
405
|
-
|
|
462
|
+
h,
|
|
463
|
+
f,
|
|
406
464
|
Q
|
|
407
465
|
]);
|
|
408
|
-
|
|
409
|
-
!
|
|
410
|
-
switch (
|
|
466
|
+
N(() => {
|
|
467
|
+
!s.current || !u.syncTabs || s.current.setCallback((c) => {
|
|
468
|
+
switch (c.type) {
|
|
411
469
|
case "login":
|
|
412
|
-
Q(
|
|
470
|
+
Q(c.user), f("authenticated");
|
|
413
471
|
break;
|
|
414
472
|
case "logout":
|
|
415
|
-
Q(null),
|
|
473
|
+
Q(null), f("unauthenticated"), l.current?.clear();
|
|
416
474
|
break;
|
|
417
475
|
case "refresh":
|
|
418
|
-
|
|
476
|
+
I();
|
|
419
477
|
break;
|
|
420
478
|
default:
|
|
421
|
-
console.warn("[Cedros Login] Unhandled tab sync event:",
|
|
479
|
+
console.warn("[Cedros Login] Unhandled tab sync event:", c);
|
|
422
480
|
}
|
|
423
481
|
});
|
|
424
|
-
}, [
|
|
425
|
-
const
|
|
482
|
+
}, [u.syncTabs, I, f, Q]), N(() => {
|
|
483
|
+
const c = new AbortController(), E = i ?? 1e4, U = window.setTimeout(() => c.abort(), E);
|
|
426
484
|
return (async () => {
|
|
427
|
-
|
|
485
|
+
f("loading");
|
|
428
486
|
try {
|
|
429
|
-
const
|
|
487
|
+
const D = await fetch(`${e}/user`, {
|
|
430
488
|
credentials: "include",
|
|
431
|
-
headers:
|
|
432
|
-
signal:
|
|
489
|
+
headers: p(),
|
|
490
|
+
signal: c.signal
|
|
433
491
|
});
|
|
434
|
-
if (
|
|
435
|
-
const
|
|
436
|
-
if (
|
|
437
|
-
Q(
|
|
492
|
+
if (D.ok) {
|
|
493
|
+
const J = await D.json();
|
|
494
|
+
if (q(J)) {
|
|
495
|
+
Q(J.user), f("authenticated");
|
|
438
496
|
return;
|
|
439
497
|
}
|
|
440
498
|
}
|
|
441
|
-
if (
|
|
499
|
+
if (D.status === 401 && u.autoRefresh) {
|
|
442
500
|
try {
|
|
443
|
-
await
|
|
501
|
+
await m();
|
|
444
502
|
} catch {
|
|
445
|
-
|
|
503
|
+
h();
|
|
446
504
|
return;
|
|
447
505
|
}
|
|
448
|
-
const
|
|
506
|
+
const J = await fetch(`${e}/user`, {
|
|
449
507
|
credentials: "include",
|
|
450
|
-
headers:
|
|
451
|
-
signal:
|
|
508
|
+
headers: p(),
|
|
509
|
+
signal: c.signal
|
|
452
510
|
});
|
|
453
|
-
if (
|
|
454
|
-
const
|
|
455
|
-
if (
|
|
456
|
-
Q(
|
|
511
|
+
if (J.ok) {
|
|
512
|
+
const v = await J.json();
|
|
513
|
+
if (q(v)) {
|
|
514
|
+
Q(v.user), f("authenticated");
|
|
457
515
|
return;
|
|
458
516
|
}
|
|
459
517
|
}
|
|
460
518
|
}
|
|
461
|
-
Q(null),
|
|
519
|
+
Q(null), f("unauthenticated");
|
|
462
520
|
} catch {
|
|
463
|
-
Q(null),
|
|
521
|
+
Q(null), f("unauthenticated");
|
|
464
522
|
}
|
|
465
523
|
})(), () => {
|
|
466
|
-
window.clearTimeout(
|
|
524
|
+
window.clearTimeout(U), c.abort();
|
|
467
525
|
};
|
|
468
526
|
}, [
|
|
469
527
|
e,
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
528
|
+
u.autoRefresh,
|
|
529
|
+
m,
|
|
530
|
+
p,
|
|
531
|
+
h,
|
|
532
|
+
f,
|
|
475
533
|
Q,
|
|
476
|
-
|
|
534
|
+
i
|
|
477
535
|
]);
|
|
478
|
-
const
|
|
479
|
-
(
|
|
480
|
-
Q(
|
|
536
|
+
const C = d(
|
|
537
|
+
(c, E) => {
|
|
538
|
+
Q(c), f("authenticated"), E && l.current?.setTokens(E), w.current && s.current?.broadcastLogin(c);
|
|
481
539
|
},
|
|
482
|
-
[Q,
|
|
483
|
-
),
|
|
484
|
-
const
|
|
540
|
+
[Q, f]
|
|
541
|
+
), S = d(async () => {
|
|
542
|
+
const c = oe(), E = new AbortController(), U = i ?? 1e4, K = window.setTimeout(() => E.abort(), U);
|
|
485
543
|
try {
|
|
486
544
|
await fetch(`${e}/logout`, {
|
|
487
545
|
method: "POST",
|
|
488
546
|
headers: {
|
|
489
|
-
...
|
|
490
|
-
...
|
|
547
|
+
...c ? { "X-CSRF-Token": c } : {},
|
|
548
|
+
...p() ?? {}
|
|
491
549
|
},
|
|
492
|
-
credentials: "include"
|
|
550
|
+
credentials: "include",
|
|
551
|
+
signal: E.signal
|
|
493
552
|
});
|
|
494
553
|
} catch {
|
|
495
554
|
} finally {
|
|
496
|
-
Q(null),
|
|
555
|
+
window.clearTimeout(K), Q(null), f("unauthenticated"), l.current?.clear(), s.current?.broadcastLogout(), k.current?.onLogout?.();
|
|
497
556
|
}
|
|
498
|
-
}, [e,
|
|
557
|
+
}, [e, p, Q, f, i]), H = d(() => l.current?.getAccessToken() ?? null, []);
|
|
499
558
|
return {
|
|
500
|
-
user:
|
|
559
|
+
user: r,
|
|
501
560
|
authState: o,
|
|
502
|
-
handleLoginSuccess:
|
|
503
|
-
logout:
|
|
504
|
-
refreshUser:
|
|
505
|
-
getAccessToken:
|
|
561
|
+
handleLoginSuccess: C,
|
|
562
|
+
logout: S,
|
|
563
|
+
refreshUser: I,
|
|
564
|
+
getAccessToken: H
|
|
506
565
|
};
|
|
507
566
|
}
|
|
508
|
-
|
|
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 = {
|
|
567
|
+
const Xe = {
|
|
518
568
|
mCost: 19456,
|
|
519
569
|
// 19 MiB
|
|
520
570
|
tCost: 2,
|
|
521
571
|
pCost: 1
|
|
522
572
|
};
|
|
523
|
-
function
|
|
573
|
+
function We(e) {
|
|
524
574
|
return e.length === 16;
|
|
525
575
|
}
|
|
526
|
-
function
|
|
576
|
+
function je(e) {
|
|
527
577
|
if (e.length === 16) return !0;
|
|
528
578
|
if (e.length < 18) return !1;
|
|
529
|
-
const
|
|
530
|
-
return
|
|
579
|
+
const A = e[0];
|
|
580
|
+
return A === 0 || A === 1 || A === 128 || A === 8;
|
|
531
581
|
}
|
|
532
|
-
function
|
|
582
|
+
function Ze(e) {
|
|
533
583
|
return e.length === 32;
|
|
534
584
|
}
|
|
535
|
-
function
|
|
585
|
+
function qe(e) {
|
|
536
586
|
return e.length === 12;
|
|
537
587
|
}
|
|
538
|
-
function
|
|
588
|
+
function _e(e) {
|
|
539
589
|
return e.length >= 16;
|
|
540
590
|
}
|
|
541
|
-
function
|
|
591
|
+
function $e(e) {
|
|
542
592
|
return e.length === 32;
|
|
543
593
|
}
|
|
544
|
-
function
|
|
545
|
-
if (!
|
|
594
|
+
function ze(e) {
|
|
595
|
+
if (!We(e))
|
|
546
596
|
throw new Error(`Invalid seed length: expected 16, got ${e.length}`);
|
|
547
597
|
return e;
|
|
548
598
|
}
|
|
549
|
-
function
|
|
550
|
-
if (!
|
|
599
|
+
function _A(e) {
|
|
600
|
+
if (!je(e))
|
|
551
601
|
throw new Error(`Invalid share length: expected >=16, got ${e.length}`);
|
|
552
602
|
return e;
|
|
553
603
|
}
|
|
554
|
-
function
|
|
555
|
-
if (!
|
|
604
|
+
function ke(e) {
|
|
605
|
+
if (!Ze(e))
|
|
556
606
|
throw new Error(`Invalid key length: expected 32, got ${e.length}`);
|
|
557
607
|
return e;
|
|
558
608
|
}
|
|
559
|
-
function
|
|
560
|
-
if (!
|
|
609
|
+
function eA(e) {
|
|
610
|
+
if (!qe(e))
|
|
561
611
|
throw new Error(`Invalid nonce length: expected 12, got ${e.length}`);
|
|
562
612
|
return e;
|
|
563
613
|
}
|
|
564
|
-
function
|
|
565
|
-
if (!
|
|
614
|
+
function AA(e) {
|
|
615
|
+
if (!_e(e))
|
|
566
616
|
throw new Error(`Invalid salt length: expected >=16, got ${e.length}`);
|
|
567
617
|
return e;
|
|
568
618
|
}
|
|
569
|
-
function
|
|
570
|
-
if (
|
|
619
|
+
function tA(e) {
|
|
620
|
+
if (!$e(e))
|
|
571
621
|
throw new Error(`Invalid PRF salt length: expected 32, got ${e.length}`);
|
|
572
622
|
return e;
|
|
573
623
|
}
|
|
574
|
-
function
|
|
624
|
+
function T(e) {
|
|
575
625
|
return new Uint8Array(e);
|
|
576
626
|
}
|
|
577
|
-
function
|
|
627
|
+
function ee(e) {
|
|
578
628
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
579
629
|
throw new Error(
|
|
580
630
|
"WebCrypto API not available. Secure random generation requires a modern browser."
|
|
581
631
|
);
|
|
582
|
-
const
|
|
583
|
-
return crypto.getRandomValues(
|
|
632
|
+
const A = new Uint8Array(e);
|
|
633
|
+
return crypto.getRandomValues(A), A;
|
|
584
634
|
}
|
|
585
|
-
function
|
|
586
|
-
return
|
|
635
|
+
function $A() {
|
|
636
|
+
return ze(ee(16));
|
|
587
637
|
}
|
|
588
|
-
function
|
|
589
|
-
return
|
|
638
|
+
function iA() {
|
|
639
|
+
return eA(ee(12));
|
|
590
640
|
}
|
|
591
|
-
function
|
|
592
|
-
return
|
|
641
|
+
function zA() {
|
|
642
|
+
return AA(ee(16));
|
|
593
643
|
}
|
|
594
|
-
function
|
|
595
|
-
return
|
|
644
|
+
function rA() {
|
|
645
|
+
return tA(ee(32));
|
|
596
646
|
}
|
|
597
|
-
function
|
|
647
|
+
function Se(e) {
|
|
598
648
|
if (!(!e || e.length === 0)) {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
649
|
+
if (typeof globalThis.crypto?.getRandomValues == "function")
|
|
650
|
+
globalThis.crypto.getRandomValues(e);
|
|
651
|
+
else
|
|
652
|
+
for (let A = 0; A < e.length; A++)
|
|
653
|
+
e[A] = A * 90 & 255;
|
|
602
654
|
e.fill(0);
|
|
603
655
|
}
|
|
604
656
|
}
|
|
605
|
-
function
|
|
606
|
-
for (const
|
|
607
|
-
|
|
657
|
+
function et(...e) {
|
|
658
|
+
for (const A of e)
|
|
659
|
+
A && Se(A);
|
|
608
660
|
}
|
|
609
|
-
async function
|
|
661
|
+
async function nA(e) {
|
|
610
662
|
return crypto.subtle.importKey(
|
|
611
663
|
"raw",
|
|
612
|
-
|
|
664
|
+
T(e),
|
|
613
665
|
{ name: "AES-GCM", length: 256 },
|
|
614
666
|
!1,
|
|
615
667
|
// not extractable
|
|
616
668
|
["encrypt", "decrypt"]
|
|
617
669
|
);
|
|
618
670
|
}
|
|
619
|
-
async function
|
|
620
|
-
const
|
|
621
|
-
{ name: "AES-GCM", iv:
|
|
622
|
-
|
|
623
|
-
|
|
671
|
+
async function oA(e, A, t) {
|
|
672
|
+
const i = t ?? iA(), r = await nA(A), n = await crypto.subtle.encrypt(
|
|
673
|
+
{ name: "AES-GCM", iv: T(i) },
|
|
674
|
+
r,
|
|
675
|
+
T(e)
|
|
624
676
|
);
|
|
625
677
|
return {
|
|
626
|
-
ciphertext: new Uint8Array(
|
|
627
|
-
nonce:
|
|
678
|
+
ciphertext: new Uint8Array(n),
|
|
679
|
+
nonce: i
|
|
628
680
|
};
|
|
629
681
|
}
|
|
630
|
-
async function
|
|
631
|
-
const
|
|
682
|
+
async function At(e, A) {
|
|
683
|
+
const t = await oA(e, A);
|
|
632
684
|
return {
|
|
633
|
-
ciphertext:
|
|
634
|
-
nonce:
|
|
685
|
+
ciphertext: z(t.ciphertext),
|
|
686
|
+
nonce: z(t.nonce)
|
|
635
687
|
};
|
|
636
688
|
}
|
|
637
|
-
function
|
|
638
|
-
const
|
|
639
|
-
for (let
|
|
640
|
-
const
|
|
641
|
-
|
|
689
|
+
function z(e) {
|
|
690
|
+
const t = [];
|
|
691
|
+
for (let i = 0; i < e.length; i += 32768) {
|
|
692
|
+
const r = e.subarray(i, Math.min(i + 32768, e.length));
|
|
693
|
+
t.push(String.fromCharCode(...r));
|
|
642
694
|
}
|
|
643
|
-
return btoa(
|
|
695
|
+
return btoa(t.join(""));
|
|
644
696
|
}
|
|
645
|
-
function
|
|
646
|
-
let
|
|
697
|
+
function sA(e) {
|
|
698
|
+
let A;
|
|
647
699
|
try {
|
|
648
|
-
|
|
700
|
+
A = atob(e);
|
|
649
701
|
} catch {
|
|
650
702
|
throw new Error("Invalid base64 string: input is malformed or contains invalid characters");
|
|
651
703
|
}
|
|
652
|
-
const
|
|
653
|
-
for (let
|
|
654
|
-
|
|
655
|
-
return
|
|
704
|
+
const t = new Uint8Array(A.length);
|
|
705
|
+
for (let i = 0; i < A.length; i++)
|
|
706
|
+
t[i] = A.charCodeAt(i);
|
|
707
|
+
return t;
|
|
656
708
|
}
|
|
657
|
-
async function
|
|
658
|
-
const
|
|
709
|
+
async function IA(e, A, t, i = 32) {
|
|
710
|
+
const r = await crypto.subtle.importKey(
|
|
659
711
|
"raw",
|
|
660
|
-
|
|
712
|
+
T(e),
|
|
661
713
|
"HKDF",
|
|
662
714
|
!1,
|
|
663
715
|
["deriveBits"]
|
|
664
|
-
),
|
|
716
|
+
), n = new TextEncoder().encode(t), o = await crypto.subtle.deriveBits(
|
|
665
717
|
{
|
|
666
718
|
name: "HKDF",
|
|
667
719
|
hash: "SHA-256",
|
|
668
|
-
salt:
|
|
720
|
+
salt: T(A ?? new Uint8Array(32)),
|
|
669
721
|
// Zero salt if not provided
|
|
670
|
-
info:
|
|
722
|
+
info: T(n)
|
|
671
723
|
},
|
|
672
|
-
|
|
673
|
-
|
|
724
|
+
r,
|
|
725
|
+
i * 8
|
|
674
726
|
// bits
|
|
675
727
|
);
|
|
676
728
|
return new Uint8Array(o);
|
|
677
729
|
}
|
|
678
|
-
async function
|
|
679
|
-
const
|
|
680
|
-
return
|
|
730
|
+
async function tt(e, A) {
|
|
731
|
+
const t = await IA(e, A, "cedros-wallet-share-b-encryption", 32);
|
|
732
|
+
return ke(t);
|
|
681
733
|
}
|
|
682
|
-
async function
|
|
734
|
+
async function aA() {
|
|
683
735
|
try {
|
|
684
736
|
const e = await crypto.subtle.importKey("raw", new Uint8Array(32), "HKDF", !1, [
|
|
685
737
|
"deriveBits"
|
|
@@ -698,156 +750,156 @@ async function tt() {
|
|
|
698
750
|
return !1;
|
|
699
751
|
}
|
|
700
752
|
}
|
|
701
|
-
function
|
|
702
|
-
function n
|
|
703
|
-
return
|
|
704
|
-
o(
|
|
753
|
+
function R(e, A, t, i) {
|
|
754
|
+
function r(n) {
|
|
755
|
+
return n instanceof t ? n : new t(function(o) {
|
|
756
|
+
o(n);
|
|
705
757
|
});
|
|
706
758
|
}
|
|
707
|
-
return new (
|
|
708
|
-
function
|
|
759
|
+
return new (t || (t = Promise))(function(n, o) {
|
|
760
|
+
function a(k) {
|
|
709
761
|
try {
|
|
710
|
-
|
|
711
|
-
} catch (
|
|
712
|
-
o(
|
|
762
|
+
s(i.next(k));
|
|
763
|
+
} catch (w) {
|
|
764
|
+
o(w);
|
|
713
765
|
}
|
|
714
766
|
}
|
|
715
|
-
function
|
|
767
|
+
function l(k) {
|
|
716
768
|
try {
|
|
717
|
-
|
|
718
|
-
} catch (
|
|
719
|
-
o(
|
|
769
|
+
s(i.throw(k));
|
|
770
|
+
} catch (w) {
|
|
771
|
+
o(w);
|
|
720
772
|
}
|
|
721
773
|
}
|
|
722
|
-
function
|
|
723
|
-
|
|
774
|
+
function s(k) {
|
|
775
|
+
k.done ? n(k.value) : r(k.value).then(a, l);
|
|
724
776
|
}
|
|
725
|
-
|
|
777
|
+
s((i = i.apply(e, [])).next());
|
|
726
778
|
});
|
|
727
779
|
}
|
|
728
|
-
class
|
|
780
|
+
class y {
|
|
729
781
|
constructor() {
|
|
730
782
|
this.mutex = Promise.resolve();
|
|
731
783
|
}
|
|
732
784
|
lock() {
|
|
733
|
-
let
|
|
785
|
+
let A = () => {
|
|
734
786
|
};
|
|
735
|
-
return this.mutex = this.mutex.then(() => new Promise(
|
|
736
|
-
|
|
787
|
+
return this.mutex = this.mutex.then(() => new Promise(A)), new Promise((t) => {
|
|
788
|
+
A = t;
|
|
737
789
|
});
|
|
738
790
|
}
|
|
739
|
-
dispatch(
|
|
740
|
-
return
|
|
741
|
-
const
|
|
791
|
+
dispatch(A) {
|
|
792
|
+
return R(this, void 0, void 0, function* () {
|
|
793
|
+
const t = yield this.lock();
|
|
742
794
|
try {
|
|
743
|
-
return yield Promise.resolve(
|
|
795
|
+
return yield Promise.resolve(A());
|
|
744
796
|
} finally {
|
|
745
|
-
|
|
797
|
+
t();
|
|
746
798
|
}
|
|
747
799
|
});
|
|
748
800
|
}
|
|
749
801
|
}
|
|
750
|
-
var
|
|
751
|
-
function
|
|
802
|
+
var se;
|
|
803
|
+
function gA() {
|
|
752
804
|
return typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global;
|
|
753
805
|
}
|
|
754
|
-
const
|
|
755
|
-
function
|
|
756
|
-
return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (
|
|
806
|
+
const Ce = gA(), Ie = (se = Ce.Buffer) !== null && se !== void 0 ? se : null, lA = Ce.TextEncoder ? new Ce.TextEncoder() : null;
|
|
807
|
+
function De(e, A) {
|
|
808
|
+
return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (A & 15) + (A >> 6 | A >> 3 & 8);
|
|
757
809
|
}
|
|
758
|
-
function
|
|
759
|
-
const
|
|
760
|
-
for (let
|
|
761
|
-
const
|
|
762
|
-
e[
|
|
810
|
+
function Fe(e, A) {
|
|
811
|
+
const t = A.length >> 1;
|
|
812
|
+
for (let i = 0; i < t; i++) {
|
|
813
|
+
const r = i << 1;
|
|
814
|
+
e[i] = De(A.charCodeAt(r), A.charCodeAt(r + 1));
|
|
763
815
|
}
|
|
764
816
|
}
|
|
765
|
-
function
|
|
766
|
-
if (e.length !==
|
|
817
|
+
function cA(e, A) {
|
|
818
|
+
if (e.length !== A.length * 2)
|
|
767
819
|
return !1;
|
|
768
|
-
for (let
|
|
769
|
-
const
|
|
770
|
-
if (t
|
|
820
|
+
for (let t = 0; t < A.length; t++) {
|
|
821
|
+
const i = t << 1;
|
|
822
|
+
if (A[t] !== De(e.charCodeAt(i), e.charCodeAt(i + 1)))
|
|
771
823
|
return !1;
|
|
772
824
|
}
|
|
773
825
|
return !0;
|
|
774
826
|
}
|
|
775
|
-
const
|
|
776
|
-
function
|
|
777
|
-
let
|
|
778
|
-
for (let
|
|
779
|
-
let
|
|
780
|
-
e[
|
|
827
|
+
const ue = 87, we = 48;
|
|
828
|
+
function he(e, A, t) {
|
|
829
|
+
let i = 0;
|
|
830
|
+
for (let r = 0; r < t; r++) {
|
|
831
|
+
let n = A[r] >>> 4;
|
|
832
|
+
e[i++] = n > 9 ? n + ue : n + we, n = A[r] & 15, e[i++] = n > 9 ? n + ue : n + we;
|
|
781
833
|
}
|
|
782
834
|
return String.fromCharCode.apply(null, e);
|
|
783
835
|
}
|
|
784
|
-
const
|
|
836
|
+
const O = Ie !== null ? (e) => {
|
|
785
837
|
if (typeof e == "string") {
|
|
786
|
-
const
|
|
787
|
-
return new Uint8Array(
|
|
838
|
+
const A = Ie.from(e, "utf8");
|
|
839
|
+
return new Uint8Array(A.buffer, A.byteOffset, A.length);
|
|
788
840
|
}
|
|
789
|
-
if (
|
|
841
|
+
if (Ie.isBuffer(e))
|
|
790
842
|
return new Uint8Array(e.buffer, e.byteOffset, e.length);
|
|
791
843
|
if (ArrayBuffer.isView(e))
|
|
792
844
|
return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
|
|
793
845
|
throw new Error("Invalid data type!");
|
|
794
846
|
} : (e) => {
|
|
795
847
|
if (typeof e == "string")
|
|
796
|
-
return
|
|
848
|
+
return lA.encode(e);
|
|
797
849
|
if (ArrayBuffer.isView(e))
|
|
798
850
|
return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
|
|
799
851
|
throw new Error("Invalid data type!");
|
|
800
|
-
},
|
|
801
|
-
for (let e = 0; e <
|
|
802
|
-
|
|
803
|
-
function
|
|
804
|
-
const
|
|
805
|
-
for (let o = 0; o <
|
|
806
|
-
const
|
|
807
|
-
|
|
808
|
-
}
|
|
809
|
-
if (
|
|
810
|
-
const o = e[
|
|
811
|
-
|
|
812
|
-
} else if (
|
|
813
|
-
const o = (e[
|
|
814
|
-
|
|
815
|
-
}
|
|
816
|
-
return
|
|
817
|
-
}
|
|
818
|
-
function
|
|
819
|
-
let
|
|
820
|
-
const
|
|
821
|
-
return e[
|
|
822
|
-
}
|
|
823
|
-
function
|
|
824
|
-
const
|
|
825
|
-
let
|
|
826
|
-
for (let
|
|
827
|
-
const o =
|
|
828
|
-
r
|
|
852
|
+
}, M = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", W = new Uint8Array(256);
|
|
853
|
+
for (let e = 0; e < M.length; e++)
|
|
854
|
+
W[M.charCodeAt(e)] = e;
|
|
855
|
+
function Qe(e, A = !0) {
|
|
856
|
+
const t = e.length, i = t % 3, r = [], n = t - i;
|
|
857
|
+
for (let o = 0; o < n; o += 3) {
|
|
858
|
+
const a = (e[o] << 16 & 16711680) + (e[o + 1] << 8 & 65280) + (e[o + 2] & 255), l = M.charAt(a >> 18 & 63) + M.charAt(a >> 12 & 63) + M.charAt(a >> 6 & 63) + M.charAt(a & 63);
|
|
859
|
+
r.push(l);
|
|
860
|
+
}
|
|
861
|
+
if (i === 1) {
|
|
862
|
+
const o = e[t - 1], a = M.charAt(o >> 2), l = M.charAt(o << 4 & 63);
|
|
863
|
+
r.push(`${a}${l}`), A && r.push("==");
|
|
864
|
+
} else if (i === 2) {
|
|
865
|
+
const o = (e[t - 2] << 8) + e[t - 1], a = M.charAt(o >> 10), l = M.charAt(o >> 4 & 63), s = M.charAt(o << 2 & 63);
|
|
866
|
+
r.push(`${a}${l}${s}`), A && r.push("=");
|
|
867
|
+
}
|
|
868
|
+
return r.join("");
|
|
869
|
+
}
|
|
870
|
+
function CA(e) {
|
|
871
|
+
let A = Math.floor(e.length * 0.75);
|
|
872
|
+
const t = e.length;
|
|
873
|
+
return e[t - 1] === "=" && (A -= 1, e[t - 2] === "=" && (A -= 1)), A;
|
|
874
|
+
}
|
|
875
|
+
function hA(e) {
|
|
876
|
+
const A = CA(e), t = e.length, i = new Uint8Array(A);
|
|
877
|
+
let r = 0;
|
|
878
|
+
for (let n = 0; n < t; n += 4) {
|
|
879
|
+
const o = W[e.charCodeAt(n)], a = W[e.charCodeAt(n + 1)], l = W[e.charCodeAt(n + 2)], s = W[e.charCodeAt(n + 3)];
|
|
880
|
+
i[r] = o << 2 | a >> 4, r += 1, i[r] = (a & 15) << 4 | l >> 2, r += 1, i[r] = (l & 3) << 6 | s & 63, r += 1;
|
|
829
881
|
}
|
|
830
|
-
return
|
|
882
|
+
return i;
|
|
831
883
|
}
|
|
832
|
-
const
|
|
833
|
-
function
|
|
834
|
-
return
|
|
835
|
-
let
|
|
884
|
+
const _ = 16 * 1024, X = 4, fA = new y(), ae = /* @__PURE__ */ new Map();
|
|
885
|
+
function Ue(e, A) {
|
|
886
|
+
return R(this, void 0, void 0, function* () {
|
|
887
|
+
let t = null, i = null, r = !1;
|
|
836
888
|
if (typeof WebAssembly > "u")
|
|
837
889
|
throw new Error("WebAssembly is not supported in this environment!");
|
|
838
|
-
const
|
|
839
|
-
|
|
840
|
-
}, o = () =>
|
|
841
|
-
|
|
842
|
-
const
|
|
843
|
-
|
|
844
|
-
},
|
|
845
|
-
if (!
|
|
846
|
-
const
|
|
847
|
-
|
|
890
|
+
const n = (I, C = 0) => {
|
|
891
|
+
i.set(I, C);
|
|
892
|
+
}, o = () => i, a = () => t.exports, l = (I) => {
|
|
893
|
+
t.exports.Hash_SetMemorySize(I);
|
|
894
|
+
const C = t.exports.Hash_GetBuffer(), S = t.exports.memory.buffer;
|
|
895
|
+
i = new Uint8Array(S, C, I);
|
|
896
|
+
}, s = () => new DataView(t.exports.memory.buffer).getUint32(t.exports.STATE_SIZE, !0), k = fA.dispatch(() => R(this, void 0, void 0, function* () {
|
|
897
|
+
if (!ae.has(e.name)) {
|
|
898
|
+
const C = hA(e.data), S = WebAssembly.compile(C);
|
|
899
|
+
ae.set(e.name, S);
|
|
848
900
|
}
|
|
849
|
-
const
|
|
850
|
-
|
|
901
|
+
const I = yield ae.get(e.name);
|
|
902
|
+
t = yield WebAssembly.instantiate(I, {
|
|
851
903
|
// env: {
|
|
852
904
|
// emscripten_memcpy_big: (dest, src, num) => {
|
|
853
905
|
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
@@ -861,157 +913,157 @@ function Se(e, t) {
|
|
|
861
913
|
// },
|
|
862
914
|
// },
|
|
863
915
|
});
|
|
864
|
-
})),
|
|
865
|
-
|
|
866
|
-
const
|
|
867
|
-
|
|
868
|
-
}),
|
|
869
|
-
|
|
870
|
-
},
|
|
871
|
-
let
|
|
872
|
-
for (;
|
|
873
|
-
const
|
|
874
|
-
|
|
916
|
+
})), w = () => R(this, void 0, void 0, function* () {
|
|
917
|
+
t || (yield k);
|
|
918
|
+
const I = t.exports.Hash_GetBuffer(), C = t.exports.memory.buffer;
|
|
919
|
+
i = new Uint8Array(C, I, _);
|
|
920
|
+
}), B = (I = null) => {
|
|
921
|
+
r = !0, t.exports.Hash_Init(I);
|
|
922
|
+
}, b = (I) => {
|
|
923
|
+
let C = 0;
|
|
924
|
+
for (; C < I.length; ) {
|
|
925
|
+
const S = I.subarray(C, C + _);
|
|
926
|
+
C += S.length, i.set(S), t.exports.Hash_Update(S.length);
|
|
875
927
|
}
|
|
876
|
-
},
|
|
877
|
-
if (!
|
|
928
|
+
}, F = (I) => {
|
|
929
|
+
if (!r)
|
|
878
930
|
throw new Error("update() called before init()");
|
|
879
|
-
const
|
|
880
|
-
|
|
881
|
-
},
|
|
882
|
-
if (!
|
|
931
|
+
const C = O(I);
|
|
932
|
+
b(C);
|
|
933
|
+
}, Q = new Uint8Array(A * 2), f = (I, C = null) => {
|
|
934
|
+
if (!r)
|
|
883
935
|
throw new Error("digest() called before init()");
|
|
884
|
-
return
|
|
885
|
-
},
|
|
886
|
-
if (!
|
|
936
|
+
return r = !1, t.exports.Hash_Final(C), I === "binary" ? i.slice(0, A) : he(Q, i, A);
|
|
937
|
+
}, u = () => {
|
|
938
|
+
if (!r)
|
|
887
939
|
throw new Error("save() can only be called after init() and before digest()");
|
|
888
|
-
const
|
|
889
|
-
return
|
|
890
|
-
},
|
|
891
|
-
if (!(
|
|
940
|
+
const I = t.exports.Hash_GetState(), C = s(), S = t.exports.memory.buffer, H = new Uint8Array(S, I, C), c = new Uint8Array(X + C);
|
|
941
|
+
return Fe(c, e.hash), c.set(H, X), c;
|
|
942
|
+
}, m = (I) => {
|
|
943
|
+
if (!(I instanceof Uint8Array))
|
|
892
944
|
throw new Error("load() expects an Uint8Array generated by save()");
|
|
893
|
-
const
|
|
894
|
-
if (
|
|
895
|
-
throw new Error(`Bad state length (expected ${
|
|
896
|
-
if (!
|
|
945
|
+
const C = t.exports.Hash_GetState(), S = s(), H = X + S, c = t.exports.memory.buffer;
|
|
946
|
+
if (I.length !== H)
|
|
947
|
+
throw new Error(`Bad state length (expected ${H} bytes, got ${I.length})`);
|
|
948
|
+
if (!cA(e.hash, I.subarray(0, X)))
|
|
897
949
|
throw new Error("This state was written by an incompatible hash implementation");
|
|
898
|
-
const
|
|
899
|
-
new Uint8Array(
|
|
900
|
-
},
|
|
901
|
-
let
|
|
950
|
+
const E = I.subarray(X);
|
|
951
|
+
new Uint8Array(c, C, S).set(E), r = !0;
|
|
952
|
+
}, p = (I) => typeof I == "string" ? I.length < _ / 4 : I.byteLength < _;
|
|
953
|
+
let h = p;
|
|
902
954
|
switch (e.name) {
|
|
903
955
|
case "argon2":
|
|
904
956
|
case "scrypt":
|
|
905
|
-
|
|
957
|
+
h = () => !0;
|
|
906
958
|
break;
|
|
907
959
|
case "blake2b":
|
|
908
960
|
case "blake2s":
|
|
909
|
-
|
|
961
|
+
h = (I, C) => C <= 512 && p(I);
|
|
910
962
|
break;
|
|
911
963
|
case "blake3":
|
|
912
|
-
|
|
964
|
+
h = (I, C) => C === 0 && p(I);
|
|
913
965
|
break;
|
|
914
966
|
case "xxhash64":
|
|
915
967
|
// cannot simplify
|
|
916
968
|
case "xxhash3":
|
|
917
969
|
case "xxhash128":
|
|
918
970
|
case "crc64":
|
|
919
|
-
|
|
971
|
+
h = () => !1;
|
|
920
972
|
break;
|
|
921
973
|
}
|
|
922
|
-
const
|
|
923
|
-
if (!
|
|
924
|
-
return
|
|
925
|
-
const
|
|
926
|
-
return
|
|
974
|
+
const g = (I, C = null, S = null) => {
|
|
975
|
+
if (!h(I, C))
|
|
976
|
+
return B(C), F(I), f("hex", S);
|
|
977
|
+
const H = O(I);
|
|
978
|
+
return i.set(H), t.exports.Hash_Calculate(H.length, C, S), he(Q, i, A);
|
|
927
979
|
};
|
|
928
|
-
return yield
|
|
980
|
+
return yield w(), {
|
|
929
981
|
getMemory: o,
|
|
930
|
-
writeMemory:
|
|
931
|
-
getExports:
|
|
932
|
-
setMemorySize:
|
|
933
|
-
init:
|
|
934
|
-
update:
|
|
935
|
-
digest:
|
|
936
|
-
save:
|
|
937
|
-
load:
|
|
938
|
-
calculate:
|
|
939
|
-
hashLength:
|
|
982
|
+
writeMemory: n,
|
|
983
|
+
getExports: a,
|
|
984
|
+
setMemorySize: l,
|
|
985
|
+
init: B,
|
|
986
|
+
update: F,
|
|
987
|
+
digest: f,
|
|
988
|
+
save: u,
|
|
989
|
+
load: m,
|
|
990
|
+
calculate: g,
|
|
991
|
+
hashLength: A
|
|
940
992
|
};
|
|
941
993
|
});
|
|
942
994
|
}
|
|
943
|
-
new
|
|
944
|
-
var
|
|
945
|
-
name:
|
|
946
|
-
data:
|
|
947
|
-
hash:
|
|
948
|
-
},
|
|
949
|
-
name:
|
|
950
|
-
data:
|
|
951
|
-
hash:
|
|
995
|
+
new y();
|
|
996
|
+
var uA = "argon2", wA = "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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", QA = "e4cdc523", BA = {
|
|
997
|
+
name: uA,
|
|
998
|
+
data: wA,
|
|
999
|
+
hash: QA
|
|
1000
|
+
}, dA = "blake2b", EA = "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", pA = "c6f286e6", yA = {
|
|
1001
|
+
name: dA,
|
|
1002
|
+
data: EA,
|
|
1003
|
+
hash: pA
|
|
952
1004
|
};
|
|
953
|
-
new
|
|
954
|
-
function
|
|
1005
|
+
new y();
|
|
1006
|
+
function Be(e) {
|
|
955
1007
|
return !Number.isInteger(e) || e < 8 || e > 512 || e % 8 !== 0 ? new Error("Invalid variant! Valid values: 8, 16, ..., 512") : null;
|
|
956
1008
|
}
|
|
957
|
-
function
|
|
958
|
-
return e |
|
|
1009
|
+
function kA(e, A) {
|
|
1010
|
+
return e | A << 16;
|
|
959
1011
|
}
|
|
960
|
-
function
|
|
961
|
-
if (
|
|
962
|
-
return Promise.reject(
|
|
963
|
-
let
|
|
964
|
-
if (
|
|
965
|
-
if (
|
|
1012
|
+
function fe(e = 512, A = null) {
|
|
1013
|
+
if (Be(e))
|
|
1014
|
+
return Promise.reject(Be(e));
|
|
1015
|
+
let t = null, i = e;
|
|
1016
|
+
if (A !== null) {
|
|
1017
|
+
if (t = O(A), t.length > 64)
|
|
966
1018
|
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
967
|
-
|
|
1019
|
+
i = kA(e, t.length);
|
|
968
1020
|
}
|
|
969
|
-
const
|
|
970
|
-
return
|
|
971
|
-
|
|
1021
|
+
const r = e / 8;
|
|
1022
|
+
return Ue(yA, r).then((n) => {
|
|
1023
|
+
i > 512 && n.writeMemory(t), n.init(i);
|
|
972
1024
|
const o = {
|
|
973
|
-
init:
|
|
974
|
-
update: (
|
|
1025
|
+
init: i > 512 ? () => (n.writeMemory(t), n.init(i), o) : () => (n.init(i), o),
|
|
1026
|
+
update: (a) => (n.update(a), o),
|
|
975
1027
|
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
976
|
-
digest: (
|
|
977
|
-
save: () =>
|
|
978
|
-
load: (
|
|
1028
|
+
digest: (a) => n.digest(a),
|
|
1029
|
+
save: () => n.save(),
|
|
1030
|
+
load: (a) => (n.load(a), o),
|
|
979
1031
|
blockSize: 128,
|
|
980
|
-
digestSize:
|
|
1032
|
+
digestSize: r
|
|
981
1033
|
};
|
|
982
1034
|
return o;
|
|
983
1035
|
});
|
|
984
1036
|
}
|
|
985
|
-
function
|
|
986
|
-
const
|
|
987
|
-
`m=${
|
|
988
|
-
`t=${
|
|
989
|
-
`p=${
|
|
1037
|
+
function SA(e, A, t) {
|
|
1038
|
+
const i = [
|
|
1039
|
+
`m=${A.memorySize}`,
|
|
1040
|
+
`t=${A.iterations}`,
|
|
1041
|
+
`p=${A.parallelism}`
|
|
990
1042
|
].join(",");
|
|
991
|
-
return `$argon2${
|
|
1043
|
+
return `$argon2${A.hashType}$v=19$${i}$${Qe(e, !1)}$${Qe(t, !1)}`;
|
|
992
1044
|
}
|
|
993
|
-
const
|
|
994
|
-
function
|
|
995
|
-
return
|
|
1045
|
+
const de = new DataView(new ArrayBuffer(4));
|
|
1046
|
+
function x(e) {
|
|
1047
|
+
return de.setInt32(0, e, !0), new Uint8Array(de.buffer);
|
|
996
1048
|
}
|
|
997
|
-
function
|
|
998
|
-
return
|
|
999
|
-
if (
|
|
1000
|
-
const
|
|
1001
|
-
return
|
|
1049
|
+
function ge(e, A, t) {
|
|
1050
|
+
return R(this, void 0, void 0, function* () {
|
|
1051
|
+
if (t <= 64) {
|
|
1052
|
+
const l = yield fe(t * 8);
|
|
1053
|
+
return l.update(x(t)), l.update(A), l.digest("binary");
|
|
1002
1054
|
}
|
|
1003
|
-
const
|
|
1004
|
-
e.init(), e.update(
|
|
1005
|
-
let
|
|
1006
|
-
|
|
1007
|
-
for (let
|
|
1008
|
-
e.init(), e.update(
|
|
1009
|
-
const o =
|
|
1010
|
-
let
|
|
1011
|
-
return o === 64 ? (
|
|
1055
|
+
const i = Math.ceil(t / 32) - 2, r = new Uint8Array(t);
|
|
1056
|
+
e.init(), e.update(x(t)), e.update(A);
|
|
1057
|
+
let n = e.digest("binary");
|
|
1058
|
+
r.set(n.subarray(0, 32), 0);
|
|
1059
|
+
for (let l = 1; l < i; l++)
|
|
1060
|
+
e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32), l * 32);
|
|
1061
|
+
const o = t - 32 * i;
|
|
1062
|
+
let a;
|
|
1063
|
+
return o === 64 ? (a = e, a.init()) : a = yield fe(o * 8), a.update(n), n = a.digest("binary"), r.set(n.subarray(0, o), i * 32), r;
|
|
1012
1064
|
});
|
|
1013
1065
|
}
|
|
1014
|
-
function
|
|
1066
|
+
function DA(e) {
|
|
1015
1067
|
switch (e) {
|
|
1016
1068
|
case "d":
|
|
1017
1069
|
return 0;
|
|
@@ -1021,46 +1073,46 @@ function Qt(e) {
|
|
|
1021
1073
|
return 2;
|
|
1022
1074
|
}
|
|
1023
1075
|
}
|
|
1024
|
-
function
|
|
1025
|
-
return
|
|
1026
|
-
var
|
|
1027
|
-
const { parallelism:
|
|
1028
|
-
|
|
1029
|
-
|
|
1076
|
+
function FA(e) {
|
|
1077
|
+
return R(this, void 0, void 0, function* () {
|
|
1078
|
+
var A;
|
|
1079
|
+
const { parallelism: t, iterations: i, hashLength: r } = e, n = O(e.password), o = O(e.salt), a = 19, l = DA(e.hashType), { memorySize: s } = e, k = O((A = e.secret) !== null && A !== void 0 ? A : ""), [w, B] = yield Promise.all([
|
|
1080
|
+
Ue(BA, 1024),
|
|
1081
|
+
fe(512)
|
|
1030
1082
|
]);
|
|
1031
|
-
|
|
1032
|
-
const
|
|
1033
|
-
|
|
1034
|
-
const
|
|
1035
|
-
|
|
1036
|
-
for (let
|
|
1037
|
-
|
|
1038
|
-
let
|
|
1039
|
-
|
|
1083
|
+
w.setMemorySize(s * 1024 + 1024);
|
|
1084
|
+
const b = new Uint8Array(24), F = new DataView(b.buffer);
|
|
1085
|
+
F.setInt32(0, t, !0), F.setInt32(4, r, !0), F.setInt32(8, s, !0), F.setInt32(12, i, !0), F.setInt32(16, a, !0), F.setInt32(20, l, !0), w.writeMemory(b, s * 1024), B.init(), B.update(b), B.update(x(n.length)), B.update(n), B.update(x(o.length)), B.update(o), B.update(x(k.length)), B.update(k), B.update(x(0));
|
|
1086
|
+
const f = Math.floor(s / (t * 4)) * 4, u = new Uint8Array(72), m = B.digest("binary");
|
|
1087
|
+
u.set(m);
|
|
1088
|
+
for (let g = 0; g < t; g++) {
|
|
1089
|
+
u.set(x(0), 64), u.set(x(g), 68);
|
|
1090
|
+
let I = g * f, C = yield ge(B, u, 1024);
|
|
1091
|
+
w.writeMemory(C, I * 1024), I += 1, u.set(x(1), 64), C = yield ge(B, u, 1024), w.writeMemory(C, I * 1024);
|
|
1040
1092
|
}
|
|
1041
|
-
const
|
|
1042
|
-
|
|
1043
|
-
const
|
|
1093
|
+
const p = new Uint8Array(1024);
|
|
1094
|
+
Fe(p, w.calculate(new Uint8Array([]), s));
|
|
1095
|
+
const h = yield ge(B, p, r);
|
|
1044
1096
|
if (e.outputType === "hex") {
|
|
1045
|
-
const
|
|
1046
|
-
return
|
|
1097
|
+
const g = new Uint8Array(r * 2);
|
|
1098
|
+
return he(g, h, r);
|
|
1047
1099
|
}
|
|
1048
|
-
return e.outputType === "encoded" ?
|
|
1100
|
+
return e.outputType === "encoded" ? SA(o, e, h) : h;
|
|
1049
1101
|
});
|
|
1050
1102
|
}
|
|
1051
|
-
const
|
|
1052
|
-
var
|
|
1103
|
+
const UA = (e) => {
|
|
1104
|
+
var A;
|
|
1053
1105
|
if (!e || typeof e != "object")
|
|
1054
1106
|
throw new Error("Invalid options parameter. It requires an object.");
|
|
1055
1107
|
if (!e.password)
|
|
1056
1108
|
throw new Error("Password must be specified");
|
|
1057
|
-
if (e.password =
|
|
1109
|
+
if (e.password = O(e.password), e.password.length < 1)
|
|
1058
1110
|
throw new Error("Password must be specified");
|
|
1059
1111
|
if (!e.salt)
|
|
1060
1112
|
throw new Error("Salt must be specified");
|
|
1061
|
-
if (e.salt =
|
|
1113
|
+
if (e.salt = O(e.salt), e.salt.length < 8)
|
|
1062
1114
|
throw new Error("Salt should be at least 8 bytes long");
|
|
1063
|
-
if (e.secret =
|
|
1115
|
+
if (e.secret = O((A = e.secret) !== null && A !== void 0 ? A : ""), !Number.isInteger(e.iterations) || e.iterations < 1)
|
|
1064
1116
|
throw new Error("Iterations should be a positive number");
|
|
1065
1117
|
if (!Number.isInteger(e.parallelism) || e.parallelism < 1)
|
|
1066
1118
|
throw new Error("Parallelism should be a positive number");
|
|
@@ -1073,50 +1125,50 @@ const dt = (e) => {
|
|
|
1073
1125
|
if (e.outputType === void 0 && (e.outputType = "hex"), !["hex", "binary", "encoded"].includes(e.outputType))
|
|
1074
1126
|
throw new Error(`Insupported output type ${e.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
1075
1127
|
};
|
|
1076
|
-
function
|
|
1077
|
-
return
|
|
1078
|
-
return
|
|
1128
|
+
function me(e) {
|
|
1129
|
+
return R(this, void 0, void 0, function* () {
|
|
1130
|
+
return UA(e), FA(Object.assign(Object.assign({}, e), { hashType: "id" }));
|
|
1079
1131
|
});
|
|
1080
1132
|
}
|
|
1081
|
-
new
|
|
1082
|
-
new
|
|
1083
|
-
new
|
|
1084
|
-
new
|
|
1085
|
-
new
|
|
1086
|
-
new
|
|
1087
|
-
new
|
|
1088
|
-
new
|
|
1089
|
-
new
|
|
1090
|
-
new
|
|
1091
|
-
new
|
|
1092
|
-
new
|
|
1093
|
-
new
|
|
1094
|
-
new
|
|
1095
|
-
new
|
|
1096
|
-
new
|
|
1097
|
-
new
|
|
1098
|
-
new
|
|
1099
|
-
new
|
|
1100
|
-
new
|
|
1101
|
-
const
|
|
1102
|
-
async function
|
|
1103
|
-
|
|
1133
|
+
new y();
|
|
1134
|
+
new y();
|
|
1135
|
+
new y();
|
|
1136
|
+
new y();
|
|
1137
|
+
new y();
|
|
1138
|
+
new y();
|
|
1139
|
+
new y();
|
|
1140
|
+
new y();
|
|
1141
|
+
new y();
|
|
1142
|
+
new y();
|
|
1143
|
+
new y();
|
|
1144
|
+
new y();
|
|
1145
|
+
new y();
|
|
1146
|
+
new y();
|
|
1147
|
+
new y();
|
|
1148
|
+
new y();
|
|
1149
|
+
new y();
|
|
1150
|
+
new y();
|
|
1151
|
+
new y();
|
|
1152
|
+
new y();
|
|
1153
|
+
const mA = 32;
|
|
1154
|
+
async function it(e, A, t = Xe) {
|
|
1155
|
+
bA(t);
|
|
1104
1156
|
try {
|
|
1105
|
-
const
|
|
1157
|
+
const i = await me({
|
|
1106
1158
|
password: e,
|
|
1107
|
-
salt:
|
|
1108
|
-
iterations:
|
|
1109
|
-
memorySize:
|
|
1110
|
-
parallelism:
|
|
1111
|
-
hashLength:
|
|
1159
|
+
salt: A,
|
|
1160
|
+
iterations: t.tCost,
|
|
1161
|
+
memorySize: t.mCost,
|
|
1162
|
+
parallelism: t.pCost,
|
|
1163
|
+
hashLength: mA,
|
|
1112
1164
|
outputType: "binary"
|
|
1113
1165
|
});
|
|
1114
|
-
return
|
|
1166
|
+
return ke(i);
|
|
1115
1167
|
} catch {
|
|
1116
1168
|
throw new Error("Key derivation failed");
|
|
1117
1169
|
}
|
|
1118
1170
|
}
|
|
1119
|
-
function
|
|
1171
|
+
function bA(e) {
|
|
1120
1172
|
if (e.mCost < 16384)
|
|
1121
1173
|
throw new Error("KDF memory cost too low (minimum 16 MiB)");
|
|
1122
1174
|
if (e.mCost > 1048576)
|
|
@@ -1130,9 +1182,9 @@ function pt(e) {
|
|
|
1130
1182
|
if (e.pCost > 4)
|
|
1131
1183
|
throw new Error("KDF parallelism too high (maximum 4)");
|
|
1132
1184
|
}
|
|
1133
|
-
async function
|
|
1185
|
+
async function GA() {
|
|
1134
1186
|
try {
|
|
1135
|
-
const e = await
|
|
1187
|
+
const e = await me({
|
|
1136
1188
|
password: "test",
|
|
1137
1189
|
salt: new Uint8Array(16),
|
|
1138
1190
|
iterations: 1,
|
|
@@ -1142,49 +1194,47 @@ async function yt() {
|
|
|
1142
1194
|
hashLength: 32,
|
|
1143
1195
|
outputType: "binary"
|
|
1144
1196
|
});
|
|
1145
|
-
return e.length !== 32 ? !1 : (
|
|
1197
|
+
return e.length !== 32 ? !1 : (Se(e), !0);
|
|
1146
1198
|
} catch {
|
|
1147
1199
|
return !1;
|
|
1148
1200
|
}
|
|
1149
1201
|
}
|
|
1150
|
-
function
|
|
1202
|
+
function KA(e) {
|
|
1151
1203
|
return e === "localhost" || e === "127.0.0.1" || e.endsWith(".localhost");
|
|
1152
1204
|
}
|
|
1153
|
-
function
|
|
1205
|
+
function be(e) {
|
|
1154
1206
|
if (typeof window > "u")
|
|
1155
1207
|
return;
|
|
1156
|
-
const
|
|
1157
|
-
if (!
|
|
1158
|
-
|
|
1159
|
-
"[Cedros]
|
|
1208
|
+
const A = window.location.hostname;
|
|
1209
|
+
if (!KA(A))
|
|
1210
|
+
throw new Error(
|
|
1211
|
+
"[Cedros] WebAuthn RP domain validation is not configured. Set wallet.allowedRpDomains to a non-empty list of allowed domains."
|
|
1160
1212
|
);
|
|
1161
|
-
return;
|
|
1162
|
-
}
|
|
1163
1213
|
}
|
|
1164
|
-
function
|
|
1214
|
+
function Ae() {
|
|
1165
1215
|
return typeof window < "u" && typeof window.PublicKeyCredential < "u" && typeof navigator.credentials < "u";
|
|
1166
1216
|
}
|
|
1167
|
-
async function
|
|
1168
|
-
if (!
|
|
1217
|
+
async function HA() {
|
|
1218
|
+
if (!Ae())
|
|
1169
1219
|
return !1;
|
|
1170
1220
|
try {
|
|
1171
1221
|
if (!await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable())
|
|
1172
1222
|
return !1;
|
|
1173
1223
|
if ("getClientCapabilities" in PublicKeyCredential && typeof PublicKeyCredential.getClientCapabilities == "function") {
|
|
1174
|
-
const
|
|
1175
|
-
if (
|
|
1176
|
-
return
|
|
1224
|
+
const A = await PublicKeyCredential.getClientCapabilities();
|
|
1225
|
+
if (A && "prf" in A)
|
|
1226
|
+
return A.prf === !0;
|
|
1177
1227
|
}
|
|
1178
1228
|
return !0;
|
|
1179
1229
|
} catch {
|
|
1180
1230
|
return !1;
|
|
1181
1231
|
}
|
|
1182
1232
|
}
|
|
1183
|
-
async function
|
|
1184
|
-
if (!
|
|
1233
|
+
async function rt(e, A, t, i, r) {
|
|
1234
|
+
if (!Ae())
|
|
1185
1235
|
throw new Error("WebAuthn is not available in this browser");
|
|
1186
|
-
|
|
1187
|
-
const
|
|
1236
|
+
be();
|
|
1237
|
+
const n = i ?? rA(), o = await navigator.credentials.create({
|
|
1188
1238
|
publicKey: {
|
|
1189
1239
|
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1190
1240
|
rp: {
|
|
@@ -1192,9 +1242,9 @@ async function rA(e, t, A, r, n) {
|
|
|
1192
1242
|
id: window.location.hostname
|
|
1193
1243
|
},
|
|
1194
1244
|
user: {
|
|
1195
|
-
id:
|
|
1196
|
-
name:
|
|
1197
|
-
displayName:
|
|
1245
|
+
id: T(e),
|
|
1246
|
+
name: A,
|
|
1247
|
+
displayName: t
|
|
1198
1248
|
},
|
|
1199
1249
|
pubKeyCredParams: [
|
|
1200
1250
|
{ type: "public-key", alg: -7 },
|
|
@@ -1212,7 +1262,7 @@ async function rA(e, t, A, r, n) {
|
|
|
1212
1262
|
extensions: {
|
|
1213
1263
|
prf: {
|
|
1214
1264
|
eval: {
|
|
1215
|
-
first:
|
|
1265
|
+
first: n
|
|
1216
1266
|
}
|
|
1217
1267
|
}
|
|
1218
1268
|
}
|
|
@@ -1220,30 +1270,30 @@ async function rA(e, t, A, r, n) {
|
|
|
1220
1270
|
});
|
|
1221
1271
|
if (!o)
|
|
1222
1272
|
throw new Error("Passkey registration was cancelled");
|
|
1223
|
-
const
|
|
1224
|
-
if (!
|
|
1273
|
+
const a = o.getClientExtensionResults();
|
|
1274
|
+
if (!a.prf?.enabled || !a.prf?.results?.first)
|
|
1225
1275
|
throw new Error(
|
|
1226
1276
|
"PRF extension is not supported by this authenticator. Please use a device with a compatible platform authenticator."
|
|
1227
1277
|
);
|
|
1228
|
-
const
|
|
1229
|
-
if (!
|
|
1278
|
+
const l = a.prf?.results?.first;
|
|
1279
|
+
if (!l)
|
|
1230
1280
|
throw new Error("PRF extension did not return a result");
|
|
1231
|
-
const
|
|
1232
|
-
if (
|
|
1281
|
+
const s = new Uint8Array(l);
|
|
1282
|
+
if (s.length !== 32)
|
|
1233
1283
|
throw new Error(
|
|
1234
|
-
`Unexpected PRF output length: expected 32 bytes, got ${
|
|
1284
|
+
`Unexpected PRF output length: expected 32 bytes, got ${s.length}. The authenticator may not be compatible.`
|
|
1235
1285
|
);
|
|
1236
1286
|
return {
|
|
1237
|
-
credentialId:
|
|
1238
|
-
prfSalt:
|
|
1239
|
-
prfOutput:
|
|
1287
|
+
credentialId: z(new Uint8Array(o.rawId)),
|
|
1288
|
+
prfSalt: z(n),
|
|
1289
|
+
prfOutput: s
|
|
1240
1290
|
};
|
|
1241
1291
|
}
|
|
1242
|
-
async function
|
|
1243
|
-
if (!
|
|
1292
|
+
async function nt(e, A) {
|
|
1293
|
+
if (!Ae())
|
|
1244
1294
|
throw new Error("WebAuthn is not available in this browser");
|
|
1245
|
-
|
|
1246
|
-
const
|
|
1295
|
+
be();
|
|
1296
|
+
const t = sA(e), i = await navigator.credentials.get({
|
|
1247
1297
|
publicKey: {
|
|
1248
1298
|
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1249
1299
|
rpId: window.location.hostname,
|
|
@@ -1254,107 +1304,110 @@ async function iA(e, t) {
|
|
|
1254
1304
|
extensions: {
|
|
1255
1305
|
prf: {
|
|
1256
1306
|
eval: {
|
|
1257
|
-
first:
|
|
1307
|
+
first: t
|
|
1258
1308
|
}
|
|
1259
1309
|
}
|
|
1260
1310
|
}
|
|
1261
1311
|
}
|
|
1262
1312
|
});
|
|
1263
|
-
if (!r)
|
|
1264
|
-
throw new Error("Passkey authentication was cancelled");
|
|
1265
|
-
const i = r.getClientExtensionResults().prf?.results?.first;
|
|
1266
1313
|
if (!i)
|
|
1314
|
+
throw new Error("Passkey authentication was cancelled");
|
|
1315
|
+
const n = i.getClientExtensionResults().prf?.results?.first;
|
|
1316
|
+
if (!n)
|
|
1267
1317
|
throw new Error("PRF extension did not return a result during authentication");
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
}
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1318
|
+
const o = new Uint8Array(n);
|
|
1319
|
+
if (o.length !== 32)
|
|
1320
|
+
throw new Error(
|
|
1321
|
+
`Unexpected PRF output length: expected 32 bytes, got ${o.length}. The authenticator may not be compatible.`
|
|
1322
|
+
);
|
|
1323
|
+
return { prfOutput: o };
|
|
1324
|
+
}
|
|
1325
|
+
async function JA() {
|
|
1326
|
+
const [e, A, t, i, r, n, o] = await Promise.all([
|
|
1327
|
+
VA(),
|
|
1328
|
+
MA(),
|
|
1329
|
+
aA(),
|
|
1330
|
+
PA(),
|
|
1331
|
+
Promise.resolve(Ae()),
|
|
1332
|
+
HA(),
|
|
1333
|
+
GA()
|
|
1281
1334
|
]);
|
|
1282
1335
|
return {
|
|
1283
1336
|
webCrypto: e,
|
|
1284
|
-
aesGcm:
|
|
1285
|
-
hkdf:
|
|
1286
|
-
ed25519:
|
|
1287
|
-
webAuthn:
|
|
1288
|
-
webAuthnPrf:
|
|
1337
|
+
aesGcm: A,
|
|
1338
|
+
hkdf: t,
|
|
1339
|
+
ed25519: i,
|
|
1340
|
+
webAuthn: r,
|
|
1341
|
+
webAuthnPrf: n,
|
|
1289
1342
|
argon2: o,
|
|
1290
|
-
allSupported: e &&
|
|
1343
|
+
allSupported: e && A && t && r && n && o
|
|
1291
1344
|
};
|
|
1292
1345
|
}
|
|
1293
|
-
async function
|
|
1346
|
+
async function VA() {
|
|
1294
1347
|
try {
|
|
1295
1348
|
return typeof crypto < "u" && typeof crypto.subtle < "u" && typeof crypto.getRandomValues == "function";
|
|
1296
1349
|
} catch {
|
|
1297
1350
|
return !1;
|
|
1298
1351
|
}
|
|
1299
1352
|
}
|
|
1300
|
-
async function
|
|
1353
|
+
async function MA() {
|
|
1301
1354
|
try {
|
|
1302
1355
|
const e = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, !1, [
|
|
1303
1356
|
"encrypt",
|
|
1304
1357
|
"decrypt"
|
|
1305
|
-
]),
|
|
1306
|
-
return
|
|
1358
|
+
]), 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);
|
|
1359
|
+
return n.length === A.length && n.every((o, a) => o === A[a]);
|
|
1307
1360
|
} catch {
|
|
1308
1361
|
return !1;
|
|
1309
1362
|
}
|
|
1310
1363
|
}
|
|
1311
|
-
async function
|
|
1364
|
+
async function PA() {
|
|
1312
1365
|
try {
|
|
1313
1366
|
return await crypto.subtle.generateKey("Ed25519", !1, ["sign", "verify"]), !0;
|
|
1314
1367
|
} catch {
|
|
1315
1368
|
return !1;
|
|
1316
1369
|
}
|
|
1317
1370
|
}
|
|
1318
|
-
function
|
|
1371
|
+
function ot(e) {
|
|
1319
1372
|
if (e.allSupported)
|
|
1320
1373
|
return null;
|
|
1321
|
-
const
|
|
1322
|
-
return e.webCrypto ||
|
|
1374
|
+
const A = [];
|
|
1375
|
+
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
1376
|
}
|
|
1324
|
-
function
|
|
1325
|
-
const e = typeof navigator < "u" ? navigator.userAgent : "",
|
|
1326
|
-
if (
|
|
1327
|
-
const
|
|
1377
|
+
function st() {
|
|
1378
|
+
const e = typeof navigator < "u" ? navigator.userAgent : "", A = e.match(/Chrome\/(\d+)/);
|
|
1379
|
+
if (A) {
|
|
1380
|
+
const n = parseInt(A[1], 10);
|
|
1328
1381
|
return {
|
|
1329
1382
|
browser: "Chrome",
|
|
1330
|
-
version:
|
|
1331
|
-
likelySupported:
|
|
1383
|
+
version: A[1],
|
|
1384
|
+
likelySupported: n >= 116
|
|
1332
1385
|
};
|
|
1333
1386
|
}
|
|
1334
|
-
const
|
|
1335
|
-
if (
|
|
1336
|
-
const
|
|
1387
|
+
const t = e.match(/Version\/(\d+)/);
|
|
1388
|
+
if (t && e.includes("Safari") && !e.includes("Chrome")) {
|
|
1389
|
+
const n = parseInt(t[1], 10);
|
|
1337
1390
|
return {
|
|
1338
1391
|
browser: "Safari",
|
|
1339
|
-
version:
|
|
1340
|
-
likelySupported:
|
|
1392
|
+
version: t[1],
|
|
1393
|
+
likelySupported: n >= 17
|
|
1341
1394
|
};
|
|
1342
1395
|
}
|
|
1343
|
-
const
|
|
1344
|
-
if (
|
|
1396
|
+
const i = e.match(/Firefox\/(\d+)/);
|
|
1397
|
+
if (i)
|
|
1345
1398
|
return {
|
|
1346
1399
|
browser: "Firefox",
|
|
1347
|
-
version:
|
|
1400
|
+
version: i[1],
|
|
1348
1401
|
likelySupported: !1
|
|
1349
1402
|
// Firefox PRF support is limited
|
|
1350
1403
|
};
|
|
1351
|
-
const
|
|
1352
|
-
if (
|
|
1353
|
-
const
|
|
1404
|
+
const r = e.match(/Edg\/(\d+)/);
|
|
1405
|
+
if (r) {
|
|
1406
|
+
const n = parseInt(r[1], 10);
|
|
1354
1407
|
return {
|
|
1355
1408
|
browser: "Edge",
|
|
1356
|
-
version:
|
|
1357
|
-
likelySupported:
|
|
1409
|
+
version: r[1],
|
|
1410
|
+
likelySupported: n >= 116
|
|
1358
1411
|
};
|
|
1359
1412
|
}
|
|
1360
1413
|
return {
|
|
@@ -1363,172 +1416,13 @@ function oA() {
|
|
|
1363
1416
|
likelySupported: !1
|
|
1364
1417
|
};
|
|
1365
1418
|
}
|
|
1366
|
-
let
|
|
1367
|
-
|
|
1368
|
-
|
|
1419
|
+
let $ = null, le = null;
|
|
1420
|
+
const NA = 6e4;
|
|
1421
|
+
async function YA(e = !1) {
|
|
1422
|
+
const A = Date.now(), t = le === null || A - le > NA;
|
|
1423
|
+
return !e && !(typeof window > "u") && !t && $ !== null || ($ = await JA(), le = Date.now()), $;
|
|
1369
1424
|
}
|
|
1370
|
-
|
|
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();
|
|
1530
|
-
}
|
|
1531
|
-
function Yt(e) {
|
|
1425
|
+
function xA(e) {
|
|
1532
1426
|
switch (e.type) {
|
|
1533
1427
|
case "password":
|
|
1534
1428
|
return { password: e.password };
|
|
@@ -1536,160 +1430,160 @@ function Yt(e) {
|
|
|
1536
1430
|
return { prfOutput: e.prfOutput };
|
|
1537
1431
|
}
|
|
1538
1432
|
}
|
|
1539
|
-
function
|
|
1540
|
-
const e =
|
|
1541
|
-
baseUrl:
|
|
1542
|
-
timeoutMs:
|
|
1543
|
-
retryAttempts:
|
|
1544
|
-
getAccessToken:
|
|
1545
|
-
}) : null, [e]),
|
|
1546
|
-
if (!
|
|
1433
|
+
function OA() {
|
|
1434
|
+
const e = pe(), [A, t] = G(!1), [i, r] = G(null), n = e?.config.serverUrl, o = e?.config.requestTimeout, a = e?.config.retryAttempts, l = e?._internal?.getAccessToken, s = V(() => e ? new Ee({
|
|
1435
|
+
baseUrl: n,
|
|
1436
|
+
timeoutMs: o,
|
|
1437
|
+
retryAttempts: a,
|
|
1438
|
+
getAccessToken: l
|
|
1439
|
+
}) : null, [e, n, o, a, l]), k = d(async () => {
|
|
1440
|
+
if (!s)
|
|
1547
1441
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1548
|
-
|
|
1442
|
+
t(!0), r(null);
|
|
1549
1443
|
try {
|
|
1550
|
-
return await
|
|
1551
|
-
} catch (
|
|
1552
|
-
const g =
|
|
1553
|
-
throw
|
|
1444
|
+
return await s.get("/wallet/status");
|
|
1445
|
+
} catch (h) {
|
|
1446
|
+
const g = Y(h, "Failed to fetch wallet status");
|
|
1447
|
+
throw r(g.message), g;
|
|
1554
1448
|
} finally {
|
|
1555
|
-
|
|
1449
|
+
t(!1);
|
|
1556
1450
|
}
|
|
1557
|
-
}, [
|
|
1558
|
-
if (!
|
|
1451
|
+
}, [s]), w = d(async () => {
|
|
1452
|
+
if (!s)
|
|
1559
1453
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1560
|
-
|
|
1454
|
+
t(!0), r(null);
|
|
1561
1455
|
try {
|
|
1562
|
-
return await
|
|
1563
|
-
} catch (
|
|
1564
|
-
const g =
|
|
1456
|
+
return await s.get("/wallet/material");
|
|
1457
|
+
} catch (h) {
|
|
1458
|
+
const g = Y(h, "Failed to fetch wallet material");
|
|
1565
1459
|
if (g.code === "NOT_FOUND")
|
|
1566
1460
|
return null;
|
|
1567
|
-
throw
|
|
1461
|
+
throw r(g.message), g;
|
|
1568
1462
|
} finally {
|
|
1569
|
-
|
|
1463
|
+
t(!1);
|
|
1570
1464
|
}
|
|
1571
|
-
}, [
|
|
1572
|
-
async (
|
|
1573
|
-
if (!
|
|
1465
|
+
}, [s]), B = d(
|
|
1466
|
+
async (h) => {
|
|
1467
|
+
if (!s)
|
|
1574
1468
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1575
|
-
|
|
1469
|
+
t(!0), r(null);
|
|
1576
1470
|
try {
|
|
1577
|
-
await
|
|
1471
|
+
await s.post("/wallet/enroll", h);
|
|
1578
1472
|
} catch (g) {
|
|
1579
|
-
const
|
|
1580
|
-
throw
|
|
1473
|
+
const I = Y(g, "Failed to enroll wallet");
|
|
1474
|
+
throw r(I.message), I;
|
|
1581
1475
|
} finally {
|
|
1582
|
-
|
|
1476
|
+
t(!1);
|
|
1583
1477
|
}
|
|
1584
1478
|
},
|
|
1585
|
-
[
|
|
1586
|
-
),
|
|
1587
|
-
async (
|
|
1588
|
-
if (!
|
|
1479
|
+
[s]
|
|
1480
|
+
), b = d(
|
|
1481
|
+
async (h) => {
|
|
1482
|
+
if (!s)
|
|
1589
1483
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1590
|
-
|
|
1484
|
+
t(!0), r(null);
|
|
1591
1485
|
try {
|
|
1592
|
-
await
|
|
1486
|
+
await s.post("/wallet/recover", h);
|
|
1593
1487
|
} catch (g) {
|
|
1594
|
-
const
|
|
1595
|
-
throw
|
|
1488
|
+
const I = Y(g, "Failed to recover wallet");
|
|
1489
|
+
throw r(I.message), I;
|
|
1596
1490
|
} finally {
|
|
1597
|
-
|
|
1491
|
+
t(!1);
|
|
1598
1492
|
}
|
|
1599
1493
|
},
|
|
1600
|
-
[
|
|
1601
|
-
),
|
|
1602
|
-
async (
|
|
1603
|
-
if (!
|
|
1494
|
+
[s]
|
|
1495
|
+
), F = d(
|
|
1496
|
+
async (h) => {
|
|
1497
|
+
if (!s)
|
|
1604
1498
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1605
|
-
|
|
1499
|
+
t(!0), r(null);
|
|
1606
1500
|
try {
|
|
1607
|
-
return await
|
|
1501
|
+
return await s.post("/wallet/sign", h);
|
|
1608
1502
|
} catch (g) {
|
|
1609
|
-
const
|
|
1610
|
-
throw
|
|
1503
|
+
const I = Y(g, "Failed to sign transaction");
|
|
1504
|
+
throw r(I.message), I;
|
|
1611
1505
|
} finally {
|
|
1612
|
-
|
|
1506
|
+
t(!1);
|
|
1613
1507
|
}
|
|
1614
1508
|
},
|
|
1615
|
-
[
|
|
1616
|
-
),
|
|
1617
|
-
async (
|
|
1618
|
-
if (!
|
|
1509
|
+
[s]
|
|
1510
|
+
), Q = d(
|
|
1511
|
+
async (h) => {
|
|
1512
|
+
if (!s)
|
|
1619
1513
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1620
|
-
|
|
1514
|
+
t(!0), r(null);
|
|
1621
1515
|
try {
|
|
1622
|
-
await
|
|
1516
|
+
await s.post("/wallet/rotate-user-secret", h);
|
|
1623
1517
|
} catch (g) {
|
|
1624
|
-
const
|
|
1625
|
-
throw
|
|
1518
|
+
const I = Y(g, "Failed to rotate user secret");
|
|
1519
|
+
throw r(I.message), I;
|
|
1626
1520
|
} finally {
|
|
1627
|
-
|
|
1521
|
+
t(!1);
|
|
1628
1522
|
}
|
|
1629
1523
|
},
|
|
1630
|
-
[
|
|
1631
|
-
), f =
|
|
1632
|
-
async (
|
|
1633
|
-
if (!
|
|
1524
|
+
[s]
|
|
1525
|
+
), f = d(
|
|
1526
|
+
async (h) => {
|
|
1527
|
+
if (!s)
|
|
1634
1528
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1635
|
-
|
|
1529
|
+
t(!0), r(null);
|
|
1636
1530
|
try {
|
|
1637
|
-
return await
|
|
1531
|
+
return await s.post(
|
|
1638
1532
|
"/wallet/unlock",
|
|
1639
|
-
|
|
1533
|
+
xA(h)
|
|
1640
1534
|
);
|
|
1641
1535
|
} catch (g) {
|
|
1642
|
-
const
|
|
1643
|
-
throw
|
|
1536
|
+
const I = Y(g, "Failed to unlock wallet");
|
|
1537
|
+
throw r(I.message), I;
|
|
1644
1538
|
} finally {
|
|
1645
|
-
|
|
1539
|
+
t(!1);
|
|
1646
1540
|
}
|
|
1647
1541
|
},
|
|
1648
|
-
[
|
|
1649
|
-
),
|
|
1650
|
-
if (!
|
|
1542
|
+
[s]
|
|
1543
|
+
), u = d(async () => {
|
|
1544
|
+
if (!s)
|
|
1651
1545
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1652
|
-
|
|
1546
|
+
t(!0), r(null);
|
|
1653
1547
|
try {
|
|
1654
|
-
await
|
|
1655
|
-
} catch (
|
|
1656
|
-
const g =
|
|
1657
|
-
throw
|
|
1548
|
+
await s.post("/wallet/lock", {});
|
|
1549
|
+
} catch (h) {
|
|
1550
|
+
const g = Y(h, "Failed to lock wallet");
|
|
1551
|
+
throw r(g.message), g;
|
|
1658
1552
|
} finally {
|
|
1659
|
-
|
|
1553
|
+
t(!1);
|
|
1660
1554
|
}
|
|
1661
|
-
}, [
|
|
1662
|
-
async (
|
|
1663
|
-
if (!
|
|
1555
|
+
}, [s]), m = d(
|
|
1556
|
+
async (h) => {
|
|
1557
|
+
if (!s)
|
|
1664
1558
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1665
|
-
|
|
1559
|
+
t(!0), r(null);
|
|
1666
1560
|
try {
|
|
1667
|
-
return await
|
|
1561
|
+
return await s.post("/wallet/share-b", h);
|
|
1668
1562
|
} catch (g) {
|
|
1669
|
-
const
|
|
1670
|
-
throw
|
|
1563
|
+
const I = Y(g, "Failed to get Share B for recovery");
|
|
1564
|
+
throw r(I.message), I;
|
|
1671
1565
|
} finally {
|
|
1672
|
-
|
|
1566
|
+
t(!1);
|
|
1673
1567
|
}
|
|
1674
1568
|
},
|
|
1675
|
-
[
|
|
1676
|
-
),
|
|
1569
|
+
[s]
|
|
1570
|
+
), p = d(() => r(null), []);
|
|
1677
1571
|
return {
|
|
1678
|
-
getStatus:
|
|
1679
|
-
getMaterial:
|
|
1680
|
-
enroll:
|
|
1681
|
-
recover:
|
|
1682
|
-
signTransaction:
|
|
1683
|
-
rotateUserSecret:
|
|
1572
|
+
getStatus: k,
|
|
1573
|
+
getMaterial: w,
|
|
1574
|
+
enroll: B,
|
|
1575
|
+
recover: b,
|
|
1576
|
+
signTransaction: F,
|
|
1577
|
+
rotateUserSecret: Q,
|
|
1684
1578
|
unlock: f,
|
|
1685
|
-
lock:
|
|
1686
|
-
getShareBForRecovery:
|
|
1687
|
-
isLoading:
|
|
1688
|
-
error:
|
|
1689
|
-
clearError:
|
|
1579
|
+
lock: u,
|
|
1580
|
+
getShareBForRecovery: m,
|
|
1581
|
+
isLoading: A,
|
|
1582
|
+
error: i,
|
|
1583
|
+
clearError: p
|
|
1690
1584
|
};
|
|
1691
1585
|
}
|
|
1692
|
-
const
|
|
1586
|
+
const vA = {
|
|
1693
1587
|
status: "not_enrolled",
|
|
1694
1588
|
solanaPubkey: null,
|
|
1695
1589
|
authMethod: null,
|
|
@@ -1703,341 +1597,211 @@ const Tt = {
|
|
|
1703
1597
|
clearError: () => {
|
|
1704
1598
|
}
|
|
1705
1599
|
};
|
|
1706
|
-
function
|
|
1707
|
-
const
|
|
1708
|
-
|
|
1709
|
-
if (!
|
|
1710
|
-
let
|
|
1600
|
+
function TA() {
|
|
1601
|
+
const A = pe() !== null, [t, i] = G("loading"), [r, n] = G(null), [o, a] = G(null), [l, s] = G(!1), [k, w] = G(!1), [B, b] = G(null), [F, Q] = G(null), { getStatus: f, isLoading: u } = OA(), m = P(!1);
|
|
1602
|
+
N(() => {
|
|
1603
|
+
if (!A) return;
|
|
1604
|
+
let g = !1;
|
|
1711
1605
|
return (async () => {
|
|
1712
1606
|
try {
|
|
1713
|
-
const
|
|
1714
|
-
if (
|
|
1715
|
-
|
|
1607
|
+
const C = await YA();
|
|
1608
|
+
if (g) return;
|
|
1609
|
+
b(C), C.allSupported || (i("error"), Q(
|
|
1716
1610
|
"Your browser or device does not support all required features. Please use a modern browser with a platform authenticator."
|
|
1717
1611
|
));
|
|
1718
1612
|
} catch {
|
|
1719
|
-
if (
|
|
1720
|
-
|
|
1613
|
+
if (g) return;
|
|
1614
|
+
b(null), i("error"), Q("Failed to check crypto capabilities");
|
|
1721
1615
|
}
|
|
1722
1616
|
})(), () => {
|
|
1723
|
-
|
|
1617
|
+
g = !0;
|
|
1724
1618
|
};
|
|
1725
|
-
}, [
|
|
1726
|
-
const
|
|
1727
|
-
if (!(!
|
|
1728
|
-
|
|
1619
|
+
}, [A]);
|
|
1620
|
+
const p = d(async () => {
|
|
1621
|
+
if (!(!A || !B?.allSupported)) {
|
|
1622
|
+
i("loading"), Q(null);
|
|
1729
1623
|
try {
|
|
1730
|
-
const
|
|
1731
|
-
|
|
1732
|
-
} catch (
|
|
1733
|
-
|
|
1624
|
+
const g = await f();
|
|
1625
|
+
n(g.solanaPubkey ?? null), a(g.authMethod ?? null), s(g.hasExternalWallet), w(g.unlocked), g.hasExternalWallet ? i("enrolled_unlocked") : g.enrolled ? i(g.unlocked ? "enrolled_unlocked" : "enrolled_locked") : i("not_enrolled");
|
|
1626
|
+
} catch (g) {
|
|
1627
|
+
i("error"), Q(g instanceof Error ? g.message : "Failed to fetch wallet status");
|
|
1734
1628
|
}
|
|
1735
1629
|
}
|
|
1736
|
-
}, [
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
}, [
|
|
1740
|
-
const
|
|
1741
|
-
return
|
|
1742
|
-
status:
|
|
1743
|
-
solanaPubkey:
|
|
1630
|
+
}, [A, B?.allSupported, f]);
|
|
1631
|
+
N(() => {
|
|
1632
|
+
A && B?.allSupported && !u && !m.current && (m.current = !0, p());
|
|
1633
|
+
}, [A, B?.allSupported, u, p]);
|
|
1634
|
+
const h = d(() => Q(null), []);
|
|
1635
|
+
return A ? {
|
|
1636
|
+
status: t,
|
|
1637
|
+
solanaPubkey: r,
|
|
1744
1638
|
authMethod: o,
|
|
1745
|
-
hasExternalWallet:
|
|
1746
|
-
isUnlocked:
|
|
1747
|
-
capabilities:
|
|
1748
|
-
isSupported:
|
|
1749
|
-
error:
|
|
1750
|
-
refresh:
|
|
1751
|
-
clearError:
|
|
1752
|
-
} :
|
|
1753
|
-
}
|
|
1754
|
-
const
|
|
1755
|
-
function
|
|
1756
|
-
typeof window < "u" && (window[
|
|
1757
|
-
}
|
|
1758
|
-
function
|
|
1759
|
-
typeof window < "u" && delete window[
|
|
1760
|
-
}
|
|
1761
|
-
function
|
|
1762
|
-
return typeof window > "u" ? !1 : window[
|
|
1763
|
-
}
|
|
1764
|
-
function
|
|
1765
|
-
return typeof window > "u" ? null : window[
|
|
1766
|
-
}
|
|
1767
|
-
function
|
|
1768
|
-
const { config: e, user:
|
|
1769
|
-
return
|
|
1770
|
-
if (!
|
|
1771
|
-
|
|
1639
|
+
hasExternalWallet: l,
|
|
1640
|
+
isUnlocked: k,
|
|
1641
|
+
capabilities: B,
|
|
1642
|
+
isSupported: B?.allSupported ?? !1,
|
|
1643
|
+
error: F,
|
|
1644
|
+
refresh: p,
|
|
1645
|
+
clearError: h
|
|
1646
|
+
} : vA;
|
|
1647
|
+
}
|
|
1648
|
+
const te = "__CEDROS_EMBEDDED_WALLET__";
|
|
1649
|
+
function RA(e) {
|
|
1650
|
+
typeof window < "u" && (window[te] = e);
|
|
1651
|
+
}
|
|
1652
|
+
function ce() {
|
|
1653
|
+
typeof window < "u" && delete window[te];
|
|
1654
|
+
}
|
|
1655
|
+
function It() {
|
|
1656
|
+
return typeof window > "u" ? !1 : window[te]?.available ?? !1;
|
|
1657
|
+
}
|
|
1658
|
+
function at() {
|
|
1659
|
+
return typeof window > "u" ? null : window[te] ?? null;
|
|
1660
|
+
}
|
|
1661
|
+
function LA() {
|
|
1662
|
+
const { config: e, user: A } = ye(), { status: t, solanaPubkey: i, hasExternalWallet: r } = TA(), n = e.wallet?.exposeAvailability ?? !1, o = e.wallet?.exposePublicKey ?? !1;
|
|
1663
|
+
return N(() => {
|
|
1664
|
+
if (!n || !A) {
|
|
1665
|
+
ce();
|
|
1772
1666
|
return;
|
|
1773
1667
|
}
|
|
1774
|
-
if (
|
|
1775
|
-
|
|
1668
|
+
if (r) {
|
|
1669
|
+
ce();
|
|
1776
1670
|
return;
|
|
1777
1671
|
}
|
|
1778
|
-
if (
|
|
1672
|
+
if (t === "loading")
|
|
1779
1673
|
return;
|
|
1780
|
-
const
|
|
1781
|
-
return
|
|
1782
|
-
available:
|
|
1783
|
-
publicKey: o &&
|
|
1674
|
+
const a = t === "enrolled_locked" || t === "enrolled_unlocked";
|
|
1675
|
+
return RA({
|
|
1676
|
+
available: a,
|
|
1677
|
+
publicKey: o && a ? i : null
|
|
1784
1678
|
}), () => {
|
|
1785
|
-
|
|
1679
|
+
ce();
|
|
1786
1680
|
};
|
|
1787
|
-
}, [
|
|
1788
|
-
}
|
|
1789
|
-
function
|
|
1790
|
-
const [
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
() =>
|
|
1795
|
-
|
|
1681
|
+
}, [n, o, A, t, i, r]), null;
|
|
1682
|
+
}
|
|
1683
|
+
function gt({ config: e, children: A }) {
|
|
1684
|
+
const [t, i] = G(null), [r, n] = G(!1), o = P(e.callbacks);
|
|
1685
|
+
o.current = e.callbacks;
|
|
1686
|
+
const a = P({
|
|
1687
|
+
onLoginSuccess: (...D) => o.current?.onLoginSuccess?.(...D),
|
|
1688
|
+
onLoginError: (...D) => o.current?.onLoginError?.(...D),
|
|
1689
|
+
onLogout: () => o.current?.onLogout?.(),
|
|
1690
|
+
onSessionExpired: () => o.current?.onSessionExpired?.()
|
|
1691
|
+
}), l = e.features === "auto", { features: s, isLoading: k } = Ne(
|
|
1692
|
+
e.serverUrl,
|
|
1693
|
+
l,
|
|
1694
|
+
e.requestTimeout
|
|
1695
|
+
), w = V(() => !l || !s ? e : { ...e, features: s }, [e, l, s]), B = V(
|
|
1696
|
+
() => JSON.stringify(w.themeOverrides ?? null),
|
|
1697
|
+
[w.themeOverrides]
|
|
1698
|
+
), b = V(() => JSON.stringify(w.session ?? null), [w.session]), F = V(() => JSON.stringify(w.features ?? null), [w.features]), Q = V(() => JSON.stringify(w.forms ?? null), [w.forms]), f = V(
|
|
1699
|
+
() => w,
|
|
1700
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison; callbacks excluded (see UI-06)
|
|
1796
1701
|
[
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
e.callbacks
|
|
1702
|
+
w.serverUrl,
|
|
1703
|
+
w.googleClientId,
|
|
1704
|
+
w.requestTimeout,
|
|
1705
|
+
w.retryAttempts,
|
|
1706
|
+
w.theme,
|
|
1707
|
+
B,
|
|
1708
|
+
b,
|
|
1709
|
+
F,
|
|
1710
|
+
Q
|
|
1807
1711
|
]
|
|
1808
1712
|
);
|
|
1809
|
-
|
|
1810
|
-
theme:
|
|
1811
|
-
themeOverrides:
|
|
1713
|
+
Me({
|
|
1714
|
+
theme: f.theme,
|
|
1715
|
+
themeOverrides: f.themeOverrides
|
|
1812
1716
|
});
|
|
1813
1717
|
const {
|
|
1814
|
-
user:
|
|
1815
|
-
authState:
|
|
1816
|
-
handleLoginSuccess:
|
|
1817
|
-
logout:
|
|
1818
|
-
refreshUser:
|
|
1819
|
-
getAccessToken:
|
|
1820
|
-
} =
|
|
1821
|
-
serverUrl:
|
|
1822
|
-
session:
|
|
1823
|
-
callbacks:
|
|
1824
|
-
requestTimeoutMs:
|
|
1825
|
-
}),
|
|
1826
|
-
|
|
1827
|
-
}, [
|
|
1828
|
-
(...
|
|
1829
|
-
|
|
1718
|
+
user: u,
|
|
1719
|
+
authState: m,
|
|
1720
|
+
handleLoginSuccess: p,
|
|
1721
|
+
logout: h,
|
|
1722
|
+
refreshUser: g,
|
|
1723
|
+
getAccessToken: I
|
|
1724
|
+
} = Le({
|
|
1725
|
+
serverUrl: f.serverUrl,
|
|
1726
|
+
session: f.session,
|
|
1727
|
+
callbacks: a.current,
|
|
1728
|
+
requestTimeoutMs: f.requestTimeout
|
|
1729
|
+
}), C = d(async () => {
|
|
1730
|
+
i(null), await h();
|
|
1731
|
+
}, [h]), S = d(
|
|
1732
|
+
(...D) => {
|
|
1733
|
+
i(null), p(...D);
|
|
1830
1734
|
},
|
|
1831
|
-
[
|
|
1832
|
-
),
|
|
1735
|
+
[p]
|
|
1736
|
+
), H = d(() => n(!0), []), c = d(() => n(!1), []), E = V(
|
|
1833
1737
|
() => ({
|
|
1834
|
-
config:
|
|
1835
|
-
user:
|
|
1836
|
-
authState:
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
refreshUser: h,
|
|
1840
|
-
isModalOpen: n,
|
|
1841
|
-
openModal: d,
|
|
1842
|
-
closeModal: D,
|
|
1738
|
+
config: f,
|
|
1739
|
+
user: u,
|
|
1740
|
+
authState: m,
|
|
1741
|
+
logout: C,
|
|
1742
|
+
refreshUser: g,
|
|
1843
1743
|
_internal: {
|
|
1844
|
-
handleLoginSuccess:
|
|
1845
|
-
getAccessToken:
|
|
1744
|
+
handleLoginSuccess: S,
|
|
1745
|
+
getAccessToken: I
|
|
1846
1746
|
}
|
|
1847
1747
|
}),
|
|
1848
|
-
[
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
]
|
|
1748
|
+
[f, u, m, C, g, S, I]
|
|
1749
|
+
), U = V(
|
|
1750
|
+
() => ({
|
|
1751
|
+
error: t,
|
|
1752
|
+
isModalOpen: r,
|
|
1753
|
+
openModal: H,
|
|
1754
|
+
closeModal: c
|
|
1755
|
+
}),
|
|
1756
|
+
[t, r, H, c]
|
|
1757
|
+
), K = V(
|
|
1758
|
+
() => ({ ...E, ...U }),
|
|
1759
|
+
[E, U]
|
|
1861
1760
|
);
|
|
1862
|
-
return /* @__PURE__ */
|
|
1863
|
-
/* @__PURE__ */
|
|
1864
|
-
|
|
1865
|
-
] });
|
|
1761
|
+
return l && k ? null : /* @__PURE__ */ ne(He.Provider, { value: E, children: /* @__PURE__ */ ne(Je.Provider, { value: U, children: /* @__PURE__ */ Ke(Ve.Provider, { value: K, children: [
|
|
1762
|
+
/* @__PURE__ */ ne(LA, {}),
|
|
1763
|
+
A
|
|
1764
|
+
] }) }) });
|
|
1866
1765
|
}
|
|
1867
|
-
function
|
|
1868
|
-
const { user: e, authState:
|
|
1766
|
+
function lt() {
|
|
1767
|
+
const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } = ye();
|
|
1869
1768
|
return {
|
|
1870
1769
|
user: e,
|
|
1871
|
-
authState:
|
|
1872
|
-
error:
|
|
1873
|
-
isAuthenticated:
|
|
1874
|
-
isLoading:
|
|
1875
|
-
logout:
|
|
1876
|
-
refreshUser:
|
|
1877
|
-
openLoginModal:
|
|
1770
|
+
authState: A,
|
|
1771
|
+
error: t,
|
|
1772
|
+
isAuthenticated: A === "authenticated" && e !== null,
|
|
1773
|
+
isLoading: A === "loading",
|
|
1774
|
+
logout: i,
|
|
1775
|
+
refreshUser: r,
|
|
1776
|
+
openLoginModal: n,
|
|
1878
1777
|
closeLoginModal: o
|
|
1879
1778
|
};
|
|
1880
1779
|
}
|
|
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
1780
|
export {
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
Be as u,
|
|
2038
|
-
ze as v,
|
|
2039
|
-
zt as w,
|
|
2040
|
-
Rt as x,
|
|
2041
|
-
ae as y,
|
|
2042
|
-
sA as z
|
|
1781
|
+
gt as C,
|
|
1782
|
+
Xe as D,
|
|
1783
|
+
zA as a,
|
|
1784
|
+
At as b,
|
|
1785
|
+
z as c,
|
|
1786
|
+
it as d,
|
|
1787
|
+
Se as e,
|
|
1788
|
+
_A as f,
|
|
1789
|
+
$A as g,
|
|
1790
|
+
ze as h,
|
|
1791
|
+
ot as i,
|
|
1792
|
+
st as j,
|
|
1793
|
+
OA as k,
|
|
1794
|
+
rA as l,
|
|
1795
|
+
nt as m,
|
|
1796
|
+
tt as n,
|
|
1797
|
+
xA as o,
|
|
1798
|
+
sA as p,
|
|
1799
|
+
TA as q,
|
|
1800
|
+
rt as r,
|
|
1801
|
+
It as s,
|
|
1802
|
+
ke as t,
|
|
1803
|
+
lt as u,
|
|
1804
|
+
bA as v,
|
|
1805
|
+
et as w,
|
|
1806
|
+
at as x
|
|
2043
1807
|
};
|