@cedros/login-react 0.0.13 → 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/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-BGjfrIe3.js → AdminWithdrawalHistory-Cud-yuWy.js} +295 -283
- 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-5Vi7Ib_A.cjs → AuthenticationSettings-D739nNul.cjs} +1 -1
- package/dist/{AuthenticationSettings-5Vi7Ib_A.cjs.map → AuthenticationSettings-D739nNul.cjs.map} +1 -1
- package/dist/AuthenticationSettings-DtLoxQ2z.cjs +1 -0
- package/dist/{AuthenticationSettings-BPAh1my6.cjs.map → AuthenticationSettings-DtLoxQ2z.cjs.map} +1 -1
- package/dist/{AuthenticationSettings-CJg8CJY9.js → AuthenticationSettings-Dx3JCI3m.js} +1 -1
- package/dist/{AuthenticationSettings-CJg8CJY9.js.map → AuthenticationSettings-Dx3JCI3m.js.map} +1 -1
- package/dist/{AuthenticationSettings-CR_i6TTS.js → AuthenticationSettings-vowmQPXz.js} +170 -140
- package/dist/{AuthenticationSettings-CR_i6TTS.js.map → AuthenticationSettings-vowmQPXz.js.map} +1 -1
- package/dist/{AutosaveStatus-CYkC2aI_.cjs → AutosaveStatus-CCrZszKA.cjs} +1 -1
- package/dist/{AutosaveStatus-CYkC2aI_.cjs.map → AutosaveStatus-CCrZszKA.cjs.map} +1 -1
- package/dist/{AutosaveStatus-N4uNS6-2.js → AutosaveStatus-Ciyt350A.js} +1 -1
- package/dist/{AutosaveStatus-N4uNS6-2.js.map → AutosaveStatus-Ciyt350A.js.map} +1 -1
- package/dist/{CreditSystemSettings-CIf_SfJq.js → CreditSystemSettings-BQ3h4CyM.js} +1 -1
- package/dist/{CreditSystemSettings-CIf_SfJq.js.map → CreditSystemSettings-BQ3h4CyM.js.map} +1 -1
- package/dist/{CreditSystemSettings-BnAOK_tT.cjs → CreditSystemSettings-C6dUsu72.cjs} +1 -1
- package/dist/{CreditSystemSettings-BnAOK_tT.cjs.map → CreditSystemSettings-C6dUsu72.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-Ck5WIMp3.cjs → CreditSystemSettings-CBot8EPW.cjs} +1 -1
- package/dist/{CreditSystemSettings-Ck5WIMp3.cjs.map → CreditSystemSettings-CBot8EPW.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-CePYGgev.js → CreditSystemSettings-bVuNLsqp.js} +1 -1
- package/dist/{CreditSystemSettings-CePYGgev.js.map → CreditSystemSettings-bVuNLsqp.js.map} +1 -1
- package/dist/DepositsSection-BkKUS4vk.cjs +1 -0
- package/dist/DepositsSection-BkKUS4vk.cjs.map +1 -0
- package/dist/{DepositsSection-DA89uR9A.js → DepositsSection-DD9MKUFt.js} +20 -14
- package/dist/DepositsSection-DD9MKUFt.js.map +1 -0
- package/dist/EmailRegisterForm-Pvm3I8GP.cjs +1 -0
- package/dist/{EmailRegisterForm-CxktR-4J.cjs.map → EmailRegisterForm-Pvm3I8GP.cjs.map} +1 -1
- package/dist/{EmailRegisterForm-BrDL3BZy.js → EmailRegisterForm-nI0BOIxR.js} +2 -2
- package/dist/{EmailRegisterForm-BrDL3BZy.js.map → EmailRegisterForm-nI0BOIxR.js.map} +1 -1
- package/dist/{EmailSettings-DZywTTRq.cjs → EmailSettings-B9qwPSiM.cjs} +1 -1
- package/dist/{EmailSettings-DZywTTRq.cjs.map → EmailSettings-B9qwPSiM.cjs.map} +1 -1
- package/dist/{EmailSettings-DbMDfVaM.js → EmailSettings-CCA8dNCi.js} +1 -1
- package/dist/{EmailSettings-DbMDfVaM.js.map → EmailSettings-CCA8dNCi.js.map} +1 -1
- package/dist/{EmailSettings-B8xwgd6_.cjs → EmailSettings-RbgAq9FB.cjs} +1 -1
- package/dist/{EmailSettings-B8xwgd6_.cjs.map → EmailSettings-RbgAq9FB.cjs.map} +1 -1
- package/dist/{EmailSettings-Bna7Z53E.js → EmailSettings-mxlKNcPl.js} +1 -1
- package/dist/{EmailSettings-Bna7Z53E.js.map → EmailSettings-mxlKNcPl.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-DivEPn39.cjs → EmbeddedWalletSettings-B4h-8rxB.cjs} +1 -1
- package/dist/{EmbeddedWalletSettings-DivEPn39.cjs.map → EmbeddedWalletSettings-B4h-8rxB.cjs.map} +1 -1
- package/dist/{EmbeddedWalletSettings-BEztqO19.js → EmbeddedWalletSettings-BInZvFZf.js} +1 -1
- package/dist/{EmbeddedWalletSettings-BEztqO19.js.map → EmbeddedWalletSettings-BInZvFZf.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-ANbhj3Lt.js → EmbeddedWalletSettings-CXlZFFDw.js} +1 -1
- package/dist/{EmbeddedWalletSettings-ANbhj3Lt.js.map → EmbeddedWalletSettings-CXlZFFDw.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-D6M7pwgk.cjs → EmbeddedWalletSettings-D5JXae1L.cjs} +1 -1
- package/dist/{EmbeddedWalletSettings-D6M7pwgk.cjs.map → EmbeddedWalletSettings-D5JXae1L.cjs.map} +1 -1
- package/dist/{GoogleLoginButton-B3uRMJ_n.js → GoogleLoginButton-CXwp4LsQ.js} +1 -1
- package/dist/{GoogleLoginButton-B3uRMJ_n.js.map → GoogleLoginButton-CXwp4LsQ.js.map} +1 -1
- package/dist/GoogleLoginButton-zS_69-KV.cjs +1 -0
- package/dist/{GoogleLoginButton-BydKswn4.cjs.map → GoogleLoginButton-zS_69-KV.cjs.map} +1 -1
- package/dist/PermissionsSection-BPbE-hNx.cjs +1 -0
- package/dist/{PermissionsSection-CKXXDfqi.cjs.map → PermissionsSection-BPbE-hNx.cjs.map} +1 -1
- package/dist/{PermissionsSection-BGaj_sI7.js → PermissionsSection-CighC1p6.js} +3 -3
- package/dist/{PermissionsSection-BGaj_sI7.js.map → PermissionsSection-CighC1p6.js.map} +1 -1
- package/dist/{ServerSettings-B2RKhJtZ.js → ServerSettings-BE8fsE5k.js} +1 -1
- package/dist/{ServerSettings-B2RKhJtZ.js.map → ServerSettings-BE8fsE5k.js.map} +1 -1
- package/dist/{ServerSettings-BZXlm1BX.cjs → ServerSettings-CYTlQ2xy.cjs} +1 -1
- package/dist/{ServerSettings-BZXlm1BX.cjs.map → ServerSettings-CYTlQ2xy.cjs.map} +1 -1
- package/dist/{ServerSettings-DZUKo6By.cjs → ServerSettings-DFs9jQ3f.cjs} +1 -1
- package/dist/{ServerSettings-DZUKo6By.cjs.map → ServerSettings-DFs9jQ3f.cjs.map} +1 -1
- package/dist/{ServerSettings-Bqm4-bt2.js → ServerSettings-pSmWDC1d.js} +1 -1
- package/dist/{ServerSettings-Bqm4-bt2.js.map → ServerSettings-pSmWDC1d.js.map} +1 -1
- package/dist/{SettingsPageLayout-DpgNEkuu.js → SettingsPageLayout--GZ_iHLc.js} +1 -1
- package/dist/{SettingsPageLayout-DpgNEkuu.js.map → SettingsPageLayout--GZ_iHLc.js.map} +1 -1
- package/dist/{SettingsPageLayout-COSYLMu7.cjs → SettingsPageLayout-j5lMjEID.cjs} +1 -1
- package/dist/{SettingsPageLayout-COSYLMu7.cjs.map → SettingsPageLayout-j5lMjEID.cjs.map} +1 -1
- package/dist/SolanaLoginButton-BjOxpE1C.cjs +1 -0
- package/dist/{SolanaLoginButton-fAW7kRUu.cjs.map → SolanaLoginButton-BjOxpE1C.cjs.map} +1 -1
- package/dist/{SolanaLoginButton-C_u9OppS.js → SolanaLoginButton-P22QjBaO.js} +1 -1
- package/dist/{SolanaLoginButton-C_u9OppS.js.map → SolanaLoginButton-P22QjBaO.js.map} +1 -1
- package/dist/{TeamSection-CvrCoa9D.js → TeamSection-BIECkp7g.js} +2 -2
- package/dist/{TeamSection-CvrCoa9D.js.map → TeamSection-BIECkp7g.js.map} +1 -1
- package/dist/{TeamSection-DlUD5kp5.cjs → TeamSection-BOH9pv_E.cjs} +1 -1
- package/dist/{TeamSection-DlUD5kp5.cjs.map → TeamSection-BOH9pv_E.cjs.map} +1 -1
- 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-bUg2u_p0.js → WebhookSettings-Bb70MbFj.js} +1 -1
- package/dist/{WebhookSettings-bUg2u_p0.js.map → WebhookSettings-Bb70MbFj.js.map} +1 -1
- package/dist/{WebhookSettings-BWl_wsvg.cjs → WebhookSettings-C-gvNAW1.cjs} +1 -1
- package/dist/{WebhookSettings-BWl_wsvg.cjs.map → WebhookSettings-C-gvNAW1.cjs.map} +1 -1
- package/dist/{WebhookSettings-DXNH5bal.cjs → WebhookSettings-CGyDKjrm.cjs} +1 -1
- package/dist/{WebhookSettings-DXNH5bal.cjs.map → WebhookSettings-CGyDKjrm.cjs.map} +1 -1
- package/dist/{WebhookSettings-BT5q6AZ8.js → WebhookSettings-kIstSjZi.js} +1 -1
- package/dist/{WebhookSettings-BT5q6AZ8.js.map → WebhookSettings-kIstSjZi.js.map} +1 -1
- 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 -1
- package/dist/admin-only.js +1 -1
- package/dist/email-only.cjs +1 -1
- package/dist/email-only.d.ts +13 -2
- package/dist/email-only.js +3 -3
- package/dist/google-only.cjs +1 -1
- package/dist/google-only.d.ts +13 -2
- package/dist/google-only.js +3 -3
- package/dist/index.cjs +12 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +31 -8
- package/dist/index.js +1066 -1092
- package/dist/index.js.map +1 -1
- package/dist/{plugin-BtYBW6JY.cjs → plugin-8_dpq7tC.cjs} +1 -1
- package/dist/{plugin-BtYBW6JY.cjs.map → plugin-8_dpq7tC.cjs.map} +1 -1
- package/dist/{plugin-5qRh-YhX.js → plugin-D1NdppqC.js} +1 -1
- package/dist/{plugin-5qRh-YhX.js.map → plugin-D1NdppqC.js.map} +1 -1
- package/dist/{shamir-AeLLfw0p.cjs → shamir-4DyQMJCk.cjs} +1 -1
- package/dist/{shamir-AeLLfw0p.cjs.map → shamir-4DyQMJCk.cjs.map} +1 -1
- package/dist/{shamir-B0wConeK.js → shamir-L-s-Tp1Z.js} +1 -1
- package/dist/{shamir-B0wConeK.js.map → shamir-L-s-Tp1Z.js.map} +1 -1
- package/dist/silentWalletEnroll-BgTb4H5I.cjs +1 -0
- package/dist/{silentWalletEnroll-B8pgdKZO.cjs.map → silentWalletEnroll-BgTb4H5I.cjs.map} +1 -1
- package/dist/{silentWalletEnroll-DR2kPw7W.js → silentWalletEnroll-DWt6Pr3B.js} +3 -3
- package/dist/{silentWalletEnroll-DR2kPw7W.js.map → silentWalletEnroll-DWt6Pr3B.js.map} +1 -1
- package/dist/solana-only.cjs +1 -1
- package/dist/solana-only.d.ts +13 -2
- package/dist/solana-only.js +3 -3
- package/dist/{useAdminDeposits-BDY5KJ0-.js → useAdminDeposits-BTSyeAfg.js} +1 -1
- package/dist/{useAdminDeposits-BDY5KJ0-.js.map → useAdminDeposits-BTSyeAfg.js.map} +1 -1
- package/dist/useAdminDeposits-BkkCwHWp.cjs +1 -0
- package/dist/{useAdminDeposits-Dvx3_UUE.cjs.map → useAdminDeposits-BkkCwHWp.cjs.map} +1 -1
- package/dist/{useAuth-Bge6KaWN.js → useAuth-C3dpk0po.js} +597 -561
- 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/{apiClient-B2JxVPlH.js → useCedrosLogin-_94MmGGq.js} +29 -29
- package/dist/useCedrosLogin-_94MmGGq.js.map +1 -0
- package/dist/{useOrgs-Be3KH4ib.js → useOrgs-C3pzMA9h.js} +1 -1
- package/dist/{useOrgs-Be3KH4ib.js.map → useOrgs-C3pzMA9h.js.map} +1 -1
- package/dist/useOrgs-DDVRCaVi.cjs +1 -0
- package/dist/{useOrgs-CVbacmaQ.cjs.map → useOrgs-DDVRCaVi.cjs.map} +1 -1
- package/dist/{useSystemSettings-DN5YqfNq.js → useSystemSettings-DBlAMjFi.js} +1 -1
- package/dist/{useSystemSettings-DN5YqfNq.js.map → useSystemSettings-DBlAMjFi.js.map} +1 -1
- package/dist/useSystemSettings-DRrreszl.cjs +1 -0
- package/dist/{useSystemSettings-D9Cr7ZTl.cjs.map → useSystemSettings-DRrreszl.cjs.map} +1 -1
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs +1 -0
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs.map +1 -0
- package/dist/{AdminUserDetail-DHFDzY8B.js → useUsersStatsSummary-NjEFvWuz.js} +431 -380
- package/dist/useUsersStatsSummary-NjEFvWuz.js.map +1 -0
- package/package.json +1 -1
- package/dist/AdminDepositList-Cx0xRwES.js +0 -305
- package/dist/AdminDepositList-Cx0xRwES.js.map +0 -1
- package/dist/AdminDepositList-UEcyRZkA.cjs +0 -1
- package/dist/AdminDepositList-UEcyRZkA.cjs.map +0 -1
- package/dist/AdminUserDetail-BzEIdNJh.cjs +0 -1
- package/dist/AdminUserDetail-BzEIdNJh.cjs.map +0 -1
- package/dist/AdminUserDetail-DHFDzY8B.js.map +0 -1
- package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs +0 -1
- package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs.map +0 -1
- package/dist/AdminWithdrawalHistory-BGjfrIe3.js.map +0 -1
- package/dist/AuthenticationSettings-BPAh1my6.cjs +0 -1
- package/dist/DepositsSection-DA89uR9A.js.map +0 -1
- package/dist/DepositsSection-i6XdhLNs.cjs +0 -1
- package/dist/DepositsSection-i6XdhLNs.cjs.map +0 -1
- package/dist/EmailRegisterForm-CxktR-4J.cjs +0 -1
- package/dist/GoogleLoginButton-BydKswn4.cjs +0 -1
- package/dist/PermissionsSection-CKXXDfqi.cjs +0 -1
- package/dist/SolanaLoginButton-fAW7kRUu.cjs +0 -1
- package/dist/UsersSection-C2U8Tb7V.cjs +0 -1
- package/dist/UsersSection-C2U8Tb7V.cjs.map +0 -1
- package/dist/UsersSection-Dbh9PTSA.js +0 -83
- package/dist/UsersSection-Dbh9PTSA.js.map +0 -1
- package/dist/WithdrawalsSection-BL_LOUq8.cjs +0 -1
- package/dist/WithdrawalsSection-BL_LOUq8.cjs.map +0 -1
- package/dist/WithdrawalsSection-CN-lLnqX.js +0 -20
- package/dist/WithdrawalsSection-CN-lLnqX.js.map +0 -1
- package/dist/apiClient-B2JxVPlH.js.map +0 -1
- package/dist/apiClient-CTTKhsYb.cjs +0 -1
- package/dist/apiClient-CTTKhsYb.cjs.map +0 -1
- package/dist/silentWalletEnroll-B8pgdKZO.cjs +0 -1
- package/dist/useAdminDeposits-Dvx3_UUE.cjs +0 -1
- package/dist/useAuth-Bge6KaWN.js.map +0 -1
- package/dist/useAuth-DhIDTLRd.cjs +0 -1
- package/dist/useAuth-DhIDTLRd.cjs.map +0 -1
- package/dist/useOrgs-CVbacmaQ.cjs +0 -1
- package/dist/useSystemSettings-D9Cr7ZTl.cjs +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as ne, jsxs as
|
|
2
|
-
import { useEffect as
|
|
3
|
-
import { A as
|
|
4
|
-
import {
|
|
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
5
|
let Z = 0;
|
|
6
6
|
function Me({ theme: e, themeOverrides: A }) {
|
|
7
|
-
|
|
7
|
+
N(() => {
|
|
8
8
|
if (typeof document > "u" || typeof window > "u")
|
|
9
9
|
return;
|
|
10
10
|
const t = document.documentElement;
|
|
@@ -13,20 +13,52 @@ function Me({ theme: e, themeOverrides: A }) {
|
|
|
13
13
|
let r = !1;
|
|
14
14
|
i ? (Z++, r = !0, t.classList.add("cedros-dark")) : Z === 0 && t.classList.remove("cedros-dark");
|
|
15
15
|
const n = /* @__PURE__ */ new Map();
|
|
16
|
-
return A && Object.entries(A).forEach(([o,
|
|
17
|
-
if (
|
|
18
|
-
const
|
|
19
|
-
n.set(o,
|
|
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);
|
|
20
20
|
}
|
|
21
21
|
}), () => {
|
|
22
|
-
r && (Z--, Z === 0 && t.classList.remove("cedros-dark")), n.forEach((o,
|
|
23
|
-
o ? t.style.setProperty(
|
|
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);
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
26
|
}, [e, A]);
|
|
27
27
|
}
|
|
28
|
-
const Pe =
|
|
29
|
-
|
|
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 };
|
|
59
|
+
}
|
|
60
|
+
const Ye = "cedros_tokens", xe = 6e4;
|
|
61
|
+
class Oe {
|
|
30
62
|
storage;
|
|
31
63
|
requestedStorage;
|
|
32
64
|
storageKey;
|
|
@@ -41,7 +73,7 @@ class Ne {
|
|
|
41
73
|
// S-13: Prevent onSessionExpired from firing multiple times
|
|
42
74
|
sessionExpiredFired = !1;
|
|
43
75
|
allowWebStorage;
|
|
44
|
-
constructor(A = "cookie", t =
|
|
76
|
+
constructor(A = "cookie", t = Ye, i = {}) {
|
|
45
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();
|
|
46
78
|
}
|
|
47
79
|
/**
|
|
@@ -133,7 +165,7 @@ class Ne {
|
|
|
133
165
|
}
|
|
134
166
|
scheduleRefresh() {
|
|
135
167
|
if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;
|
|
136
|
-
const A = this.getTimeUntilExpiry(), t = Math.max(0, A -
|
|
168
|
+
const A = this.getTimeUntilExpiry(), t = Math.max(0, A - xe);
|
|
137
169
|
if (t <= 0) {
|
|
138
170
|
if (this.isDestroyed) return;
|
|
139
171
|
this.onRefreshNeeded().catch((i) => {
|
|
@@ -205,13 +237,13 @@ class Ne {
|
|
|
205
237
|
}
|
|
206
238
|
}
|
|
207
239
|
}
|
|
208
|
-
const
|
|
209
|
-
class
|
|
240
|
+
const ve = "cedros_auth_sync";
|
|
241
|
+
class Te {
|
|
210
242
|
channel = null;
|
|
211
243
|
callback = null;
|
|
212
244
|
boundHandler = null;
|
|
213
245
|
constructor() {
|
|
214
|
-
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));
|
|
215
247
|
}
|
|
216
248
|
/**
|
|
217
249
|
* Handle incoming sync messages.
|
|
@@ -267,29 +299,29 @@ function q(e) {
|
|
|
267
299
|
const t = A.user;
|
|
268
300
|
return typeof t.id == "string" && t.id.length > 0;
|
|
269
301
|
}
|
|
270
|
-
function
|
|
302
|
+
function Re(e) {
|
|
271
303
|
if (typeof e != "object" || e === null) return !1;
|
|
272
304
|
const A = e;
|
|
273
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;
|
|
274
306
|
}
|
|
275
|
-
function
|
|
307
|
+
function Le({
|
|
276
308
|
serverUrl: e,
|
|
277
309
|
session: A,
|
|
278
310
|
callbacks: t,
|
|
279
311
|
requestTimeoutMs: i
|
|
280
312
|
}) {
|
|
281
|
-
const [r, n] = G(null), [o,
|
|
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(() => {
|
|
282
314
|
});
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}, [t]),
|
|
286
|
-
|
|
315
|
+
N(() => {
|
|
316
|
+
k.current = t;
|
|
317
|
+
}, [t]), N(() => (w.current = !0, () => {
|
|
318
|
+
w.current = !1;
|
|
287
319
|
}), []);
|
|
288
|
-
const
|
|
289
|
-
|
|
290
|
-
}, []),
|
|
291
|
-
|
|
292
|
-
}, []), u =
|
|
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
326
|
storage: A?.storage ?? "cookie",
|
|
295
327
|
autoRefresh: A?.autoRefresh ?? !0,
|
|
@@ -305,12 +337,12 @@ function Te({
|
|
|
305
337
|
A?.allowWebStorage
|
|
306
338
|
]
|
|
307
339
|
);
|
|
308
|
-
|
|
309
|
-
const
|
|
340
|
+
N(() => {
|
|
341
|
+
const c = new Oe(u.storage, u.persistKey, {
|
|
310
342
|
allowWebStorage: u.allowWebStorage
|
|
311
343
|
});
|
|
312
|
-
return
|
|
313
|
-
|
|
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();
|
|
314
346
|
};
|
|
315
347
|
}, [
|
|
316
348
|
u.storage,
|
|
@@ -319,273 +351,273 @@ function Te({
|
|
|
319
351
|
u.allowWebStorage,
|
|
320
352
|
u.autoRefresh
|
|
321
353
|
]);
|
|
322
|
-
const
|
|
323
|
-
if (
|
|
324
|
-
return
|
|
325
|
-
const
|
|
326
|
-
|
|
327
|
-
let
|
|
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;
|
|
328
360
|
const v = new Promise((j, ie) => {
|
|
329
|
-
|
|
361
|
+
D = j, J = ie;
|
|
330
362
|
});
|
|
331
|
-
|
|
332
|
-
const j = new AbortController(), ie = i ?? 1e4,
|
|
363
|
+
B.current = v, (async () => {
|
|
364
|
+
const j = new AbortController(), ie = i ?? 1e4, Ge = window.setTimeout(() => j.abort(), ie);
|
|
333
365
|
try {
|
|
334
|
-
const
|
|
366
|
+
const L = await fetch(`${e}/refresh`, {
|
|
335
367
|
method: "POST",
|
|
336
368
|
headers: Object.keys(K).length > 0 ? K : void 0,
|
|
337
369
|
credentials: "include",
|
|
338
|
-
body:
|
|
370
|
+
body: E ? JSON.stringify({ refreshToken: c }) : void 0,
|
|
339
371
|
signal: j.signal
|
|
340
372
|
});
|
|
341
|
-
if (!
|
|
373
|
+
if (!L.ok)
|
|
342
374
|
throw new Error("Token refresh failed");
|
|
343
|
-
const re = await
|
|
375
|
+
const re = await L.json();
|
|
344
376
|
if (re.tokens) {
|
|
345
|
-
if (!
|
|
377
|
+
if (!Re(re.tokens))
|
|
346
378
|
throw new Error("Invalid token response structure");
|
|
347
|
-
|
|
379
|
+
l.current?.setTokens(re.tokens);
|
|
348
380
|
} else if (u.storage !== "cookie")
|
|
349
381
|
throw new Error("Token refresh failed");
|
|
350
|
-
|
|
351
|
-
} catch (
|
|
352
|
-
throw J(
|
|
382
|
+
s.current?.broadcastRefresh(), D();
|
|
383
|
+
} catch (L) {
|
|
384
|
+
throw J(L), L;
|
|
353
385
|
} finally {
|
|
354
|
-
window.clearTimeout(
|
|
386
|
+
window.clearTimeout(Ge);
|
|
355
387
|
}
|
|
356
388
|
})().catch(() => {
|
|
357
389
|
});
|
|
358
390
|
try {
|
|
359
391
|
await v;
|
|
360
392
|
} finally {
|
|
361
|
-
|
|
393
|
+
B.current = null;
|
|
362
394
|
}
|
|
363
|
-
}, [e, u.storage, i]),
|
|
395
|
+
}, [e, u.storage, i]), p = d(() => {
|
|
364
396
|
if (u.storage === "cookie") return;
|
|
365
|
-
const
|
|
366
|
-
if (
|
|
367
|
-
return { Authorization: `Bearer ${
|
|
368
|
-
}, [u.storage]), h =
|
|
369
|
-
|
|
370
|
-
}, [
|
|
371
|
-
|
|
372
|
-
const
|
|
373
|
-
(
|
|
374
|
-
const
|
|
375
|
-
J && Object.assign(
|
|
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);
|
|
376
408
|
const v = oe();
|
|
377
|
-
return v && (
|
|
378
|
-
promise: fetch(
|
|
409
|
+
return v && (D["X-CSRF-Token"] = v), {
|
|
410
|
+
promise: fetch(c, {
|
|
379
411
|
credentials: "include",
|
|
380
|
-
headers: Object.keys(
|
|
381
|
-
signal:
|
|
412
|
+
headers: Object.keys(D).length > 0 ? D : void 0,
|
|
413
|
+
signal: E.signal
|
|
382
414
|
}),
|
|
383
415
|
cleanup: () => window.clearTimeout(K)
|
|
384
416
|
};
|
|
385
417
|
},
|
|
386
|
-
[
|
|
387
|
-
),
|
|
388
|
-
const
|
|
418
|
+
[p, i]
|
|
419
|
+
), I = d(async () => {
|
|
420
|
+
const c = g(`${e}/user`);
|
|
389
421
|
try {
|
|
390
|
-
const
|
|
391
|
-
if (
|
|
392
|
-
const
|
|
393
|
-
if (q(
|
|
394
|
-
|
|
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");
|
|
395
427
|
return;
|
|
396
428
|
}
|
|
397
429
|
}
|
|
398
|
-
if (
|
|
430
|
+
if (E.status === 401 && u.autoRefresh) {
|
|
399
431
|
try {
|
|
400
|
-
await
|
|
432
|
+
await m();
|
|
401
433
|
} catch {
|
|
402
434
|
h();
|
|
403
435
|
return;
|
|
404
436
|
}
|
|
405
|
-
const
|
|
437
|
+
const U = g(`${e}/user`);
|
|
406
438
|
try {
|
|
407
|
-
const K = await
|
|
439
|
+
const K = await U.promise;
|
|
408
440
|
if (K.ok) {
|
|
409
|
-
const
|
|
410
|
-
if (q(
|
|
411
|
-
|
|
441
|
+
const D = await K.json();
|
|
442
|
+
if (q(D)) {
|
|
443
|
+
Q(D.user), f("authenticated");
|
|
412
444
|
return;
|
|
413
445
|
}
|
|
414
446
|
}
|
|
415
447
|
} finally {
|
|
416
|
-
|
|
448
|
+
U.cleanup();
|
|
417
449
|
}
|
|
418
450
|
}
|
|
419
|
-
|
|
451
|
+
Q(null), f("unauthenticated");
|
|
420
452
|
} catch {
|
|
421
|
-
|
|
453
|
+
Q(null), f("unauthenticated");
|
|
422
454
|
} finally {
|
|
423
|
-
|
|
455
|
+
c.cleanup();
|
|
424
456
|
}
|
|
425
457
|
}, [
|
|
426
458
|
e,
|
|
427
459
|
u.autoRefresh,
|
|
428
|
-
|
|
429
|
-
|
|
460
|
+
m,
|
|
461
|
+
g,
|
|
430
462
|
h,
|
|
431
|
-
|
|
432
|
-
|
|
463
|
+
f,
|
|
464
|
+
Q
|
|
433
465
|
]);
|
|
434
|
-
|
|
435
|
-
!
|
|
436
|
-
switch (
|
|
466
|
+
N(() => {
|
|
467
|
+
!s.current || !u.syncTabs || s.current.setCallback((c) => {
|
|
468
|
+
switch (c.type) {
|
|
437
469
|
case "login":
|
|
438
|
-
|
|
470
|
+
Q(c.user), f("authenticated");
|
|
439
471
|
break;
|
|
440
472
|
case "logout":
|
|
441
|
-
|
|
473
|
+
Q(null), f("unauthenticated"), l.current?.clear();
|
|
442
474
|
break;
|
|
443
475
|
case "refresh":
|
|
444
|
-
|
|
476
|
+
I();
|
|
445
477
|
break;
|
|
446
478
|
default:
|
|
447
|
-
console.warn("[Cedros Login] Unhandled tab sync event:",
|
|
479
|
+
console.warn("[Cedros Login] Unhandled tab sync event:", c);
|
|
448
480
|
}
|
|
449
481
|
});
|
|
450
|
-
}, [u.syncTabs,
|
|
451
|
-
const
|
|
482
|
+
}, [u.syncTabs, I, f, Q]), N(() => {
|
|
483
|
+
const c = new AbortController(), E = i ?? 1e4, U = window.setTimeout(() => c.abort(), E);
|
|
452
484
|
return (async () => {
|
|
453
|
-
|
|
485
|
+
f("loading");
|
|
454
486
|
try {
|
|
455
|
-
const
|
|
487
|
+
const D = await fetch(`${e}/user`, {
|
|
456
488
|
credentials: "include",
|
|
457
|
-
headers:
|
|
458
|
-
signal:
|
|
489
|
+
headers: p(),
|
|
490
|
+
signal: c.signal
|
|
459
491
|
});
|
|
460
|
-
if (
|
|
461
|
-
const J = await
|
|
492
|
+
if (D.ok) {
|
|
493
|
+
const J = await D.json();
|
|
462
494
|
if (q(J)) {
|
|
463
|
-
|
|
495
|
+
Q(J.user), f("authenticated");
|
|
464
496
|
return;
|
|
465
497
|
}
|
|
466
498
|
}
|
|
467
|
-
if (
|
|
499
|
+
if (D.status === 401 && u.autoRefresh) {
|
|
468
500
|
try {
|
|
469
|
-
await
|
|
501
|
+
await m();
|
|
470
502
|
} catch {
|
|
471
503
|
h();
|
|
472
504
|
return;
|
|
473
505
|
}
|
|
474
506
|
const J = await fetch(`${e}/user`, {
|
|
475
507
|
credentials: "include",
|
|
476
|
-
headers:
|
|
477
|
-
signal:
|
|
508
|
+
headers: p(),
|
|
509
|
+
signal: c.signal
|
|
478
510
|
});
|
|
479
511
|
if (J.ok) {
|
|
480
512
|
const v = await J.json();
|
|
481
513
|
if (q(v)) {
|
|
482
|
-
|
|
514
|
+
Q(v.user), f("authenticated");
|
|
483
515
|
return;
|
|
484
516
|
}
|
|
485
517
|
}
|
|
486
518
|
}
|
|
487
|
-
|
|
519
|
+
Q(null), f("unauthenticated");
|
|
488
520
|
} catch {
|
|
489
|
-
|
|
521
|
+
Q(null), f("unauthenticated");
|
|
490
522
|
}
|
|
491
523
|
})(), () => {
|
|
492
|
-
window.clearTimeout(
|
|
524
|
+
window.clearTimeout(U), c.abort();
|
|
493
525
|
};
|
|
494
526
|
}, [
|
|
495
527
|
e,
|
|
496
528
|
u.autoRefresh,
|
|
497
|
-
|
|
498
|
-
|
|
529
|
+
m,
|
|
530
|
+
p,
|
|
499
531
|
h,
|
|
532
|
+
f,
|
|
500
533
|
Q,
|
|
501
|
-
w,
|
|
502
534
|
i
|
|
503
535
|
]);
|
|
504
|
-
const C =
|
|
505
|
-
(
|
|
506
|
-
|
|
536
|
+
const C = d(
|
|
537
|
+
(c, E) => {
|
|
538
|
+
Q(c), f("authenticated"), E && l.current?.setTokens(E), w.current && s.current?.broadcastLogin(c);
|
|
507
539
|
},
|
|
508
|
-
[
|
|
509
|
-
),
|
|
510
|
-
const
|
|
540
|
+
[Q, f]
|
|
541
|
+
), S = d(async () => {
|
|
542
|
+
const c = oe(), E = new AbortController(), U = i ?? 1e4, K = window.setTimeout(() => E.abort(), U);
|
|
511
543
|
try {
|
|
512
544
|
await fetch(`${e}/logout`, {
|
|
513
545
|
method: "POST",
|
|
514
546
|
headers: {
|
|
515
|
-
...
|
|
516
|
-
...
|
|
547
|
+
...c ? { "X-CSRF-Token": c } : {},
|
|
548
|
+
...p() ?? {}
|
|
517
549
|
},
|
|
518
550
|
credentials: "include",
|
|
519
|
-
signal:
|
|
551
|
+
signal: E.signal
|
|
520
552
|
});
|
|
521
553
|
} catch {
|
|
522
554
|
} finally {
|
|
523
|
-
window.clearTimeout(K),
|
|
555
|
+
window.clearTimeout(K), Q(null), f("unauthenticated"), l.current?.clear(), s.current?.broadcastLogout(), k.current?.onLogout?.();
|
|
524
556
|
}
|
|
525
|
-
}, [e,
|
|
557
|
+
}, [e, p, Q, f, i]), H = d(() => l.current?.getAccessToken() ?? null, []);
|
|
526
558
|
return {
|
|
527
559
|
user: r,
|
|
528
560
|
authState: o,
|
|
529
561
|
handleLoginSuccess: C,
|
|
530
|
-
logout:
|
|
531
|
-
refreshUser:
|
|
562
|
+
logout: S,
|
|
563
|
+
refreshUser: I,
|
|
532
564
|
getAccessToken: H
|
|
533
565
|
};
|
|
534
566
|
}
|
|
535
|
-
const
|
|
567
|
+
const Xe = {
|
|
536
568
|
mCost: 19456,
|
|
537
569
|
// 19 MiB
|
|
538
570
|
tCost: 2,
|
|
539
571
|
pCost: 1
|
|
540
572
|
};
|
|
541
|
-
function
|
|
573
|
+
function We(e) {
|
|
542
574
|
return e.length === 16;
|
|
543
575
|
}
|
|
544
|
-
function
|
|
576
|
+
function je(e) {
|
|
545
577
|
if (e.length === 16) return !0;
|
|
546
578
|
if (e.length < 18) return !1;
|
|
547
579
|
const A = e[0];
|
|
548
580
|
return A === 0 || A === 1 || A === 128 || A === 8;
|
|
549
581
|
}
|
|
550
|
-
function
|
|
582
|
+
function Ze(e) {
|
|
551
583
|
return e.length === 32;
|
|
552
584
|
}
|
|
553
|
-
function
|
|
585
|
+
function qe(e) {
|
|
554
586
|
return e.length === 12;
|
|
555
587
|
}
|
|
556
|
-
function
|
|
588
|
+
function _e(e) {
|
|
557
589
|
return e.length >= 16;
|
|
558
590
|
}
|
|
559
|
-
function
|
|
591
|
+
function $e(e) {
|
|
560
592
|
return e.length === 32;
|
|
561
593
|
}
|
|
562
|
-
function
|
|
563
|
-
if (!
|
|
594
|
+
function ze(e) {
|
|
595
|
+
if (!We(e))
|
|
564
596
|
throw new Error(`Invalid seed length: expected 16, got ${e.length}`);
|
|
565
597
|
return e;
|
|
566
598
|
}
|
|
567
|
-
function
|
|
568
|
-
if (!
|
|
599
|
+
function _A(e) {
|
|
600
|
+
if (!je(e))
|
|
569
601
|
throw new Error(`Invalid share length: expected >=16, got ${e.length}`);
|
|
570
602
|
return e;
|
|
571
603
|
}
|
|
572
|
-
function
|
|
573
|
-
if (!
|
|
604
|
+
function ke(e) {
|
|
605
|
+
if (!Ze(e))
|
|
574
606
|
throw new Error(`Invalid key length: expected 32, got ${e.length}`);
|
|
575
607
|
return e;
|
|
576
608
|
}
|
|
577
|
-
function
|
|
578
|
-
if (!
|
|
609
|
+
function eA(e) {
|
|
610
|
+
if (!qe(e))
|
|
579
611
|
throw new Error(`Invalid nonce length: expected 12, got ${e.length}`);
|
|
580
612
|
return e;
|
|
581
613
|
}
|
|
582
|
-
function
|
|
583
|
-
if (!
|
|
614
|
+
function AA(e) {
|
|
615
|
+
if (!_e(e))
|
|
584
616
|
throw new Error(`Invalid salt length: expected >=16, got ${e.length}`);
|
|
585
617
|
return e;
|
|
586
618
|
}
|
|
587
|
-
function
|
|
588
|
-
if (
|
|
619
|
+
function tA(e) {
|
|
620
|
+
if (!$e(e))
|
|
589
621
|
throw new Error(`Invalid PRF salt length: expected 32, got ${e.length}`);
|
|
590
622
|
return e;
|
|
591
623
|
}
|
|
@@ -600,19 +632,19 @@ function ee(e) {
|
|
|
600
632
|
const A = new Uint8Array(e);
|
|
601
633
|
return crypto.getRandomValues(A), A;
|
|
602
634
|
}
|
|
603
|
-
function
|
|
604
|
-
return
|
|
635
|
+
function $A() {
|
|
636
|
+
return ze(ee(16));
|
|
605
637
|
}
|
|
606
|
-
function
|
|
607
|
-
return
|
|
638
|
+
function iA() {
|
|
639
|
+
return eA(ee(12));
|
|
608
640
|
}
|
|
609
|
-
function
|
|
610
|
-
return
|
|
641
|
+
function zA() {
|
|
642
|
+
return AA(ee(16));
|
|
611
643
|
}
|
|
612
|
-
function
|
|
613
|
-
return
|
|
644
|
+
function rA() {
|
|
645
|
+
return tA(ee(32));
|
|
614
646
|
}
|
|
615
|
-
function
|
|
647
|
+
function Se(e) {
|
|
616
648
|
if (!(!e || e.length === 0)) {
|
|
617
649
|
if (typeof globalThis.crypto?.getRandomValues == "function")
|
|
618
650
|
globalThis.crypto.getRandomValues(e);
|
|
@@ -622,11 +654,11 @@ function ke(e) {
|
|
|
622
654
|
e.fill(0);
|
|
623
655
|
}
|
|
624
656
|
}
|
|
625
|
-
function
|
|
657
|
+
function et(...e) {
|
|
626
658
|
for (const A of e)
|
|
627
|
-
A &&
|
|
659
|
+
A && Se(A);
|
|
628
660
|
}
|
|
629
|
-
async function
|
|
661
|
+
async function nA(e) {
|
|
630
662
|
return crypto.subtle.importKey(
|
|
631
663
|
"raw",
|
|
632
664
|
T(e),
|
|
@@ -636,8 +668,8 @@ async function iA(e) {
|
|
|
636
668
|
["encrypt", "decrypt"]
|
|
637
669
|
);
|
|
638
670
|
}
|
|
639
|
-
async function
|
|
640
|
-
const i = t ??
|
|
671
|
+
async function oA(e, A, t) {
|
|
672
|
+
const i = t ?? iA(), r = await nA(A), n = await crypto.subtle.encrypt(
|
|
641
673
|
{ name: "AES-GCM", iv: T(i) },
|
|
642
674
|
r,
|
|
643
675
|
T(e)
|
|
@@ -647,8 +679,8 @@ async function rA(e, A, t) {
|
|
|
647
679
|
nonce: i
|
|
648
680
|
};
|
|
649
681
|
}
|
|
650
|
-
async function
|
|
651
|
-
const t = await
|
|
682
|
+
async function At(e, A) {
|
|
683
|
+
const t = await oA(e, A);
|
|
652
684
|
return {
|
|
653
685
|
ciphertext: z(t.ciphertext),
|
|
654
686
|
nonce: z(t.nonce)
|
|
@@ -662,7 +694,7 @@ function z(e) {
|
|
|
662
694
|
}
|
|
663
695
|
return btoa(t.join(""));
|
|
664
696
|
}
|
|
665
|
-
function
|
|
697
|
+
function sA(e) {
|
|
666
698
|
let A;
|
|
667
699
|
try {
|
|
668
700
|
A = atob(e);
|
|
@@ -674,7 +706,7 @@ function nA(e) {
|
|
|
674
706
|
t[i] = A.charCodeAt(i);
|
|
675
707
|
return t;
|
|
676
708
|
}
|
|
677
|
-
async function
|
|
709
|
+
async function IA(e, A, t, i = 32) {
|
|
678
710
|
const r = await crypto.subtle.importKey(
|
|
679
711
|
"raw",
|
|
680
712
|
T(e),
|
|
@@ -695,11 +727,11 @@ async function oA(e, A, t, i = 32) {
|
|
|
695
727
|
);
|
|
696
728
|
return new Uint8Array(o);
|
|
697
729
|
}
|
|
698
|
-
async function
|
|
699
|
-
const t = await
|
|
700
|
-
return
|
|
730
|
+
async function tt(e, A) {
|
|
731
|
+
const t = await IA(e, A, "cedros-wallet-share-b-encryption", 32);
|
|
732
|
+
return ke(t);
|
|
701
733
|
}
|
|
702
|
-
async function
|
|
734
|
+
async function aA() {
|
|
703
735
|
try {
|
|
704
736
|
const e = await crypto.subtle.importKey("raw", new Uint8Array(32), "HKDF", !1, [
|
|
705
737
|
"deriveBits"
|
|
@@ -725,27 +757,27 @@ function R(e, A, t, i) {
|
|
|
725
757
|
});
|
|
726
758
|
}
|
|
727
759
|
return new (t || (t = Promise))(function(n, o) {
|
|
728
|
-
function
|
|
760
|
+
function a(k) {
|
|
729
761
|
try {
|
|
730
|
-
|
|
731
|
-
} catch (
|
|
732
|
-
o(
|
|
762
|
+
s(i.next(k));
|
|
763
|
+
} catch (w) {
|
|
764
|
+
o(w);
|
|
733
765
|
}
|
|
734
766
|
}
|
|
735
|
-
function
|
|
767
|
+
function l(k) {
|
|
736
768
|
try {
|
|
737
|
-
|
|
738
|
-
} catch (
|
|
739
|
-
o(
|
|
769
|
+
s(i.throw(k));
|
|
770
|
+
} catch (w) {
|
|
771
|
+
o(w);
|
|
740
772
|
}
|
|
741
773
|
}
|
|
742
|
-
function
|
|
743
|
-
|
|
774
|
+
function s(k) {
|
|
775
|
+
k.done ? n(k.value) : r(k.value).then(a, l);
|
|
744
776
|
}
|
|
745
|
-
|
|
777
|
+
s((i = i.apply(e, [])).next());
|
|
746
778
|
});
|
|
747
779
|
}
|
|
748
|
-
class
|
|
780
|
+
class y {
|
|
749
781
|
constructor() {
|
|
750
782
|
this.mutex = Promise.resolve();
|
|
751
783
|
}
|
|
@@ -768,26 +800,26 @@ class p {
|
|
|
768
800
|
}
|
|
769
801
|
}
|
|
770
802
|
var se;
|
|
771
|
-
function
|
|
803
|
+
function gA() {
|
|
772
804
|
return typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global;
|
|
773
805
|
}
|
|
774
|
-
const Ce =
|
|
775
|
-
function
|
|
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) {
|
|
776
808
|
return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (A & 15) + (A >> 6 | A >> 3 & 8);
|
|
777
809
|
}
|
|
778
|
-
function
|
|
810
|
+
function Fe(e, A) {
|
|
779
811
|
const t = A.length >> 1;
|
|
780
812
|
for (let i = 0; i < t; i++) {
|
|
781
813
|
const r = i << 1;
|
|
782
|
-
e[i] =
|
|
814
|
+
e[i] = De(A.charCodeAt(r), A.charCodeAt(r + 1));
|
|
783
815
|
}
|
|
784
816
|
}
|
|
785
|
-
function
|
|
817
|
+
function cA(e, A) {
|
|
786
818
|
if (e.length !== A.length * 2)
|
|
787
819
|
return !1;
|
|
788
820
|
for (let t = 0; t < A.length; t++) {
|
|
789
821
|
const i = t << 1;
|
|
790
|
-
if (A[t] !==
|
|
822
|
+
if (A[t] !== De(e.charCodeAt(i), e.charCodeAt(i + 1)))
|
|
791
823
|
return !1;
|
|
792
824
|
}
|
|
793
825
|
return !0;
|
|
@@ -813,61 +845,61 @@ const O = Ie !== null ? (e) => {
|
|
|
813
845
|
throw new Error("Invalid data type!");
|
|
814
846
|
} : (e) => {
|
|
815
847
|
if (typeof e == "string")
|
|
816
|
-
return
|
|
848
|
+
return lA.encode(e);
|
|
817
849
|
if (ArrayBuffer.isView(e))
|
|
818
850
|
return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
|
|
819
851
|
throw new Error("Invalid data type!");
|
|
820
|
-
},
|
|
821
|
-
for (let e = 0; e <
|
|
822
|
-
W[
|
|
852
|
+
}, M = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", W = new Uint8Array(256);
|
|
853
|
+
for (let e = 0; e < M.length; e++)
|
|
854
|
+
W[M.charCodeAt(e)] = e;
|
|
823
855
|
function Qe(e, A = !0) {
|
|
824
856
|
const t = e.length, i = t % 3, r = [], n = t - i;
|
|
825
857
|
for (let o = 0; o < n; o += 3) {
|
|
826
|
-
const
|
|
827
|
-
r.push(
|
|
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);
|
|
828
860
|
}
|
|
829
861
|
if (i === 1) {
|
|
830
|
-
const o = e[t - 1],
|
|
831
|
-
r.push(`${
|
|
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("==");
|
|
832
864
|
} else if (i === 2) {
|
|
833
|
-
const o = (e[t - 2] << 8) + e[t - 1],
|
|
834
|
-
r.push(`${
|
|
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("=");
|
|
835
867
|
}
|
|
836
868
|
return r.join("");
|
|
837
869
|
}
|
|
838
|
-
function
|
|
870
|
+
function CA(e) {
|
|
839
871
|
let A = Math.floor(e.length * 0.75);
|
|
840
872
|
const t = e.length;
|
|
841
873
|
return e[t - 1] === "=" && (A -= 1, e[t - 2] === "=" && (A -= 1)), A;
|
|
842
874
|
}
|
|
843
|
-
function
|
|
844
|
-
const A =
|
|
875
|
+
function hA(e) {
|
|
876
|
+
const A = CA(e), t = e.length, i = new Uint8Array(A);
|
|
845
877
|
let r = 0;
|
|
846
878
|
for (let n = 0; n < t; n += 4) {
|
|
847
|
-
const o = W[e.charCodeAt(n)],
|
|
848
|
-
i[r] = o << 2 |
|
|
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;
|
|
849
881
|
}
|
|
850
882
|
return i;
|
|
851
883
|
}
|
|
852
|
-
const _ = 16 * 1024,
|
|
853
|
-
function
|
|
884
|
+
const _ = 16 * 1024, X = 4, fA = new y(), ae = /* @__PURE__ */ new Map();
|
|
885
|
+
function Ue(e, A) {
|
|
854
886
|
return R(this, void 0, void 0, function* () {
|
|
855
887
|
let t = null, i = null, r = !1;
|
|
856
888
|
if (typeof WebAssembly > "u")
|
|
857
889
|
throw new Error("WebAssembly is not supported in this environment!");
|
|
858
|
-
const n = (
|
|
859
|
-
i.set(
|
|
860
|
-
}, o = () => i,
|
|
861
|
-
t.exports.Hash_SetMemorySize(
|
|
862
|
-
const C = t.exports.Hash_GetBuffer(),
|
|
863
|
-
i = new Uint8Array(
|
|
864
|
-
},
|
|
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* () {
|
|
865
897
|
if (!ae.has(e.name)) {
|
|
866
|
-
const C =
|
|
867
|
-
ae.set(e.name,
|
|
898
|
+
const C = hA(e.data), S = WebAssembly.compile(C);
|
|
899
|
+
ae.set(e.name, S);
|
|
868
900
|
}
|
|
869
|
-
const
|
|
870
|
-
t = yield WebAssembly.instantiate(
|
|
901
|
+
const I = yield ae.get(e.name);
|
|
902
|
+
t = yield WebAssembly.instantiate(I, {
|
|
871
903
|
// env: {
|
|
872
904
|
// emscripten_memcpy_big: (dest, src, num) => {
|
|
873
905
|
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
@@ -881,44 +913,44 @@ function Fe(e, A) {
|
|
|
881
913
|
// },
|
|
882
914
|
// },
|
|
883
915
|
});
|
|
884
|
-
})),
|
|
885
|
-
t || (yield
|
|
886
|
-
const
|
|
887
|
-
i = new Uint8Array(C,
|
|
888
|
-
}),
|
|
889
|
-
r = !0, t.exports.Hash_Init(
|
|
890
|
-
},
|
|
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) => {
|
|
891
923
|
let C = 0;
|
|
892
|
-
for (; C <
|
|
893
|
-
const
|
|
894
|
-
C +=
|
|
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);
|
|
895
927
|
}
|
|
896
|
-
},
|
|
928
|
+
}, F = (I) => {
|
|
897
929
|
if (!r)
|
|
898
930
|
throw new Error("update() called before init()");
|
|
899
|
-
const C = O(
|
|
900
|
-
|
|
901
|
-
},
|
|
931
|
+
const C = O(I);
|
|
932
|
+
b(C);
|
|
933
|
+
}, Q = new Uint8Array(A * 2), f = (I, C = null) => {
|
|
902
934
|
if (!r)
|
|
903
935
|
throw new Error("digest() called before init()");
|
|
904
|
-
return r = !1, t.exports.Hash_Final(C),
|
|
936
|
+
return r = !1, t.exports.Hash_Final(C), I === "binary" ? i.slice(0, A) : he(Q, i, A);
|
|
905
937
|
}, u = () => {
|
|
906
938
|
if (!r)
|
|
907
939
|
throw new Error("save() can only be called after init() and before digest()");
|
|
908
|
-
const
|
|
909
|
-
return
|
|
910
|
-
},
|
|
911
|
-
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))
|
|
912
944
|
throw new Error("load() expects an Uint8Array generated by save()");
|
|
913
|
-
const C = t.exports.Hash_GetState(),
|
|
914
|
-
if (
|
|
915
|
-
throw new Error(`Bad state length (expected ${H} bytes, got ${
|
|
916
|
-
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)))
|
|
917
949
|
throw new Error("This state was written by an incompatible hash implementation");
|
|
918
|
-
const
|
|
919
|
-
new Uint8Array(
|
|
920
|
-
},
|
|
921
|
-
let h =
|
|
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;
|
|
922
954
|
switch (e.name) {
|
|
923
955
|
case "argon2":
|
|
924
956
|
case "scrypt":
|
|
@@ -926,10 +958,10 @@ function Fe(e, A) {
|
|
|
926
958
|
break;
|
|
927
959
|
case "blake2b":
|
|
928
960
|
case "blake2s":
|
|
929
|
-
h = (
|
|
961
|
+
h = (I, C) => C <= 512 && p(I);
|
|
930
962
|
break;
|
|
931
963
|
case "blake3":
|
|
932
|
-
h = (
|
|
964
|
+
h = (I, C) => C === 0 && p(I);
|
|
933
965
|
break;
|
|
934
966
|
case "xxhash64":
|
|
935
967
|
// cannot simplify
|
|
@@ -939,42 +971,42 @@ function Fe(e, A) {
|
|
|
939
971
|
h = () => !1;
|
|
940
972
|
break;
|
|
941
973
|
}
|
|
942
|
-
const
|
|
943
|
-
if (!h(
|
|
944
|
-
return
|
|
945
|
-
const H = O(
|
|
946
|
-
return i.set(H), t.exports.Hash_Calculate(H.length, C,
|
|
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);
|
|
947
979
|
};
|
|
948
|
-
return yield
|
|
980
|
+
return yield w(), {
|
|
949
981
|
getMemory: o,
|
|
950
982
|
writeMemory: n,
|
|
951
|
-
getExports:
|
|
952
|
-
setMemorySize:
|
|
953
|
-
init:
|
|
954
|
-
update:
|
|
955
|
-
digest:
|
|
983
|
+
getExports: a,
|
|
984
|
+
setMemorySize: l,
|
|
985
|
+
init: B,
|
|
986
|
+
update: F,
|
|
987
|
+
digest: f,
|
|
956
988
|
save: u,
|
|
957
|
-
load:
|
|
958
|
-
calculate:
|
|
989
|
+
load: m,
|
|
990
|
+
calculate: g,
|
|
959
991
|
hashLength: A
|
|
960
992
|
};
|
|
961
993
|
});
|
|
962
994
|
}
|
|
963
|
-
new
|
|
964
|
-
var
|
|
965
|
-
name:
|
|
966
|
-
data:
|
|
967
|
-
hash:
|
|
968
|
-
},
|
|
969
|
-
name:
|
|
970
|
-
data:
|
|
971
|
-
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
|
|
972
1004
|
};
|
|
973
|
-
new
|
|
1005
|
+
new y();
|
|
974
1006
|
function Be(e) {
|
|
975
1007
|
return !Number.isInteger(e) || e < 8 || e > 512 || e % 8 !== 0 ? new Error("Invalid variant! Valid values: 8, 16, ..., 512") : null;
|
|
976
1008
|
}
|
|
977
|
-
function
|
|
1009
|
+
function kA(e, A) {
|
|
978
1010
|
return e | A << 16;
|
|
979
1011
|
}
|
|
980
1012
|
function fe(e = 512, A = null) {
|
|
@@ -984,25 +1016,25 @@ function fe(e = 512, A = null) {
|
|
|
984
1016
|
if (A !== null) {
|
|
985
1017
|
if (t = O(A), t.length > 64)
|
|
986
1018
|
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
987
|
-
i =
|
|
1019
|
+
i = kA(e, t.length);
|
|
988
1020
|
}
|
|
989
1021
|
const r = e / 8;
|
|
990
|
-
return
|
|
1022
|
+
return Ue(yA, r).then((n) => {
|
|
991
1023
|
i > 512 && n.writeMemory(t), n.init(i);
|
|
992
1024
|
const o = {
|
|
993
1025
|
init: i > 512 ? () => (n.writeMemory(t), n.init(i), o) : () => (n.init(i), o),
|
|
994
|
-
update: (
|
|
1026
|
+
update: (a) => (n.update(a), o),
|
|
995
1027
|
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
996
|
-
digest: (
|
|
1028
|
+
digest: (a) => n.digest(a),
|
|
997
1029
|
save: () => n.save(),
|
|
998
|
-
load: (
|
|
1030
|
+
load: (a) => (n.load(a), o),
|
|
999
1031
|
blockSize: 128,
|
|
1000
1032
|
digestSize: r
|
|
1001
1033
|
};
|
|
1002
1034
|
return o;
|
|
1003
1035
|
});
|
|
1004
1036
|
}
|
|
1005
|
-
function
|
|
1037
|
+
function SA(e, A, t) {
|
|
1006
1038
|
const i = [
|
|
1007
1039
|
`m=${A.memorySize}`,
|
|
1008
1040
|
`t=${A.iterations}`,
|
|
@@ -1011,27 +1043,27 @@ function yA(e, A, t) {
|
|
|
1011
1043
|
return `$argon2${A.hashType}$v=19$${i}$${Qe(e, !1)}$${Qe(t, !1)}`;
|
|
1012
1044
|
}
|
|
1013
1045
|
const de = new DataView(new ArrayBuffer(4));
|
|
1014
|
-
function
|
|
1046
|
+
function x(e) {
|
|
1015
1047
|
return de.setInt32(0, e, !0), new Uint8Array(de.buffer);
|
|
1016
1048
|
}
|
|
1017
1049
|
function ge(e, A, t) {
|
|
1018
1050
|
return R(this, void 0, void 0, function* () {
|
|
1019
1051
|
if (t <= 64) {
|
|
1020
|
-
const
|
|
1021
|
-
return
|
|
1052
|
+
const l = yield fe(t * 8);
|
|
1053
|
+
return l.update(x(t)), l.update(A), l.digest("binary");
|
|
1022
1054
|
}
|
|
1023
1055
|
const i = Math.ceil(t / 32) - 2, r = new Uint8Array(t);
|
|
1024
|
-
e.init(), e.update(
|
|
1056
|
+
e.init(), e.update(x(t)), e.update(A);
|
|
1025
1057
|
let n = e.digest("binary");
|
|
1026
1058
|
r.set(n.subarray(0, 32), 0);
|
|
1027
|
-
for (let
|
|
1028
|
-
e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32),
|
|
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);
|
|
1029
1061
|
const o = t - 32 * i;
|
|
1030
|
-
let
|
|
1031
|
-
return o === 64 ? (
|
|
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;
|
|
1032
1064
|
});
|
|
1033
1065
|
}
|
|
1034
|
-
function
|
|
1066
|
+
function DA(e) {
|
|
1035
1067
|
switch (e) {
|
|
1036
1068
|
case "d":
|
|
1037
1069
|
return 0;
|
|
@@ -1041,34 +1073,34 @@ function kA(e) {
|
|
|
1041
1073
|
return 2;
|
|
1042
1074
|
}
|
|
1043
1075
|
}
|
|
1044
|
-
function
|
|
1076
|
+
function FA(e) {
|
|
1045
1077
|
return R(this, void 0, void 0, function* () {
|
|
1046
1078
|
var A;
|
|
1047
|
-
const { parallelism: t, iterations: i, hashLength: r } = e, n = O(e.password), o = O(e.salt),
|
|
1048
|
-
|
|
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),
|
|
1049
1081
|
fe(512)
|
|
1050
1082
|
]);
|
|
1051
|
-
|
|
1052
|
-
const
|
|
1053
|
-
|
|
1054
|
-
const
|
|
1055
|
-
u.set(
|
|
1056
|
-
for (let
|
|
1057
|
-
u.set(
|
|
1058
|
-
let
|
|
1059
|
-
|
|
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);
|
|
1060
1092
|
}
|
|
1061
|
-
const
|
|
1062
|
-
|
|
1063
|
-
const h = yield ge(
|
|
1093
|
+
const p = new Uint8Array(1024);
|
|
1094
|
+
Fe(p, w.calculate(new Uint8Array([]), s));
|
|
1095
|
+
const h = yield ge(B, p, r);
|
|
1064
1096
|
if (e.outputType === "hex") {
|
|
1065
|
-
const
|
|
1066
|
-
return he(
|
|
1097
|
+
const g = new Uint8Array(r * 2);
|
|
1098
|
+
return he(g, h, r);
|
|
1067
1099
|
}
|
|
1068
|
-
return e.outputType === "encoded" ?
|
|
1100
|
+
return e.outputType === "encoded" ? SA(o, e, h) : h;
|
|
1069
1101
|
});
|
|
1070
1102
|
}
|
|
1071
|
-
const
|
|
1103
|
+
const UA = (e) => {
|
|
1072
1104
|
var A;
|
|
1073
1105
|
if (!e || typeof e != "object")
|
|
1074
1106
|
throw new Error("Invalid options parameter. It requires an object.");
|
|
@@ -1093,50 +1125,50 @@ const DA = (e) => {
|
|
|
1093
1125
|
if (e.outputType === void 0 && (e.outputType = "hex"), !["hex", "binary", "encoded"].includes(e.outputType))
|
|
1094
1126
|
throw new Error(`Insupported output type ${e.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
1095
1127
|
};
|
|
1096
|
-
function
|
|
1128
|
+
function me(e) {
|
|
1097
1129
|
return R(this, void 0, void 0, function* () {
|
|
1098
|
-
return
|
|
1130
|
+
return UA(e), FA(Object.assign(Object.assign({}, e), { hashType: "id" }));
|
|
1099
1131
|
});
|
|
1100
1132
|
}
|
|
1101
|
-
new
|
|
1102
|
-
new
|
|
1103
|
-
new
|
|
1104
|
-
new
|
|
1105
|
-
new
|
|
1106
|
-
new
|
|
1107
|
-
new
|
|
1108
|
-
new
|
|
1109
|
-
new
|
|
1110
|
-
new
|
|
1111
|
-
new
|
|
1112
|
-
new
|
|
1113
|
-
new
|
|
1114
|
-
new
|
|
1115
|
-
new
|
|
1116
|
-
new
|
|
1117
|
-
new
|
|
1118
|
-
new
|
|
1119
|
-
new
|
|
1120
|
-
new
|
|
1121
|
-
const
|
|
1122
|
-
async function
|
|
1123
|
-
|
|
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);
|
|
1124
1156
|
try {
|
|
1125
|
-
const i = await
|
|
1157
|
+
const i = await me({
|
|
1126
1158
|
password: e,
|
|
1127
1159
|
salt: A,
|
|
1128
1160
|
iterations: t.tCost,
|
|
1129
1161
|
memorySize: t.mCost,
|
|
1130
1162
|
parallelism: t.pCost,
|
|
1131
|
-
hashLength:
|
|
1163
|
+
hashLength: mA,
|
|
1132
1164
|
outputType: "binary"
|
|
1133
1165
|
});
|
|
1134
|
-
return
|
|
1166
|
+
return ke(i);
|
|
1135
1167
|
} catch {
|
|
1136
1168
|
throw new Error("Key derivation failed");
|
|
1137
1169
|
}
|
|
1138
1170
|
}
|
|
1139
|
-
function
|
|
1171
|
+
function bA(e) {
|
|
1140
1172
|
if (e.mCost < 16384)
|
|
1141
1173
|
throw new Error("KDF memory cost too low (minimum 16 MiB)");
|
|
1142
1174
|
if (e.mCost > 1048576)
|
|
@@ -1150,9 +1182,9 @@ function UA(e) {
|
|
|
1150
1182
|
if (e.pCost > 4)
|
|
1151
1183
|
throw new Error("KDF parallelism too high (maximum 4)");
|
|
1152
1184
|
}
|
|
1153
|
-
async function
|
|
1185
|
+
async function GA() {
|
|
1154
1186
|
try {
|
|
1155
|
-
const e = await
|
|
1187
|
+
const e = await me({
|
|
1156
1188
|
password: "test",
|
|
1157
1189
|
salt: new Uint8Array(16),
|
|
1158
1190
|
iterations: 1,
|
|
@@ -1162,19 +1194,19 @@ async function bA() {
|
|
|
1162
1194
|
hashLength: 32,
|
|
1163
1195
|
outputType: "binary"
|
|
1164
1196
|
});
|
|
1165
|
-
return e.length !== 32 ? !1 : (
|
|
1197
|
+
return e.length !== 32 ? !1 : (Se(e), !0);
|
|
1166
1198
|
} catch {
|
|
1167
1199
|
return !1;
|
|
1168
1200
|
}
|
|
1169
1201
|
}
|
|
1170
|
-
function
|
|
1202
|
+
function KA(e) {
|
|
1171
1203
|
return e === "localhost" || e === "127.0.0.1" || e.endsWith(".localhost");
|
|
1172
1204
|
}
|
|
1173
1205
|
function be(e) {
|
|
1174
1206
|
if (typeof window > "u")
|
|
1175
1207
|
return;
|
|
1176
1208
|
const A = window.location.hostname;
|
|
1177
|
-
if (!
|
|
1209
|
+
if (!KA(A))
|
|
1178
1210
|
throw new Error(
|
|
1179
1211
|
"[Cedros] WebAuthn RP domain validation is not configured. Set wallet.allowedRpDomains to a non-empty list of allowed domains."
|
|
1180
1212
|
);
|
|
@@ -1182,7 +1214,7 @@ function be(e) {
|
|
|
1182
1214
|
function Ae() {
|
|
1183
1215
|
return typeof window < "u" && typeof window.PublicKeyCredential < "u" && typeof navigator.credentials < "u";
|
|
1184
1216
|
}
|
|
1185
|
-
async function
|
|
1217
|
+
async function HA() {
|
|
1186
1218
|
if (!Ae())
|
|
1187
1219
|
return !1;
|
|
1188
1220
|
try {
|
|
@@ -1198,11 +1230,11 @@ async function GA() {
|
|
|
1198
1230
|
return !1;
|
|
1199
1231
|
}
|
|
1200
1232
|
}
|
|
1201
|
-
async function
|
|
1233
|
+
async function rt(e, A, t, i, r) {
|
|
1202
1234
|
if (!Ae())
|
|
1203
1235
|
throw new Error("WebAuthn is not available in this browser");
|
|
1204
1236
|
be();
|
|
1205
|
-
const n = i ??
|
|
1237
|
+
const n = i ?? rA(), o = await navigator.credentials.create({
|
|
1206
1238
|
publicKey: {
|
|
1207
1239
|
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1208
1240
|
rp: {
|
|
@@ -1238,30 +1270,30 @@ async function tt(e, A, t, i, r) {
|
|
|
1238
1270
|
});
|
|
1239
1271
|
if (!o)
|
|
1240
1272
|
throw new Error("Passkey registration was cancelled");
|
|
1241
|
-
const
|
|
1242
|
-
if (!
|
|
1273
|
+
const a = o.getClientExtensionResults();
|
|
1274
|
+
if (!a.prf?.enabled || !a.prf?.results?.first)
|
|
1243
1275
|
throw new Error(
|
|
1244
1276
|
"PRF extension is not supported by this authenticator. Please use a device with a compatible platform authenticator."
|
|
1245
1277
|
);
|
|
1246
|
-
const
|
|
1247
|
-
if (!
|
|
1278
|
+
const l = a.prf?.results?.first;
|
|
1279
|
+
if (!l)
|
|
1248
1280
|
throw new Error("PRF extension did not return a result");
|
|
1249
|
-
const
|
|
1250
|
-
if (
|
|
1281
|
+
const s = new Uint8Array(l);
|
|
1282
|
+
if (s.length !== 32)
|
|
1251
1283
|
throw new Error(
|
|
1252
|
-
`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.`
|
|
1253
1285
|
);
|
|
1254
1286
|
return {
|
|
1255
1287
|
credentialId: z(new Uint8Array(o.rawId)),
|
|
1256
1288
|
prfSalt: z(n),
|
|
1257
|
-
prfOutput:
|
|
1289
|
+
prfOutput: s
|
|
1258
1290
|
};
|
|
1259
1291
|
}
|
|
1260
|
-
async function
|
|
1292
|
+
async function nt(e, A) {
|
|
1261
1293
|
if (!Ae())
|
|
1262
1294
|
throw new Error("WebAuthn is not available in this browser");
|
|
1263
1295
|
be();
|
|
1264
|
-
const t =
|
|
1296
|
+
const t = sA(e), i = await navigator.credentials.get({
|
|
1265
1297
|
publicKey: {
|
|
1266
1298
|
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1267
1299
|
rpId: window.location.hostname,
|
|
@@ -1290,15 +1322,15 @@ async function it(e, A) {
|
|
|
1290
1322
|
);
|
|
1291
1323
|
return { prfOutput: o };
|
|
1292
1324
|
}
|
|
1293
|
-
async function
|
|
1325
|
+
async function JA() {
|
|
1294
1326
|
const [e, A, t, i, r, n, o] = await Promise.all([
|
|
1295
|
-
HA(),
|
|
1296
|
-
JA(),
|
|
1297
|
-
sA(),
|
|
1298
1327
|
VA(),
|
|
1328
|
+
MA(),
|
|
1329
|
+
aA(),
|
|
1330
|
+
PA(),
|
|
1299
1331
|
Promise.resolve(Ae()),
|
|
1300
|
-
|
|
1301
|
-
|
|
1332
|
+
HA(),
|
|
1333
|
+
GA()
|
|
1302
1334
|
]);
|
|
1303
1335
|
return {
|
|
1304
1336
|
webCrypto: e,
|
|
@@ -1311,38 +1343,38 @@ async function KA() {
|
|
|
1311
1343
|
allSupported: e && A && t && r && n && o
|
|
1312
1344
|
};
|
|
1313
1345
|
}
|
|
1314
|
-
async function
|
|
1346
|
+
async function VA() {
|
|
1315
1347
|
try {
|
|
1316
1348
|
return typeof crypto < "u" && typeof crypto.subtle < "u" && typeof crypto.getRandomValues == "function";
|
|
1317
1349
|
} catch {
|
|
1318
1350
|
return !1;
|
|
1319
1351
|
}
|
|
1320
1352
|
}
|
|
1321
|
-
async function
|
|
1353
|
+
async function MA() {
|
|
1322
1354
|
try {
|
|
1323
1355
|
const e = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, !1, [
|
|
1324
1356
|
"encrypt",
|
|
1325
1357
|
"decrypt"
|
|
1326
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);
|
|
1327
|
-
return n.length === A.length && n.every((o,
|
|
1359
|
+
return n.length === A.length && n.every((o, a) => o === A[a]);
|
|
1328
1360
|
} catch {
|
|
1329
1361
|
return !1;
|
|
1330
1362
|
}
|
|
1331
1363
|
}
|
|
1332
|
-
async function
|
|
1364
|
+
async function PA() {
|
|
1333
1365
|
try {
|
|
1334
1366
|
return await crypto.subtle.generateKey("Ed25519", !1, ["sign", "verify"]), !0;
|
|
1335
1367
|
} catch {
|
|
1336
1368
|
return !1;
|
|
1337
1369
|
}
|
|
1338
1370
|
}
|
|
1339
|
-
function
|
|
1371
|
+
function ot(e) {
|
|
1340
1372
|
if (e.allSupported)
|
|
1341
1373
|
return null;
|
|
1342
1374
|
const A = [];
|
|
1343
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).`;
|
|
1344
1376
|
}
|
|
1345
|
-
function
|
|
1377
|
+
function st() {
|
|
1346
1378
|
const e = typeof navigator < "u" ? navigator.userAgent : "", A = e.match(/Chrome\/(\d+)/);
|
|
1347
1379
|
if (A) {
|
|
1348
1380
|
const n = parseInt(A[1], 10);
|
|
@@ -1385,12 +1417,12 @@ function nt() {
|
|
|
1385
1417
|
};
|
|
1386
1418
|
}
|
|
1387
1419
|
let $ = null, le = null;
|
|
1388
|
-
const
|
|
1389
|
-
async function
|
|
1390
|
-
const A = Date.now(), t = le === null || A - le >
|
|
1391
|
-
return !e && !(typeof window > "u") && !t && $ !== null || ($ = await
|
|
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()), $;
|
|
1392
1424
|
}
|
|
1393
|
-
function
|
|
1425
|
+
function xA(e) {
|
|
1394
1426
|
switch (e.type) {
|
|
1395
1427
|
case "password":
|
|
1396
1428
|
return { password: e.password };
|
|
@@ -1398,160 +1430,160 @@ function YA(e) {
|
|
|
1398
1430
|
return { prfOutput: e.prfOutput };
|
|
1399
1431
|
}
|
|
1400
1432
|
}
|
|
1401
|
-
function
|
|
1402
|
-
const e =
|
|
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({
|
|
1403
1435
|
baseUrl: n,
|
|
1404
1436
|
timeoutMs: o,
|
|
1405
|
-
retryAttempts:
|
|
1406
|
-
getAccessToken:
|
|
1407
|
-
}) : null, [e, n, o,
|
|
1408
|
-
if (!
|
|
1437
|
+
retryAttempts: a,
|
|
1438
|
+
getAccessToken: l
|
|
1439
|
+
}) : null, [e, n, o, a, l]), k = d(async () => {
|
|
1440
|
+
if (!s)
|
|
1409
1441
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1410
1442
|
t(!0), r(null);
|
|
1411
1443
|
try {
|
|
1412
|
-
return await
|
|
1444
|
+
return await s.get("/wallet/status");
|
|
1413
1445
|
} catch (h) {
|
|
1414
|
-
const
|
|
1415
|
-
throw r(
|
|
1446
|
+
const g = Y(h, "Failed to fetch wallet status");
|
|
1447
|
+
throw r(g.message), g;
|
|
1416
1448
|
} finally {
|
|
1417
1449
|
t(!1);
|
|
1418
1450
|
}
|
|
1419
|
-
}, [
|
|
1420
|
-
if (!
|
|
1451
|
+
}, [s]), w = d(async () => {
|
|
1452
|
+
if (!s)
|
|
1421
1453
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1422
1454
|
t(!0), r(null);
|
|
1423
1455
|
try {
|
|
1424
|
-
return await
|
|
1456
|
+
return await s.get("/wallet/material");
|
|
1425
1457
|
} catch (h) {
|
|
1426
|
-
const
|
|
1427
|
-
if (
|
|
1458
|
+
const g = Y(h, "Failed to fetch wallet material");
|
|
1459
|
+
if (g.code === "NOT_FOUND")
|
|
1428
1460
|
return null;
|
|
1429
|
-
throw r(
|
|
1461
|
+
throw r(g.message), g;
|
|
1430
1462
|
} finally {
|
|
1431
1463
|
t(!1);
|
|
1432
1464
|
}
|
|
1433
|
-
}, [
|
|
1465
|
+
}, [s]), B = d(
|
|
1434
1466
|
async (h) => {
|
|
1435
|
-
if (!
|
|
1467
|
+
if (!s)
|
|
1436
1468
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1437
1469
|
t(!0), r(null);
|
|
1438
1470
|
try {
|
|
1439
|
-
await
|
|
1440
|
-
} catch (
|
|
1441
|
-
const
|
|
1442
|
-
throw r(
|
|
1471
|
+
await s.post("/wallet/enroll", h);
|
|
1472
|
+
} catch (g) {
|
|
1473
|
+
const I = Y(g, "Failed to enroll wallet");
|
|
1474
|
+
throw r(I.message), I;
|
|
1443
1475
|
} finally {
|
|
1444
1476
|
t(!1);
|
|
1445
1477
|
}
|
|
1446
1478
|
},
|
|
1447
|
-
[
|
|
1448
|
-
),
|
|
1479
|
+
[s]
|
|
1480
|
+
), b = d(
|
|
1449
1481
|
async (h) => {
|
|
1450
|
-
if (!
|
|
1482
|
+
if (!s)
|
|
1451
1483
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1452
1484
|
t(!0), r(null);
|
|
1453
1485
|
try {
|
|
1454
|
-
await
|
|
1455
|
-
} catch (
|
|
1456
|
-
const
|
|
1457
|
-
throw r(
|
|
1486
|
+
await s.post("/wallet/recover", h);
|
|
1487
|
+
} catch (g) {
|
|
1488
|
+
const I = Y(g, "Failed to recover wallet");
|
|
1489
|
+
throw r(I.message), I;
|
|
1458
1490
|
} finally {
|
|
1459
1491
|
t(!1);
|
|
1460
1492
|
}
|
|
1461
1493
|
},
|
|
1462
|
-
[
|
|
1463
|
-
),
|
|
1494
|
+
[s]
|
|
1495
|
+
), F = d(
|
|
1464
1496
|
async (h) => {
|
|
1465
|
-
if (!
|
|
1497
|
+
if (!s)
|
|
1466
1498
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1467
1499
|
t(!0), r(null);
|
|
1468
1500
|
try {
|
|
1469
|
-
return await
|
|
1470
|
-
} catch (
|
|
1471
|
-
const
|
|
1472
|
-
throw r(
|
|
1501
|
+
return await s.post("/wallet/sign", h);
|
|
1502
|
+
} catch (g) {
|
|
1503
|
+
const I = Y(g, "Failed to sign transaction");
|
|
1504
|
+
throw r(I.message), I;
|
|
1473
1505
|
} finally {
|
|
1474
1506
|
t(!1);
|
|
1475
1507
|
}
|
|
1476
1508
|
},
|
|
1477
|
-
[
|
|
1478
|
-
),
|
|
1509
|
+
[s]
|
|
1510
|
+
), Q = d(
|
|
1479
1511
|
async (h) => {
|
|
1480
|
-
if (!
|
|
1512
|
+
if (!s)
|
|
1481
1513
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1482
1514
|
t(!0), r(null);
|
|
1483
1515
|
try {
|
|
1484
|
-
await
|
|
1485
|
-
} catch (
|
|
1486
|
-
const
|
|
1487
|
-
throw r(
|
|
1516
|
+
await s.post("/wallet/rotate-user-secret", h);
|
|
1517
|
+
} catch (g) {
|
|
1518
|
+
const I = Y(g, "Failed to rotate user secret");
|
|
1519
|
+
throw r(I.message), I;
|
|
1488
1520
|
} finally {
|
|
1489
1521
|
t(!1);
|
|
1490
1522
|
}
|
|
1491
1523
|
},
|
|
1492
|
-
[
|
|
1493
|
-
),
|
|
1524
|
+
[s]
|
|
1525
|
+
), f = d(
|
|
1494
1526
|
async (h) => {
|
|
1495
|
-
if (!
|
|
1527
|
+
if (!s)
|
|
1496
1528
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1497
1529
|
t(!0), r(null);
|
|
1498
1530
|
try {
|
|
1499
|
-
return await
|
|
1531
|
+
return await s.post(
|
|
1500
1532
|
"/wallet/unlock",
|
|
1501
|
-
|
|
1533
|
+
xA(h)
|
|
1502
1534
|
);
|
|
1503
|
-
} catch (
|
|
1504
|
-
const
|
|
1505
|
-
throw r(
|
|
1535
|
+
} catch (g) {
|
|
1536
|
+
const I = Y(g, "Failed to unlock wallet");
|
|
1537
|
+
throw r(I.message), I;
|
|
1506
1538
|
} finally {
|
|
1507
1539
|
t(!1);
|
|
1508
1540
|
}
|
|
1509
1541
|
},
|
|
1510
|
-
[
|
|
1511
|
-
), u =
|
|
1512
|
-
if (!
|
|
1542
|
+
[s]
|
|
1543
|
+
), u = d(async () => {
|
|
1544
|
+
if (!s)
|
|
1513
1545
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1514
1546
|
t(!0), r(null);
|
|
1515
1547
|
try {
|
|
1516
|
-
await
|
|
1548
|
+
await s.post("/wallet/lock", {});
|
|
1517
1549
|
} catch (h) {
|
|
1518
|
-
const
|
|
1519
|
-
throw r(
|
|
1550
|
+
const g = Y(h, "Failed to lock wallet");
|
|
1551
|
+
throw r(g.message), g;
|
|
1520
1552
|
} finally {
|
|
1521
1553
|
t(!1);
|
|
1522
1554
|
}
|
|
1523
|
-
}, [
|
|
1555
|
+
}, [s]), m = d(
|
|
1524
1556
|
async (h) => {
|
|
1525
|
-
if (!
|
|
1557
|
+
if (!s)
|
|
1526
1558
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1527
1559
|
t(!0), r(null);
|
|
1528
1560
|
try {
|
|
1529
|
-
return await
|
|
1530
|
-
} catch (
|
|
1531
|
-
const
|
|
1532
|
-
throw r(
|
|
1561
|
+
return await s.post("/wallet/share-b", h);
|
|
1562
|
+
} catch (g) {
|
|
1563
|
+
const I = Y(g, "Failed to get Share B for recovery");
|
|
1564
|
+
throw r(I.message), I;
|
|
1533
1565
|
} finally {
|
|
1534
1566
|
t(!1);
|
|
1535
1567
|
}
|
|
1536
1568
|
},
|
|
1537
|
-
[
|
|
1538
|
-
),
|
|
1569
|
+
[s]
|
|
1570
|
+
), p = d(() => r(null), []);
|
|
1539
1571
|
return {
|
|
1540
|
-
getStatus:
|
|
1541
|
-
getMaterial:
|
|
1542
|
-
enroll:
|
|
1543
|
-
recover:
|
|
1544
|
-
signTransaction:
|
|
1545
|
-
rotateUserSecret:
|
|
1546
|
-
unlock:
|
|
1572
|
+
getStatus: k,
|
|
1573
|
+
getMaterial: w,
|
|
1574
|
+
enroll: B,
|
|
1575
|
+
recover: b,
|
|
1576
|
+
signTransaction: F,
|
|
1577
|
+
rotateUserSecret: Q,
|
|
1578
|
+
unlock: f,
|
|
1547
1579
|
lock: u,
|
|
1548
|
-
getShareBForRecovery:
|
|
1580
|
+
getShareBForRecovery: m,
|
|
1549
1581
|
isLoading: A,
|
|
1550
1582
|
error: i,
|
|
1551
|
-
clearError:
|
|
1583
|
+
clearError: p
|
|
1552
1584
|
};
|
|
1553
1585
|
}
|
|
1554
|
-
const
|
|
1586
|
+
const vA = {
|
|
1555
1587
|
status: "not_enrolled",
|
|
1556
1588
|
solanaPubkey: null,
|
|
1557
1589
|
authMethod: null,
|
|
@@ -1565,70 +1597,70 @@ const xA = {
|
|
|
1565
1597
|
clearError: () => {
|
|
1566
1598
|
}
|
|
1567
1599
|
};
|
|
1568
|
-
function
|
|
1569
|
-
const A =
|
|
1570
|
-
|
|
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(() => {
|
|
1571
1603
|
if (!A) return;
|
|
1572
|
-
let
|
|
1604
|
+
let g = !1;
|
|
1573
1605
|
return (async () => {
|
|
1574
1606
|
try {
|
|
1575
|
-
const C = await
|
|
1576
|
-
if (
|
|
1577
|
-
|
|
1607
|
+
const C = await YA();
|
|
1608
|
+
if (g) return;
|
|
1609
|
+
b(C), C.allSupported || (i("error"), Q(
|
|
1578
1610
|
"Your browser or device does not support all required features. Please use a modern browser with a platform authenticator."
|
|
1579
1611
|
));
|
|
1580
1612
|
} catch {
|
|
1581
|
-
if (
|
|
1582
|
-
|
|
1613
|
+
if (g) return;
|
|
1614
|
+
b(null), i("error"), Q("Failed to check crypto capabilities");
|
|
1583
1615
|
}
|
|
1584
1616
|
})(), () => {
|
|
1585
|
-
|
|
1617
|
+
g = !0;
|
|
1586
1618
|
};
|
|
1587
1619
|
}, [A]);
|
|
1588
|
-
const
|
|
1589
|
-
if (!(!A || !
|
|
1590
|
-
i("loading"),
|
|
1620
|
+
const p = d(async () => {
|
|
1621
|
+
if (!(!A || !B?.allSupported)) {
|
|
1622
|
+
i("loading"), Q(null);
|
|
1591
1623
|
try {
|
|
1592
|
-
const
|
|
1593
|
-
n(
|
|
1594
|
-
} catch (
|
|
1595
|
-
i("error"),
|
|
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");
|
|
1596
1628
|
}
|
|
1597
1629
|
}
|
|
1598
|
-
}, [A,
|
|
1599
|
-
|
|
1600
|
-
A &&
|
|
1601
|
-
}, [A,
|
|
1602
|
-
const h =
|
|
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), []);
|
|
1603
1635
|
return A ? {
|
|
1604
1636
|
status: t,
|
|
1605
1637
|
solanaPubkey: r,
|
|
1606
1638
|
authMethod: o,
|
|
1607
|
-
hasExternalWallet:
|
|
1608
|
-
isUnlocked:
|
|
1609
|
-
capabilities:
|
|
1610
|
-
isSupported:
|
|
1611
|
-
error:
|
|
1612
|
-
refresh:
|
|
1639
|
+
hasExternalWallet: l,
|
|
1640
|
+
isUnlocked: k,
|
|
1641
|
+
capabilities: B,
|
|
1642
|
+
isSupported: B?.allSupported ?? !1,
|
|
1643
|
+
error: F,
|
|
1644
|
+
refresh: p,
|
|
1613
1645
|
clearError: h
|
|
1614
|
-
} :
|
|
1646
|
+
} : vA;
|
|
1615
1647
|
}
|
|
1616
1648
|
const te = "__CEDROS_EMBEDDED_WALLET__";
|
|
1617
|
-
function
|
|
1649
|
+
function RA(e) {
|
|
1618
1650
|
typeof window < "u" && (window[te] = e);
|
|
1619
1651
|
}
|
|
1620
1652
|
function ce() {
|
|
1621
1653
|
typeof window < "u" && delete window[te];
|
|
1622
1654
|
}
|
|
1623
|
-
function
|
|
1655
|
+
function It() {
|
|
1624
1656
|
return typeof window > "u" ? !1 : window[te]?.available ?? !1;
|
|
1625
1657
|
}
|
|
1626
|
-
function
|
|
1658
|
+
function at() {
|
|
1627
1659
|
return typeof window > "u" ? null : window[te] ?? null;
|
|
1628
1660
|
}
|
|
1629
|
-
function
|
|
1630
|
-
const { config: e, user: A } =
|
|
1631
|
-
return
|
|
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(() => {
|
|
1632
1664
|
if (!n || !A) {
|
|
1633
1665
|
ce();
|
|
1634
1666
|
return;
|
|
@@ -1639,39 +1671,43 @@ function TA() {
|
|
|
1639
1671
|
}
|
|
1640
1672
|
if (t === "loading")
|
|
1641
1673
|
return;
|
|
1642
|
-
const
|
|
1643
|
-
return
|
|
1644
|
-
available:
|
|
1645
|
-
publicKey: o &&
|
|
1674
|
+
const a = t === "enrolled_locked" || t === "enrolled_unlocked";
|
|
1675
|
+
return RA({
|
|
1676
|
+
available: a,
|
|
1677
|
+
publicKey: o && a ? i : null
|
|
1646
1678
|
}), () => {
|
|
1647
1679
|
ce();
|
|
1648
1680
|
};
|
|
1649
1681
|
}, [n, o, A, t, i, r]), null;
|
|
1650
1682
|
}
|
|
1651
|
-
function
|
|
1683
|
+
function gt({ config: e, children: A }) {
|
|
1652
1684
|
const [t, i] = G(null), [r, n] = G(!1), o = P(e.callbacks);
|
|
1653
1685
|
o.current = e.callbacks;
|
|
1654
|
-
const
|
|
1655
|
-
onLoginSuccess: (...
|
|
1656
|
-
onLoginError: (...
|
|
1686
|
+
const a = P({
|
|
1687
|
+
onLoginSuccess: (...D) => o.current?.onLoginSuccess?.(...D),
|
|
1688
|
+
onLoginError: (...D) => o.current?.onLoginError?.(...D),
|
|
1657
1689
|
onLogout: () => o.current?.onLogout?.(),
|
|
1658
1690
|
onSessionExpired: () => o.current?.onSessionExpired?.()
|
|
1659
|
-
}),
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
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,
|
|
1664
1700
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison; callbacks excluded (see UI-06)
|
|
1665
1701
|
[
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1702
|
+
w.serverUrl,
|
|
1703
|
+
w.googleClientId,
|
|
1704
|
+
w.requestTimeout,
|
|
1705
|
+
w.retryAttempts,
|
|
1706
|
+
w.theme,
|
|
1707
|
+
B,
|
|
1708
|
+
b,
|
|
1709
|
+
F,
|
|
1710
|
+
Q
|
|
1675
1711
|
]
|
|
1676
1712
|
);
|
|
1677
1713
|
Me({
|
|
@@ -1679,56 +1715,56 @@ function It({ config: e, children: A }) {
|
|
|
1679
1715
|
themeOverrides: f.themeOverrides
|
|
1680
1716
|
});
|
|
1681
1717
|
const {
|
|
1682
|
-
user:
|
|
1683
|
-
authState:
|
|
1684
|
-
handleLoginSuccess:
|
|
1685
|
-
logout:
|
|
1686
|
-
refreshUser:
|
|
1687
|
-
getAccessToken:
|
|
1688
|
-
} =
|
|
1718
|
+
user: u,
|
|
1719
|
+
authState: m,
|
|
1720
|
+
handleLoginSuccess: p,
|
|
1721
|
+
logout: h,
|
|
1722
|
+
refreshUser: g,
|
|
1723
|
+
getAccessToken: I
|
|
1724
|
+
} = Le({
|
|
1689
1725
|
serverUrl: f.serverUrl,
|
|
1690
1726
|
session: f.session,
|
|
1691
|
-
callbacks:
|
|
1727
|
+
callbacks: a.current,
|
|
1692
1728
|
requestTimeoutMs: f.requestTimeout
|
|
1693
|
-
}),
|
|
1694
|
-
i(null), await
|
|
1695
|
-
}, [
|
|
1696
|
-
(...
|
|
1697
|
-
i(null),
|
|
1729
|
+
}), C = d(async () => {
|
|
1730
|
+
i(null), await h();
|
|
1731
|
+
}, [h]), S = d(
|
|
1732
|
+
(...D) => {
|
|
1733
|
+
i(null), p(...D);
|
|
1698
1734
|
},
|
|
1699
|
-
[
|
|
1700
|
-
),
|
|
1735
|
+
[p]
|
|
1736
|
+
), H = d(() => n(!0), []), c = d(() => n(!1), []), E = V(
|
|
1701
1737
|
() => ({
|
|
1702
1738
|
config: f,
|
|
1703
|
-
user:
|
|
1704
|
-
authState:
|
|
1705
|
-
logout:
|
|
1706
|
-
refreshUser:
|
|
1739
|
+
user: u,
|
|
1740
|
+
authState: m,
|
|
1741
|
+
logout: C,
|
|
1742
|
+
refreshUser: g,
|
|
1707
1743
|
_internal: {
|
|
1708
|
-
handleLoginSuccess:
|
|
1709
|
-
getAccessToken:
|
|
1744
|
+
handleLoginSuccess: S,
|
|
1745
|
+
getAccessToken: I
|
|
1710
1746
|
}
|
|
1711
1747
|
}),
|
|
1712
|
-
[f,
|
|
1713
|
-
),
|
|
1748
|
+
[f, u, m, C, g, S, I]
|
|
1749
|
+
), U = V(
|
|
1714
1750
|
() => ({
|
|
1715
1751
|
error: t,
|
|
1716
1752
|
isModalOpen: r,
|
|
1717
|
-
openModal:
|
|
1718
|
-
closeModal:
|
|
1753
|
+
openModal: H,
|
|
1754
|
+
closeModal: c
|
|
1719
1755
|
}),
|
|
1720
|
-
[t, r,
|
|
1721
|
-
),
|
|
1722
|
-
() => ({ ...
|
|
1723
|
-
[
|
|
1756
|
+
[t, r, H, c]
|
|
1757
|
+
), K = V(
|
|
1758
|
+
() => ({ ...E, ...U }),
|
|
1759
|
+
[E, U]
|
|
1724
1760
|
);
|
|
1725
|
-
return /* @__PURE__ */ ne(
|
|
1726
|
-
/* @__PURE__ */ ne(
|
|
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, {}),
|
|
1727
1763
|
A
|
|
1728
1764
|
] }) }) });
|
|
1729
1765
|
}
|
|
1730
|
-
function
|
|
1731
|
-
const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } =
|
|
1766
|
+
function lt() {
|
|
1767
|
+
const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } = ye();
|
|
1732
1768
|
return {
|
|
1733
1769
|
user: e,
|
|
1734
1770
|
authState: A,
|
|
@@ -1742,30 +1778,30 @@ function at() {
|
|
|
1742
1778
|
};
|
|
1743
1779
|
}
|
|
1744
1780
|
export {
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1781
|
+
gt as C,
|
|
1782
|
+
Xe as D,
|
|
1783
|
+
zA as a,
|
|
1784
|
+
At as b,
|
|
1749
1785
|
z as c,
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
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
|
|
1771
1807
|
};
|