@cedros/login-react 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/{AuthenticationSettings-Dg6ATgOl.js → AuthenticationSettings-BipaLyGg.js} +19 -19
  2. package/dist/{AuthenticationSettings-Dg6ATgOl.js.map → AuthenticationSettings-BipaLyGg.js.map} +1 -1
  3. package/dist/{AuthenticationSettings-CjGGqbcS.cjs → AuthenticationSettings-Cb80XWPm.cjs} +1 -1
  4. package/dist/{AuthenticationSettings-CjGGqbcS.cjs.map → AuthenticationSettings-Cb80XWPm.cjs.map} +1 -1
  5. package/dist/{AuthenticationSettings-DGWktSVw.js → AuthenticationSettings-Cfn0No6U.js} +1 -1
  6. package/dist/{AuthenticationSettings-DGWktSVw.js.map → AuthenticationSettings-Cfn0No6U.js.map} +1 -1
  7. package/dist/{AuthenticationSettings-HhrUAmM6.cjs → AuthenticationSettings-Cu0S0Z7s.cjs} +1 -1
  8. package/dist/{AuthenticationSettings-HhrUAmM6.cjs.map → AuthenticationSettings-Cu0S0Z7s.cjs.map} +1 -1
  9. package/dist/{AutosaveStatus-DeViUyyI.js → AutosaveStatus-BKc7T2Tw.js} +323 -242
  10. package/dist/AutosaveStatus-BKc7T2Tw.js.map +1 -0
  11. package/dist/AutosaveStatus-BjLMt52a.cjs +1 -0
  12. package/dist/AutosaveStatus-BjLMt52a.cjs.map +1 -0
  13. package/dist/{CreditSystemSettings-DBr7QS59.js → CreditSystemSettings-CvcacgMM.js} +1 -1
  14. package/dist/{CreditSystemSettings-DBr7QS59.js.map → CreditSystemSettings-CvcacgMM.js.map} +1 -1
  15. package/dist/{CreditSystemSettings-CSlsQynZ.js → CreditSystemSettings-D13lZbIw.js} +1 -1
  16. package/dist/{CreditSystemSettings-CSlsQynZ.js.map → CreditSystemSettings-D13lZbIw.js.map} +1 -1
  17. package/dist/{CreditSystemSettings-CyFQbXMh.cjs → CreditSystemSettings-DO-dUcxN.cjs} +1 -1
  18. package/dist/{CreditSystemSettings-CyFQbXMh.cjs.map → CreditSystemSettings-DO-dUcxN.cjs.map} +1 -1
  19. package/dist/{CreditSystemSettings-BykhytcS.cjs → CreditSystemSettings-DV0VkPIe.cjs} +1 -1
  20. package/dist/{CreditSystemSettings-BykhytcS.cjs.map → CreditSystemSettings-DV0VkPIe.cjs.map} +1 -1
  21. package/dist/{EmailRegisterForm-Pvm3I8GP.cjs → EmailRegisterForm-DcpT5LU6.cjs} +1 -1
  22. package/dist/{EmailRegisterForm-Pvm3I8GP.cjs.map → EmailRegisterForm-DcpT5LU6.cjs.map} +1 -1
  23. package/dist/{EmailRegisterForm-nI0BOIxR.js → EmailRegisterForm-HMcnD3KA.js} +1 -1
  24. package/dist/{EmailRegisterForm-nI0BOIxR.js.map → EmailRegisterForm-HMcnD3KA.js.map} +1 -1
  25. package/dist/{EmailSettings-Bup2rCgU.cjs → EmailSettings-BkR7vlWL.cjs} +1 -1
  26. package/dist/{EmailSettings-Bup2rCgU.cjs.map → EmailSettings-BkR7vlWL.cjs.map} +1 -1
  27. package/dist/EmailSettings-CLMdw3rB.js +78 -0
  28. package/dist/EmailSettings-CLMdw3rB.js.map +1 -0
  29. package/dist/EmailSettings-Dq3mfUr2.cjs +1 -0
  30. package/dist/EmailSettings-Dq3mfUr2.cjs.map +1 -0
  31. package/dist/{EmailSettings-C04qdJCz.js → EmailSettings-ulEHtH2y.js} +1 -1
  32. package/dist/{EmailSettings-C04qdJCz.js.map → EmailSettings-ulEHtH2y.js.map} +1 -1
  33. package/dist/{EmbeddedWalletSettings-DYh884HP.js → EmbeddedWalletSettings-BTTV8Nqi.js} +46 -31
  34. package/dist/EmbeddedWalletSettings-BTTV8Nqi.js.map +1 -0
  35. package/dist/EmbeddedWalletSettings-C7H0E8Uz.cjs +1 -0
  36. package/dist/EmbeddedWalletSettings-C7H0E8Uz.cjs.map +1 -0
  37. package/dist/{EmbeddedWalletSettings-DDFQhQOw.js → EmbeddedWalletSettings-CLWh2TbV.js} +1 -1
  38. package/dist/{EmbeddedWalletSettings-DDFQhQOw.js.map → EmbeddedWalletSettings-CLWh2TbV.js.map} +1 -1
  39. package/dist/{EmbeddedWalletSettings-YX0Dk_b_.cjs → EmbeddedWalletSettings-DGmCVyex.cjs} +1 -1
  40. package/dist/{EmbeddedWalletSettings-YX0Dk_b_.cjs.map → EmbeddedWalletSettings-DGmCVyex.cjs.map} +1 -1
  41. package/dist/PermissionsSection-BPbE-hNx.cjs.map +1 -1
  42. package/dist/PermissionsSection-CighC1p6.js.map +1 -1
  43. package/dist/{ServerSettings-CInJe4jY.cjs → ServerSettings-CPAoiDtn.cjs} +1 -1
  44. package/dist/{ServerSettings-CInJe4jY.cjs.map → ServerSettings-CPAoiDtn.cjs.map} +1 -1
  45. package/dist/ServerSettings-Ch8MCmAY.js +91 -0
  46. package/dist/ServerSettings-Ch8MCmAY.js.map +1 -0
  47. package/dist/ServerSettings-CqDd59iM.cjs +1 -0
  48. package/dist/ServerSettings-CqDd59iM.cjs.map +1 -0
  49. package/dist/{ServerSettings-DVEtfDQo.js → ServerSettings-DooVeOet.js} +1 -1
  50. package/dist/{ServerSettings-DVEtfDQo.js.map → ServerSettings-DooVeOet.js.map} +1 -1
  51. package/dist/{WebhookSettings-DdbxNPZ9.js → WebhookSettings-B6mjH90_.js} +1 -1
  52. package/dist/{WebhookSettings-DdbxNPZ9.js.map → WebhookSettings-B6mjH90_.js.map} +1 -1
  53. package/dist/WebhookSettings-BG77iqJC.js +63 -0
  54. package/dist/WebhookSettings-BG77iqJC.js.map +1 -0
  55. package/dist/{WebhookSettings-BMeykdRP.cjs → WebhookSettings-BeiUAcKs.cjs} +1 -1
  56. package/dist/{WebhookSettings-BMeykdRP.cjs.map → WebhookSettings-BeiUAcKs.cjs.map} +1 -1
  57. package/dist/WebhookSettings-WMJ5zPjY.cjs +1 -0
  58. package/dist/WebhookSettings-WMJ5zPjY.cjs.map +1 -0
  59. package/dist/admin-only.cjs +1 -1
  60. package/dist/admin-only.d.ts +109 -14
  61. package/dist/admin-only.js +4 -3
  62. package/dist/email-only.cjs +1 -1
  63. package/dist/email-only.d.ts +56 -6
  64. package/dist/email-only.js +2 -2
  65. package/dist/google-only.cjs +1 -1
  66. package/dist/google-only.d.ts +56 -6
  67. package/dist/google-only.js +1 -1
  68. package/dist/index.cjs +13 -13
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.d.ts +330 -34
  71. package/dist/index.js +2505 -3553
  72. package/dist/index.js.map +1 -1
  73. package/dist/login-react.css +1 -1
  74. package/dist/mobileWalletAdapter-Dp4yFxCm.cjs +1 -0
  75. package/dist/mobileWalletAdapter-Dp4yFxCm.cjs.map +1 -0
  76. package/dist/mobileWalletAdapter-coZRD4Yx.js +291 -0
  77. package/dist/mobileWalletAdapter-coZRD4Yx.js.map +1 -0
  78. package/dist/{plugin-CnbFRy5o.cjs → plugin-BgMAc6DA.cjs} +1 -1
  79. package/dist/{plugin-CnbFRy5o.cjs.map → plugin-BgMAc6DA.cjs.map} +1 -1
  80. package/dist/{plugin-CW_ycXye.js → plugin-Bhf9zaly.js} +82 -70
  81. package/dist/{plugin-CW_ycXye.js.map → plugin-Bhf9zaly.js.map} +1 -1
  82. package/dist/{shamir-L-s-Tp1Z.js → shamir-CDbZS8I1.js} +1 -1
  83. package/dist/{shamir-L-s-Tp1Z.js.map → shamir-CDbZS8I1.js.map} +1 -1
  84. package/dist/{shamir-4DyQMJCk.cjs → shamir-DAa54dMh.cjs} +1 -1
  85. package/dist/{shamir-4DyQMJCk.cjs.map → shamir-DAa54dMh.cjs.map} +1 -1
  86. package/dist/{silentWalletEnroll-DWt6Pr3B.js → silentWalletEnroll-CRHzr4Zy.js} +2 -2
  87. package/dist/{silentWalletEnroll-DWt6Pr3B.js.map → silentWalletEnroll-CRHzr4Zy.js.map} +1 -1
  88. package/dist/{silentWalletEnroll-BgTb4H5I.cjs → silentWalletEnroll-Dl_oFapH.cjs} +1 -1
  89. package/dist/{silentWalletEnroll-BgTb4H5I.cjs.map → silentWalletEnroll-Dl_oFapH.cjs.map} +1 -1
  90. package/dist/solana-only.cjs +1 -1
  91. package/dist/solana-only.d.ts +112 -6
  92. package/dist/solana-only.js +6 -5
  93. package/dist/{useAuth-C3dpk0po.js → useAuth-D1NSN6yY.js} +822 -777
  94. package/dist/useAuth-D1NSN6yY.js.map +1 -0
  95. package/dist/{useAuth-D3Pk_H3z.cjs → useAuth-dS_6wAMp.cjs} +1 -1
  96. package/dist/useAuth-dS_6wAMp.cjs.map +1 -0
  97. package/package.json +4 -1
  98. package/dist/AutosaveStatus-BDWxAg4U.cjs +0 -1
  99. package/dist/AutosaveStatus-BDWxAg4U.cjs.map +0 -1
  100. package/dist/AutosaveStatus-DeViUyyI.js.map +0 -1
  101. package/dist/EmailSettings-C0Ss6Cne.cjs +0 -1
  102. package/dist/EmailSettings-C0Ss6Cne.cjs.map +0 -1
  103. package/dist/EmailSettings-DAqH_xum.js +0 -17
  104. package/dist/EmailSettings-DAqH_xum.js.map +0 -1
  105. package/dist/EmbeddedWalletSettings-B0XkNuPR.cjs +0 -1
  106. package/dist/EmbeddedWalletSettings-B0XkNuPR.cjs.map +0 -1
  107. package/dist/EmbeddedWalletSettings-DYh884HP.js.map +0 -1
  108. package/dist/ServerSettings-CwnEI-PC.cjs +0 -1
  109. package/dist/ServerSettings-CwnEI-PC.cjs.map +0 -1
  110. package/dist/ServerSettings-DakhpYcO.js +0 -84
  111. package/dist/ServerSettings-DakhpYcO.js.map +0 -1
  112. package/dist/SettingsPageLayout-C6DWgyXS.cjs +0 -1
  113. package/dist/SettingsPageLayout-C6DWgyXS.cjs.map +0 -1
  114. package/dist/SettingsPageLayout-CLJI6hFQ.js +0 -50
  115. package/dist/SettingsPageLayout-CLJI6hFQ.js.map +0 -1
  116. package/dist/SolanaLoginButton-BjOxpE1C.cjs +0 -1
  117. package/dist/SolanaLoginButton-BjOxpE1C.cjs.map +0 -1
  118. package/dist/SolanaLoginButton-P22QjBaO.js +0 -262
  119. package/dist/SolanaLoginButton-P22QjBaO.js.map +0 -1
  120. package/dist/WebhookSettings-BNVooF0B.cjs +0 -1
  121. package/dist/WebhookSettings-BNVooF0B.cjs.map +0 -1
  122. package/dist/WebhookSettings-DXeDYhAe.js +0 -17
  123. package/dist/WebhookSettings-DXeDYhAe.js.map +0 -1
  124. package/dist/useAuth-C3dpk0po.js.map +0 -1
  125. package/dist/useAuth-D3Pk_H3z.cjs.map +0 -1
@@ -1,29 +1,29 @@
1
1
  import { jsx as ne, jsxs as Ke } from "react/jsx-runtime";
2
- import { useEffect as N, useState as G, useRef as P, useCallback as d, useMemo as V } from "react";
3
- import { A as He, a as Je, C as Ve } from "./LoadingSpinner-6vml-zwr.js";
4
- import { A as Ee, g as oe, a as pe, h as Y, u as ye } from "./useCedrosLogin-_94MmGGq.js";
2
+ import { useEffect as Y, useState as K, useRef as N, useCallback as E, 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 Ee, g as oe, a as pe, h as J, u as ye } from "./useCedrosLogin-_94MmGGq.js";
5
5
  let Z = 0;
