@xmtp/browser-sdk 0.0.23 → 1.0.0
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 +2 -1
- package/dist/index.d.ts +93 -72
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/workers/client.js +1 -1
- package/dist/workers/client.js.map +1 -1
- package/dist/workers/utils.js +1 -1
- package/dist/workers/utils.js.map +1 -1
- package/package.json +3 -2
- package/src/Client.ts +55 -64
- package/src/Conversation.ts +6 -0
- package/src/Conversations.ts +28 -64
- package/src/Group.ts +7 -6
- package/src/Preferences.ts +75 -0
- package/src/Utils.ts +6 -5
- package/src/WorkerClient.ts +28 -41
- package/src/WorkerConversation.ts +11 -6
- package/src/WorkerConversations.ts +13 -34
- package/src/WorkerPreferences.ts +58 -0
- package/src/index.ts +6 -1
- package/src/types/clientEvents.ts +24 -15
- package/src/types/utilsEvents.ts +4 -3
- package/src/utils/conversions.ts +8 -7
- package/src/utils/createClient.ts +9 -13
- package/src/utils/signer.ts +10 -5
- package/src/workers/client.ts +47 -38
- package/src/workers/utils.ts +14 -13
package/src/workers/client.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
Consent,
|
|
3
|
-
Conversation,
|
|
4
|
-
Message,
|
|
5
|
-
StreamCloser,
|
|
6
|
-
UserPreference,
|
|
1
|
+
import init, {
|
|
2
|
+
type Consent,
|
|
3
|
+
type Conversation,
|
|
4
|
+
type Message,
|
|
5
|
+
type StreamCloser,
|
|
6
|
+
type UserPreference,
|
|
7
7
|
} from "@xmtp/wasm-bindings";
|
|
8
8
|
import type {
|
|
9
9
|
ClientEventsActions,
|
|
@@ -73,11 +73,14 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
73
73
|
console.log("client worker received event data", event.data);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
// initialize WASM module
|
|
77
|
+
await init();
|
|
78
|
+
|
|
76
79
|
try {
|
|
77
80
|
// init is a special action that initializes the client
|
|
78
81
|
if (action === "init" && !maybeClient) {
|
|
79
82
|
maybeClient = await WorkerClient.create(
|
|
80
|
-
data.
|
|
83
|
+
data.identifier,
|
|
81
84
|
data.encryptionKey,
|
|
82
85
|
data.options,
|
|
83
86
|
);
|
|
@@ -138,16 +141,12 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
138
141
|
break;
|
|
139
142
|
}
|
|
140
143
|
case "addAccountSignatureText": {
|
|
141
|
-
const result = await client.addAccountSignatureText(
|
|
142
|
-
data.newAccountAddress,
|
|
143
|
-
);
|
|
144
|
+
const result = await client.addAccountSignatureText(data.newIdentifier);
|
|
144
145
|
postMessage({ id, action, result });
|
|
145
146
|
break;
|
|
146
147
|
}
|
|
147
148
|
case "removeAccountSignatureText": {
|
|
148
|
-
const result = await client.removeAccountSignatureText(
|
|
149
|
-
data.accountAddress,
|
|
150
|
-
);
|
|
149
|
+
const result = await client.removeAccountSignatureText(data.identifier);
|
|
151
150
|
postMessage({ id, action, result });
|
|
152
151
|
break;
|
|
153
152
|
}
|
|
@@ -163,8 +162,8 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
163
162
|
postMessage({ id, action, result });
|
|
164
163
|
break;
|
|
165
164
|
}
|
|
166
|
-
case "
|
|
167
|
-
await client.
|
|
165
|
+
case "addEcdsaSignature":
|
|
166
|
+
await client.addEcdsaSignature(data.type, data.bytes);
|
|
168
167
|
postMessage({ id, action, result: undefined });
|
|
169
168
|
break;
|
|
170
169
|
case "addScwSignature":
|
|
@@ -190,37 +189,41 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
190
189
|
break;
|
|
191
190
|
}
|
|
192
191
|
case "canMessage": {
|
|
193
|
-
const result = await client.canMessage(data.
|
|
192
|
+
const result = await client.canMessage(data.identifiers);
|
|
194
193
|
postMessage({ id, action, result });
|
|
195
194
|
break;
|
|
196
195
|
}
|
|
197
196
|
case "inboxState": {
|
|
198
|
-
const inboxState = await client.inboxState(
|
|
197
|
+
const inboxState = await client.preferences.inboxState(
|
|
198
|
+
data.refreshFromNetwork,
|
|
199
|
+
);
|
|
199
200
|
const result = toSafeInboxState(inboxState);
|
|
200
201
|
postMessage({ id, action, result });
|
|
201
202
|
break;
|
|
202
203
|
}
|
|
203
204
|
case "getLatestInboxState": {
|
|
204
|
-
const inboxState = await client.getLatestInboxState(
|
|
205
|
+
const inboxState = await client.preferences.getLatestInboxState(
|
|
206
|
+
data.inboxId,
|
|
207
|
+
);
|
|
205
208
|
const result = toSafeInboxState(inboxState);
|
|
206
209
|
postMessage({ id, action, result });
|
|
207
210
|
break;
|
|
208
211
|
}
|
|
209
212
|
case "setConsentStates": {
|
|
210
|
-
await client.setConsentStates(data.records);
|
|
213
|
+
await client.preferences.setConsentStates(data.records);
|
|
211
214
|
postMessage({ id, action, result: undefined });
|
|
212
215
|
break;
|
|
213
216
|
}
|
|
214
217
|
case "getConsentState": {
|
|
215
|
-
const result = await client.getConsentState(
|
|
218
|
+
const result = await client.preferences.getConsentState(
|
|
216
219
|
data.entityType,
|
|
217
220
|
data.entity,
|
|
218
221
|
);
|
|
219
222
|
postMessage({ id, action, result });
|
|
220
223
|
break;
|
|
221
224
|
}
|
|
222
|
-
case "
|
|
223
|
-
const result = await client.
|
|
225
|
+
case "findInboxIdByIdentifier": {
|
|
226
|
+
const result = await client.findInboxIdByIdentifier(data.identifier);
|
|
224
227
|
postMessage({ id, action, result });
|
|
225
228
|
break;
|
|
226
229
|
}
|
|
@@ -326,7 +329,7 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
326
329
|
});
|
|
327
330
|
}
|
|
328
331
|
};
|
|
329
|
-
const streamCloser = client.
|
|
332
|
+
const streamCloser = client.preferences.streamConsent(streamCallback);
|
|
330
333
|
streamClosers.set(data.streamId, streamCloser);
|
|
331
334
|
postMessage({
|
|
332
335
|
id,
|
|
@@ -355,7 +358,7 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
355
358
|
}
|
|
356
359
|
};
|
|
357
360
|
const streamCloser =
|
|
358
|
-
client.
|
|
361
|
+
client.preferences.streamPreferences(streamCallback);
|
|
359
362
|
streamClosers.set(data.streamId, streamCloser);
|
|
360
363
|
postMessage({
|
|
361
364
|
id,
|
|
@@ -388,17 +391,17 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
388
391
|
postMessage({ id, action, result });
|
|
389
392
|
break;
|
|
390
393
|
}
|
|
391
|
-
case "
|
|
392
|
-
const conversation = await client.conversations.
|
|
393
|
-
data.
|
|
394
|
+
case "newGroupWithIdentifiers": {
|
|
395
|
+
const conversation = await client.conversations.newGroupWithIdentifiers(
|
|
396
|
+
data.identifiers,
|
|
394
397
|
data.options,
|
|
395
398
|
);
|
|
396
399
|
const result = await toSafeConversation(conversation);
|
|
397
400
|
postMessage({ id, action, result });
|
|
398
401
|
break;
|
|
399
402
|
}
|
|
400
|
-
case "
|
|
401
|
-
const conversation = await client.conversations.
|
|
403
|
+
case "newGroupWithInboxIds": {
|
|
404
|
+
const conversation = await client.conversations.newGroup(
|
|
402
405
|
data.inboxIds,
|
|
403
406
|
data.options,
|
|
404
407
|
);
|
|
@@ -406,17 +409,17 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
406
409
|
postMessage({ id, action, result });
|
|
407
410
|
break;
|
|
408
411
|
}
|
|
409
|
-
case "
|
|
410
|
-
const conversation = await client.conversations.
|
|
411
|
-
data.
|
|
412
|
+
case "newDmWithIdentifier": {
|
|
413
|
+
const conversation = await client.conversations.newDmWithIdentifier(
|
|
414
|
+
data.identifier,
|
|
412
415
|
data.options,
|
|
413
416
|
);
|
|
414
417
|
const result = await toSafeConversation(conversation);
|
|
415
418
|
postMessage({ id, action, result });
|
|
416
419
|
break;
|
|
417
420
|
}
|
|
418
|
-
case "
|
|
419
|
-
const conversation = await client.conversations.
|
|
421
|
+
case "newDmWithInboxId": {
|
|
422
|
+
const conversation = await client.conversations.newDm(
|
|
420
423
|
data.inboxId,
|
|
421
424
|
data.options,
|
|
422
425
|
);
|
|
@@ -588,25 +591,25 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
588
591
|
}
|
|
589
592
|
case "addGroupMembers": {
|
|
590
593
|
const group = getGroup(data.id);
|
|
591
|
-
await group.
|
|
594
|
+
await group.addMembersByIdentifiers(data.identifiers);
|
|
592
595
|
postMessage({ id, action, result: undefined });
|
|
593
596
|
break;
|
|
594
597
|
}
|
|
595
598
|
case "removeGroupMembers": {
|
|
596
599
|
const group = getGroup(data.id);
|
|
597
|
-
await group.
|
|
600
|
+
await group.removeMembersByIdentifiers(data.identifiers);
|
|
598
601
|
postMessage({ id, action, result: undefined });
|
|
599
602
|
break;
|
|
600
603
|
}
|
|
601
604
|
case "addGroupMembersByInboxId": {
|
|
602
605
|
const group = getGroup(data.id);
|
|
603
|
-
await group.
|
|
606
|
+
await group.addMembers(data.inboxIds);
|
|
604
607
|
postMessage({ id, action, result: undefined });
|
|
605
608
|
break;
|
|
606
609
|
}
|
|
607
610
|
case "removeGroupMembersByInboxId": {
|
|
608
611
|
const group = getGroup(data.id);
|
|
609
|
-
await group.
|
|
612
|
+
await group.removeMembers(data.inboxIds);
|
|
610
613
|
postMessage({ id, action, result: undefined });
|
|
611
614
|
break;
|
|
612
615
|
}
|
|
@@ -697,6 +700,12 @@ self.onmessage = async (event: MessageEvent<ClientEventsClientMessageData>) => {
|
|
|
697
700
|
postMessage({ id, action, result: undefined });
|
|
698
701
|
break;
|
|
699
702
|
}
|
|
703
|
+
case "getGroupPausedForVersion": {
|
|
704
|
+
const group = getGroup(data.id);
|
|
705
|
+
const result = group.pausedForVersion();
|
|
706
|
+
postMessage({ id, action, result });
|
|
707
|
+
break;
|
|
708
|
+
}
|
|
700
709
|
}
|
|
701
710
|
} catch (e) {
|
|
702
711
|
postMessageError({
|
package/src/workers/utils.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import init, {
|
|
2
|
-
generateInboxId
|
|
3
|
-
|
|
2
|
+
generateInboxId,
|
|
3
|
+
getInboxIdForIdentifier as get_inbox_id_for_identifier,
|
|
4
|
+
type Identifier,
|
|
4
5
|
} from "@xmtp/wasm-bindings";
|
|
5
6
|
import { ApiUrls } from "@/constants";
|
|
6
7
|
import type {
|
|
@@ -27,15 +28,12 @@ const postMessageError = (data: UtilsEventsErrorData) => {
|
|
|
27
28
|
self.postMessage(data);
|
|
28
29
|
};
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export const getInboxIdForAddress = async (address: string, env?: XmtpEnv) => {
|
|
36
|
-
await init();
|
|
31
|
+
const getInboxIdForIdentifier = async (
|
|
32
|
+
identifier: Identifier,
|
|
33
|
+
env?: XmtpEnv,
|
|
34
|
+
) => {
|
|
37
35
|
const host = env ? ApiUrls[env] : ApiUrls.dev;
|
|
38
|
-
return
|
|
36
|
+
return get_inbox_id_for_identifier(host, identifier);
|
|
39
37
|
};
|
|
40
38
|
|
|
41
39
|
self.onmessage = async (event: MessageEvent<UtilsEventsClientMessageData>) => {
|
|
@@ -44,20 +42,23 @@ self.onmessage = async (event: MessageEvent<UtilsEventsClientMessageData>) => {
|
|
|
44
42
|
console.log("utils worker received event data", event.data);
|
|
45
43
|
}
|
|
46
44
|
|
|
45
|
+
// initialize WASM module
|
|
46
|
+
await init();
|
|
47
|
+
|
|
47
48
|
try {
|
|
48
49
|
switch (action) {
|
|
49
50
|
case "generateInboxId":
|
|
50
51
|
postMessage({
|
|
51
52
|
id,
|
|
52
53
|
action,
|
|
53
|
-
result:
|
|
54
|
+
result: generateInboxId(data.identifier),
|
|
54
55
|
});
|
|
55
56
|
break;
|
|
56
|
-
case "
|
|
57
|
+
case "getInboxIdForIdentifier":
|
|
57
58
|
postMessage({
|
|
58
59
|
id,
|
|
59
60
|
action,
|
|
60
|
-
result: await
|
|
61
|
+
result: await getInboxIdForIdentifier(data.identifier, data.env),
|
|
61
62
|
});
|
|
62
63
|
break;
|
|
63
64
|
// no default
|