@coinbase/cdp-core 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -1
- package/dist/esm/index.js +29 -27
- package/dist/esm/index103.js +1 -1
- package/dist/esm/index15.js +8 -8
- package/dist/esm/index16.js +2 -2
- package/dist/esm/index17.js +39 -158
- package/dist/esm/index18.js +16 -47
- package/dist/esm/index19.js +4 -152
- package/dist/esm/index2.js +154 -87
- package/dist/esm/index20.js +5 -56
- package/dist/esm/index21.js +158 -39
- package/dist/esm/index22.js +47 -16
- package/dist/esm/index23.js +152 -4
- package/dist/esm/index24.js +56 -5
- package/dist/esm/index25.js +8 -12
- package/dist/esm/index26.js +17 -11
- package/dist/esm/index27.js +45 -8
- package/dist/esm/index28.js +13 -17
- package/dist/esm/index29.js +50 -40
- package/dist/esm/index3.js +4 -4
- package/dist/esm/index30.js +6 -13
- package/dist/esm/index31.js +20 -54
- package/dist/esm/index32.js +11 -6
- package/dist/esm/index33.js +3 -21
- package/dist/esm/index34.js +3 -3
- package/dist/esm/index35.js +34 -3
- package/dist/esm/index36.js +10 -32
- package/dist/esm/index37.js +4 -12
- package/dist/esm/index38.js +28 -4
- package/dist/esm/index39.js +6 -28
- package/dist/esm/index40.js +24 -6
- package/dist/esm/index41.js +16 -24
- package/dist/esm/index42.js +54 -16
- package/dist/esm/index43.js +22 -53
- package/dist/esm/index44.js +11 -23
- package/dist/esm/index45.js +26 -10
- package/dist/esm/index46.js +41 -26
- package/dist/esm/index47.js +54 -41
- package/dist/esm/index48.js +126 -54
- package/dist/esm/index49.js +11 -126
- package/dist/esm/index50.js +101 -9
- package/dist/esm/index51.js +6 -104
- package/dist/esm/index52.js +3 -7
- package/dist/esm/index53.js +15 -3
- package/dist/esm/index54.js +42 -14
- package/dist/esm/index55.js +74 -38
- package/dist/esm/index56.js +2 -79
- package/dist/esm/index57.js +2 -2
- package/dist/esm/index58.js +13 -2
- package/dist/esm/index59.js +2 -2
- package/dist/esm/index6.js +4 -4
- package/dist/esm/index60.js +1 -1
- package/dist/esm/index61.js +1 -1
- package/dist/esm/index62.js +2 -2
- package/dist/esm/index63.js +2 -2
- package/dist/esm/index64.js +1 -1
- package/dist/esm/index65.js +1 -1
- package/dist/esm/index66.js +3 -3
- package/dist/esm/index7.js +7 -6
- package/dist/esm/index70.js +1 -1
- package/dist/esm/index72.js +4 -4
- package/dist/esm/index73.js +2 -104
- package/dist/esm/index74.js +17 -75
- package/dist/esm/index75.js +20 -80
- package/dist/esm/index76.js +80 -2
- package/dist/esm/index77.js +100 -17
- package/dist/esm/index78.js +31 -18
- package/dist/esm/index79.js +6 -32
- package/dist/esm/index8.js +10 -8
- package/dist/esm/index80.js +54 -6
- package/dist/esm/index81.js +11 -10
- package/dist/esm/index82.js +2 -55
- package/dist/esm/index83.js +45 -11
- package/dist/esm/index84.js +14 -2
- package/dist/esm/index85.js +9 -44
- package/dist/esm/index86.js +78 -13
- package/dist/esm/index88.js +20 -12
- package/dist/esm/index89.js +9 -35
- package/dist/esm/index90.js +19 -41
- package/dist/esm/index91.js +93 -20
- package/dist/esm/index92.js +20 -9
- package/dist/esm/index93.js +114 -16
- package/dist/esm/index94.js +11 -92
- package/dist/esm/index95.js +35 -20
- package/dist/esm/index96.js +41 -117
- package/dist/types/index.d.ts +33 -0
- package/package.json +3 -3
package/dist/esm/index2.js
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
import { configureCdpApiClient as
|
|
2
|
-
import { AuthManager as
|
|
3
|
-
import { toAuthState as
|
|
1
|
+
import { configureCdpApiClient as A, setAuthManager as v, initiateAuthentication as S, createEndUserEvmAccount as E, createEndUserEvmSmartAccount as g, verifyEmailAuthentication as k, verifySmsAuthentication as U, signEvmHashWithEndUserAccount as M, signEvmTransactionWithEndUserAccount as T, sendEvmTransactionWithEndUserAccount as j, signEvmMessageWithEndUserAccount as O, signEvmTypedDataWithEndUserAccount as P, sendUserOperationWithEndUserAccount as C, getUserOperationWithEndUserAccount as x, exportEndUserEvmAccount as H } from "@coinbase/cdp-api-client";
|
|
2
|
+
import { AuthManager as W } from "./index6.js";
|
|
3
|
+
import { toAuthState as m } from "./index7.js";
|
|
4
4
|
import { withAuth as o } from "./index8.js";
|
|
5
|
-
import { createExportKeyPair as
|
|
6
|
-
import { decryptWithPrivateKey as
|
|
7
|
-
import { MockAuthManager as
|
|
8
|
-
import { mockUser as
|
|
9
|
-
import { isChainSupportedForCDPSends as
|
|
10
|
-
import { getConfig as
|
|
5
|
+
import { createExportKeyPair as b } from "./index9.js";
|
|
6
|
+
import { decryptWithPrivateKey as K } from "./index10.js";
|
|
7
|
+
import { MockAuthManager as D } from "./index11.js";
|
|
8
|
+
import { mockUser as p } from "./index12.js";
|
|
9
|
+
import { isChainSupportedForCDPSends as z } from "./index13.js";
|
|
10
|
+
import { getConfig as t, setCoreAuthManager as h, getCoreAuthManager as s, setConfig as N } from "./index14.js";
|
|
11
11
|
import "viem";
|
|
12
|
-
import { serializeTransaction as
|
|
13
|
-
const
|
|
12
|
+
import { serializeTransaction as w } from "./index15.js";
|
|
13
|
+
const _ = async (e) => {
|
|
14
14
|
if (!e.projectId)
|
|
15
15
|
throw new Error("Project ID is required");
|
|
16
16
|
let r;
|
|
17
17
|
try {
|
|
18
|
-
r =
|
|
18
|
+
r = t().projectId !== e.projectId;
|
|
19
19
|
} catch {
|
|
20
20
|
r = !0;
|
|
21
21
|
}
|
|
22
|
-
if (
|
|
23
|
-
|
|
22
|
+
if (N(e), t().useMock) {
|
|
23
|
+
h(new D(t().projectId));
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
if (
|
|
27
|
-
debugging:
|
|
28
|
-
basePath:
|
|
26
|
+
if (A({
|
|
27
|
+
debugging: t().debugging,
|
|
28
|
+
basePath: t().basePath
|
|
29
29
|
}), r) {
|
|
30
|
-
const
|
|
31
|
-
|
|
30
|
+
const n = new W(t().projectId);
|
|
31
|
+
h(n), v(n);
|
|
32
32
|
}
|
|
33
33
|
await s().ensureInitialized();
|
|
34
|
-
},
|
|
34
|
+
}, ee = async (e) => y({
|
|
35
35
|
email: e.email,
|
|
36
36
|
type: "email"
|
|
37
|
-
}),
|
|
37
|
+
}), te = async (e) => y({
|
|
38
38
|
phoneNumber: e.phoneNumber,
|
|
39
39
|
type: "sms"
|
|
40
|
-
}),
|
|
40
|
+
}), re = async (e) => l(
|
|
41
41
|
e,
|
|
42
42
|
"Mock email OTP verified",
|
|
43
|
-
(r,
|
|
44
|
-
),
|
|
43
|
+
(r, n) => k(r, n)
|
|
44
|
+
), ne = async (e) => l(
|
|
45
45
|
e,
|
|
46
46
|
"Mock SMS OTP verified",
|
|
47
|
-
(r,
|
|
48
|
-
),
|
|
49
|
-
if (
|
|
47
|
+
(r, n) => U(r, n)
|
|
48
|
+
), se = async () => s().getUser(), ae = async () => s().isSignedIn(), ce = async () => {
|
|
49
|
+
if (t().useMock) {
|
|
50
50
|
await s().signOut();
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
if (!await s().isSignedIn())
|
|
54
54
|
throw new Error("User not signed in");
|
|
55
55
|
await s().signOut();
|
|
56
|
-
},
|
|
56
|
+
}, ie = async () => s().getToken(), oe = (e) => {
|
|
57
57
|
s().addAuthStateChangeCallback(e);
|
|
58
|
-
},
|
|
59
|
-
signature: (await
|
|
58
|
+
}, ue = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: n }) => ({
|
|
59
|
+
signature: (await M(t().projectId, r.userId, {
|
|
60
60
|
hash: e.hash,
|
|
61
61
|
address: e.evmAccount,
|
|
62
|
-
walletSecretId:
|
|
62
|
+
walletSecretId: n
|
|
63
63
|
})).signature
|
|
64
|
-
})),
|
|
65
|
-
const i =
|
|
64
|
+
})), de = async (e) => t().useMock ? { signedTransaction: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: n }) => {
|
|
65
|
+
const i = w(e.transaction);
|
|
66
66
|
return {
|
|
67
|
-
signedTransaction: (await
|
|
68
|
-
|
|
67
|
+
signedTransaction: (await T(
|
|
68
|
+
t().projectId,
|
|
69
69
|
r.userId,
|
|
70
70
|
{
|
|
71
71
|
transaction: i,
|
|
72
72
|
address: e.evmAccount,
|
|
73
|
-
walletSecretId:
|
|
73
|
+
walletSecretId: n
|
|
74
74
|
}
|
|
75
75
|
)).signedTransaction
|
|
76
76
|
};
|
|
77
|
-
}),
|
|
78
|
-
if (!
|
|
77
|
+
}), me = async (e) => {
|
|
78
|
+
if (!z(e.network))
|
|
79
79
|
throw new Error(`Chain ${e.network} is not supported by the CDP Apis`);
|
|
80
|
-
if (
|
|
80
|
+
if (t().useMock)
|
|
81
81
|
return { transactionHash: "0x0" };
|
|
82
|
-
const r =
|
|
83
|
-
return o(e, s(), async ({ user:
|
|
84
|
-
transactionHash: (await
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
const r = w(e.transaction);
|
|
83
|
+
return o(e, s(), async ({ user: n, walletSecretId: i }) => ({
|
|
84
|
+
transactionHash: (await j(
|
|
85
|
+
t().projectId,
|
|
86
|
+
n.userId,
|
|
87
87
|
{
|
|
88
88
|
transaction: r,
|
|
89
89
|
address: e.evmAccount,
|
|
@@ -92,99 +92,166 @@ const Q = async (e) => {
|
|
|
92
92
|
}
|
|
93
93
|
)).transactionHash
|
|
94
94
|
}));
|
|
95
|
-
},
|
|
96
|
-
signature: (await
|
|
95
|
+
}, ge = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: n }) => ({
|
|
96
|
+
signature: (await O(t().projectId, r.userId, {
|
|
97
97
|
message: e.message,
|
|
98
98
|
address: e.evmAccount,
|
|
99
|
-
walletSecretId:
|
|
99
|
+
walletSecretId: n
|
|
100
100
|
})).signature
|
|
101
|
-
})),
|
|
102
|
-
signature: (await
|
|
101
|
+
})), pe = async (e) => t().useMock ? { signature: "0x0" } : o(e, s(), async ({ user: r, walletSecretId: n }) => ({
|
|
102
|
+
signature: (await P(t().projectId, r.userId, {
|
|
103
103
|
typedData: e.typedData,
|
|
104
104
|
address: e.evmAccount,
|
|
105
|
-
walletSecretId:
|
|
105
|
+
walletSecretId: n
|
|
106
106
|
})).signature
|
|
107
|
-
})),
|
|
108
|
-
|
|
107
|
+
})), he = async (e) => t().useMock ? {
|
|
108
|
+
userOperationHash: "0x1234567890123456789012345678901234567890123456789012345678901234"
|
|
109
|
+
} : o(e, s(), async ({ user: r, walletSecretId: n }) => ({
|
|
110
|
+
userOperationHash: (await C(
|
|
111
|
+
t().projectId,
|
|
112
|
+
r.userId,
|
|
113
|
+
e.evmSmartAccount,
|
|
114
|
+
{
|
|
115
|
+
network: e.network,
|
|
116
|
+
calls: e.calls.map((a) => ({
|
|
117
|
+
to: a.to,
|
|
118
|
+
value: String(a.value ?? 0n),
|
|
119
|
+
data: a.data ?? "0x"
|
|
120
|
+
})),
|
|
121
|
+
walletSecretId: n,
|
|
122
|
+
useCdpPaymaster: e.useCdpPaymaster ?? !1,
|
|
123
|
+
paymasterUrl: e.paymasterUrl
|
|
124
|
+
}
|
|
125
|
+
)).userOpHash
|
|
126
|
+
})), we = async (e) => t().useMock ? {
|
|
127
|
+
userOpHash: e.userOperationHash,
|
|
128
|
+
network: e.network,
|
|
129
|
+
calls: [
|
|
130
|
+
{
|
|
131
|
+
to: "0x1234567890123456789012345678901234567890",
|
|
132
|
+
value: "0",
|
|
133
|
+
data: "0x"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
status: "complete",
|
|
137
|
+
transactionHash: "0x9876543210987654321098765432109876543210987654321098765432109876",
|
|
138
|
+
receipts: []
|
|
139
|
+
} : o(e, s(), async ({ user: r }) => await x(
|
|
140
|
+
t().projectId,
|
|
141
|
+
r.userId,
|
|
142
|
+
e.evmSmartAccount,
|
|
143
|
+
e.userOperationHash
|
|
144
|
+
)), ye = async (e) => {
|
|
145
|
+
if (t().useMock)
|
|
109
146
|
return {
|
|
110
147
|
privateKey: "mock-private-key"
|
|
111
148
|
};
|
|
112
|
-
const r = await
|
|
113
|
-
return o(e, s(), async ({ user:
|
|
114
|
-
const a = await
|
|
149
|
+
const r = await b();
|
|
150
|
+
return o(e, s(), async ({ user: n, walletSecretId: i }) => {
|
|
151
|
+
const a = await H(t().projectId, n.userId, {
|
|
115
152
|
address: e.evmAccount,
|
|
116
153
|
walletSecretId: i,
|
|
117
154
|
exportEncryptionKey: r.publicKeyBase64
|
|
118
155
|
});
|
|
119
156
|
return {
|
|
120
|
-
privateKey: await
|
|
157
|
+
privateKey: await K(
|
|
121
158
|
r.privateKey,
|
|
122
159
|
a.encryptedPrivateKey
|
|
123
160
|
)
|
|
124
161
|
};
|
|
125
162
|
});
|
|
126
|
-
},
|
|
127
|
-
if (
|
|
163
|
+
}, y = async (e) => {
|
|
164
|
+
if (t().useMock)
|
|
128
165
|
return {
|
|
129
166
|
message: "Mock sign in initiated",
|
|
130
167
|
flowId: "mock-flow-id"
|
|
131
168
|
};
|
|
132
169
|
if (await s().isSignedIn())
|
|
133
170
|
throw new Error("User is already authenticated. Please sign out first.");
|
|
134
|
-
const
|
|
171
|
+
const n = await S(t().projectId, e);
|
|
135
172
|
return {
|
|
136
|
-
flowId:
|
|
137
|
-
message:
|
|
173
|
+
flowId: n.flowId,
|
|
174
|
+
message: n.message
|
|
138
175
|
};
|
|
139
|
-
},
|
|
140
|
-
if (
|
|
176
|
+
}, l = async (e, r, n) => {
|
|
177
|
+
if (t().useMock)
|
|
141
178
|
return await s().setAuthState({
|
|
142
179
|
accessToken: "mock-access-token",
|
|
143
180
|
expiresAt: Date.now() + 1e3 * 60 * 60 * 24,
|
|
144
|
-
user:
|
|
181
|
+
user: p
|
|
145
182
|
}), {
|
|
146
183
|
message: r,
|
|
147
|
-
user:
|
|
184
|
+
user: p,
|
|
148
185
|
isNewUser: !1
|
|
149
186
|
};
|
|
150
187
|
if (await s().isSignedIn())
|
|
151
188
|
throw new Error("User is already authenticated. Please sign out first.");
|
|
152
|
-
const a = await t(
|
|
189
|
+
const a = await n(t().projectId, {
|
|
153
190
|
flowId: e.flowId,
|
|
154
191
|
otp: e.otp
|
|
155
192
|
});
|
|
156
|
-
let c =
|
|
193
|
+
let c = m(a.accessToken, a.validUntil, a.endUser);
|
|
157
194
|
if (await s().setAuthState(c), !c.user.evmAccounts || c.user.evmAccounts.length === 0)
|
|
158
195
|
try {
|
|
159
|
-
const u = await s().getWalletSecretId()
|
|
196
|
+
const u = await s().getWalletSecretId();
|
|
197
|
+
let d = await E(t().projectId, c.user.userId, {
|
|
160
198
|
walletSecretId: u
|
|
161
199
|
});
|
|
162
|
-
|
|
200
|
+
if (t().createAccountOnLogin === "evm-smart") {
|
|
201
|
+
const [I] = d.evmAccounts;
|
|
202
|
+
d = await g(
|
|
203
|
+
t().projectId,
|
|
204
|
+
c.user.userId,
|
|
205
|
+
{
|
|
206
|
+
owner: I,
|
|
207
|
+
enableSpendPermissions: !1
|
|
208
|
+
// Defaulting to false until the feature is ready.
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
c = m(a.accessToken, a.validUntil, d), await s().setAuthState(c);
|
|
163
213
|
} catch (u) {
|
|
164
214
|
throw new Error(`Failed to create EVM account: ${u}`);
|
|
165
215
|
}
|
|
166
|
-
|
|
216
|
+
if (t().createAccountOnLogin === "evm-smart" && (!c.user.evmSmartAccounts || c.user.evmSmartAccounts.length === 0))
|
|
217
|
+
try {
|
|
218
|
+
const [u] = c.user.evmAccounts, d = await g(
|
|
219
|
+
t().projectId,
|
|
220
|
+
c.user.userId,
|
|
221
|
+
{
|
|
222
|
+
owner: u,
|
|
223
|
+
enableSpendPermissions: !1
|
|
224
|
+
// Defaulting to false until the feature is ready.
|
|
225
|
+
}
|
|
226
|
+
);
|
|
227
|
+
c = m(a.accessToken, a.validUntil, d), await s().setAuthState(c);
|
|
228
|
+
} catch (u) {
|
|
229
|
+
throw new Error(`Failed to create EVM Smart Account: ${u}`);
|
|
230
|
+
}
|
|
231
|
+
const f = await s().getUser();
|
|
167
232
|
return {
|
|
168
233
|
message: a.message,
|
|
169
|
-
user:
|
|
234
|
+
user: f,
|
|
170
235
|
isNewUser: a.isNewEndUser
|
|
171
236
|
};
|
|
172
237
|
};
|
|
173
238
|
export {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
239
|
+
ye as exportEvmAccount,
|
|
240
|
+
ie as getAccessToken,
|
|
241
|
+
se as getCurrentUser,
|
|
242
|
+
we as getUserOperation,
|
|
243
|
+
_ as initialize,
|
|
244
|
+
ae as isSignedIn,
|
|
245
|
+
oe as onAuthStateChange,
|
|
246
|
+
me as sendEvmTransaction,
|
|
247
|
+
he as sendUserOperation,
|
|
248
|
+
ue as signEvmHash,
|
|
249
|
+
ge as signEvmMessage,
|
|
250
|
+
de as signEvmTransaction,
|
|
251
|
+
pe as signEvmTypedData,
|
|
252
|
+
ee as signInWithEmail,
|
|
253
|
+
te as signInWithSms,
|
|
254
|
+
ce as signOut,
|
|
255
|
+
re as verifyEmailOTP,
|
|
256
|
+
ne as verifySmsOTP
|
|
190
257
|
};
|
package/dist/esm/index20.js
CHANGED
|
@@ -1,58 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
});
|
|
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
|
+
};
|
|
56
5
|
export {
|
|
57
|
-
|
|
6
|
+
h as hash
|
|
58
7
|
};
|
package/dist/esm/index21.js
CHANGED
|
@@ -1,43 +1,162 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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);
|
|
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;
|
|
39
25
|
}
|
|
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
|
+
};
|
|
40
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
|
+
};
|
|
56
|
+
}
|
|
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;
|
|
41
158
|
export {
|
|
42
|
-
|
|
159
|
+
F as createJSONStorage,
|
|
160
|
+
w as persist,
|
|
161
|
+
R as subscribeWithSelector
|
|
43
162
|
};
|
package/dist/esm/index22.js
CHANGED
|
@@ -1,19 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
+
}
|
|
16
47
|
}
|
|
17
48
|
export {
|
|
18
|
-
n as
|
|
49
|
+
n as EventEmitter
|
|
19
50
|
};
|