6
- function Me({ theme: e, themeOverrides: A }) {
7
- N(() => {
6
+ function Ve({ theme: e, themeOverrides: t }) {
7
+ Y(() => {
8
8
  if (typeof document > "u" || typeof window > "u")
9
9
  return;
10
- const t = document.documentElement;
10
+ const A = 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 ? (Z++, r = !0, t.classList.add("cedros-dark")) : Z === 0 && t.classList.remove("cedros-dark");
14
+ i ? (Z++, r = !0, A.classList.add("cedros-dark")) : Z === 0 && A.classList.remove("cedros-dark");
15
15
  const n = /* @__PURE__ */ new Map();
16
- return A && Object.entries(A).forEach(([o, a]) => {
16
+ return t && Object.entries(t).forEach(([s, a]) => {
17
17
  if (a) {
18
- const l = t.style.getPropertyValue(o);
19
- n.set(o, l), t.style.setProperty(o, a);
18
+ const c = A.style.getPropertyValue(s);
19
+ n.set(s, c), A.style.setProperty(s, a);
20
20
  }
21
21
  }), () => {
22
- r && (Z--, Z === 0 && t.classList.remove("cedros-dark")), n.forEach((o, a) => {
23
- o ? t.style.setProperty(a, o) : t.style.removeProperty(a);
22
+ r && (Z--, Z === 0 && A.classList.remove("cedros-dark")), n.forEach((s, a) => {
23
+ s ? A.style.setProperty(a, s) : A.style.removeProperty(a);
24
24
  });
25
25
  };
26
- }, [e, A]);
26
+ }, [e, t]);
27
27
  }
28
28
  const Pe = {
29
29
  email: !0,
@@ -33,29 +33,29 @@ const Pe = {
33
33
  webauthn: !0,
34
34
  instantLink: !0
35
35
  };
36
- function Ne(e, A, t) {
37
- const [i, r] = G(null), [n, o] = G(A), a = P(!1);
38
- return N(() => {
39
- if (!A || a.current) return;
36
+ function Ne(e, t, A) {
37
+ const [i, r] = K(null), [n, s] = K(t), a = N(!1);
38
+ return Y(() => {
39
+ if (!t || a.current) return;
40
40
  a.current = !0, new Ee({
41
41
  baseUrl: e,
42
- timeoutMs: t ?? 5e3,
42
+ timeoutMs: A ?? 5e3,
43
43
  retryAttempts: 1
44
- }).get("/features", { credentials: "omit" }).then((s) => {
44
+ }).get("/features", { credentials: "omit" }).then((o) => {
45
45
  r({
46
- email: s.email,
47
- google: s.google,
48
- apple: s.apple,
49
- solana: s.solana,
50
- webauthn: s.webauthn,
51
- instantLink: s.instantLink
46
+ email: o.email,
47
+ google: o.google,
48
+ apple: o.apple,
49
+ solana: o.solana,
50
+ webauthn: o.webauthn,
51
+ instantLink: o.instantLink
52
52
  });
53
53
  }).catch(() => {
54
54
  r(Pe);
55
55
  }).finally(() => {
56
- o(!1);
56
+ s(!1);
57
57
  });
58
- }, [A, e, t]), { features: i, isLoading: n };
58
+ }, [t, e, A]), { features: i, isLoading: n };
59
59
  }
60
60
  const Ye = "cedros_tokens", xe = 6e4;
61
61
  class Oe {
@@ -73,8 +73,8 @@ class Oe {
73
73
  // S-13: Prevent onSessionExpired from firing multiple times
74
74
  sessionExpiredFired = !1;
75
75
  allowWebStorage;
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();
76
+ constructor(t = "cookie", A = Ye, i = {}) {
77
+ this.requestedStorage = t, this.storage = t, this.storageKey = A, 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 Oe {
83
83
  */
84
84
  warnIfLocalStorage() {
85
85
  if ((this.requestedStorage === "localStorage" || this.requestedStorage === "sessionStorage") && typeof console < "u") {
86
- const A = this.allowWebStorage ? "" : " (web storage disabled by default; set allowWebStorage=true to enable)";
86
+ const t = 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." + 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/"
88
+ "[cedros-login] SECURITY: Using web storage for token storage. Tokens are vulnerable to XSS attacks." + t + " PRODUCTION RECOMMENDATIONS: (1) Use httpOnly cookie storage instead, (2) If web storage required: implement strict Content-Security-Policy, sanitize all input/output, audit third-party scripts. See https://owasp.org/www-community/attacks/xss/"
89
89
  );
90
90
  }
91
91
  }
92
92
  /**
93
93
  * Set the callback for when tokens need to be refreshed
94
94
  */
95
- setRefreshCallback(A) {
96
- this.onRefreshNeeded = A, this.scheduleRefresh();
95
+ setRefreshCallback(t) {
96
+ this.onRefreshNeeded = t, this.scheduleRefresh();
97
97
  }
98
98
  /**
99
99
  * Set the callback for when session expires
100
100
  */
101
- setSessionExpiredCallback(A) {
102
- this.onSessionExpired = A;
101
+ setSessionExpiredCallback(t) {
102
+ this.onSessionExpired = t;
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(A) {
109
- this.onRefreshError = A;
108
+ setRefreshErrorCallback(t) {
109
+ this.onRefreshError = t;
110
110
  }
111
111
  /**
112
112
  * Store tokens and schedule auto-refresh
113
113
  */
114
- setTokens(A) {
115
- this.tokens = A, this.expiresAt = Date.now() + A.expiresIn * 1e3, this.sessionExpiredFired = !1, this.saveToStorage(), this.scheduleRefresh();
114
+ setTokens(t) {
115
+ this.tokens = t, this.expiresAt = Date.now() + t.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 Oe {
121
121
  */
122
122
  getAccessToken() {
123
123
  if (this.isDestroyed) return null;
124
- const A = this.tokens?.accessToken;
125
- return A ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : A : null;
124
+ const t = this.tokens?.accessToken;
125
+ return t ? Date.now() >= this.expiresAt ? (this.clear(), this.fireSessionExpired(), null) : t : null;
126
126
  }
127
127
  /**
128
128
  * Get the current refresh token
@@ -165,8 +165,8 @@ class Oe {
165
165
  }
166
166
  scheduleRefresh() {
167
167
  if (this.cancelRefresh(), !this.tokens || !this.onRefreshNeeded) return;
168
- const A = this.getTimeUntilExpiry(), t = Math.max(0, A - xe);
169
- if (t <= 0) {
168
+ const t = this.getTimeUntilExpiry(), A = Math.max(0, t - xe);
169
+ if (A <= 0) {
170
170
  if (this.isDestroyed) return;
171
171
  this.onRefreshNeeded().catch((i) => {
172
172
  if (this.isDestroyed) return;
@@ -181,7 +181,7 @@ class Oe {
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
- }, t);
184
+ }, A);
185
185
  }
186
186
  cancelRefresh() {
187
187
  this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null);
@@ -190,17 +190,17 @@ class Oe {
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 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);
193
+ const t = this.storage === "localStorage" ? localStorage : sessionStorage, A = t.getItem(this.storageKey);
194
+ if (A) {
195
+ const i = JSON.parse(A);
196
+ this.isValidStoredTokenData(i) ? i.expiresAt > Date.now() ? (this.tokens = i.tokens, this.expiresAt = i.expiresAt) : t.removeItem(this.storageKey) : t.removeItem(this.storageKey);
197
197
  }
198
198
  }
199
199
  } catch {
200
200
  if (this.storage === "localStorage" || this.storage === "sessionStorage") {
201
- const A = this.storage === "localStorage" ? localStorage : sessionStorage;
201
+ const t = this.storage === "localStorage" ? localStorage : sessionStorage;
202
202
  try {
203
- A.removeItem(this.storageKey);
203
+ t.removeItem(this.storageKey);
204
204
  } catch {
205
205
  }
206
206
  }
@@ -209,22 +209,22 @@ class Oe {
209
209
  /**
210
210
  * Validate that parsed data matches expected StoredTokenData structure
211
211
  */
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;
212
+ isValidStoredTokenData(t) {
213
+ if (typeof t != "object" || t === null) return !1;
214
+ const A = t;
215
+ if (typeof A.expiresAt != "number" || typeof A.tokens != "object" || A.tokens === null) return !1;
216
+ const i = A.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 A = this.storage === "localStorage" ? localStorage : sessionStorage, t = {
223
+ const t = this.storage === "localStorage" ? localStorage : sessionStorage, A = {
224
224
  tokens: this.tokens,
225
225
  expiresAt: this.expiresAt
226
226
  };
227
- A.setItem(this.storageKey, JSON.stringify(t));
227
+ t.setItem(this.storageKey, JSON.stringify(A));
228
228
  }
229
229
  } catch {
230
230
  }
@@ -249,28 +249,28 @@ class Te {
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(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;
252
+ handleMessage(t) {
253
+ const A = t.data;
254
+ if (!(!A || typeof A != "object" || typeof A.type != "string") && ["login", "logout", "refresh"].includes(A.type)) {
255
+ if (A.type === "login") {
256
+ const i = A;
257
257
  if (typeof i.user != "object" || i.user === null || typeof i.user.id != "string")
258
258
  return;
259
259
  }
260
- this.callback?.(t);
260
+ this.callback?.(A);
261
261
  }
262
262
  }
263
263
  /**
264
264
  * Set the callback for sync events from other tabs
265
265
  */
266
- setCallback(A) {
267
- this.callback = A;
266
+ setCallback(t) {
267
+ this.callback = t;
268
268
  }
269
269
  /**
270
270
  * Broadcast login event to other tabs
271
271
  */
272
- broadcastLogin(A) {
273
- this.channel?.postMessage({ type: "login", user: A });
272
+ broadcastLogin(t) {
273
+ this.channel?.postMessage({ type: "login", user: t });
274
274
  }
275
275
  /**
276
276
  * Broadcast logout event to other tabs
@@ -294,80 +294,80 @@ class Te {
294
294
  }
295
295
  function q(e) {
296
296
  if (typeof e != "object" || e === null) return !1;
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;
297
+ const t = e;
298
+ if (typeof t.user != "object" || t.user === null) return !1;
299
+ const A = t.user;
300
+ return typeof A.id == "string" && A.id.length > 0;
301
301
  }
302
302
  function Re(e) {
303
303
  if (typeof e != "object" || e === null) return !1;
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;
304
+ const t = e;
305
+ return typeof t.accessToken == "string" && t.accessToken.length > 0 && typeof t.refreshToken == "string" && t.refreshToken.length > 0 && typeof t.expiresIn == "number" && t.expiresIn > 0;
306
306
  }
307
307
  function Le({
308
308
  serverUrl: e,
309
- session: A,
310
- callbacks: t,
309
+ session: t,
310
+ callbacks: A,
311
311
  requestTimeoutMs: i
312
312
  }) {
313
- const [r, n] = G(null), [o, a] = G("idle"), l = P(null), s = P(null), k = P(t), w = P(!0), B = P(null), b = P(() => Promise.resolve()), F = P(() => {
313
+ const [r, n] = K(null), [s, a] = K("idle"), c = N(null), o = N(null), S = N(A), u = N(!0), B = N(null), G = N(() => Promise.resolve()), U = N(() => {
314
314
  });
315
- N(() => {
316
- k.current = t;
317
- }, [t]), N(() => (w.current = !0, () => {
318
- w.current = !1;
315
+ Y(() => {
316
+ S.current = A;
317
+ }, [A]), Y(() => (u.current = !0, () => {
318
+ u.current = !1;
319
319
  }), []);
320
- const Q = d((c) => {
321
- w.current && n(c);
322
- }, []), f = d((c) => {
323
- w.current && a(c);
324
- }, []), u = V(
320
+ const Q = E((C) => {
321
+ u.current && n(C);
322
+ }, []), h = E((C) => {
323
+ u.current && a(C);
324
+ }, []), f = V(
325
325
  () => ({
326
- storage: A?.storage ?? "cookie",
327
- autoRefresh: A?.autoRefresh ?? !0,
328
- syncTabs: A?.syncTabs ?? !0,
329
- persistKey: A?.persistKey,
330
- allowWebStorage: A?.allowWebStorage ?? !1
326
+ storage: t?.storage ?? "cookie",
327
+ autoRefresh: t?.autoRefresh ?? !0,
328
+ syncTabs: t?.syncTabs ?? !0,
329
+ persistKey: t?.persistKey,
330
+ allowWebStorage: t?.allowWebStorage ?? !1
331
331
  }),
332
332
  [
333
- A?.storage,
334
- A?.autoRefresh,
335
- A?.syncTabs,
336
- A?.persistKey,
337
- A?.allowWebStorage
333
+ t?.storage,
334
+ t?.autoRefresh,
335
+ t?.syncTabs,
336
+ t?.persistKey,
337
+ t?.allowWebStorage
338
338
  ]
339
339
  );
340
- N(() => {
341
- const c = new Oe(u.storage, u.persistKey, {
342
- allowWebStorage: u.allowWebStorage
340
+ Y(() => {
341
+ const C = new Oe(f.storage, f.persistKey, {
342
+ allowWebStorage: f.allowWebStorage
343
343
  });
344
- return l.current = c, u.autoRefresh && c.setRefreshCallback(() => b.current()), c.setSessionExpiredCallback(() => F.current()), u.syncTabs && (s.current = new Te()), () => {
345
- c.destroy(), l.current = null, s.current?.close();
344
+ return c.current = C, f.autoRefresh && C.setRefreshCallback(() => G.current()), C.setSessionExpiredCallback(() => U.current()), f.syncTabs && (o.current = new Te()), () => {
345
+ C.destroy(), c.current = null, o.current?.close();
346
346
  };
347
347
  }, [
348
- u.storage,
349
- u.syncTabs,
350
- u.persistKey,
351
- u.allowWebStorage,
352
- u.autoRefresh
348
+ f.storage,
349
+ f.syncTabs,
350
+ f.persistKey,
351
+ f.allowWebStorage,
352
+ f.autoRefresh
353
353
  ]);
354
- const m = d(async () => {
354
+ const b = E(async () => {
355
355
  if (B.current)
356
356
  return B.current;
357
- const c = l.current?.getRefreshToken(), E = !!c, U = oe(), K = {};
358
- E && (K["Content-Type"] = "application/json"), U && (K["X-CSRF-Token"] = U);
359
- let D, J;
357
+ const C = c.current?.getRefreshToken(), p = !!C, m = oe(), H = {};
358
+ p && (H["Content-Type"] = "application/json"), m && (H["X-CSRF-Token"] = m);
359
+ let F, M;
360
360
  const v = new Promise((j, ie) => {
361
- D = j, J = ie;
361
+ F = j, M = ie;
362
362
  });
363
363
  B.current = v, (async () => {
364
364
  const j = new AbortController(), ie = i ?? 1e4, Ge = window.setTimeout(() => j.abort(), ie);
365
365
  try {
366
366
  const L = await fetch(`${e}/refresh`, {
367
367
  method: "POST",
368
- headers: Object.keys(K).length > 0 ? K : void 0,
368
+ headers: Object.keys(H).length > 0 ? H : void 0,
369
369
  credentials: "include",
370
- body: E ? JSON.stringify({ refreshToken: c }) : void 0,
370
+ body: p ? JSON.stringify({ refreshToken: C }) : void 0,
371
371
  signal: j.signal
372
372
  });
373
373
  if (!L.ok)
@@ -376,12 +376,12 @@ function Le({
376
376
  if (re.tokens) {
377
377
  if (!Re(re.tokens))
378
378
  throw new Error("Invalid token response structure");
379
- l.current?.setTokens(re.tokens);
380
- } else if (u.storage !== "cookie")
379
+ c.current?.setTokens(re.tokens);
380
+ } else if (f.storage !== "cookie")
381
381
  throw new Error("Token refresh failed");
382
- s.current?.broadcastRefresh(), D();
382
+ o.current?.broadcastRefresh(), F();
383
383
  } catch (L) {
384
- throw J(L), L;
384
+ throw M(L), L;
385
385
  } finally {
386
386
  window.clearTimeout(Ge);
387
387
  }
@@ -392,176 +392,176 @@ function Le({
392
392
  } finally {
393
393
  B.current = null;
394
394
  }
395
- }, [e, u.storage, i]), p = d(() => {
396
- if (u.storage === "cookie") return;
397
- const c = l.current?.getAccessToken();
398
- if (c)
399
- return { Authorization: `Bearer ${c}` };
400
- }, [u.storage]), h = d(() => {
401
- l.current?.clear(), Q(null), f("unauthenticated"), k.current?.onSessionExpired?.();
402
- }, [f, Q]);
403
- b.current = m, F.current = h;
404
- const g = d(
405
- (c) => {
406
- const E = new AbortController(), U = i ?? 1e4, K = window.setTimeout(() => E.abort(), U), D = {}, J = p();
407
- J && Object.assign(D, J);
395
+ }, [e, f.storage, i]), y = E(() => {
396
+ if (f.storage === "cookie") return;
397
+ const C = c.current?.getAccessToken();
398
+ if (C)
399
+ return { Authorization: `Bearer ${C}` };
400
+ }, [f.storage]), D = E(() => {
401
+ c.current?.clear(), Q(null), h("unauthenticated"), S.current?.onSessionExpired?.();
402
+ }, [h, Q]);
403
+ G.current = b, U.current = D;
404
+ const d = E(
405
+ (C) => {
406
+ const p = new AbortController(), m = i ?? 1e4, H = window.setTimeout(() => p.abort(), m), F = {}, M = y();
407
+ M && Object.assign(F, M);
408
408
  const v = oe();
409
- return v && (D["X-CSRF-Token"] = v), {
410
- promise: fetch(c, {
409
+ return v && (F["X-CSRF-Token"] = v), {
410
+ promise: fetch(C, {
411
411
  credentials: "include",
412
- headers: Object.keys(D).length > 0 ? D : void 0,
413
- signal: E.signal
412
+ headers: Object.keys(F).length > 0 ? F : void 0,
413
+ signal: p.signal
414
414
  }),
415
- cleanup: () => window.clearTimeout(K)
415
+ cleanup: () => window.clearTimeout(H)
416
416
  };
417
417
  },
418
- [p, i]
419
- ), I = d(async () => {
420
- const c = g(`${e}/user`);
418
+ [y, i]
419
+ ), g = E(async () => {
420
+ const C = d(`${e}/user`);
421
421
  try {
422
- const E = await c.promise;
423
- if (E.ok) {
424
- const U = await E.json();
425
- if (q(U)) {
426
- Q(U.user), f("authenticated");
422
+ const p = await C.promise;
423
+ if (p.ok) {
424
+ const m = await p.json();
425
+ if (q(m)) {
426
+ Q(m.user), h("authenticated");
427
427
  return;
428
428
  }
429
429
  }
430
- if (E.status === 401 && u.autoRefresh) {
430
+ if (p.status === 401 && f.autoRefresh) {
431
431
  try {
432
- await m();
432
+ await b();
433
433
  } catch {
434
- h();
434
+ D();
435
435
  return;
436
436
  }
437
- const U = g(`${e}/user`);
437
+ const m = d(`${e}/user`);
438
438
  try {
439
- const K = await U.promise;
440
- if (K.ok) {
441
- const D = await K.json();
442
- if (q(D)) {
443
- Q(D.user), f("authenticated");
439
+ const H = await m.promise;
440
+ if (H.ok) {
441
+ const F = await H.json();
442
+ if (q(F)) {
443
+ Q(F.user), h("authenticated");
444
444
  return;
445
445
  }
446
446
  }
447
447
  } finally {
448
- U.cleanup();
448
+ m.cleanup();
449
449
  }
450
450
  }
451
- Q(null), f("unauthenticated");
451
+ Q(null), h("unauthenticated");
452
452
  } catch {
453
- Q(null), f("unauthenticated");
453
+ Q(null), h("unauthenticated");
454
454
  } finally {
455
- c.cleanup();
455
+ C.cleanup();
456
456
  }
457
457
  }, [
458
458
  e,
459
- u.autoRefresh,
460
- m,
461
- g,
459
+ f.autoRefresh,
460
+ b,
461
+ d,
462
+ D,
462
463
  h,
463
- f,
464
464
  Q
465
465
  ]);
466
- N(() => {
467
- !s.current || !u.syncTabs || s.current.setCallback((c) => {
468
- switch (c.type) {
466
+ Y(() => {
467
+ !o.current || !f.syncTabs || o.current.setCallback((C) => {
468
+ switch (C.type) {
469
469
  case "login":
470
- Q(c.user), f("authenticated");
470
+ Q(C.user), h("authenticated");
471
471
  break;
472
472
  case "logout":
473
- Q(null), f("unauthenticated"), l.current?.clear();
473
+ Q(null), h("unauthenticated"), c.current?.clear();
474
474
  break;
475
475
  case "refresh":
476
- I();
476
+ g();
477
477
  break;
478
478
  default:
479
- console.warn("[Cedros Login] Unhandled tab sync event:", c);
479
+ console.warn("[Cedros Login] Unhandled tab sync event:", C);
480
480
  }
481
481
  });
482
- }, [u.syncTabs, I, f, Q]), N(() => {
483
- const c = new AbortController(), E = i ?? 1e4, U = window.setTimeout(() => c.abort(), E);
482
+ }, [f.syncTabs, g, h, Q]), Y(() => {
483
+ const C = new AbortController(), p = i ?? 1e4, m = window.setTimeout(() => C.abort(), p);
484
484
  return (async () => {
485
- f("loading");
485
+ h("loading");
486
486
  try {
487
- const D = await fetch(`${e}/user`, {
487
+ const F = await fetch(`${e}/user`, {
488
488
  credentials: "include",
489
- headers: p(),
490
- signal: c.signal
489
+ headers: y(),
490
+ signal: C.signal
491
491
  });
492
- if (D.ok) {
493
- const J = await D.json();
494
- if (q(J)) {
495
- Q(J.user), f("authenticated");
492
+ if (F.ok) {
493
+ const M = await F.json();
494
+ if (q(M)) {
495
+ Q(M.user), h("authenticated");
496
496
  return;
497
497
  }
498
498
  }
499
- if (D.status === 401 && u.autoRefresh) {
499
+ if (F.status === 401 && f.autoRefresh) {
500
500
  try {
501
- await m();
501
+ await b();
502
502
  } catch {
503
- h();
503
+ D();
504
504
  return;
505
505
  }
506
- const J = await fetch(`${e}/user`, {
506
+ const M = await fetch(`${e}/user`, {
507
507
  credentials: "include",
508
- headers: p(),
509
- signal: c.signal
508
+ headers: y(),
509
+ signal: C.signal
510
510
  });
511
- if (J.ok) {
512
- const v = await J.json();
511
+ if (M.ok) {
512
+ const v = await M.json();
513
513
  if (q(v)) {
514
- Q(v.user), f("authenticated");
514
+ Q(v.user), h("authenticated");
515
515
  return;
516
516
  }
517
517
  }
518
518
  }
519
- Q(null), f("unauthenticated");
519
+ Q(null), h("unauthenticated");
520
520
  } catch {
521
- Q(null), f("unauthenticated");
521
+ Q(null), h("unauthenticated");
522
522
  }
523
523
  })(), () => {
524
- window.clearTimeout(U), c.abort();
524
+ window.clearTimeout(m), C.abort();
525
525
  };
526
526
  }, [
527
527
  e,
528
- u.autoRefresh,
529
- m,
530
- p,
528
+ f.autoRefresh,
529
+ b,
530
+ y,
531
+ D,
531
532
  h,
532
- f,
533
533
  Q,
534
534
  i
535
535
  ]);
536
- const C = d(
537
- (c, E) => {
538
- Q(c), f("authenticated"), E && l.current?.setTokens(E), w.current && s.current?.broadcastLogin(c);
536
+ const I = E(
537
+ (C, p) => {
538
+ Q(C), h("authenticated"), p && c.current?.setTokens(p), u.current && o.current?.broadcastLogin(C);
539
539
  },
540
- [Q, f]
541
- ), S = d(async () => {
542
- const c = oe(), E = new AbortController(), U = i ?? 1e4, K = window.setTimeout(() => E.abort(), U);
540
+ [Q, h]
541
+ ), l = E(async () => {
542
+ const C = oe(), p = new AbortController(), m = i ?? 1e4, H = window.setTimeout(() => p.abort(), m);
543
543
  try {
544
544
  await fetch(`${e}/logout`, {
545
545
  method: "POST",
546
546
  headers: {
547
- ...c ? { "X-CSRF-Token": c } : {},
548
- ...p() ?? {}
547
+ ...C ? { "X-CSRF-Token": C } : {},
548
+ ...y() ?? {}
549
549
  },
550
550
  credentials: "include",
551
- signal: E.signal
551
+ signal: p.signal
552
552
  });
553
553
  } catch {
554
554
  } finally {
555
- window.clearTimeout(K), Q(null), f("unauthenticated"), l.current?.clear(), s.current?.broadcastLogout(), k.current?.onLogout?.();
555
+ window.clearTimeout(H), Q(null), h("unauthenticated"), c.current?.clear(), o.current?.broadcastLogout(), S.current?.onLogout?.();
556
556
  }
557
- }, [e, p, Q, f, i]), H = d(() => l.current?.getAccessToken() ?? null, []);
557
+ }, [e, y, Q, h, i]), w = E(() => c.current?.getAccessToken() ?? null, []);
558
558
  return {
559
559
  user: r,
560
- authState: o,
561
- handleLoginSuccess: C,
562
- logout: S,
563
- refreshUser: I,
564
- getAccessToken: H
560
+ authState: s,
561
+ handleLoginSuccess: I,
562
+ logout: l,
563
+ refreshUser: g,
564
+ getAccessToken: w
565
565
  };
566
566
  }
567
567
  const Xe = {
@@ -576,8 +576,8 @@ function We(e) {
576
576
  function je(e) {
577
577
  if (e.length === 16) return !0;
578
578
  if (e.length < 18) return !1;
579
- const A = e[0];
580
- return A === 0 || A === 1 || A === 128 || A === 8;
579
+ const t = e[0];
580
+ return t === 0 || t === 1 || t === 128 || t === 8;
581
581
  }
582
582
  function Ze(e) {
583
583
  return e.length === 32;
@@ -596,7 +596,7 @@ function ze(e) {
596
596
  throw new Error(`Invalid seed length: expected 16, got ${e.length}`);
597
597
  return e;
598
598
  }
599
- function _A(e) {
599
+ function _t(e) {
600
600
  if (!je(e))
601
601
  throw new Error(`Invalid share length: expected >=16, got ${e.length}`);
602
602
  return e;
@@ -606,17 +606,17 @@ function ke(e) {
606
606
  throw new Error(`Invalid key length: expected 32, got ${e.length}`);
607
607
  return e;
608
608
  }
609
- function eA(e) {
609
+ function et(e) {
610
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 AA(e) {
614
+ function tt(e) {
615
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 tA(e) {
619
+ function At(e) {
620
620
  if (!$e(e))
621
621
  throw new Error(`Invalid PRF salt length: expected 32, got ${e.length}`);
622
622
  return e;
@@ -629,36 +629,36 @@ function ee(e) {
629
629
  throw new Error(
630
630
  "WebCrypto API not available. Secure random generation requires a modern browser."
631
631
  );
632
- const A = new Uint8Array(e);
633
- return crypto.getRandomValues(A), A;
632
+ const t = new Uint8Array(e);
633
+ return crypto.getRandomValues(t), t;
634
634
  }
635
- function $A() {
635
+ function $t() {
636
636
  return ze(ee(16));
637
637
  }
638
- function iA() {
639
- return eA(ee(12));
638
+ function it() {
639
+ return et(ee(12));
640
640
  }
641
- function zA() {
642
- return AA(ee(16));
641
+ function zt() {
642
+ return tt(ee(16));
643
643
  }
644
- function rA() {
645
- return tA(ee(32));
644
+ function rt() {
645
+ return At(ee(32));
646
646
  }
647
647
  function Se(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 A = 0; A < e.length; A++)
653
- e[A] = A * 90 & 255;
652
+ for (let t = 0; t < e.length; t++)
653
+ e[t] = t * 90 & 255;
654
654
  e.fill(0);
655
655
  }
656
656
  }
657
- function et(...e) {
658
- for (const A of e)
659
- A && Se(A);
657
+ function eA(...e) {
658
+ for (const t of e)
659
+ t && Se(t);
660
660
  }
661
- async function nA(e) {
661
+ async function nt(e) {
662
662
  return crypto.subtle.importKey(
663
663
  "raw",
664
664
  T(e),
@@ -668,8 +668,8 @@ async function nA(e) {
668
668
  ["encrypt", "decrypt"]
669
669
  );
670
670
  }
671
- async function oA(e, A, t) {
672
- const i = t ?? iA(), r = await nA(A), n = await crypto.subtle.encrypt(
671
+ async function ot(e, t, A) {
672
+ const i = A ?? it(), r = await nt(t), n = await crypto.subtle.encrypt(
673
673
  { name: "AES-GCM", iv: T(i) },
674
674
  r,
675
675
  T(e)
@@ -679,45 +679,45 @@ async function oA(e, A, t) {
679
679
  nonce: i
680
680
  };
681
681
  }
682
- async function At(e, A) {
683
- const t = await oA(e, A);
682
+ async function tA(e, t) {
683
+ const A = await ot(e, t);
684
684
  return {
685
- ciphertext: z(t.ciphertext),
686
- nonce: z(t.nonce)
685
+ ciphertext: z(A.ciphertext),
686
+ nonce: z(A.nonce)
687
687
  };
688
688
  }
689
689
  function z(e) {
690
- const t = [];
690
+ const A = [];
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
- t.push(String.fromCharCode(...r));
693
+ A.push(String.fromCharCode(...r));
694
694
  }
695
- return btoa(t.join(""));
695
+ return btoa(A.join(""));
696
696
  }
697
- function sA(e) {
698
- let A;
697
+ function st(e) {
698
+ let t;
699
699
  try {
700
- A = atob(e);
700
+ t = atob(e);
701
701
  } catch {
702
702
  throw new Error("Invalid base64 string: input is malformed or contains invalid characters");
703
703
  }
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;
704
+ const A = new Uint8Array(t.length);
705
+ for (let i = 0; i < t.length; i++)
706
+ A[i] = t.charCodeAt(i);
707
+ return A;
708
708
  }
709
- async function IA(e, A, t, i = 32) {
709
+ async function It(e, t, A, i = 32) {
710
710
  const r = await crypto.subtle.importKey(
711
711
  "raw",
712
712
  T(e),
713
713
  "HKDF",
714
714
  !1,
715
715
  ["deriveBits"]
716
- ), n = new TextEncoder().encode(t), o = await crypto.subtle.deriveBits(
716
+ ), n = new TextEncoder().encode(A), s = await crypto.subtle.deriveBits(
717
717
  {
718
718
  name: "HKDF",
719
719
  hash: "SHA-256",
720
- salt: T(A ?? new Uint8Array(32)),
720
+ salt: T(t ?? new Uint8Array(32)),
721
721
  // Zero salt if not provided
722
722
  info: T(n)
723
723
  },
@@ -725,13 +725,13 @@ async function IA(e, A, t, i = 32) {
725
725
  i * 8
726
726
  // bits
727
727
  );
728
- return new Uint8Array(o);
728
+ return new Uint8Array(s);
729
729
  }
730
- async function tt(e, A) {
731
- const t = await IA(e, A, "cedros-wallet-share-b-encryption", 32);
732
- return ke(t);
730
+ async function AA(e, t) {
731
+ const A = await It(e, t, "cedros-wallet-share-b-encryption", 32);
732
+ return ke(A);
733
733
  }
734
- async function aA() {
734
+ async function at() {
735
735
  try {
736
736
  const e = await crypto.subtle.importKey("raw", new Uint8Array(32), "HKDF", !1, [
737
737
  "deriveBits"
@@ -750,93 +750,93 @@ async function aA() {
750
750
  return !1;
751
751
  }
752
752
  }
753
- function R(e, A, t, i) {
753
+ function R(e, t, A, i) {
754
754
  function r(n) {
755
- return n instanceof t ? n : new t(function(o) {
756
- o(n);
755
+ return n instanceof A ? n : new A(function(s) {
756
+ s(n);
757
757
  });
758
758
  }
759
- return new (t || (t = Promise))(function(n, o) {
760
- function a(k) {
759
+ return new (A || (A = Promise))(function(n, s) {
760
+ function a(S) {
761
761
  try {
762
- s(i.next(k));
763
- } catch (w) {
764
- o(w);
762
+ o(i.next(S));
763
+ } catch (u) {
764
+ s(u);
765
765
  }
766
766
  }
767
- function l(k) {
767
+ function c(S) {
768
768
  try {
769
- s(i.throw(k));
770
- } catch (w) {
771
- o(w);
769
+ o(i.throw(S));
770
+ } catch (u) {
771
+ s(u);
772
772
  }
773
773
  }
774
- function s(k) {
775
- k.done ? n(k.value) : r(k.value).then(a, l);
774
+ function o(S) {
775
+ S.done ? n(S.value) : r(S.value).then(a, c);
776
776
  }
777
- s((i = i.apply(e, [])).next());
777
+ o((i = i.apply(e, [])).next());
778
778
  });
779
779
  }
780
- class y {
780
+ class k {
781
781
  constructor() {
782
782
  this.mutex = Promise.resolve();
783
783
  }
784
784
  lock() {
785
- let A = () => {
785
+ let t = () => {
786
786
  };
787
- return this.mutex = this.mutex.then(() => new Promise(A)), new Promise((t) => {
788
- A = t;
787
+ return this.mutex = this.mutex.then(() => new Promise(t)), new Promise((A) => {
788
+ t = A;
789
789
  });
790
790
  }
791
- dispatch(A) {
791
+ dispatch(t) {
792
792
  return R(this, void 0, void 0, function* () {
793
- const t = yield this.lock();
793
+ const A = yield this.lock();
794
794
  try {
795
- return yield Promise.resolve(A());
795
+ return yield Promise.resolve(t());
796
796
  } finally {
797
- t();
797
+ A();
798
798
  }
799
799
  });
800
800
  }
801
801
  }
802
802
  var se;
803
- function gA() {
803
+ function gt() {
804
804
  return typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global;
805
805
  }
806
- const Ce = gA(), Ie = (se = Ce.Buffer) !== null && se !== void 0 ? se : null, lA = Ce.TextEncoder ? new Ce.TextEncoder() : null;
807
- function De(e, A) {
808
- return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (A & 15) + (A >> 6 | A >> 3 & 8);
806
+ const Ce = gt(), Ie = (se = Ce.Buffer) !== null && se !== void 0 ? se : null, lt = Ce.TextEncoder ? new Ce.TextEncoder() : null;
807
+ function De(e, t) {
808
+ return (e & 15) + (e >> 6 | e >> 3 & 8) << 4 | (t & 15) + (t >> 6 | t >> 3 & 8);
809
809
  }
810
- function Fe(e, A) {
811
- const t = A.length >> 1;
812
- for (let i = 0; i < t; i++) {
810
+ function Fe(e, t) {
811
+ const A = t.length >> 1;
812
+ for (let i = 0; i < A; i++) {
813
813
  const r = i << 1;
814
- e[i] = De(A.charCodeAt(r), A.charCodeAt(r + 1));
814
+ e[i] = De(t.charCodeAt(r), t.charCodeAt(r + 1));
815
815
  }
816
816
  }
817
- function cA(e, A) {
818
- if (e.length !== A.length * 2)
817
+ function ct(e, t) {
818
+ if (e.length !== t.length * 2)
819
819
  return !1;
820
- for (let t = 0; t < A.length; t++) {
821
- const i = t << 1;
822
- if (A[t] !== De(e.charCodeAt(i), e.charCodeAt(i + 1)))
820
+ for (let A = 0; A < t.length; A++) {
821
+ const i = A << 1;
822
+ if (t[A] !== De(e.charCodeAt(i), e.charCodeAt(i + 1)))
823
823
  return !1;
824
824
  }
825
825
  return !0;
826
826
  }
827
827
  const ue = 87, we = 48;
828
- function he(e, A, t) {
828
+ function he(e, t, A) {
829
829
  let i = 0;
830
- for (let r = 0; r < t; r++) {
831
- let n = A[r] >>> 4;
832
- e[i++] = n > 9 ? n + ue : n + we, n = A[r] & 15, e[i++] = n > 9 ? n + ue : n + we;
830
+ for (let r = 0; r < A; r++) {
831
+ let n = t[r] >>> 4;
832
+ e[i++] = n > 9 ? n + ue : n + we, n = t[r] & 15, e[i++] = n > 9 ? n + ue : n + we;
833
833
  }
834
834
  return String.fromCharCode.apply(null, e);
835
835
  }
836
836
  const O = Ie !== null ? (e) => {
837
837
  if (typeof e == "string") {
838
- const A = Ie.from(e, "utf8");
839
- return new Uint8Array(A.buffer, A.byteOffset, A.length);
838
+ const t = Ie.from(e, "utf8");
839
+ return new Uint8Array(t.buffer, t.byteOffset, t.length);
840
840
  }
841
841
  if (Ie.isBuffer(e))
842
842
  return new Uint8Array(e.buffer, e.byteOffset, e.length);
@@ -845,61 +845,61 @@ const O = Ie !== null ? (e) => {
845
845
  throw new Error("Invalid data type!");
846
846
  } : (e) => {
847
847
  if (typeof e == "string")
848
- return lA.encode(e);
848
+ return lt.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
- }, M = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", W = new Uint8Array(256);
853
- for (let e = 0; e < M.length; e++)
854
- W[M.charCodeAt(e)] = e;
855
- function Qe(e, A = !0) {
856
- const t = e.length, i = t % 3, r = [], n = t - i;
857
- for (let o = 0; o < n; o += 3) {
858
- const a = (e[o] << 16 & 16711680) + (e[o + 1] << 8 & 65280) + (e[o + 2] & 255), l = M.charAt(a >> 18 & 63) + M.charAt(a >> 12 & 63) + M.charAt(a >> 6 & 63) + M.charAt(a & 63);
859
- r.push(l);
852
+ }, P = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", W = new Uint8Array(256);
853
+ for (let e = 0; e < P.length; e++)
854
+ W[P.charCodeAt(e)] = e;
855
+ function Qe(e, t = !0) {
856
+ const A = e.length, i = A % 3, r = [], n = A - i;
857
+ for (let s = 0; s < n; s += 3) {
858
+ const a = (e[s] << 16 & 16711680) + (e[s + 1] << 8 & 65280) + (e[s + 2] & 255), c = P.charAt(a >> 18 & 63) + P.charAt(a >> 12 & 63) + P.charAt(a >> 6 & 63) + P.charAt(a & 63);
859
+ r.push(c);
860
860
  }
861
861
  if (i === 1) {
862
- const o = e[t - 1], a = M.charAt(o >> 2), l = M.charAt(o << 4 & 63);
863
- r.push(`${a}${l}`), A && r.push("==");
862
+ const s = e[A - 1], a = P.charAt(s >> 2), c = P.charAt(s << 4 & 63);
863
+ r.push(`${a}${c}`), t && r.push("==");
864
864
  } else if (i === 2) {
865
- const o = (e[t - 2] << 8) + e[t - 1], a = M.charAt(o >> 10), l = M.charAt(o >> 4 & 63), s = M.charAt(o << 2 & 63);
866
- r.push(`${a}${l}${s}`), A && r.push("=");
865
+ const s = (e[A - 2] << 8) + e[A - 1], a = P.charAt(s >> 10), c = P.charAt(s >> 4 & 63), o = P.charAt(s << 2 & 63);
866
+ r.push(`${a}${c}${o}`), t && r.push("=");
867
867
  }
868
868
  return r.join("");
869
869
  }
870
- function CA(e) {
871
- let A = Math.floor(e.length * 0.75);
872
- const t = e.length;
873
- return e[t - 1] === "=" && (A -= 1, e[t - 2] === "=" && (A -= 1)), A;
870
+ function Ct(e) {
871
+ let t = Math.floor(e.length * 0.75);
872
+ const A = e.length;
873
+ return e[A - 1] === "=" && (t -= 1, e[A - 2] === "=" && (t -= 1)), t;
874
874
  }
875
- function hA(e) {
876
- const A = CA(e), t = e.length, i = new Uint8Array(A);
875
+ function ht(e) {
876
+ const t = Ct(e), A = e.length, i = new Uint8Array(t);
877
877
  let r = 0;
878
- for (let n = 0; n < t; n += 4) {
879
- const o = W[e.charCodeAt(n)], a = W[e.charCodeAt(n + 1)], l = W[e.charCodeAt(n + 2)], s = W[e.charCodeAt(n + 3)];
880
- i[r] = o << 2 | a >> 4, r += 1, i[r] = (a & 15) << 4 | l >> 2, r += 1, i[r] = (l & 3) << 6 | s & 63, r += 1;
878
+ for (let n = 0; n < A; n += 4) {
879
+ const s = W[e.charCodeAt(n)], a = W[e.charCodeAt(n + 1)], c = W[e.charCodeAt(n + 2)], o = W[e.charCodeAt(n + 3)];
880
+ i[r] = s << 2 | a >> 4, r += 1, i[r] = (a & 15) << 4 | c >> 2, r += 1, i[r] = (c & 3) << 6 | o & 63, r += 1;
881
881
  }
882
882
  return i;
883
883
  }
884
- const _ = 16 * 1024, X = 4, fA = new y(), ae = /* @__PURE__ */ new Map();
885
- function Ue(e, A) {
884
+ const _ = 16 * 1024, X = 4, ft = new k(), ae = /* @__PURE__ */ new Map();
885
+ function Ue(e, t) {
886
886
  return R(this, void 0, void 0, function* () {
887
- let t = null, i = null, r = !1;
887
+ let A = 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 = (I, C = 0) => {
891
- i.set(I, C);
892
- }, o = () => i, a = () => t.exports, l = (I) => {
893
- t.exports.Hash_SetMemorySize(I);
894
- const C = t.exports.Hash_GetBuffer(), S = t.exports.memory.buffer;
895
- i = new Uint8Array(S, C, I);
896
- }, s = () => new DataView(t.exports.memory.buffer).getUint32(t.exports.STATE_SIZE, !0), k = fA.dispatch(() => R(this, void 0, void 0, function* () {
890
+ const n = (g, I = 0) => {
891
+ i.set(g, I);
892
+ }, s = () => i, a = () => A.exports, c = (g) => {
893
+ A.exports.Hash_SetMemorySize(g);
894
+ const I = A.exports.Hash_GetBuffer(), l = A.exports.memory.buffer;
895
+ i = new Uint8Array(l, I, g);
896
+ }, o = () => new DataView(A.exports.memory.buffer).getUint32(A.exports.STATE_SIZE, !0), S = ft.dispatch(() => R(this, void 0, void 0, function* () {
897
897
  if (!ae.has(e.name)) {
898
- const C = hA(e.data), S = WebAssembly.compile(C);
899
- ae.set(e.name, S);
898
+ const I = ht(e.data), l = WebAssembly.compile(I);
899
+ ae.set(e.name, l);
900
900
  }
901
- const I = yield ae.get(e.name);
902
- t = yield WebAssembly.instantiate(I, {
901
+ const g = yield ae.get(e.name);
902
+ A = yield WebAssembly.instantiate(g, {
903
903
  // env: {
904
904
  // emscripten_memcpy_big: (dest, src, num) => {
905
905
  // const memoryBuffer = wasmInstance.exports.memory.buffer;
@@ -913,157 +913,157 @@ function Ue(e, A) {
913
913
  // },
914
914
  // },
915
915
  });
916
- })), w = () => R(this, void 0, void 0, function* () {
917
- t || (yield k);
918
- const I = t.exports.Hash_GetBuffer(), C = t.exports.memory.buffer;
919
- i = new Uint8Array(C, I, _);
920
- }), B = (I = null) => {
921
- r = !0, t.exports.Hash_Init(I);
922
- }, b = (I) => {
923
- let C = 0;
924
- for (; C < I.length; ) {
925
- const S = I.subarray(C, C + _);
926
- C += S.length, i.set(S), t.exports.Hash_Update(S.length);
916
+ })), u = () => R(this, void 0, void 0, function* () {
917
+ A || (yield S);
918
+ const g = A.exports.Hash_GetBuffer(), I = A.exports.memory.buffer;
919
+ i = new Uint8Array(I, g, _);
920
+ }), B = (g = null) => {
921
+ r = !0, A.exports.Hash_Init(g);
922
+ }, G = (g) => {
923
+ let I = 0;
924
+ for (; I < g.length; ) {
925
+ const l = g.subarray(I, I + _);
926
+ I += l.length, i.set(l), A.exports.Hash_Update(l.length);
927
927
  }
928
- }, F = (I) => {
928
+ }, U = (g) => {
929
929
  if (!r)
930
930
  throw new Error("update() called before init()");
931
- const C = O(I);
932
- b(C);
933
- }, Q = new Uint8Array(A * 2), f = (I, C = null) => {
931
+ const I = O(g);
932
+ G(I);
933
+ }, Q = new Uint8Array(t * 2), h = (g, I = null) => {
934
934
  if (!r)
935
935
  throw new Error("digest() called before init()");
936
- return r = !1, t.exports.Hash_Final(C), I === "binary" ? i.slice(0, A) : he(Q, i, A);
937
- }, u = () => {
936
+ return r = !1, A.exports.Hash_Final(I), g === "binary" ? i.slice(0, t) : he(Q, i, t);
937
+ }, f = () => {
938
938
  if (!r)
939
939
  throw new Error("save() can only be called after init() and before digest()");
940
- const I = t.exports.Hash_GetState(), C = s(), S = t.exports.memory.buffer, H = new Uint8Array(S, I, C), c = new Uint8Array(X + C);
941
- return Fe(c, e.hash), c.set(H, X), c;
942
- }, m = (I) => {
943
- if (!(I instanceof Uint8Array))
940
+ const g = A.exports.Hash_GetState(), I = o(), l = A.exports.memory.buffer, w = new Uint8Array(l, g, I), C = new Uint8Array(X + I);
941
+ return Fe(C, e.hash), C.set(w, X), C;
942
+ }, b = (g) => {
943
+ if (!(g instanceof Uint8Array))
944
944
  throw new Error("load() expects an Uint8Array generated by save()");
945
- const C = t.exports.Hash_GetState(), S = s(), H = X + S, c = t.exports.memory.buffer;
946
- if (I.length !== H)
947
- throw new Error(`Bad state length (expected ${H} bytes, got ${I.length})`);
948
- if (!cA(e.hash, I.subarray(0, X)))
945
+ const I = A.exports.Hash_GetState(), l = o(), w = X + l, C = A.exports.memory.buffer;
946
+ if (g.length !== w)
947
+ throw new Error(`Bad state length (expected ${w} bytes, got ${g.length})`);
948
+ if (!ct(e.hash, g.subarray(0, X)))
949
949
  throw new Error("This state was written by an incompatible hash implementation");
950
- const E = I.subarray(X);
951
- new Uint8Array(c, C, S).set(E), r = !0;
952
- }, p = (I) => typeof I == "string" ? I.length < _ / 4 : I.byteLength < _;
953
- let h = p;
950
+ const p = g.subarray(X);
951
+ new Uint8Array(C, I, l).set(p), r = !0;
952
+ }, y = (g) => typeof g == "string" ? g.length < _ / 4 : g.byteLength < _;
953
+ let D = y;
954
954
  switch (e.name) {
955
955
  case "argon2":
956
956
  case "scrypt":
957
- h = () => !0;
957
+ D = () => !0;
958
958
  break;
959
959
  case "blake2b":
960
960
  case "blake2s":
961
- h = (I, C) => C <= 512 && p(I);
961
+ D = (g, I) => I <= 512 && y(g);
962
962
  break;
963
963
  case "blake3":
964
- h = (I, C) => C === 0 && p(I);
964
+ D = (g, I) => I === 0 && y(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
- h = () => !1;
971
+ D = () => !1;
972
972
  break;
973
973
  }
974
- const g = (I, C = null, S = null) => {
975
- if (!h(I, C))
976
- return B(C), F(I), f("hex", S);
977
- const H = O(I);
978
- return i.set(H), t.exports.Hash_Calculate(H.length, C, S), he(Q, i, A);
974
+ const d = (g, I = null, l = null) => {
975
+ if (!D(g, I))
976
+ return B(I), U(g), h("hex", l);
977
+ const w = O(g);
978
+ return i.set(w), A.exports.Hash_Calculate(w.length, I, l), he(Q, i, t);
979
979
  };
980
- return yield w(), {
981
- getMemory: o,
980
+ return yield u(), {
981
+ getMemory: s,
982
982
  writeMemory: n,
983
983
  getExports: a,
984
- setMemorySize: l,
984
+ setMemorySize: c,
985
985
  init: B,
986
- update: F,
987
- digest: f,
988
- save: u,
989
- load: m,
990
- calculate: g,
991
- hashLength: A
986
+ update: U,
987
+ digest: h,
988
+ save: f,
989
+ load: b,
990
+ calculate: d,
991
+ hashLength: t
992
992
  };
993
993
  });
994
994
  }
995
- new y();
996
- var uA = "argon2", wA = "AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkD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", QA = "e4cdc523", BA = {
997
- name: uA,
998
- data: wA,
999
- hash: QA
1000
- }, dA = "blake2b", EA = "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", pA = "c6f286e6", yA = {
1001
- name: dA,
1002
- data: EA,
1003
- hash: pA
995
+ new k();
996
+ var ut = "argon2", wt = "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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", Qt = "e4cdc523", Bt = {
997
+ name: ut,
998
+ data: wt,
999
+ hash: Qt
1000
+ }, dt = "blake2b", Et = "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", pt = "c6f286e6", yt = {
1001
+ name: dt,
1002
+ data: Et,
1003
+ hash: pt
1004
1004
  };
1005
- new y();
1005
+ new k();
1006
1006
  function Be(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 kA(e, A) {
1010
- return e | A << 16;
1009
+ function kt(e, t) {
1010
+ return e | t << 16;
1011
1011
  }
1012
- function fe(e = 512, A = null) {
1012
+ function fe(e = 512, t = null) {
1013
1013
  if (Be(e))
1014
1014
  return Promise.reject(Be(e));
1015
- let t = null, i = e;
1016
- if (A !== null) {
1017
- if (t = O(A), t.length > 64)
1015
+ let A = null, i = e;
1016
+ if (t !== null) {
1017
+ if (A = O(t), A.length > 64)
1018
1018
  return Promise.reject(new Error("Max key length is 64 bytes"));
1019
- i = kA(e, t.length);
1019
+ i = kt(e, A.length);
1020
1020
  }
1021
1021
  const r = e / 8;
1022
- return Ue(yA, r).then((n) => {
1023
- i > 512 && n.writeMemory(t), n.init(i);
1024
- const o = {
1025
- init: i > 512 ? () => (n.writeMemory(t), n.init(i), o) : () => (n.init(i), o),
1026
- update: (a) => (n.update(a), o),
1022
+ return Ue(yt, r).then((n) => {
1023
+ i > 512 && n.writeMemory(A), n.init(i);
1024
+ const s = {
1025
+ init: i > 512 ? () => (n.writeMemory(A), n.init(i), s) : () => (n.init(i), s),
1026
+ update: (a) => (n.update(a), s),
1027
1027
  // biome-ignore lint/suspicious/noExplicitAny: Conflict with IHasher type
1028
1028
  digest: (a) => n.digest(a),
1029
1029
  save: () => n.save(),
1030
- load: (a) => (n.load(a), o),
1030
+ load: (a) => (n.load(a), s),
1031
1031
  blockSize: 128,
1032
1032
  digestSize: r
1033
1033
  };
1034
- return o;
1034
+ return s;
1035
1035
  });
1036
1036
  }
1037
- function SA(e, A, t) {
1037
+ function St(e, t, A) {
1038
1038
  const i = [
1039
- `m=${A.memorySize}`,
1040
- `t=${A.iterations}`,
1041
- `p=${A.parallelism}`
1039
+ `m=${t.memorySize}`,
1040
+ `t=${t.iterations}`,
1041
+ `p=${t.parallelism}`
1042
1042
  ].join(",");
1043
- return `$argon2${A.hashType}$v=19$${i}$${Qe(e, !1)}$${Qe(t, !1)}`;
1043
+ return `$argon2${t.hashType}$v=19$${i}$${Qe(e, !1)}$${Qe(A, !1)}`;
1044
1044
  }
1045
1045
  const de = new DataView(new ArrayBuffer(4));
1046
1046
  function x(e) {
1047
1047
  return de.setInt32(0, e, !0), new Uint8Array(de.buffer);
1048
1048
  }
1049
- function ge(e, A, t) {
1049
+ function ge(e, t, A) {
1050
1050
  return R(this, void 0, void 0, function* () {
1051
- if (t <= 64) {
1052
- const l = yield fe(t * 8);
1053
- return l.update(x(t)), l.update(A), l.digest("binary");
1051
+ if (A <= 64) {
1052
+ const c = yield fe(A * 8);
1053
+ return c.update(x(A)), c.update(t), c.digest("binary");
1054
1054
  }
1055
- const i = Math.ceil(t / 32) - 2, r = new Uint8Array(t);
1056
- e.init(), e.update(x(t)), e.update(A);
1055
+ const i = Math.ceil(A / 32) - 2, r = new Uint8Array(A);
1056
+ e.init(), e.update(x(A)), e.update(t);
1057
1057
  let n = e.digest("binary");
1058
1058
  r.set(n.subarray(0, 32), 0);
1059
- for (let l = 1; l < i; l++)
1060
- e.init(), e.update(n), n = e.digest("binary"), r.set(n.subarray(0, 32), l * 32);
1061
- const o = t - 32 * i;
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 s = A - 32 * i;
1062
1062
  let a;
1063
- return o === 64 ? (a = e, a.init()) : a = yield fe(o * 8), a.update(n), n = a.digest("binary"), r.set(n.subarray(0, o), i * 32), r;
1063
+ return s === 64 ? (a = e, a.init()) : a = yield fe(s * 8), a.update(n), n = a.digest("binary"), r.set(n.subarray(0, s), i * 32), r;
1064
1064
  });
1065
1065
  }
1066
- function DA(e) {
1066
+ function Dt(e) {
1067
1067
  switch (e) {
1068
1068
  case "d":
1069
1069
  return 0;
@@ -1073,35 +1073,35 @@ function DA(e) {
1073
1073
  return 2;
1074
1074
  }
1075
1075
  }
1076
- function FA(e) {
1076
+ function Ft(e) {
1077
1077
  return R(this, void 0, void 0, function* () {
1078
- var A;
1079
- const { parallelism: t, iterations: i, hashLength: r } = e, n = O(e.password), o = O(e.salt), a = 19, l = DA(e.hashType), { memorySize: s } = e, k = O((A = e.secret) !== null && A !== void 0 ? A : ""), [w, B] = yield Promise.all([
1080
- Ue(BA, 1024),
1078
+ var t;
1079
+ const { parallelism: A, iterations: i, hashLength: r } = e, n = O(e.password), s = O(e.salt), a = 19, c = Dt(e.hashType), { memorySize: o } = e, S = O((t = e.secret) !== null && t !== void 0 ? t : ""), [u, B] = yield Promise.all([
1080
+ Ue(Bt, 1024),
1081
1081
  fe(512)
1082
1082
  ]);
1083
- w.setMemorySize(s * 1024 + 1024);
1084
- const b = new Uint8Array(24), F = new DataView(b.buffer);
1085
- F.setInt32(0, t, !0), F.setInt32(4, r, !0), F.setInt32(8, s, !0), F.setInt32(12, i, !0), F.setInt32(16, a, !0), F.setInt32(20, l, !0), w.writeMemory(b, s * 1024), B.init(), B.update(b), B.update(x(n.length)), B.update(n), B.update(x(o.length)), B.update(o), B.update(x(k.length)), B.update(k), B.update(x(0));
1086
- const f = Math.floor(s / (t * 4)) * 4, u = new Uint8Array(72), m = B.digest("binary");
1087
- u.set(m);
1088
- for (let g = 0; g < t; g++) {
1089
- u.set(x(0), 64), u.set(x(g), 68);
1090
- let I = g * f, C = yield ge(B, u, 1024);
1091
- w.writeMemory(C, I * 1024), I += 1, u.set(x(1), 64), C = yield ge(B, u, 1024), w.writeMemory(C, I * 1024);
1083
+ u.setMemorySize(o * 1024 + 1024);
1084
+ const G = new Uint8Array(24), U = new DataView(G.buffer);
1085
+ U.setInt32(0, A, !0), U.setInt32(4, r, !0), U.setInt32(8, o, !0), U.setInt32(12, i, !0), U.setInt32(16, a, !0), U.setInt32(20, c, !0), u.writeMemory(G, o * 1024), B.init(), B.update(G), B.update(x(n.length)), B.update(n), B.update(x(s.length)), B.update(s), B.update(x(S.length)), B.update(S), B.update(x(0));
1086
+ const h = Math.floor(o / (A * 4)) * 4, f = new Uint8Array(72), b = B.digest("binary");
1087
+ f.set(b);
1088
+ for (let d = 0; d < A; d++) {
1089
+ f.set(x(0), 64), f.set(x(d), 68);
1090
+ let g = d * h, I = yield ge(B, f, 1024);
1091
+ u.writeMemory(I, g * 1024), g += 1, f.set(x(1), 64), I = yield ge(B, f, 1024), u.writeMemory(I, g * 1024);
1092
1092
  }
1093
- const p = new Uint8Array(1024);
1094
- Fe(p, w.calculate(new Uint8Array([]), s));
1095
- const h = yield ge(B, p, r);
1093
+ const y = new Uint8Array(1024);
1094
+ Fe(y, u.calculate(new Uint8Array([]), o));
1095
+ const D = yield ge(B, y, r);
1096
1096
  if (e.outputType === "hex") {
1097
- const g = new Uint8Array(r * 2);
1098
- return he(g, h, r);
1097
+ const d = new Uint8Array(r * 2);
1098
+ return he(d, D, r);
1099
1099
  }
1100
- return e.outputType === "encoded" ? SA(o, e, h) : h;
1100
+ return e.outputType === "encoded" ? St(s, e, D) : D;
1101
1101
  });
1102
1102
  }
1103
- const UA = (e) => {
1104
- var A;
1103
+ const Ut = (e) => {
1104
+ var t;
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 UA = (e) => {
1112
1112
  throw new Error("Salt must be specified");
1113
1113
  if (e.salt = O(e.salt), e.salt.length < 8)
1114
1114
  throw new Error("Salt should be at least 8 bytes long");
1115
- if (e.secret = O((A = e.secret) !== null && A !== void 0 ? A : ""), !Number.isInteger(e.iterations) || e.iterations < 1)
1115
+ if (e.secret = O((t = e.secret) !== null && t !== void 0 ? t : ""), !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");
@@ -1127,40 +1127,40 @@ const UA = (e) => {
1127
1127
  };
1128
1128
  function me(e) {
1129
1129
  return R(this, void 0, void 0, function* () {
1130
- return UA(e), FA(Object.assign(Object.assign({}, e), { hashType: "id" }));
1130
+ return Ut(e), Ft(Object.assign(Object.assign({}, e), { hashType: "id" }));
1131
1131
  });
1132
1132
  }
1133
- new y();
1134
- new y();
1135
- new y();
1136
- new y();
1137
- new y();
1138
- new y();
1139
- new y();
1140
- new y();
1141
- new y();
1142
- new y();
1143
- new y();
1144
- new y();
1145
- new y();
1146
- new y();
1147
- new y();
1148
- new y();
1149
- new y();
1150
- new y();
1151
- new y();
1152
- new y();
1153
- const mA = 32;
1154
- async function it(e, A, t = Xe) {
1155
- bA(t);
1133
+ new k();
1134
+ new k();
1135
+ new k();
1136
+ new k();
1137
+ new k();
1138
+ new k();
1139
+ new k();
1140
+ new k();
1141
+ new k();
1142
+ new k();
1143
+ new k();
1144
+ new k();
1145
+ new k();
1146
+ new k();
1147
+ new k();
1148
+ new k();
1149
+ new k();
1150
+ new k();
1151
+ new k();
1152
+ new k();
1153
+ const mt = 32;
1154
+ async function iA(e, t, A = Xe) {
1155
+ bt(A);
1156
1156
  try {
1157
1157
  const i = await me({
1158
1158
  password: e,
1159
- salt: A,
1160
- iterations: t.tCost,
1161
- memorySize: t.mCost,
1162
- parallelism: t.pCost,
1163
- hashLength: mA,
1159
+ salt: t,
1160
+ iterations: A.tCost,
1161
+ memorySize: A.mCost,
1162
+ parallelism: A.pCost,
1163
+ hashLength: mt,
1164
1164
  outputType: "binary"
1165
1165
  });
1166
1166
  return ke(i);
@@ -1168,7 +1168,7 @@ async function it(e, A, t = Xe) {
1168
1168
  throw new Error("Key derivation failed");
1169
1169
  }
1170
1170
  }
1171
- function bA(e) {
1171
+ function bt(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 bA(e) {
1182
1182
  if (e.pCost > 4)
1183
1183
  throw new Error("KDF parallelism too high (maximum 4)");
1184
1184
  }
1185
- async function GA() {
1185
+ async function Gt() {
1186
1186
  try {
1187
1187
  const e = await me({
1188
1188
  password: "test",
@@ -1199,42 +1199,42 @@ async function GA() {
1199
1199
  return !1;
1200
1200
  }
1201
1201
  }
1202
- function KA(e) {
1202
+ function Kt(e) {
1203
1203
  return e === "localhost" || e === "127.0.0.1" || e.endsWith(".localhost");
1204
1204
  }
1205
1205
  function be(e) {
1206
1206
  if (typeof window > "u")
1207
1207
  return;
1208
- const A = window.location.hostname;
1209
- if (!KA(A))
1208
+ const t = window.location.hostname;
1209
+ if (!Kt(t))
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 Ae() {
1214
+ function te() {
1215
1215
  return typeof window < "u" && typeof window.PublicKeyCredential < "u" && typeof navigator.credentials < "u";
1216
1216
  }
1217
- async function HA() {
1218
- if (!Ae())
1217
+ async function Ht() {
1218
+ if (!te())
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 A = await PublicKeyCredential.getClientCapabilities();
1225
- if (A && "prf" in A)
1226
- return A.prf === !0;
1224
+ const t = await PublicKeyCredential.getClientCapabilities();
1225
+ if (t && "prf" in t)
1226
+ return t.prf === !0;
1227
1227
  }
1228
1228
  return !0;
1229
1229
  } catch {
1230
1230
  return !1;
1231
1231
  }
1232
1232
  }
1233
- async function rt(e, A, t, i, r) {
1234
- if (!Ae())
1233
+ async function rA(e, t, A, i, r) {
1234
+ if (!te())
1235
1235
  throw new Error("WebAuthn is not available in this browser");
1236
1236
  be();
1237
- const n = i ?? rA(), o = await navigator.credentials.create({
1237
+ const n = i ?? rt(), s = await navigator.credentials.create({
1238
1238
  publicKey: {
1239
1239
  challenge: crypto.getRandomValues(new Uint8Array(32)),
1240
1240
  rp: {
@@ -1243,8 +1243,8 @@ async function rt(e, A, t, i, r) {
1243
1243
  },
1244
1244
  user: {
1245
1245
  id: T(e),
1246
- name: A,
1247
- displayName: t
1246
+ name: t,
1247
+ displayName: A
1248
1248
  },
1249
1249
  pubKeyCredParams: [
1250
1250
  { type: "public-key", alg: -7 },
@@ -1268,32 +1268,32 @@ async function rt(e, A, t, i, r) {
1268
1268
  }
1269
1269
  }
1270
1270
  });
1271
- if (!o)
1271
+ if (!s)
1272
1272
  throw new Error("Passkey registration was cancelled");
1273
- const a = o.getClientExtensionResults();
1273
+ const a = s.getClientExtensionResults();
1274
1274
  if (!a.prf?.enabled || !a.prf?.results?.first)
1275
1275
  throw new Error(
1276
1276
  "PRF extension is not supported by this authenticator. Please use a device with a compatible platform authenticator."
1277
1277
  );
1278
- const l = a.prf?.results?.first;
1279
- if (!l)
1278
+ const c = a.prf?.results?.first;
1279
+ if (!c)
1280
1280
  throw new Error("PRF extension did not return a result");
1281
- const s = new Uint8Array(l);
1282
- if (s.length !== 32)
1281
+ const o = new Uint8Array(c);
1282
+ if (o.length !== 32)
1283
1283
  throw new Error(
1284
- `Unexpected PRF output length: expected 32 bytes, got ${s.length}. The authenticator may not be compatible.`
1284
+ `Unexpected PRF output length: expected 32 bytes, got ${o.length}. The authenticator may not be compatible.`
1285
1285
  );
1286
1286
  return {
1287
- credentialId: z(new Uint8Array(o.rawId)),
1287
+ credentialId: z(new Uint8Array(s.rawId)),
1288
1288
  prfSalt: z(n),
1289
- prfOutput: s
1289
+ prfOutput: o
1290
1290
  };
1291
1291
  }
1292
- async function nt(e, A) {
1293
- if (!Ae())
1292
+ async function nA(e, t) {
1293
+ if (!te())
1294
1294
  throw new Error("WebAuthn is not available in this browser");
1295
1295
  be();
1296
- const t = sA(e), i = await navigator.credentials.get({
1296
+ const A = st(e), i = await navigator.credentials.get({
1297
1297
  publicKey: {
1298
1298
  challenge: crypto.getRandomValues(new Uint8Array(32)),
1299
1299
  rpId: window.location.hostname,
@@ -1304,7 +1304,7 @@ async function nt(e, A) {
1304
1304
  extensions: {
1305
1305
  prf: {
1306
1306
  eval: {
1307
- first: t
1307
+ first: A
1308
1308
  }
1309
1309
  }
1310
1310
  }
@@ -1315,81 +1315,81 @@ async function nt(e, A) {
1315
1315
  const n = i.getClientExtensionResults().prf?.results?.first;
1316
1316
  if (!n)
1317
1317
  throw new Error("PRF extension did not return a result during authentication");
1318
- const o = new Uint8Array(n);
1319
- if (o.length !== 32)
1318
+ const s = new Uint8Array(n);
1319
+ if (s.length !== 32)
1320
1320
  throw new Error(
1321
- `Unexpected PRF output length: expected 32 bytes, got ${o.length}. The authenticator may not be compatible.`
1321
+ `Unexpected PRF output length: expected 32 bytes, got ${s.length}. The authenticator may not be compatible.`
1322
1322
  );
1323
- return { prfOutput: o };
1324
- }
1325
- async function JA() {
1326
- const [e, A, t, i, r, n, o] = await Promise.all([
1327
- VA(),
1328
- MA(),
1329
- aA(),
1330
- PA(),
1331
- Promise.resolve(Ae()),
1332
- HA(),
1333
- GA()
1323
+ return { prfOutput: s };
1324
+ }
1325
+ async function Jt() {
1326
+ const [e, t, A, i, r, n, s] = await Promise.all([
1327
+ Mt(),
1328
+ Vt(),
1329
+ at(),
1330
+ Pt(),
1331
+ Promise.resolve(te()),
1332
+ Ht(),
1333
+ Gt()
1334
1334
  ]);
1335
1335
  return {
1336
1336
  webCrypto: e,
1337
- aesGcm: A,
1338
- hkdf: t,
1337
+ aesGcm: t,
1338
+ hkdf: A,
1339
1339
  ed25519: i,
1340
1340
  webAuthn: r,
1341
1341
  webAuthnPrf: n,
1342
- argon2: o,
1343
- allSupported: e && A && t && r && n && o
1342
+ argon2: s,
1343
+ allSupported: e && t && A && r && n && s
1344
1344
  };
1345
1345
  }
1346
- async function VA() {
1346
+ async function Mt() {
1347
1347
  try {
1348
1348
  return typeof crypto < "u" && typeof crypto.subtle < "u" && typeof crypto.getRandomValues == "function";
1349
1349
  } catch {
1350
1350
  return !1;
1351
1351
  }
1352
1352
  }
1353
- async function MA() {
1353
+ async function Vt() {
1354
1354
  try {
1355
1355
  const e = await crypto.subtle.generateKey({ name: "AES-GCM", length: 256 }, !1, [
1356
1356
  "encrypt",
1357
1357
  "decrypt"
1358
- ]), A = new Uint8Array([1, 2, 3, 4]), t = crypto.getRandomValues(new Uint8Array(12)), i = await crypto.subtle.encrypt({ name: "AES-GCM", iv: t }, e, A), r = await crypto.subtle.decrypt({ name: "AES-GCM", iv: t }, e, i), n = new Uint8Array(r);
1359
- return n.length === A.length && n.every((o, a) => o === A[a]);
1358
+ ]), t = new Uint8Array([1, 2, 3, 4]), A = crypto.getRandomValues(new Uint8Array(12)), i = await crypto.subtle.encrypt({ name: "AES-GCM", iv: A }, e, t), r = await crypto.subtle.decrypt({ name: "AES-GCM", iv: A }, e, i), n = new Uint8Array(r);
1359
+ return n.length === t.length && n.every((s, a) => s === t[a]);
1360
1360
  } catch {
1361
1361
  return !1;
1362
1362
  }
1363
1363
  }
1364
- async function PA() {
1364
+ async function Pt() {
1365
1365
  try {
1366
1366
  return await crypto.subtle.generateKey("Ed25519", !1, ["sign", "verify"]), !0;
1367
1367
  } catch {
1368
1368
  return !1;
1369
1369
  }
1370
1370
  }
1371
- function ot(e) {
1371
+ function oA(e) {
1372
1372
  if (e.allSupported)
1373
1373
  return null;
1374
- const A = [];
1375
- return e.webCrypto || A.push("Web Crypto API"), e.aesGcm || A.push("AES-GCM encryption"), e.hkdf || A.push("HKDF key derivation"), e.webAuthn || A.push("WebAuthn/Passkeys"), e.webAuthnPrf || A.push("WebAuthn PRF extension (requires platform authenticator)"), e.argon2 || A.push("Argon2 password hashing"), A.length === 0 ? null : `Your browser or device is missing required features: ${A.join(", ")}. Please use a modern browser with a platform authenticator (e.g., Touch ID, Face ID, Windows Hello).`;
1374
+ const t = [];
1375
+ return e.webCrypto || t.push("Web Crypto API"), e.aesGcm || t.push("AES-GCM encryption"), e.hkdf || t.push("HKDF key derivation"), e.webAuthn || t.push("WebAuthn/Passkeys"), e.webAuthnPrf || t.push("WebAuthn PRF extension (requires platform authenticator)"), e.argon2 || t.push("Argon2 password hashing"), t.length === 0 ? null : `Your browser or device is missing required features: ${t.join(", ")}. Please use a modern browser with a platform authenticator (e.g., Touch ID, Face ID, Windows Hello).`;
1376
1376
  }
1377
- function st() {
1378
- const e = typeof navigator < "u" ? navigator.userAgent : "", A = e.match(/Chrome\/(\d+)/);
1379
- if (A) {
1380
- const n = parseInt(A[1], 10);
1377
+ function sA() {
1378
+ const e = typeof navigator < "u" ? navigator.userAgent : "", t = e.match(/Chrome\/(\d+)/);
1379
+ if (t) {
1380
+ const n = parseInt(t[1], 10);
1381
1381
  return {
1382
1382
  browser: "Chrome",
1383
- version: A[1],
1383
+ version: t[1],
1384
1384
  likelySupported: n >= 116
1385
1385
  };
1386
1386
  }
1387
- const t = e.match(/Version\/(\d+)/);
1388
- if (t && e.includes("Safari") && !e.includes("Chrome")) {
1389
- const n = parseInt(t[1], 10);
1387
+ const A = e.match(/Version\/(\d+)/);
1388
+ if (A && e.includes("Safari") && !e.includes("Chrome")) {
1389
+ const n = parseInt(A[1], 10);
1390
1390
  return {
1391
1391
  browser: "Safari",
1392
- version: t[1],
1392
+ version: A[1],
1393
1393
  likelySupported: n >= 17
1394
1394
  };
1395
1395
  }
@@ -1417,12 +1417,12 @@ function st() {
1417
1417
  };
1418
1418
  }
1419
1419
  let $ = null, le = null;
1420
- const NA = 6e4;
1421
- async function YA(e = !1) {
1422
- const A = Date.now(), t = le === null || A - le > NA;
1423
- return !e && !(typeof window > "u") && !t && $ !== null || ($ = await JA(), le = Date.now()), $;
1420
+ const Nt = 6e4;
1421
+ async function Yt(e = !1) {
1422
+ const t = Date.now(), A = le === null || t - le > Nt;
1423
+ return !e && !(typeof window > "u") && !A && $ !== null || ($ = await Jt(), le = Date.now()), $;
1424
1424
  }
1425
- function xA(e) {
1425
+ function xt(e) {
1426
1426
  switch (e.type) {
1427
1427
  case "password":
1428
1428
  return { password: e.password };
@@ -1430,160 +1430,205 @@ function xA(e) {
1430
1430
  return { prfOutput: e.prfOutput };
1431
1431
  }
1432
1432
  }
1433
- function OA() {
1434
- const e = pe(), [A, t] = G(!1), [i, r] = G(null), n = e?.config.serverUrl, o = e?.config.requestTimeout, a = e?.config.retryAttempts, l = e?._internal?.getAccessToken, s = V(() => e ? new Ee({
1433
+ function Ot() {
1434
+ const e = pe(), [t, A] = K(!1), [i, r] = K(null), n = e?.config.serverUrl, s = e?.config.requestTimeout, a = e?.config.retryAttempts, c = e?._internal?.getAccessToken, o = V(() => e ? new Ee({
1435
1435
  baseUrl: n,
1436
- timeoutMs: o,
1436
+ timeoutMs: s,
1437
1437
  retryAttempts: a,
1438
- getAccessToken: l
1439
- }) : null, [e, n, o, a, l]), k = d(async () => {
1440
- if (!s)
1438
+ getAccessToken: c
1439
+ }) : null, [e, n, s, a, c]), S = E(async () => {
1440
+ if (!o)
1441
1441
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1442
- t(!0), r(null);
1442
+ A(!0), r(null);
1443
1443
  try {
1444
- return await s.get("/wallet/status");
1445
- } catch (h) {
1446
- const g = Y(h, "Failed to fetch wallet status");
1447
- throw r(g.message), g;
1444
+ return await o.get("/wallet/status");
1445
+ } catch (I) {
1446
+ const l = J(I, "Failed to fetch wallet status");
1447
+ throw r(l.message), l;
1448
1448
  } finally {
1449
- t(!1);
1449
+ A(!1);
1450
1450
  }
1451
- }, [s]), w = d(async () => {
1452
- if (!s)
1451
+ }, [o]), u = E(async () => {
1452
+ if (!o)
1453
1453
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1454
- t(!0), r(null);
1454
+ A(!0), r(null);
1455
1455
  try {
1456
- return await s.get("/wallet/material");
1457
- } catch (h) {
1458
- const g = Y(h, "Failed to fetch wallet material");
1459
- if (g.code === "NOT_FOUND")
1456
+ return await o.get("/wallet/material");
1457
+ } catch (I) {
1458
+ const l = J(I, "Failed to fetch wallet material");
1459
+ if (l.code === "NOT_FOUND")
1460
1460
  return null;
1461
- throw r(g.message), g;
1461
+ throw r(l.message), l;
1462
1462
  } finally {
1463
- t(!1);
1463
+ A(!1);
1464
1464
  }
1465
- }, [s]), B = d(
1466
- async (h) => {
1467
- if (!s)
1465
+ }, [o]), B = E(
1466
+ async (I) => {
1467
+ if (!o)
1468
1468
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1469
- t(!0), r(null);
1469
+ A(!0), r(null);
1470
1470
  try {
1471
- await s.post("/wallet/enroll", h);
1472
- } catch (g) {
1473
- const I = Y(g, "Failed to enroll wallet");
1474
- throw r(I.message), I;
1471
+ await o.post("/wallet/enroll", I);
1472
+ } catch (l) {
1473
+ const w = J(l, "Failed to enroll wallet");
1474
+ throw r(w.message), w;
1475
1475
  } finally {
1476
- t(!1);
1476
+ A(!1);
1477
1477
  }
1478
1478
  },
1479
- [s]
1480
- ), b = d(
1481
- async (h) => {
1482
- if (!s)
1479
+ [o]
1480
+ ), G = E(
1481
+ async (I) => {
1482
+ if (!o)
1483
1483
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1484
- t(!0), r(null);
1484
+ A(!0), r(null);
1485
1485
  try {
1486
- await s.post("/wallet/recover", h);
1487
- } catch (g) {
1488
- const I = Y(g, "Failed to recover wallet");
1489
- throw r(I.message), I;
1486
+ await o.post("/wallet/recover", I);
1487
+ } catch (l) {
1488
+ const w = J(l, "Failed to recover wallet");
1489
+ throw r(w.message), w;
1490
1490
  } finally {
1491
- t(!1);
1491
+ A(!1);
1492
1492
  }
1493
1493
  },
1494
- [s]
1495
- ), F = d(
1496
- async (h) => {
1497
- if (!s)
1494
+ [o]
1495
+ ), U = E(
1496
+ async (I) => {
1497
+ if (!o)
1498
1498
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1499
- t(!0), r(null);
1499
+ A(!0), r(null);
1500
1500
  try {
1501
- return await s.post("/wallet/sign", h);
1502
- } catch (g) {
1503
- const I = Y(g, "Failed to sign transaction");
1504
- throw r(I.message), I;
1501
+ return await o.post("/wallet/sign", I);
1502
+ } catch (l) {
1503
+ const w = J(l, "Failed to sign transaction");
1504
+ throw r(w.message), w;
1505
1505
  } finally {
1506
- t(!1);
1506
+ A(!1);
1507
1507
  }
1508
1508
  },
1509
- [s]
1510
- ), Q = d(
1511
- async (h) => {
1512
- if (!s)
1509
+ [o]
1510
+ ), Q = E(
1511
+ async (I) => {
1512
+ if (!o)
1513
1513
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1514
- t(!0), r(null);
1514
+ A(!0), r(null);
1515
1515
  try {
1516
- await s.post("/wallet/rotate-user-secret", h);
1517
- } catch (g) {
1518
- const I = Y(g, "Failed to rotate user secret");
1519
- throw r(I.message), I;
1516
+ await o.post("/wallet/rotate-user-secret", I);
1517
+ } catch (l) {
1518
+ const w = J(l, "Failed to rotate user secret");
1519
+ throw r(w.message), w;
1520
1520
  } finally {
1521
- t(!1);
1521
+ A(!1);
1522
1522
  }
1523
1523
  },
1524
- [s]
1525
- ), f = d(
1526
- async (h) => {
1527
- if (!s)
1524
+ [o]
1525
+ ), h = E(
1526
+ async (I) => {
1527
+ if (!o)
1528
1528
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1529
- t(!0), r(null);
1529
+ A(!0), r(null);
1530
1530
  try {
1531
- return await s.post(
1531
+ return await o.post(
1532
1532
  "/wallet/unlock",
1533
- xA(h)
1533
+ xt(I)
1534
1534
  );
1535
- } catch (g) {
1536
- const I = Y(g, "Failed to unlock wallet");
1537
- throw r(I.message), I;
1535
+ } catch (l) {
1536
+ const w = J(l, "Failed to unlock wallet");
1537
+ throw r(w.message), w;
1538
+ } finally {
1539
+ A(!1);
1540
+ }
1541
+ },
1542
+ [o]
1543
+ ), f = E(async () => {
1544
+ if (!o)
1545
+ throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1546
+ A(!0), r(null);
1547
+ try {
1548
+ await o.post("/wallet/lock", {});
1549
+ } catch (I) {
1550
+ const l = J(I, "Failed to lock wallet");
1551
+ throw r(l.message), l;
1552
+ } finally {
1553
+ A(!1);
1554
+ }
1555
+ }, [o]), b = E(
1556
+ async (I) => {
1557
+ if (!o)
1558
+ throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1559
+ A(!0), r(null);
1560
+ try {
1561
+ return await o.post("/wallet/share-b", I);
1562
+ } catch (l) {
1563
+ const w = J(l, "Failed to get Share B for recovery");
1564
+ throw r(w.message), w;
1538
1565
  } finally {
1539
- t(!1);
1566
+ A(!1);
1540
1567
  }
1541
1568
  },
1542
- [s]
1543
- ), u = d(async () => {
1544
- if (!s)
1569
+ [o]
1570
+ ), y = E(
1571
+ async (I) => {
1572
+ if (!o)
1573
+ throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1574
+ A(!0), r(null);
1575
+ try {
1576
+ return await o.post("/wallet/derived", I);
1577
+ } catch (l) {
1578
+ const w = J(l, "Failed to create derived wallet");
1579
+ throw r(w.message), w;
1580
+ } finally {
1581
+ A(!1);
1582
+ }
1583
+ },
1584
+ [o]
1585
+ ), D = E(async () => {
1586
+ if (!o)
1545
1587
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1546
- t(!0), r(null);
1588
+ A(!0), r(null);
1547
1589
  try {
1548
- await s.post("/wallet/lock", {});
1549
- } catch (h) {
1550
- const g = Y(h, "Failed to lock wallet");
1551
- throw r(g.message), g;
1590
+ return await o.get("/wallet/derived");
1591
+ } catch (I) {
1592
+ const l = J(I, "Failed to list wallets");
1593
+ throw r(l.message), l;
1552
1594
  } finally {
1553
- t(!1);
1595
+ A(!1);
1554
1596
  }
1555
- }, [s]), m = d(
1556
- async (h) => {
1557
- if (!s)
1597
+ }, [o]), d = E(
1598
+ async (I) => {
1599
+ if (!o)
1558
1600
  throw new Error("useWalletMaterial must be used within a CedrosLoginProvider");
1559
- t(!0), r(null);
1601
+ A(!0), r(null);
1560
1602
  try {
1561
- return await s.post("/wallet/share-b", h);
1562
- } catch (g) {
1563
- const I = Y(g, "Failed to get Share B for recovery");
1564
- throw r(I.message), I;
1603
+ await o.delete(`/wallet/derived/${I}`);
1604
+ } catch (l) {
1605
+ const w = J(l, "Failed to delete derived wallet");
1606
+ throw r(w.message), w;
1565
1607
  } finally {
1566
- t(!1);
1608
+ A(!1);
1567
1609
  }
1568
1610
  },
1569
- [s]
1570
- ), p = d(() => r(null), []);
1611
+ [o]
1612
+ ), g = E(() => r(null), []);
1571
1613
  return {
1572
- getStatus: k,
1573
- getMaterial: w,
1614
+ getStatus: S,
1615
+ getMaterial: u,
1574
1616
  enroll: B,
1575
- recover: b,
1576
- signTransaction: F,
1617
+ recover: G,
1618
+ signTransaction: U,
1577
1619
  rotateUserSecret: Q,
1578
- unlock: f,
1579
- lock: u,
1580
- getShareBForRecovery: m,
1581
- isLoading: A,
1620
+ unlock: h,
1621
+ lock: f,
1622
+ getShareBForRecovery: b,
1623
+ createDerivedWallet: y,
1624
+ listAllWallets: D,
1625
+ deleteDerivedWallet: d,
1626
+ isLoading: t,
1582
1627
  error: i,
1583
- clearError: p
1628
+ clearError: g
1584
1629
  };
1585
1630
  }
1586
- const vA = {
1631
+ const vt = {
1587
1632
  status: "not_enrolled",
1588
1633
  solanaPubkey: null,
1589
1634
  authMethod: null,
@@ -1597,71 +1642,71 @@ const vA = {
1597
1642
  clearError: () => {
1598
1643
  }
1599
1644
  };
1600
- function TA() {
1601
- const A = pe() !== null, [t, i] = G("loading"), [r, n] = G(null), [o, a] = G(null), [l, s] = G(!1), [k, w] = G(!1), [B, b] = G(null), [F, Q] = G(null), { getStatus: f, isLoading: u } = OA(), m = P(!1);
1602
- N(() => {
1603
- if (!A) return;
1604
- let g = !1;
1645
+ function Tt() {
1646
+ const t = pe() !== null, [A, i] = K("loading"), [r, n] = K(null), [s, a] = K(null), [c, o] = K(!1), [S, u] = K(!1), [B, G] = K(null), [U, Q] = K(null), { getStatus: h, isLoading: f } = Ot(), b = N(!1);
1647
+ Y(() => {
1648
+ if (!t) return;
1649
+ let d = !1;
1605
1650
  return (async () => {
1606
1651
  try {
1607
- const C = await YA();
1608
- if (g) return;
1609
- b(C), C.allSupported || (i("error"), Q(
1652
+ const I = await Yt();
1653
+ if (d) return;
1654
+ G(I), I.allSupported || (i("error"), Q(
1610
1655
  "Your browser or device does not support all required features. Please use a modern browser with a platform authenticator."
1611
1656
  ));
1612
1657
  } catch {
1613
- if (g) return;
1614
- b(null), i("error"), Q("Failed to check crypto capabilities");
1658
+ if (d) return;
1659
+ G(null), i("error"), Q("Failed to check crypto capabilities");
1615
1660
  }
1616
1661
  })(), () => {
1617
- g = !0;
1662
+ d = !0;
1618
1663
  };
1619
- }, [A]);
1620
- const p = d(async () => {
1621
- if (!(!A || !B?.allSupported)) {
1664
+ }, [t]);
1665
+ const y = E(async () => {
1666
+ if (!(!t || !B?.allSupported)) {
1622
1667
  i("loading"), Q(null);
1623
1668
  try {
1624
- const g = await f();
1625
- n(g.solanaPubkey ?? null), a(g.authMethod ?? null), s(g.hasExternalWallet), w(g.unlocked), g.hasExternalWallet ? i("enrolled_unlocked") : g.enrolled ? i(g.unlocked ? "enrolled_unlocked" : "enrolled_locked") : i("not_enrolled");
1626
- } catch (g) {
1627
- i("error"), Q(g instanceof Error ? g.message : "Failed to fetch wallet status");
1669
+ const d = await h();
1670
+ n(d.solanaPubkey ?? null), a(d.authMethod ?? null), o(d.hasExternalWallet), u(d.unlocked), d.hasExternalWallet ? i("enrolled_unlocked") : d.enrolled ? i(d.unlocked ? "enrolled_unlocked" : "enrolled_locked") : i("not_enrolled");
1671
+ } catch (d) {
1672
+ i("error"), Q(d instanceof Error ? d.message : "Failed to fetch wallet status");
1628
1673
  }
1629
1674
  }
1630
- }, [A, B?.allSupported, f]);
1631
- N(() => {
1632
- A && B?.allSupported && !u && !m.current && (m.current = !0, p());
1633
- }, [A, B?.allSupported, u, p]);
1634
- const h = d(() => Q(null), []);
1635
- return A ? {
1636
- status: t,
1675
+ }, [t, B?.allSupported, h]);
1676
+ Y(() => {
1677
+ t && B?.allSupported && !f && !b.current && (b.current = !0, y());
1678
+ }, [t, B?.allSupported, f, y]);
1679
+ const D = E(() => Q(null), []);
1680
+ return t ? {
1681
+ status: A,
1637
1682
  solanaPubkey: r,
1638
- authMethod: o,
1639
- hasExternalWallet: l,
1640
- isUnlocked: k,
1683
+ authMethod: s,
1684
+ hasExternalWallet: c,
1685
+ isUnlocked: S,
1641
1686
  capabilities: B,
1642
1687
  isSupported: B?.allSupported ?? !1,
1643
- error: F,
1644
- refresh: p,
1645
- clearError: h
1646
- } : vA;
1688
+ error: U,
1689
+ refresh: y,
1690
+ clearError: D
1691
+ } : vt;
1647
1692
  }
1648
- const te = "__CEDROS_EMBEDDED_WALLET__";
1649
- function RA(e) {
1650
- typeof window < "u" && (window[te] = e);
1693
+ const Ae = "__CEDROS_EMBEDDED_WALLET__";
1694
+ function Rt(e) {
1695
+ typeof window < "u" && (window[Ae] = e);
1651
1696
  }
1652
1697
  function ce() {
1653
- typeof window < "u" && delete window[te];
1698
+ typeof window < "u" && delete window[Ae];
1654
1699
  }
1655
- function It() {
1656
- return typeof window > "u" ? !1 : window[te]?.available ?? !1;
1700
+ function IA() {
1701
+ return typeof window > "u" ? !1 : window[Ae]?.available ?? !1;
1657
1702
  }
1658
- function at() {
1659
- return typeof window > "u" ? null : window[te] ?? null;
1703
+ function aA() {
1704
+ return typeof window > "u" ? null : window[Ae] ?? null;
1660
1705
  }
1661
- function LA() {
1662
- const { config: e, user: A } = ye(), { status: t, solanaPubkey: i, hasExternalWallet: r } = TA(), n = e.wallet?.exposeAvailability ?? !1, o = e.wallet?.exposePublicKey ?? !1;
1663
- return N(() => {
1664
- if (!n || !A) {
1706
+ function Lt() {
1707
+ const { config: e, user: t } = ye(), { status: A, solanaPubkey: i, hasExternalWallet: r } = Tt(), n = e.wallet?.exposeAvailability ?? !1, s = e.wallet?.exposePublicKey ?? !1;
1708
+ return Y(() => {
1709
+ if (!n || !t) {
1665
1710
  ce();
1666
1711
  return;
1667
1712
  }
@@ -1669,139 +1714,139 @@ function LA() {
1669
1714
  ce();
1670
1715
  return;
1671
1716
  }
1672
- if (t === "loading")
1717
+ if (A === "loading")
1673
1718
  return;
1674
- const a = t === "enrolled_locked" || t === "enrolled_unlocked";
1675
- return RA({
1719
+ const a = A === "enrolled_locked" || A === "enrolled_unlocked";
1720
+ return Rt({
1676
1721
  available: a,
1677
- publicKey: o && a ? i : null
1722
+ publicKey: s && a ? i : null
1678
1723
  }), () => {
1679
1724
  ce();
1680
1725
  };
1681
- }, [n, o, A, t, i, r]), null;
1682
- }
1683
- function gt({ config: e, children: A }) {
1684
- const [t, i] = G(null), [r, n] = G(!1), o = P(e.callbacks);
1685
- o.current = e.callbacks;
1686
- const a = P({
1687
- onLoginSuccess: (...D) => o.current?.onLoginSuccess?.(...D),
1688
- onLoginError: (...D) => o.current?.onLoginError?.(...D),
1689
- onLogout: () => o.current?.onLogout?.(),
1690
- onSessionExpired: () => o.current?.onSessionExpired?.()
1691
- }), l = e.features === "auto", { features: s, isLoading: k } = Ne(
1726
+ }, [n, s, t, A, i, r]), null;
1727
+ }
1728
+ function gA({ config: e, children: t }) {
1729
+ const [A, i] = K(null), [r, n] = K(!1), s = N(e.callbacks);
1730
+ s.current = e.callbacks;
1731
+ const a = N({
1732
+ onLoginSuccess: (...F) => s.current?.onLoginSuccess?.(...F),
1733
+ onLoginError: (...F) => s.current?.onLoginError?.(...F),
1734
+ onLogout: () => s.current?.onLogout?.(),
1735
+ onSessionExpired: () => s.current?.onSessionExpired?.()
1736
+ }), c = e.features === "auto", { features: o, isLoading: S } = Ne(
1692
1737
  e.serverUrl,
1693
- l,
1738
+ c,
1694
1739
  e.requestTimeout
1695
- ), w = V(() => !l || !s ? e : { ...e, features: s }, [e, l, s]), B = V(
1696
- () => JSON.stringify(w.themeOverrides ?? null),
1697
- [w.themeOverrides]
1698
- ), b = V(() => JSON.stringify(w.session ?? null), [w.session]), F = V(() => JSON.stringify(w.features ?? null), [w.features]), Q = V(() => JSON.stringify(w.forms ?? null), [w.forms]), f = V(
1699
- () => w,
1740
+ ), u = V(() => !c || !o ? e : { ...e, features: o }, [e, c, o]), B = V(
1741
+ () => JSON.stringify(u.themeOverrides ?? null),
1742
+ [u.themeOverrides]
1743
+ ), G = V(() => JSON.stringify(u.session ?? null), [u.session]), U = V(() => JSON.stringify(u.features ?? null), [u.features]), Q = V(() => JSON.stringify(u.forms ?? null), [u.forms]), h = V(
1744
+ () => u,
1700
1745
  // eslint-disable-next-line react-hooks/exhaustive-deps -- Using serialized keys for deep comparison; callbacks excluded (see UI-06)
1701
1746
  [
1702
- w.serverUrl,
1703
- w.googleClientId,
1704
- w.requestTimeout,
1705
- w.retryAttempts,
1706
- w.theme,
1747
+ u.serverUrl,
1748
+ u.googleClientId,
1749
+ u.requestTimeout,
1750
+ u.retryAttempts,
1751
+ u.theme,
1707
1752
  B,
1708
- b,
1709
- F,
1753
+ G,
1754
+ U,
1710
1755
  Q
1711
1756
  ]
1712
1757
  );
1713
- Me({
1714
- theme: f.theme,
1715
- themeOverrides: f.themeOverrides
1758
+ Ve({
1759
+ theme: h.theme,
1760
+ themeOverrides: h.themeOverrides
1716
1761
  });
1717
1762
  const {
1718
- user: u,
1719
- authState: m,
1720
- handleLoginSuccess: p,
1721
- logout: h,
1722
- refreshUser: g,
1723
- getAccessToken: I
1763
+ user: f,
1764
+ authState: b,
1765
+ handleLoginSuccess: y,
1766
+ logout: D,
1767
+ refreshUser: d,
1768
+ getAccessToken: g
1724
1769
  } = Le({
1725
- serverUrl: f.serverUrl,
1726
- session: f.session,
1770
+ serverUrl: h.serverUrl,
1771
+ session: h.session,
1727
1772
  callbacks: a.current,
1728
- requestTimeoutMs: f.requestTimeout
1729
- }), C = d(async () => {
1730
- i(null), await h();
1731
- }, [h]), S = d(
1732
- (...D) => {
1733
- i(null), p(...D);
1773
+ requestTimeoutMs: h.requestTimeout
1774
+ }), I = E(async () => {
1775
+ i(null), await D();
1776
+ }, [D]), l = E(
1777
+ (...F) => {
1778
+ i(null), y(...F);
1734
1779
  },
1735
- [p]
1736
- ), H = d(() => n(!0), []), c = d(() => n(!1), []), E = V(
1780
+ [y]
1781
+ ), w = E(() => n(!0), []), C = E(() => n(!1), []), p = V(
1737
1782
  () => ({
1738
- config: f,
1739
- user: u,
1740
- authState: m,
1741
- logout: C,
1742
- refreshUser: g,
1783
+ config: h,
1784
+ user: f,
1785
+ authState: b,
1786
+ logout: I,
1787
+ refreshUser: d,
1743
1788
  _internal: {
1744
- handleLoginSuccess: S,
1745
- getAccessToken: I
1789
+ handleLoginSuccess: l,
1790
+ getAccessToken: g
1746
1791
  }
1747
1792
  }),
1748
- [f, u, m, C, g, S, I]
1749
- ), U = V(
1793
+ [h, f, b, I, d, l, g]
1794
+ ), m = V(
1750
1795
  () => ({
1751
- error: t,
1796
+ error: A,
1752
1797
  isModalOpen: r,
1753
- openModal: H,
1754
- closeModal: c
1798
+ openModal: w,
1799
+ closeModal: C
1755
1800
  }),
1756
- [t, r, H, c]
1757
- ), K = V(
1758
- () => ({ ...E, ...U }),
1759
- [E, U]
1801
+ [A, r, w, C]
1802
+ ), H = V(
1803
+ () => ({ ...p, ...m }),
1804
+ [p, m]
1760
1805
  );
1761
- return l && k ? null : /* @__PURE__ */ ne(He.Provider, { value: E, children: /* @__PURE__ */ ne(Je.Provider, { value: U, children: /* @__PURE__ */ Ke(Ve.Provider, { value: K, children: [
1762
- /* @__PURE__ */ ne(LA, {}),
1763
- A
1806
+ return c && S ? null : /* @__PURE__ */ ne(He.Provider, { value: p, children: /* @__PURE__ */ ne(Je.Provider, { value: m, children: /* @__PURE__ */ Ke(Me.Provider, { value: H, children: [
1807
+ /* @__PURE__ */ ne(Lt, {}),
1808
+ t
1764
1809
  ] }) }) });
1765
1810
  }
1766
- function lt() {
1767
- const { user: e, authState: A, error: t, logout: i, refreshUser: r, openModal: n, closeModal: o } = ye();
1811
+ function lA() {
1812
+ const { user: e, authState: t, error: A, logout: i, refreshUser: r, openModal: n, closeModal: s } = ye();
1768
1813
  return {
1769
1814
  user: e,
1770
- authState: A,
1771
- error: t,
1772
- isAuthenticated: A === "authenticated" && e !== null,
1773
- isLoading: A === "loading",
1815
+ authState: t,
1816
+ error: A,
1817
+ isAuthenticated: t === "authenticated" && e !== null,
1818
+ isLoading: t === "loading",
1774
1819
  logout: i,
1775
1820
  refreshUser: r,
1776
1821
  openLoginModal: n,
1777
- closeLoginModal: o
1822
+ closeLoginModal: s
1778
1823
  };
1779
1824
  }
1780
1825
  export {
1781
- gt as C,
1826
+ gA as C,
1782
1827
  Xe as D,
1783
- zA as a,
1784
- At as b,
1828
+ zt as a,
1829
+ tA as b,
1785
1830
  z as c,
1786
- it as d,
1831
+ iA as d,
1787
1832
  Se as e,
1788
- _A as f,
1789
- $A as g,
1833
+ _t as f,
1834
+ $t as g,
1790
1835
  ze as h,
1791
- ot as i,
1792
- st as j,
1793
- OA as k,
1794
- rA as l,
1795
- nt as m,
1796
- tt as n,
1797
- xA as o,
1798
- sA as p,
1799
- TA as q,
1800
- rt as r,
1801
- It as s,
1836
+ oA as i,
1837
+ sA as j,
1838
+ Ot as k,
1839
+ rt as l,
1840
+ nA as m,
1841
+ AA as n,
1842
+ xt as o,
1843
+ st as p,
1844
+ Tt as q,
1845
+ rA as r,
1846
+ IA as s,
1802
1847
  ke as t,
1803
- lt as u,
1804
- bA as v,
1805
- et as w,
1806
- at as x
1848
+ lA as u,
1849
+ bt as v,
1850
+ eA as w,
1851
+ aA as x
1807
1852
  };