@cedros/login-react 0.0.37 → 0.0.39
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/{AuthenticationSettings-CsPbxwP7.js → AuthenticationSettings-BF_7Ea6Z.js} +1 -1
- package/dist/{AuthenticationSettings-CsPbxwP7.js.map → AuthenticationSettings-BF_7Ea6Z.js.map} +1 -1
- package/dist/{AuthenticationSettings-C-aYDXNH.cjs → AuthenticationSettings-BMDrCVSf.cjs} +1 -1
- package/dist/{AuthenticationSettings-C-aYDXNH.cjs.map → AuthenticationSettings-BMDrCVSf.cjs.map} +1 -1
- package/dist/{AuthenticationSettings-DIVk0OP8.js → AuthenticationSettings-DUXpyiJ5.js} +39 -39
- package/dist/{AuthenticationSettings-DIVk0OP8.js.map → AuthenticationSettings-DUXpyiJ5.js.map} +1 -1
- package/dist/{AuthenticationSettings-CoTic-d_.cjs → AuthenticationSettings-Dk1LX0CK.cjs} +1 -1
- package/dist/{AuthenticationSettings-CoTic-d_.cjs.map → AuthenticationSettings-Dk1LX0CK.cjs.map} +1 -1
- package/dist/{AutosaveStatus-DGNI4lXn.cjs → AutosaveStatus-BKsCIvPj.cjs} +1 -1
- package/dist/AutosaveStatus-BKsCIvPj.cjs.map +1 -0
- package/dist/{AutosaveStatus-f-jw25Ay.js → AutosaveStatus-CSZsp6w7.js} +221 -186
- package/dist/AutosaveStatus-CSZsp6w7.js.map +1 -0
- package/dist/{CreditSystemSettings-C6ed3yp7.js → CreditSystemSettings-Buu7Y-7I.js} +1 -1
- package/dist/{CreditSystemSettings-C6ed3yp7.js.map → CreditSystemSettings-Buu7Y-7I.js.map} +1 -1
- package/dist/{CreditSystemSettings-DM9ep1TF.cjs → CreditSystemSettings-C2HkyMXy.cjs} +1 -1
- package/dist/{CreditSystemSettings-DM9ep1TF.cjs.map → CreditSystemSettings-C2HkyMXy.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-BNkvsgsk.cjs → CreditSystemSettings-CLImarX-.cjs} +1 -1
- package/dist/{CreditSystemSettings-BNkvsgsk.cjs.map → CreditSystemSettings-CLImarX-.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-uinhzoha.js → CreditSystemSettings-Cj21_Ug8.js} +1 -1
- package/dist/{CreditSystemSettings-uinhzoha.js.map → CreditSystemSettings-Cj21_Ug8.js.map} +1 -1
- package/dist/EmailRegisterForm-CNjYrqU6.cjs +1 -0
- package/dist/EmailRegisterForm-CNjYrqU6.cjs.map +1 -0
- package/dist/EmailRegisterForm-D2VaJouj.js +750 -0
- package/dist/EmailRegisterForm-D2VaJouj.js.map +1 -0
- package/dist/{EmailSettings-BC0f1PCI.cjs → EmailSettings-9sdEAONl.cjs} +1 -1
- package/dist/{EmailSettings-BC0f1PCI.cjs.map → EmailSettings-9sdEAONl.cjs.map} +1 -1
- package/dist/{EmailSettings-BKuXy8sc.js → EmailSettings-CmxxnrA9.js} +1 -1
- package/dist/{EmailSettings-BKuXy8sc.js.map → EmailSettings-CmxxnrA9.js.map} +1 -1
- package/dist/{EmailSettings-BAuQtEfM.js → EmailSettings-DRfOF0Sf.js} +1 -1
- package/dist/{EmailSettings-BAuQtEfM.js.map → EmailSettings-DRfOF0Sf.js.map} +1 -1
- package/dist/{EmailSettings-BF5EiPl9.cjs → EmailSettings-eLlzzI5D.cjs} +1 -1
- package/dist/{EmailSettings-BF5EiPl9.cjs.map → EmailSettings-eLlzzI5D.cjs.map} +1 -1
- package/dist/{EmbeddedWalletSettings-CJY39UZN.cjs → EmbeddedWalletSettings-BuLN_Uqc.cjs} +1 -1
- package/dist/{EmbeddedWalletSettings-CJY39UZN.cjs.map → EmbeddedWalletSettings-BuLN_Uqc.cjs.map} +1 -1
- package/dist/{EmbeddedWalletSettings-C27X9He2.js → EmbeddedWalletSettings-CHkkCjyR.js} +1 -1
- package/dist/{EmbeddedWalletSettings-C27X9He2.js.map → EmbeddedWalletSettings-CHkkCjyR.js.map} +1 -1
- package/dist/EmbeddedWalletSettings-DGq-kXbw.cjs +1 -0
- package/dist/EmbeddedWalletSettings-DGq-kXbw.cjs.map +1 -0
- package/dist/{EmbeddedWalletSettings-Dmi-EQ7W.js → EmbeddedWalletSettings-M-D5N0eY.js} +5 -5
- package/dist/EmbeddedWalletSettings-M-D5N0eY.js.map +1 -0
- package/dist/{GoogleLoginButton-BDCbxoCB.cjs → GoogleLoginButton-JtRViYWS.cjs} +1 -1
- package/dist/GoogleLoginButton-JtRViYWS.cjs.map +1 -0
- package/dist/{GoogleLoginButton-6ip-vudk.js → GoogleLoginButton-qf4A_A3G.js} +6 -6
- package/dist/GoogleLoginButton-qf4A_A3G.js.map +1 -0
- package/dist/{ServerSettings-CKfiLfXi.cjs → ServerSettings-CMmH5pZv.cjs} +1 -1
- package/dist/{ServerSettings-CKfiLfXi.cjs.map → ServerSettings-CMmH5pZv.cjs.map} +1 -1
- package/dist/{ServerSettings-CZfBdMxG.js → ServerSettings-DQemMrNv.js} +1 -1
- package/dist/{ServerSettings-CZfBdMxG.js.map → ServerSettings-DQemMrNv.js.map} +1 -1
- package/dist/{ServerSettings-rHrVN8O8.cjs → ServerSettings-DfimU7ay.cjs} +1 -1
- package/dist/{ServerSettings-rHrVN8O8.cjs.map → ServerSettings-DfimU7ay.cjs.map} +1 -1
- package/dist/{ServerSettings-BT9weFPz.js → ServerSettings-qxi8aZO7.js} +1 -1
- package/dist/{ServerSettings-BT9weFPz.js.map → ServerSettings-qxi8aZO7.js.map} +1 -1
- package/dist/{WebhookSettings-DXjnq-c7.cjs → WebhookSettings-0sgWRI3U.cjs} +1 -1
- package/dist/{WebhookSettings-DXjnq-c7.cjs.map → WebhookSettings-0sgWRI3U.cjs.map} +1 -1
- package/dist/{WebhookSettings-Bgld6D_T.js → WebhookSettings-8QAqvkkO.js} +1 -1
- package/dist/{WebhookSettings-Bgld6D_T.js.map → WebhookSettings-8QAqvkkO.js.map} +1 -1
- package/dist/{WebhookSettings-DnLk97Mr.cjs → WebhookSettings-B6Y3Tnjv.cjs} +1 -1
- package/dist/{WebhookSettings-DnLk97Mr.cjs.map → WebhookSettings-B6Y3Tnjv.cjs.map} +1 -1
- package/dist/{WebhookSettings-ufiGTmbG.js → WebhookSettings-B8hAwhZ2.js} +1 -1
- package/dist/{WebhookSettings-ufiGTmbG.js.map → WebhookSettings-B8hAwhZ2.js.map} +1 -1
- 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 +3 -2
- package/dist/email-only.js +2 -2
- package/dist/google-only.cjs +1 -1
- package/dist/google-only.d.ts +5 -4
- package/dist/google-only.js +2 -2
- package/dist/index.cjs +13 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +98 -7
- package/dist/index.js +8052 -5962
- package/dist/index.js.map +1 -1
- package/dist/login-react.css +1 -1
- package/dist/{plugin-Xca67fp7.cjs → plugin-CUxpAjL-.cjs} +1 -1
- package/dist/{plugin-Xca67fp7.cjs.map → plugin-CUxpAjL-.cjs.map} +1 -1
- package/dist/{plugin-BbExid4E.js → plugin-C_NDZ2-D.js} +5 -5
- package/dist/{plugin-BbExid4E.js.map → plugin-C_NDZ2-D.js.map} +1 -1
- package/dist/solana-only.cjs +1 -1
- package/dist/solana-only.d.ts +3 -2
- package/dist/solana-only.js +1 -1
- package/dist/{useAuth-CVLv2oKA.js → useAuth-C-Vw-ggy.js} +743 -803
- package/dist/useAuth-C-Vw-ggy.js.map +1 -0
- package/dist/useAuth-U5CYsHEU.cjs +1 -0
- package/dist/useAuth-U5CYsHEU.cjs.map +1 -0
- package/package.json +4 -1
- package/dist/AutosaveStatus-DGNI4lXn.cjs.map +0 -1
- package/dist/AutosaveStatus-f-jw25Ay.js.map +0 -1
- package/dist/EmailRegisterForm-B_TiJkD6.cjs +0 -1
- package/dist/EmailRegisterForm-B_TiJkD6.cjs.map +0 -1
- package/dist/EmailRegisterForm-CCEuQA-w.js +0 -773
- package/dist/EmailRegisterForm-CCEuQA-w.js.map +0 -1
- package/dist/EmbeddedWalletSettings-BRjt2PAj.cjs +0 -1
- package/dist/EmbeddedWalletSettings-BRjt2PAj.cjs.map +0 -1
- package/dist/EmbeddedWalletSettings-Dmi-EQ7W.js.map +0 -1
- package/dist/GoogleLoginButton-6ip-vudk.js.map +0 -1
- package/dist/GoogleLoginButton-BDCbxoCB.cjs.map +0 -1
- package/dist/shamir-DBpHm7WN.cjs +0 -1
- package/dist/shamir-DBpHm7WN.cjs.map +0 -1
- package/dist/shamir-R8ddesFt.js +0 -1940
- package/dist/shamir-R8ddesFt.js.map +0 -1
- package/dist/silentWalletEnroll-Dp1GTeNr.js +0 -41
- package/dist/silentWalletEnroll-Dp1GTeNr.js.map +0 -1
- package/dist/silentWalletEnroll-HPvsbd2J.cjs +0 -1
- package/dist/silentWalletEnroll-HPvsbd2J.cjs.map +0 -1
- package/dist/useAuth-CVLv2oKA.js.map +0 -1
- package/dist/useAuth-XZaciuLg.cjs +0 -1
- package/dist/useAuth-XZaciuLg.cjs.map +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useEffect as O, useState as
|
|
3
|
-
import { A as
|
|
4
|
-
import { A as pe, g as
|
|
1
|
+
import { jsx as re, jsxs as Ke } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as O, useState as U, useRef as P, useCallback as p, useMemo as V } from "react";
|
|
3
|
+
import { A as He, a as Je, C as Me } from "./LoadingSpinner-6vml-zwr.js";
|
|
4
|
+
import { A as pe, g as ne, a as ye, h as M, u as ke } from "./useCedrosLogin-CFfID-0i.js";
|
|
5
5
|
let q = 0;
|
|
6
|
-
function
|
|
6
|
+
function Ve({ theme: e, themeOverrides: A }) {
|
|
7
7
|
O(() => {
|
|
8
8
|
if (typeof document > "u" || typeof window > "u")
|
|
9
9
|
return;
|
|
10
|
-
const
|
|
10
|
+
const t = document.documentElement;
|
|
11
11
|
let i = !1;
|
|
12
12
|
e === "dark" ? i = !0 : e === "light" ? i = !1 : i = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
13
13
|
let r = !1;
|
|
14
|
-
i ? (q++, r = !0,
|
|
14
|
+
i ? (q++, r = !0, t.classList.add("cedros-dark")) : q === 0 && t.classList.remove("cedros-dark");
|
|
15
15
|
const n = /* @__PURE__ */ new Map();
|
|
16
|
-
return
|
|
16
|
+
return A && Object.entries(A).forEach(([o, a]) => {
|
|
17
17
|
if (a) {
|
|
18
|
-
const
|
|
19
|
-
n.set(o,
|
|
18
|
+
const c = t.style.getPropertyValue(o);
|
|
19
|
+
n.set(o, c), t.style.setProperty(o, a);
|
|
20
20
|
}
|
|
21
21
|
}), () => {
|
|
22
|
-
r && (q--, q === 0 &&
|
|
23
|
-
o ?
|
|
22
|
+
r && (q--, q === 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
|
-
}, [e,
|
|
26
|
+
}, [e, A]);
|
|
27
27
|
}
|
|
28
28
|
const Ne = {
|
|
29
29
|
email: !0,
|
|
@@ -33,13 +33,13 @@ const Ne = {
|
|
|
33
33
|
webauthn: !0,
|
|
34
34
|
instantLink: !0
|
|
35
35
|
};
|
|
36
|
-
function
|
|
37
|
-
const [i, r] =
|
|
36
|
+
function Pe(e, A, t) {
|
|
37
|
+
const [i, r] = U(null), [n, o] = U(), [a, c] = U(), [s, k] = U(), [y, w] = U(), [G, B] = U(), [Q, d] = U(), [f, m] = U(A), E = P(!1);
|
|
38
38
|
return O(() => {
|
|
39
|
-
if (!
|
|
40
|
-
|
|
39
|
+
if (!A || E.current) return;
|
|
40
|
+
E.current = !0, new pe({
|
|
41
41
|
baseUrl: e,
|
|
42
|
-
timeoutMs:
|
|
42
|
+
timeoutMs: t ?? 5e3,
|
|
43
43
|
retryAttempts: 1
|
|
44
44
|
}).get("/features", { credentials: "omit" }).then((C) => {
|
|
45
45
|
r({
|
|
@@ -49,16 +49,16 @@ function Ye(e, t, A) {
|
|
|
49
49
|
solana: C.solana,
|
|
50
50
|
webauthn: C.webauthn,
|
|
51
51
|
instantLink: C.instantLink
|
|
52
|
-
}), o(C.googleClientId),
|
|
52
|
+
}), o(C.googleClientId), c(C.appleClientId), k(C.usernameEnabled), w(C.walletEnrollEnabled), B(C.showRecoveryEnabled), d(C.socialButtonOrder);
|
|
53
53
|
}).catch(() => {
|
|
54
54
|
r(Ne);
|
|
55
55
|
}).finally(() => {
|
|
56
|
-
|
|
56
|
+
m(!1);
|
|
57
57
|
});
|
|
58
|
-
}, [
|
|
58
|
+
}, [A, e, t]), { features: i, googleClientId: n, appleClientId: a, usernameEnabled: s, walletEnrollEnabled: y, showRecoveryEnabled: G, socialButtonOrder: Q, isLoading: f };
|
|
59
59
|
}
|
|
60
|
-
const
|
|
61
|
-
class
|
|
60
|
+
const Ye = "cedros_tokens", Oe = 6e4;
|
|
61
|
+
class xe {
|
|
62
62
|
storage;
|
|
63
63
|
requestedStorage;
|
|
64
64
|
storageKey;
|
|
@@ -73,8 +73,8 @@ class ve {
|
|
|
73
73
|
// S-13: Prevent onSessionExpired from firing multiple times
|
|
74
74
|
sessionExpiredFired = !1;
|
|
75
75
|
allowWebStorage;
|
|
76
|
-
constructor(
|
|
77
|
-
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();
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* S-18/UI-XSS: Warn about localStorage XSS vulnerability in all environments.
|
|
@@ -83,36 +83,36 @@ class ve {
|
|
|
83
83
|
*/
|
|
84
84
|
warnIfLocalStorage() {
|
|
85
85
|
if ((this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && typeof console < "u") {
|
|
86
|
-
const
|
|
86
|
+
const A = this.allowWebStorage ? "" : " (web storage disabled by default; set allowWebStorage=true to enable)";
|
|
87
87
|
console.warn(
|
|
88
|
-
"[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/"
|
|
89
89
|
);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
93
93
|
* Set the callback for when tokens need to be refreshed
|
|
94
94
|
*/
|
|
95
|
-
setRefreshCallback(
|
|
96
|
-
this.onRefreshNeeded =
|
|
95
|
+
setRefreshCallback(A) {
|
|
96
|
+
this.onRefreshNeeded = A, this.scheduleRefresh();
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* Set the callback for when session expires
|
|
100
100
|
*/
|
|
101
|
-
setSessionExpiredCallback(
|
|
102
|
-
this.onSessionExpired =
|
|
101
|
+
setSessionExpiredCallback(A) {
|
|
102
|
+
this.onSessionExpired = A;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
105
|
* Set the callback for when token refresh fails
|
|
106
106
|
* This allows the UI to show an error message to the user
|
|
107
107
|
*/
|
|
108
|
-
setRefreshErrorCallback(
|
|
109
|
-
this.onRefreshError =
|
|
108
|
+
setRefreshErrorCallback(A) {
|
|
109
|
+
this.onRefreshError = A;
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
112
|
* Store tokens and schedule auto-refresh
|
|
113
113
|
*/
|
|
114
|
-
setTokens(
|
|
115
|
-
this.tokens =
|
|
114
|
+
setTokens(A) {
|
|
115
|
+
this.tokens = A, this.expiresAt = Date.now() + A.expiresIn * 1e3, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
118
|
* Get the current access token
|
|
@@ -121,8 +121,8 @@ class ve {
|
|
|
121
121
|
*/
|
|
122
122
|
getAccessToken() {
|
|
123
123
|
if (this.isDestroyed) return null;
|
|
124
|
-
const
|
|
125
|
-
return
|
|
124
|
+
const A = this.tokens?.accessToken;
|
|
125
|
+
return A ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : A : null;
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
128
|
* Get the current refresh token
|
|
@@ -165,8 +165,8 @@ class ve {
|
|
|
165
165
|
}
|
|
166
166
|
scheduleRefresh() {
|
|
167
167
|
if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;
|
|
168
|
-
const
|
|
169
|
-
if (
|
|
168
|
+
const A = this.getTimeUntilExpiry(), t = Math.max(0, A - Oe);
|
|
169
|
+
if (t <= 0) {
|
|
170
170
|
if (this.isDestroyed) return;
|
|
171
171
|
this.onRefreshNeeded().catch((i) => {
|
|
172
172
|
if (this.isDestroyed) return;
|
|
@@ -181,7 +181,7 @@ class ve {
|
|
|
181
181
|
const r = i instanceof Error ? i : new Error("Token refresh failed");
|
|
182
182
|
this.onRefreshError?.(r), this.clear(), this.fireSessionExpired();
|
|
183
183
|
});
|
|
184
|
-
},
|
|
184
|
+
}, t);
|
|
185
185
|
}
|
|
186
186
|
cancelRefresh() {
|
|
187
187
|
this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null);
|
|
@@ -190,17 +190,17 @@ class ve {
|
|
|
190
190
|
if (this.storage !== "memory" && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
|
|
191
191
|
try {
|
|
192
192
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
195
|
-
const i = JSON.parse(
|
|
196
|
-
this.isValidStoredTokenData(i) ? i.expiresAt > Date.now() ? (this.tokens = i.tokens, this.expiresAt = i.expiresAt) :
|
|
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);
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
} catch {
|
|
200
200
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
201
|
-
const
|
|
201
|
+
const A = this.storage === "localStorage" ? localStorage : sessionStorage;
|
|
202
202
|
try {
|
|
203
|
-
|
|
203
|
+
A.removeItem(this.storageKey);
|
|
204
204
|
} catch {
|
|
205
205
|
}
|
|
206
206
|
}
|
|
@@ -209,22 +209,22 @@ class ve {
|
|
|
209
209
|
/**
|
|
210
210
|
* Validate that parsed data matches expected StoredTokenData structure
|
|
211
211
|
*/
|
|
212
|
-
isValidStoredTokenData(
|
|
213
|
-
if (typeof
|
|
214
|
-
const
|
|
215
|
-
if (typeof
|
|
216
|
-
const i =
|
|
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
217
|
return !(typeof i.accessToken != "string" || typeof i.refreshToken != "string" || typeof i.expiresIn != "number");
|
|
218
218
|
}
|
|
219
219
|
saveToStorage() {
|
|
220
220
|
if (!(this.storage === "memory" || !this.tokens) && !(typeof window > "u") && !(!this.allowWebStorage && (this.storage === "localStorage" || this.storage === "sessionStorage")))
|
|
221
221
|
try {
|
|
222
222
|
if (this.storage === "localStorage" || this.storage === "sessionStorage") {
|
|
223
|
-
const
|
|
223
|
+
const A = this.storage === "localStorage" ? localStorage : sessionStorage, t = {
|
|
224
224
|
tokens: this.tokens,
|
|
225
225
|
expiresAt: this.expiresAt
|
|
226
226
|
};
|
|
227
|
-
|
|
227
|
+
A.setItem(this.storageKey, JSON.stringify(t));
|
|
228
228
|
}
|
|
229
229
|
} catch {
|
|
230
230
|
}
|
|
@@ -237,40 +237,40 @@ class ve {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
const
|
|
241
|
-
class
|
|
240
|
+
const ve = "cedros_auth_sync";
|
|
241
|
+
class Te {
|
|
242
242
|
channel = null;
|
|
243
243
|
callback = null;
|
|
244
244
|
boundHandler = null;
|
|
245
245
|
constructor() {
|
|
246
|
-
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));
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
249
|
* Handle incoming sync messages.
|
|
250
250
|
* S-15: Validate message shape to prevent forged auth state from same-origin XSS.
|
|
251
251
|
*/
|
|
252
|
-
handleMessage(
|
|
253
|
-
const
|
|
254
|
-
if (!(!
|
|
255
|
-
if (
|
|
256
|
-
const i =
|
|
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
257
|
if (typeof i.user != "object" || i.user === null || typeof i.user.id != "string")
|
|
258
258
|
return;
|
|
259
259
|
}
|
|
260
|
-
this.callback?.(
|
|
260
|
+
this.callback?.(t);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
/**
|
|
264
264
|
* Set the callback for sync events from other tabs
|
|
265
265
|
*/
|
|
266
|
-
setCallback(
|
|
267
|
-
this.callback =
|
|
266
|
+
setCallback(A) {
|
|
267
|
+
this.callback = A;
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
270
|
* Broadcast login event to other tabs
|
|
271
271
|
*/
|
|
272
|
-
broadcastLogin(
|
|
273
|
-
this.channel?.postMessage({ type: "login", user:
|
|
272
|
+
broadcastLogin(A) {
|
|
273
|
+
this.channel?.postMessage({ type: "login", user: A });
|
|
274
274
|
}
|
|
275
275
|
/**
|
|
276
276
|
* Broadcast logout event to other tabs
|
|
@@ -294,96 +294,96 @@ class Re {
|
|
|
294
294
|
}
|
|
295
295
|
function _(e) {
|
|
296
296
|
if (typeof e != "object" || e === null) return !1;
|
|
297
|
-
const
|
|
298
|
-
if (typeof
|
|
299
|
-
const
|
|
300
|
-
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;
|
|
301
301
|
}
|
|
302
|
-
function
|
|
302
|
+
function Re(e) {
|
|
303
303
|
if (typeof e != "object" || e === null) return !1;
|
|
304
|
-
const
|
|
305
|
-
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;
|
|
306
306
|
}
|
|
307
|
-
function
|
|
307
|
+
function Le({
|
|
308
308
|
serverUrl: e,
|
|
309
|
-
session:
|
|
310
|
-
callbacks:
|
|
309
|
+
session: A,
|
|
310
|
+
callbacks: t,
|
|
311
311
|
requestTimeoutMs: i
|
|
312
312
|
}) {
|
|
313
|
-
const [r, n] =
|
|
313
|
+
const [r, n] = U(null), [o, a] = U("idle"), c = P(null), s = P(null), k = P(t), y = P(!0), w = P(null), G = P(() => Promise.resolve()), B = P(() => {
|
|
314
314
|
});
|
|
315
315
|
O(() => {
|
|
316
|
-
k.current =
|
|
317
|
-
}, [
|
|
316
|
+
k.current = t;
|
|
317
|
+
}, [t]), O(() => (y.current = !0, () => {
|
|
318
318
|
y.current = !1;
|
|
319
319
|
}), []);
|
|
320
|
-
const
|
|
320
|
+
const Q = p((h) => {
|
|
321
321
|
y.current && n(h);
|
|
322
|
-
}, []),
|
|
322
|
+
}, []), d = p((h) => {
|
|
323
323
|
y.current && a(h);
|
|
324
|
-
}, []),
|
|
324
|
+
}, []), f = V(
|
|
325
325
|
() => ({
|
|
326
|
-
storage:
|
|
327
|
-
autoRefresh:
|
|
328
|
-
syncTabs:
|
|
329
|
-
persistKey:
|
|
330
|
-
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
|
|
331
331
|
}),
|
|
332
332
|
[
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
333
|
+
A?.storage,
|
|
334
|
+
A?.autoRefresh,
|
|
335
|
+
A?.syncTabs,
|
|
336
|
+
A?.persistKey,
|
|
337
|
+
A?.allowWebStorage
|
|
338
338
|
]
|
|
339
339
|
);
|
|
340
340
|
O(() => {
|
|
341
|
-
const h = new
|
|
342
|
-
allowWebStorage:
|
|
341
|
+
const h = new xe(f.storage, f.persistKey, {
|
|
342
|
+
allowWebStorage: f.allowWebStorage
|
|
343
343
|
});
|
|
344
|
-
return
|
|
345
|
-
h.destroy(),
|
|
344
|
+
return c.current = h, f.autoRefresh && h.setRefreshCallback(() => G.current()), h.setSessionExpiredCallback(() => B.current()), f.syncTabs && (s.current = new Te()), () => {
|
|
345
|
+
h.destroy(), c.current = null, s.current?.close();
|
|
346
346
|
};
|
|
347
347
|
}, [
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
348
|
+
f.storage,
|
|
349
|
+
f.syncTabs,
|
|
350
|
+
f.persistKey,
|
|
351
|
+
f.allowWebStorage,
|
|
352
|
+
f.autoRefresh
|
|
353
353
|
]);
|
|
354
|
-
const
|
|
354
|
+
const m = p(async () => {
|
|
355
355
|
if (w.current)
|
|
356
356
|
return w.current;
|
|
357
|
-
const h =
|
|
358
|
-
|
|
359
|
-
let
|
|
360
|
-
const Y = new Promise((Z,
|
|
361
|
-
|
|
357
|
+
const h = c.current?.getRefreshToken(), D = !!h, K = ne(), H = {};
|
|
358
|
+
D && (H["Content-Type"] = "application/json"), K && (H["X-CSRF-Token"] = K);
|
|
359
|
+
let b, J;
|
|
360
|
+
const Y = new Promise((Z, te) => {
|
|
361
|
+
b = Z, J = te;
|
|
362
362
|
});
|
|
363
363
|
w.current = Y, (async () => {
|
|
364
|
-
const Z = new AbortController(),
|
|
364
|
+
const Z = new AbortController(), te = i ?? 1e4, Ge = window.setTimeout(() => Z.abort(), te);
|
|
365
365
|
try {
|
|
366
366
|
const X = await fetch(`${e}/refresh`, {
|
|
367
367
|
method: "POST",
|
|
368
368
|
headers: Object.keys(H).length > 0 ? H : void 0,
|
|
369
369
|
credentials: "include",
|
|
370
|
-
body:
|
|
370
|
+
body: D ? JSON.stringify({ refreshToken: h }) : void 0,
|
|
371
371
|
signal: Z.signal
|
|
372
372
|
});
|
|
373
373
|
if (!X.ok)
|
|
374
374
|
throw new Error("Token refresh failed");
|
|
375
|
-
const
|
|
376
|
-
if (
|
|
377
|
-
if (!
|
|
375
|
+
const ie = await X.json();
|
|
376
|
+
if (ie.tokens) {
|
|
377
|
+
if (!Re(ie.tokens))
|
|
378
378
|
throw new Error("Invalid token response structure");
|
|
379
|
-
|
|
380
|
-
} else if (
|
|
379
|
+
c.current?.setTokens(ie.tokens);
|
|
380
|
+
} else if (f.storage !== "cookie")
|
|
381
381
|
throw new Error("Token refresh failed");
|
|
382
|
-
s.current?.broadcastRefresh(),
|
|
382
|
+
s.current?.broadcastRefresh(), b();
|
|
383
383
|
} catch (X) {
|
|
384
384
|
throw J(X), X;
|
|
385
385
|
} finally {
|
|
386
|
-
window.clearTimeout(
|
|
386
|
+
window.clearTimeout(Ge);
|
|
387
387
|
}
|
|
388
388
|
})().catch(() => {
|
|
389
389
|
});
|
|
@@ -392,334 +392,334 @@ function Xe({
|
|
|
392
392
|
} finally {
|
|
393
393
|
w.current = null;
|
|
394
394
|
}
|
|
395
|
-
}, [e,
|
|
396
|
-
if (
|
|
397
|
-
const h =
|
|
395
|
+
}, [e, f.storage, i]), E = p(() => {
|
|
396
|
+
if (f.storage === "cookie") return;
|
|
397
|
+
const h = c.current?.getAccessToken();
|
|
398
398
|
if (h)
|
|
399
399
|
return { Authorization: `Bearer ${h}` };
|
|
400
|
-
}, [
|
|
401
|
-
|
|
402
|
-
}, [
|
|
403
|
-
|
|
404
|
-
const
|
|
400
|
+
}, [f.storage]), S = p(() => {
|
|
401
|
+
c.current?.clear(), Q(null), d("unauthenticated"), k.current?.onSessionExpired?.();
|
|
402
|
+
}, [d, Q]);
|
|
403
|
+
G.current = m, B.current = S;
|
|
404
|
+
const C = p(
|
|
405
405
|
(h) => {
|
|
406
|
-
const
|
|
407
|
-
J && Object.assign(
|
|
408
|
-
const Y =
|
|
409
|
-
return Y && (
|
|
406
|
+
const D = new AbortController(), K = i ?? 1e4, H = window.setTimeout(() => D.abort(), K), b = {}, J = E();
|
|
407
|
+
J && Object.assign(b, J);
|
|
408
|
+
const Y = ne();
|
|
409
|
+
return Y && (b["X-CSRF-Token"] = Y), {
|
|
410
410
|
promise: fetch(h, {
|
|
411
411
|
credentials: "include",
|
|
412
|
-
headers: Object.keys(
|
|
413
|
-
signal:
|
|
412
|
+
headers: Object.keys(b).length > 0 ? b : void 0,
|
|
413
|
+
signal: D.signal
|
|
414
414
|
}),
|
|
415
415
|
cleanup: () => window.clearTimeout(H)
|
|
416
416
|
};
|
|
417
417
|
},
|
|
418
|
-
[
|
|
419
|
-
),
|
|
420
|
-
const h =
|
|
418
|
+
[E, i]
|
|
419
|
+
), g = p(async () => {
|
|
420
|
+
const h = C(`${e}/user`);
|
|
421
421
|
try {
|
|
422
|
-
const
|
|
423
|
-
if (
|
|
424
|
-
const
|
|
425
|
-
if (_(
|
|
426
|
-
|
|
422
|
+
const D = await h.promise;
|
|
423
|
+
if (D.ok) {
|
|
424
|
+
const K = await D.json();
|
|
425
|
+
if (_(K)) {
|
|
426
|
+
Q(K.user), d("authenticated");
|
|
427
427
|
return;
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
|
-
if (
|
|
430
|
+
if (D.status === 401 && f.autoRefresh) {
|
|
431
431
|
try {
|
|
432
|
-
await
|
|
432
|
+
await m();
|
|
433
433
|
} catch {
|
|
434
|
-
|
|
434
|
+
S();
|
|
435
435
|
return;
|
|
436
436
|
}
|
|
437
|
-
const
|
|
437
|
+
const K = C(`${e}/user`);
|
|
438
438
|
try {
|
|
439
|
-
const H = await
|
|
439
|
+
const H = await K.promise;
|
|
440
440
|
if (H.ok) {
|
|
441
|
-
const
|
|
442
|
-
if (_(
|
|
443
|
-
|
|
441
|
+
const b = await H.json();
|
|
442
|
+
if (_(b)) {
|
|
443
|
+
Q(b.user), d("authenticated");
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
447
|
} finally {
|
|
448
|
-
|
|
448
|
+
K.cleanup();
|
|
449
449
|
}
|
|
450
450
|
}
|
|
451
|
-
|
|
451
|
+
Q(null), d("unauthenticated");
|
|
452
452
|
} catch {
|
|
453
|
-
|
|
453
|
+
Q(null), d("unauthenticated");
|
|
454
454
|
} finally {
|
|
455
455
|
h.cleanup();
|
|
456
456
|
}
|
|
457
457
|
}, [
|
|
458
458
|
e,
|
|
459
|
-
|
|
460
|
-
|
|
459
|
+
f.autoRefresh,
|
|
460
|
+
m,
|
|
461
|
+
C,
|
|
462
|
+
S,
|
|
461
463
|
d,
|
|
462
|
-
|
|
463
|
-
B,
|
|
464
|
-
C
|
|
464
|
+
Q
|
|
465
465
|
]);
|
|
466
466
|
O(() => {
|
|
467
|
-
!s.current || !
|
|
467
|
+
!s.current || !f.syncTabs || s.current.setCallback((h) => {
|
|
468
468
|
switch (h.type) {
|
|
469
469
|
case "login":
|
|
470
|
-
|
|
470
|
+
Q(h.user), d("authenticated");
|
|
471
471
|
break;
|
|
472
472
|
case "logout":
|
|
473
|
-
|
|
473
|
+
Q(null), d("unauthenticated"), c.current?.clear();
|
|
474
474
|
break;
|
|
475
475
|
case "refresh":
|
|
476
|
-
|
|
476
|
+
g();
|
|
477
477
|
break;
|
|
478
478
|
default:
|
|
479
479
|
console.warn("[Cedros Login] Unhandled tab sync event:", h);
|
|
480
480
|
}
|
|
481
481
|
});
|
|
482
|
-
}, [
|
|
483
|
-
const h = new AbortController(),
|
|
482
|
+
}, [f.syncTabs, g, d, Q]), O(() => {
|
|
483
|
+
const h = new AbortController(), D = i ?? 1e4, K = window.setTimeout(() => h.abort(), D);
|
|
484
484
|
return (async () => {
|
|
485
|
-
|
|
485
|
+
d("loading");
|
|
486
486
|
try {
|
|
487
|
-
const
|
|
487
|
+
const b = await fetch(`${e}/user`, {
|
|
488
488
|
credentials: "include",
|
|
489
|
-
headers:
|
|
489
|
+
headers: E(),
|
|
490
490
|
signal: h.signal
|
|
491
491
|
});
|
|
492
|
-
if (
|
|
493
|
-
const J = await
|
|
492
|
+
if (b.ok) {
|
|
493
|
+
const J = await b.json();
|
|
494
494
|
if (_(J)) {
|
|
495
|
-
|
|
495
|
+
Q(J.user), d("authenticated");
|
|
496
496
|
return;
|
|
497
497
|
}
|
|
498
498
|
}
|
|
499
|
-
if (
|
|
499
|
+
if (b.status === 401 && f.autoRefresh) {
|
|
500
500
|
try {
|
|
501
|
-
await
|
|
501
|
+
await m();
|
|
502
502
|
} catch {
|
|
503
|
-
|
|
503
|
+
S();
|
|
504
504
|
return;
|
|
505
505
|
}
|
|
506
506
|
const J = await fetch(`${e}/user`, {
|
|
507
507
|
credentials: "include",
|
|
508
|
-
headers:
|
|
508
|
+
headers: E(),
|
|
509
509
|
signal: h.signal
|
|
510
510
|
});
|
|
511
511
|
if (J.ok) {
|
|
512
512
|
const Y = await J.json();
|
|
513
513
|
if (_(Y)) {
|
|
514
|
-
|
|
514
|
+
Q(Y.user), d("authenticated");
|
|
515
515
|
return;
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
}
|
|
519
|
-
|
|
519
|
+
Q(null), d("unauthenticated");
|
|
520
520
|
} catch {
|
|
521
|
-
|
|
521
|
+
Q(null), d("unauthenticated");
|
|
522
522
|
}
|
|
523
523
|
})(), () => {
|
|
524
|
-
window.clearTimeout(
|
|
524
|
+
window.clearTimeout(K), h.abort();
|
|
525
525
|
};
|
|
526
526
|
}, [
|
|
527
527
|
e,
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
528
|
+
f.autoRefresh,
|
|
529
|
+
m,
|
|
530
|
+
E,
|
|
531
|
+
S,
|
|
532
|
+
d,
|
|
533
|
+
Q,
|
|
534
534
|
i
|
|
535
535
|
]);
|
|
536
|
-
const I =
|
|
537
|
-
(h,
|
|
538
|
-
|
|
536
|
+
const I = p(
|
|
537
|
+
(h, D) => {
|
|
538
|
+
Q(h), d("authenticated"), D && c.current?.setTokens(D), y.current && s.current?.broadcastLogin(h);
|
|
539
539
|
},
|
|
540
|
-
[
|
|
541
|
-
),
|
|
542
|
-
const h =
|
|
540
|
+
[Q, d]
|
|
541
|
+
), l = p(async () => {
|
|
542
|
+
const h = ne(), D = new AbortController(), K = i ?? 1e4, H = window.setTimeout(() => D.abort(), K);
|
|
543
543
|
try {
|
|
544
544
|
await fetch(`${e}/logout`, {
|
|
545
545
|
method: "POST",
|
|
546
546
|
headers: {
|
|
547
547
|
...h ? { "X-CSRF-Token": h } : {},
|
|
548
|
-
...
|
|
548
|
+
...E() ?? {}
|
|
549
549
|
},
|
|
550
550
|
credentials: "include",
|
|
551
|
-
signal:
|
|
551
|
+
signal: D.signal
|
|
552
552
|
});
|
|
553
553
|
} catch {
|
|
554
554
|
} finally {
|
|
555
|
-
window.clearTimeout(H),
|
|
555
|
+
window.clearTimeout(H), Q(null), d("unauthenticated"), c.current?.clear(), s.current?.broadcastLogout(), k.current?.onLogout?.();
|
|
556
556
|
}
|
|
557
|
-
}, [e,
|
|
557
|
+
}, [e, E, Q, d, i]), u = p(() => c.current?.getAccessToken() ?? null, []);
|
|
558
558
|
return {
|
|
559
559
|
user: r,
|
|
560
560
|
authState: o,
|
|
561
561
|
handleLoginSuccess: I,
|
|
562
|
-
logout:
|
|
563
|
-
refreshUser:
|
|
564
|
-
getAccessToken:
|
|
562
|
+
logout: l,
|
|
563
|
+
refreshUser: g,
|
|
564
|
+
getAccessToken: u
|
|
565
565
|
};
|
|
566
566
|
}
|
|
567
|
-
const
|
|
567
|
+
const Xe = {
|
|
568
568
|
mCost: 19456,
|
|
569
569
|
// 19 MiB
|
|
570
570
|
tCost: 2,
|
|
571
571
|
pCost: 1
|
|
572
572
|
};
|
|
573
|
-
function
|
|
573
|
+
function We(e) {
|
|
574
574
|
return e.length === 16;
|
|
575
575
|
}
|
|
576
|
-
function
|
|
576
|
+
function je(e) {
|
|
577
577
|
if (e.length === 16) return !0;
|
|
578
578
|
if (e.length < 18) return !1;
|
|
579
|
-
const
|
|
580
|
-
return
|
|
579
|
+
const A = e[0];
|
|
580
|
+
return A === 0 || A === 1 || A === 128 || A === 8;
|
|
581
581
|
}
|
|
582
|
-
function
|
|
582
|
+
function Ze(e) {
|
|
583
583
|
return e.length === 32;
|
|
584
584
|
}
|
|
585
|
-
function
|
|
585
|
+
function qe(e) {
|
|
586
586
|
return e.length === 12;
|
|
587
587
|
}
|
|
588
|
-
function
|
|
588
|
+
function _e(e) {
|
|
589
589
|
return e.length >= 16;
|
|
590
590
|
}
|
|
591
|
-
function
|
|
591
|
+
function $e(e) {
|
|
592
592
|
return e.length === 32;
|
|
593
593
|
}
|
|
594
|
-
function
|
|
595
|
-
if (!
|
|
594
|
+
function ze(e) {
|
|
595
|
+
if (!We(e))
|
|
596
596
|
throw new Error(`Invalid seed length: expected 16, got ${e.length}`);
|
|
597
597
|
return e;
|
|
598
598
|
}
|
|
599
|
-
function
|
|
600
|
-
if (!
|
|
599
|
+
function qA(e) {
|
|
600
|
+
if (!je(e))
|
|
601
601
|
throw new Error(`Invalid share length: expected >=16, got ${e.length}`);
|
|
602
602
|
return e;
|
|
603
603
|
}
|
|
604
604
|
function Se(e) {
|
|
605
|
-
if (!
|
|
605
|
+
if (!Ze(e))
|
|
606
606
|
throw new Error(`Invalid key length: expected 32, got ${e.length}`);
|
|
607
607
|
return e;
|
|
608
608
|
}
|
|
609
|
-
function
|
|
610
|
-
if (!
|
|
609
|
+
function eA(e) {
|
|
610
|
+
if (!qe(e))
|
|
611
611
|
throw new Error(`Invalid nonce length: expected 12, got ${e.length}`);
|
|
612
612
|
return e;
|
|
613
613
|
}
|
|
614
|
-
function
|
|
615
|
-
if (
|
|
614
|
+
function AA(e) {
|
|
615
|
+
if (!_e(e))
|
|
616
616
|
throw new Error(`Invalid salt length: expected >=16, got ${e.length}`);
|
|
617
617
|
return e;
|
|
618
618
|
}
|
|
619
|
-
function
|
|
620
|
-
if (
|
|
619
|
+
function tA(e) {
|
|
620
|
+
if (!$e(e))
|
|
621
621
|
throw new Error(`Invalid PRF salt length: expected 32, got ${e.length}`);
|
|
622
622
|
return e;
|
|
623
623
|
}
|
|
624
|
-
function
|
|
624
|
+
function L(e) {
|
|
625
625
|
return new Uint8Array(e);
|
|
626
626
|
}
|
|
627
|
-
function
|
|
627
|
+
function ee(e) {
|
|
628
628
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
629
629
|
throw new Error(
|
|
630
630
|
"WebCrypto API not available. Secure random generation requires a modern browser."
|
|
631
631
|
);
|
|
632
|
-
const
|
|
633
|
-
return crypto.getRandomValues(
|
|
632
|
+
const A = new Uint8Array(e);
|
|
633
|
+
return crypto.getRandomValues(A), A;
|
|
634
634
|
}
|
|
635
|
-
function
|
|
636
|
-
return
|
|
635
|
+
function _A() {
|
|
636
|
+
return ze(ee(16));
|
|
637
637
|
}
|
|
638
|
-
function
|
|
639
|
-
return
|
|
638
|
+
function iA() {
|
|
639
|
+
return eA(ee(12));
|
|
640
640
|
}
|
|
641
|
-
function
|
|
642
|
-
return
|
|
641
|
+
function $A() {
|
|
642
|
+
return AA(ee(16));
|
|
643
643
|
}
|
|
644
|
-
function
|
|
645
|
-
return
|
|
644
|
+
function zA() {
|
|
645
|
+
return tA(ee(32));
|
|
646
646
|
}
|
|
647
647
|
function De(e) {
|
|
648
648
|
if (!(!e || e.length === 0)) {
|
|
649
649
|
if (typeof globalThis.crypto?.getRandomValues == "function")
|
|
650
650
|
globalThis.crypto.getRandomValues(e);
|
|
651
651
|
else
|
|
652
|
-
for (let
|
|
653
|
-
e[
|
|
652
|
+
for (let A = 0; A < e.length; A++)
|
|
653
|
+
e[A] = A * 90 & 255;
|
|
654
654
|
e.fill(0);
|
|
655
655
|
}
|
|
656
656
|
}
|
|
657
|
-
function
|
|
658
|
-
for (const
|
|
659
|
-
|
|
657
|
+
function et(...e) {
|
|
658
|
+
for (const A of e)
|
|
659
|
+
A && De(A);
|
|
660
660
|
}
|
|
661
|
-
async function
|
|
661
|
+
async function rA(e) {
|
|
662
662
|
return crypto.subtle.importKey(
|
|
663
663
|
"raw",
|
|
664
|
-
|
|
664
|
+
L(e),
|
|
665
665
|
{ name: "AES-GCM", length: 256 },
|
|
666
666
|
!1,
|
|
667
667
|
// not extractable
|
|
668
668
|
["encrypt", "decrypt"]
|
|
669
669
|
);
|
|
670
670
|
}
|
|
671
|
-
async function
|
|
672
|
-
const i =
|
|
673
|
-
{ name: "AES-GCM", iv:
|
|
671
|
+
async function nA(e, A, t) {
|
|
672
|
+
const i = t ?? iA(), r = await rA(A), n = await crypto.subtle.encrypt(
|
|
673
|
+
{ name: "AES-GCM", iv: L(i) },
|
|
674
674
|
r,
|
|
675
|
-
|
|
675
|
+
L(e)
|
|
676
676
|
);
|
|
677
677
|
return {
|
|
678
678
|
ciphertext: new Uint8Array(n),
|
|
679
679
|
nonce: i
|
|
680
680
|
};
|
|
681
681
|
}
|
|
682
|
-
async function
|
|
683
|
-
const
|
|
682
|
+
async function At(e, A) {
|
|
683
|
+
const t = await nA(e, A);
|
|
684
684
|
return {
|
|
685
|
-
ciphertext:
|
|
686
|
-
nonce:
|
|
685
|
+
ciphertext: ue(t.ciphertext),
|
|
686
|
+
nonce: ue(t.nonce)
|
|
687
687
|
};
|
|
688
688
|
}
|
|
689
|
-
function
|
|
690
|
-
const
|
|
689
|
+
function ue(e) {
|
|
690
|
+
const t = [];
|
|
691
691
|
for (let i = 0; i < e.length; i += 32768) {
|
|
692
692
|
const r = e.subarray(i, Math.min(i + 32768, e.length));
|
|
693
|
-
|
|
693
|
+
t.push(String.fromCharCode(...r));
|
|
694
694
|
}
|
|
695
|
-
return btoa(
|
|
695
|
+
return btoa(t.join(""));
|
|
696
696
|
}
|
|
697
|
-
function
|
|
698
|
-
let
|
|
697
|
+
function oA(e) {
|
|
698
|
+
let A;
|
|
699
699
|
try {
|
|
700
|
-
|
|
700
|
+
A = atob(e);
|
|
701
701
|
} catch {
|
|
702
702
|
throw new Error("Invalid base64 string: input is malformed or contains invalid characters");
|
|
703
703
|
}
|
|
704
|
-
const
|
|
705
|
-
for (let i = 0; i <
|
|
706
|
-
|
|
707
|
-
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;
|
|
708
708
|
}
|
|
709
|
-
async function
|
|
709
|
+
async function sA(e, A, t, i = 32) {
|
|
710
710
|
const r = await crypto.subtle.importKey(
|
|
711
711
|
"raw",
|
|
712
|
-
|
|
712
|
+
L(e),
|
|
713
713
|
"HKDF",
|
|
714
714
|
!1,
|
|
715
715
|
["deriveBits"]
|
|
716
|
-
), n = new TextEncoder().encode(
|
|
716
|
+
), n = new TextEncoder().encode(t), o = await crypto.subtle.deriveBits(
|
|
717
717
|
{
|
|
718
718
|
name: "HKDF",
|
|
719
719
|
hash: "SHA-256",
|
|
720
|
-
salt:
|
|
720
|
+
salt: L(A ?? new Uint8Array(32)),
|
|
721
721
|
// Zero salt if not provided
|
|
722
|
-
info:
|
|
722
|
+
info: L(n)
|
|
723
723
|
},
|
|
724
724
|
r,
|
|
725
725
|
i * 8
|
|
@@ -727,11 +727,11 @@ async function at(e, t, A, i = 32) {
|
|
|
727
727
|
);
|
|
728
728
|
return new Uint8Array(o);
|
|
729
729
|
}
|
|
730
|
-
async function
|
|
731
|
-
const
|
|
732
|
-
return Se(
|
|
730
|
+
async function tt(e, A) {
|
|
731
|
+
const t = await sA(e, A, "cedros-wallet-share-b-encryption", 32);
|
|
732
|
+
return Se(t);
|
|
733
733
|
}
|
|
734
|
-
async function
|
|
734
|
+
async function IA() {
|
|
735
735
|
try {
|
|
736
736
|
const e = await crypto.subtle.importKey("raw", new Uint8Array(32), "HKDF", !1, [
|
|
737
737
|
"deriveBits"
|
|
@@ -750,13 +750,13 @@ async function gt() {
|
|
|
750
750
|
return !1;
|
|
751
751
|
}
|
|
752
752
|
}
|
|
753
|
-
function
|
|
753
|
+
function T(e, A, t, i) {
|
|
754
754
|
function r(n) {
|
|
755
|
-
return n instanceof
|
|
755
|
+
return n instanceof t ? n : new t(function(o) {
|
|
756
756
|
o(n);
|
|
757
757
|
});
|
|
758
758
|
}
|
|
759
|
-
return new (
|
|
759
|
+
return new (t || (t = Promise))(function(n, o) {
|
|
760
760
|
function a(k) {
|
|
761
761
|
try {
|
|
762
762
|
s(i.next(k));
|
|
@@ -764,7 +764,7 @@ function R(e, t, A, i) {
|
|
|
764
764
|
o(y);
|
|
765
765
|
}
|
|
766
766
|
}
|
|
767
|
-
function
|
|
767
|
+
function c(k) {
|
|
768
768
|
try {
|
|
769
769
|
s(i.throw(k));
|
|
770
770
|
} catch (y) {
|
|
@@ -772,134 +772,134 @@ function R(e, t, A, i) {
|
|
|
772
772
|
}
|
|
773
773
|
}
|
|
774
774
|
function s(k) {
|
|
775
|
-
k.done ? n(k.value) : r(k.value).then(a,
|
|
775
|
+
k.done ? n(k.value) : r(k.value).then(a, c);
|
|
776
776
|
}
|
|
777
777
|
s((i = i.apply(e, [])).next());
|
|
778
778
|
});
|
|
779
779
|
}
|
|
780
|
-
class
|
|
780
|
+
class F {
|
|
781
781
|
constructor() {
|
|
782
782
|
this.mutex = Promise.resolve();
|
|
783
783
|
}
|
|
784
784
|
lock() {
|
|
785
|
-
let
|
|
785
|
+
let A = () => {
|
|
786
786
|
};
|
|
787
|
-
return this.mutex = this.mutex.then(() => new Promise(
|
|
788
|
-
|
|
787
|
+
return this.mutex = this.mutex.then(() => new Promise(A)), new Promise((t) => {
|
|
788
|
+
A = t;
|
|
789
789
|
});
|
|
790
790
|
}
|
|
791
|
-
dispatch(
|
|
792
|
-
return
|
|
793
|
-
const
|
|
791
|
+
dispatch(A) {
|
|
792
|
+
return T(this, void 0, void 0, function* () {
|
|
793
|
+
const t = yield this.lock();
|
|
794
794
|
try {
|
|
795
|
-
return yield Promise.resolve(
|
|
795
|
+
return yield Promise.resolve(A());
|
|
796
796
|
} finally {
|
|
797
|
-
|
|
797
|
+
t();
|
|
798
798
|
}
|
|
799
799
|
});
|
|
800
800
|
}
|
|
801
801
|
}
|
|
802
|
-
var
|
|
803
|
-
function
|
|
802
|
+
var oe;
|
|
803
|
+
function aA() {
|
|
804
804
|
return typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global;
|
|
805
805
|
}
|
|
806
|
-
const
|
|
807
|
-
function Fe(e,
|
|
808
|
-
return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (
|
|
806
|
+
const ce = aA(), se = (oe = ce.Buffer) !== null && oe !== void 0 ? oe : null, gA = ce.TextEncoder ? new ce.TextEncoder() : null;
|
|
807
|
+
function Fe(e, A) {
|
|
808
|
+
return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (A & 15) + (A >> 6 | A >> 3 & 8);
|
|
809
809
|
}
|
|
810
|
-
function Ue(e,
|
|
811
|
-
const
|
|
812
|
-
for (let i = 0; i <
|
|
810
|
+
function Ue(e, A) {
|
|
811
|
+
const t = A.length >> 1;
|
|
812
|
+
for (let i = 0; i < t; i++) {
|
|
813
813
|
const r = i << 1;
|
|
814
|
-
e[i] = Fe(
|
|
814
|
+
e[i] = Fe(A.charCodeAt(r), A.charCodeAt(r + 1));
|
|
815
815
|
}
|
|
816
816
|
}
|
|
817
|
-
function
|
|
818
|
-
if (e.length !==
|
|
817
|
+
function lA(e, A) {
|
|
818
|
+
if (e.length !== A.length * 2)
|
|
819
819
|
return !1;
|
|
820
|
-
for (let
|
|
821
|
-
const i =
|
|
822
|
-
if (t
|
|
820
|
+
for (let t = 0; t < A.length; t++) {
|
|
821
|
+
const i = t << 1;
|
|
822
|
+
if (A[t] !== Fe(e.charCodeAt(i), e.charCodeAt(i + 1)))
|
|
823
823
|
return !1;
|
|
824
824
|
}
|
|
825
825
|
return !0;
|
|
826
826
|
}
|
|
827
827
|
const we = 87, Qe = 48;
|
|
828
|
-
function
|
|
828
|
+
function Ce(e, A, t) {
|
|
829
829
|
let i = 0;
|
|
830
|
-
for (let r = 0; r <
|
|
831
|
-
let n =
|
|
832
|
-
e[i++] = n > 9 ? n + we : n + Qe, n =
|
|
830
|
+
for (let r = 0; r < t; r++) {
|
|
831
|
+
let n = A[r] >>> 4;
|
|
832
|
+
e[i++] = n > 9 ? n + we : n + Qe, n = A[r] & 15, e[i++] = n > 9 ? n + we : n + Qe;
|
|
833
833
|
}
|
|
834
834
|
return String.fromCharCode.apply(null, e);
|
|
835
835
|
}
|
|
836
|
-
const v =
|
|
836
|
+
const v = se !== null ? (e) => {
|
|
837
837
|
if (typeof e == "string") {
|
|
838
|
-
const
|
|
839
|
-
return new Uint8Array(
|
|
838
|
+
const A = se.from(e, "utf8");
|
|
839
|
+
return new Uint8Array(A.buffer, A.byteOffset, A.length);
|
|
840
840
|
}
|
|
841
|
-
if (
|
|
841
|
+
if (se.isBuffer(e))
|
|
842
842
|
return new Uint8Array(e.buffer, e.byteOffset, e.length);
|
|
843
843
|
if (ArrayBuffer.isView(e))
|
|
844
844
|
return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
|
|
845
845
|
throw new Error("Invalid data type!");
|
|
846
846
|
} : (e) => {
|
|
847
847
|
if (typeof e == "string")
|
|
848
|
-
return
|
|
848
|
+
return gA.encode(e);
|
|
849
849
|
if (ArrayBuffer.isView(e))
|
|
850
850
|
return new Uint8Array(e.buffer, e.byteOffset, e.byteLength);
|
|
851
851
|
throw new Error("Invalid data type!");
|
|
852
|
-
},
|
|
853
|
-
for (let e = 0; e <
|
|
854
|
-
j[
|
|
855
|
-
function Be(e,
|
|
856
|
-
const
|
|
852
|
+
}, N = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", j = new Uint8Array(256);
|
|
853
|
+
for (let e = 0; e < N.length; e++)
|
|
854
|
+
j[N.charCodeAt(e)] = e;
|
|
855
|
+
function Be(e, A = !0) {
|
|
856
|
+
const t = e.length, i = t % 3, r = [], n = t - i;
|
|
857
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),
|
|
859
|
-
r.push(
|
|
858
|
+
const a = (e[o] << 16 & 16711680) + (e[o + 1] << 8 & 65280) + (e[o + 2] & 255), c = N.charAt(a >> 18 & 63) + N.charAt(a >> 12 & 63) + N.charAt(a >> 6 & 63) + N.charAt(a & 63);
|
|
859
|
+
r.push(c);
|
|
860
860
|
}
|
|
861
861
|
if (i === 1) {
|
|
862
|
-
const o = e[
|
|
863
|
-
r.push(`${a}${
|
|
862
|
+
const o = e[t - 1], a = N.charAt(o >> 2), c = N.charAt(o << 4 & 63);
|
|
863
|
+
r.push(`${a}${c}`), A && r.push("==");
|
|
864
864
|
} else if (i === 2) {
|
|
865
|
-
const o = (e[
|
|
866
|
-
r.push(`${a}${
|
|
865
|
+
const o = (e[t - 2] << 8) + e[t - 1], a = N.charAt(o >> 10), c = N.charAt(o >> 4 & 63), s = N.charAt(o << 2 & 63);
|
|
866
|
+
r.push(`${a}${c}${s}`), A && r.push("=");
|
|
867
867
|
}
|
|
868
868
|
return r.join("");
|
|
869
869
|
}
|
|
870
|
-
function
|
|
871
|
-
let
|
|
872
|
-
const
|
|
873
|
-
return e[
|
|
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
874
|
}
|
|
875
|
-
function
|
|
876
|
-
const
|
|
875
|
+
function CA(e) {
|
|
876
|
+
const A = cA(e), t = e.length, i = new Uint8Array(A);
|
|
877
877
|
let r = 0;
|
|
878
|
-
for (let n = 0; n <
|
|
879
|
-
const o = j[e.charCodeAt(n)], a = j[e.charCodeAt(n + 1)],
|
|
880
|
-
i[r] = o << 2 | a >> 4, r += 1, i[r] = (a & 15) << 4 |
|
|
878
|
+
for (let n = 0; n < t; n += 4) {
|
|
879
|
+
const o = j[e.charCodeAt(n)], a = j[e.charCodeAt(n + 1)], c = j[e.charCodeAt(n + 2)], s = j[e.charCodeAt(n + 3)];
|
|
880
|
+
i[r] = o << 2 | a >> 4, r += 1, i[r] = (a & 15) << 4 | c >> 2, r += 1, i[r] = (c & 3) << 6 | s & 63, r += 1;
|
|
881
881
|
}
|
|
882
882
|
return i;
|
|
883
883
|
}
|
|
884
|
-
const $ = 16 * 1024, W = 4,
|
|
885
|
-
function me(e,
|
|
886
|
-
return
|
|
887
|
-
let
|
|
884
|
+
const $ = 16 * 1024, W = 4, hA = new F(), Ie = /* @__PURE__ */ new Map();
|
|
885
|
+
function me(e, A) {
|
|
886
|
+
return T(this, void 0, void 0, function* () {
|
|
887
|
+
let t = null, i = null, r = !1;
|
|
888
888
|
if (typeof WebAssembly > "u")
|
|
889
889
|
throw new Error("WebAssembly is not supported in this environment!");
|
|
890
|
-
const n = (
|
|
891
|
-
i.set(
|
|
892
|
-
}, o = () => i, a = () =>
|
|
893
|
-
|
|
894
|
-
const I =
|
|
895
|
-
i = new Uint8Array(
|
|
896
|
-
}, s = () => new DataView(
|
|
897
|
-
if (!
|
|
898
|
-
const I =
|
|
899
|
-
|
|
890
|
+
const n = (g, I = 0) => {
|
|
891
|
+
i.set(g, I);
|
|
892
|
+
}, o = () => i, a = () => t.exports, c = (g) => {
|
|
893
|
+
t.exports.Hash_SetMemorySize(g);
|
|
894
|
+
const I = t.exports.Hash_GetBuffer(), l = t.exports.memory.buffer;
|
|
895
|
+
i = new Uint8Array(l, I, g);
|
|
896
|
+
}, s = () => new DataView(t.exports.memory.buffer).getUint32(t.exports.STATE_SIZE, !0), k = hA.dispatch(() => T(this, void 0, void 0, function* () {
|
|
897
|
+
if (!Ie.has(e.name)) {
|
|
898
|
+
const I = CA(e.data), l = WebAssembly.compile(I);
|
|
899
|
+
Ie.set(e.name, l);
|
|
900
900
|
}
|
|
901
|
-
const
|
|
902
|
-
|
|
901
|
+
const g = yield Ie.get(e.name);
|
|
902
|
+
t = yield WebAssembly.instantiate(g, {
|
|
903
903
|
// env: {
|
|
904
904
|
// emscripten_memcpy_big: (dest, src, num) => {
|
|
905
905
|
// const memoryBuffer = wasmInstance.exports.memory.buffer;
|
|
@@ -913,116 +913,116 @@ function me(e, t) {
|
|
|
913
913
|
// },
|
|
914
914
|
// },
|
|
915
915
|
});
|
|
916
|
-
})), y = () =>
|
|
917
|
-
|
|
918
|
-
const
|
|
919
|
-
i = new Uint8Array(I,
|
|
920
|
-
}), w = (
|
|
921
|
-
r = !0,
|
|
922
|
-
},
|
|
916
|
+
})), y = () => T(this, void 0, void 0, function* () {
|
|
917
|
+
t || (yield k);
|
|
918
|
+
const g = t.exports.Hash_GetBuffer(), I = t.exports.memory.buffer;
|
|
919
|
+
i = new Uint8Array(I, g, $);
|
|
920
|
+
}), w = (g = null) => {
|
|
921
|
+
r = !0, t.exports.Hash_Init(g);
|
|
922
|
+
}, G = (g) => {
|
|
923
923
|
let I = 0;
|
|
924
|
-
for (; I <
|
|
925
|
-
const
|
|
926
|
-
I +=
|
|
924
|
+
for (; I < g.length; ) {
|
|
925
|
+
const l = g.subarray(I, I + $);
|
|
926
|
+
I += l.length, i.set(l), t.exports.Hash_Update(l.length);
|
|
927
927
|
}
|
|
928
|
-
},
|
|
928
|
+
}, B = (g) => {
|
|
929
929
|
if (!r)
|
|
930
930
|
throw new Error("update() called before init()");
|
|
931
|
-
const I = v(
|
|
932
|
-
|
|
933
|
-
},
|
|
931
|
+
const I = v(g);
|
|
932
|
+
G(I);
|
|
933
|
+
}, Q = new Uint8Array(A * 2), d = (g, I = null) => {
|
|
934
934
|
if (!r)
|
|
935
935
|
throw new Error("digest() called before init()");
|
|
936
|
-
return r = !1,
|
|
937
|
-
},
|
|
936
|
+
return r = !1, t.exports.Hash_Final(I), g === "binary" ? i.slice(0, A) : Ce(Q, i, A);
|
|
937
|
+
}, f = () => {
|
|
938
938
|
if (!r)
|
|
939
939
|
throw new Error("save() can only be called after init() and before digest()");
|
|
940
|
-
const
|
|
941
|
-
return Ue(h, e.hash), h.set(
|
|
942
|
-
},
|
|
943
|
-
if (!(
|
|
940
|
+
const g = t.exports.Hash_GetState(), I = s(), l = t.exports.memory.buffer, u = new Uint8Array(l, g, I), h = new Uint8Array(W + I);
|
|
941
|
+
return Ue(h, e.hash), h.set(u, W), h;
|
|
942
|
+
}, m = (g) => {
|
|
943
|
+
if (!(g instanceof Uint8Array))
|
|
944
944
|
throw new Error("load() expects an Uint8Array generated by save()");
|
|
945
|
-
const I =
|
|
946
|
-
if (
|
|
947
|
-
throw new Error(`Bad state length (expected ${
|
|
948
|
-
if (!
|
|
945
|
+
const I = t.exports.Hash_GetState(), l = s(), u = W + l, h = t.exports.memory.buffer;
|
|
946
|
+
if (g.length !== u)
|
|
947
|
+
throw new Error(`Bad state length (expected ${u} bytes, got ${g.length})`);
|
|
948
|
+
if (!lA(e.hash, g.subarray(0, W)))
|
|
949
949
|
throw new Error("This state was written by an incompatible hash implementation");
|
|
950
|
-
const
|
|
951
|
-
new Uint8Array(h, I,
|
|
952
|
-
},
|
|
953
|
-
let
|
|
950
|
+
const D = g.subarray(W);
|
|
951
|
+
new Uint8Array(h, I, l).set(D), r = !0;
|
|
952
|
+
}, E = (g) => typeof g == "string" ? g.length < $ / 4 : g.byteLength < $;
|
|
953
|
+
let S = E;
|
|
954
954
|
switch (e.name) {
|
|
955
955
|
case "argon2":
|
|
956
956
|
case "scrypt":
|
|
957
|
-
|
|
957
|
+
S = () => !0;
|
|
958
958
|
break;
|
|
959
959
|
case "blake2b":
|
|
960
960
|
case "blake2s":
|
|
961
|
-
|
|
961
|
+
S = (g, I) => I <= 512 && E(g);
|
|
962
962
|
break;
|
|
963
963
|
case "blake3":
|
|
964
|
-
|
|
964
|
+
S = (g, I) => I === 0 && E(g);
|
|
965
965
|
break;
|
|
966
966
|
case "xxhash64":
|
|
967
967
|
// cannot simplify
|
|
968
968
|
case "xxhash3":
|
|
969
969
|
case "xxhash128":
|
|
970
970
|
case "crc64":
|
|
971
|
-
|
|
971
|
+
S = () => !1;
|
|
972
972
|
break;
|
|
973
973
|
}
|
|
974
|
-
const
|
|
975
|
-
if (!
|
|
976
|
-
return w(I),
|
|
977
|
-
const
|
|
978
|
-
return i.set(
|
|
974
|
+
const C = (g, I = null, l = null) => {
|
|
975
|
+
if (!S(g, I))
|
|
976
|
+
return w(I), B(g), d("hex", l);
|
|
977
|
+
const u = v(g);
|
|
978
|
+
return i.set(u), t.exports.Hash_Calculate(u.length, I, l), Ce(Q, i, A);
|
|
979
979
|
};
|
|
980
980
|
return yield y(), {
|
|
981
981
|
getMemory: o,
|
|
982
982
|
writeMemory: n,
|
|
983
983
|
getExports: a,
|
|
984
|
-
setMemorySize:
|
|
984
|
+
setMemorySize: c,
|
|
985
985
|
init: w,
|
|
986
|
-
update:
|
|
987
|
-
digest:
|
|
988
|
-
save:
|
|
989
|
-
load:
|
|
990
|
-
calculate:
|
|
991
|
-
hashLength:
|
|
986
|
+
update: B,
|
|
987
|
+
digest: d,
|
|
988
|
+
save: f,
|
|
989
|
+
load: m,
|
|
990
|
+
calculate: C,
|
|
991
|
+
hashLength: A
|
|
992
992
|
};
|
|
993
993
|
});
|
|
994
994
|
}
|
|
995
|
-
new
|
|
996
|
-
var
|
|
997
|
-
name:
|
|
998
|
-
data:
|
|
999
|
-
hash:
|
|
1000
|
-
},
|
|
1001
|
-
name:
|
|
1002
|
-
data:
|
|
1003
|
-
hash:
|
|
995
|
+
new F();
|
|
996
|
+
var fA = "argon2", uA = "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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", wA = "e4cdc523", QA = {
|
|
997
|
+
name: fA,
|
|
998
|
+
data: uA,
|
|
999
|
+
hash: wA
|
|
1000
|
+
}, BA = "blake2b", dA = "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", EA = "c6f286e6", pA = {
|
|
1001
|
+
name: BA,
|
|
1002
|
+
data: dA,
|
|
1003
|
+
hash: EA
|
|
1004
1004
|
};
|
|
1005
|
-
new
|
|
1005
|
+
new F();
|
|
1006
1006
|
function de(e) {
|
|
1007
1007
|
return !Number.isInteger(e) || e < 8 || e > 512 || e % 8 !== 0 ? new Error("Invalid variant! Valid values: 8, 16, ..., 512") : null;
|
|
1008
1008
|
}
|
|
1009
|
-
function
|
|
1010
|
-
return e |
|
|
1009
|
+
function yA(e, A) {
|
|
1010
|
+
return e | A << 16;
|
|
1011
1011
|
}
|
|
1012
|
-
function
|
|
1012
|
+
function he(e = 512, A = null) {
|
|
1013
1013
|
if (de(e))
|
|
1014
1014
|
return Promise.reject(de(e));
|
|
1015
|
-
let
|
|
1016
|
-
if (
|
|
1017
|
-
if (
|
|
1015
|
+
let t = null, i = e;
|
|
1016
|
+
if (A !== null) {
|
|
1017
|
+
if (t = v(A), t.length > 64)
|
|
1018
1018
|
return Promise.reject(new Error("Max key length is 64 bytes"));
|
|
1019
|
-
i =
|
|
1019
|
+
i = yA(e, t.length);
|
|
1020
1020
|
}
|
|
1021
1021
|
const r = e / 8;
|
|
1022
|
-
return me(
|
|
1023
|
-
i > 512 && n.writeMemory(
|
|
1022
|
+
return me(pA, r).then((n) => {
|
|
1023
|
+
i > 512 && n.writeMemory(t), n.init(i);
|
|
1024
1024
|
const o = {
|
|
1025
|
-
init: i > 512 ? () => (n.writeMemory(
|
|
1025
|
+
init: i > 512 ? () => (n.writeMemory(t), n.init(i), o) : () => (n.init(i), o),
|
|
1026
1026
|
update: (a) => (n.update(a), o),
|
|
1027
1027
|
// biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
|
|
1028
1028
|
digest: (a) => n.digest(a),
|
|
@@ -1034,36 +1034,36 @@ function fe(e = 512, t = null) {
|
|
|
1034
1034
|
return o;
|
|
1035
1035
|
});
|
|
1036
1036
|
}
|
|
1037
|
-
function
|
|
1037
|
+
function kA(e, A, t) {
|
|
1038
1038
|
const i = [
|
|
1039
|
-
`m=${
|
|
1040
|
-
`t=${
|
|
1041
|
-
`p=${
|
|
1039
|
+
`m=${A.memorySize}`,
|
|
1040
|
+
`t=${A.iterations}`,
|
|
1041
|
+
`p=${A.parallelism}`
|
|
1042
1042
|
].join(",");
|
|
1043
|
-
return `$argon2${
|
|
1043
|
+
return `$argon2${A.hashType}$v=19$${i}$${Be(e, !1)}$${Be(t, !1)}`;
|
|
1044
1044
|
}
|
|
1045
1045
|
const Ee = new DataView(new ArrayBuffer(4));
|
|
1046
1046
|
function x(e) {
|
|
1047
1047
|
return Ee.setInt32(0, e, !0), new Uint8Array(Ee.buffer);
|
|
1048
1048
|
}
|
|
1049
|
-
function
|
|
1050
|
-
return
|
|
1051
|
-
if (
|
|
1052
|
-
const
|
|
1053
|
-
return
|
|
1049
|
+
function ae(e, A, t) {
|
|
1050
|
+
return T(this, void 0, void 0, function* () {
|
|
1051
|
+
if (t <= 64) {
|
|
1052
|
+
const c = yield he(t * 8);
|
|
1053
|
+
return c.update(x(t)), c.update(A), c.digest("binary");
|
|
1054
1054
|
}
|
|
1055
|
-
const i = Math.ceil(
|
|
1056
|
-
e.init(), e.update(x(
|
|
1055
|
+
const i = Math.ceil(t / 32) - 2, r = new Uint8Array(t);
|
|
1056
|
+
e.init(), e.update(x(t)), e.update(A);
|
|
1057
1057
|
let n = e.digest("binary");
|
|
1058
1058
|
r.set(n.subarray(0, 32), 0);
|
|
1059
|
-
for (let
|
|
1060
|
-
e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32),
|
|
1061
|
-
const o =
|
|
1059
|
+
for (let c = 1; c < i; c++)
|
|
1060
|
+
e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32), c * 32);
|
|
1061
|
+
const o = t - 32 * i;
|
|
1062
1062
|
let a;
|
|
1063
|
-
return o === 64 ? (a = e, a.init()) : a = yield
|
|
1063
|
+
return o === 64 ? (a = e, a.init()) : a = yield he(o * 8), a.update(n), n = a.digest("binary"), r.set(n.subarray(0, o), i * 32), r;
|
|
1064
1064
|
});
|
|
1065
1065
|
}
|
|
1066
|
-
function
|
|
1066
|
+
function SA(e) {
|
|
1067
1067
|
switch (e) {
|
|
1068
1068
|
case "d":
|
|
1069
1069
|
return 0;
|
|
@@ -1073,35 +1073,35 @@ function Ft(e) {
|
|
|
1073
1073
|
return 2;
|
|
1074
1074
|
}
|
|
1075
1075
|
}
|
|
1076
|
-
function
|
|
1077
|
-
return
|
|
1078
|
-
var
|
|
1079
|
-
const { parallelism:
|
|
1080
|
-
me(
|
|
1081
|
-
|
|
1076
|
+
function DA(e) {
|
|
1077
|
+
return T(this, void 0, void 0, function* () {
|
|
1078
|
+
var A;
|
|
1079
|
+
const { parallelism: t, iterations: i, hashLength: r } = e, n = v(e.password), o = v(e.salt), a = 19, c = SA(e.hashType), { memorySize: s } = e, k = v((A = e.secret) !== null && A !== void 0 ? A : ""), [y, w] = yield Promise.all([
|
|
1080
|
+
me(QA, 1024),
|
|
1081
|
+
he(512)
|
|
1082
1082
|
]);
|
|
1083
1083
|
y.setMemorySize(s * 1024 + 1024);
|
|
1084
|
-
const
|
|
1085
|
-
|
|
1086
|
-
const
|
|
1087
|
-
|
|
1088
|
-
for (let
|
|
1089
|
-
|
|
1090
|
-
let
|
|
1091
|
-
y.writeMemory(I,
|
|
1084
|
+
const G = new Uint8Array(24), B = new DataView(G.buffer);
|
|
1085
|
+
B.setInt32(0, t, !0), B.setInt32(4, r, !0), B.setInt32(8, s, !0), B.setInt32(12, i, !0), B.setInt32(16, a, !0), B.setInt32(20, c, !0), y.writeMemory(G, s * 1024), w.init(), w.update(G), w.update(x(n.length)), w.update(n), w.update(x(o.length)), w.update(o), w.update(x(k.length)), w.update(k), w.update(x(0));
|
|
1086
|
+
const d = Math.floor(s / (t * 4)) * 4, f = new Uint8Array(72), m = w.digest("binary");
|
|
1087
|
+
f.set(m);
|
|
1088
|
+
for (let C = 0; C < t; C++) {
|
|
1089
|
+
f.set(x(0), 64), f.set(x(C), 68);
|
|
1090
|
+
let g = C * d, I = yield ae(w, f, 1024);
|
|
1091
|
+
y.writeMemory(I, g * 1024), g += 1, f.set(x(1), 64), I = yield ae(w, f, 1024), y.writeMemory(I, g * 1024);
|
|
1092
1092
|
}
|
|
1093
|
-
const
|
|
1094
|
-
Ue(
|
|
1095
|
-
const
|
|
1093
|
+
const E = new Uint8Array(1024);
|
|
1094
|
+
Ue(E, y.calculate(new Uint8Array([]), s));
|
|
1095
|
+
const S = yield ae(w, E, r);
|
|
1096
1096
|
if (e.outputType === "hex") {
|
|
1097
|
-
const
|
|
1098
|
-
return
|
|
1097
|
+
const C = new Uint8Array(r * 2);
|
|
1098
|
+
return Ce(C, S, r);
|
|
1099
1099
|
}
|
|
1100
|
-
return e.outputType === "encoded" ?
|
|
1100
|
+
return e.outputType === "encoded" ? kA(o, e, S) : S;
|
|
1101
1101
|
});
|
|
1102
1102
|
}
|
|
1103
|
-
const
|
|
1104
|
-
var
|
|
1103
|
+
const FA = (e) => {
|
|
1104
|
+
var A;
|
|
1105
1105
|
if (!e || typeof e != "object")
|
|
1106
1106
|
throw new Error("Invalid options parameter. It requires an object.");
|
|
1107
1107
|
if (!e.password)
|
|
@@ -1112,7 +1112,7 @@ const mt = (e) => {
|
|
|
1112
1112
|
throw new Error("Salt must be specified");
|
|
1113
1113
|
if (e.salt = v(e.salt), e.salt.length < 8)
|
|
1114
1114
|
throw new Error("Salt should be at least 8 bytes long");
|
|
1115
|
-
if (e.secret = v((
|
|
1115
|
+
if (e.secret = v((A = e.secret) !== null && A !== void 0 ? A : ""), !Number.isInteger(e.iterations) || e.iterations < 1)
|
|
1116
1116
|
throw new Error("Iterations should be a positive number");
|
|
1117
1117
|
if (!Number.isInteger(e.parallelism) || e.parallelism < 1)
|
|
1118
1118
|
throw new Error("Parallelism should be a positive number");
|
|
@@ -1126,41 +1126,41 @@ const mt = (e) => {
|
|
|
1126
1126
|
throw new Error(`Insupported output type ${e.outputType}. Valid values: ['hex', 'binary', 'encoded']`);
|
|
1127
1127
|
};
|
|
1128
1128
|
function be(e) {
|
|
1129
|
-
return
|
|
1130
|
-
return
|
|
1129
|
+
return T(this, void 0, void 0, function* () {
|
|
1130
|
+
return FA(e), DA(Object.assign(Object.assign({}, e), { hashType: "id" }));
|
|
1131
1131
|
});
|
|
1132
1132
|
}
|
|
1133
|
-
new
|
|
1134
|
-
new
|
|
1135
|
-
new
|
|
1136
|
-
new
|
|
1137
|
-
new
|
|
1138
|
-
new
|
|
1139
|
-
new
|
|
1140
|
-
new
|
|
1141
|
-
new
|
|
1142
|
-
new
|
|
1143
|
-
new
|
|
1144
|
-
new
|
|
1145
|
-
new
|
|
1146
|
-
new
|
|
1147
|
-
new
|
|
1148
|
-
new
|
|
1149
|
-
new
|
|
1150
|
-
new
|
|
1151
|
-
new
|
|
1152
|
-
new
|
|
1153
|
-
const
|
|
1154
|
-
async function
|
|
1155
|
-
|
|
1133
|
+
new F();
|
|
1134
|
+
new F();
|
|
1135
|
+
new F();
|
|
1136
|
+
new F();
|
|
1137
|
+
new F();
|
|
1138
|
+
new F();
|
|
1139
|
+
new F();
|
|
1140
|
+
new F();
|
|
1141
|
+
new F();
|
|
1142
|
+
new F();
|
|
1143
|
+
new F();
|
|
1144
|
+
new F();
|
|
1145
|
+
new F();
|
|
1146
|
+
new F();
|
|
1147
|
+
new F();
|
|
1148
|
+
new F();
|
|
1149
|
+
new F();
|
|
1150
|
+
new F();
|
|
1151
|
+
new F();
|
|
1152
|
+
new F();
|
|
1153
|
+
const UA = 32;
|
|
1154
|
+
async function it(e, A, t = Xe) {
|
|
1155
|
+
mA(t);
|
|
1156
1156
|
try {
|
|
1157
1157
|
const i = await be({
|
|
1158
1158
|
password: e,
|
|
1159
|
-
salt:
|
|
1160
|
-
iterations:
|
|
1161
|
-
memorySize:
|
|
1162
|
-
parallelism:
|
|
1163
|
-
hashLength:
|
|
1159
|
+
salt: A,
|
|
1160
|
+
iterations: t.tCost,
|
|
1161
|
+
memorySize: t.mCost,
|
|
1162
|
+
parallelism: t.pCost,
|
|
1163
|
+
hashLength: UA,
|
|
1164
1164
|
outputType: "binary"
|
|
1165
1165
|
});
|
|
1166
1166
|
return Se(i);
|
|
@@ -1168,7 +1168,7 @@ async function iA(e, t, A = We) {
|
|
|
1168
1168
|
throw new Error("Key derivation failed");
|
|
1169
1169
|
}
|
|
1170
1170
|
}
|
|
1171
|
-
function
|
|
1171
|
+
function mA(e) {
|
|
1172
1172
|
if (e.mCost < 16384)
|
|
1173
1173
|
throw new Error("KDF memory cost too low (minimum 16 MiB)");
|
|
1174
1174
|
if (e.mCost > 1048576)
|
|
@@ -1182,7 +1182,7 @@ function Gt(e) {
|
|
|
1182
1182
|
if (e.pCost > 4)
|
|
1183
1183
|
throw new Error("KDF parallelism too high (maximum 4)");
|
|
1184
1184
|
}
|
|
1185
|
-
async function
|
|
1185
|
+
async function bA() {
|
|
1186
1186
|
try {
|
|
1187
1187
|
const e = await be({
|
|
1188
1188
|
password: "test",
|
|
@@ -1199,101 +1199,42 @@ async function Kt() {
|
|
|
1199
1199
|
return !1;
|
|
1200
1200
|
}
|
|
1201
1201
|
}
|
|
1202
|
-
function
|
|
1202
|
+
function GA(e) {
|
|
1203
1203
|
return e === "localhost" || e === "127.0.0.1" || e.endsWith(".localhost");
|
|
1204
1204
|
}
|
|
1205
|
-
function
|
|
1205
|
+
function KA(e) {
|
|
1206
1206
|
if (typeof window > "u")
|
|
1207
1207
|
return;
|
|
1208
|
-
const
|
|
1209
|
-
if (!
|
|
1208
|
+
const A = window.location.hostname;
|
|
1209
|
+
if (!GA(A))
|
|
1210
1210
|
throw new Error(
|
|
1211
1211
|
"[Cedros] WebAuthn RP domain validation is not configured. Set wallet.allowedRpDomains to a non-empty list of allowed domains."
|
|
1212
1212
|
);
|
|
1213
1213
|
}
|
|
1214
|
-
function
|
|
1214
|
+
function fe() {
|
|
1215
1215
|
return typeof window < "u" && typeof window.PublicKeyCredential < "u" && typeof navigator.credentials < "u";
|
|
1216
1216
|
}
|
|
1217
|
-
async function
|
|
1218
|
-
if (!
|
|
1217
|
+
async function HA() {
|
|
1218
|
+
if (!fe())
|
|
1219
1219
|
return !1;
|
|
1220
1220
|
try {
|
|
1221
1221
|
if (!await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable())
|
|
1222
1222
|
return !1;
|
|
1223
1223
|
if ("getClientCapabilities" in PublicKeyCredential && typeof PublicKeyCredential.getClientCapabilities == "function") {
|
|
1224
|
-
const
|
|
1225
|
-
if (
|
|
1226
|
-
return
|
|
1224
|
+
const A = await PublicKeyCredential.getClientCapabilities();
|
|
1225
|
+
if (A && "prf" in A)
|
|
1226
|
+
return A.prf === !0;
|
|
1227
1227
|
}
|
|
1228
1228
|
return !0;
|
|
1229
1229
|
} catch {
|
|
1230
1230
|
return !1;
|
|
1231
1231
|
}
|
|
1232
1232
|
}
|
|
1233
|
-
async function
|
|
1234
|
-
if (!
|
|
1233
|
+
async function rt(e, A) {
|
|
1234
|
+
if (!fe())
|
|
1235
1235
|
throw new Error("WebAuthn is not available in this browser");
|
|
1236
|
-
|
|
1237
|
-
const
|
|
1238
|
-
publicKey: {
|
|
1239
|
-
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1240
|
-
rp: {
|
|
1241
|
-
name: "Cedros Wallet",
|
|
1242
|
-
id: window.location.hostname
|
|
1243
|
-
},
|
|
1244
|
-
user: {
|
|
1245
|
-
id: T(e),
|
|
1246
|
-
name: t,
|
|
1247
|
-
displayName: A
|
|
1248
|
-
},
|
|
1249
|
-
pubKeyCredParams: [
|
|
1250
|
-
{ type: "public-key", alg: -7 },
|
|
1251
|
-
// ES256
|
|
1252
|
-
{ type: "public-key", alg: -257 }
|
|
1253
|
-
// RS256
|
|
1254
|
-
],
|
|
1255
|
-
authenticatorSelection: {
|
|
1256
|
-
authenticatorAttachment: "platform",
|
|
1257
|
-
userVerification: "required",
|
|
1258
|
-
residentKey: "required"
|
|
1259
|
-
},
|
|
1260
|
-
timeout: 6e4,
|
|
1261
|
-
attestation: "none",
|
|
1262
|
-
extensions: {
|
|
1263
|
-
prf: {
|
|
1264
|
-
eval: {
|
|
1265
|
-
first: n
|
|
1266
|
-
}
|
|
1267
|
-
}
|
|
1268
|
-
}
|
|
1269
|
-
}
|
|
1270
|
-
});
|
|
1271
|
-
if (!o)
|
|
1272
|
-
throw new Error("Passkey registration was cancelled");
|
|
1273
|
-
const a = o.getClientExtensionResults();
|
|
1274
|
-
if (!a.prf?.enabled || !a.prf?.results?.first)
|
|
1275
|
-
throw new Error(
|
|
1276
|
-
"PRF extension is not supported by this authenticator. Please use a device with a compatible platform authenticator."
|
|
1277
|
-
);
|
|
1278
|
-
const g = a.prf?.results?.first;
|
|
1279
|
-
if (!g)
|
|
1280
|
-
throw new Error("PRF extension did not return a result");
|
|
1281
|
-
const s = new Uint8Array(g);
|
|
1282
|
-
if (s.length !== 32)
|
|
1283
|
-
throw new Error(
|
|
1284
|
-
`Unexpected PRF output length: expected 32 bytes, got ${s.length}. The authenticator may not be compatible.`
|
|
1285
|
-
);
|
|
1286
|
-
return {
|
|
1287
|
-
credentialId: ee(new Uint8Array(o.rawId)),
|
|
1288
|
-
prfSalt: ee(n),
|
|
1289
|
-
prfOutput: s
|
|
1290
|
-
};
|
|
1291
|
-
}
|
|
1292
|
-
async function nA(e, t) {
|
|
1293
|
-
if (!Ae())
|
|
1294
|
-
throw new Error("WebAuthn is not available in this browser");
|
|
1295
|
-
Ge();
|
|
1296
|
-
const A = It(e), i = await navigator.credentials.get({
|
|
1236
|
+
KA();
|
|
1237
|
+
const t = oA(e), i = await navigator.credentials.get({
|
|
1297
1238
|
publicKey: {
|
|
1298
1239
|
challenge: crypto.getRandomValues(new Uint8Array(32)),
|
|
1299
1240
|
rpId: window.location.hostname,
|
|
@@ -1304,7 +1245,7 @@ async function nA(e, t) {
|
|
|
1304
1245
|
extensions: {
|
|
1305
1246
|
prf: {
|
|
1306
1247
|
eval: {
|
|
1307
|
-
first:
|
|
1248
|
+
first: t
|
|
1308
1249
|
}
|
|
1309
1250
|
}
|
|
1310
1251
|
}
|
|
@@ -1322,74 +1263,74 @@ async function nA(e, t) {
|
|
|
1322
1263
|
);
|
|
1323
1264
|
return { prfOutput: o };
|
|
1324
1265
|
}
|
|
1325
|
-
async function
|
|
1326
|
-
const [e,
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
Promise.resolve(
|
|
1332
|
-
|
|
1333
|
-
|
|
1266
|
+
async function JA() {
|
|
1267
|
+
const [e, A, t, i, r, n, o] = await Promise.all([
|
|
1268
|
+
MA(),
|
|
1269
|
+
VA(),
|
|
1270
|
+
IA(),
|
|
1271
|
+
NA(),
|
|
1272
|
+
Promise.resolve(fe()),
|
|
1273
|
+
HA(),
|
|
1274
|
+
bA()
|
|
1334
1275
|
]);
|
|
1335
1276
|
return {
|
|
1336
1277
|
webCrypto: e,
|
|
1337
|
-
aesGcm:
|
|
1338
|
-
hkdf:
|
|
1278
|
+
aesGcm: A,
|
|
1279
|
+
hkdf: t,
|
|
1339
1280
|
ed25519: i,
|
|
1340
1281
|
webAuthn: r,
|
|
1341
1282
|
webAuthnPrf: n,
|
|
1342
1283
|
argon2: o,
|
|
1343
|
-
allSupported: e &&
|
|
1284
|
+
allSupported: e && A && t && r && n && o
|
|
1344
1285
|
};
|
|
1345
1286
|
}
|
|
1346
|
-
async function
|
|
1287
|
+
async function MA() {
|
|
1347
1288
|
try {
|
|
1348
1289
|
return typeof crypto < "u" && typeof crypto.subtle < "u" && typeof crypto.getRandomValues == "function";
|
|
1349
1290
|
} catch {
|
|
1350
1291
|
return !1;
|
|
1351
1292
|
}
|
|
1352
1293
|
}
|
|
1353
|
-
async function
|
|
1294
|
+
async function VA() {
|
|
1354
1295
|
try {
|
|
1355
1296
|
const e = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, !1, [
|
|
1356
1297
|
"encrypt",
|
|
1357
1298
|
"decrypt"
|
|
1358
|
-
]),
|
|
1359
|
-
return n.length ===
|
|
1299
|
+
]), 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);
|
|
1300
|
+
return n.length === A.length && n.every((o, a) => o === A[a]);
|
|
1360
1301
|
} catch {
|
|
1361
1302
|
return !1;
|
|
1362
1303
|
}
|
|
1363
1304
|
}
|
|
1364
|
-
async function
|
|
1305
|
+
async function NA() {
|
|
1365
1306
|
try {
|
|
1366
1307
|
return await crypto.subtle.generateKey("Ed25519", !1, ["sign", "verify"]), !0;
|
|
1367
1308
|
} catch {
|
|
1368
1309
|
return !1;
|
|
1369
1310
|
}
|
|
1370
1311
|
}
|
|
1371
|
-
function
|
|
1312
|
+
function nt(e) {
|
|
1372
1313
|
if (e.allSupported)
|
|
1373
1314
|
return null;
|
|
1374
|
-
const
|
|
1375
|
-
return e.webCrypto ||
|
|
1315
|
+
const A = [];
|
|
1316
|
+
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).`;
|
|
1376
1317
|
}
|
|
1377
|
-
function
|
|
1378
|
-
const e = typeof navigator < "u" ? navigator.userAgent : "",
|
|
1379
|
-
if (
|
|
1380
|
-
const n = parseInt(
|
|
1318
|
+
function ot() {
|
|
1319
|
+
const e = typeof navigator < "u" ? navigator.userAgent : "", A = e.match(/Chrome\/(\d+)/);
|
|
1320
|
+
if (A) {
|
|
1321
|
+
const n = parseInt(A[1], 10);
|
|
1381
1322
|
return {
|
|
1382
1323
|
browser: "Chrome",
|
|
1383
|
-
version:
|
|
1324
|
+
version: A[1],
|
|
1384
1325
|
likelySupported: n >= 116
|
|
1385
1326
|
};
|
|
1386
1327
|
}
|
|
1387
|
-
const
|
|
1388
|
-
if (
|
|
1389
|
-
const n = parseInt(
|
|
1328
|
+
const t = e.match(/Version\/(\d+)/);
|
|
1329
|
+
if (t && e.includes("Safari") && !e.includes("Chrome")) {
|
|
1330
|
+
const n = parseInt(t[1], 10);
|
|
1390
1331
|
return {
|
|
1391
1332
|
browser: "Safari",
|
|
1392
|
-
version:
|
|
1333
|
+
version: t[1],
|
|
1393
1334
|
likelySupported: n >= 17
|
|
1394
1335
|
};
|
|
1395
1336
|
}
|
|
@@ -1416,13 +1357,13 @@ function sA() {
|
|
|
1416
1357
|
likelySupported: !1
|
|
1417
1358
|
};
|
|
1418
1359
|
}
|
|
1419
|
-
let z = null,
|
|
1420
|
-
const
|
|
1421
|
-
async function
|
|
1422
|
-
const
|
|
1423
|
-
return !e && !(typeof window > "u") && !
|
|
1360
|
+
let z = null, ge = null;
|
|
1361
|
+
const PA = 6e4;
|
|
1362
|
+
async function YA(e = !1) {
|
|
1363
|
+
const A = Date.now(), t = ge === null || A - ge > PA;
|
|
1364
|
+
return !e && !(typeof window > "u") && !t && z !== null || (z = await JA(), ge = Date.now()), z;
|
|
1424
1365
|
}
|
|
1425
|
-
function
|
|
1366
|
+
function OA(e) {
|
|
1426
1367
|
switch (e.type) {
|
|
1427
1368
|
case "password":
|
|
1428
1369
|
return { password: e.password };
|
|
@@ -1430,205 +1371,205 @@ function xt(e) {
|
|
|
1430
1371
|
return { prfOutput: e.prfOutput };
|
|
1431
1372
|
}
|
|
1432
1373
|
}
|
|
1433
|
-
function
|
|
1434
|
-
const e = ye(), [
|
|
1374
|
+
function xA() {
|
|
1375
|
+
const e = ye(), [A, t] = U(!1), [i, r] = U(null), n = e?.config.serverUrl, o = e?.config.requestTimeout, a = e?.config.retryAttempts, c = e?._internal?.getAccessToken, s = V(() => e ? new pe({
|
|
1435
1376
|
baseUrl: n,
|
|
1436
1377
|
timeoutMs: o,
|
|
1437
1378
|
retryAttempts: a,
|
|
1438
|
-
getAccessToken:
|
|
1439
|
-
}) : null, [e, n, o, a,
|
|
1379
|
+
getAccessToken: c
|
|
1380
|
+
}) : null, [e, n, o, a, c]), k = p(async () => {
|
|
1440
1381
|
if (!s)
|
|
1441
1382
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1442
|
-
|
|
1383
|
+
t(!0), r(null);
|
|
1443
1384
|
try {
|
|
1444
1385
|
return await s.get("/wallet/status");
|
|
1445
1386
|
} catch (I) {
|
|
1446
|
-
const
|
|
1447
|
-
throw r(
|
|
1387
|
+
const l = M(I, "Failed to fetch wallet status");
|
|
1388
|
+
throw r(l.message), l;
|
|
1448
1389
|
} finally {
|
|
1449
|
-
|
|
1390
|
+
t(!1);
|
|
1450
1391
|
}
|
|
1451
|
-
}, [s]), y =
|
|
1392
|
+
}, [s]), y = p(async () => {
|
|
1452
1393
|
if (!s)
|
|
1453
1394
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1454
|
-
|
|
1395
|
+
t(!0), r(null);
|
|
1455
1396
|
try {
|
|
1456
1397
|
return await s.get("/wallet/material");
|
|
1457
1398
|
} catch (I) {
|
|
1458
|
-
const
|
|
1459
|
-
if (
|
|
1399
|
+
const l = M(I, "Failed to fetch wallet material");
|
|
1400
|
+
if (l.code === "NOT_FOUND")
|
|
1460
1401
|
return null;
|
|
1461
|
-
throw r(
|
|
1402
|
+
throw r(l.message), l;
|
|
1462
1403
|
} finally {
|
|
1463
|
-
|
|
1404
|
+
t(!1);
|
|
1464
1405
|
}
|
|
1465
|
-
}, [s]), w =
|
|
1406
|
+
}, [s]), w = p(
|
|
1466
1407
|
async (I) => {
|
|
1467
1408
|
if (!s)
|
|
1468
1409
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1469
|
-
|
|
1410
|
+
t(!0), r(null);
|
|
1470
1411
|
try {
|
|
1471
1412
|
await s.post("/wallet/enroll", I);
|
|
1472
|
-
} catch (
|
|
1473
|
-
const
|
|
1474
|
-
throw r(
|
|
1413
|
+
} catch (l) {
|
|
1414
|
+
const u = M(l, "Failed to enroll wallet");
|
|
1415
|
+
throw r(u.message), u;
|
|
1475
1416
|
} finally {
|
|
1476
|
-
|
|
1417
|
+
t(!1);
|
|
1477
1418
|
}
|
|
1478
1419
|
},
|
|
1479
1420
|
[s]
|
|
1480
|
-
),
|
|
1421
|
+
), G = p(
|
|
1481
1422
|
async (I) => {
|
|
1482
1423
|
if (!s)
|
|
1483
1424
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1484
|
-
|
|
1425
|
+
t(!0), r(null);
|
|
1485
1426
|
try {
|
|
1486
1427
|
await s.post("/wallet/recover", I);
|
|
1487
|
-
} catch (
|
|
1488
|
-
const
|
|
1489
|
-
throw r(
|
|
1428
|
+
} catch (l) {
|
|
1429
|
+
const u = M(l, "Failed to recover wallet");
|
|
1430
|
+
throw r(u.message), u;
|
|
1490
1431
|
} finally {
|
|
1491
|
-
|
|
1432
|
+
t(!1);
|
|
1492
1433
|
}
|
|
1493
1434
|
},
|
|
1494
1435
|
[s]
|
|
1495
|
-
),
|
|
1436
|
+
), B = p(
|
|
1496
1437
|
async (I) => {
|
|
1497
1438
|
if (!s)
|
|
1498
1439
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1499
|
-
|
|
1440
|
+
t(!0), r(null);
|
|
1500
1441
|
try {
|
|
1501
1442
|
return await s.post("/wallet/sign", I);
|
|
1502
|
-
} catch (
|
|
1503
|
-
const
|
|
1504
|
-
throw r(
|
|
1443
|
+
} catch (l) {
|
|
1444
|
+
const u = M(l, "Failed to sign transaction");
|
|
1445
|
+
throw r(u.message), u;
|
|
1505
1446
|
} finally {
|
|
1506
|
-
|
|
1447
|
+
t(!1);
|
|
1507
1448
|
}
|
|
1508
1449
|
},
|
|
1509
1450
|
[s]
|
|
1510
|
-
),
|
|
1451
|
+
), Q = p(
|
|
1511
1452
|
async (I) => {
|
|
1512
1453
|
if (!s)
|
|
1513
1454
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1514
|
-
|
|
1455
|
+
t(!0), r(null);
|
|
1515
1456
|
try {
|
|
1516
1457
|
await s.post("/wallet/rotate-user-secret", I);
|
|
1517
|
-
} catch (
|
|
1518
|
-
const
|
|
1519
|
-
throw r(
|
|
1458
|
+
} catch (l) {
|
|
1459
|
+
const u = M(l, "Failed to rotate user secret");
|
|
1460
|
+
throw r(u.message), u;
|
|
1520
1461
|
} finally {
|
|
1521
|
-
|
|
1462
|
+
t(!1);
|
|
1522
1463
|
}
|
|
1523
1464
|
},
|
|
1524
1465
|
[s]
|
|
1525
|
-
),
|
|
1466
|
+
), d = p(
|
|
1526
1467
|
async (I) => {
|
|
1527
1468
|
if (!s)
|
|
1528
1469
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1529
|
-
|
|
1470
|
+
t(!0), r(null);
|
|
1530
1471
|
try {
|
|
1531
1472
|
return await s.post(
|
|
1532
1473
|
"/wallet/unlock",
|
|
1533
|
-
|
|
1474
|
+
OA(I)
|
|
1534
1475
|
);
|
|
1535
|
-
} catch (
|
|
1536
|
-
const
|
|
1537
|
-
throw r(
|
|
1476
|
+
} catch (l) {
|
|
1477
|
+
const u = M(l, "Failed to unlock wallet");
|
|
1478
|
+
throw r(u.message), u;
|
|
1538
1479
|
} finally {
|
|
1539
|
-
|
|
1480
|
+
t(!1);
|
|
1540
1481
|
}
|
|
1541
1482
|
},
|
|
1542
1483
|
[s]
|
|
1543
|
-
),
|
|
1484
|
+
), f = p(async () => {
|
|
1544
1485
|
if (!s)
|
|
1545
1486
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1546
|
-
|
|
1487
|
+
t(!0), r(null);
|
|
1547
1488
|
try {
|
|
1548
1489
|
await s.post("/wallet/lock", {});
|
|
1549
1490
|
} catch (I) {
|
|
1550
|
-
const
|
|
1551
|
-
throw r(
|
|
1491
|
+
const l = M(I, "Failed to lock wallet");
|
|
1492
|
+
throw r(l.message), l;
|
|
1552
1493
|
} finally {
|
|
1553
|
-
|
|
1494
|
+
t(!1);
|
|
1554
1495
|
}
|
|
1555
|
-
}, [s]),
|
|
1496
|
+
}, [s]), m = p(
|
|
1556
1497
|
async (I) => {
|
|
1557
1498
|
if (!s)
|
|
1558
1499
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1559
|
-
|
|
1500
|
+
t(!0), r(null);
|
|
1560
1501
|
try {
|
|
1561
1502
|
return await s.post("/wallet/share-b", I);
|
|
1562
|
-
} catch (
|
|
1563
|
-
const
|
|
1564
|
-
throw r(
|
|
1503
|
+
} catch (l) {
|
|
1504
|
+
const u = M(l, "Failed to get Share B for recovery");
|
|
1505
|
+
throw r(u.message), u;
|
|
1565
1506
|
} finally {
|
|
1566
|
-
|
|
1507
|
+
t(!1);
|
|
1567
1508
|
}
|
|
1568
1509
|
},
|
|
1569
1510
|
[s]
|
|
1570
|
-
),
|
|
1511
|
+
), E = p(
|
|
1571
1512
|
async (I) => {
|
|
1572
1513
|
if (!s)
|
|
1573
1514
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1574
|
-
|
|
1515
|
+
t(!0), r(null);
|
|
1575
1516
|
try {
|
|
1576
1517
|
return await s.post("/wallet/derived", I);
|
|
1577
|
-
} catch (
|
|
1578
|
-
const
|
|
1579
|
-
throw r(
|
|
1518
|
+
} catch (l) {
|
|
1519
|
+
const u = M(l, "Failed to create derived wallet");
|
|
1520
|
+
throw r(u.message), u;
|
|
1580
1521
|
} finally {
|
|
1581
|
-
|
|
1522
|
+
t(!1);
|
|
1582
1523
|
}
|
|
1583
1524
|
},
|
|
1584
1525
|
[s]
|
|
1585
|
-
),
|
|
1526
|
+
), S = p(async () => {
|
|
1586
1527
|
if (!s)
|
|
1587
1528
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1588
|
-
|
|
1529
|
+
t(!0), r(null);
|
|
1589
1530
|
try {
|
|
1590
1531
|
return await s.get("/wallet/derived");
|
|
1591
1532
|
} catch (I) {
|
|
1592
|
-
const
|
|
1593
|
-
throw r(
|
|
1533
|
+
const l = M(I, "Failed to list wallets");
|
|
1534
|
+
throw r(l.message), l;
|
|
1594
1535
|
} finally {
|
|
1595
|
-
|
|
1536
|
+
t(!1);
|
|
1596
1537
|
}
|
|
1597
|
-
}, [s]),
|
|
1538
|
+
}, [s]), C = p(
|
|
1598
1539
|
async (I) => {
|
|
1599
1540
|
if (!s)
|
|
1600
1541
|
throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
|
|
1601
|
-
|
|
1542
|
+
t(!0), r(null);
|
|
1602
1543
|
try {
|
|
1603
1544
|
await s.delete(`/wallet/derived/${I}`);
|
|
1604
|
-
} catch (
|
|
1605
|
-
const
|
|
1606
|
-
throw r(
|
|
1545
|
+
} catch (l) {
|
|
1546
|
+
const u = M(l, "Failed to delete derived wallet");
|
|
1547
|
+
throw r(u.message), u;
|
|
1607
1548
|
} finally {
|
|
1608
|
-
|
|
1549
|
+
t(!1);
|
|
1609
1550
|
}
|
|
1610
1551
|
},
|
|
1611
1552
|
[s]
|
|
1612
|
-
),
|
|
1553
|
+
), g = p(() => r(null), []);
|
|
1613
1554
|
return {
|
|
1614
1555
|
getStatus: k,
|
|
1615
1556
|
getMaterial: y,
|
|
1616
1557
|
enroll: w,
|
|
1617
|
-
recover:
|
|
1618
|
-
signTransaction:
|
|
1619
|
-
rotateUserSecret:
|
|
1620
|
-
unlock:
|
|
1621
|
-
lock:
|
|
1622
|
-
getShareBForRecovery:
|
|
1623
|
-
createDerivedWallet:
|
|
1624
|
-
listAllWallets:
|
|
1625
|
-
deleteDerivedWallet:
|
|
1626
|
-
isLoading:
|
|
1558
|
+
recover: G,
|
|
1559
|
+
signTransaction: B,
|
|
1560
|
+
rotateUserSecret: Q,
|
|
1561
|
+
unlock: d,
|
|
1562
|
+
lock: f,
|
|
1563
|
+
getShareBForRecovery: m,
|
|
1564
|
+
createDerivedWallet: E,
|
|
1565
|
+
listAllWallets: S,
|
|
1566
|
+
deleteDerivedWallet: C,
|
|
1567
|
+
isLoading: A,
|
|
1627
1568
|
error: i,
|
|
1628
|
-
clearError:
|
|
1569
|
+
clearError: g
|
|
1629
1570
|
};
|
|
1630
1571
|
}
|
|
1631
|
-
const
|
|
1572
|
+
const vA = {
|
|
1632
1573
|
status: "not_enrolled",
|
|
1633
1574
|
solanaPubkey: null,
|
|
1634
1575
|
authMethod: null,
|
|
@@ -1642,193 +1583,193 @@ const Tt = {
|
|
|
1642
1583
|
clearError: () => {
|
|
1643
1584
|
}
|
|
1644
1585
|
};
|
|
1645
|
-
function
|
|
1646
|
-
const
|
|
1586
|
+
function TA() {
|
|
1587
|
+
const A = ye() !== null, [t, i] = U("loading"), [r, n] = U(null), [o, a] = U(null), [c, s] = U(!1), [k, y] = U(!1), [w, G] = U(null), [B, Q] = U(null), { getStatus: d, isLoading: f } = xA(), m = P(!1);
|
|
1647
1588
|
O(() => {
|
|
1648
|
-
if (!
|
|
1649
|
-
let
|
|
1589
|
+
if (!A) return;
|
|
1590
|
+
let C = !1;
|
|
1650
1591
|
return (async () => {
|
|
1651
1592
|
try {
|
|
1652
|
-
const I = await
|
|
1653
|
-
if (
|
|
1654
|
-
|
|
1593
|
+
const I = await YA();
|
|
1594
|
+
if (C) return;
|
|
1595
|
+
G(I), I.allSupported || (i("error"), Q(
|
|
1655
1596
|
"Your browser or device does not support all required features. Please use a modern browser with a platform authenticator."
|
|
1656
1597
|
));
|
|
1657
1598
|
} catch {
|
|
1658
|
-
if (
|
|
1659
|
-
|
|
1599
|
+
if (C) return;
|
|
1600
|
+
G(null), i("error"), Q("Failed to check crypto capabilities");
|
|
1660
1601
|
}
|
|
1661
1602
|
})(), () => {
|
|
1662
|
-
|
|
1603
|
+
C = !0;
|
|
1663
1604
|
};
|
|
1664
|
-
}, [
|
|
1665
|
-
const
|
|
1666
|
-
if (!(!
|
|
1667
|
-
i("loading"),
|
|
1605
|
+
}, [A]);
|
|
1606
|
+
const E = p(async () => {
|
|
1607
|
+
if (!(!A || !w?.allSupported)) {
|
|
1608
|
+
i("loading"), Q(null);
|
|
1668
1609
|
try {
|
|
1669
|
-
const
|
|
1670
|
-
n(
|
|
1671
|
-
} catch (
|
|
1672
|
-
i("error"), C
|
|
1610
|
+
const C = await d();
|
|
1611
|
+
n(C.solanaPubkey ?? null), a(C.authMethod ?? null), s(C.hasExternalWallet), y(C.unlocked), C.hasExternalWallet ? i("enrolled_unlocked") : C.enrolled ? i(C.unlocked ? "enrolled_unlocked" : "enrolled_locked") : i("not_enrolled");
|
|
1612
|
+
} catch (C) {
|
|
1613
|
+
i("error"), Q(C instanceof Error ? C.message : "Failed to fetch wallet status");
|
|
1673
1614
|
}
|
|
1674
1615
|
}
|
|
1675
|
-
}, [
|
|
1616
|
+
}, [A, w?.allSupported, d]);
|
|
1676
1617
|
O(() => {
|
|
1677
|
-
|
|
1678
|
-
}, [
|
|
1679
|
-
const
|
|
1680
|
-
return
|
|
1681
|
-
status:
|
|
1618
|
+
A && w?.allSupported && !f && !m.current && (m.current = !0, E());
|
|
1619
|
+
}, [A, w?.allSupported, f, E]);
|
|
1620
|
+
const S = p(() => Q(null), []);
|
|
1621
|
+
return A ? {
|
|
1622
|
+
status: t,
|
|
1682
1623
|
solanaPubkey: r,
|
|
1683
1624
|
authMethod: o,
|
|
1684
|
-
hasExternalWallet:
|
|
1625
|
+
hasExternalWallet: c,
|
|
1685
1626
|
isUnlocked: k,
|
|
1686
1627
|
capabilities: w,
|
|
1687
1628
|
isSupported: w?.allSupported ?? !1,
|
|
1688
|
-
error:
|
|
1689
|
-
refresh:
|
|
1690
|
-
clearError:
|
|
1691
|
-
} :
|
|
1629
|
+
error: B,
|
|
1630
|
+
refresh: E,
|
|
1631
|
+
clearError: S
|
|
1632
|
+
} : vA;
|
|
1692
1633
|
}
|
|
1693
|
-
const
|
|
1694
|
-
function
|
|
1695
|
-
typeof window < "u" && (window[
|
|
1634
|
+
const Ae = "__CEDROS_EMBEDDED_WALLET__";
|
|
1635
|
+
function RA(e) {
|
|
1636
|
+
typeof window < "u" && (window[Ae] = e);
|
|
1696
1637
|
}
|
|
1697
|
-
function
|
|
1698
|
-
typeof window < "u" && delete window[
|
|
1638
|
+
function le() {
|
|
1639
|
+
typeof window < "u" && delete window[Ae];
|
|
1699
1640
|
}
|
|
1700
|
-
function
|
|
1701
|
-
return typeof window > "u" ? !1 : window[
|
|
1641
|
+
function st() {
|
|
1642
|
+
return typeof window > "u" ? !1 : window[Ae]?.available ?? !1;
|
|
1702
1643
|
}
|
|
1703
|
-
function
|
|
1704
|
-
return typeof window > "u" ? null : window[
|
|
1644
|
+
function It() {
|
|
1645
|
+
return typeof window > "u" ? null : window[Ae] ?? null;
|
|
1705
1646
|
}
|
|
1706
|
-
function
|
|
1707
|
-
const { config: e, user:
|
|
1647
|
+
function LA() {
|
|
1648
|
+
const { config: e, user: A } = ke(), { status: t, solanaPubkey: i, hasExternalWallet: r } = TA(), n = e.wallet?.exposeAvailability ?? !1, o = e.wallet?.exposePublicKey ?? !1;
|
|
1708
1649
|
return O(() => {
|
|
1709
|
-
if (!n || !
|
|
1710
|
-
|
|
1650
|
+
if (!n || !A) {
|
|
1651
|
+
le();
|
|
1711
1652
|
return;
|
|
1712
1653
|
}
|
|
1713
1654
|
if (r) {
|
|
1714
|
-
|
|
1655
|
+
le();
|
|
1715
1656
|
return;
|
|
1716
1657
|
}
|
|
1717
|
-
if (
|
|
1658
|
+
if (t === "loading")
|
|
1718
1659
|
return;
|
|
1719
|
-
const a =
|
|
1720
|
-
return
|
|
1660
|
+
const a = t === "enrolled_locked" || t === "enrolled_unlocked";
|
|
1661
|
+
return RA({
|
|
1721
1662
|
available: a,
|
|
1722
1663
|
publicKey: o && a ? i : null
|
|
1723
1664
|
}), () => {
|
|
1724
|
-
|
|
1665
|
+
le();
|
|
1725
1666
|
};
|
|
1726
|
-
}, [n, o,
|
|
1667
|
+
}, [n, o, A, t, i, r]), null;
|
|
1727
1668
|
}
|
|
1728
|
-
function
|
|
1729
|
-
const [
|
|
1669
|
+
function at({ config: e, children: A }) {
|
|
1670
|
+
const [t, i] = U(null), [r, n] = U(!1), o = P(e.callbacks);
|
|
1730
1671
|
o.current = e.callbacks;
|
|
1731
|
-
const a =
|
|
1732
|
-
onLoginSuccess: (...
|
|
1733
|
-
onLoginError: (...
|
|
1672
|
+
const a = P({
|
|
1673
|
+
onLoginSuccess: (...R) => o.current?.onLoginSuccess?.(...R),
|
|
1674
|
+
onLoginError: (...R) => o.current?.onLoginError?.(...R),
|
|
1734
1675
|
onLogout: () => o.current?.onLogout?.(),
|
|
1735
1676
|
onSessionExpired: () => o.current?.onSessionExpired?.()
|
|
1736
|
-
}),
|
|
1677
|
+
}), c = e.features === "auto", {
|
|
1737
1678
|
features: s,
|
|
1738
1679
|
googleClientId: k,
|
|
1739
1680
|
appleClientId: y,
|
|
1740
1681
|
socialButtonOrder: w,
|
|
1741
|
-
isLoading:
|
|
1742
|
-
} =
|
|
1682
|
+
isLoading: G
|
|
1683
|
+
} = Pe(
|
|
1743
1684
|
e.serverUrl,
|
|
1744
|
-
|
|
1685
|
+
c,
|
|
1745
1686
|
e.requestTimeout
|
|
1746
|
-
),
|
|
1687
|
+
), B = V(() => !c || !s ? e : {
|
|
1747
1688
|
...e,
|
|
1748
1689
|
features: s,
|
|
1749
1690
|
googleClientId: e.googleClientId ?? k,
|
|
1750
1691
|
appleClientId: e.appleClientId ?? y
|
|
1751
|
-
}, [e,
|
|
1752
|
-
() => JSON.stringify(
|
|
1753
|
-
[
|
|
1754
|
-
),
|
|
1755
|
-
() =>
|
|
1692
|
+
}, [e, c, s, k, y]), Q = V(
|
|
1693
|
+
() => JSON.stringify(B.themeOverrides ?? null),
|
|
1694
|
+
[B.themeOverrides]
|
|
1695
|
+
), d = V(() => JSON.stringify(B.session ?? null), [B.session]), f = V(() => JSON.stringify(B.features ?? null), [B.features]), m = V(() => JSON.stringify(B.forms ?? null), [B.forms]), E = V(
|
|
1696
|
+
() => B,
|
|
1756
1697
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison; callbacks excluded (see UI-06)
|
|
1757
1698
|
[
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1699
|
+
B.serverUrl,
|
|
1700
|
+
B.googleClientId,
|
|
1701
|
+
B.appleClientId,
|
|
1702
|
+
B.requestTimeout,
|
|
1703
|
+
B.retryAttempts,
|
|
1704
|
+
B.theme,
|
|
1705
|
+
Q,
|
|
1706
|
+
d,
|
|
1707
|
+
f,
|
|
1708
|
+
m
|
|
1768
1709
|
]
|
|
1769
1710
|
);
|
|
1770
|
-
|
|
1771
|
-
theme:
|
|
1772
|
-
themeOverrides:
|
|
1711
|
+
Ve({
|
|
1712
|
+
theme: E.theme,
|
|
1713
|
+
themeOverrides: E.themeOverrides
|
|
1773
1714
|
});
|
|
1774
1715
|
const {
|
|
1775
|
-
user:
|
|
1776
|
-
authState:
|
|
1777
|
-
handleLoginSuccess:
|
|
1716
|
+
user: S,
|
|
1717
|
+
authState: C,
|
|
1718
|
+
handleLoginSuccess: g,
|
|
1778
1719
|
logout: I,
|
|
1779
|
-
refreshUser:
|
|
1780
|
-
getAccessToken:
|
|
1781
|
-
} =
|
|
1782
|
-
serverUrl:
|
|
1783
|
-
session:
|
|
1720
|
+
refreshUser: l,
|
|
1721
|
+
getAccessToken: u
|
|
1722
|
+
} = Le({
|
|
1723
|
+
serverUrl: E.serverUrl,
|
|
1724
|
+
session: E.session,
|
|
1784
1725
|
callbacks: a.current,
|
|
1785
|
-
requestTimeoutMs:
|
|
1786
|
-
}), h =
|
|
1726
|
+
requestTimeoutMs: E.requestTimeout
|
|
1727
|
+
}), h = p(async () => {
|
|
1787
1728
|
i(null), await I();
|
|
1788
|
-
}, [I]),
|
|
1789
|
-
(...
|
|
1790
|
-
i(null),
|
|
1729
|
+
}, [I]), D = p(
|
|
1730
|
+
(...R) => {
|
|
1731
|
+
i(null), g(...R);
|
|
1791
1732
|
},
|
|
1792
|
-
[
|
|
1793
|
-
),
|
|
1733
|
+
[g]
|
|
1734
|
+
), K = p(() => n(!0), []), H = p(() => n(!1), []), b = V(
|
|
1794
1735
|
() => ({
|
|
1795
|
-
config:
|
|
1796
|
-
user:
|
|
1797
|
-
authState:
|
|
1736
|
+
config: E,
|
|
1737
|
+
user: S,
|
|
1738
|
+
authState: C,
|
|
1798
1739
|
logout: h,
|
|
1799
|
-
refreshUser:
|
|
1800
|
-
socialButtonOrder:
|
|
1740
|
+
refreshUser: l,
|
|
1741
|
+
socialButtonOrder: c ? w : void 0,
|
|
1801
1742
|
_internal: {
|
|
1802
|
-
handleLoginSuccess:
|
|
1803
|
-
getAccessToken:
|
|
1743
|
+
handleLoginSuccess: D,
|
|
1744
|
+
getAccessToken: u
|
|
1804
1745
|
}
|
|
1805
1746
|
}),
|
|
1806
|
-
[
|
|
1747
|
+
[E, S, C, h, l, c, w, D, u]
|
|
1807
1748
|
), J = V(
|
|
1808
1749
|
() => ({
|
|
1809
|
-
error:
|
|
1750
|
+
error: t,
|
|
1810
1751
|
isModalOpen: r,
|
|
1811
|
-
openModal:
|
|
1752
|
+
openModal: K,
|
|
1812
1753
|
closeModal: H
|
|
1813
1754
|
}),
|
|
1814
|
-
[
|
|
1755
|
+
[t, r, K, H]
|
|
1815
1756
|
), Y = V(
|
|
1816
|
-
() => ({ ...
|
|
1817
|
-
[
|
|
1757
|
+
() => ({ ...b, ...J }),
|
|
1758
|
+
[b, J]
|
|
1818
1759
|
);
|
|
1819
|
-
return
|
|
1820
|
-
/* @__PURE__ */
|
|
1821
|
-
|
|
1760
|
+
return c && G ? null : /* @__PURE__ */ re(He.Provider, { value: b, children: /* @__PURE__ */ re(Je.Provider, { value: J, children: /* @__PURE__ */ Ke(Me.Provider, { value: Y, children: [
|
|
1761
|
+
/* @__PURE__ */ re(LA, {}),
|
|
1762
|
+
A
|
|
1822
1763
|
] }) }) });
|
|
1823
1764
|
}
|
|
1824
|
-
function
|
|
1825
|
-
const { user: e, authState:
|
|
1765
|
+
function gt() {
|
|
1766
|
+
const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } = ke();
|
|
1826
1767
|
return {
|
|
1827
1768
|
user: e,
|
|
1828
|
-
authState:
|
|
1829
|
-
error:
|
|
1830
|
-
isAuthenticated:
|
|
1831
|
-
isLoading:
|
|
1769
|
+
authState: A,
|
|
1770
|
+
error: t,
|
|
1771
|
+
isAuthenticated: A === "authenticated" && e !== null,
|
|
1772
|
+
isLoading: A === "loading",
|
|
1832
1773
|
logout: i,
|
|
1833
1774
|
refreshUser: r,
|
|
1834
1775
|
openLoginModal: n,
|
|
@@ -1836,30 +1777,29 @@ function lA() {
|
|
|
1836
1777
|
};
|
|
1837
1778
|
}
|
|
1838
1779
|
export {
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
aA as x
|
|
1780
|
+
at as C,
|
|
1781
|
+
Xe as D,
|
|
1782
|
+
it as a,
|
|
1783
|
+
ze as b,
|
|
1784
|
+
et as c,
|
|
1785
|
+
ot as d,
|
|
1786
|
+
xA as e,
|
|
1787
|
+
_A as f,
|
|
1788
|
+
nt as g,
|
|
1789
|
+
At as h,
|
|
1790
|
+
Se as i,
|
|
1791
|
+
ue as j,
|
|
1792
|
+
$A as k,
|
|
1793
|
+
zA as l,
|
|
1794
|
+
rt as m,
|
|
1795
|
+
tt as n,
|
|
1796
|
+
OA as o,
|
|
1797
|
+
oA as p,
|
|
1798
|
+
TA as q,
|
|
1799
|
+
It as r,
|
|
1800
|
+
st as s,
|
|
1801
|
+
qA as t,
|
|
1802
|
+
gt as u,
|
|
1803
|
+
mA as v,
|
|
1804
|
+
De as w
|
|
1865
1805
|
};
|