@coinbase/cdp-core 0.0.18 → 0.0.20

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 (86) hide show
  1. package/README.md +13 -5
  2. package/dist/esm/index.js +24 -21
  3. package/dist/esm/index103.js +1 -1
  4. package/dist/esm/index13.js +9 -3
  5. package/dist/esm/index15.js +8 -8
  6. package/dist/esm/index16.js +2 -2
  7. package/dist/esm/index17.js +158 -39
  8. package/dist/esm/index18.js +47 -16
  9. package/dist/esm/index19.js +152 -4
  10. package/dist/esm/index2.js +138 -124
  11. package/dist/esm/index20.js +56 -5
  12. package/dist/esm/index21.js +39 -158
  13. package/dist/esm/index22.js +16 -47
  14. package/dist/esm/index23.js +4 -152
  15. package/dist/esm/index24.js +5 -56
  16. package/dist/esm/index25.js +12 -8
  17. package/dist/esm/index26.js +11 -17
  18. package/dist/esm/index27.js +8 -45
  19. package/dist/esm/index28.js +17 -13
  20. package/dist/esm/index29.js +40 -50
  21. package/dist/esm/index3.js +4 -4
  22. package/dist/esm/index30.js +13 -6
  23. package/dist/esm/index31.js +54 -20
  24. package/dist/esm/index32.js +6 -11
  25. package/dist/esm/index33.js +21 -3
  26. package/dist/esm/index34.js +3 -3
  27. package/dist/esm/index35.js +3 -34
  28. package/dist/esm/index36.js +32 -10
  29. package/dist/esm/index37.js +12 -4
  30. package/dist/esm/index38.js +4 -28
  31. package/dist/esm/index39.js +28 -6
  32. package/dist/esm/index40.js +6 -24
  33. package/dist/esm/index41.js +24 -16
  34. package/dist/esm/index42.js +16 -54
  35. package/dist/esm/index43.js +53 -22
  36. package/dist/esm/index44.js +23 -11
  37. package/dist/esm/index45.js +10 -26
  38. package/dist/esm/index46.js +26 -41
  39. package/dist/esm/index47.js +41 -54
  40. package/dist/esm/index48.js +54 -126
  41. package/dist/esm/index49.js +126 -11
  42. package/dist/esm/index50.js +9 -101
  43. package/dist/esm/index51.js +104 -6
  44. package/dist/esm/index52.js +7 -3
  45. package/dist/esm/index53.js +3 -15
  46. package/dist/esm/index54.js +14 -42
  47. package/dist/esm/index55.js +38 -74
  48. package/dist/esm/index56.js +79 -2
  49. package/dist/esm/index57.js +2 -2
  50. package/dist/esm/index58.js +2 -13
  51. package/dist/esm/index59.js +2 -2
  52. package/dist/esm/index6.js +4 -4
  53. package/dist/esm/index60.js +1 -1
  54. package/dist/esm/index61.js +1 -1
  55. package/dist/esm/index62.js +2 -2
  56. package/dist/esm/index63.js +2 -2
  57. package/dist/esm/index64.js +1 -1
  58. package/dist/esm/index65.js +1 -1
  59. package/dist/esm/index66.js +3 -3
  60. package/dist/esm/index70.js +1 -1
  61. package/dist/esm/index72.js +4 -4
  62. package/dist/esm/index73.js +104 -2
  63. package/dist/esm/index74.js +75 -17
  64. package/dist/esm/index75.js +80 -20
  65. package/dist/esm/index76.js +2 -80
  66. package/dist/esm/index77.js +17 -100
  67. package/dist/esm/index78.js +18 -31
  68. package/dist/esm/index79.js +32 -6
  69. package/dist/esm/index80.js +6 -78
  70. package/dist/esm/index81.js +10 -55
  71. package/dist/esm/index82.js +54 -10
  72. package/dist/esm/index83.js +11 -2
  73. package/dist/esm/index84.js +2 -45
  74. package/dist/esm/index85.js +44 -13
  75. package/dist/esm/index86.js +13 -9
  76. package/dist/esm/index88.js +12 -20
  77. package/dist/esm/index89.js +35 -9
  78. package/dist/esm/index90.js +41 -19
  79. package/dist/esm/index91.js +20 -93
  80. package/dist/esm/index92.js +9 -20
  81. package/dist/esm/index93.js +16 -114
  82. package/dist/esm/index94.js +92 -11
  83. package/dist/esm/index95.js +20 -35
  84. package/dist/esm/index96.js +117 -41
  85. package/dist/types/index.d.ts +32 -2
  86. package/package.json +3 -3
