@xmtp/browser-sdk 2.0.3 → 2.0.4
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 +21 -30
- package/dist/index.d.ts +30 -26
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/Client.ts +15 -6
- package/src/ClientWorkerClass.ts +8 -3
- package/src/Conversation.ts +7 -7
- package/src/Conversations.ts +8 -8
- package/src/DecodedMessage.ts +8 -4
- package/src/Preferences.ts +2 -2
- package/src/UtilsWorkerClass.ts +5 -2
- package/src/types/clientEvents.ts +1 -0
package/README.md
CHANGED
|
@@ -4,16 +4,22 @@ This package provides the XMTP client SDK for browsers.
|
|
|
4
4
|
|
|
5
5
|
To keep up with the latest SDK developments, see the [Issues tab](https://github.com/xmtp/xmtp-js/issues) in this repo.
|
|
6
6
|
|
|
7
|
-
To learn more about XMTP and get answers to frequently asked questions, see the [XMTP documentation](https://xmtp.org/docs).
|
|
8
|
-
|
|
9
7
|
> [!CAUTION]
|
|
10
8
|
> This SDK is in beta status and ready for you to build with in production. Software in this status may change based on feedback.
|
|
11
9
|
|
|
10
|
+
## Documentation
|
|
11
|
+
|
|
12
|
+
To learn how to use the XMTP client SDK for browsers and get answers to frequently asked questions, see the [XMTP documentation](https://docs.xmtp.org/).
|
|
13
|
+
|
|
14
|
+
## SDK reference
|
|
15
|
+
|
|
16
|
+
Coming soon
|
|
17
|
+
|
|
12
18
|
## Limitations
|
|
13
19
|
|
|
14
20
|
This SDK uses the [origin private file system](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (OPFS) to persist a SQLite database and the [SyncAccessHandle Pool VFS](https://sqlite.org/wasm/doc/trunk/persistence.md#vfs-opfs-sahpool) to access it. This VFS does not support multiple simultaneous connections.
|
|
15
21
|
|
|
16
|
-
This means that when using this SDK in your
|
|
22
|
+
This means that when using this SDK in your app, you must prevent multiple browser tabs or windows from accessing your app at the same time.
|
|
17
23
|
|
|
18
24
|
### Bundlers
|
|
19
25
|
|
|
@@ -54,26 +60,23 @@ pnpm install @xmtp/browser-sdk
|
|
|
54
60
|
yarn add @xmtp/browser-sdk
|
|
55
61
|
```
|
|
56
62
|
|
|
57
|
-
##
|
|
58
|
-
|
|
59
|
-
Access the XMTP client browser SDK [reference documentation](TBD).
|
|
60
|
-
|
|
61
|
-
## Usage
|
|
62
|
-
|
|
63
|
-
Check out our [official documentation](https://xmtp.org/docs/build/get-started/overview) to get started developing with XMTP.
|
|
63
|
+
## Developing
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
Run `yarn dev` to build the SDK and watch for changes, which will trigger a rebuild.
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
### Useful commands
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
- `yarn build`: Builds the SDK
|
|
70
|
+
- `yarn clean`: Removes `node_modules`, `dist`, and `.turbo` folders
|
|
71
|
+
- `yarn dev`: Builds the SDK and watches for changes, which will trigger a rebuild
|
|
72
|
+
- `yarn test`: Runs all tests
|
|
73
|
+
- `yarn typecheck`: Runs `tsc`
|
|
71
74
|
|
|
72
75
|
## Breaking revisions
|
|
73
76
|
|
|
74
77
|
Because this SDK is in active development, you should expect breaking revisions that might require you to adopt the latest SDK release to enable your app to continue working as expected.
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
Breaking revisions in a Browser SDK release are described on the [Releases page](https://github.com/xmtp/xmtp-js/releases).
|
|
77
80
|
|
|
78
81
|
## Deprecation
|
|
79
82
|
|
|
@@ -84,20 +87,8 @@ Older versions of the SDK will eventually be deprecated, which means:
|
|
|
84
87
|
|
|
85
88
|
The following table provides the deprecation schedule.
|
|
86
89
|
|
|
87
|
-
| Announced
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
+
| Announced | Effective | Minimum Version | Rationale |
|
|
91
|
+
| --------------------------- | ----------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
92
|
+
| No more support for XMTP V2 | May 1, 2025 | >=1.1.4 | In a move toward better security with MLS and the ability to decentralize, we will be shutting down XMTP V2 and moving entirely to XMTP V3. To learn more about V2 deprecation, see [XIP-53: XMTP V2 deprecation plan](https://community.xmtp.org/t/xip-53-xmtp-v2-deprecation-plan/867). To learn how to upgrade, see [@xmtp/browser-sdk v1.1.4](https://github.com/xmtp/xmtp-js/releases/tag/%40xmtp%2Fbrowser-sdk%401.1.4). |
|
|
90
93
|
|
|
91
94
|
Bug reports, feature requests, and PRs are welcome in accordance with these [contribution guidelines](https://github.com/xmtp/xmtp-js/blob/main/CONTRIBUTING.md).
|
|
92
|
-
|
|
93
|
-
## Developing
|
|
94
|
-
|
|
95
|
-
Run `yarn dev` to build the SDK and watch for changes, which will trigger a rebuild.
|
|
96
|
-
|
|
97
|
-
### Useful commands
|
|
98
|
-
|
|
99
|
-
- `yarn build`: Builds the SDK
|
|
100
|
-
- `yarn clean`: Removes `node_modules`, `dist`, and `.turbo` folders
|
|
101
|
-
- `yarn dev`: Builds the SDK and watches for changes, which will trigger a rebuild
|
|
102
|
-
- `yarn test`: Runs all tests
|
|
103
|
-
- `yarn typecheck`: Runs `tsc`
|
package/dist/index.d.ts
CHANGED
|
@@ -1089,9 +1089,9 @@ type MessageDeliveryStatus = "unpublished" | "published" | "failed";
|
|
|
1089
1089
|
* @property {string} senderInboxId - Identifier for the sender's inbox
|
|
1090
1090
|
* @property {bigint} sentAtNs - Timestamp when the message was sent (in nanoseconds)
|
|
1091
1091
|
*/
|
|
1092
|
-
declare class DecodedMessage {
|
|
1092
|
+
declare class DecodedMessage<T = unknown> {
|
|
1093
1093
|
#private;
|
|
1094
|
-
content:
|
|
1094
|
+
content: T | undefined;
|
|
1095
1095
|
contentType: ContentTypeId$1;
|
|
1096
1096
|
conversationId: string;
|
|
1097
1097
|
deliveryStatus: MessageDeliveryStatus;
|
|
@@ -1149,30 +1149,30 @@ declare class Conversation {
|
|
|
1149
1149
|
*/
|
|
1150
1150
|
publishMessages(): Promise<undefined>;
|
|
1151
1151
|
/**
|
|
1152
|
-
*
|
|
1152
|
+
* Prepares a message to be published
|
|
1153
1153
|
*
|
|
1154
1154
|
* @param content - The content to send
|
|
1155
1155
|
* @param contentType - Optional content type of the message content
|
|
1156
1156
|
* @returns Promise that resolves with the message ID
|
|
1157
|
-
* @throws {MissingContentTypeError}
|
|
1157
|
+
* @throws {MissingContentTypeError} if content type is required but not provided
|
|
1158
1158
|
*/
|
|
1159
|
-
sendOptimistic(content:
|
|
1159
|
+
sendOptimistic(content: unknown, contentType?: ContentTypeId$1): Promise<string>;
|
|
1160
1160
|
/**
|
|
1161
|
-
*
|
|
1161
|
+
* Publishes a new message
|
|
1162
1162
|
*
|
|
1163
1163
|
* @param content - The content to send
|
|
1164
1164
|
* @param contentType - Optional content type of the message content
|
|
1165
1165
|
* @returns Promise that resolves with the message ID after it has been sent
|
|
1166
|
-
* @throws {MissingContentTypeError}
|
|
1166
|
+
* @throws {MissingContentTypeError} if content type is required but not provided
|
|
1167
1167
|
*/
|
|
1168
|
-
send(content:
|
|
1168
|
+
send(content: unknown, contentType?: ContentTypeId$1): Promise<string>;
|
|
1169
1169
|
/**
|
|
1170
1170
|
* Lists messages in this conversation
|
|
1171
1171
|
*
|
|
1172
1172
|
* @param options - Optional filtering and pagination options
|
|
1173
1173
|
* @returns Promise that resolves with an array of decoded messages
|
|
1174
1174
|
*/
|
|
1175
|
-
messages(options?: SafeListMessagesOptions): Promise<DecodedMessage[]>;
|
|
1175
|
+
messages(options?: SafeListMessagesOptions): Promise<DecodedMessage<unknown>[]>;
|
|
1176
1176
|
/**
|
|
1177
1177
|
* Gets the consent state for this conversation
|
|
1178
1178
|
*
|
|
@@ -1216,9 +1216,9 @@ declare class Conversation {
|
|
|
1216
1216
|
* Creates a stream for new messages in this conversation
|
|
1217
1217
|
*
|
|
1218
1218
|
* @param callback - Optional callback function for handling new stream values
|
|
1219
|
-
* @returns
|
|
1219
|
+
* @returns Stream instance for new messages
|
|
1220
1220
|
*/
|
|
1221
|
-
stream(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage
|
|
1221
|
+
stream(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage<unknown>>>;
|
|
1222
1222
|
pausedForVersion(): Promise<string | undefined>;
|
|
1223
1223
|
/**
|
|
1224
1224
|
* Retrieves HMAC keys for this conversation
|
|
@@ -1453,7 +1453,7 @@ declare class Conversations {
|
|
|
1453
1453
|
* @param id - The message ID to look up
|
|
1454
1454
|
* @returns Promise that resolves with the decoded message, if found
|
|
1455
1455
|
*/
|
|
1456
|
-
getMessageById(id: string): Promise<DecodedMessage | undefined>;
|
|
1456
|
+
getMessageById<T = unknown>(id: string): Promise<DecodedMessage<T> | undefined>;
|
|
1457
1457
|
/**
|
|
1458
1458
|
* Retrieves a DM by inbox ID
|
|
1459
1459
|
*
|
|
@@ -1525,21 +1525,21 @@ declare class Conversations {
|
|
|
1525
1525
|
*
|
|
1526
1526
|
* @param callback - Optional callback function for handling new stream value
|
|
1527
1527
|
* @param conversationType - Optional type to filter conversations
|
|
1528
|
-
* @returns
|
|
1528
|
+
* @returns Stream instance for new conversations
|
|
1529
1529
|
*/
|
|
1530
1530
|
stream<T extends Group | Dm = Group | Dm>(callback?: StreamCallback<T>, conversationType?: ConversationType): Promise<AsyncStream<T>>;
|
|
1531
1531
|
/**
|
|
1532
1532
|
* Creates a stream for new group conversations
|
|
1533
1533
|
*
|
|
1534
1534
|
* @param callback - Optional callback function for handling new stream value
|
|
1535
|
-
* @returns
|
|
1535
|
+
* @returns Stream instance for new group conversations
|
|
1536
1536
|
*/
|
|
1537
1537
|
streamGroups(callback?: StreamCallback<Group>): Promise<AsyncStream<Group>>;
|
|
1538
1538
|
/**
|
|
1539
1539
|
* Creates a stream for new DM conversations
|
|
1540
1540
|
*
|
|
1541
1541
|
* @param callback - Optional callback function for handling new stream value
|
|
1542
|
-
* @returns
|
|
1542
|
+
* @returns Stream instance for new DM conversations
|
|
1543
1543
|
*/
|
|
1544
1544
|
streamDms(callback?: StreamCallback<Dm>): Promise<AsyncStream<Dm>>;
|
|
1545
1545
|
/**
|
|
@@ -1547,23 +1547,23 @@ declare class Conversations {
|
|
|
1547
1547
|
*
|
|
1548
1548
|
* @param callback - Optional callback function for handling new stream value
|
|
1549
1549
|
* @param conversationType - Optional conversation type to filter messages
|
|
1550
|
-
* @returns
|
|
1550
|
+
* @returns Stream instance for new messages
|
|
1551
1551
|
*/
|
|
1552
|
-
streamAllMessages(callback?: StreamCallback<DecodedMessage>, conversationType?: ConversationType): Promise<AsyncStream<DecodedMessage
|
|
1552
|
+
streamAllMessages(callback?: StreamCallback<DecodedMessage>, conversationType?: ConversationType): Promise<AsyncStream<DecodedMessage<unknown>>>;
|
|
1553
1553
|
/**
|
|
1554
1554
|
* Creates a stream for all new group messages
|
|
1555
1555
|
*
|
|
1556
1556
|
* @param callback - Optional callback function for handling new stream value
|
|
1557
|
-
* @returns
|
|
1557
|
+
* @returns Stream instance for new group messages
|
|
1558
1558
|
*/
|
|
1559
|
-
streamAllGroupMessages(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage
|
|
1559
|
+
streamAllGroupMessages(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage<unknown>>>;
|
|
1560
1560
|
/**
|
|
1561
1561
|
* Creates a stream for all new DM messages
|
|
1562
1562
|
*
|
|
1563
1563
|
* @param callback - Optional callback function for handling new stream value
|
|
1564
|
-
* @returns
|
|
1564
|
+
* @returns Stream instance for new DM messages
|
|
1565
1565
|
*/
|
|
1566
|
-
streamAllDmMessages(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage
|
|
1566
|
+
streamAllDmMessages(callback?: StreamCallback<DecodedMessage>): Promise<AsyncStream<DecodedMessage<unknown>>>;
|
|
1567
1567
|
}
|
|
1568
1568
|
|
|
1569
1569
|
/**
|
|
@@ -1620,14 +1620,14 @@ declare class Preferences {
|
|
|
1620
1620
|
* Creates a stream of consent state updates
|
|
1621
1621
|
*
|
|
1622
1622
|
* @param callback - Optional callback function for handling stream updates
|
|
1623
|
-
* @returns
|
|
1623
|
+
* @returns Stream instance for consent updates
|
|
1624
1624
|
*/
|
|
1625
1625
|
streamConsent(callback?: StreamCallback<SafeConsent[]>): Promise<AsyncStream<SafeConsent[]>>;
|
|
1626
1626
|
/**
|
|
1627
1627
|
* Creates a stream of user preference updates
|
|
1628
1628
|
*
|
|
1629
1629
|
* @param callback - Optional callback function for handling stream updates
|
|
1630
|
-
* @returns
|
|
1630
|
+
* @returns Stream instance for preference updates
|
|
1631
1631
|
*/
|
|
1632
1632
|
streamPreferences(callback?: StreamCallback<UserPreference[]>): Promise<AsyncStream<UserPreference[]>>;
|
|
1633
1633
|
}
|
|
@@ -1694,6 +1694,10 @@ declare class Client extends ClientWorkerClass {
|
|
|
1694
1694
|
* Gets the client options
|
|
1695
1695
|
*/
|
|
1696
1696
|
get options(): ClientOptions | undefined;
|
|
1697
|
+
/**
|
|
1698
|
+
* Gets the signer associated with this client
|
|
1699
|
+
*/
|
|
1700
|
+
get signer(): Signer | undefined;
|
|
1697
1701
|
/**
|
|
1698
1702
|
* Gets whether the client has been initialized
|
|
1699
1703
|
*/
|
|
@@ -1931,7 +1935,7 @@ declare class Client extends ClientWorkerClass {
|
|
|
1931
1935
|
* @param contentType - The content type to get the codec for
|
|
1932
1936
|
* @returns The codec, if found
|
|
1933
1937
|
*/
|
|
1934
|
-
codecFor(contentType: ContentTypeId$1): ContentCodec | undefined;
|
|
1938
|
+
codecFor<T = unknown>(contentType: ContentTypeId$1): ContentCodec<T> | undefined;
|
|
1935
1939
|
/**
|
|
1936
1940
|
* Encodes content for a given content type
|
|
1937
1941
|
*
|
|
@@ -1940,7 +1944,7 @@ declare class Client extends ClientWorkerClass {
|
|
|
1940
1944
|
* @returns The encoded content
|
|
1941
1945
|
* @throws {CodecNotFoundError} if no codec is found for the content type
|
|
1942
1946
|
*/
|
|
1943
|
-
encodeContent(content:
|
|
1947
|
+
encodeContent(content: unknown, contentType: ContentTypeId$1): SafeEncodedContent;
|
|
1944
1948
|
/**
|
|
1945
1949
|
* Decodes a message for a given content type
|
|
1946
1950
|
*
|
|
@@ -1950,7 +1954,7 @@ declare class Client extends ClientWorkerClass {
|
|
|
1950
1954
|
* @throws {CodecNotFoundError} if no codec is found for the content type
|
|
1951
1955
|
* @throws {InvalidGroupMembershipChangeError} if the message is an invalid group membership change
|
|
1952
1956
|
*/
|
|
1953
|
-
decodeContent(message: SafeMessage, contentType: ContentTypeId$1):
|
|
1957
|
+
decodeContent<T = unknown>(message: SafeMessage, contentType: ContentTypeId$1): T;
|
|
1954
1958
|
/**
|
|
1955
1959
|
* Signs a message with the installation key
|
|
1956
1960
|
*
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{GroupUpdatedCodec as e,ContentTypeGroupUpdated as t}from"@xmtp/content-type-group-updated";import{ContentTypeText as s,TextCodec as i}from"@xmtp/content-type-text";import{ContentTypeId as n,EncodedContent as r,ListMessagesOptions as a,ListConversationsOptions as o,PermissionPolicySet as d,CreateGroupOptions as c,CreateDMOptions as l,Consent as u,GroupMember as h,MessageDisappearingSettings as g,GroupPermissionsOptions as p,GroupMessageKind as m,DeliveryStatus as y,SignatureRequestType as I,ConversationType as v}from"@xmtp/wasm-bindings";export{Consent,ConsentEntityType,ConsentState,ContentType,ContentTypeId,ConversationListItem,ConversationType,CreateDMOptions,CreateGroupOptions,DeliveryStatus,EncodedContent,GroupMember,GroupMembershipState,GroupMessageKind,GroupMetadata,GroupPermissions,GroupPermissionsOptions,HmacKey,InboxState,Installation,ListConversationsOptions,ListMessagesOptions,LogOptions,Message,MessageDisappearingSettings,MetadataField,PermissionLevel,PermissionPolicy,PermissionPolicySet,PermissionUpdateType,SignatureRequestType,SortDirection}from"@xmtp/wasm-bindings";import{v4 as w}from"uuid";import{ContentTypeId as M}from"@xmtp/content-type-primitives";const f=e=>{console.error(`Worker error on line ${e.lineno} in "${e.filename}"`),console.error(e.message)};class b{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),this.#e.addEventListener("error",f),this.#t=t}sendMessage(e,t){const s=w();this.#e.postMessage({action:e,id:s,data:t});return new Promise(((e,t)=>{this.#s.set(s,{resolve:e,reject:t})}))}handleMessage=e=>{const t=e.data;this.#t&&console.log("client received event data",t);const s=this.#s.get(t.id);s&&(this.#s.delete(t.id),"error"in t?s.reject(new Error(t.error)):s.resolve(t.result))};handleStreamMessage=(e,t)=>{const s=s=>{const i=s.data;i.streamId===e&&("error"in i?t(new Error(i.error),null):t(null,i.result))};return this.#e.addEventListener("message",s),()=>{this.#e.removeEventListener("message",s)}};close(){this.#e.removeEventListener("message",this.handleMessage),this.#e.removeEventListener("error",f),this.#e.terminate()}}class S{#i=!1;#n;#r;#a;#o;onReturn=void 0;onError=void 0;constructor(){this.#a=[],this.#n=null,this.#r=null,this.#o=null,this.#i=!1}#d(){this.#a=[],this.#n=null,this.#r=null,this.#i=!0}get error(){return this.#o}get isDone(){return this.#i}callback=(e,t)=>{if(e)return this.#o=e,void(this.#r&&(this.#r(e),this.#d(),this.onError?.(e)));this.#i||(this.#n?(this.#n({done:!1,value:t}),this.#n=null):this.#a.push(t))};next=()=>this.#o?(this.#d(),this.onError?.(this.#o),Promise.reject(this.#o)):this.#a.length>0?Promise.resolve({done:!1,value:this.#a.shift()}):this.#i?Promise.resolve({done:!0,value:void 0}):new Promise(((e,t)=>{this.#n=e,this.#r=t}));return=e=>(this.#d(),this.onReturn?.(),Promise.resolve({done:!0,value:e}));[Symbol.asyncIterator](){return this}}const x=e=>new M({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),A=e=>new n(e.authorityId,e.typeId,e.versionMajor,e.versionMinor),k=e=>({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),P=e=>new M({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),G=e=>({type:x(e.type),parameters:Object.fromEntries(e.parameters),fallback:e.fallback,compression:e.compression,content:e.content}),D=e=>new r(A(e.type),new Map(Object.entries(e.parameters)),e.fallback,e.compression,e.content),N=e=>({type:k(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),T=e=>({type:P(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),C=e=>({content:N(G(e.content)),convoId:e.convoId,deliveryStatus:e.deliveryStatus,id:e.id,kind:e.kind,senderInboxId:e.senderInboxId,sentAtNs:e.sentAtNs}),B=e=>({contentTypes:e.contentTypes,deliveryStatus:e.deliveryStatus,direction:e.direction,limit:e.limit,sentAfterNs:e.sentAfterNs,sentBeforeNs:e.sentBeforeNs}),R=e=>new a(e.sentBeforeNs,e.sentAfterNs,e.limit,e.deliveryStatus,e.direction,e.contentTypes),E=e=>({consentStates:e.consentStates,createdAfterNs:e.createdAfterNs,createdBeforeNs:e.createdBeforeNs,includeDuplicateDms:e.includeDuplicateDms,limit:e.limit}),L=e=>new o(e.consentStates,e.createdAfterNs,e.createdBeforeNs,e.includeDuplicateDms??!1,e.limit),_=e=>({addAdminPolicy:e.addAdminPolicy,addMemberPolicy:e.addMemberPolicy,removeAdminPolicy:e.removeAdminPolicy,removeMemberPolicy:e.removeMemberPolicy,updateGroupDescriptionPolicy:e.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:e.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:e.updateGroupNamePolicy,updateMessageDisappearingPolicy:e.updateMessageDisappearingPolicy}),U=e=>new d(e.addMemberPolicy,e.removeMemberPolicy,e.addAdminPolicy,e.removeAdminPolicy,e.updateGroupNamePolicy,e.updateGroupDescriptionPolicy,e.updateGroupImageUrlSquarePolicy,e.updateMessageDisappearingPolicy),W=e=>({customPermissionPolicySet:e.customPermissionPolicySet,description:e.groupDescription,imageUrlSquare:e.groupImageUrlSquare,messageDisappearingSettings:e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0,name:e.groupName,permissions:e.permissions}),j=e=>new c(e.permissions,e.name,e.imageUrlSquare,e.description,e.customPermissionPolicySet&&e.permissions===p.CustomPolicy?U(e.customPermissionPolicySet):void 0,e.messageDisappearingSettings?Y(e.messageDisappearingSettings):void 0),F=e=>({messageDisappearingSettings:e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0}),q=e=>new l(e.messageDisappearingSettings?Y(e.messageDisappearingSettings):void 0),O=async e=>{const t=e.id,s=e.name,i=e.imageUrl,n=e.description,r=e.permissions,a=e.isActive,o=e.addedByInboxId,d=await e.metadata(),c=e.admins,l=e.superAdmins,u=e.createdAtNs,h=r.policyType,g=r.policySet;return{id:t,name:s,imageUrl:i,description:n,permissions:{policyType:h,policySet:{addAdminPolicy:g.addAdminPolicy,addMemberPolicy:g.addMemberPolicy,removeAdminPolicy:g.removeAdminPolicy,removeMemberPolicy:g.removeMemberPolicy,updateGroupDescriptionPolicy:g.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:g.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:g.updateGroupNamePolicy,updateMessageDisappearingPolicy:g.updateMessageDisappearingPolicy}},isActive:a,addedByInboxId:o,metadata:d,admins:c,superAdmins:l,createdAtNs:u}},K=e=>({bytes:e.bytes,clientTimestampNs:e.clientTimestampNs,id:e.id}),$=e=>({accountIdentifiers:e.accountIdentifiers,inboxId:e.inboxId,installations:e.installations.map(K),recoveryIdentifier:e.recoveryIdentifier}),H=e=>({entity:e.entity,entityType:e.entityType,state:e.state}),V=e=>new u(e.entityType,e.state,e.entity),z=e=>({accountIdentifiers:e.accountIdentifiers,consentState:e.consentState,inboxId:e.inboxId,installationIds:e.installationIds,permissionLevel:e.permissionLevel}),J=e=>new h(e.inboxId,e.accountIdentifiers,e.installationIds,e.permissionLevel,e.consentState),Q=e=>({key:e.key,epoch:e.epoch}),X=e=>({fromNs:e.fromNs,inNs:e.inNs}),Y=e=>new g(e.fromNs,e.inNs),Z=e=>({lifetime:e.lifetime?{notBefore:e.lifetime.not_before,notAfter:e.lifetime.not_after}:void 0,validationError:e.validationError});class ee{#c;content;contentType;conversationId;deliveryStatus;fallback;compression;id;kind;parameters;encodedContent;senderInboxId;sentAtNs;constructor(e,t){switch(this.#c=e,this.id=t.id,this.sentAtNs=t.sentAtNs,this.conversationId=t.convoId,this.senderInboxId=t.senderInboxId,this.encodedContent=t.content,t.kind){case m.Application:this.kind="application";break;case m.MembershipChange:this.kind="membership_change"}switch(t.deliveryStatus){case y.Unpublished:this.deliveryStatus="unpublished";break;case y.Published:this.deliveryStatus="published";break;case y.Failed:this.deliveryStatus="failed"}this.contentType=P(t.content.type),this.parameters=new Map(Object.entries(t.content.parameters)),this.fallback=t.content.fallback,this.compression=t.content.compression,this.content=this.#c.decodeContent(t,this.contentType)}}class te extends Error{constructor(){super("Signer unavailable, use Client.create to create a client with a signer")}}class se extends Error{constructor(e){super(`Codec not found for "${e.toString()}" content type`)}}class ie extends Error{constructor(){super("Unable to create add account signature text, `allowInboxReassign` must be true")}}class ne extends Error{constructor(e){super(`Account already associated with inbox ${e}`)}}class re extends Error{constructor(e){let t="";switch(e){case I.AddWallet:t="add account";break;case I.CreateInbox:t="create inbox";break;case I.RevokeWallet:t="remove account";break;case I.RevokeInstallations:t="revoke installations";break;case I.ChangeRecoveryIdentifier:t="change recovery identifier"}super(`Failed to generate ${t} signature text`)}}class ae extends Error{constructor(e){super(`Invalid group membership change for message ${e}`)}}class oe extends Error{constructor(){super("Content type is required when sending content other than text")}}class de{#l;#c;#u;#h;#g;#p;constructor(e,t,s){this.#c=e,this.#h=t,this.#m(s)}#m(e){this.#g=e?.isActive??void 0,this.#l=e?.addedByInboxId??"",this.#p=e?.metadata??void 0,this.#u=e?.createdAtNs??void 0}get id(){return this.#h}get isActive(){return this.#g}get addedByInboxId(){return this.#l}get createdAtNs(){return this.#u}get createdAt(){return this.#u?(e=this.#u,new Date(Number(e/1000000n))):void 0;var e}get metadata(){return this.#p}async members(){return this.#c.sendMessage("getGroupMembers",{id:this.#h})}async sync(){const e=await this.#c.sendMessage("syncGroup",{id:this.#h});return this.#m(e),e}async publishMessages(){return this.#c.sendMessage("publishGroupMessages",{id:this.#h})}async sendOptimistic(e,t){if("string"!=typeof e&&!t)throw new oe;const i="string"==typeof e?this.#c.encodeContent(e,t??s):this.#c.encodeContent(e,t);return this.#c.sendMessage("sendOptimisticGroupMessage",{id:this.#h,content:i})}async send(e,t){if("string"!=typeof e&&!t)throw new oe;const i="string"==typeof e?this.#c.encodeContent(e,t??s):this.#c.encodeContent(e,t);return this.#c.sendMessage("sendGroupMessage",{id:this.#h,content:i})}async messages(e){return(await this.#c.sendMessage("getGroupMessages",{id:this.#h,options:e})).map((e=>new ee(this.#c,e)))}async consentState(){return this.#c.sendMessage("getGroupConsentState",{id:this.#h})}async updateConsentState(e){return this.#c.sendMessage("updateGroupConsentState",{id:this.#h,state:e})}async messageDisappearingSettings(){return this.#c.sendMessage("getGroupMessageDisappearingSettings",{id:this.#h})}async updateMessageDisappearingSettings(e,t){return this.#c.sendMessage("updateGroupMessageDisappearingSettings",{id:this.#h,fromNs:e,inNs:t})}async removeMessageDisappearingSettings(){return this.#c.sendMessage("removeGroupMessageDisappearingSettings",{id:this.#h})}async isMessageDisappearingEnabled(){return this.#c.sendMessage("isGroupMessageDisappearingEnabled",{id:this.#h})}async stream(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{let n,r=t;if(i)try{n=new ee(this.#c,i)}catch(t){r=t}s.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamGroupMessages",{groupId:this.#h,streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}async pausedForVersion(){return this.#c.sendMessage("getGroupPausedForVersion",{id:this.#h})}async getHmacKeys(){return this.#c.sendMessage("getGroupHmacKeys",{id:this.#h})}}class ce extends de{#c;#h;constructor(e,t,s){super(e,t,s),this.#c=e,this.#h=t}async peerInboxId(){return this.#c.sendMessage("getDmPeerInboxId",{id:this.#h})}}class le extends de{#y=[];#c;#I;#h;#v;#w;#M=[];#m(e){this.#w=e?.name??"",this.#v=e?.imageUrl??"",this.#I=e?.description??"",this.#y=e?.admins??[],this.#M=e?.superAdmins??[]}constructor(e,t,s){super(e,t,s),this.#c=e,this.#h=t,this.#m(s)}async sync(){const e=await super.sync();return this.#m(e),e}get name(){return this.#w}async updateName(e){await this.#c.sendMessage("updateGroupName",{id:this.#h,name:e}),this.#w=e}get imageUrl(){return this.#v}async updateImageUrl(e){await this.#c.sendMessage("updateGroupImageUrlSquare",{id:this.#h,imageUrl:e}),this.#v=e}get description(){return this.#I}async updateDescription(e){await this.#c.sendMessage("updateGroupDescription",{id:this.#h,description:e}),this.#I=e}get admins(){return this.#y}get superAdmins(){return this.#M}async listAdmins(){const e=await this.#c.sendMessage("getGroupAdmins",{id:this.#h});return this.#y=e,e}async listSuperAdmins(){const e=await this.#c.sendMessage("getGroupSuperAdmins",{id:this.#h});return this.#M=e,e}async permissions(){return this.#c.sendMessage("getGroupPermissions",{id:this.#h})}async updatePermission(e,t,s){return this.#c.sendMessage("updateGroupPermissionPolicy",{id:this.#h,permissionType:e,policy:t,metadataField:s})}async isAdmin(e){return(await this.listAdmins()).includes(e)}async isSuperAdmin(e){return(await this.listSuperAdmins()).includes(e)}async addMembersByIdentifiers(e){return this.#c.sendMessage("addGroupMembers",{id:this.#h,identifiers:e})}async addMembers(e){return this.#c.sendMessage("addGroupMembersByInboxId",{id:this.#h,inboxIds:e})}async removeMembersByIdentifiers(e){return this.#c.sendMessage("removeGroupMembers",{id:this.#h,identifiers:e})}async removeMembers(e){return this.#c.sendMessage("removeGroupMembersByInboxId",{id:this.#h,inboxIds:e})}async addAdmin(e){return this.#c.sendMessage("addGroupAdmin",{id:this.#h,inboxId:e})}async removeAdmin(e){return this.#c.sendMessage("removeGroupAdmin",{id:this.#h,inboxId:e})}async addSuperAdmin(e){return this.#c.sendMessage("addGroupSuperAdmin",{id:this.#h,inboxId:e})}async removeSuperAdmin(e){return this.#c.sendMessage("removeGroupSuperAdmin",{id:this.#h,inboxId:e})}}class ue{#c;constructor(e){this.#c=e}async sync(){return this.#c.sendMessage("syncConversations",void 0)}async syncAll(e){return this.#c.sendMessage("syncAllConversations",{consentStates:e})}async getConversationById(e){const t=await this.#c.sendMessage("getConversationById",{id:e});if(t)return"group"===t.metadata.conversationType?new le(this.#c,t.id,t):new ce(this.#c,t.id,t)}async getMessageById(e){const t=await this.#c.sendMessage("getMessageById",{id:e});return t?new ee(this.#c,t):void 0}async getDmByInboxId(e){const t=await this.#c.sendMessage("getDmByInboxId",{inboxId:e});return t?new ce(this.#c,t.id,t):void 0}async list(e){return(await this.#c.sendMessage("getConversations",{options:e})).map((e=>"group"===e.metadata.conversationType?new le(this.#c,e.id,e):new ce(this.#c,e.id,e)))}async listGroups(e){return(await this.#c.sendMessage("getGroups",{options:e})).map((e=>new le(this.#c,e.id,e)))}async listDms(e){return(await this.#c.sendMessage("getDms",{options:e})).map((e=>new ce(this.#c,e.id,e)))}async newGroupWithIdentifiers(e,t){const s=await this.#c.sendMessage("newGroupWithIdentifiers",{identifiers:e,options:t});return new le(this.#c,s.id,s)}async newGroup(e,t){const s=await this.#c.sendMessage("newGroupWithInboxIds",{inboxIds:e,options:t});return new le(this.#c,s.id,s)}async newDmWithIdentifier(e,t){const s=await this.#c.sendMessage("newDmWithIdentifier",{identifier:e,options:t});return new ce(this.#c,s.id,s)}async newDm(e,t){const s=await this.#c.sendMessage("newDmWithInboxId",{inboxId:e,options:t});return new ce(this.#c,s.id,s)}async getHmacKeys(){return this.#c.sendMessage("getHmacKeys",void 0)}async stream(e,t){const s=w(),i=new S,n=this.#c.handleStreamMessage(s,((t,s)=>{let n,r=t;if(s)try{n="group"===s.metadata.conversationType?new le(this.#c,s.id,s):new ce(this.#c,s.id,s)}catch(t){r=t}i.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamAllGroups",{streamId:s,conversationType:t}),i.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:s}),n()},i}async streamGroups(e){return this.stream(e,v.Group)}async streamDms(e){return this.stream(e,v.Dm)}async streamAllMessages(e,t){const s=w(),i=new S,n=this.#c.handleStreamMessage(s,((t,s)=>{let n,r=t;if(s)try{n=new ee(this.#c,s)}catch(t){r=t}i.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamAllMessages",{streamId:s,conversationType:t}),i.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:s}),n()},i}async streamAllGroupMessages(e){return this.streamAllMessages(e,v.Group)}async streamAllDmMessages(e){return this.streamAllMessages(e,v.Dm)}}class he{#c;constructor(e){this.#c=e}async inboxState(e){return this.#c.sendMessage("inboxState",{refreshFromNetwork:e??!1})}async inboxStateFromInboxIds(e,t){return this.#c.sendMessage("inboxStateFromInboxIds",{inboxIds:e,refreshFromNetwork:t??!1})}async getLatestInboxState(e){return this.#c.sendMessage("getLatestInboxState",{inboxId:e})}async setConsentStates(e){return this.#c.sendMessage("setConsentStates",{records:e})}async getConsentState(e,t){return this.#c.sendMessage("getConsentState",{entityType:e,entity:t})}async streamConsent(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#c.sendMessage("streamConsent",{streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}async streamPreferences(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#c.sendMessage("streamPreferences",{streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}}const ge=e=>{console.error(`Worker error on line ${e.lineno} in "${e.filename}"`),console.error(e.message)};class pe{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),this.#e.addEventListener("error",ge),this.#t=t,this.init(t)}async init(e){return this.sendMessage("init",{enableLogging:e})}sendMessage(e,t){const s=w();this.#e.postMessage({action:e,id:s,data:t});return new Promise(((e,t)=>{this.#s.set(s,{resolve:e,reject:t})}))}handleMessage=e=>{const t=e.data;this.#t&&console.log("utils received event data",t);const s=this.#s.get(t.id);s&&(this.#s.delete(t.id),"error"in t?s.reject(new Error(t.error)):s.resolve(t.result))};close(){this.#e.removeEventListener("message",this.handleMessage),this.#e.removeEventListener("error",ge),this.#e.terminate()}}class me extends pe{constructor(e){super(new Worker(new URL("./workers/utils",import.meta.url),{type:"module"}),e??!1)}async generateInboxId(e){return this.sendMessage("generateInboxId",{identifier:e})}async getInboxIdForIdentifier(e,t){return this.sendMessage("getInboxIdForIdentifier",{identifier:e,env:t})}}class ye extends b{#f;#b;#S;#x;#A;#k;#P=!1;#G;#D;#N;constructor(t){super(new Worker(new URL("./workers/client",import.meta.url),{type:"module"}),void 0!==t?.loggingLevel&&"off"!==t.loggingLevel),this.#N=t,this.#b=new ue(this),this.#G=new he(this);const s=[new e,new i,...t?.codecs??[]];this.#f=new Map(s.map((e=>[e.contentType.toString(),e])))}async init(e){const t=await this.sendMessage("init",{identifier:e,options:this.#N});this.#S=e,this.#x=t.inboxId,this.#A=t.installationId,this.#k=t.installationIdBytes,this.#P=!0}static async create(e,t){const s=new ye(t);return s.#D=e,await s.init(await e.getIdentifier()),t?.disableAutoRegister||await s.register(),s}static async build(e,t){const s=new ye({...t,disableAutoRegister:!0});return await s.init(e),s}get options(){return this.#N}get isReady(){return this.#P}get inboxId(){return this.#x}get accountIdentifier(){return this.#S}get installationId(){return this.#A}get installationIdBytes(){return this.#k}get conversations(){return this.#b}get preferences(){return this.#G}async unsafe_createInboxSignatureText(){return this.sendMessage("createInboxSignatureText",void 0)}async unsafe_addAccountSignatureText(e,t=!1){if(!t)throw new ie;return this.sendMessage("addAccountSignatureText",{newIdentifier:e})}async unsafe_removeAccountSignatureText(e){return this.sendMessage("removeAccountSignatureText",{identifier:e})}async unsafe_revokeAllOtherInstallationsSignatureText(){return this.sendMessage("revokeAllOtherInstallationsSignatureText",void 0)}async unsafe_revokeInstallationsSignatureText(e){return this.sendMessage("revokeInstallationsSignatureText",{installationIds:e})}async unsafe_changeRecoveryIdentifierSignatureText(e){return this.sendMessage("changeRecoveryIdentifierSignatureText",{identifier:e})}async unsafe_addSignature(e,t,s){const i=await s.signMessage(t);switch(s.type){case"SCW":await this.sendMessage("addScwSignature",{type:e,bytes:i,chainId:s.getChainId(),blockNumber:s.getBlockNumber?.()});break;case"EOA":await this.sendMessage("addEcdsaSignature",{type:e,bytes:i})}}async unsafe_applySignatures(){return this.sendMessage("applySignatures",void 0)}async register(){if(!this.#D)throw new te;const e=await this.unsafe_createInboxSignatureText();if(e)return await this.unsafe_addSignature(I.CreateInbox,e,this.#D),this.sendMessage("registerIdentity",void 0)}async unsafe_addAccount(e,t=!1){const s=await this.findInboxIdByIdentifier(await e.getIdentifier());if(s&&!t)throw new ne(s);const i=await this.unsafe_addAccountSignatureText(await e.getIdentifier(),!0);if(!i)throw new re(I.AddWallet);await this.unsafe_addSignature(I.AddWallet,i,e),await this.unsafe_applySignatures()}async removeAccount(e){if(!this.#D)throw new te;const t=await this.unsafe_removeAccountSignatureText(e);if(!t)throw new re(I.RevokeWallet);await this.unsafe_addSignature(I.RevokeWallet,t,this.#D),await this.unsafe_applySignatures()}async revokeAllOtherInstallations(){if(!this.#D)throw new te;const e=await this.unsafe_revokeAllOtherInstallationsSignatureText();if(!e)throw new re(I.RevokeInstallations);await this.unsafe_addSignature(I.RevokeInstallations,e,this.#D),await this.unsafe_applySignatures()}async revokeInstallations(e){if(!this.#D)throw new te;const t=await this.unsafe_revokeInstallationsSignatureText(e);if(!t)throw new re(I.RevokeInstallations);await this.unsafe_addSignature(I.RevokeInstallations,t,this.#D),await this.unsafe_applySignatures()}async changeRecoveryIdentifier(e){if(!this.#D)throw new te;const t=await this.unsafe_changeRecoveryIdentifierSignatureText(e);if(!t)throw new re(I.ChangeRecoveryIdentifier);await this.unsafe_addSignature(I.ChangeRecoveryIdentifier,t,this.#D),await this.unsafe_applySignatures()}async isRegistered(){return this.sendMessage("isRegistered",void 0)}async canMessage(e){return this.sendMessage("canMessage",{identifiers:e})}static async canMessage(e,t){const s=new Map,i=new me;for(const n of e){const e=await i.getInboxIdForIdentifier(n,t);s.set(n.identifier,void 0!==e)}return i.close(),s}async findInboxIdByIdentifier(e){return this.sendMessage("findInboxIdByIdentifier",{identifier:e})}codecFor(e){return this.#f.get(e.toString())}encodeContent(e,t){const s=this.codecFor(t);if(!s)throw new se(t);const i=s.encode(e,this),n=s.fallback(e);return n&&(i.fallback=n),N(i)}decodeContent(e,s){const i=this.codecFor(s);if(!i)throw new se(s);if(s.sameAs(t)&&e.kind!==m.MembershipChange)throw new ae(e.id);const n=T(e.content);return i.decode(n,this)}signWithInstallationKey(e){return this.sendMessage("signWithInstallationKey",{signatureText:e})}verifySignedWithInstallationKey(e,t){return this.sendMessage("verifySignedWithInstallationKey",{signatureText:e,signatureBytes:t})}verifySignedWithPublicKey(e,t,s){return this.sendMessage("verifySignedWithPublicKey",{signatureText:e,signatureBytes:t,publicKey:s})}async getKeyPackageStatusesForInstallationIds(e){return this.sendMessage("getKeyPackageStatusesForInstallationIds",{installationIds:e})}}const Ie={local:"http://localhost:5555",dev:"https://dev.xmtp.network",production:"https://production.xmtp.network"},ve={local:"http://localhost:5558",dev:"https://message-history.dev.ephemera.network",production:"https://message-history.production.ephemera.network"};export{Ie as ApiUrls,ye as Client,de as Conversation,ue as Conversations,ee as DecodedMessage,ce as Dm,le as Group,ve as HistorySyncUrls,me as Utils,A as fromContentTypeId,D as fromEncodedContent,V as fromSafeConsent,P as fromSafeContentTypeId,q as fromSafeCreateDmOptions,j as fromSafeCreateGroupOptions,T as fromSafeEncodedContent,J as fromSafeGroupMember,L as fromSafeListConversationsOptions,R as fromSafeListMessagesOptions,Y as fromSafeMessageDisappearingSettings,U as fromSafePermissionPolicySet,x as toContentTypeId,G as toEncodedContent,H as toSafeConsent,k as toSafeContentTypeId,O as toSafeConversation,F as toSafeCreateDmOptions,W as toSafeCreateGroupOptions,N as toSafeEncodedContent,z as toSafeGroupMember,Q as toSafeHmacKey,$ as toSafeInboxState,K as toSafeInstallation,Z as toSafeKeyPackageStatus,E as toSafeListConversationsOptions,B as toSafeListMessagesOptions,C as toSafeMessage,X as toSafeMessageDisappearingSettings,_ as toSafePermissionPolicySet};
|
|
1
|
+
import{GroupUpdatedCodec as e,ContentTypeGroupUpdated as t}from"@xmtp/content-type-group-updated";import{ContentTypeText as s,TextCodec as i}from"@xmtp/content-type-text";import{ContentTypeId as n,EncodedContent as r,ListMessagesOptions as a,ListConversationsOptions as o,PermissionPolicySet as d,CreateGroupOptions as c,CreateDMOptions as l,Consent as u,GroupMember as h,MessageDisappearingSettings as g,GroupPermissionsOptions as p,GroupMessageKind as m,DeliveryStatus as y,SignatureRequestType as I,ConversationType as v}from"@xmtp/wasm-bindings";export{Consent,ConsentEntityType,ConsentState,ContentType,ContentTypeId,ConversationListItem,ConversationType,CreateDMOptions,CreateGroupOptions,DeliveryStatus,EncodedContent,GroupMember,GroupMembershipState,GroupMessageKind,GroupMetadata,GroupPermissions,GroupPermissionsOptions,HmacKey,InboxState,Installation,ListConversationsOptions,ListMessagesOptions,LogOptions,Message,MessageDisappearingSettings,MetadataField,PermissionLevel,PermissionPolicy,PermissionPolicySet,PermissionUpdateType,SignatureRequestType,SortDirection}from"@xmtp/wasm-bindings";import{v4 as w}from"uuid";import{ContentTypeId as M}from"@xmtp/content-type-primitives";const f=e=>{console.error(`Worker error on line ${e.lineno} in "${e.filename}"`),console.error(e.message)};class b{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),this.#e.addEventListener("error",f),this.#t=t}sendMessage(e,t){const s=w();this.#e.postMessage({action:e,id:s,data:t});return new Promise(((e,t)=>{this.#s.set(s,{resolve:e,reject:t})}))}handleMessage=e=>{const t=e.data;this.#t&&console.log("client received event data",t);const s=this.#s.get(t.id);s&&(this.#s.delete(t.id),"error"in t?s.reject(new Error(t.error)):s.resolve(t.result))};handleStreamMessage=(e,t)=>{const s=s=>{const i=s.data;i.streamId===e&&("error"in i?t(new Error(i.error),null):t(null,i.result))};return this.#e.addEventListener("message",s),()=>{this.#e.removeEventListener("message",s)}};close(){this.#e.removeEventListener("message",this.handleMessage),this.#e.removeEventListener("error",f),this.#e.terminate()}}class S{#i=!1;#n;#r;#a;#o;onReturn=void 0;onError=void 0;constructor(){this.#a=[],this.#n=null,this.#r=null,this.#o=null,this.#i=!1}#d(){this.#a=[],this.#n=null,this.#r=null,this.#i=!0}get error(){return this.#o}get isDone(){return this.#i}callback=(e,t)=>{if(e)return this.#o=e,void(this.#r&&(this.#r(e),this.#d(),this.onError?.(e)));this.#i||(this.#n?(this.#n({done:!1,value:t}),this.#n=null):this.#a.push(t))};next=()=>this.#o?(this.#d(),this.onError?.(this.#o),Promise.reject(this.#o)):this.#a.length>0?Promise.resolve({done:!1,value:this.#a.shift()}):this.#i?Promise.resolve({done:!0,value:void 0}):new Promise(((e,t)=>{this.#n=e,this.#r=t}));return=e=>(this.#d(),this.onReturn?.(),Promise.resolve({done:!0,value:e}));[Symbol.asyncIterator](){return this}}const x=e=>new M({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),A=e=>new n(e.authorityId,e.typeId,e.versionMajor,e.versionMinor),k=e=>({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),P=e=>new M({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),G=e=>({type:x(e.type),parameters:Object.fromEntries(e.parameters),fallback:e.fallback,compression:e.compression,content:e.content}),D=e=>new r(A(e.type),new Map(Object.entries(e.parameters)),e.fallback,e.compression,e.content),N=e=>({type:k(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),T=e=>({type:P(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),C=e=>({content:N(G(e.content)),convoId:e.convoId,deliveryStatus:e.deliveryStatus,id:e.id,kind:e.kind,senderInboxId:e.senderInboxId,sentAtNs:e.sentAtNs}),B=e=>({contentTypes:e.contentTypes,deliveryStatus:e.deliveryStatus,direction:e.direction,limit:e.limit,sentAfterNs:e.sentAfterNs,sentBeforeNs:e.sentBeforeNs}),R=e=>new a(e.sentBeforeNs,e.sentAfterNs,e.limit,e.deliveryStatus,e.direction,e.contentTypes),E=e=>({consentStates:e.consentStates,createdAfterNs:e.createdAfterNs,createdBeforeNs:e.createdBeforeNs,includeDuplicateDms:e.includeDuplicateDms,limit:e.limit}),L=e=>new o(e.consentStates,e.createdAfterNs,e.createdBeforeNs,e.includeDuplicateDms??!1,e.limit),_=e=>({addAdminPolicy:e.addAdminPolicy,addMemberPolicy:e.addMemberPolicy,removeAdminPolicy:e.removeAdminPolicy,removeMemberPolicy:e.removeMemberPolicy,updateGroupDescriptionPolicy:e.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:e.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:e.updateGroupNamePolicy,updateMessageDisappearingPolicy:e.updateMessageDisappearingPolicy}),U=e=>new d(e.addMemberPolicy,e.removeMemberPolicy,e.addAdminPolicy,e.removeAdminPolicy,e.updateGroupNamePolicy,e.updateGroupDescriptionPolicy,e.updateGroupImageUrlSquarePolicy,e.updateMessageDisappearingPolicy),W=e=>({customPermissionPolicySet:e.customPermissionPolicySet,description:e.groupDescription,imageUrlSquare:e.groupImageUrlSquare,messageDisappearingSettings:e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0,name:e.groupName,permissions:e.permissions}),j=e=>new c(e.permissions,e.name,e.imageUrlSquare,e.description,e.customPermissionPolicySet&&e.permissions===p.CustomPolicy?U(e.customPermissionPolicySet):void 0,e.messageDisappearingSettings?Y(e.messageDisappearingSettings):void 0),F=e=>({messageDisappearingSettings:e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0}),q=e=>new l(e.messageDisappearingSettings?Y(e.messageDisappearingSettings):void 0),O=async e=>{const t=e.id,s=e.name,i=e.imageUrl,n=e.description,r=e.permissions,a=e.isActive,o=e.addedByInboxId,d=await e.metadata(),c=e.admins,l=e.superAdmins,u=e.createdAtNs,h=r.policyType,g=r.policySet;return{id:t,name:s,imageUrl:i,description:n,permissions:{policyType:h,policySet:{addAdminPolicy:g.addAdminPolicy,addMemberPolicy:g.addMemberPolicy,removeAdminPolicy:g.removeAdminPolicy,removeMemberPolicy:g.removeMemberPolicy,updateGroupDescriptionPolicy:g.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:g.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:g.updateGroupNamePolicy,updateMessageDisappearingPolicy:g.updateMessageDisappearingPolicy}},isActive:a,addedByInboxId:o,metadata:d,admins:c,superAdmins:l,createdAtNs:u}},K=e=>({bytes:e.bytes,clientTimestampNs:e.clientTimestampNs,id:e.id}),$=e=>({accountIdentifiers:e.accountIdentifiers,inboxId:e.inboxId,installations:e.installations.map(K),recoveryIdentifier:e.recoveryIdentifier}),H=e=>({entity:e.entity,entityType:e.entityType,state:e.state}),V=e=>new u(e.entityType,e.state,e.entity),z=e=>({accountIdentifiers:e.accountIdentifiers,consentState:e.consentState,inboxId:e.inboxId,installationIds:e.installationIds,permissionLevel:e.permissionLevel}),J=e=>new h(e.inboxId,e.accountIdentifiers,e.installationIds,e.permissionLevel,e.consentState),Q=e=>({key:e.key,epoch:e.epoch}),X=e=>({fromNs:e.fromNs,inNs:e.inNs}),Y=e=>new g(e.fromNs,e.inNs),Z=e=>({lifetime:e.lifetime?{notBefore:e.lifetime.not_before,notAfter:e.lifetime.not_after}:void 0,validationError:e.validationError});class ee{#c;content;contentType;conversationId;deliveryStatus;fallback;compression;id;kind;parameters;encodedContent;senderInboxId;sentAtNs;constructor(e,t){switch(this.#c=e,this.id=t.id,this.sentAtNs=t.sentAtNs,this.conversationId=t.convoId,this.senderInboxId=t.senderInboxId,this.encodedContent=t.content,t.kind){case m.Application:this.kind="application";break;case m.MembershipChange:this.kind="membership_change"}switch(t.deliveryStatus){case y.Unpublished:this.deliveryStatus="unpublished";break;case y.Published:this.deliveryStatus="published";break;case y.Failed:this.deliveryStatus="failed"}this.contentType=P(t.content.type),this.parameters=new Map(Object.entries(t.content.parameters)),this.fallback=t.content.fallback,this.compression=t.content.compression;try{this.content=this.#c.decodeContent(t,this.contentType)}catch{this.content=void 0}}}class te extends Error{constructor(){super("Signer unavailable, use Client.create to create a client with a signer")}}class se extends Error{constructor(e){super(`Codec not found for "${e.toString()}" content type`)}}class ie extends Error{constructor(){super("Unable to create add account signature text, `allowInboxReassign` must be true")}}class ne extends Error{constructor(e){super(`Account already associated with inbox ${e}`)}}class re extends Error{constructor(e){let t="";switch(e){case I.AddWallet:t="add account";break;case I.CreateInbox:t="create inbox";break;case I.RevokeWallet:t="remove account";break;case I.RevokeInstallations:t="revoke installations";break;case I.ChangeRecoveryIdentifier:t="change recovery identifier"}super(`Failed to generate ${t} signature text`)}}class ae extends Error{constructor(e){super(`Invalid group membership change for message ${e}`)}}class oe extends Error{constructor(){super("Content type is required when sending content other than text")}}class de{#l;#c;#u;#h;#g;#p;constructor(e,t,s){this.#c=e,this.#h=t,this.#m(s)}#m(e){this.#g=e?.isActive??void 0,this.#l=e?.addedByInboxId??"",this.#p=e?.metadata??void 0,this.#u=e?.createdAtNs??void 0}get id(){return this.#h}get isActive(){return this.#g}get addedByInboxId(){return this.#l}get createdAtNs(){return this.#u}get createdAt(){return this.#u?(e=this.#u,new Date(Number(e/1000000n))):void 0;var e}get metadata(){return this.#p}async members(){return this.#c.sendMessage("getGroupMembers",{id:this.#h})}async sync(){const e=await this.#c.sendMessage("syncGroup",{id:this.#h});return this.#m(e),e}async publishMessages(){return this.#c.sendMessage("publishGroupMessages",{id:this.#h})}async sendOptimistic(e,t){if("string"!=typeof e&&!t)throw new oe;const i="string"==typeof e?this.#c.encodeContent(e,t??s):this.#c.encodeContent(e,t);return this.#c.sendMessage("sendOptimisticGroupMessage",{id:this.#h,content:i})}async send(e,t){if("string"!=typeof e&&!t)throw new oe;const i="string"==typeof e?this.#c.encodeContent(e,t??s):this.#c.encodeContent(e,t);return this.#c.sendMessage("sendGroupMessage",{id:this.#h,content:i})}async messages(e){return(await this.#c.sendMessage("getGroupMessages",{id:this.#h,options:e})).map((e=>new ee(this.#c,e)))}async consentState(){return this.#c.sendMessage("getGroupConsentState",{id:this.#h})}async updateConsentState(e){return this.#c.sendMessage("updateGroupConsentState",{id:this.#h,state:e})}async messageDisappearingSettings(){return this.#c.sendMessage("getGroupMessageDisappearingSettings",{id:this.#h})}async updateMessageDisappearingSettings(e,t){return this.#c.sendMessage("updateGroupMessageDisappearingSettings",{id:this.#h,fromNs:e,inNs:t})}async removeMessageDisappearingSettings(){return this.#c.sendMessage("removeGroupMessageDisappearingSettings",{id:this.#h})}async isMessageDisappearingEnabled(){return this.#c.sendMessage("isGroupMessageDisappearingEnabled",{id:this.#h})}async stream(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{let n,r=t;if(i)try{n=new ee(this.#c,i)}catch(t){r=t}s.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamGroupMessages",{groupId:this.#h,streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}async pausedForVersion(){return this.#c.sendMessage("getGroupPausedForVersion",{id:this.#h})}async getHmacKeys(){return this.#c.sendMessage("getGroupHmacKeys",{id:this.#h})}}class ce extends de{#c;#h;constructor(e,t,s){super(e,t,s),this.#c=e,this.#h=t}async peerInboxId(){return this.#c.sendMessage("getDmPeerInboxId",{id:this.#h})}}class le extends de{#y=[];#c;#I;#h;#v;#w;#M=[];#m(e){this.#w=e?.name??"",this.#v=e?.imageUrl??"",this.#I=e?.description??"",this.#y=e?.admins??[],this.#M=e?.superAdmins??[]}constructor(e,t,s){super(e,t,s),this.#c=e,this.#h=t,this.#m(s)}async sync(){const e=await super.sync();return this.#m(e),e}get name(){return this.#w}async updateName(e){await this.#c.sendMessage("updateGroupName",{id:this.#h,name:e}),this.#w=e}get imageUrl(){return this.#v}async updateImageUrl(e){await this.#c.sendMessage("updateGroupImageUrlSquare",{id:this.#h,imageUrl:e}),this.#v=e}get description(){return this.#I}async updateDescription(e){await this.#c.sendMessage("updateGroupDescription",{id:this.#h,description:e}),this.#I=e}get admins(){return this.#y}get superAdmins(){return this.#M}async listAdmins(){const e=await this.#c.sendMessage("getGroupAdmins",{id:this.#h});return this.#y=e,e}async listSuperAdmins(){const e=await this.#c.sendMessage("getGroupSuperAdmins",{id:this.#h});return this.#M=e,e}async permissions(){return this.#c.sendMessage("getGroupPermissions",{id:this.#h})}async updatePermission(e,t,s){return this.#c.sendMessage("updateGroupPermissionPolicy",{id:this.#h,permissionType:e,policy:t,metadataField:s})}async isAdmin(e){return(await this.listAdmins()).includes(e)}async isSuperAdmin(e){return(await this.listSuperAdmins()).includes(e)}async addMembersByIdentifiers(e){return this.#c.sendMessage("addGroupMembers",{id:this.#h,identifiers:e})}async addMembers(e){return this.#c.sendMessage("addGroupMembersByInboxId",{id:this.#h,inboxIds:e})}async removeMembersByIdentifiers(e){return this.#c.sendMessage("removeGroupMembers",{id:this.#h,identifiers:e})}async removeMembers(e){return this.#c.sendMessage("removeGroupMembersByInboxId",{id:this.#h,inboxIds:e})}async addAdmin(e){return this.#c.sendMessage("addGroupAdmin",{id:this.#h,inboxId:e})}async removeAdmin(e){return this.#c.sendMessage("removeGroupAdmin",{id:this.#h,inboxId:e})}async addSuperAdmin(e){return this.#c.sendMessage("addGroupSuperAdmin",{id:this.#h,inboxId:e})}async removeSuperAdmin(e){return this.#c.sendMessage("removeGroupSuperAdmin",{id:this.#h,inboxId:e})}}class ue{#c;constructor(e){this.#c=e}async sync(){return this.#c.sendMessage("syncConversations",void 0)}async syncAll(e){return this.#c.sendMessage("syncAllConversations",{consentStates:e})}async getConversationById(e){const t=await this.#c.sendMessage("getConversationById",{id:e});if(t)return"group"===t.metadata.conversationType?new le(this.#c,t.id,t):new ce(this.#c,t.id,t)}async getMessageById(e){const t=await this.#c.sendMessage("getMessageById",{id:e});return t?new ee(this.#c,t):void 0}async getDmByInboxId(e){const t=await this.#c.sendMessage("getDmByInboxId",{inboxId:e});return t?new ce(this.#c,t.id,t):void 0}async list(e){return(await this.#c.sendMessage("getConversations",{options:e})).map((e=>"group"===e.metadata.conversationType?new le(this.#c,e.id,e):new ce(this.#c,e.id,e)))}async listGroups(e){return(await this.#c.sendMessage("getGroups",{options:e})).map((e=>new le(this.#c,e.id,e)))}async listDms(e){return(await this.#c.sendMessage("getDms",{options:e})).map((e=>new ce(this.#c,e.id,e)))}async newGroupWithIdentifiers(e,t){const s=await this.#c.sendMessage("newGroupWithIdentifiers",{identifiers:e,options:t});return new le(this.#c,s.id,s)}async newGroup(e,t){const s=await this.#c.sendMessage("newGroupWithInboxIds",{inboxIds:e,options:t});return new le(this.#c,s.id,s)}async newDmWithIdentifier(e,t){const s=await this.#c.sendMessage("newDmWithIdentifier",{identifier:e,options:t});return new ce(this.#c,s.id,s)}async newDm(e,t){const s=await this.#c.sendMessage("newDmWithInboxId",{inboxId:e,options:t});return new ce(this.#c,s.id,s)}async getHmacKeys(){return this.#c.sendMessage("getHmacKeys",void 0)}async stream(e,t){const s=w(),i=new S,n=this.#c.handleStreamMessage(s,((t,s)=>{let n,r=t;if(s)try{n="group"===s.metadata.conversationType?new le(this.#c,s.id,s):new ce(this.#c,s.id,s)}catch(t){r=t}i.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamAllGroups",{streamId:s,conversationType:t}),i.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:s}),n()},i}async streamGroups(e){return this.stream(e,v.Group)}async streamDms(e){return this.stream(e,v.Dm)}async streamAllMessages(e,t){const s=w(),i=new S,n=this.#c.handleStreamMessage(s,((t,s)=>{let n,r=t;if(s)try{n=new ee(this.#c,s)}catch(t){r=t}i.callback(r,n),e?.(r,n)}));return await this.#c.sendMessage("streamAllMessages",{streamId:s,conversationType:t}),i.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:s}),n()},i}async streamAllGroupMessages(e){return this.streamAllMessages(e,v.Group)}async streamAllDmMessages(e){return this.streamAllMessages(e,v.Dm)}}class he{#c;constructor(e){this.#c=e}async inboxState(e){return this.#c.sendMessage("inboxState",{refreshFromNetwork:e??!1})}async inboxStateFromInboxIds(e,t){return this.#c.sendMessage("inboxStateFromInboxIds",{inboxIds:e,refreshFromNetwork:t??!1})}async getLatestInboxState(e){return this.#c.sendMessage("getLatestInboxState",{inboxId:e})}async setConsentStates(e){return this.#c.sendMessage("setConsentStates",{records:e})}async getConsentState(e,t){return this.#c.sendMessage("getConsentState",{entityType:e,entity:t})}async streamConsent(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#c.sendMessage("streamConsent",{streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}async streamPreferences(e){const t=w(),s=new S,i=this.#c.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#c.sendMessage("streamPreferences",{streamId:t}),s.onReturn=()=>{this.#c.sendMessage("endStream",{streamId:t}),i()},s}}const ge=e=>{console.error(`Worker error on line ${e.lineno} in "${e.filename}"`),console.error(e.message)};class pe{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),this.#e.addEventListener("error",ge),this.#t=t,this.init(t)}async init(e){return this.sendMessage("init",{enableLogging:e})}sendMessage(e,t){const s=w();this.#e.postMessage({action:e,id:s,data:t});return new Promise(((e,t)=>{this.#s.set(s,{resolve:e,reject:t})}))}handleMessage=e=>{const t=e.data;this.#t&&console.log("utils received event data",t);const s=this.#s.get(t.id);s&&(this.#s.delete(t.id),"error"in t?s.reject(new Error(t.error)):s.resolve(t.result))};close(){this.#e.removeEventListener("message",this.handleMessage),this.#e.removeEventListener("error",ge),this.#e.terminate()}}class me extends pe{constructor(e){super(new Worker(new URL("./workers/utils",import.meta.url),{type:"module"}),e??!1)}async generateInboxId(e){return this.sendMessage("generateInboxId",{identifier:e})}async getInboxIdForIdentifier(e,t){return this.sendMessage("getInboxIdForIdentifier",{identifier:e,env:t})}}class ye extends b{#f;#b;#S;#x;#A;#k;#P=!1;#G;#D;#N;constructor(t){super(new Worker(new URL("./workers/client",import.meta.url),{type:"module"}),void 0!==t?.loggingLevel&&"off"!==t.loggingLevel),this.#N=t,this.#b=new ue(this),this.#G=new he(this);const s=[new e,new i,...t?.codecs??[]];this.#f=new Map(s.map((e=>[e.contentType.toString(),e])))}async init(e){const t=await this.sendMessage("init",{identifier:e,options:this.#N});this.#S=e,this.#x=t.inboxId,this.#A=t.installationId,this.#k=t.installationIdBytes,this.#P=!0}static async create(e,t){const s=new ye(t);return s.#D=e,await s.init(await e.getIdentifier()),t?.disableAutoRegister||await s.register(),s}static async build(e,t){const s=new ye({...t,disableAutoRegister:!0});return await s.init(e),s}get options(){return this.#N}get signer(){return this.#D}get isReady(){return this.#P}get inboxId(){return this.#x}get accountIdentifier(){return this.#S}get installationId(){return this.#A}get installationIdBytes(){return this.#k}get conversations(){return this.#b}get preferences(){return this.#G}async unsafe_createInboxSignatureText(){return this.sendMessage("createInboxSignatureText",void 0)}async unsafe_addAccountSignatureText(e,t=!1){if(!t)throw new ie;return this.sendMessage("addAccountSignatureText",{newIdentifier:e})}async unsafe_removeAccountSignatureText(e){return this.sendMessage("removeAccountSignatureText",{identifier:e})}async unsafe_revokeAllOtherInstallationsSignatureText(){return this.sendMessage("revokeAllOtherInstallationsSignatureText",void 0)}async unsafe_revokeInstallationsSignatureText(e){return this.sendMessage("revokeInstallationsSignatureText",{installationIds:e})}async unsafe_changeRecoveryIdentifierSignatureText(e){return this.sendMessage("changeRecoveryIdentifierSignatureText",{identifier:e})}async unsafe_addSignature(e,t,s){const i=await s.signMessage(t);switch(s.type){case"SCW":await this.sendMessage("addScwSignature",{type:e,bytes:i,chainId:s.getChainId(),blockNumber:s.getBlockNumber?.()});break;case"EOA":await this.sendMessage("addEcdsaSignature",{type:e,bytes:i})}}async unsafe_applySignatures(){return this.sendMessage("applySignatures",void 0)}async register(){if(!this.#D)throw new te;const e=await this.unsafe_createInboxSignatureText();if(e)return await this.unsafe_addSignature(I.CreateInbox,e,this.#D),this.sendMessage("registerIdentity",void 0)}async unsafe_addAccount(e,t=!1){const s=await this.findInboxIdByIdentifier(await e.getIdentifier());if(s&&!t)throw new ne(s);const i=await this.unsafe_addAccountSignatureText(await e.getIdentifier(),!0);if(!i)throw new re(I.AddWallet);await this.unsafe_addSignature(I.AddWallet,i,e),await this.unsafe_applySignatures()}async removeAccount(e){if(!this.#D)throw new te;const t=await this.unsafe_removeAccountSignatureText(e);if(!t)throw new re(I.RevokeWallet);await this.unsafe_addSignature(I.RevokeWallet,t,this.#D),await this.unsafe_applySignatures()}async revokeAllOtherInstallations(){if(!this.#D)throw new te;const e=await this.unsafe_revokeAllOtherInstallationsSignatureText();if(!e)throw new re(I.RevokeInstallations);await this.unsafe_addSignature(I.RevokeInstallations,e,this.#D),await this.unsafe_applySignatures()}async revokeInstallations(e){if(!this.#D)throw new te;const t=await this.unsafe_revokeInstallationsSignatureText(e);if(!t)throw new re(I.RevokeInstallations);await this.unsafe_addSignature(I.RevokeInstallations,t,this.#D),await this.unsafe_applySignatures()}async changeRecoveryIdentifier(e){if(!this.#D)throw new te;const t=await this.unsafe_changeRecoveryIdentifierSignatureText(e);if(!t)throw new re(I.ChangeRecoveryIdentifier);await this.unsafe_addSignature(I.ChangeRecoveryIdentifier,t,this.#D),await this.unsafe_applySignatures()}async isRegistered(){return this.sendMessage("isRegistered",void 0)}async canMessage(e){return this.sendMessage("canMessage",{identifiers:e})}static async canMessage(e,t){const s=new Map,i=new me;for(const n of e){const e=await i.getInboxIdForIdentifier(n,t);s.set(n.identifier,void 0!==e)}return i.close(),s}async findInboxIdByIdentifier(e){return this.sendMessage("findInboxIdByIdentifier",{identifier:e})}codecFor(e){return this.#f.get(e.toString())}encodeContent(e,t){const s=this.codecFor(t);if(!s)throw new se(t);const i=s.encode(e,this),n=s.fallback(e);return n&&(i.fallback=n),N(i)}decodeContent(e,s){const i=this.codecFor(s);if(!i)throw new se(s);if(s.sameAs(t)&&e.kind!==m.MembershipChange)throw new ae(e.id);const n=T(e.content);return i.decode(n,this)}signWithInstallationKey(e){return this.sendMessage("signWithInstallationKey",{signatureText:e})}verifySignedWithInstallationKey(e,t){return this.sendMessage("verifySignedWithInstallationKey",{signatureText:e,signatureBytes:t})}verifySignedWithPublicKey(e,t,s){return this.sendMessage("verifySignedWithPublicKey",{signatureText:e,signatureBytes:t,publicKey:s})}async getKeyPackageStatusesForInstallationIds(e){return this.sendMessage("getKeyPackageStatusesForInstallationIds",{installationIds:e})}}const Ie={local:"http://localhost:5555",dev:"https://dev.xmtp.network",production:"https://production.xmtp.network"},ve={local:"http://localhost:5558",dev:"https://message-history.dev.ephemera.network",production:"https://message-history.production.ephemera.network"};export{Ie as ApiUrls,ye as Client,de as Conversation,ue as Conversations,ee as DecodedMessage,ce as Dm,le as Group,ve as HistorySyncUrls,me as Utils,A as fromContentTypeId,D as fromEncodedContent,V as fromSafeConsent,P as fromSafeContentTypeId,q as fromSafeCreateDmOptions,j as fromSafeCreateGroupOptions,T as fromSafeEncodedContent,J as fromSafeGroupMember,L as fromSafeListConversationsOptions,R as fromSafeListMessagesOptions,Y as fromSafeMessageDisappearingSettings,U as fromSafePermissionPolicySet,x as toContentTypeId,G as toEncodedContent,H as toSafeConsent,k as toSafeContentTypeId,O as toSafeConversation,F as toSafeCreateDmOptions,W as toSafeCreateGroupOptions,N as toSafeEncodedContent,z as toSafeGroupMember,Q as toSafeHmacKey,$ as toSafeInboxState,K as toSafeInstallation,Z as toSafeKeyPackageStatus,E as toSafeListConversationsOptions,B as toSafeListMessagesOptions,C as toSafeMessage,X as toSafeMessageDisappearingSettings,_ as toSafePermissionPolicySet};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/ClientWorkerClass.ts","../src/AsyncStream.ts","../src/utils/conversions.ts","../src/DecodedMessage.ts","../src/utils/errors.ts","../src/Conversation.ts","../src/utils/date.ts","../src/Dm.ts","../src/Group.ts","../src/Conversations.ts","../src/Preferences.ts","../src/UtilsWorkerClass.ts","../src/Utils.ts","../src/Client.ts","../src/constants.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["handleError","event","console","error","lineno","filename","message","ClientWorkerClass","worker","enableLogging","promises","Map","constructor","this","addEventListener","handleMessage","sendMessage","action","data","promiseId","v4","postMessage","id","Promise","resolve","reject","set","eventData","log","promise","get","delete","Error","result","handleStreamMessage","streamId","callback","streamHandler","removeEventListener","close","terminate","AsyncStream","done","resolveNext","rejectNext","queue","onReturn","undefined","onError","endStream","isDone","value","push","next","length","shift","return","Symbol","asyncIterator","toContentTypeId","contentTypeId","ContentTypeId","authorityId","typeId","versionMajor","versionMinor","fromContentTypeId","WasmContentTypeId","toSafeContentTypeId","fromSafeContentTypeId","toEncodedContent","content","type","parameters","Object","fromEntries","fallback","compression","fromEncodedContent","WasmEncodedContent","entries","toSafeEncodedContent","fromSafeEncodedContent","toSafeMessage","convoId","deliveryStatus","kind","senderInboxId","sentAtNs","toSafeListMessagesOptions","options","contentTypes","direction","limit","sentAfterNs","sentBeforeNs","fromSafeListMessagesOptions","ListMessagesOptions","toSafeListConversationsOptions","consentStates","createdAfterNs","createdBeforeNs","includeDuplicateDms","fromSafeListConversationsOptions","ListConversationsOptions","toSafePermissionPolicySet","policySet","addAdminPolicy","addMemberPolicy","removeAdminPolicy","removeMemberPolicy","updateGroupDescriptionPolicy","updateGroupImageUrlSquarePolicy","updateGroupNamePolicy","updateMessageDisappearingPolicy","fromSafePermissionPolicySet","PermissionPolicySet","toSafeCreateGroupOptions","customPermissionPolicySet","description","groupDescription","imageUrlSquare","groupImageUrlSquare","messageDisappearingSettings","toSafeMessageDisappearingSettings","name","groupName","permissions","fromSafeCreateGroupOptions","CreateGroupOptions","GroupPermissionsOptions","CustomPolicy","fromSafeMessageDisappearingSettings","toSafeCreateDmOptions","fromSafeCreateDmOptions","CreateDMOptions","toSafeConversation","async","conversation","imageUrl","isActive","addedByInboxId","metadata","admins","superAdmins","createdAtNs","policyType","toSafeInstallation","installation","bytes","clientTimestampNs","toSafeInboxState","inboxState","accountIdentifiers","inboxId","installations","map","recoveryIdentifier","toSafeConsent","consent","entity","entityType","state","fromSafeConsent","Consent","toSafeGroupMember","member","consentState","installationIds","permissionLevel","fromSafeGroupMember","GroupMember","toSafeHmacKey","hmacKey","key","epoch","settings","fromNs","inNs","MessageDisappearingSettings","toSafeKeyPackageStatus","status","lifetime","notBefore","not_before","notAfter","not_after","validationError","DecodedMessage","client","contentType","conversationId","encodedContent","GroupMessageKind","Application","MembershipChange","DeliveryStatus","Unpublished","Published","Failed","decodeContent","SignerUnavailableError","super","CodecNotFoundError","toString","InboxReassignError","AccountAlreadyAssociatedError","GenerateSignatureError","signatureType","SignatureRequestType","AddWallet","CreateInbox","RevokeWallet","RevokeInstallations","ChangeRecoveryIdentifier","InvalidGroupMembershipChangeError","messageId","MissingContentTypeError","Conversation","syncData","createdAt","ns","Date","Number","members","sync","publishMessages","sendOptimistic","safeEncodedContent","encodeContent","ContentTypeText","send","messages","updateConsentState","updateMessageDisappearingSettings","removeMessageDisappearingSettings","isMessageDisappearingEnabled","stream","asyncStream","err","groupId","pausedForVersion","getHmacKeys","Dm","peerInboxId","Group","updateName","updateImageUrl","updateDescription","listAdmins","listSuperAdmins","updatePermission","permissionType","policy","metadataField","isAdmin","includes","isSuperAdmin","addMembersByIdentifiers","identifiers","addMembers","inboxIds","removeMembersByIdentifiers","removeMembers","addAdmin","removeAdmin","addSuperAdmin","removeSuperAdmin","Conversations","syncAll","getConversationById","conversationType","getMessageById","getDmByInboxId","list","listGroups","listDms","newGroupWithIdentifiers","newGroup","newDmWithIdentifier","identifier","newDm","streamValue","streamGroups","ConversationType","streamDms","streamAllMessages","streamAllGroupMessages","streamAllDmMessages","Preferences","refreshFromNetwork","inboxStateFromInboxIds","getLatestInboxState","setConsentStates","records","getConsentState","streamConsent","streamPreferences","UtilsWorkerClass","init","Utils","Worker","URL","url","generateInboxId","getInboxIdForIdentifier","env","Client","codecs","conversations","installationId","installationIdBytes","isReady","preferences","signer","loggingLevel","GroupUpdatedCodec","TextCodec","codec","create","getIdentifier","disableAutoRegister","register","build","accountIdentifier","unsafe_createInboxSignatureText","unsafe_addAccountSignatureText","newIdentifier","allowInboxReassign","unsafe_removeAccountSignatureText","unsafe_revokeAllOtherInstallationsSignatureText","unsafe_revokeInstallationsSignatureText","unsafe_changeRecoveryIdentifierSignatureText","unsafe_addSignature","signatureText","signature","signMessage","chainId","getChainId","blockNumber","getBlockNumber","unsafe_applySignatures","unsafe_addAccount","newAccountSigner","existingInboxId","findInboxIdByIdentifier","removeAccount","revokeAllOtherInstallations","revokeInstallations","changeRecoveryIdentifier","isRegistered","canMessage","canMessageMap","utils","codecFor","encoded","encode","sameAs","ContentTypeGroupUpdated","decode","signWithInstallationKey","verifySignedWithInstallationKey","signatureBytes","verifySignedWithPublicKey","publicKey","getKeyPackageStatusesForInstallationIds","ApiUrls","local","dev","production","HistorySyncUrls"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/ClientWorkerClass.ts","../src/AsyncStream.ts","../src/utils/conversions.ts","../src/DecodedMessage.ts","../src/utils/errors.ts","../src/Conversation.ts","../src/utils/date.ts","../src/Dm.ts","../src/Group.ts","../src/Conversations.ts","../src/Preferences.ts","../src/UtilsWorkerClass.ts","../src/Utils.ts","../src/Client.ts","../src/constants.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["handleError","event","console","error","lineno","filename","message","ClientWorkerClass","worker","enableLogging","promises","Map","constructor","this","addEventListener","handleMessage","sendMessage","action","data","promiseId","v4","postMessage","id","Promise","resolve","reject","set","eventData","log","promise","get","delete","Error","result","handleStreamMessage","streamId","callback","streamHandler","removeEventListener","close","terminate","AsyncStream","done","resolveNext","rejectNext","queue","onReturn","undefined","onError","endStream","isDone","value","push","next","length","shift","return","Symbol","asyncIterator","toContentTypeId","contentTypeId","ContentTypeId","authorityId","typeId","versionMajor","versionMinor","fromContentTypeId","WasmContentTypeId","toSafeContentTypeId","fromSafeContentTypeId","toEncodedContent","content","type","parameters","Object","fromEntries","fallback","compression","fromEncodedContent","WasmEncodedContent","entries","toSafeEncodedContent","fromSafeEncodedContent","toSafeMessage","convoId","deliveryStatus","kind","senderInboxId","sentAtNs","toSafeListMessagesOptions","options","contentTypes","direction","limit","sentAfterNs","sentBeforeNs","fromSafeListMessagesOptions","ListMessagesOptions","toSafeListConversationsOptions","consentStates","createdAfterNs","createdBeforeNs","includeDuplicateDms","fromSafeListConversationsOptions","ListConversationsOptions","toSafePermissionPolicySet","policySet","addAdminPolicy","addMemberPolicy","removeAdminPolicy","removeMemberPolicy","updateGroupDescriptionPolicy","updateGroupImageUrlSquarePolicy","updateGroupNamePolicy","updateMessageDisappearingPolicy","fromSafePermissionPolicySet","PermissionPolicySet","toSafeCreateGroupOptions","customPermissionPolicySet","description","groupDescription","imageUrlSquare","groupImageUrlSquare","messageDisappearingSettings","toSafeMessageDisappearingSettings","name","groupName","permissions","fromSafeCreateGroupOptions","CreateGroupOptions","GroupPermissionsOptions","CustomPolicy","fromSafeMessageDisappearingSettings","toSafeCreateDmOptions","fromSafeCreateDmOptions","CreateDMOptions","toSafeConversation","async","conversation","imageUrl","isActive","addedByInboxId","metadata","admins","superAdmins","createdAtNs","policyType","toSafeInstallation","installation","bytes","clientTimestampNs","toSafeInboxState","inboxState","accountIdentifiers","inboxId","installations","map","recoveryIdentifier","toSafeConsent","consent","entity","entityType","state","fromSafeConsent","Consent","toSafeGroupMember","member","consentState","installationIds","permissionLevel","fromSafeGroupMember","GroupMember","toSafeHmacKey","hmacKey","key","epoch","settings","fromNs","inNs","MessageDisappearingSettings","toSafeKeyPackageStatus","status","lifetime","notBefore","not_before","notAfter","not_after","validationError","DecodedMessage","client","contentType","conversationId","encodedContent","GroupMessageKind","Application","MembershipChange","DeliveryStatus","Unpublished","Published","Failed","decodeContent","SignerUnavailableError","super","CodecNotFoundError","toString","InboxReassignError","AccountAlreadyAssociatedError","GenerateSignatureError","signatureType","SignatureRequestType","AddWallet","CreateInbox","RevokeWallet","RevokeInstallations","ChangeRecoveryIdentifier","InvalidGroupMembershipChangeError","messageId","MissingContentTypeError","Conversation","syncData","createdAt","ns","Date","Number","members","sync","publishMessages","sendOptimistic","safeEncodedContent","encodeContent","ContentTypeText","send","messages","updateConsentState","updateMessageDisappearingSettings","removeMessageDisappearingSettings","isMessageDisappearingEnabled","stream","asyncStream","err","groupId","pausedForVersion","getHmacKeys","Dm","peerInboxId","Group","updateName","updateImageUrl","updateDescription","listAdmins","listSuperAdmins","updatePermission","permissionType","policy","metadataField","isAdmin","includes","isSuperAdmin","addMembersByIdentifiers","identifiers","addMembers","inboxIds","removeMembersByIdentifiers","removeMembers","addAdmin","removeAdmin","addSuperAdmin","removeSuperAdmin","Conversations","syncAll","getConversationById","conversationType","getMessageById","getDmByInboxId","list","listGroups","listDms","newGroupWithIdentifiers","newGroup","newDmWithIdentifier","identifier","newDm","streamValue","streamGroups","ConversationType","streamDms","streamAllMessages","streamAllGroupMessages","streamAllDmMessages","Preferences","refreshFromNetwork","inboxStateFromInboxIds","getLatestInboxState","setConsentStates","records","getConsentState","streamConsent","streamPreferences","UtilsWorkerClass","init","Utils","Worker","URL","url","generateInboxId","getInboxIdForIdentifier","env","Client","codecs","conversations","installationId","installationIdBytes","isReady","preferences","signer","loggingLevel","GroupUpdatedCodec","TextCodec","codec","create","getIdentifier","disableAutoRegister","register","build","accountIdentifier","unsafe_createInboxSignatureText","unsafe_addAccountSignatureText","newIdentifier","allowInboxReassign","unsafe_removeAccountSignatureText","unsafe_revokeAllOtherInstallationsSignatureText","unsafe_revokeInstallationsSignatureText","unsafe_changeRecoveryIdentifierSignatureText","unsafe_addSignature","signatureText","signature","signMessage","chainId","getChainId","blockNumber","getBlockNumber","unsafe_applySignatures","unsafe_addAccount","newAccountSigner","existingInboxId","findInboxIdByIdentifier","removeAccount","revokeAllOtherInstallations","revokeInstallations","changeRecoveryIdentifier","isRegistered","canMessage","canMessageMap","utils","codecFor","encoded","encode","sameAs","ContentTypeGroupUpdated","decode","signWithInstallationKey","verifySignedWithInstallationKey","signatureBytes","verifySignedWithPublicKey","publicKey","getKeyPackageStatusesForInstallationIds","ApiUrls","local","dev","production","HistorySyncUrls"],"mappings":"uqCAaA,MAAMA,EAAeC,IACnBC,QAAQC,MAAM,wBAAwBF,EAAMG,cAAcH,EAAMI,aAChEH,QAAQC,MAAMF,EAAMK,QAAQ,QAGjBC,EACXC,GAEAC,GAEAC,GAAY,IAAIC,IAQhB,WAAAC,CAAYJ,EAAgBC,GAC1BI,MAAKL,EAAUA,EACfK,MAAKL,EAAQM,iBAAiB,UAAWD,KAAKE,eAC9CF,MAAKL,EAAQM,iBAAiB,QAASd,GACvCa,MAAKJ,EAAiBA,EAGxB,WAAAO,CACEC,EACAC,GAEA,MAAMC,EAAYC,IAClBP,MAAKL,EAAQa,YAAY,CACvBJ,SACAK,GAAIH,EACJD,SAQF,OANgB,IAAIK,SAA+B,CAACC,EAASC,KAC3DZ,MAAKH,EAAUgB,IAAIP,EAAW,CAC5BK,QAASA,EACTC,UACA,IAKNV,cACEd,IAEA,MAAM0B,EAAY1B,EAAMiB,KACpBL,MAAKJ,GACPP,QAAQ0B,IAAI,6BAA8BD,GAE5C,MAAME,EAAUhB,MAAKH,EAAUoB,IAAIH,EAAUL,IACzCO,IACFhB,MAAKH,EAAUqB,OAAOJ,EAAUL,IAC5B,UAAWK,EACbE,EAAQJ,OAAO,IAAIO,MAAML,EAAUxB,QAEnC0B,EAAQL,QAAQG,EAAUM,UAKhCC,oBAAsB,CACpBC,EACAC,KAEA,MAAMC,EACJpC,IAEA,MAAM0B,EAAY1B,EAAMiB,KACpBS,EAAUQ,WAAaA,IACrB,UAAWR,EACbS,EAAS,IAAIJ,MAAML,EAAUxB,OAAQ,MAErCiC,EAAS,KAAMT,EAAUM,UAM/B,OAFApB,MAAKL,EAAQM,iBAAiB,UAAWuB,GAElC,KACLxB,MAAKL,EAAQ8B,oBAAoB,UAAWD,EAAc,CAC3D,EAGH,KAAAE,GACE1B,MAAKL,EAAQ8B,oBAAoB,UAAWzB,KAAKE,eACjDF,MAAKL,EAAQ8B,oBAAoB,QAAStC,GAC1Ca,MAAKL,EAAQgC,mBCzFJC,EACXC,IAAQ,EACRC,GACAC,GACAC,GACA1C,GACA2C,cAAqCC,EACrCC,aAAgDD,EAEhD,WAAAnC,GACEC,MAAKgC,EAAS,GACdhC,MAAK8B,EAAe,KACpB9B,MAAK+B,EAAc,KACnB/B,MAAKV,EAAS,KACdU,MAAK6B,GAAQ,EAGf,EAAAO,GACEpC,MAAKgC,EAAS,GACdhC,MAAK8B,EAAe,KACpB9B,MAAK+B,EAAc,KACnB/B,MAAK6B,GAAQ,EAGf,SAAIvC,GACF,OAAOU,MAAKV,EAGd,UAAI+C,GACF,OAAOrC,MAAK6B,EAGdN,SAA8B,CAACjC,EAAOgD,KACpC,GAAIhD,EAOF,OANAU,MAAKV,EAASA,OACVU,MAAK+B,IACP/B,MAAK+B,EAAYzC,GACjBU,MAAKoC,IACLpC,KAAKmC,UAAU7C,KAKfU,MAAK6B,IAIL7B,MAAK8B,GACP9B,MAAK8B,EAAa,CAChBD,MAAM,EACNS,UAEFtC,MAAK8B,EAAe,MAEpB9B,MAAKgC,EAAOO,KAAKD,KAIrBE,KAAO,IACDxC,MAAKV,GACPU,MAAKoC,IACLpC,KAAKmC,UAAUnC,MAAKV,GACboB,QAAQE,OAAOZ,MAAKV,IAGzBU,MAAKgC,EAAOS,OAAS,EAChB/B,QAAQC,QAAQ,CACrBkB,MAAM,EACNS,MAAOtC,MAAKgC,EAAOU,UAInB1C,MAAK6B,EACAnB,QAAQC,QAAQ,CACrBkB,MAAM,EACNS,WAAOJ,IAIJ,IAAIxB,SAAQ,CAACC,EAASC,KAC3BZ,MAAK8B,EAAenB,EACpBX,MAAK+B,EAAcnB,CAAM,IAI7B+B,OAAUL,IACRtC,MAAKoC,IACLpC,KAAKiC,aACEvB,QAAQC,QAAQ,CACrBkB,MAAM,EACNS,WAIJ,CAACM,OAAOC,iBACN,OAAO7C,MC1EE,MAAA8C,EACXC,GAEA,IAAIC,EAAc,CAChBC,YAAaF,EAAcE,YAC3BC,OAAQH,EAAcG,OACtBC,aAAcJ,EAAcI,aAC5BC,aAAcL,EAAcK,eAGnBC,EACXN,GAEA,IAAIO,EACFP,EAAcE,YACdF,EAAcG,OACdH,EAAcI,aACdJ,EAAcK,cAULG,EACXR,IACuB,CACvBE,YAAaF,EAAcE,YAC3BC,OAAQH,EAAcG,OACtBC,aAAcJ,EAAcI,aAC5BC,aAAcL,EAAcK,eAGjBI,EACXT,GAEA,IAAIC,EAAc,CAChBC,YAAaF,EAAcE,YAC3BC,OAAQH,EAAcG,OACtBC,aAAcJ,EAAcI,aAC5BC,aAAcL,EAAcK,eAGnBK,EACXC,IACoB,CAEpBC,KAAMb,EAAgBY,EAAQC,MAC9BC,WAAYC,OAAOC,YAAYJ,EAAQE,YACvCG,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBN,QAASA,EAAQA,UAGNO,EACXP,GAEA,IAAIQ,EACFb,EAAkBK,EAAQC,MAC1B,IAAI7D,IAAI+D,OAAOM,QAAQT,EAAQE,aAC/BF,EAAQK,SACRL,EAAQM,YACRN,EAAQA,SAWCU,EACXV,IACwB,CACxBC,KAAMJ,EAAoBG,EAAQC,MAClCC,WAAYF,EAAQE,WACpBG,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBN,QAASA,EAAQA,UAGNW,EACXX,IACoB,CACpBC,KAAMH,EAAsBE,EAAQC,MACpCC,WAAYF,EAAQE,WACpBG,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBN,QAASA,EAAQA,UAaNY,EAAiB7E,IAAmC,CAC/DiE,QAASU,EAAqBX,EAAiBhE,EAAQiE,UACvDa,QAAS9E,EAAQ8E,QACjBC,eAAgB/E,EAAQ+E,eACxB/D,GAAIhB,EAAQgB,GACZgE,KAAMhF,EAAQgF,KACdC,cAAejF,EAAQiF,cACvBC,SAAUlF,EAAQkF,WAYPC,EACXC,IAC6B,CAC7BC,aAAcD,EAAQC,aACtBN,eAAgBK,EAAQL,eACxBO,UAAWF,EAAQE,UACnBC,MAAOH,EAAQG,MACfC,YAAaJ,EAAQI,YACrBC,aAAcL,EAAQK,eAGXC,EACXN,GAEA,IAAIO,EACFP,EAAQK,aACRL,EAAQI,YACRJ,EAAQG,MACRH,EAAQL,eACRK,EAAQE,UACRF,EAAQC,cAWCO,EACXR,IACkC,CAClCS,cAAeT,EAAQS,cACvBC,eAAgBV,EAAQU,eACxBC,gBAAiBX,EAAQW,gBACzBC,oBAAqBZ,EAAQY,oBAC7BT,MAAOH,EAAQG,QAGJU,EACXb,GAEA,IAAIc,EACFd,EAAQS,cACRT,EAAQU,eACRV,EAAQW,gBACRX,EAAQY,sBAAuB,EAC/BZ,EAAQG,OAcCY,EACXC,IAC6B,CAC7BC,eAAgBD,EAAUC,eAC1BC,gBAAiBF,EAAUE,gBAC3BC,kBAAmBH,EAAUG,kBAC7BC,mBAAoBJ,EAAUI,mBAC9BC,6BAA8BL,EAAUK,6BACxCC,gCAAiCN,EAAUM,gCAC3CC,sBAAuBP,EAAUO,sBACjCC,gCAAiCR,EAAUQ,kCAGhCC,EACXT,GAEA,IAAIU,EACFV,EAAUE,gBACVF,EAAUI,mBACVJ,EAAUC,eACVD,EAAUG,kBACVH,EAAUO,sBACVP,EAAUK,6BACVL,EAAUM,gCACVN,EAAUQ,iCAYDG,EACX3B,IAC4B,CAC5B4B,0BAA2B5B,EAAQ4B,0BACnCC,YAAa7B,EAAQ8B,iBACrBC,eAAgB/B,EAAQgC,oBACxBC,4BAA6BjC,EAAQiC,4BACjCC,EAAkClC,EAAQiC,kCAC1C5E,EACJ8E,KAAMnC,EAAQoC,UACdC,YAAarC,EAAQqC,cAGVC,EACXtC,GAEA,IAAIuC,EACFvC,EAAQqC,YACRrC,EAAQmC,KACRnC,EAAQ+B,eACR/B,EAAQ6B,YAER7B,EAAQ4B,2BACR5B,EAAQqC,cAAgBG,EAAwBC,aAC5ChB,EAA4BzB,EAAQ4B,gCACpCvE,EACJ2C,EAAQiC,4BACJS,EAAoC1C,EAAQiC,kCAC5C5E,GAOKsF,EACX3C,IACyB,CACzBiC,4BAA6BjC,EAAQiC,4BACjCC,EAAkClC,EAAQiC,kCAC1C5E,IAGOuF,EACX5C,GAEA,IAAI6C,EACF7C,EAAQiC,4BACJS,EAAoC1C,EAAQiC,kCAC5C5E,GAgCKyF,EAAqBC,MAChCC,IAEA,MAAMpH,EAAKoH,EAAapH,GAClBuG,EAAOa,EAAab,KACpBc,EAAWD,EAAaC,SACxBpB,EAAcmB,EAAanB,YAC3BQ,EAAcW,EAAaX,YAC3Ba,EAAWF,EAAaE,SACxBC,EAAiBH,EAAaG,eAC9BC,QAAiBJ,EAAaI,WAC9BC,EAASL,EAAaK,OACtBC,EAAcN,EAAaM,YAC3BC,EAAcP,EAAaO,YAC3BC,EAAanB,EAAYmB,WACzBxC,EAAYqB,EAAYrB,UAC9B,MAAO,CACLpF,KACAuG,OACAc,WACApB,cACAQ,YAAa,CACXmB,aACAxC,UAAW,CACTC,eAAgBD,EAAUC,eAC1BC,gBAAiBF,EAAUE,gBAC3BC,kBAAmBH,EAAUG,kBAC7BC,mBAAoBJ,EAAUI,mBAC9BC,6BAA8BL,EAAUK,6BACxCC,gCACEN,EAAUM,gCACZC,sBAAuBP,EAAUO,sBACjCC,gCACER,EAAUQ,kCAGhB0B,WACAC,iBACAC,WACAC,SACAC,cACAC,cACD,EASUE,EACXC,IACsB,CACtBC,MAAOD,EAAaC,MACpBC,kBAAmBF,EAAaE,kBAChChI,GAAI8H,EAAa9H,KAUNiI,EAAoBC,IAA4C,CAC3EC,mBAAoBD,EAAWC,mBAC/BC,QAASF,EAAWE,QACpBC,cAAeH,EAAWG,cAAcC,IAAIT,GAC5CU,mBAAoBL,EAAWK,qBASpBC,EAAiBC,IAAmC,CAC/DC,OAAQD,EAAQC,OAChBC,WAAYF,EAAQE,WACpBC,MAAOH,EAAQG,QAGJC,EAAmBJ,GAC9B,IAAIK,EAAQL,EAAQE,WAAYF,EAAQG,MAAOH,EAAQC,QAU5CK,EAAqBC,IAA0C,CAC1Eb,mBAAoBa,EAAOb,mBAC3Bc,aAAcD,EAAOC,aACrBb,QAASY,EAAOZ,QAChBc,gBAAiBF,EAAOE,gBACxBC,gBAAiBH,EAAOG,kBAGbC,EAAuBJ,GAClC,IAAIK,EACFL,EAAOZ,QACPY,EAAOb,mBACPa,EAAOE,gBACPF,EAAOG,gBACPH,EAAOC,cAQEK,EAAiBC,IAAmC,CAC/DC,IAAKD,EAAQC,IACbC,MAAOF,EAAQE,QAWJnD,EACXoD,IACqC,CACrCC,OAAQD,EAASC,OACjBC,KAAMF,EAASE,OAGJ9C,EACX4C,GAEA,IAAIG,EAA4BH,EAASC,OAAQD,EAASE,MAU/CE,EACXC,IAC0B,CAC1BC,SAAUD,EAAOC,SACb,CACEC,UAAWF,EAAOC,SAASE,WAC3BC,SAAUJ,EAAOC,SAASI,gBAE5B3I,EACJ4I,gBAAiBN,EAAOM,wBCtdbC,GACXC,GACAtH,QACAuH,YACAC,eACA1G,eACAT,SACAC,YACAvD,GACAgE,KACAb,WACAuH,eACAzG,cACAC,SAEA,WAAA5E,CAAYiL,EAAgBvL,GAQ1B,OAPAO,MAAKgL,EAAUA,EACfhL,KAAKS,GAAKhB,EAAQgB,GAClBT,KAAK2E,SAAWlF,EAAQkF,SACxB3E,KAAKkL,eAAiBzL,EAAQ8E,QAC9BvE,KAAK0E,cAAgBjF,EAAQiF,cAC7B1E,KAAKmL,eAAiB1L,EAAQiE,QAEtBjE,EAAQgF,MACd,KAAK2G,EAAiBC,YACpBrL,KAAKyE,KAAO,cACZ,MACF,KAAK2G,EAAiBE,iBACpBtL,KAAKyE,KAAO,oBAKhB,OAAQhF,EAAQ+E,gBACd,KAAK+G,EAAeC,YAClBxL,KAAKwE,eAAiB,cACtB,MACF,KAAK+G,EAAeE,UAClBzL,KAAKwE,eAAiB,YACtB,MACF,KAAK+G,EAAeG,OAClB1L,KAAKwE,eAAiB,SAK1BxE,KAAKiL,YAAczH,EAAsB/D,EAAQiE,QAAQC,MACzD3D,KAAK4D,WAAa,IAAI9D,IAAI+D,OAAOM,QAAQ1E,EAAQiE,QAAQE,aACzD5D,KAAK+D,SAAWtE,EAAQiE,QAAQK,SAChC/D,KAAKgE,YAAcvE,EAAQiE,QAAQM,YAEnC,IACEhE,KAAK0D,QAAU1D,MAAKgL,EAAQW,cAAiBlM,EAASO,KAAKiL,aAC3D,MACAjL,KAAK0D,aAAUxB,ICzEf,MAAO0J,WAA+BzK,MAC1C,WAAApB,GACE8L,MACE,2EAKA,MAAOC,WAA2B3K,MACtC,WAAApB,CAAYkL,GACVY,MAAM,wBAAwBZ,EAAYc,6BAIxC,MAAOC,WAA2B7K,MACtC,WAAApB,GACE8L,MACE,mFAKA,MAAOI,WAAsC9K,MACjD,WAAApB,CAAY8I,GACVgD,MAAM,yCAAyChD,MAI7C,MAAOqD,WAA+B/K,MAC1C,WAAApB,CAAYoM,GACV,IAAIxI,EAAO,GAEX,OAAQwI,GACN,KAAKC,EAAqBC,UACxB1I,EAAO,cACP,MACF,KAAKyI,EAAqBE,YACxB3I,EAAO,eACP,MACF,KAAKyI,EAAqBG,aACxB5I,EAAO,iBACP,MACF,KAAKyI,EAAqBI,oBACxB7I,EAAO,uBACP,MACF,KAAKyI,EAAqBK,yBACxB9I,EAAO,6BAIXkI,MAAM,sBAAsBlI,qBAgB1B,MAAO+I,WAA0CvL,MACrD,WAAApB,CAAY4M,GACVd,MAAM,+CAA+Cc,MAInD,MAAOC,WAAgCzL,MAC3C,WAAApB,GACE8L,MAAM,wEC/DGgB,GACX7E,GACAgD,GACA5C,GACA3H,GACAsH,GACAE,GASA,WAAAlI,CAAYiL,EAAgBvK,EAAYJ,GACtCL,MAAKgL,EAAUA,EACfhL,MAAKS,EAAMA,EACXT,MAAK8M,EAAUzM,GAGjB,EAAAyM,CAAUzM,GACRL,MAAK+H,EAAY1H,GAAM0H,eAAY7F,EACnClC,MAAKgI,EAAkB3H,GAAM2H,gBAAkB,GAC/ChI,MAAKiI,EAAY5H,GAAM4H,eAAY/F,EACnClC,MAAKoI,EAAe/H,GAAM+H,kBAAelG,EAG3C,MAAIzB,GACF,OAAOT,MAAKS,EAGd,YAAIsH,GACF,OAAO/H,MAAK+H,EAGd,kBAAIC,GACF,OAAOhI,MAAKgI,EAGd,eAAII,GACF,OAAOpI,MAAKoI,EAGd,aAAI2E,GACF,OAAO/M,MAAKoI,GCjES4E,EDiEehN,MAAKoI,EChEpC,IAAI6E,KAAKC,OAAOF,EAAK,iBDgE+B9K,ECjEvD,IAAmB8K,EDoEvB,YAAI/E,GACF,OAAOjI,MAAKiI,EAQd,aAAMkF,GACJ,OAAOnN,MAAKgL,EAAQ7K,YAAY,kBAAmB,CACjDM,GAAIT,MAAKS,IASb,UAAM2M,GACJ,MAAM/M,QAAaL,MAAKgL,EAAQ7K,YAAY,YAAa,CACvDM,GAAIT,MAAKS,IAGX,OADAT,MAAK8M,EAAUzM,GACRA,EAQT,qBAAMgN,GACJ,OAAOrN,MAAKgL,EAAQ7K,YAAY,uBAAwB,CACtDM,GAAIT,MAAKS,IAYb,oBAAM6M,CAAe5J,EAAkBuH,GACrC,GAAuB,iBAAZvH,IAAyBuH,EAClC,MAAM,IAAI2B,GAGZ,MAAMW,EACe,iBAAZ7J,EACH1D,MAAKgL,EAAQwC,cAAc9J,EAASuH,GAAewC,GAEnDzN,MAAKgL,EAAQwC,cAAc9J,EAASuH,GAE1C,OAAOjL,MAAKgL,EAAQ7K,YAAY,6BAA8B,CAC5DM,GAAIT,MAAKS,EACTiD,QAAS6J,IAYb,UAAMG,CAAKhK,EAAkBuH,GAC3B,GAAuB,iBAAZvH,IAAyBuH,EAClC,MAAM,IAAI2B,GAGZ,MAAMW,EACe,iBAAZ7J,EACH1D,MAAKgL,EAAQwC,cAAc9J,EAASuH,GAAewC,GAEnDzN,MAAKgL,EAAQwC,cAAc9J,EAASuH,GAE1C,OAAOjL,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAClDM,GAAIT,MAAKS,EACTiD,QAAS6J,IAUb,cAAMI,CAAS9I,GAMb,aALuB7E,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAClEM,GAAIT,MAAKS,EACToE,aAGckE,KAAKtJ,GAAY,IAAIsL,GAAe/K,MAAKgL,EAASvL,KAQpE,kBAAMiK,GACJ,OAAO1J,MAAKgL,EAAQ7K,YAAY,uBAAwB,CACtDM,GAAIT,MAAKS,IAUb,wBAAMmN,CAAmBvE,GACvB,OAAOrJ,MAAKgL,EAAQ7K,YAAY,0BAA2B,CACzDM,GAAIT,MAAKS,EACT4I,UASJ,iCAAMvC,GACJ,OAAO9G,MAAKgL,EAAQ7K,YAAY,sCAAuC,CACrEM,GAAIT,MAAKS,IAWb,uCAAMoN,CAAkCzD,EAAgBC,GACtD,OAAOrK,MAAKgL,EAAQ7K,YAAY,yCAA0C,CACxEM,GAAIT,MAAKS,EACT2J,SACAC,SASJ,uCAAMyD,GACJ,OAAO9N,MAAKgL,EAAQ7K,YAAY,yCAA0C,CACxEM,GAAIT,MAAKS,IASb,kCAAMsN,GACJ,OAAO/N,MAAKgL,EAAQ7K,YAAY,oCAAqC,CACnEM,GAAIT,MAAKS,IAUb,YAAMuN,CAAOzM,GACX,MAAMD,EAAWf,IACX0N,EAAc,IAAIrM,EAClBQ,EAAYpC,MAAKgL,EAAQ3J,oBAC7BC,GACA,CAAChC,EAAOgD,KACN,IACI7C,EADAyO,EAAoB5O,EAGxB,GAAIgD,EACF,IACE7C,EAAU,IAAIsL,GAAe/K,MAAKgL,EAAS1I,GAC3C,MAAOhD,GACP4O,EAAM5O,EAIL2O,EAAY1M,SAAS2M,EAAKzO,GAC1B8B,IAAW2M,EAAKzO,EAAQ,IAajC,aAVMO,MAAKgL,EAAQ7K,YAAY,sBAAuB,CACpDgO,QAASnO,MAAKS,EACda,aAEF2M,EAAYhM,SAAW,KAChBjC,MAAKgL,EAAQ7K,YAAY,YAAa,CACzCmB,aAEFc,GAAW,EAEN6L,EAGT,sBAAMG,GACJ,OAAOpO,MAAKgL,EAAQ7K,YAAY,2BAA4B,CAC1DM,GAAIT,MAAKS,IASb,iBAAM4N,GACJ,OAAOrO,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAClDM,GAAIT,MAAKS,KEhST,MAAO6N,WAAWzB,GACtB7B,GACAvK,GASA,WAAAV,CAAYiL,EAAgBvK,EAAYJ,GACtCwL,MAAMb,EAAQvK,EAAIJ,GAClBL,MAAKgL,EAAUA,EACfhL,MAAKS,EAAMA,EAQb,iBAAM8N,GACJ,OAAOvO,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAClDM,GAAIT,MAAKS,KClBT,MAAO+N,WAAc3B,GACzB3E,GAAsC,GACtC8C,GACAtE,GACAjG,GACAqH,GACAd,GACAmB,GAAgD,GAEhD,EAAA2E,CAAUzM,GACRL,MAAKgH,EAAQ3G,GAAM2G,MAAQ,GAC3BhH,MAAK8H,EAAYzH,GAAMyH,UAAY,GACnC9H,MAAK0G,EAAerG,GAAMqG,aAAe,GACzC1G,MAAKkI,EAAU7H,GAAM6H,QAAU,GAC/BlI,MAAKmI,EAAe9H,GAAM8H,aAAe,GAU3C,WAAApI,CAAYiL,EAAgBvK,EAAYJ,GACtCwL,MAAMb,EAAQvK,EAAIJ,GAClBL,MAAKgL,EAAUA,EACfhL,MAAKS,EAAMA,EACXT,MAAK8M,EAAUzM,GAQjB,UAAM+M,GACJ,MAAM/M,QAAawL,MAAMuB,OAEzB,OADApN,MAAK8M,EAAUzM,GACRA,EAMT,QAAI2G,GACF,OAAOhH,MAAKgH,EAQd,gBAAMyH,CAAWzH,SACThH,MAAKgL,EAAQ7K,YAAY,kBAAmB,CAChDM,GAAIT,MAAKS,EACTuG,SAEFhH,MAAKgH,EAAQA,EAMf,YAAIc,GACF,OAAO9H,MAAK8H,EAQd,oBAAM4G,CAAe5G,SACb9H,MAAKgL,EAAQ7K,YAAY,4BAA6B,CAC1DM,GAAIT,MAAKS,EACTqH,aAEF9H,MAAK8H,EAAYA,EAMnB,eAAIpB,GACF,OAAO1G,MAAK0G,EAQd,uBAAMiI,CAAkBjI,SAChB1G,MAAKgL,EAAQ7K,YAAY,yBAA0B,CACvDM,GAAIT,MAAKS,EACTiG,gBAEF1G,MAAK0G,EAAeA,EAMtB,UAAIwB,GACF,OAAOlI,MAAKkI,EAMd,eAAIC,GACF,OAAOnI,MAAKmI,EAQd,gBAAMyG,GACJ,MAAM1G,QAAelI,MAAKgL,EAAQ7K,YAAY,iBAAkB,CAC9DM,GAAIT,MAAKS,IAGX,OADAT,MAAKkI,EAAUA,EACRA,EAQT,qBAAM2G,GACJ,MAAM1G,QAAoBnI,MAAKgL,EAAQ7K,YAAY,sBAAuB,CACxEM,GAAIT,MAAKS,IAGX,OADAT,MAAKmI,EAAeA,EACbA,EAQT,iBAAMjB,GACJ,OAAOlH,MAAKgL,EAAQ7K,YAAY,sBAAuB,CACrDM,GAAIT,MAAKS,IAWb,sBAAMqO,CACJC,EACAC,EACAC,GAEA,OAAOjP,MAAKgL,EAAQ7K,YAAY,8BAA+B,CAC7DM,GAAIT,MAAKS,EACTsO,iBACAC,SACAC,kBAUJ,aAAMC,CAAQrG,GAEZ,aADqB7I,KAAK4O,cACZO,SAAStG,GASzB,kBAAMuG,CAAavG,GAEjB,aAD0B7I,KAAK6O,mBACZM,SAAStG,GAQ9B,6BAAMwG,CAAwBC,GAC5B,OAAOtP,MAAKgL,EAAQ7K,YAAY,kBAAmB,CACjDM,GAAIT,MAAKS,EACT6O,gBASJ,gBAAMC,CAAWC,GACf,OAAOxP,MAAKgL,EAAQ7K,YAAY,2BAA4B,CAC1DM,GAAIT,MAAKS,EACT+O,aASJ,gCAAMC,CAA2BH,GAC/B,OAAOtP,MAAKgL,EAAQ7K,YAAY,qBAAsB,CACpDM,GAAIT,MAAKS,EACT6O,gBASJ,mBAAMI,CAAcF,GAClB,OAAOxP,MAAKgL,EAAQ7K,YAAY,8BAA+B,CAC7DM,GAAIT,MAAKS,EACT+O,aASJ,cAAMG,CAAS9G,GACb,OAAO7I,MAAKgL,EAAQ7K,YAAY,gBAAiB,CAC/CM,GAAIT,MAAKS,EACToI,YASJ,iBAAM+G,CAAY/G,GAChB,OAAO7I,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAClDM,GAAIT,MAAKS,EACToI,YASJ,mBAAMgH,CAAchH,GAClB,OAAO7I,MAAKgL,EAAQ7K,YAAY,qBAAsB,CACpDM,GAAIT,MAAKS,EACToI,YASJ,sBAAMiH,CAAiBjH,GACrB,OAAO7I,MAAKgL,EAAQ7K,YAAY,wBAAyB,CACvDM,GAAIT,MAAKS,EACToI,mBCtROkH,GACX/E,GAOA,WAAAjL,CAAYiL,GACVhL,MAAKgL,EAAUA,EAQjB,UAAMoC,GACJ,OAAOpN,MAAKgL,EAAQ7K,YAAY,yBAAqB+B,GAWvD,aAAM8N,CAAQ1K,GACZ,OAAOtF,MAAKgL,EAAQ7K,YAAY,uBAAwB,CACtDmF,kBAUJ,yBAAM2K,CAAoBxP,GACxB,MAAMJ,QAAaL,MAAKgL,EAAQ7K,YAAY,sBAAuB,CACjEM,OAEF,GAAIJ,EACF,MAA0C,UAAnCA,EAAK4H,SAASiI,iBACjB,IAAI1B,GAAMxO,MAAKgL,EAAS3K,EAAKI,GAAIJ,GACjC,IAAIiO,GAAGtO,MAAKgL,EAAS3K,EAAKI,GAAIJ,GAWtC,oBAAM8P,CAA4B1P,GAChC,MAAMJ,QAAaL,MAAKgL,EAAQ7K,YAAY,iBAAkB,CAC5DM,OAEF,OAAOJ,EAAO,IAAI0K,GAAkB/K,MAAKgL,EAAS3K,QAAQ6B,EAS5D,oBAAMkO,CAAevH,GACnB,MAAMxI,QAAaL,MAAKgL,EAAQ7K,YAAY,iBAAkB,CAC5D0I,YAEF,OAAOxI,EAAO,IAAIiO,GAAGtO,MAAKgL,EAAS3K,EAAKI,GAAIJ,QAAQ6B,EAStD,UAAMmO,CAAKxL,GAKT,aAJ4B7E,MAAKgL,EAAQ7K,YAAY,mBAAoB,CACvE0E,aAGmBkE,KAAKlB,GACmB,UAA3CA,EAAaI,SAASiI,iBAClB,IAAI1B,GAAMxO,MAAKgL,EAASnD,EAAapH,GAAIoH,GACzC,IAAIyG,GAAGtO,MAAKgL,EAASnD,EAAapH,GAAIoH,KAU9C,gBAAMyI,CACJzL,GAMA,aAJ4B7E,MAAKgL,EAAQ7K,YAAY,YAAa,CAChE0E,aAGmBkE,KAClBlB,GAAiB,IAAI2G,GAAMxO,MAAKgL,EAASnD,EAAapH,GAAIoH,KAU/D,aAAM0I,CACJ1L,GAMA,aAJ4B7E,MAAKgL,EAAQ7K,YAAY,SAAU,CAC7D0E,aAGmBkE,KAClBlB,GAAiB,IAAIyG,GAAGtO,MAAKgL,EAASnD,EAAapH,GAAIoH,KAW5D,6BAAM2I,CACJlB,EACAzK,GAEA,MAAMgD,QAAqB7H,MAAKgL,EAAQ7K,YACtC,0BACA,CACEmP,cACAzK,YAIJ,OAAO,IAAI2J,GAAMxO,MAAKgL,EAASnD,EAAapH,GAAIoH,GAUlD,cAAM4I,CAASjB,EAAoB3K,GACjC,MAAMgD,QAAqB7H,MAAKgL,EAAQ7K,YACtC,uBACA,CACEqP,WACA3K,YAIJ,OAAO,IAAI2J,GAAMxO,MAAKgL,EAASnD,EAAapH,GAAIoH,GAUlD,yBAAM6I,CACJC,EACA9L,GAEA,MAAMgD,QAAqB7H,MAAKgL,EAAQ7K,YAAY,sBAAuB,CACzEwQ,aACA9L,YAGF,OAAO,IAAIyJ,GAAGtO,MAAKgL,EAASnD,EAAapH,GAAIoH,GAU/C,WAAM+I,CAAM/H,EAAiBhE,GAC3B,MAAMgD,QAAqB7H,MAAKgL,EAAQ7K,YAAY,mBAAoB,CACtE0I,UACAhE,YAGF,OAAO,IAAIyJ,GAAGtO,MAAKgL,EAASnD,EAAapH,GAAIoH,GAQ/C,iBAAMwG,GACJ,OAAOrO,MAAKgL,EAAQ7K,YAAY,mBAAe+B,GAUjD,YAAM8L,CACJzM,EACA2O,GAEA,MAAM5O,EAAWf,IACX0N,EAAc,IAAIrM,EAClBQ,EAAYpC,MAAKgL,EAAQ3J,oBAC7BC,GACA,CAAChC,EAAOgD,KACN,IACIuO,EADA3C,EAAoB5O,EAGxB,GAAIgD,EACF,IACEuO,EACsC,UAApCvO,EAAM2F,SAASiI,iBACV,IAAI1B,GAAMxO,MAAKgL,EAAS1I,EAAM7B,GAAI6B,GAClC,IAAIgM,GAAGtO,MAAKgL,EAAS1I,EAAM7B,GAAI6B,GACtC,MAAOhD,GACP4O,EAAM5O,EAIL2O,EAAY1M,SAAS2M,EAAK2C,GAC1BtP,IAAW2M,EAAK2C,EAAY,IAarC,aAVM7Q,MAAKgL,EAAQ7K,YAAY,kBAAmB,CAChDmB,WACA4O,qBAEFjC,EAAYhM,SAAW,KAChBjC,MAAKgL,EAAQ7K,YAAY,YAAa,CACzCmB,aAEFc,GAAW,EAEN6L,EAST,kBAAM6C,CAAavP,GACjB,OAAOvB,KAAKgO,OAAczM,EAAUwP,EAAiBvC,OASvD,eAAMwC,CAAUzP,GACd,OAAOvB,KAAKgO,OAAWzM,EAAUwP,EAAiBzC,IAUpD,uBAAM2C,CACJ1P,EACA2O,GAEA,MAAM5O,EAAWf,IACX0N,EAAc,IAAIrM,EAClBQ,EAAYpC,MAAKgL,EAAQ3J,oBAC7BC,GACA,CAAChC,EAAOgD,KACN,IACI7C,EADAyO,EAAoB5O,EAGxB,GAAIgD,EACF,IACE7C,EAAU,IAAIsL,GAAe/K,MAAKgL,EAAS1I,GAC3C,MAAOhD,GACP4O,EAAM5O,EAIL2O,EAAY1M,SAAS2M,EAAKzO,GAC1B8B,IAAW2M,EAAKzO,EAAQ,IAajC,aAVMO,MAAKgL,EAAQ7K,YAAY,oBAAqB,CAClDmB,WACA4O,qBAEFjC,EAAYhM,SAAW,KAChBjC,MAAKgL,EAAQ7K,YAAY,YAAa,CACzCmB,aAEFc,GAAW,EAEN6L,EAST,4BAAMiD,CAAuB3P,GAC3B,OAAOvB,KAAKiR,kBAAkB1P,EAAUwP,EAAiBvC,OAS3D,yBAAM2C,CAAoB5P,GACxB,OAAOvB,KAAKiR,kBAAkB1P,EAAUwP,EAAiBzC,WCvWhD8C,GACXpG,GAOA,WAAAjL,CAAYiL,GACVhL,MAAKgL,EAAUA,EASjB,gBAAMrC,CAAW0I,GACf,OAAOrR,MAAKgL,EAAQ7K,YAAY,aAAc,CAC5CkR,mBAAoBA,IAAsB,IAW9C,4BAAMC,CACJ9B,EACA6B,GAEA,OAAOrR,MAAKgL,EAAQ7K,YAAY,yBAA0B,CACxDqP,WACA6B,mBAAoBA,IAAsB,IAU9C,yBAAME,CAAoB1I,GACxB,OAAO7I,MAAKgL,EAAQ7K,YAAY,sBAAuB,CAAE0I,YAS3D,sBAAM2I,CAAiBC,GACrB,OAAOzR,MAAKgL,EAAQ7K,YAAY,mBAAoB,CAAEsR,YAUxD,qBAAMC,CAAgBtI,EAA+BD,GACnD,OAAOnJ,MAAKgL,EAAQ7K,YAAY,kBAAmB,CAAEiJ,aAAYD,WASnE,mBAAMwI,CAAcpQ,GAClB,MAAMD,EAAWf,IACX0N,EAAc,IAAIrM,EAClBQ,EAAYpC,MAAKgL,EAAQ3J,oBAC7BC,GACA,CAAChC,EAAOgD,KACD2L,EAAY1M,SAASjC,EAAOgD,QAASJ,GACrCX,IAAWjC,EAAOgD,QAASJ,EAAU,IAY9C,aATMlC,MAAKgL,EAAQ7K,YAAY,gBAAiB,CAC9CmB,aAEF2M,EAAYhM,SAAW,KAChBjC,MAAKgL,EAAQ7K,YAAY,YAAa,CACzCmB,aAEFc,GAAW,EAEN6L,EAST,uBAAM2D,CAAkBrQ,GACtB,MAAMD,EAAWf,IACX0N,EAAc,IAAIrM,EAClBQ,EAAYpC,MAAKgL,EAAQ3J,oBAC7BC,GACA,CAAChC,EAAOgD,KACD2L,EAAY1M,SAASjC,EAAOgD,QAASJ,GACrCX,IAAWjC,EAAOgD,QAASJ,EAAU,IAY9C,aATMlC,MAAKgL,EAAQ7K,YAAY,oBAAqB,CAClDmB,aAEF2M,EAAYhM,SAAW,KAChBjC,MAAKgL,EAAQ7K,YAAY,YAAa,CACzCmB,aAEFc,GAAW,EAEN6L,GC/HX,MAAM9O,GAAeC,IACnBC,QAAQC,MAAM,wBAAwBF,EAAMG,cAAcH,EAAMI,aAChEH,QAAQC,MAAMF,EAAMK,QAAQ,QAGjBoS,GACXlS,GAEAC,GAEAC,GAAY,IAAIC,IAKhB,WAAAC,CAAYJ,EAAgBC,GAC1BI,MAAKL,EAAUA,EACfK,MAAKL,EAAQM,iBAAiB,UAAWD,KAAKE,eAC9CF,MAAKL,EAAQM,iBAAiB,QAASd,IACvCa,MAAKJ,EAAiBA,EACjBI,KAAK8R,KAAKlS,GAGjB,UAAMkS,CAAKlS,GACT,OAAOI,KAAKG,YAAY,OAAQ,CAC9BP,kBAIJ,WAAAO,CACEC,EACAC,GAEA,MAAMC,EAAYC,IAClBP,MAAKL,EAAQa,YAAY,CACvBJ,SACAK,GAAIH,EACJD,SAQF,OANgB,IAAIK,SAA8B,CAACC,EAASC,KAC1DZ,MAAKH,EAAUgB,IAAIP,EAAW,CAC5BK,QAASA,EACTC,UACA,IAKNV,cACEd,IAEA,MAAM0B,EAAY1B,EAAMiB,KACpBL,MAAKJ,GACPP,QAAQ0B,IAAI,4BAA6BD,GAE3C,MAAME,EAAUhB,MAAKH,EAAUoB,IAAIH,EAAUL,IACzCO,IACFhB,MAAKH,EAAUqB,OAAOJ,EAAUL,IAC5B,UAAWK,EACbE,EAAQJ,OAAO,IAAIO,MAAML,EAAUxB,QAEnC0B,EAAQL,QAAQG,EAAUM,UAKhC,KAAAM,GACE1B,MAAKL,EAAQ8B,oBAAoB,UAAWzB,KAAKE,eACjDF,MAAKL,EAAQ8B,oBAAoB,QAAStC,IAC1Ca,MAAKL,EAAQgC,aCvEX,MAAOoQ,WAAcF,GAMzB,WAAA9R,CAAYH,GAIViM,MAHe,IAAImG,OAAO,IAAIC,IAAI,8BAA+BC,KAAM,CACrEvO,KAAM,WAEM/D,IAAiB,GASjC,qBAAMuS,CAAgBxB,GACpB,OAAO3Q,KAAKG,YAAY,kBAAmB,CACzCwQ,eAWJ,6BAAMyB,CAAwBzB,EAAwB0B,GACpD,OAAOrS,KAAKG,YAAY,0BAA2B,CACjDwQ,aACA0B,SCLA,MAAOC,WAAe5S,EAC1B6S,GACAC,GACA7B,GACA9H,GACA4J,GACAC,GACAC,IAAW,EACXC,GACAC,GACAhO,GAUA,WAAA9E,CAAY8E,GAIVgH,MAHe,IAAImG,OAAO,IAAIC,IAAI,+BAAgCC,KAAM,CACtEvO,KAAM,gBAIoBzB,IAA1B2C,GAASiO,cAAuD,QAAzBjO,EAAQiO,cAEjD9S,MAAK6E,EAAWA,EAChB7E,MAAKwS,EAAiB,IAAIzC,GAAc/P,MACxCA,MAAK4S,EAAe,IAAIxB,GAAYpR,MACpC,MAAMuS,EAAS,CACb,IAAIQ,EACJ,IAAIC,KACAnO,GAAS0N,QAAU,IAEzBvS,MAAKuS,EAAU,IAAIzS,IACjByS,EAAOxJ,KAAKkK,GAAU,CAACA,EAAMhI,YAAYc,WAAYkH,MAYzD,UAAMnB,CAAKnB,GACT,MAAMvP,QAAepB,KAAKG,YAAY,OAAQ,CAC5CwQ,aACA9L,QAAS7E,MAAK6E,IAEhB7E,MAAK2Q,EAAcA,EACnB3Q,MAAK6I,EAAWzH,EAAOyH,QACvB7I,MAAKyS,EAAkBrR,EAAOqR,eAC9BzS,MAAK0S,EAAuBtR,EAAOsR,oBACnC1S,MAAK2S,GAAW,EAUlB,mBAAaO,CAAOL,EAAgBhO,GAClC,MAAMmG,EAAS,IAAIsH,GAAOzN,GAS1B,OARAmG,GAAO6H,EAAUA,QAEX7H,EAAO8G,WAAWe,EAAOM,iBAE1BtO,GAASuO,2BACNpI,EAAOqI,WAGRrI,EAaT,kBAAasI,CAAM3C,EAAwB9L,GACzC,MAAMmG,EAAS,IAAIsH,GAAO,IACrBzN,EACHuO,qBAAqB,IAGvB,aADMpI,EAAO8G,KAAKnB,GACX3F,EAMT,WAAInG,GACF,OAAO7E,MAAK6E,EAMd,UAAIgO,GACF,OAAO7S,MAAK6S,EAMd,WAAIF,GACF,OAAO3S,MAAK2S,EAMd,WAAI9J,GACF,OAAO7I,MAAK6I,EAMd,qBAAI0K,GACF,OAAOvT,MAAK2Q,EAMd,kBAAI8B,GACF,OAAOzS,MAAKyS,EAMd,uBAAIC,GACF,OAAO1S,MAAK0S,EAMd,iBAAIF,GACF,OAAOxS,MAAKwS,EAMd,eAAII,GACF,OAAO5S,MAAK4S,EAcd,qCAAMY,GACJ,OAAOxT,KAAKG,YAAY,gCAA4B+B,GAgBtD,oCAAMuR,CACJC,EACAC,GAA8B,GAE9B,IAAKA,EACH,MAAM,IAAI3H,GAGZ,OAAOhM,KAAKG,YAAY,0BAA2B,CACjDuT,kBAgBJ,uCAAME,CAAkCjD,GACtC,OAAO3Q,KAAKG,YAAY,6BAA8B,CACpDwQ,eAgBJ,qDAAMkD,GACJ,OAAO7T,KAAKG,YACV,gDACA+B,GAiBJ,6CAAM4R,CAAwCnK,GAC5C,OAAO3J,KAAKG,YAAY,mCAAoC,CAC1DwJ,oBAiBJ,kDAAMoK,CAA6CpD,GACjD,OAAO3Q,KAAKG,YAAY,wCAAyC,CAC/DwQ,eAoBJ,yBAAMqD,CACJ7H,EACA8H,EACApB,GAEA,MAAMqB,QAAkBrB,EAAOsB,YAAYF,GAE3C,OAAQpB,EAAOlP,MACb,IAAK,YACG3D,KAAKG,YAAY,kBAAmB,CACxCwD,KAAMwI,EACN3D,MAAO0L,EACPE,QAASvB,EAAOwB,aAChBC,YAAazB,EAAO0B,qBAEtB,MACF,IAAK,YACGvU,KAAKG,YAAY,oBAAqB,CAC1CwD,KAAMwI,EACN3D,MAAO0L,KAiBf,4BAAMM,GACJ,OAAOxU,KAAKG,YAAY,uBAAmB+B,GAU7C,cAAMmR,GACJ,IAAKrT,MAAK6S,EACR,MAAM,IAAIjH,GAGZ,MAAMqI,QAAsBjU,KAAKwT,kCAGjC,GAAKS,EAUL,aANMjU,KAAKgU,oBACT5H,EAAqBE,YACrB2H,EACAjU,MAAK6S,GAGA7S,KAAKG,YAAY,wBAAoB+B,GAqB9C,uBAAMuS,CACJC,EACAf,GAA8B,GAG9B,MAAMgB,QAAwB3U,KAAK4U,8BAC3BF,EAAiBvB,iBAGzB,GAAIwB,IAAoBhB,EACtB,MAAM,IAAI1H,GAA8B0I,GAG1C,MAAMV,QAAsBjU,KAAKyT,qCACzBiB,EAAiBvB,iBACvB,GAGF,IAAKc,EACH,MAAM,IAAI/H,GAAuBE,EAAqBC,iBAGlDrM,KAAKgU,oBACT5H,EAAqBC,UACrB4H,EACAS,SAGI1U,KAAKwU,yBAYb,mBAAMK,CAActB,GAClB,IAAKvT,MAAK6S,EACR,MAAM,IAAIjH,GAGZ,MAAMqI,QACEjU,KAAK4T,kCAAkCL,GAE/C,IAAKU,EACH,MAAM,IAAI/H,GAAuBE,EAAqBG,oBAGlDvM,KAAKgU,oBACT5H,EAAqBG,aACrB0H,EACAjU,MAAK6S,SAGD7S,KAAKwU,yBAWb,iCAAMM,GACJ,IAAK9U,MAAK6S,EACR,MAAM,IAAIjH,GAGZ,MAAMqI,QACEjU,KAAK6T,kDAEb,IAAKI,EACH,MAAM,IAAI/H,GACRE,EAAqBI,2BAInBxM,KAAKgU,oBACT5H,EAAqBI,oBACrByH,EACAjU,MAAK6S,SAGD7S,KAAKwU,yBAYb,yBAAMO,CAAoBpL,GACxB,IAAK3J,MAAK6S,EACR,MAAM,IAAIjH,GAGZ,MAAMqI,QACEjU,KAAK8T,wCAAwCnK,GAErD,IAAKsK,EACH,MAAM,IAAI/H,GACRE,EAAqBI,2BAInBxM,KAAKgU,oBACT5H,EAAqBI,oBACrByH,EACAjU,MAAK6S,SAGD7S,KAAKwU,yBAYb,8BAAMQ,CAAyBrE,GAC7B,IAAK3Q,MAAK6S,EACR,MAAM,IAAIjH,GAGZ,MAAMqI,QACEjU,KAAK+T,6CAA6CpD,GAE1D,IAAKsD,EACH,MAAM,IAAI/H,GACRE,EAAqBK,gCAInBzM,KAAKgU,oBACT5H,EAAqBK,yBACrBwH,EACAjU,MAAK6S,SAGD7S,KAAKwU,yBAQb,kBAAMS,GACJ,OAAOjV,KAAKG,YAAY,oBAAgB+B,GAS1C,gBAAMgT,CAAW5F,GACf,OAAOtP,KAAKG,YAAY,aAAc,CAAEmP,gBAU1C,uBAAa4F,CAAW5F,EAA2B+C,GACjD,MAAM8C,EAAgB,IAAIrV,IACpBsV,EAAQ,IAAIrD,GAClB,IAAK,MAAMpB,KAAcrB,EAAa,CACpC,MAAMzG,QAAgBuM,EAAMhD,wBAAwBzB,EAAY0B,GAChE8C,EAActU,IAAI8P,EAAWA,gBAAwBzO,IAAZ2G,GAG3C,OADAuM,EAAM1T,QACCyT,EAST,6BAAMP,CAAwBjE,GAC5B,OAAO3Q,KAAKG,YAAY,0BAA2B,CAAEwQ,eASvD,QAAA0E,CAAsBpK,GACpB,OAAOjL,MAAKuS,EAAQtR,IAAIgK,EAAYc,YAatC,aAAAyB,CAAc9J,EAAkBuH,GAC9B,MAAMgI,EAAQjT,KAAKqV,SAASpK,GAC5B,IAAKgI,EACH,MAAM,IAAInH,GAAmBb,GAE/B,MAAMqK,EAAUrC,EAAMsC,OAAO7R,EAAS1D,MAChC+D,EAAWkP,EAAMlP,SAASL,GAIhC,OAHIK,IACFuR,EAAQvR,SAAWA,GAEdK,EAAqBkR,GAY9B,aAAA3J,CAA2BlM,EAAsBwL,GAC/C,MAAMgI,EAAQjT,KAAKqV,SAAYpK,GAC/B,IAAKgI,EACH,MAAM,IAAInH,GAAmBb,GAI/B,GACEA,EAAYuK,OAAOC,IACnBhW,EAAQgF,OAAS2G,EAAiBE,iBAElC,MAAM,IAAIoB,GAAkCjN,EAAQgB,IAGtD,MAAM0K,EAAiB9G,EAAuB5E,EAAQiE,SAEtD,OAAOuP,EAAMyC,OAAOvK,EAAgBnL,MAStC,uBAAA2V,CAAwB1B,GACtB,OAAOjU,KAAKG,YAAY,0BAA2B,CAAE8T,kBAUvD,+BAAA2B,CACE3B,EACA4B,GAEA,OAAO7V,KAAKG,YAAY,kCAAmC,CACzD8T,gBACA4B,mBAYJ,yBAAAC,CACE7B,EACA4B,EACAE,GAEA,OAAO/V,KAAKG,YAAY,4BAA6B,CACnD8T,gBACA4B,iBACAE,cAUJ,6CAAMC,CAAwCrM,GAC5C,OAAO3J,KAAKG,YAAY,0CAA2C,CACjEwJ,qBCztBO,MAAAsM,GAAU,CACrBC,MAAO,wBACPC,IAAK,2BACLC,WAAY,mCAWDC,GAAkB,CAC7BH,MAAO,wBACPC,IAAK,+CACLC,WAAY"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xmtp/browser-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "XMTP client SDK for browsers written in TypeScript",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xmtp",
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
]
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@xmtp/content-type-group-updated": "^2.0.
|
|
64
|
-
"@xmtp/content-type-primitives": "^2.0.
|
|
65
|
-
"@xmtp/content-type-text": "^2.0.
|
|
63
|
+
"@xmtp/content-type-group-updated": "^2.0.2",
|
|
64
|
+
"@xmtp/content-type-primitives": "^2.0.2",
|
|
65
|
+
"@xmtp/content-type-text": "^2.0.2",
|
|
66
66
|
"@xmtp/proto": "^3.78.0",
|
|
67
67
|
"@xmtp/wasm-bindings": "1.2.0-dev.878fd38",
|
|
68
68
|
"uuid": "^11.1.0"
|
package/src/Client.ts
CHANGED
|
@@ -142,6 +142,13 @@ export class Client extends ClientWorkerClass {
|
|
|
142
142
|
return this.#options;
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Gets the signer associated with this client
|
|
147
|
+
*/
|
|
148
|
+
get signer() {
|
|
149
|
+
return this.#signer;
|
|
150
|
+
}
|
|
151
|
+
|
|
145
152
|
/**
|
|
146
153
|
* Gets whether the client has been initialized
|
|
147
154
|
*/
|
|
@@ -618,8 +625,10 @@ export class Client extends ClientWorkerClass {
|
|
|
618
625
|
* @param contentType - The content type to get the codec for
|
|
619
626
|
* @returns The codec, if found
|
|
620
627
|
*/
|
|
621
|
-
codecFor(contentType: ContentTypeId) {
|
|
622
|
-
return this.#codecs.get(contentType.toString())
|
|
628
|
+
codecFor<T = unknown>(contentType: ContentTypeId) {
|
|
629
|
+
return this.#codecs.get(contentType.toString()) as
|
|
630
|
+
| ContentCodec<T>
|
|
631
|
+
| undefined;
|
|
623
632
|
}
|
|
624
633
|
|
|
625
634
|
/**
|
|
@@ -630,7 +639,7 @@ export class Client extends ClientWorkerClass {
|
|
|
630
639
|
* @returns The encoded content
|
|
631
640
|
* @throws {CodecNotFoundError} if no codec is found for the content type
|
|
632
641
|
*/
|
|
633
|
-
encodeContent(content:
|
|
642
|
+
encodeContent(content: unknown, contentType: ContentTypeId) {
|
|
634
643
|
const codec = this.codecFor(contentType);
|
|
635
644
|
if (!codec) {
|
|
636
645
|
throw new CodecNotFoundError(contentType);
|
|
@@ -652,8 +661,8 @@ export class Client extends ClientWorkerClass {
|
|
|
652
661
|
* @throws {CodecNotFoundError} if no codec is found for the content type
|
|
653
662
|
* @throws {InvalidGroupMembershipChangeError} if the message is an invalid group membership change
|
|
654
663
|
*/
|
|
655
|
-
decodeContent(message: SafeMessage, contentType: ContentTypeId) {
|
|
656
|
-
const codec = this.codecFor(contentType);
|
|
664
|
+
decodeContent<T = unknown>(message: SafeMessage, contentType: ContentTypeId) {
|
|
665
|
+
const codec = this.codecFor<T>(contentType);
|
|
657
666
|
if (!codec) {
|
|
658
667
|
throw new CodecNotFoundError(contentType);
|
|
659
668
|
}
|
|
@@ -667,7 +676,7 @@ export class Client extends ClientWorkerClass {
|
|
|
667
676
|
}
|
|
668
677
|
|
|
669
678
|
const encodedContent = fromSafeEncodedContent(message.content);
|
|
670
|
-
|
|
679
|
+
|
|
671
680
|
return codec.decode(encodedContent, this);
|
|
672
681
|
}
|
|
673
682
|
|
package/src/ClientWorkerClass.ts
CHANGED
|
@@ -23,7 +23,10 @@ export class ClientWorkerClass {
|
|
|
23
23
|
|
|
24
24
|
#promises = new Map<
|
|
25
25
|
string,
|
|
26
|
-
{
|
|
26
|
+
{
|
|
27
|
+
resolve: (value: unknown) => void;
|
|
28
|
+
reject: (reason?: unknown) => void;
|
|
29
|
+
}
|
|
27
30
|
>();
|
|
28
31
|
|
|
29
32
|
constructor(worker: Worker, enableLogging: boolean) {
|
|
@@ -44,7 +47,10 @@ export class ClientWorkerClass {
|
|
|
44
47
|
data,
|
|
45
48
|
});
|
|
46
49
|
const promise = new Promise<ClientEventsResult<A>>((resolve, reject) => {
|
|
47
|
-
this.#promises.set(promiseId, {
|
|
50
|
+
this.#promises.set(promiseId, {
|
|
51
|
+
resolve: resolve as (value: unknown) => void,
|
|
52
|
+
reject,
|
|
53
|
+
});
|
|
48
54
|
});
|
|
49
55
|
return promise;
|
|
50
56
|
}
|
|
@@ -67,7 +73,6 @@ export class ClientWorkerClass {
|
|
|
67
73
|
}
|
|
68
74
|
};
|
|
69
75
|
|
|
70
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
|
|
71
76
|
handleStreamMessage = <T extends ClientStreamEvents["result"]>(
|
|
72
77
|
streamId: string,
|
|
73
78
|
callback: (error: Error | null, value: T | null) => void,
|
package/src/Conversation.ts
CHANGED
|
@@ -106,14 +106,14 @@ export class Conversation {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
109
|
+
* Prepares a message to be published
|
|
110
110
|
*
|
|
111
111
|
* @param content - The content to send
|
|
112
112
|
* @param contentType - Optional content type of the message content
|
|
113
113
|
* @returns Promise that resolves with the message ID
|
|
114
|
-
* @throws {MissingContentTypeError}
|
|
114
|
+
* @throws {MissingContentTypeError} if content type is required but not provided
|
|
115
115
|
*/
|
|
116
|
-
async sendOptimistic(content:
|
|
116
|
+
async sendOptimistic(content: unknown, contentType?: ContentTypeId) {
|
|
117
117
|
if (typeof content !== "string" && !contentType) {
|
|
118
118
|
throw new MissingContentTypeError();
|
|
119
119
|
}
|
|
@@ -131,14 +131,14 @@ export class Conversation {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
|
-
*
|
|
134
|
+
* Publishes a new message
|
|
135
135
|
*
|
|
136
136
|
* @param content - The content to send
|
|
137
137
|
* @param contentType - Optional content type of the message content
|
|
138
138
|
* @returns Promise that resolves with the message ID after it has been sent
|
|
139
|
-
* @throws {MissingContentTypeError}
|
|
139
|
+
* @throws {MissingContentTypeError} if content type is required but not provided
|
|
140
140
|
*/
|
|
141
|
-
async send(content:
|
|
141
|
+
async send(content: unknown, contentType?: ContentTypeId) {
|
|
142
142
|
if (typeof content !== "string" && !contentType) {
|
|
143
143
|
throw new MissingContentTypeError();
|
|
144
144
|
}
|
|
@@ -246,7 +246,7 @@ export class Conversation {
|
|
|
246
246
|
* Creates a stream for new messages in this conversation
|
|
247
247
|
*
|
|
248
248
|
* @param callback - Optional callback function for handling new stream values
|
|
249
|
-
* @returns
|
|
249
|
+
* @returns Stream instance for new messages
|
|
250
250
|
*/
|
|
251
251
|
async stream(callback?: StreamCallback<DecodedMessage>) {
|
|
252
252
|
const streamId = v4();
|
package/src/Conversations.ts
CHANGED
|
@@ -81,11 +81,11 @@ export class Conversations {
|
|
|
81
81
|
* @param id - The message ID to look up
|
|
82
82
|
* @returns Promise that resolves with the decoded message, if found
|
|
83
83
|
*/
|
|
84
|
-
async getMessageById(id: string) {
|
|
84
|
+
async getMessageById<T = unknown>(id: string) {
|
|
85
85
|
const data = await this.#client.sendMessage("getMessageById", {
|
|
86
86
|
id,
|
|
87
87
|
});
|
|
88
|
-
return data ? new DecodedMessage(this.#client, data) : undefined;
|
|
88
|
+
return data ? new DecodedMessage<T>(this.#client, data) : undefined;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
/**
|
|
@@ -245,7 +245,7 @@ export class Conversations {
|
|
|
245
245
|
*
|
|
246
246
|
* @param callback - Optional callback function for handling new stream value
|
|
247
247
|
* @param conversationType - Optional type to filter conversations
|
|
248
|
-
* @returns
|
|
248
|
+
* @returns Stream instance for new conversations
|
|
249
249
|
*/
|
|
250
250
|
async stream<T extends Group | Dm = Group | Dm>(
|
|
251
251
|
callback?: StreamCallback<T>,
|
|
@@ -291,7 +291,7 @@ export class Conversations {
|
|
|
291
291
|
* Creates a stream for new group conversations
|
|
292
292
|
*
|
|
293
293
|
* @param callback - Optional callback function for handling new stream value
|
|
294
|
-
* @returns
|
|
294
|
+
* @returns Stream instance for new group conversations
|
|
295
295
|
*/
|
|
296
296
|
async streamGroups(callback?: StreamCallback<Group>) {
|
|
297
297
|
return this.stream<Group>(callback, ConversationType.Group);
|
|
@@ -301,7 +301,7 @@ export class Conversations {
|
|
|
301
301
|
* Creates a stream for new DM conversations
|
|
302
302
|
*
|
|
303
303
|
* @param callback - Optional callback function for handling new stream value
|
|
304
|
-
* @returns
|
|
304
|
+
* @returns Stream instance for new DM conversations
|
|
305
305
|
*/
|
|
306
306
|
async streamDms(callback?: StreamCallback<Dm>) {
|
|
307
307
|
return this.stream<Dm>(callback, ConversationType.Dm);
|
|
@@ -312,7 +312,7 @@ export class Conversations {
|
|
|
312
312
|
*
|
|
313
313
|
* @param callback - Optional callback function for handling new stream value
|
|
314
314
|
* @param conversationType - Optional conversation type to filter messages
|
|
315
|
-
* @returns
|
|
315
|
+
* @returns Stream instance for new messages
|
|
316
316
|
*/
|
|
317
317
|
async streamAllMessages(
|
|
318
318
|
callback?: StreamCallback<DecodedMessage>,
|
|
@@ -355,7 +355,7 @@ export class Conversations {
|
|
|
355
355
|
* Creates a stream for all new group messages
|
|
356
356
|
*
|
|
357
357
|
* @param callback - Optional callback function for handling new stream value
|
|
358
|
-
* @returns
|
|
358
|
+
* @returns Stream instance for new group messages
|
|
359
359
|
*/
|
|
360
360
|
async streamAllGroupMessages(callback?: StreamCallback<DecodedMessage>) {
|
|
361
361
|
return this.streamAllMessages(callback, ConversationType.Group);
|
|
@@ -365,7 +365,7 @@ export class Conversations {
|
|
|
365
365
|
* Creates a stream for all new DM messages
|
|
366
366
|
*
|
|
367
367
|
* @param callback - Optional callback function for handling new stream value
|
|
368
|
-
* @returns
|
|
368
|
+
* @returns Stream instance for new DM messages
|
|
369
369
|
*/
|
|
370
370
|
async streamAllDmMessages(callback?: StreamCallback<DecodedMessage>) {
|
|
371
371
|
return this.streamAllMessages(callback, ConversationType.Dm);
|
package/src/DecodedMessage.ts
CHANGED
|
@@ -26,9 +26,9 @@ export type MessageDeliveryStatus = "unpublished" | "published" | "failed";
|
|
|
26
26
|
* @property {string} senderInboxId - Identifier for the sender's inbox
|
|
27
27
|
* @property {bigint} sentAtNs - Timestamp when the message was sent (in nanoseconds)
|
|
28
28
|
*/
|
|
29
|
-
export class DecodedMessage {
|
|
29
|
+
export class DecodedMessage<T = unknown> {
|
|
30
30
|
#client: Client;
|
|
31
|
-
content:
|
|
31
|
+
content: T | undefined;
|
|
32
32
|
contentType: ContentTypeId;
|
|
33
33
|
conversationId: string;
|
|
34
34
|
deliveryStatus: MessageDeliveryStatus;
|
|
@@ -76,7 +76,11 @@ export class DecodedMessage {
|
|
|
76
76
|
this.parameters = new Map(Object.entries(message.content.parameters));
|
|
77
77
|
this.fallback = message.content.fallback;
|
|
78
78
|
this.compression = message.content.compression;
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
this.content = this.#client.decodeContent<T>(message, this.contentType);
|
|
82
|
+
} catch {
|
|
83
|
+
this.content = undefined;
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
}
|
package/src/Preferences.ts
CHANGED
|
@@ -85,7 +85,7 @@ export class Preferences {
|
|
|
85
85
|
* Creates a stream of consent state updates
|
|
86
86
|
*
|
|
87
87
|
* @param callback - Optional callback function for handling stream updates
|
|
88
|
-
* @returns
|
|
88
|
+
* @returns Stream instance for consent updates
|
|
89
89
|
*/
|
|
90
90
|
async streamConsent(callback?: StreamCallback<SafeConsent[]>) {
|
|
91
91
|
const streamId = v4();
|
|
@@ -113,7 +113,7 @@ export class Preferences {
|
|
|
113
113
|
* Creates a stream of user preference updates
|
|
114
114
|
*
|
|
115
115
|
* @param callback - Optional callback function for handling stream updates
|
|
116
|
-
* @returns
|
|
116
|
+
* @returns Stream instance for preference updates
|
|
117
117
|
*/
|
|
118
118
|
async streamPreferences(callback?: StreamCallback<UserPreference[]>) {
|
|
119
119
|
const streamId = v4();
|
package/src/UtilsWorkerClass.ts
CHANGED
|
@@ -19,7 +19,7 @@ export class UtilsWorkerClass {
|
|
|
19
19
|
|
|
20
20
|
#promises = new Map<
|
|
21
21
|
string,
|
|
22
|
-
{ resolve: (value:
|
|
22
|
+
{ resolve: (value: unknown) => void; reject: (reason?: unknown) => void }
|
|
23
23
|
>();
|
|
24
24
|
|
|
25
25
|
constructor(worker: Worker, enableLogging: boolean) {
|
|
@@ -47,7 +47,10 @@ export class UtilsWorkerClass {
|
|
|
47
47
|
data,
|
|
48
48
|
});
|
|
49
49
|
const promise = new Promise<UtilsEventsResult<A>>((resolve, reject) => {
|
|
50
|
-
this.#promises.set(promiseId, {
|
|
50
|
+
this.#promises.set(promiseId, {
|
|
51
|
+
resolve: resolve as (value: unknown) => void,
|
|
52
|
+
reject,
|
|
53
|
+
});
|
|
51
54
|
});
|
|
52
55
|
return promise;
|
|
53
56
|
}
|