@coinbase/cdp-core 0.0.17 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +24 -21
- package/dist/esm/index103.js +1 -1
- package/dist/esm/index104.js +1 -1
- 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 +138 -124
- 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/index3.js +4 -4
- package/dist/esm/index47.js +1 -1
- package/dist/esm/index48.js +1 -1
- package/dist/esm/index6.js +4 -4
- package/dist/esm/index70.js +2 -17
- package/dist/esm/index71.js +17 -19
- package/dist/esm/index72.js +13 -47
- package/dist/esm/index73.js +23 -2
- package/dist/esm/index74.js +47 -17
- package/dist/esm/index77.js +1 -1
- package/dist/esm/index80.js +79 -10
- package/dist/esm/index81.js +10 -55
- package/dist/esm/index82.js +54 -10
- package/dist/esm/index83.js +11 -2
- package/dist/esm/index84.js +2 -45
- package/dist/esm/index85.js +44 -13
- package/dist/esm/index86.js +13 -78
- package/dist/esm/index91.js +1 -1
- package/dist/esm/index95.js +1 -1
- package/dist/esm/index98.js +1 -1
- package/dist/types/index.d.ts +26 -0
- package/package.json +2 -2
package/dist/esm/index2.js
CHANGED
|
@@ -1,176 +1,190 @@
|
|
|
1
|
-
import { configureCdpApiClient as
|
|
2
|
-
import { AuthManager as
|
|
3
|
-
import { toAuthState as
|
|
4
|
-
import { withAuth as
|
|
5
|
-
import { createExportKeyPair as
|
|
6
|
-
import { decryptWithPrivateKey as
|
|
7
|
-
import { MockAuthManager as
|
|
8
|
-
import { mockUser as
|
|
9
|
-
import { isChainSupportedForCDPSends as
|
|
10
|
-
import { getConfig as
|
|
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
|
|
13
|
-
const
|
|
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
|
|
16
|
+
let r;
|
|
17
17
|
try {
|
|
18
|
-
|
|
18
|
+
r = n().projectId !== e.projectId;
|
|
19
19
|
} catch {
|
|
20
|
-
|
|
20
|
+
r = !0;
|
|
21
21
|
}
|
|
22
|
-
if (
|
|
23
|
-
|
|
22
|
+
if (D(e), n().useMock) {
|
|
23
|
+
m(new K(n().projectId));
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
if (
|
|
27
|
-
debugging:
|
|
28
|
-
basePath:
|
|
29
|
-
}),
|
|
30
|
-
const t = new
|
|
31
|
-
|
|
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
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
53
|
+
if (!await s().isSignedIn())
|
|
89
54
|
throw new Error("User not signed in");
|
|
90
|
-
await
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
signature: (await
|
|
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
|
-
})),
|
|
100
|
-
const
|
|
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
|
|
103
|
-
|
|
104
|
-
|
|
67
|
+
signedTransaction: (await M(
|
|
68
|
+
n().projectId,
|
|
69
|
+
r.userId,
|
|
105
70
|
{
|
|
106
|
-
transaction:
|
|
71
|
+
transaction: i,
|
|
107
72
|
address: e.evmAccount,
|
|
108
73
|
walletSecretId: t
|
|
109
74
|
}
|
|
110
75
|
)).signedTransaction
|
|
111
76
|
};
|
|
112
|
-
}),
|
|
113
|
-
if (!
|
|
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 (
|
|
80
|
+
if (n().useMock)
|
|
116
81
|
return { transactionHash: "0x0" };
|
|
117
|
-
const
|
|
118
|
-
return
|
|
119
|
-
transactionHash: (await
|
|
120
|
-
|
|
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:
|
|
88
|
+
transaction: r,
|
|
124
89
|
address: e.evmAccount,
|
|
125
|
-
walletSecretId:
|
|
90
|
+
walletSecretId: i,
|
|
126
91
|
network: e.network
|
|
127
92
|
}
|
|
128
93
|
)).transactionHash
|
|
129
94
|
}));
|
|
130
|
-
},
|
|
131
|
-
signature: (await
|
|
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
|
-
})),
|
|
137
|
-
signature: (await
|
|
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
|
-
})),
|
|
143
|
-
if (
|
|
107
|
+
})), ue = async (e) => {
|
|
108
|
+
if (n().useMock)
|
|
144
109
|
return {
|
|
145
110
|
privateKey: "mock-private-key"
|
|
146
111
|
};
|
|
147
|
-
const
|
|
148
|
-
return
|
|
149
|
-
const
|
|
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:
|
|
152
|
-
exportEncryptionKey:
|
|
116
|
+
walletSecretId: i,
|
|
117
|
+
exportEncryptionKey: r.publicKeyBase64
|
|
153
118
|
});
|
|
154
119
|
return {
|
|
155
|
-
privateKey: await
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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
|
};
|
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
|
};
|