@@ -1,176 +1,190 @@
1
- import { configureCdpApiClient as w, setAuthManager as h, initiateAuthentication as y, verifyEmailAuthentication as f, createEndUserEvmAccount as I, signEvmHashWithEndUserAccount as l, signEvmTransactionWithEndUserAccount as A, sendEvmTransactionWithEndUserAccount as v, signEvmMessageWithEndUserAccount as E, signEvmTypedDataWithEndUserAccount as k, exportEndUserEvmAccount as M } from "@coinbase/cdp-api-client";
2
- import { AuthManager as S } from "./index6.js";
3
- import { toAuthState as u } from "./index7.js";
4
- import { withAuth as i } from "./index8.js";
5
- import { createExportKeyPair as U } from "./index9.js";
6
- import { decryptWithPrivateKey as C } from "./index10.js";
7
- import { MockAuthManager as T } from "./index11.js";
8
- import { mockUser as d } from "./index12.js";
9
- import { isChainSupportedForCDPSends as j } from "./index13.js";
10
- import { getConfig as r, setCoreAuthManager as g, getCoreAuthManager as n, setConfig as P } from "./index14.js";
1
+ import { configureCdpApiClient as I, setAuthManager as l, initiateAuthentication as v, createEndUserEvmAccount as A, verifyEmailAuthentication as E, verifySmsAuthentication as k, signEvmHashWithEndUserAccount as S, signEvmTransactionWithEndUserAccount as M, sendEvmTransactionWithEndUserAccount as T, signEvmMessageWithEndUserAccount as U, signEvmTypedDataWithEndUserAccount as C, exportEndUserEvmAccount as j } from "@coinbase/cdp-api-client";
2
+ import { AuthManager as P } from "./index6.js";
3
+ import { toAuthState as d } from "./index7.js";
4
+ import { withAuth as o } from "./index8.js";
5
+ import { createExportKeyPair as x } from "./index9.js";
6
+ import { decryptWithPrivateKey as b } from "./index10.js";
7
+ import { MockAuthManager as K } from "./index11.js";
8
+ import { mockUser as g } from "./index12.js";
9
+ import { isChainSupportedForCDPSends as W } from "./index13.js";
10
+ import { getConfig as n, setCoreAuthManager as m, getCoreAuthManager as s, setConfig as D } from "./index14.js";
11
11
  import "viem";
12
- import { serializeTransaction as m } from "./index15.js";
13
- const B = async (e) => {
12
+ import { serializeTransaction as p } from "./index15.js";
13
+ const Q = async (e) => {
14
14
  if (!e.projectId)
15
15
  throw new Error("Project ID is required");
16
- let s;
16
+ let r;
17
17
  try {
18
- s = r().projectId !== e.projectId;
18
+ r = n().projectId !== e.projectId;
19
19
  } catch {
20
- s = !0;
20
+ r = !0;
21
21
  }
22
- if (P(e), r().useMock) {
23
- g(new T(r().projectId));
22
+ if (D(e), n().useMock) {
23
+ m(new K(n().projectId));
24
24
  return;
25
25
  }
26
- if (w({
27
- debugging: r().debugging,
28
- basePath: r().basePath
29
- }), s) {
30
- const t = new S(r().projectId);
31
- g(t), h(t);
26
+ if (I({
27
+ debugging: n().debugging,
28
+ basePath: n().basePath
29
+ }), r) {
30
+ const t = new P(n().projectId);
31
+ m(t), l(t);
32
32
  }
33
- await n().ensureInitialized();
34
- }, V = async (e) => {
35
- if (r().useMock)
36
- return {
37
- message: "Mock sign in initiated",
38
- flowId: "mock-flow-id"
39
- };
40
- if (await n().isSignedIn())
41
- throw new Error("User is already authenticated. Please sign out first.");
42
- const t = await y(r().projectId, {
43
- email: e.email,
44
- type: "email"
45
- });
46
- return {
47
- flowId: t.flowId,
48
- message: t.message
49
- };
50
- }, G = async (e) => {
51
- if (r().useMock)
52
- return await n().setAuthState({
53
- accessToken: "mock-access-token",
54
- expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
55
- user: d
56
- }), {
57
- message: "Mock email OTP verified",
58
- user: d,
59
- isNewUser: !1
60
- };
61
- if (await n().isSignedIn())
62
- throw new Error("User is already authenticated. Please sign out first.");
63
- const t = await f(r().projectId, {
64
- flowId: e.flowId,
65
- otp: e.otp
66
- });
67
- let a = u(t.accessToken, t.validUntil, t.endUser);
68
- if (await n().setAuthState(a), !a.user.evmAccounts || a.user.evmAccounts.length === 0)
69
- try {
70
- const o = await n().getWalletSecretId(), p = await I(r().projectId, a.user.userId, {
71
- walletSecretId: o
72
- });
73
- a = u(t.accessToken, t.validUntil, p), await n().setAuthState(a);
74
- } catch (o) {
75
- throw new Error(`Failed to create EVM account: ${o}`);
76
- }
77
- const c = await n().getUser();
78
- return {
79
- message: t.message,
80
- user: c,
81
- isNewUser: t.isNewEndUser
82
- };
83
- }, J = async () => n().getUser(), L = async () => n().isSignedIn(), Q = async () => {
84
- if (r().useMock) {
85
- await n().signOut();
33
+ await s().ensureInitialized();
34
+ }, R = async (e) => h({
35
+ email: e.email,
36
+ type: "email"
37
+ }), X = async (e) => h({
38
+ phoneNumber: e.phoneNumber,
39
+ type: "sms"
40
+ }), Y = async (e) => w(
41
+ e,
42
+ "Mock email OTP verified",
43
+ (r, t) => E(r, t)
44
+ ), Z = async (e) => w(
45
+ e,
46
+ "Mock SMS OTP verified",
47
+ (r, t) => k(r, t)
48
+ ), _ = async () => s().getUser(), ee = async () => s().isSignedIn(), te = async () => {
49
+ if (n().useMock) {
50
+ await s().signOut();
86
51
  return;
87
52
  }
88
- if (!await n().isSignedIn())
53
+ if (!await s().isSignedIn())
89
54
  throw new Error("User not signed in");
90
- await n().signOut();
91
- }, R = (e) => {
92
- n().addAuthStateChangeCallback(e);
93
- }, X = async (e) => r().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: s, walletSecretId: t }) => ({
94
- signature: (await l(r().projectId, s.userId, {
55
+ await s().signOut();
56
+ }, ne = async () => s().getToken(), re = (e) => {
57
+ s().addAuthStateChangeCallback(e);
58
+ }, se = async (e) => n().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: t }) => ({
59
+ signature: (await S(n().projectId, r.userId, {
95
60
  hash: e.hash,
96
61
  address: e.evmAccount,
97
62
  walletSecretId: t
98
63
  })).signature
99
- })), Y = async (e) => r().useMock ? { signedTransaction: "0x0" } : i(e, n(), async ({ user: s, walletSecretId: t }) => {
100
- const a = m(e.transaction);
64
+ })), ae = async (e) => n().useMock ? { signedTransaction: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: t }) => {
65
+ const i = p(e.transaction);
101
66
  return {
102
- signedTransaction: (await A(
103
- r().projectId,
104
- s.userId,
67
+ signedTransaction: (await M(
68
+ n().projectId,
69
+ r.userId,
105
70
  {
106
- transaction: a,
71
+ transaction: i,
107
72
  address: e.evmAccount,
108
73
  walletSecretId: t
109
74
  }
110
75
  )).signedTransaction
111
76
  };
112
- }), Z = async (e) => {
113
- if (!j(e.network))
77
+ }), ie = async (e) => {
78
+ if (!W(e.network))
114
79
  throw new Error(`Chain ${e.network} is not supported by the CDP Apis`);
115
- if (r().useMock)
80
+ if (n().useMock)
116
81
  return { transactionHash: "0x0" };
117
- const s = m(e.transaction);
118
- return i(e, n(), async ({ user: t, walletSecretId: a }) => ({
119
- transactionHash: (await v(
120
- r().projectId,
82
+ const r = p(e.transaction);
83
+ return o(e, s(), async ({ user: t, walletSecretId: i }) => ({
84
+ transactionHash: (await T(
85
+ n().projectId,
121
86
  t.userId,
122
87
  {
123
- transaction: s,
88
+ transaction: r,
124
89
  address: e.evmAccount,
125
- walletSecretId: a,
90
+ walletSecretId: i,
126
91
  network: e.network
127
92
  }
128
93
  )).transactionHash
129
94
  }));
130
- }, _ = async (e) => r().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: s, walletSecretId: t }) => ({
131
- signature: (await E(r().projectId, s.userId, {
95
+ }, ce = async (e) => n().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: t }) => ({
96
+ signature: (await U(n().projectId, r.userId, {
132
97
  message: e.message,
133
98
  address: e.evmAccount,
134
99
  walletSecretId: t
135
100
  })).signature
136
- })), ee = async (e) => r().useMock ? { signature: "0x0" } : i(e, n(), async ({ user: s, walletSecretId: t }) => ({
137
- signature: (await k(r().projectId, s.userId, {
101
+ })), oe = async (e) => n().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: t }) => ({
102
+ signature: (await C(n().projectId, r.userId, {
138
103
  typedData: e.typedData,
139
104
  address: e.evmAccount,
140
105
  walletSecretId: t
141
106
  })).signature
142
- })), te = async (e) => {
143
- if (r().useMock)
107
+ })), ue = async (e) => {
108
+ if (n().useMock)
144
109
  return {
145
110
  privateKey: "mock-private-key"
146
111
  };
147
- const s = await U();
148
- return i(e, n(), async ({ user: t, walletSecretId: a }) => {
149
- const c = await M(r().projectId, t.userId, {
112
+ const r = await x();
113
+ return o(e, s(), async ({ user: t, walletSecretId: i }) => {
114
+ const a = await j(n().projectId, t.userId, {
150
115
  address: e.evmAccount,
151
- walletSecretId: a,
152
- exportEncryptionKey: s.publicKeyBase64
116
+ walletSecretId: i,
117
+ exportEncryptionKey: r.publicKeyBase64
153
118
  });
154
119
  return {
155
- privateKey: await C(
156
- s.privateKey,
157
- c.encryptedPrivateKey
120
+ privateKey: await b(
121
+ r.privateKey,
122
+ a.encryptedPrivateKey
158
123
  )
159
124
  };
160
125
  });
126
+ }, h = async (e) => {
127
+ if (n().useMock)
128
+ return {
129
+ message: "Mock sign in initiated",
130
+ flowId: "mock-flow-id"
131
+ };
132
+ if (await s().isSignedIn())
133
+ throw new Error("User is already authenticated. Please sign out first.");
134
+ const t = await v(n().projectId, e);
135
+ return {
136
+ flowId: t.flowId,
137
+ message: t.message
138
+ };
139
+ }, w = async (e, r, t) => {
140
+ if (n().useMock)
141
+ return await s().setAuthState({
142
+ accessToken: "mock-access-token",
143
+ expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
144
+ user: g
145
+ }), {
146
+ message: r,
147
+ user: g,
148
+ isNewUser: !1
149
+ };
150
+ if (await s().isSignedIn())
151
+ throw new Error("User is already authenticated. Please sign out first.");
152
+ const a = await t(n().projectId, {
153
+ flowId: e.flowId,
154
+ otp: e.otp
155
+ });
156
+ let c = d(a.accessToken, a.validUntil, a.endUser);
157
+ if (await s().setAuthState(c), !c.user.evmAccounts || c.user.evmAccounts.length === 0)
158
+ try {
159
+ const u = await s().getWalletSecretId(), f = await A(n().projectId, c.user.userId, {
160
+ walletSecretId: u
161
+ });
162
+ c = d(a.accessToken, a.validUntil, f), await s().setAuthState(c);
163
+ } catch (u) {
164
+ throw new Error(`Failed to create EVM account: ${u}`);
165
+ }
166
+ const y = await s().getUser();
167
+ return {
168
+ message: a.message,
169
+ user: y,
170
+ isNewUser: a.isNewEndUser
171
+ };
161
172
  };
162
173
  export {
163
- te as exportEvmAccount,
164
- J as getCurrentUser,
165
- B as initialize,
166
- L as isSignedIn,
167
- R as onAuthStateChange,
168
- Z as sendEvmTransaction,
169
- X as signEvmHash,
170
- _ as signEvmMessage,
171
- Y as signEvmTransaction,
172
- ee as signEvmTypedData,
173
- V as signInWithEmail,
174
- Q as signOut,
175
- G as verifyEmailOTP
174
+ ue as exportEvmAccount,
175
+ ne as getAccessToken,
176
+ _ as getCurrentUser,
177
+ Q as initialize,
178
+ ee as isSignedIn,
179
+ re as onAuthStateChange,
180
+ ie as sendEvmTransaction,
181
+ se as signEvmHash,
182
+ ce as signEvmMessage,
183
+ ae as signEvmTransaction,
184
+ oe as signEvmTypedData,
185
+ R as signInWithEmail,
186
+ X as signInWithSms,
187
+ te as signOut,
188
+ Y as verifyEmailOTP,
189
+ Z as verifySmsOTP
176
190
  };
@@ -1,7 +1,58 @@
1
- const h = async (t) => {
2
- const a = await window.crypto.subtle.digest("SHA-256", t), r = new Uint8Array(a);
3
- return Array.from(r).map((s) => s.toString(16).padStart(2, "0")).join("");
4
- };
1
+ import { chainConfig as a } from "./index81.js";
2
+ import { defineChain as t } from "./index27.js";
3
+ const e = 11155111, r = /* @__PURE__ */ t({
4
+ ...a,
5
+ id: 84532,
6
+ network: "base-sepolia",
7
+ name: "Base Sepolia",
8
+ nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
9
+ rpcUrls: {
10
+ default: {
11
+ http: ["https://sepolia.base.org"]
12
+ }
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: "Basescan",
17
+ url: "https://sepolia.basescan.org",
18
+ apiUrl: "https://api-sepolia.basescan.org/api"
19
+ }
20
+ },
21
+ contracts: {
22
+ ...a.contracts,
23
+ disputeGameFactory: {
24
+ [e]: {
25
+ address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"
26
+ }
27
+ },
28
+ l2OutputOracle: {
29
+ [e]: {
30
+ address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"
31
+ }
32
+ },
33
+ portal: {
34
+ [e]: {
35
+ address: "0x49f53e41452c74589e85ca1677426ba426459e85",
36
+ blockCreated: 4446677
37
+ }
38
+ },
39
+ l1StandardBridge: {
40
+ [e]: {
41
+ address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120",
42
+ blockCreated: 4446677
43
+ }
44
+ },
45
+ multicall3: {
46
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
47
+ blockCreated: 1059647
48
+ }
49
+ },
50
+ testnet: !0,
51
+ sourceId: e
52
+ });
53
+ ({
54
+ ...r
55
+ });
5
56
  export {
6
- h as hash
57
+ r as baseSepolia
7
58
  };
@@ -1,162 +1,43 @@
1
- const H = (m) => (h, n, r) => {
2
- const s = r.subscribe;
3
- return r.subscribe = (c, i, a) => {
4
- let l = c;
5
- if (i) {
6
- const g = a?.equalityFn || Object.is;
7
- let v = c(r.getState());
8
- l = (f) => {
9
- const u = c(f);
10
- if (!g(v, u)) {
11
- const y = v;
12
- i(v = u, y);
13
- }
14
- }, a?.fireImmediately && i(v, v);
15
- }
16
- return s(l);
17
- }, m(h, n, r);
18
- }, R = H;
19
- function F(m, h) {
20
- let n;
21
- try {
22
- n = m();
23
- } catch {
24
- return;
1
+ import { CompactSign as i } from "./index70.js";
2
+ import { JWTInvalid as r } from "./index71.js";
3
+ import { JWTClaimsBuilder as n } from "./index72.js";
4
+ class d {
5
+ #s;
6
+ #t;
7
+ constructor(t = {}) {
8
+ this.#t = new n(t);
25
9
  }
26
- return {
27
- getItem: (s) => {
28
- var e;
29
- const c = (a) => a === null ? null : JSON.parse(a, void 0), i = (e = n.getItem(s)) != null ? e : null;
30
- return i instanceof Promise ? i.then(c) : c(i);
31
- },
32
- setItem: (s, e) => n.setItem(s, JSON.stringify(e, void 0)),
33
- removeItem: (s) => n.removeItem(s)
34
- };
35
- }
36
- const p = (m) => (h) => {
37
- try {
38
- const n = m(h);
39
- return n instanceof Promise ? n : {
40
- then(r) {
41
- return p(r)(n);
42
- },
43
- catch(r) {
44
- return this;
45
- }
46
- };
47
- } catch (n) {
48
- return {
49
- then(r) {
50
- return this;
51
- },
52
- catch(r) {
53
- return p(r)(n);
54
- }
55
- };
10
+ setIssuer(t) {
11
+ return this.#t.iss = t, this;
12
+ }
13
+ setSubject(t) {
14
+ return this.#t.sub = t, this;
15
+ }
16
+ setAudience(t) {
17
+ return this.#t.aud = t, this;
18
+ }
19
+ setJti(t) {
20
+ return this.#t.jti = t, this;
21
+ }
22
+ setNotBefore(t) {
23
+ return this.#t.nbf = t, this;
56
24
  }
57
- }, O = (m, h) => (n, r, s) => {
58
- let e = {
59
- storage: F(() => localStorage),
60
- partialize: (t) => t,
61
- version: 0,
62
- merge: (t, S) => ({
63
- ...S,
64
- ...t
65
- }),
66
- ...h
67
- }, c = !1;
68
- const i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
69
- let l = e.storage;
70
- if (!l)
71
- return m(
72
- (...t) => {
73
- console.warn(
74
- `[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`
75
- ), n(...t);
76
- },
77
- r,
78
- s
79
- );
80
- const g = () => {
81
- const t = e.partialize({ ...r() });
82
- return l.setItem(e.name, {
83
- state: t,
84
- version: e.version
85
- });
86
- }, v = s.setState;
87
- s.setState = (t, S) => {
88
- v(t, S), g();
89
- };
90
- const f = m(
91
- (...t) => {
92
- n(...t), g();
93
- },
94
- r,
95
- s
96
- );
97
- s.getInitialState = () => f;
98
- let u;
99
- const y = () => {
100
- var t, S;
101
- if (!l) return;
102
- c = !1, i.forEach((o) => {
103
- var d;
104
- return o((d = r()) != null ? d : f);
105
- });
106
- const b = ((S = e.onRehydrateStorage) == null ? void 0 : S.call(e, (t = r()) != null ? t : f)) || void 0;
107
- return p(l.getItem.bind(l))(e.name).then((o) => {
108
- if (o)
109
- if (typeof o.version == "number" && o.version !== e.version) {
110
- if (e.migrate) {
111
- const d = e.migrate(
112
- o.state,
113
- o.version
114
- );
115
- return d instanceof Promise ? d.then((I) => [!0, I]) : [!0, d];
116
- }
117
- console.error(
118
- "State loaded from storage couldn't be migrated since no migrate function was provided"
119
- );
120
- } else
121
- return [!1, o.state];
122
- return [!1, void 0];
123
- }).then((o) => {
124
- var d;
125
- const [I, _] = o;
126
- if (u = e.merge(
127
- _,
128
- (d = r()) != null ? d : f
129
- ), n(u, !0), I)
130
- return g();
131
- }).then(() => {
132
- b?.(u, void 0), u = r(), c = !0, a.forEach((o) => o(u));
133
- }).catch((o) => {
134
- b?.(void 0, o);
135
- });
136
- };
137
- return s.persist = {
138
- setOptions: (t) => {
139
- e = {
140
- ...e,
141
- ...t
142
- }, t.storage && (l = t.storage);
143
- },
144
- clearStorage: () => {
145
- l?.removeItem(e.name);
146
- },
147
- getOptions: () => e,
148
- rehydrate: () => y(),
149
- hasHydrated: () => c,
150
- onHydrate: (t) => (i.add(t), () => {
151
- i.delete(t);
152
- }),
153
- onFinishHydration: (t) => (a.add(t), () => {
154
- a.delete(t);
155
- })
156
- }, e.skipHydration || y(), u || f;
157
- }, w = O;
25
+ setExpirationTime(t) {
26
+ return this.#t.exp = t, this;
27
+ }
28
+ setIssuedAt(t) {
29
+ return this.#t.iat = t, this;
30
+ }
31
+ setProtectedHeader(t) {
32
+ return this.#s = t, this;
33
+ }
34
+ async sign(t, e) {
35
+ const s = new i(this.#t.data());
36
+ if (s.setProtectedHeader(this.#s), Array.isArray(this.#s?.crit) && this.#s.crit.includes("b64") && this.#s.b64 === !1)
37
+ throw new r("JWTs MUST NOT use unencoded payload");
38
+ return s.sign(t, e);
39
+ }
40
+ }
158
41
  export {
159
- F as createJSONStorage,
160
- w as persist,
161
- R as subscribeWithSelector
42
+ d as SignJWT
162
43
  };
@@ -1,50 +1,19 @@
1
- class n {
2
- events = {};
3
- /**
4
- * Add an event listener.
5
- *
6
- * @param event - The name of the event to listen for.
7
- * @param listener - The function to call when the event is emitted.
8
- */
9
- on(e, s) {
10
- this.events[e] || (this.events[e] = []), this.events[e].push(s);
11
- }
12
- /**
13
- * Remove an event listener.
14
- *
15
- * @param event - The name of the event to remove the listener from.
16
- * @param listener - The function to remove from the event listeners.
17
- */
18
- removeListener(e, s) {
19
- if (!this.events[e])
20
- return;
21
- const t = this.events[e].indexOf(s);
22
- t > -1 && this.events[e].splice(t, 1);
23
- }
24
- /**
25
- * Emit an event.
26
- *
27
- * @param event - The name of the event to emit.
28
- * @param args - The arguments to pass to the event listeners.
29
- */
30
- emit(e, ...s) {
31
- this.events[e] && this.events[e].forEach((t) => {
32
- try {
33
- t(...s);
34
- } catch (i) {
35
- console.error(`Error in event listener for ${e}:`, i);
36
- }
37
- });
38
- }
39
- /**
40
- * Remove all listeners for an event.
41
- *
42
- * @param event - The name of the event to remove all listeners from. If not provided, removes all listeners for all events.
43
- */
44
- removeAllListeners(e) {
45
- e ? delete this.events[e] : this.events = {};
46
- }
1
+ async function n() {
2
+ const e = await window.crypto.subtle.generateKey(
3
+ {
4
+ name: "ECDSA",
5
+ namedCurve: "P-256"
6
+ // secp256r1
7
+ },
8
+ !1,
9
+ // Do not allow key export.
10
+ ["sign", "verify"]
11
+ // Key usages
12
+ ), r = await window.crypto.subtle.exportKey("spki", e.publicKey), t = new Uint8Array(r), a = btoa(
13
+ Array.from(t).map((i) => String.fromCharCode(i)).join("")
14
+ );
15
+ return { privateKey: e.privateKey, publicKeyBase64: a };
47
16
  }
48
17
  export {
49
- n as EventEmitter
18
+ n as createKeyPair
50
19
  };