@xmtp/browser-sdk 3.1.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +120 -44
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/workers/client.js +1 -1
- package/dist/workers/client.js.map +1 -1
- package/package.json +2 -2
- package/src/AsyncStream.ts +140 -87
- package/src/ClientWorkerClass.ts +15 -4
- package/src/Conversation.ts +31 -30
- package/src/Conversations.ts +101 -87
- package/src/Preferences.ts +49 -37
- package/src/WorkerConversation.ts +8 -5
- package/src/WorkerConversations.ts +21 -13
- package/src/WorkerPreferences.ts +22 -8
- package/src/index.ts +2 -1
- package/src/types/actions/streams.ts +5 -0
- package/src/utils/errors.ts +13 -0
- package/src/utils/streams.ts +210 -0
- package/src/workers/client.ts +70 -14
package/dist/index.d.ts
CHANGED
|
@@ -6,25 +6,79 @@ import { GroupUpdatedCodec } from '@xmtp/content-type-group-updated';
|
|
|
6
6
|
import { TextCodec } from '@xmtp/content-type-text';
|
|
7
7
|
|
|
8
8
|
type ResolveValue<T> = {
|
|
9
|
-
value: T
|
|
9
|
+
value: T;
|
|
10
10
|
done: boolean;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
get isDone(): boolean;
|
|
18
|
-
set onReturn(callback: () => void);
|
|
19
|
-
set onError(callback: (error: Error) => void);
|
|
20
|
-
set onDone(callback: () => void);
|
|
21
|
-
callback: StreamCallback<T>;
|
|
22
|
-
next: () => Promise<ResolveValue<T>>;
|
|
23
|
-
return: (value?: T) => Promise<ResolveValue<T>>;
|
|
24
|
-
end: () => Promise<ResolveValue<T>>;
|
|
25
|
-
[Symbol.asyncIterator](): this;
|
|
12
|
+
interface AsyncStreamProxy<T> extends AsyncIterable<T> {
|
|
13
|
+
next(): Promise<ResolveValue<T>>;
|
|
14
|
+
return(): Promise<ResolveValue<undefined>>;
|
|
15
|
+
end(): Promise<ResolveValue<undefined>>;
|
|
16
|
+
isDone: boolean;
|
|
26
17
|
}
|
|
27
18
|
|
|
19
|
+
declare const DEFAULT_RETRY_DELAY = 10000;
|
|
20
|
+
declare const DEFAULT_RETRY_ATTEMPTS = 6;
|
|
21
|
+
type StreamOptions<T = unknown, V = T> = {
|
|
22
|
+
/**
|
|
23
|
+
* Called when the stream ends
|
|
24
|
+
*/
|
|
25
|
+
onEnd?: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Called when a stream error occurs
|
|
28
|
+
*/
|
|
29
|
+
onError?: (error: Error) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Called when the stream fails
|
|
32
|
+
*/
|
|
33
|
+
onFail?: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* Called when the stream is restarted
|
|
36
|
+
*/
|
|
37
|
+
onRestart?: () => void;
|
|
38
|
+
/**
|
|
39
|
+
* Called when the stream is retried
|
|
40
|
+
*/
|
|
41
|
+
onRetry?: (attempts: number, maxAttempts: number) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Called when a value is emitted from the stream
|
|
44
|
+
*/
|
|
45
|
+
onValue?: (value: V) => void;
|
|
46
|
+
/**
|
|
47
|
+
* The number of times to retry the stream
|
|
48
|
+
* (default: 6)
|
|
49
|
+
*/
|
|
50
|
+
retryAttempts?: number;
|
|
51
|
+
/**
|
|
52
|
+
* The delay between retries (in milliseconds)
|
|
53
|
+
* (default: 10000)
|
|
54
|
+
*/
|
|
55
|
+
retryDelay?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Whether to retry the stream if it fails
|
|
58
|
+
* (default: true)
|
|
59
|
+
*/
|
|
60
|
+
retryOnFail?: boolean;
|
|
61
|
+
};
|
|
62
|
+
type StreamCallback<T = unknown> = (error: Error | null, value: T | undefined) => void;
|
|
63
|
+
type StreamFunction<T = unknown> = (callback: StreamCallback<T>, onFail: () => void) => Promise<() => void>;
|
|
64
|
+
type StreamValueMutator<T = unknown, V = T> = (value: T) => V | Promise<V>;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a stream from a stream function
|
|
67
|
+
*
|
|
68
|
+
* If the stream fails, an attempt will be made to restart it.
|
|
69
|
+
*
|
|
70
|
+
* This function is not intended to be used directly.
|
|
71
|
+
*
|
|
72
|
+
* @param streamFunction - The stream function to create a stream from
|
|
73
|
+
* @param streamValueMutator - An optional function to mutate the value emitted from the stream
|
|
74
|
+
* @param options - The options for the stream
|
|
75
|
+
* @param args - Additional arguments to pass to the stream function
|
|
76
|
+
* @returns An async iterable stream proxy
|
|
77
|
+
* @throws {StreamInvalidRetryAttemptsError} if the retryAttempts option is less than 0 and retryOnFail is true
|
|
78
|
+
* @throws {StreamFailedError} if the stream fails and can't be restarted
|
|
79
|
+
*/
|
|
80
|
+
declare const createStream: <T = unknown, V = T>(streamFunction: StreamFunction<T>, streamValueMutator?: StreamValueMutator<T, V>, options?: StreamOptions<T, V>) => Promise<AsyncStreamProxy<V>>;
|
|
81
|
+
|
|
28
82
|
/**
|
|
29
83
|
* Pre-configured URLs for the XMTP network based on the environment
|
|
30
84
|
*
|
|
@@ -180,10 +234,10 @@ declare class WorkerConversations {
|
|
|
180
234
|
newDmWithIdentifier(identifier: Identifier, options?: SafeCreateDmOptions): Promise<WorkerConversation>;
|
|
181
235
|
newDm(inboxId: string, options?: SafeCreateDmOptions): Promise<WorkerConversation>;
|
|
182
236
|
getHmacKeys(): HmacKeys;
|
|
183
|
-
stream(callback
|
|
184
|
-
streamGroups(callback
|
|
185
|
-
streamDms(callback
|
|
186
|
-
streamAllMessages(callback
|
|
237
|
+
stream(callback: StreamCallback<Conversation$1>, onFail: () => void, conversationType?: ConversationType): _xmtp_wasm_bindings.StreamCloser;
|
|
238
|
+
streamGroups(callback: StreamCallback<Conversation$1>, onFail: () => void): _xmtp_wasm_bindings.StreamCloser;
|
|
239
|
+
streamDms(callback: StreamCallback<Conversation$1>, onFail: () => void): _xmtp_wasm_bindings.StreamCloser;
|
|
240
|
+
streamAllMessages(callback: StreamCallback<Message>, onFail: () => void, conversationType?: ConversationType, consentStates?: ConsentState[]): _xmtp_wasm_bindings.StreamCloser;
|
|
187
241
|
}
|
|
188
242
|
|
|
189
243
|
/**
|
|
@@ -210,8 +264,8 @@ declare class WorkerPreferences {
|
|
|
210
264
|
getLatestInboxState(inboxId: string): Promise<_xmtp_wasm_bindings.InboxState>;
|
|
211
265
|
setConsentStates(records: SafeConsent[]): Promise<void>;
|
|
212
266
|
getConsentState(entityType: ConsentEntityType, entity: string): Promise<_xmtp_wasm_bindings.ConsentState>;
|
|
213
|
-
streamConsent(callback
|
|
214
|
-
streamPreferences(callback
|
|
267
|
+
streamConsent(callback: StreamCallback<Consent[]>, onFail: () => void): _xmtp_wasm_bindings.StreamCloser;
|
|
268
|
+
streamPreferences(callback: StreamCallback<UserPreference[]>, onFail: () => void): _xmtp_wasm_bindings.StreamCloser;
|
|
215
269
|
}
|
|
216
270
|
|
|
217
271
|
declare class WorkerClient {
|
|
@@ -291,7 +345,7 @@ declare class WorkerConversation {
|
|
|
291
345
|
updateMessageDisappearingSettings(fromNs: bigint, inNs: bigint): Promise<void>;
|
|
292
346
|
removeMessageDisappearingSettings(): Promise<void>;
|
|
293
347
|
isMessageDisappearingEnabled(): boolean;
|
|
294
|
-
stream(callback
|
|
348
|
+
stream(callback: StreamCallback<Message>, onFail: () => void): _xmtp_wasm_bindings.StreamCloser;
|
|
295
349
|
pausedForVersion(): string | undefined;
|
|
296
350
|
getHmacKeys(): Map<string, HmacKey[]>;
|
|
297
351
|
debugInfo(): Promise<ConversationDebugInfo>;
|
|
@@ -1191,6 +1245,10 @@ type StreamAction = {
|
|
|
1191
1245
|
action: "stream.preferences";
|
|
1192
1246
|
streamId: string;
|
|
1193
1247
|
result: UserPreference[] | undefined;
|
|
1248
|
+
} | {
|
|
1249
|
+
action: "stream.fail";
|
|
1250
|
+
streamId: string;
|
|
1251
|
+
result: undefined;
|
|
1194
1252
|
};
|
|
1195
1253
|
|
|
1196
1254
|
/**
|
|
@@ -1227,7 +1285,7 @@ declare class ClientWorkerClass {
|
|
|
1227
1285
|
* @param callback - The callback to handle the stream message
|
|
1228
1286
|
* @returns A function to remove the stream handler
|
|
1229
1287
|
*/
|
|
1230
|
-
handleStreamMessage: <T extends StreamAction["result"]>(streamId: string, callback: (error: Error | null, value: T |
|
|
1288
|
+
handleStreamMessage: <T extends StreamAction["result"], V = T>(streamId: string, callback: (error: Error | null, value: T | undefined) => void, options?: StreamOptions<T, V>) => () => Promise<void>;
|
|
1231
1289
|
/**
|
|
1232
1290
|
* Removes all event listeners and terminates the worker
|
|
1233
1291
|
*/
|
|
@@ -1385,7 +1443,7 @@ declare class Conversation<ContentTypes = unknown> {
|
|
|
1385
1443
|
* @param callback - Optional callback function for handling new stream values
|
|
1386
1444
|
* @returns Stream instance for new messages
|
|
1387
1445
|
*/
|
|
1388
|
-
stream(
|
|
1446
|
+
stream(options?: StreamOptions<SafeMessage, DecodedMessage<ContentTypes>>): Promise<AsyncStreamProxy<DecodedMessage<ContentTypes>>>;
|
|
1389
1447
|
pausedForVersion(): Promise<string | undefined>;
|
|
1390
1448
|
/**
|
|
1391
1449
|
* Retrieves HMAC keys for this conversation
|
|
@@ -1704,47 +1762,59 @@ declare class Conversations<ContentTypes = unknown> {
|
|
|
1704
1762
|
/**
|
|
1705
1763
|
* Creates a stream for new conversations
|
|
1706
1764
|
*
|
|
1707
|
-
* @param
|
|
1708
|
-
* @param conversationType - Optional type to filter conversations
|
|
1765
|
+
* @param options - Optional stream options
|
|
1766
|
+
* @param options.conversationType - Optional type to filter conversations
|
|
1709
1767
|
* @returns Stream instance for new conversations
|
|
1710
1768
|
*/
|
|
1711
|
-
stream<T extends Group<ContentTypes> | Dm<ContentTypes> = Group<ContentTypes> | Dm<ContentTypes>>(
|
|
1769
|
+
stream<T extends Group<ContentTypes> | Dm<ContentTypes> = Group<ContentTypes> | Dm<ContentTypes>>(options?: StreamOptions<SafeConversation, T> & {
|
|
1770
|
+
conversationType?: ConversationType;
|
|
1771
|
+
}): Promise<AsyncStreamProxy<T>>;
|
|
1712
1772
|
/**
|
|
1713
1773
|
* Creates a stream for new group conversations
|
|
1714
1774
|
*
|
|
1715
|
-
* @param
|
|
1775
|
+
* @param options - Optional stream options
|
|
1716
1776
|
* @returns Stream instance for new group conversations
|
|
1717
1777
|
*/
|
|
1718
|
-
streamGroups(
|
|
1778
|
+
streamGroups(options?: StreamOptions<SafeConversation, Group<ContentTypes>>): Promise<AsyncStreamProxy<Group<ContentTypes>>>;
|
|
1719
1779
|
/**
|
|
1720
1780
|
* Creates a stream for new DM conversations
|
|
1721
1781
|
*
|
|
1722
|
-
* @param
|
|
1782
|
+
* @param options - Optional stream options
|
|
1723
1783
|
* @returns Stream instance for new DM conversations
|
|
1724
1784
|
*/
|
|
1725
|
-
streamDms(
|
|
1785
|
+
streamDms(options?: StreamOptions<SafeConversation, Dm<ContentTypes>>): Promise<AsyncStreamProxy<Dm<ContentTypes>>>;
|
|
1726
1786
|
/**
|
|
1727
1787
|
* Creates a stream for all new messages
|
|
1728
1788
|
*
|
|
1729
|
-
* @param
|
|
1730
|
-
* @param conversationType - Optional conversation type to filter messages
|
|
1789
|
+
* @param options - Optional stream options
|
|
1790
|
+
* @param options.conversationType - Optional conversation type to filter messages
|
|
1791
|
+
* @param options.consentStates - Optional consent states to filter messages
|
|
1731
1792
|
* @returns Stream instance for new messages
|
|
1732
1793
|
*/
|
|
1733
|
-
streamAllMessages(
|
|
1794
|
+
streamAllMessages(options?: StreamOptions<SafeMessage, DecodedMessage<ContentTypes>> & {
|
|
1795
|
+
conversationType?: ConversationType;
|
|
1796
|
+
consentStates?: ConsentState[];
|
|
1797
|
+
}): Promise<AsyncStreamProxy<DecodedMessage<ContentTypes>>>;
|
|
1734
1798
|
/**
|
|
1735
1799
|
* Creates a stream for all new group messages
|
|
1736
1800
|
*
|
|
1737
|
-
* @param
|
|
1801
|
+
* @param options - Optional stream options
|
|
1802
|
+
* @param options.consentStates - Optional consent states to filter messages
|
|
1738
1803
|
* @returns Stream instance for new group messages
|
|
1739
1804
|
*/
|
|
1740
|
-
streamAllGroupMessages(
|
|
1805
|
+
streamAllGroupMessages(options?: StreamOptions<SafeMessage, DecodedMessage<ContentTypes>> & {
|
|
1806
|
+
consentStates?: ConsentState[];
|
|
1807
|
+
}): Promise<AsyncStreamProxy<DecodedMessage<ContentTypes>>>;
|
|
1741
1808
|
/**
|
|
1742
1809
|
* Creates a stream for all new DM messages
|
|
1743
1810
|
*
|
|
1744
|
-
* @param
|
|
1811
|
+
* @param options - Optional stream options
|
|
1812
|
+
* @param options.consentStates - Optional consent states to filter messages
|
|
1745
1813
|
* @returns Stream instance for new DM messages
|
|
1746
1814
|
*/
|
|
1747
|
-
streamAllDmMessages(
|
|
1815
|
+
streamAllDmMessages(options?: StreamOptions<SafeMessage, DecodedMessage<ContentTypes>> & {
|
|
1816
|
+
consentStates?: ConsentState[];
|
|
1817
|
+
}): Promise<AsyncStreamProxy<DecodedMessage<ContentTypes>>>;
|
|
1748
1818
|
}
|
|
1749
1819
|
|
|
1750
1820
|
/**
|
|
@@ -1816,17 +1886,17 @@ declare class Preferences<ContentTypes = unknown> {
|
|
|
1816
1886
|
/**
|
|
1817
1887
|
* Creates a stream of consent state updates
|
|
1818
1888
|
*
|
|
1819
|
-
* @param
|
|
1889
|
+
* @param options - Optional stream options
|
|
1820
1890
|
* @returns Stream instance for consent updates
|
|
1821
1891
|
*/
|
|
1822
|
-
streamConsent(
|
|
1892
|
+
streamConsent(options?: StreamOptions<SafeConsent[]>): Promise<AsyncStreamProxy<SafeConsent[]>>;
|
|
1823
1893
|
/**
|
|
1824
1894
|
* Creates a stream of user preference updates
|
|
1825
1895
|
*
|
|
1826
|
-
* @param
|
|
1896
|
+
* @param options - Optional stream options
|
|
1827
1897
|
* @returns Stream instance for preference updates
|
|
1828
1898
|
*/
|
|
1829
|
-
streamPreferences(
|
|
1899
|
+
streamPreferences(options?: StreamOptions<UserPreference[]>): Promise<AsyncStreamProxy<UserPreference[]>>;
|
|
1830
1900
|
}
|
|
1831
1901
|
|
|
1832
1902
|
type ExtractCodecContentTypes<C extends ContentCodec[] = []> = [
|
|
@@ -2386,6 +2456,12 @@ declare class InvalidGroupMembershipChangeError extends Error {
|
|
|
2386
2456
|
declare class MissingContentTypeError extends Error {
|
|
2387
2457
|
constructor();
|
|
2388
2458
|
}
|
|
2459
|
+
declare class StreamFailedError extends Error {
|
|
2460
|
+
constructor(retryAttempts: number);
|
|
2461
|
+
}
|
|
2462
|
+
declare class StreamInvalidRetryAttemptsError extends Error {
|
|
2463
|
+
constructor();
|
|
2464
|
+
}
|
|
2389
2465
|
|
|
2390
|
-
export { AccountAlreadyAssociatedError, ApiUrls,
|
|
2391
|
-
export type { ClientOptions, ContentOptions, EOASigner, ExtractCodecContentTypes, HmacKeys, MessageDeliveryStatus, MessageKind, NetworkOptions, OtherOptions, SCWSigner, SafeApiStats, SafeConsent, SafeContentTypeId, SafeConversation, SafeConversationDebugInfo, SafeCreateDmOptions, SafeCreateGroupOptions, SafeEncodedContent, SafeGroupMember, SafeHmacKey, SafeHmacKeys, SafeIdentityStats, SafeInboxState, SafeInstallation, SafeKeyPackageStatus, SafeListConversationsOptions, SafeListMessagesOptions, SafeMessage, SafeMessageDisappearingSettings, SafePermissionPolicySet, SafeSigner, Signer, StorageOptions, StreamCallback, XmtpEnv };
|
|
2466
|
+
export { AccountAlreadyAssociatedError, ApiUrls, Client, ClientNotInitializedError, CodecNotFoundError, Conversation, Conversations, DEFAULT_RETRY_ATTEMPTS, DEFAULT_RETRY_DELAY, DecodedMessage, Dm, Group, GroupNotFoundError, HistorySyncUrls, InboxReassignError, InvalidGroupMembershipChangeError, MissingContentTypeError, SignerUnavailableError, StreamFailedError, StreamInvalidRetryAttemptsError, StreamNotFoundError, Utils, createStream, fromContentTypeId, fromEncodedContent, fromSafeConsent, fromSafeContentTypeId, fromSafeCreateDmOptions, fromSafeCreateGroupOptions, fromSafeEncodedContent, fromSafeGroupMember, fromSafeListConversationsOptions, fromSafeListMessagesOptions, fromSafeMessageDisappearingSettings, fromSafePermissionPolicySet, toContentTypeId, toEncodedContent, toSafeApiStats, toSafeConsent, toSafeContentTypeId, toSafeConversation, toSafeConversationDebugInfo, toSafeCreateDmOptions, toSafeCreateGroupOptions, toSafeEncodedContent, toSafeGroupMember, toSafeHmacKey, toSafeIdentityStats, toSafeInboxState, toSafeInstallation, toSafeKeyPackageStatus, toSafeListConversationsOptions, toSafeListMessagesOptions, toSafeMessage, toSafeMessageDisappearingSettings, toSafePermissionPolicySet, toSafeSigner };
|
|
2467
|
+
export type { AsyncStreamProxy, ClientOptions, ContentOptions, EOASigner, ExtractCodecContentTypes, HmacKeys, MessageDeliveryStatus, MessageKind, NetworkOptions, OtherOptions, SCWSigner, SafeApiStats, SafeConsent, SafeContentTypeId, SafeConversation, SafeConversationDebugInfo, SafeCreateDmOptions, SafeCreateGroupOptions, SafeEncodedContent, SafeGroupMember, SafeHmacKey, SafeHmacKeys, SafeIdentityStats, SafeInboxState, SafeInstallation, SafeKeyPackageStatus, SafeListConversationsOptions, SafeListMessagesOptions, SafeMessage, SafeMessageDisappearingSettings, SafePermissionPolicySet, SafeSigner, Signer, StorageOptions, StreamCallback, StreamFunction, StreamOptions, StreamValueMutator, XmtpEnv };
|
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 g,MessageDisappearingSettings as h,GroupPermissionsOptions as p,GroupMessageKind as m,DeliveryStatus as y,ConversationType as I}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,SignatureRequestHandle,SortDirection}from"@xmtp/wasm-bindings";import{v4 as v}from"uuid";import{ContentTypeId as w}from"@xmtp/content-type-primitives";const f=e=>{console.error(e.message)};class M{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),t&&this.#e.addEventListener("error",f),this.#t=t}sendMessage(e,t){const s=v();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(t.error):s.resolve(t.result))};handleStreamMessage=(e,t)=>{const s=s=>{const i=s.data;i.streamId===e&&("error"in i?t(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.#t&&this.#e.removeEventListener("error",f),this.#e.terminate()}}class b{#i=!1;#n=[];#r;#a;#o;#d;#c;constructor(){this.#r=[],this.#i=!1}#l(e){for(;this.#n.length>0;){const t=this.#n.shift();t&&t.resolve({done:!0,value:e})}}#u(e){this.#l(e),this.#r=[],this.#n=[],this.#i=!0,this.#o?.(),this.#a&&this.#c?.(this.#a)}get error(){return this.#a}get isDone(){return this.#i}set onReturn(e){this.#d=e}set onError(e){this.#c=e}set onDone(e){this.#o=e}callback=(e,t)=>{if(this.#i)return;const s=this.#n.shift();if(s){const{resolve:i,reject:n}=s;e?(this.#a=e,n(e),this.#u()):i({done:!1,value:t})}else this.#r.push(e??t)};next=()=>{if(this.#i)return Promise.resolve({done:!0,value:void 0});if(this.#r.length>0){const e=this.#r.shift();return e instanceof Error?(this.#a=e,this.#u(),Promise.reject(e)):Promise.resolve({done:!1,value:e})}return new Promise(((e,t)=>{this.#n.push({resolve:e,reject:t})}))};return=e=>(this.#d?.(),this.#u(e),Promise.resolve({done:!0,value:e}));end=()=>this.return();[Symbol.asyncIterator](){return this}}const S=e=>new w({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),x=e=>new n(e.authorityId,e.typeId,e.versionMajor,e.versionMinor),A=e=>({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),k=e=>new w({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),D=e=>({type:S(e.type),parameters:Object.fromEntries(e.parameters),fallback:e.fallback,compression:e.compression,content:e.content}),P=e=>new r(x(e.type),new Map(Object.entries(e.parameters)),e.fallback,e.compression,e.content),T=e=>({type:A(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),N=e=>({type:k(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),C=e=>({content:T(D(e.content)),convoId:e.convoId,deliveryStatus:e.deliveryStatus,id:e.id,kind:e.kind,senderInboxId:e.senderInboxId,sentAtNs:e.sentAtNs}),R=e=>({contentTypes:e.contentTypes,deliveryStatus:e.deliveryStatus,direction:e.direction,limit:e.limit,sentAfterNs:e.sentAfterNs,sentBeforeNs:e.sentBeforeNs}),q=e=>new a(e.sentBeforeNs,e.sentAfterNs,e.limit,e.deliveryStatus,e.direction,e.contentTypes),_=e=>({consentStates:e.consentStates,conversationType:e.conversationType,createdAfterNs:e.createdAfterNs,createdBeforeNs:e.createdBeforeNs,includeDuplicateDms:e.includeDuplicateDms,limit:e.limit}),G=e=>new o(e.consentStates,e.conversationType,e.createdAfterNs,e.createdBeforeNs,e.includeDuplicateDms??!1,e.limit),B=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}),L=e=>new d(e.addMemberPolicy,e.removeMemberPolicy,e.addAdminPolicy,e.removeAdminPolicy,e.updateGroupNamePolicy,e.updateGroupDescriptionPolicy,e.updateGroupImageUrlSquarePolicy,e.updateMessageDisappearingPolicy),E=e=>({customPermissionPolicySet:e.customPermissionPolicySet,description:e.groupDescription,imageUrlSquare:e.groupImageUrlSquare,messageDisappearingSettings:e.messageDisappearingSettings?Q(e.messageDisappearingSettings):void 0,name:e.groupName,permissions:e.permissions}),U=e=>new c(e.permissions,e.name,e.imageUrlSquare,e.description,e.customPermissionPolicySet&&e.permissions===p.CustomPolicy?L(e.customPermissionPolicySet):void 0,e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0),F=e=>({messageDisappearingSettings:e.messageDisappearingSettings?Q(e.messageDisappearingSettings):void 0}),O=e=>new l(e.messageDisappearingSettings?X(e.messageDisappearingSettings):void 0),W=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,g=r.policyType,h=r.policySet;return{id:t,name:s,imageUrl:i,description:n,permissions:{policyType:g,policySet:{addAdminPolicy:h.addAdminPolicy,addMemberPolicy:h.addMemberPolicy,removeAdminPolicy:h.removeAdminPolicy,removeMemberPolicy:h.removeMemberPolicy,updateGroupDescriptionPolicy:h.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:h.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:h.updateGroupNamePolicy,updateMessageDisappearingPolicy:h.updateMessageDisappearingPolicy}},isActive:a,addedByInboxId:o,metadata:d,admins:c,superAdmins:l,createdAtNs:u}},j=e=>({bytes:e.bytes,clientTimestampNs:e.clientTimestampNs,id:e.id}),K=e=>({identifiers:e.accountIdentifiers,inboxId:e.inboxId,installations:e.installations.map(j),recoveryIdentifier:e.recoveryIdentifier}),H=e=>({entity:e.entity,entityType:e.entityType,state:e.state}),$=e=>new u(e.entityType,e.state,e.entity),V=e=>({accountIdentifiers:e.accountIdentifiers,consentState:e.consentState,inboxId:e.inboxId,installationIds:e.installationIds,permissionLevel:e.permissionLevel}),z=e=>new g(e.inboxId,e.accountIdentifiers,e.installationIds,e.permissionLevel,e.consentState),J=e=>({key:e.key,epoch:e.epoch}),Q=e=>({fromNs:e.fromNs,inNs:e.inNs}),X=e=>new h(e.fromNs,e.inNs),Y=e=>({lifetime:e.lifetime?{notBefore:e.lifetime.not_before,notAfter:e.lifetime.not_after}:void 0,validationError:e.validationError}),Z=e=>({epoch:e.epoch,maybeForked:e.maybeForked,forkDetails:e.forkDetails}),ee=e=>({uploadKeyPackage:e.upload_key_package,fetchKeyPackage:e.fetch_key_package,sendGroupMessages:e.send_group_messages,sendWelcomeMessages:e.send_welcome_messages,queryGroupMessages:e.query_group_messages,queryWelcomeMessages:e.query_welcome_messages,subscribeMessages:e.subscribe_messages,subscribeWelcomes:e.subscribe_welcomes}),te=e=>({getIdentityUpdatesV2:e.get_identity_updates_v2,getInboxIds:e.get_inbox_ids,publishIdentityUpdate:e.publish_identity_update,verifySmartContractWalletSignature:e.verify_smart_contract_wallet_signature});class se{#g;content;contentType;conversationId;deliveryStatus;fallback;compression;id;kind;parameters;encodedContent;senderInboxId;sentAtNs;constructor(e,t){switch(this.#g=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=k(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.#g.decodeContent(t,this.contentType)}catch{this.content=void 0}}}class ie extends Error{constructor(){super("Client not initialized, use Client.create or Client.build to create a client")}}class ne extends Error{constructor(){super("Signer unavailable, use Client.create to create a client with a signer")}}class re extends Error{constructor(e){super(`Codec not found for "${e.toString()}" content type`)}}class ae extends Error{constructor(){super("Unable to create add account signature text, `allowInboxReassign` must be true")}}class oe extends Error{constructor(e){super(`Account already associated with inbox ${e}`)}}class de extends Error{constructor(e){super(`Group "${e}" not found`)}}class ce extends Error{constructor(e){super(`Stream "${e}" not found`)}}class le extends Error{constructor(e){super(`Invalid group membership change for message ${e}`)}}class ue extends Error{constructor(){super("Content type is required when sending content other than text")}}class ge{#h;#g;#p;#m;#y;#I;constructor(e,t,s){this.#g=e,this.#m=t,this.#v(s)}#v(e){this.#y=e?.isActive??void 0,this.#h=e?.addedByInboxId??"",this.#I=e?.metadata??void 0,this.#p=e?.createdAtNs??void 0}get id(){return this.#m}get isActive(){return this.#y}get addedByInboxId(){return this.#h}get createdAtNs(){return this.#p}get createdAt(){return this.#p?(e=this.#p,new Date(Number(e/1000000n))):void 0;var e}get metadata(){return this.#I}async members(){return this.#g.sendMessage("conversation.members",{id:this.#m})}async sync(){const e=await this.#g.sendMessage("conversation.sync",{id:this.#m});return this.#v(e),e}async publishMessages(){return this.#g.sendMessage("conversation.publishMessages",{id:this.#m})}async sendOptimistic(e,t){if("string"!=typeof e&&!t)throw new ue;const i="string"==typeof e?this.#g.encodeContent(e,t??s):this.#g.encodeContent(e,t);return this.#g.sendMessage("conversation.sendOptimistic",{id:this.#m,content:i})}async send(e,t){if("string"!=typeof e&&!t)throw new ue;const i="string"==typeof e?this.#g.encodeContent(e,t??s):this.#g.encodeContent(e,t);return this.#g.sendMessage("conversation.send",{id:this.#m,content:i})}async messages(e){return(await this.#g.sendMessage("conversation.messages",{id:this.#m,options:e})).map((e=>new se(this.#g,e)))}async consentState(){return this.#g.sendMessage("conversation.consentState",{id:this.#m})}async updateConsentState(e){return this.#g.sendMessage("conversation.updateConsentState",{id:this.#m,state:e})}async messageDisappearingSettings(){return this.#g.sendMessage("conversation.messageDisappearingSettings",{id:this.#m})}async updateMessageDisappearingSettings(e,t){return this.#g.sendMessage("conversation.updateMessageDisappearingSettings",{id:this.#m,fromNs:e,inNs:t})}async removeMessageDisappearingSettings(){return this.#g.sendMessage("conversation.removeMessageDisappearingSettings",{id:this.#m})}async isMessageDisappearingEnabled(){return this.#g.sendMessage("conversation.isMessageDisappearingEnabled",{id:this.#m})}async stream(e){const t=v(),s=new b,i=this.#g.handleStreamMessage(t,((t,i)=>{let n,r=t;if(i)try{n=new se(this.#g,i)}catch(t){r=t}s.callback(r,n),e?.(r,n)}));return await this.#g.sendMessage("conversation.stream",{groupId:this.#m,streamId:t}),s.onDone=()=>{this.#g.sendMessage("endStream",{streamId:t}),i()},s}async pausedForVersion(){return this.#g.sendMessage("conversation.pausedForVersion",{id:this.#m})}async getHmacKeys(){return this.#g.sendMessage("conversation.getHmacKeys",{id:this.#m})}async debugInfo(){return this.#g.sendMessage("conversation.debugInfo",{id:this.#m})}}class he extends ge{#g;#m;constructor(e,t,s){super(e,t,s),this.#g=e,this.#m=t}async peerInboxId(){return this.#g.sendMessage("dm.peerInboxId",{id:this.#m})}async getDuplicateDms(){return this.#g.sendMessage("dm.getDuplicateDms",{id:this.#m})}}class pe extends ge{#w=[];#g;#f;#m;#M;#b;#S=[];#v(e){this.#b=e?.name??"",this.#M=e?.imageUrl??"",this.#f=e?.description??"",this.#w=e?.admins??[],this.#S=e?.superAdmins??[]}constructor(e,t,s){super(e,t,s),this.#g=e,this.#m=t,this.#v(s)}async sync(){const e=await super.sync();return this.#v(e),e}get name(){return this.#b}async updateName(e){await this.#g.sendMessage("group.updateName",{id:this.#m,name:e}),this.#b=e}get imageUrl(){return this.#M}async updateImageUrl(e){await this.#g.sendMessage("group.updateImageUrl",{id:this.#m,imageUrl:e}),this.#M=e}get description(){return this.#f}async updateDescription(e){await this.#g.sendMessage("group.updateDescription",{id:this.#m,description:e}),this.#f=e}get admins(){return this.#w}get superAdmins(){return this.#S}async listAdmins(){const e=await this.#g.sendMessage("group.listAdmins",{id:this.#m});return this.#w=e,e}async listSuperAdmins(){const e=await this.#g.sendMessage("group.listSuperAdmins",{id:this.#m});return this.#S=e,e}async permissions(){return this.#g.sendMessage("group.permissions",{id:this.#m})}async updatePermission(e,t,s){return this.#g.sendMessage("group.updatePermission",{id:this.#m,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.#g.sendMessage("group.addMembersByIdentifiers",{id:this.#m,identifiers:e})}async addMembers(e){return this.#g.sendMessage("group.addMembers",{id:this.#m,inboxIds:e})}async removeMembersByIdentifiers(e){return this.#g.sendMessage("group.removeMembersByIdentifiers",{id:this.#m,identifiers:e})}async removeMembers(e){return this.#g.sendMessage("group.removeMembers",{id:this.#m,inboxIds:e})}async addAdmin(e){return this.#g.sendMessage("group.addAdmin",{id:this.#m,inboxId:e})}async removeAdmin(e){return this.#g.sendMessage("group.removeAdmin",{id:this.#m,inboxId:e})}async addSuperAdmin(e){return this.#g.sendMessage("group.addSuperAdmin",{id:this.#m,inboxId:e})}async removeSuperAdmin(e){return this.#g.sendMessage("group.removeSuperAdmin",{id:this.#m,inboxId:e})}}class me{#g;constructor(e){this.#g=e}async sync(){return this.#g.sendMessage("conversations.sync",void 0)}async syncAll(e){return this.#g.sendMessage("conversations.syncAll",{consentStates:e})}async getConversationById(e){const t=await this.#g.sendMessage("conversations.getConversationById",{id:e});if(t)return"group"===t.metadata.conversationType?new pe(this.#g,t.id,t):new he(this.#g,t.id,t)}async getMessageById(e){const t=await this.#g.sendMessage("conversations.getMessageById",{id:e});return t?new se(this.#g,t):void 0}async getDmByInboxId(e){const t=await this.#g.sendMessage("conversations.getDmByInboxId",{inboxId:e});return t?new he(this.#g,t.id,t):void 0}async list(e){return(await this.#g.sendMessage("conversations.list",{options:e})).map((e=>{switch(e.metadata.conversationType){case"dm":return new he(this.#g,e.id,e);case"group":return new pe(this.#g,e.id,e);default:return}})).filter((e=>void 0!==e))}async listGroups(e){return(await this.#g.sendMessage("conversations.listGroups",{options:e})).map((e=>new pe(this.#g,e.id,e)))}async listDms(e){return(await this.#g.sendMessage("conversations.listDms",{options:e})).map((e=>new he(this.#g,e.id,e)))}async newGroupOptimistic(e){const t=await this.#g.sendMessage("conversations.newGroupOptimistic",{options:e});return new pe(this.#g,t.id,t)}async newGroupWithIdentifiers(e,t){const s=await this.#g.sendMessage("conversations.newGroupWithIdentifiers",{identifiers:e,options:t});return new pe(this.#g,s.id,s)}async newGroup(e,t){const s=await this.#g.sendMessage("conversations.newGroup",{inboxIds:e,options:t});return new pe(this.#g,s.id,s)}async newDmWithIdentifier(e,t){const s=await this.#g.sendMessage("conversations.newDmWithIdentifier",{identifier:e,options:t});return new he(this.#g,s.id,s)}async newDm(e,t){const s=await this.#g.sendMessage("conversations.newDm",{inboxId:e,options:t});return new he(this.#g,s.id,s)}async getHmacKeys(){return this.#g.sendMessage("conversations.getHmacKeys",void 0)}async stream(e,t){const s=v(),i=new b,n=this.#g.handleStreamMessage(s,((t,s)=>{let n,r=t;if(s)try{n="group"===s.metadata.conversationType?new pe(this.#g,s.id,s):new he(this.#g,s.id,s)}catch(t){r=t}i.callback(r,n),e?.(r,n)}));return await this.#g.sendMessage("conversations.stream",{streamId:s,conversationType:t}),i.onDone=()=>{this.#g.sendMessage("endStream",{streamId:s}),n()},i}async streamGroups(e){return this.stream(e,I.Group)}async streamDms(e){return this.stream(e,I.Dm)}async streamAllMessages(e,t,s){const i=v(),n=new b,r=this.#g.handleStreamMessage(i,((t,s)=>{let i,r=t;if(s)try{i=new se(this.#g,s)}catch(t){r=t}n.callback(r,i),e?.(r,i)}));return await this.#g.sendMessage("conversations.streamAllMessages",{streamId:i,conversationType:t,consentStates:s}),n.onDone=()=>{this.#g.sendMessage("endStream",{streamId:i}),r()},n}async streamAllGroupMessages(e,t){return this.streamAllMessages(e,I.Group,t)}async streamAllDmMessages(e,t){return this.streamAllMessages(e,I.Dm,t)}}class ye{#g;constructor(e){this.#g=e}apiStatistics(){return this.#g.sendMessage("debugInformation.apiStatistics",void 0)}apiIdentityStatistics(){return this.#g.sendMessage("debugInformation.apiIdentityStatistics",void 0)}apiAggregateStatistics(){return this.#g.sendMessage("debugInformation.apiAggregateStatistics",void 0)}clearAllStatistics(){return this.#g.sendMessage("debugInformation.clearAllStatistics",void 0)}uploadDebugArchive(e){return this.#g.sendMessage("debugInformation.uploadDebugArchive",{serverUrl:e})}}class Ie{#g;constructor(e){this.#g=e}sync(){return this.#g.sendMessage("preferences.sync",void 0)}async inboxState(e){return this.#g.sendMessage("preferences.inboxState",{refreshFromNetwork:e??!1})}async inboxStateFromInboxIds(e,t){return this.#g.sendMessage("preferences.inboxStateFromInboxIds",{inboxIds:e,refreshFromNetwork:t??!1})}async getLatestInboxState(e){return this.#g.sendMessage("preferences.getLatestInboxState",{inboxId:e})}async setConsentStates(e){return this.#g.sendMessage("preferences.setConsentStates",{records:e})}async getConsentState(e,t){return this.#g.sendMessage("preferences.getConsentState",{entityType:e,entity:t})}async streamConsent(e){const t=v(),s=new b,i=this.#g.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#g.sendMessage("preferences.streamConsent",{streamId:t}),s.onDone=()=>{this.#g.sendMessage("endStream",{streamId:t}),i()},s}async streamPreferences(e){const t=v(),s=new b,i=this.#g.handleStreamMessage(t,((t,i)=>{s.callback(t,i??void 0),e?.(t,i??void 0)}));return await this.#g.sendMessage("preferences.streamPreferences",{streamId:t}),s.onDone=()=>{this.#g.sendMessage("endStream",{streamId:t}),i()},s}}const ve=async(e,t)=>{switch(e.type){case"EOA":return{type:"EOA",identifier:await e.getIdentifier(),signature:t};case"SCW":return{type:"SCW",identifier:await e.getIdentifier(),signature:t,chainId:e.getChainId(),blockNumber:e.getBlockNumber?.()}}},we=e=>{console.error(e.message)};class fe{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),t&&this.#e.addEventListener("error",we),this.#t=t}async init(){return this.sendMessage("utils.init",{enableLogging:this.#t})}sendMessage(e,t){const s=v();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(t.error):s.resolve(t.result))};close(){this.#e.removeEventListener("message",this.handleMessage),this.#t&&this.#e.removeEventListener("error",we),this.#e.terminate()}}class Me extends fe{constructor(e){super(new Worker(new URL("./workers/utils",import.meta.url),{type:"module"}),e??!1)}async generateInboxId(e){return this.sendMessage("utils.generateInboxId",{identifier:e})}async getInboxIdForIdentifier(e,t){return this.sendMessage("utils.getInboxIdForIdentifier",{identifier:e,env:t})}async revokeInstallationsSignatureText(e,t,s,i){return this.sendMessage("utils.revokeInstallationsSignatureText",{env:i,identifier:e,inboxId:t,installationIds:s,signatureRequestId:v()})}async revokeInstallations(e,t,s,i){const n=await e.getIdentifier(),{signatureText:r,signatureRequestId:a}=await this.revokeInstallationsSignatureText(n,t,s,i),o=await e.signMessage(r),d=await ve(e,o);return this.sendMessage("utils.revokeInstallations",{signer:d,signatureRequestId:a,env:i})}async inboxStateFromInboxIds(e,t){return this.sendMessage("utils.inboxStateFromInboxIds",{inboxIds:e,env:t})}}class be extends M{#x;#A;#k;#D;#P;#T;#N;#C=!1;#R;#q;#_;constructor(t){super(new Worker(new URL("./workers/client",import.meta.url),{type:"module"}),void 0!==t?.loggingLevel&&"off"!==t.loggingLevel),this.#_=t,this.#A=new me(this),this.#k=new ye(this),this.#R=new Ie(this);const s=[new e,new i,...t?.codecs??[]];this.#x=new Map(s.map((e=>[e.contentType.toString(),e])))}async init(e){const t=await this.sendMessage("client.init",{identifier:e,options:this.#_});this.#D=e,this.#P=t.inboxId,this.#T=t.installationId,this.#N=t.installationIdBytes,this.#C=!0}static async create(e,t){const s=new be(t);return s.#q=e,await s.init(await e.getIdentifier()),t?.disableAutoRegister||await s.register(),s}static async build(e,t){const s=new be({...t,disableAutoRegister:!0});return await s.init(e),s}get options(){return this.#_}get signer(){return this.#q}get isReady(){return this.#C}get inboxId(){return this.#P}get accountIdentifier(){return this.#D}get installationId(){return this.#T}get installationIdBytes(){return this.#N}get conversations(){return this.#A}get debugInformation(){return this.#k}get preferences(){return this.#R}async unsafe_createInboxSignatureText(){return this.sendMessage("client.createInboxSignatureText",{signatureRequestId:v()})}async unsafe_addAccountSignatureText(e,t=!1){if(!t)throw new ae;return this.sendMessage("client.addAccountSignatureText",{newIdentifier:e,signatureRequestId:v()})}async unsafe_removeAccountSignatureText(e){return this.sendMessage("client.removeAccountSignatureText",{identifier:e,signatureRequestId:v()})}async unsafe_revokeAllOtherInstallationsSignatureText(){return this.sendMessage("client.revokeAllOtherInstallationsSignatureText",{signatureRequestId:v()})}async unsafe_revokeInstallationsSignatureText(e){return this.sendMessage("client.revokeInstallationsSignatureText",{installationIds:e,signatureRequestId:v()})}async unsafe_changeRecoveryIdentifierSignatureText(e){return this.sendMessage("client.changeRecoveryIdentifierSignatureText",{identifier:e,signatureRequestId:v()})}async unsafe_applySignatureRequest(e,t){return this.sendMessage("client.applySignatureRequest",{signer:e,signatureRequestId:t})}async register(){if(!this.#q)throw new ne;const{signatureText:e,signatureRequestId:t}=await this.unsafe_createInboxSignatureText();if(!e||!t)return;const s=await this.#q.signMessage(e),i=await ve(this.#q,s);return this.sendMessage("client.registerIdentity",{signer:i,signatureRequestId:t})}async unsafe_addAccount(e,t=!1){if(!this.#q)throw new ne;if(!t)throw new ae;const s=await this.findInboxIdByIdentifier(await e.getIdentifier());if(s)throw new oe(s);const{signatureText:i,signatureRequestId:n}=await this.unsafe_addAccountSignatureText(await e.getIdentifier(),!0),r=await e.signMessage(i),a=await ve(e,r);return this.sendMessage("client.addAccount",{identifier:a.identifier,signer:a,signatureRequestId:n})}async removeAccount(e){if(!this.#q)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_removeAccountSignatureText(e),i=await this.#q.signMessage(t),n=await ve(this.#q,i);return this.sendMessage("client.removeAccount",{identifier:e,signer:n,signatureRequestId:s})}async revokeAllOtherInstallations(){if(!this.#q)throw new ne;const{signatureText:e,signatureRequestId:t}=await this.unsafe_revokeAllOtherInstallationsSignatureText(),s=await this.#q.signMessage(e),i=await ve(this.#q,s);return this.sendMessage("client.revokeAllOtherInstallations",{signer:i,signatureRequestId:t})}async revokeInstallations(e){if(!this.#q)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_revokeInstallationsSignatureText(e),i=await this.#q.signMessage(t),n=await ve(this.#q,i);return this.sendMessage("client.revokeInstallations",{installationIds:e,signer:n,signatureRequestId:s})}static async revokeInstallations(e,t,s,i,n){const r=new Me(n);await r.init(),await r.revokeInstallations(e,t,s,i),r.close()}static async inboxStateFromInboxIds(e,t,s){const i=new Me(s);await i.init();const n=await i.inboxStateFromInboxIds(e,t);return i.close(),n}async changeRecoveryIdentifier(e){if(!this.#q)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_changeRecoveryIdentifierSignatureText(e),i=await this.#q.signMessage(t),n=await ve(this.#q,i);return this.sendMessage("client.changeRecoveryIdentifier",{identifier:e,signer:n,signatureRequestId:s})}async isRegistered(){return this.sendMessage("client.isRegistered",void 0)}async canMessage(e){return this.sendMessage("client.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.toLowerCase(),void 0!==e)}return i.close(),s}async findInboxIdByIdentifier(e){return this.sendMessage("client.findInboxIdByIdentifier",{identifier:e})}codecFor(e){return this.#x.get(e.toString())}encodeContent(e,t){const s=this.codecFor(t);if(!s)throw new re(t);const i=s.encode(e,this),n=s.fallback(e);return n&&(i.fallback=n),T(i)}decodeContent(e,s){const i=this.codecFor(s);if(!i)throw new re(s);if(s.sameAs(t)&&e.kind!==m.MembershipChange)throw new le(e.id);const n=N(e.content);return i.decode(n,this)}signWithInstallationKey(e){return this.sendMessage("client.signWithInstallationKey",{signatureText:e})}verifySignedWithInstallationKey(e,t){return this.sendMessage("client.verifySignedWithInstallationKey",{signatureText:e,signatureBytes:t})}verifySignedWithPublicKey(e,t,s){return this.sendMessage("client.verifySignedWithPublicKey",{signatureText:e,signatureBytes:t,publicKey:s})}async getKeyPackageStatusesForInstallationIds(e){return this.sendMessage("client.getKeyPackageStatusesForInstallationIds",{installationIds:e})}}const Se={local:"http://localhost:5555",dev:"https://dev.xmtp.network",production:"https://production.xmtp.network"},xe={local:"http://localhost:5558",dev:"https://message-history.dev.ephemera.network",production:"https://message-history.production.ephemera.network"};export{oe as AccountAlreadyAssociatedError,Se as ApiUrls,be as Client,ie as ClientNotInitializedError,re as CodecNotFoundError,ge as Conversation,me as Conversations,se as DecodedMessage,he as Dm,pe as Group,de as GroupNotFoundError,xe as HistorySyncUrls,ae as InboxReassignError,le as InvalidGroupMembershipChangeError,ue as MissingContentTypeError,ne as SignerUnavailableError,ce as StreamNotFoundError,Me as Utils,x as fromContentTypeId,P as fromEncodedContent,$ as fromSafeConsent,k as fromSafeContentTypeId,O as fromSafeCreateDmOptions,U as fromSafeCreateGroupOptions,N as fromSafeEncodedContent,z as fromSafeGroupMember,G as fromSafeListConversationsOptions,q as fromSafeListMessagesOptions,X as fromSafeMessageDisappearingSettings,L as fromSafePermissionPolicySet,S as toContentTypeId,D as toEncodedContent,ee as toSafeApiStats,H as toSafeConsent,A as toSafeContentTypeId,W as toSafeConversation,Z as toSafeConversationDebugInfo,F as toSafeCreateDmOptions,E as toSafeCreateGroupOptions,T as toSafeEncodedContent,V as toSafeGroupMember,J as toSafeHmacKey,te as toSafeIdentityStats,K as toSafeInboxState,j as toSafeInstallation,Y as toSafeKeyPackageStatus,_ as toSafeListConversationsOptions,R as toSafeListMessagesOptions,C as toSafeMessage,Q as toSafeMessageDisappearingSettings,B as toSafePermissionPolicySet,ve as toSafeSigner};
|
|
1
|
+
import{GroupUpdatedCodec as e,ContentTypeGroupUpdated as t}from"@xmtp/content-type-group-updated";import{ContentTypeText as s,TextCodec as n}from"@xmtp/content-type-text";import{ContentTypeId as i,EncodedContent as r,ListMessagesOptions as a,ListConversationsOptions as o,PermissionPolicySet as c,CreateGroupOptions as d,CreateDMOptions as l,Consent as u,GroupMember as g,MessageDisappearingSettings as p,GroupPermissionsOptions as h,GroupMessageKind as m,DeliveryStatus as y,ConversationType as I}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,SignatureRequestHandle,SortDirection}from"@xmtp/wasm-bindings";import{v4 as v}from"uuid";import{ContentTypeId as w}from"@xmtp/content-type-primitives";const f=e=>{console.error(e.message)};class M{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),t&&this.#e.addEventListener("error",f),this.#t=t}sendMessage(e,t){const s=v();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(t.error):s.resolve(t.result))};handleStreamMessage=(e,t,s)=>{const n=n=>{const i=n.data;if(i.streamId===e){if("stream.fail"===i.action)return void s?.onFail?.();"error"in i?t(i.error,void 0):t(null,i.result)}};return this.#e.addEventListener("message",n),async()=>{await this.sendMessage("endStream",{streamId:e}),this.#e.removeEventListener("message",n)}};close(){this.#e.removeEventListener("message",this.handleMessage),this.#t&&this.#e.removeEventListener("error",f),this.#e.terminate()}}const b=e=>new w({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),S=e=>new i(e.authorityId,e.typeId,e.versionMajor,e.versionMinor),x=e=>({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),A=e=>new w({authorityId:e.authorityId,typeId:e.typeId,versionMajor:e.versionMajor,versionMinor:e.versionMinor}),k=e=>({type:b(e.type),parameters:Object.fromEntries(e.parameters),fallback:e.fallback,compression:e.compression,content:e.content}),D=e=>new r(S(e.type),new Map(Object.entries(e.parameters)),e.fallback,e.compression,e.content),P=e=>({type:x(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),T=e=>({type:A(e.type),parameters:e.parameters,fallback:e.fallback,compression:e.compression,content:e.content}),R=e=>({content:P(k(e.content)),convoId:e.convoId,deliveryStatus:e.deliveryStatus,id:e.id,kind:e.kind,senderInboxId:e.senderInboxId,sentAtNs:e.sentAtNs}),N=e=>({contentTypes:e.contentTypes,deliveryStatus:e.deliveryStatus,direction:e.direction,limit:e.limit,sentAfterNs:e.sentAfterNs,sentBeforeNs:e.sentBeforeNs}),C=e=>new a(e.sentBeforeNs,e.sentAfterNs,e.limit,e.deliveryStatus,e.direction,e.contentTypes),q=e=>({consentStates:e.consentStates,conversationType:e.conversationType,createdAfterNs:e.createdAfterNs,createdBeforeNs:e.createdBeforeNs,includeDuplicateDms:e.includeDuplicateDms,limit:e.limit}),_=e=>new o(e.consentStates,e.conversationType,e.createdAfterNs,e.createdBeforeNs,e.includeDuplicateDms??!1,e.limit),G=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}),B=e=>new c(e.addMemberPolicy,e.removeMemberPolicy,e.addAdminPolicy,e.removeAdminPolicy,e.updateGroupNamePolicy,e.updateGroupDescriptionPolicy,e.updateGroupImageUrlSquarePolicy,e.updateMessageDisappearingPolicy),L=e=>({customPermissionPolicySet:e.customPermissionPolicySet,description:e.groupDescription,imageUrlSquare:e.groupImageUrlSquare,messageDisappearingSettings:e.messageDisappearingSettings?J(e.messageDisappearingSettings):void 0,name:e.groupName,permissions:e.permissions}),E=e=>new d(e.permissions,e.name,e.imageUrlSquare,e.description,e.customPermissionPolicySet&&e.permissions===h.CustomPolicy?B(e.customPermissionPolicySet):void 0,e.messageDisappearingSettings?Q(e.messageDisappearingSettings):void 0),F=e=>({messageDisappearingSettings:e.messageDisappearingSettings?J(e.messageDisappearingSettings):void 0}),U=e=>new l(e.messageDisappearingSettings?Q(e.messageDisappearingSettings):void 0),O=async e=>{const t=e.id,s=e.name,n=e.imageUrl,i=e.description,r=e.permissions,a=e.isActive,o=e.addedByInboxId,c=await e.metadata(),d=e.admins,l=e.superAdmins,u=e.createdAtNs,g=r.policyType,p=r.policySet;return{id:t,name:s,imageUrl:n,description:i,permissions:{policyType:g,policySet:{addAdminPolicy:p.addAdminPolicy,addMemberPolicy:p.addMemberPolicy,removeAdminPolicy:p.removeAdminPolicy,removeMemberPolicy:p.removeMemberPolicy,updateGroupDescriptionPolicy:p.updateGroupDescriptionPolicy,updateGroupImageUrlSquarePolicy:p.updateGroupImageUrlSquarePolicy,updateGroupNamePolicy:p.updateGroupNamePolicy,updateMessageDisappearingPolicy:p.updateMessageDisappearingPolicy}},isActive:a,addedByInboxId:o,metadata:c,admins:d,superAdmins:l,createdAtNs:u}},K=e=>({bytes:e.bytes,clientTimestampNs:e.clientTimestampNs,id:e.id}),W=e=>({identifiers:e.accountIdentifiers,inboxId:e.inboxId,installations:e.installations.map(K),recoveryIdentifier:e.recoveryIdentifier}),j=e=>({entity:e.entity,entityType:e.entityType,state:e.state}),$=e=>new u(e.entityType,e.state,e.entity),H=e=>({accountIdentifiers:e.accountIdentifiers,consentState:e.consentState,inboxId:e.inboxId,installationIds:e.installationIds,permissionLevel:e.permissionLevel}),V=e=>new g(e.inboxId,e.accountIdentifiers,e.installationIds,e.permissionLevel,e.consentState),z=e=>({key:e.key,epoch:e.epoch}),J=e=>({fromNs:e.fromNs,inNs:e.inNs}),Q=e=>new p(e.fromNs,e.inNs),X=e=>({lifetime:e.lifetime?{notBefore:e.lifetime.not_before,notAfter:e.lifetime.not_after}:void 0,validationError:e.validationError}),Y=e=>({epoch:e.epoch,maybeForked:e.maybeForked,forkDetails:e.forkDetails}),Z=e=>({uploadKeyPackage:e.upload_key_package,fetchKeyPackage:e.fetch_key_package,sendGroupMessages:e.send_group_messages,sendWelcomeMessages:e.send_welcome_messages,queryGroupMessages:e.query_group_messages,queryWelcomeMessages:e.query_welcome_messages,subscribeMessages:e.subscribe_messages,subscribeWelcomes:e.subscribe_welcomes}),ee=e=>({getIdentityUpdatesV2:e.get_identity_updates_v2,getInboxIds:e.get_inbox_ids,publishIdentityUpdate:e.publish_identity_update,verifySmartContractWalletSignature:e.verify_smart_contract_wallet_signature});class te{#n;content;contentType;conversationId;deliveryStatus;fallback;compression;id;kind;parameters;encodedContent;senderInboxId;sentAtNs;constructor(e,t){switch(this.#n=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=A(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.#n.decodeContent(t,this.contentType)}catch{this.content=void 0}}}class se extends Error{constructor(){super("Client not initialized, use Client.create or Client.build to create a client")}}class ne extends Error{constructor(){super("Signer unavailable, use Client.create to create a client with a signer")}}class ie extends Error{constructor(e){super(`Codec not found for "${e.toString()}" content type`)}}class re extends Error{constructor(){super("Unable to create add account signature text, `allowInboxReassign` must be true")}}class ae extends Error{constructor(e){super(`Account already associated with inbox ${e}`)}}class oe extends Error{constructor(e){super(`Group "${e}" not found`)}}class ce extends Error{constructor(e){super(`Stream "${e}" not found`)}}class de extends Error{constructor(e){super(`Invalid group membership change for message ${e}`)}}class le extends Error{constructor(){super("Content type is required when sending content other than text")}}class ue extends Error{constructor(e){super(`Stream failed, retried ${e} ${"time"+(1!==e?"s":"")}`)}}class ge extends Error{constructor(){super("Stream retry attempts must be greater than 0")}}class pe{isDone=!1;#i=[];#r;onDone;onReturn;constructor(){this.#r=[],this.isDone=!1}flush(){for(;this.#i.length>0;){const e=this.#i.shift();e&&e({done:!0,value:void 0})}}done(){this.flush(),this.#r=[],this.#i=[],this.isDone=!0,this.onDone?.()}push=e=>{if(this.isDone)return;const t=this.#i.shift();t?t({done:!1,value:e}):this.#r.push(e)};next=()=>this.isDone?Promise.resolve({done:!0,value:void 0}):this.#r.length>0?Promise.resolve({done:!1,value:this.#r.shift()}):new Promise((e=>{this.#i.push(e)}));return=()=>(this.onReturn?.(),this.done(),Promise.resolve({done:!0,value:void 0}));end=()=>this.return();[Symbol.asyncIterator](){return this}}const he=["end","isDone","next","return",Symbol.asyncIterator],me=e=>he.includes(e);const ye=1e4,Ie=6,ve=async(e,t,s)=>{const{onEnd:n,onError:i,onFail:r,onRestart:a,onRetry:o,onValue:c,retryAttempts:d=Ie,retryDelay:l=ye,retryOnFail:u=!0}=s??{};if(u&&d<0)throw new ge;const g=new pe,p=(e,s)=>{if(e)i?.(e);else if(void 0!==s)try{if(t){const e=t(s);(e=>!!e&&("object"==typeof e||"function"==typeof e)&&"then"in e&&"function"==typeof e.then)(e)?e.then((e=>{g.push(e),c?.(e)})).catch((e=>{i?.(e)})):(g.push(e),c?.(e))}else g.push(s),c?.(s)}catch(e){i?.(e)}},h=async(t=d)=>{try{if(0===t)throw g.end(),new ue(d);await(s=l,new Promise((e=>setTimeout(e,s)))),o?.(d-t+1,d);const i=await e(p,(()=>{r?.(),h()}));g.onDone=()=>{i(),n?.()},a?.()}catch(e){i?.(e),h(t-1)}var s},m=()=>{if(!u)throw g.end(),new ue(0);h()};try{const t=await e(p,(()=>{r?.(),m()}));g.onDone=()=>{t(),n?.()}}catch(e){i?.(e),m()}return new Proxy(g,{get(e,t,s){if(me(t))return Reflect.get(e,t,s)},set:()=>!0,has:(e,t)=>me(t),ownKeys:()=>he,getOwnPropertyDescriptor(e,t){if(me(t))return{enumerable:!0,configurable:!0,value:Reflect.get(e,t)}}})};class we{#a;#n;#o;#c;#d;#l;constructor(e,t,s){this.#n=e,this.#c=t,this.#u(s)}#u(e){this.#d=e?.isActive??void 0,this.#a=e?.addedByInboxId??"",this.#l=e?.metadata??void 0,this.#o=e?.createdAtNs??void 0}get id(){return this.#c}get isActive(){return this.#d}get addedByInboxId(){return this.#a}get createdAtNs(){return this.#o}get createdAt(){return this.#o?(e=this.#o,new Date(Number(e/1000000n))):void 0;var e}get metadata(){return this.#l}async members(){return this.#n.sendMessage("conversation.members",{id:this.#c})}async sync(){const e=await this.#n.sendMessage("conversation.sync",{id:this.#c});return this.#u(e),e}async publishMessages(){return this.#n.sendMessage("conversation.publishMessages",{id:this.#c})}async sendOptimistic(e,t){if("string"!=typeof e&&!t)throw new le;const n="string"==typeof e?this.#n.encodeContent(e,t??s):this.#n.encodeContent(e,t);return this.#n.sendMessage("conversation.sendOptimistic",{id:this.#c,content:n})}async send(e,t){if("string"!=typeof e&&!t)throw new le;const n="string"==typeof e?this.#n.encodeContent(e,t??s):this.#n.encodeContent(e,t);return this.#n.sendMessage("conversation.send",{id:this.#c,content:n})}async messages(e){return(await this.#n.sendMessage("conversation.messages",{id:this.#c,options:e})).map((e=>new te(this.#n,e)))}async consentState(){return this.#n.sendMessage("conversation.consentState",{id:this.#c})}async updateConsentState(e){return this.#n.sendMessage("conversation.updateConsentState",{id:this.#c,state:e})}async messageDisappearingSettings(){return this.#n.sendMessage("conversation.messageDisappearingSettings",{id:this.#c})}async updateMessageDisappearingSettings(e,t){return this.#n.sendMessage("conversation.updateMessageDisappearingSettings",{id:this.#c,fromNs:e,inNs:t})}async removeMessageDisappearingSettings(){return this.#n.sendMessage("conversation.removeMessageDisappearingSettings",{id:this.#c})}async isMessageDisappearingEnabled(){return this.#n.sendMessage("conversation.isMessageDisappearingEnabled",{id:this.#c})}async stream(e){return ve((async(t,s)=>{const n=v();return await this.sync(),await this.#n.sendMessage("conversation.stream",{groupId:this.#c,streamId:n}),this.#n.handleStreamMessage(n,t,{...e,onFail:s})}),(e=>new te(this.#n,e)),e)}async pausedForVersion(){return this.#n.sendMessage("conversation.pausedForVersion",{id:this.#c})}async getHmacKeys(){return this.#n.sendMessage("conversation.getHmacKeys",{id:this.#c})}async debugInfo(){return this.#n.sendMessage("conversation.debugInfo",{id:this.#c})}}class fe extends we{#n;#c;constructor(e,t,s){super(e,t,s),this.#n=e,this.#c=t}async peerInboxId(){return this.#n.sendMessage("dm.peerInboxId",{id:this.#c})}async getDuplicateDms(){return this.#n.sendMessage("dm.getDuplicateDms",{id:this.#c})}}class Me extends we{#g=[];#n;#p;#c;#h;#m;#y=[];#u(e){this.#m=e?.name??"",this.#h=e?.imageUrl??"",this.#p=e?.description??"",this.#g=e?.admins??[],this.#y=e?.superAdmins??[]}constructor(e,t,s){super(e,t,s),this.#n=e,this.#c=t,this.#u(s)}async sync(){const e=await super.sync();return this.#u(e),e}get name(){return this.#m}async updateName(e){await this.#n.sendMessage("group.updateName",{id:this.#c,name:e}),this.#m=e}get imageUrl(){return this.#h}async updateImageUrl(e){await this.#n.sendMessage("group.updateImageUrl",{id:this.#c,imageUrl:e}),this.#h=e}get description(){return this.#p}async updateDescription(e){await this.#n.sendMessage("group.updateDescription",{id:this.#c,description:e}),this.#p=e}get admins(){return this.#g}get superAdmins(){return this.#y}async listAdmins(){const e=await this.#n.sendMessage("group.listAdmins",{id:this.#c});return this.#g=e,e}async listSuperAdmins(){const e=await this.#n.sendMessage("group.listSuperAdmins",{id:this.#c});return this.#y=e,e}async permissions(){return this.#n.sendMessage("group.permissions",{id:this.#c})}async updatePermission(e,t,s){return this.#n.sendMessage("group.updatePermission",{id:this.#c,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.#n.sendMessage("group.addMembersByIdentifiers",{id:this.#c,identifiers:e})}async addMembers(e){return this.#n.sendMessage("group.addMembers",{id:this.#c,inboxIds:e})}async removeMembersByIdentifiers(e){return this.#n.sendMessage("group.removeMembersByIdentifiers",{id:this.#c,identifiers:e})}async removeMembers(e){return this.#n.sendMessage("group.removeMembers",{id:this.#c,inboxIds:e})}async addAdmin(e){return this.#n.sendMessage("group.addAdmin",{id:this.#c,inboxId:e})}async removeAdmin(e){return this.#n.sendMessage("group.removeAdmin",{id:this.#c,inboxId:e})}async addSuperAdmin(e){return this.#n.sendMessage("group.addSuperAdmin",{id:this.#c,inboxId:e})}async removeSuperAdmin(e){return this.#n.sendMessage("group.removeSuperAdmin",{id:this.#c,inboxId:e})}}class be{#n;constructor(e){this.#n=e}async sync(){return this.#n.sendMessage("conversations.sync",void 0)}async syncAll(e){return this.#n.sendMessage("conversations.syncAll",{consentStates:e})}async getConversationById(e){const t=await this.#n.sendMessage("conversations.getConversationById",{id:e});if(t)return"group"===t.metadata.conversationType?new Me(this.#n,t.id,t):new fe(this.#n,t.id,t)}async getMessageById(e){const t=await this.#n.sendMessage("conversations.getMessageById",{id:e});return t?new te(this.#n,t):void 0}async getDmByInboxId(e){const t=await this.#n.sendMessage("conversations.getDmByInboxId",{inboxId:e});return t?new fe(this.#n,t.id,t):void 0}async list(e){return(await this.#n.sendMessage("conversations.list",{options:e})).map((e=>{switch(e.metadata.conversationType){case"dm":return new fe(this.#n,e.id,e);case"group":return new Me(this.#n,e.id,e);default:return}})).filter((e=>void 0!==e))}async listGroups(e){return(await this.#n.sendMessage("conversations.listGroups",{options:e})).map((e=>new Me(this.#n,e.id,e)))}async listDms(e){return(await this.#n.sendMessage("conversations.listDms",{options:e})).map((e=>new fe(this.#n,e.id,e)))}async newGroupOptimistic(e){const t=await this.#n.sendMessage("conversations.newGroupOptimistic",{options:e});return new Me(this.#n,t.id,t)}async newGroupWithIdentifiers(e,t){const s=await this.#n.sendMessage("conversations.newGroupWithIdentifiers",{identifiers:e,options:t});return new Me(this.#n,s.id,s)}async newGroup(e,t){const s=await this.#n.sendMessage("conversations.newGroup",{inboxIds:e,options:t});return new Me(this.#n,s.id,s)}async newDmWithIdentifier(e,t){const s=await this.#n.sendMessage("conversations.newDmWithIdentifier",{identifier:e,options:t});return new fe(this.#n,s.id,s)}async newDm(e,t){const s=await this.#n.sendMessage("conversations.newDm",{inboxId:e,options:t});return new fe(this.#n,s.id,s)}async getHmacKeys(){return this.#n.sendMessage("conversations.getHmacKeys",void 0)}async stream(e){return ve((async(t,s)=>{const n=v();return await this.sync(),await this.#n.sendMessage("conversations.stream",{streamId:n,conversationType:e?.conversationType}),this.#n.handleStreamMessage(n,t,{...e,onFail:s})}),(e=>"group"===e.metadata.conversationType?new Me(this.#n,e.id,e):new fe(this.#n,e.id,e)),e)}async streamGroups(e){return this.stream({...e,conversationType:I.Group})}async streamDms(e){return this.stream({...e,conversationType:I.Dm})}async streamAllMessages(e){return ve((async(t,s)=>{const n=v();return await this.sync(),await this.#n.sendMessage("conversations.streamAllMessages",{streamId:n,conversationType:e?.conversationType,consentStates:e?.consentStates}),this.#n.handleStreamMessage(n,t,{...e,onFail:s})}),(e=>new te(this.#n,e)),e)}async streamAllGroupMessages(e){return this.streamAllMessages({...e,conversationType:I.Group})}async streamAllDmMessages(e){return this.streamAllMessages({...e,conversationType:I.Dm})}}class Se{#n;constructor(e){this.#n=e}apiStatistics(){return this.#n.sendMessage("debugInformation.apiStatistics",void 0)}apiIdentityStatistics(){return this.#n.sendMessage("debugInformation.apiIdentityStatistics",void 0)}apiAggregateStatistics(){return this.#n.sendMessage("debugInformation.apiAggregateStatistics",void 0)}clearAllStatistics(){return this.#n.sendMessage("debugInformation.clearAllStatistics",void 0)}uploadDebugArchive(e){return this.#n.sendMessage("debugInformation.uploadDebugArchive",{serverUrl:e})}}class xe{#n;constructor(e){this.#n=e}sync(){return this.#n.sendMessage("preferences.sync",void 0)}async inboxState(e){return this.#n.sendMessage("preferences.inboxState",{refreshFromNetwork:e??!1})}async inboxStateFromInboxIds(e,t){return this.#n.sendMessage("preferences.inboxStateFromInboxIds",{inboxIds:e,refreshFromNetwork:t??!1})}async getLatestInboxState(e){return this.#n.sendMessage("preferences.getLatestInboxState",{inboxId:e})}async setConsentStates(e){return this.#n.sendMessage("preferences.setConsentStates",{records:e})}async getConsentState(e,t){return this.#n.sendMessage("preferences.getConsentState",{entityType:e,entity:t})}async streamConsent(e){return ve((async(t,s)=>{const n=v();return await this.sync(),await this.#n.sendMessage("preferences.streamConsent",{streamId:n}),this.#n.handleStreamMessage(n,t,{...e,onFail:s})}),void 0,e)}async streamPreferences(e){return ve((async(t,s)=>{const n=v();return await this.sync(),await this.#n.sendMessage("preferences.streamPreferences",{streamId:n}),this.#n.handleStreamMessage(n,t,{...e,onFail:s})}),void 0,e)}}const Ae=async(e,t)=>{switch(e.type){case"EOA":return{type:"EOA",identifier:await e.getIdentifier(),signature:t};case"SCW":return{type:"SCW",identifier:await e.getIdentifier(),signature:t,chainId:e.getChainId(),blockNumber:e.getBlockNumber?.()}}},ke=e=>{console.error(e.message)};class De{#e;#t;#s=new Map;constructor(e,t){this.#e=e,this.#e.addEventListener("message",this.handleMessage),t&&this.#e.addEventListener("error",ke),this.#t=t}async init(){return this.sendMessage("utils.init",{enableLogging:this.#t})}sendMessage(e,t){const s=v();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(t.error):s.resolve(t.result))};close(){this.#e.removeEventListener("message",this.handleMessage),this.#t&&this.#e.removeEventListener("error",ke),this.#e.terminate()}}class Pe extends De{constructor(e){super(new Worker(new URL("./workers/utils",import.meta.url),{type:"module"}),e??!1)}async generateInboxId(e){return this.sendMessage("utils.generateInboxId",{identifier:e})}async getInboxIdForIdentifier(e,t){return this.sendMessage("utils.getInboxIdForIdentifier",{identifier:e,env:t})}async revokeInstallationsSignatureText(e,t,s,n){return this.sendMessage("utils.revokeInstallationsSignatureText",{env:n,identifier:e,inboxId:t,installationIds:s,signatureRequestId:v()})}async revokeInstallations(e,t,s,n){const i=await e.getIdentifier(),{signatureText:r,signatureRequestId:a}=await this.revokeInstallationsSignatureText(i,t,s,n),o=await e.signMessage(r),c=await Ae(e,o);return this.sendMessage("utils.revokeInstallations",{signer:c,signatureRequestId:a,env:n})}async inboxStateFromInboxIds(e,t){return this.sendMessage("utils.inboxStateFromInboxIds",{inboxIds:e,env:t})}}class Te extends M{#I;#v;#w;#f;#M;#b;#S;#x=!1;#A;#k;#D;constructor(t){super(new Worker(new URL("./workers/client",import.meta.url),{type:"module"}),void 0!==t?.loggingLevel&&"off"!==t.loggingLevel),this.#D=t,this.#v=new be(this),this.#w=new Se(this),this.#A=new xe(this);const s=[new e,new n,...t?.codecs??[]];this.#I=new Map(s.map((e=>[e.contentType.toString(),e])))}async init(e){const t=await this.sendMessage("client.init",{identifier:e,options:this.#D});this.#f=e,this.#M=t.inboxId,this.#b=t.installationId,this.#S=t.installationIdBytes,this.#x=!0}static async create(e,t){const s=new Te(t);return s.#k=e,await s.init(await e.getIdentifier()),t?.disableAutoRegister||await s.register(),s}static async build(e,t){const s=new Te({...t,disableAutoRegister:!0});return await s.init(e),s}get options(){return this.#D}get signer(){return this.#k}get isReady(){return this.#x}get inboxId(){return this.#M}get accountIdentifier(){return this.#f}get installationId(){return this.#b}get installationIdBytes(){return this.#S}get conversations(){return this.#v}get debugInformation(){return this.#w}get preferences(){return this.#A}async unsafe_createInboxSignatureText(){return this.sendMessage("client.createInboxSignatureText",{signatureRequestId:v()})}async unsafe_addAccountSignatureText(e,t=!1){if(!t)throw new re;return this.sendMessage("client.addAccountSignatureText",{newIdentifier:e,signatureRequestId:v()})}async unsafe_removeAccountSignatureText(e){return this.sendMessage("client.removeAccountSignatureText",{identifier:e,signatureRequestId:v()})}async unsafe_revokeAllOtherInstallationsSignatureText(){return this.sendMessage("client.revokeAllOtherInstallationsSignatureText",{signatureRequestId:v()})}async unsafe_revokeInstallationsSignatureText(e){return this.sendMessage("client.revokeInstallationsSignatureText",{installationIds:e,signatureRequestId:v()})}async unsafe_changeRecoveryIdentifierSignatureText(e){return this.sendMessage("client.changeRecoveryIdentifierSignatureText",{identifier:e,signatureRequestId:v()})}async unsafe_applySignatureRequest(e,t){return this.sendMessage("client.applySignatureRequest",{signer:e,signatureRequestId:t})}async register(){if(!this.#k)throw new ne;const{signatureText:e,signatureRequestId:t}=await this.unsafe_createInboxSignatureText();if(!e||!t)return;const s=await this.#k.signMessage(e),n=await Ae(this.#k,s);return this.sendMessage("client.registerIdentity",{signer:n,signatureRequestId:t})}async unsafe_addAccount(e,t=!1){if(!this.#k)throw new ne;if(!t)throw new re;const s=await this.findInboxIdByIdentifier(await e.getIdentifier());if(s)throw new ae(s);const{signatureText:n,signatureRequestId:i}=await this.unsafe_addAccountSignatureText(await e.getIdentifier(),!0),r=await e.signMessage(n),a=await Ae(e,r);return this.sendMessage("client.addAccount",{identifier:a.identifier,signer:a,signatureRequestId:i})}async removeAccount(e){if(!this.#k)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_removeAccountSignatureText(e),n=await this.#k.signMessage(t),i=await Ae(this.#k,n);return this.sendMessage("client.removeAccount",{identifier:e,signer:i,signatureRequestId:s})}async revokeAllOtherInstallations(){if(!this.#k)throw new ne;const{signatureText:e,signatureRequestId:t}=await this.unsafe_revokeAllOtherInstallationsSignatureText(),s=await this.#k.signMessage(e),n=await Ae(this.#k,s);return this.sendMessage("client.revokeAllOtherInstallations",{signer:n,signatureRequestId:t})}async revokeInstallations(e){if(!this.#k)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_revokeInstallationsSignatureText(e),n=await this.#k.signMessage(t),i=await Ae(this.#k,n);return this.sendMessage("client.revokeInstallations",{installationIds:e,signer:i,signatureRequestId:s})}static async revokeInstallations(e,t,s,n,i){const r=new Pe(i);await r.init(),await r.revokeInstallations(e,t,s,n),r.close()}static async inboxStateFromInboxIds(e,t,s){const n=new Pe(s);await n.init();const i=await n.inboxStateFromInboxIds(e,t);return n.close(),i}async changeRecoveryIdentifier(e){if(!this.#k)throw new ne;const{signatureText:t,signatureRequestId:s}=await this.unsafe_changeRecoveryIdentifierSignatureText(e),n=await this.#k.signMessage(t),i=await Ae(this.#k,n);return this.sendMessage("client.changeRecoveryIdentifier",{identifier:e,signer:i,signatureRequestId:s})}async isRegistered(){return this.sendMessage("client.isRegistered",void 0)}async canMessage(e){return this.sendMessage("client.canMessage",{identifiers:e})}static async canMessage(e,t){const s=new Map,n=new Pe;for(const i of e){const e=await n.getInboxIdForIdentifier(i,t);s.set(i.identifier.toLowerCase(),void 0!==e)}return n.close(),s}async findInboxIdByIdentifier(e){return this.sendMessage("client.findInboxIdByIdentifier",{identifier:e})}codecFor(e){return this.#I.get(e.toString())}encodeContent(e,t){const s=this.codecFor(t);if(!s)throw new ie(t);const n=s.encode(e,this),i=s.fallback(e);return i&&(n.fallback=i),P(n)}decodeContent(e,s){const n=this.codecFor(s);if(!n)throw new ie(s);if(s.sameAs(t)&&e.kind!==m.MembershipChange)throw new de(e.id);const i=T(e.content);return n.decode(i,this)}signWithInstallationKey(e){return this.sendMessage("client.signWithInstallationKey",{signatureText:e})}verifySignedWithInstallationKey(e,t){return this.sendMessage("client.verifySignedWithInstallationKey",{signatureText:e,signatureBytes:t})}verifySignedWithPublicKey(e,t,s){return this.sendMessage("client.verifySignedWithPublicKey",{signatureText:e,signatureBytes:t,publicKey:s})}async getKeyPackageStatusesForInstallationIds(e){return this.sendMessage("client.getKeyPackageStatusesForInstallationIds",{installationIds:e})}}const Re={local:"http://localhost:5555",dev:"https://dev.xmtp.network",production:"https://production.xmtp.network"},Ne={local:"http://localhost:5558",dev:"https://message-history.dev.ephemera.network",production:"https://message-history.production.ephemera.network"};export{ae as AccountAlreadyAssociatedError,Re as ApiUrls,Te as Client,se as ClientNotInitializedError,ie as CodecNotFoundError,we as Conversation,be as Conversations,te as DecodedMessage,fe as Dm,Me as Group,oe as GroupNotFoundError,Ne as HistorySyncUrls,re as InboxReassignError,de as InvalidGroupMembershipChangeError,le as MissingContentTypeError,ne as SignerUnavailableError,ue as StreamFailedError,ge as StreamInvalidRetryAttemptsError,ce as StreamNotFoundError,Pe as Utils,S as fromContentTypeId,D as fromEncodedContent,$ as fromSafeConsent,A as fromSafeContentTypeId,U as fromSafeCreateDmOptions,E as fromSafeCreateGroupOptions,T as fromSafeEncodedContent,V as fromSafeGroupMember,_ as fromSafeListConversationsOptions,C as fromSafeListMessagesOptions,Q as fromSafeMessageDisappearingSettings,B as fromSafePermissionPolicySet,b as toContentTypeId,k as toEncodedContent,Z as toSafeApiStats,j as toSafeConsent,x as toSafeContentTypeId,O as toSafeConversation,Y as toSafeConversationDebugInfo,F as toSafeCreateDmOptions,L as toSafeCreateGroupOptions,P as toSafeEncodedContent,H as toSafeGroupMember,z as toSafeHmacKey,ee as toSafeIdentityStats,W as toSafeInboxState,K as toSafeInstallation,X as toSafeKeyPackageStatus,q as toSafeListConversationsOptions,N as toSafeListMessagesOptions,R as toSafeMessage,J as toSafeMessageDisappearingSettings,G as toSafePermissionPolicySet,Ae as toSafeSigner};
|
|
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/DebugInformation.ts","../src/Preferences.ts","../src/utils/signer.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,null,null],"names":["handleError","event","console","error","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","result","handleStreamMessage","streamId","callback","streamHandler","removeEventListener","close","terminate","AsyncStream","isDone","pendingPromises","queue","onDone","onReturn","onError","flush","value","length","nextPendingPromise","shift","done","push","next","undefined","Error","return","end","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","conversationType","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","identifiers","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","toSafeConversationDebugInfo","debugInfo","maybeForked","forkDetails","toSafeApiStats","stats","uploadKeyPackage","upload_key_package","fetchKeyPackage","fetch_key_package","sendGroupMessages","send_group_messages","sendWelcomeMessages","send_welcome_messages","queryGroupMessages","query_group_messages","queryWelcomeMessages","query_welcome_messages","subscribeMessages","subscribe_messages","subscribeWelcomes","subscribe_welcomes","toSafeIdentityStats","getIdentityUpdatesV2","get_identity_updates_v2","getInboxIds","get_inbox_ids","publishIdentityUpdate","publish_identity_update","verifySmartContractWalletSignature","verify_smart_contract_wallet_signature","DecodedMessage","client","contentType","conversationId","encodedContent","GroupMessageKind","Application","MembershipChange","DeliveryStatus","Unpublished","Published","Failed","decodeContent","ClientNotInitializedError","super","SignerUnavailableError","CodecNotFoundError","toString","InboxReassignError","AccountAlreadyAssociatedError","GroupNotFoundError","groupId","StreamNotFoundError","InvalidGroupMembershipChangeError","messageId","MissingContentTypeError","Conversation","syncData","createdAt","ns","Date","Number","members","sync","publishMessages","sendOptimistic","safeEncodedContent","encodeContent","ContentTypeText","send","messages","updateConsentState","updateMessageDisappearingSettings","removeMessageDisappearingSettings","isMessageDisappearingEnabled","stream","asyncStream","endStream","err","pausedForVersion","getHmacKeys","Dm","peerInboxId","getDuplicateDms","Group","updateName","updateImageUrl","updateDescription","listAdmins","listSuperAdmins","updatePermission","permissionType","policy","metadataField","isAdmin","includes","isSuperAdmin","addMembersByIdentifiers","addMembers","inboxIds","removeMembersByIdentifiers","removeMembers","addAdmin","removeAdmin","addSuperAdmin","removeSuperAdmin","Conversations","syncAll","getConversationById","getMessageById","getDmByInboxId","list","filter","listGroups","listDms","newGroupOptimistic","newGroupWithIdentifiers","newGroup","newDmWithIdentifier","identifier","newDm","streamValue","streamGroups","ConversationType","streamDms","streamAllMessages","streamAllGroupMessages","streamAllDmMessages","DebugInformation","apiStatistics","apiIdentityStatistics","apiAggregateStatistics","clearAllStatistics","uploadDebugArchive","serverUrl","Preferences","refreshFromNetwork","inboxStateFromInboxIds","getLatestInboxState","setConsentStates","records","getConsentState","streamConsent","streamPreferences","toSafeSigner","signer","signature","getIdentifier","chainId","getChainId","blockNumber","getBlockNumber","UtilsWorkerClass","init","Utils","Worker","URL","url","generateInboxId","getInboxIdForIdentifier","env","revokeInstallationsSignatureText","signatureRequestId","revokeInstallations","signatureText","signMessage","safeSigner","Client","codecs","conversations","debugInformation","installationId","installationIdBytes","isReady","preferences","loggingLevel","GroupUpdatedCodec","TextCodec","codec","create","disableAutoRegister","register","build","accountIdentifier","unsafe_createInboxSignatureText","unsafe_addAccountSignatureText","newIdentifier","allowInboxReassign","unsafe_removeAccountSignatureText","unsafe_revokeAllOtherInstallationsSignatureText","unsafe_revokeInstallationsSignatureText","unsafe_changeRecoveryIdentifierSignatureText","unsafe_applySignatureRequest","unsafe_addAccount","newAccountSigner","existingInboxId","findInboxIdByIdentifier","removeAccount","revokeAllOtherInstallations","utils","changeRecoveryIdentifier","isRegistered","canMessage","canMessageMap","toLowerCase","codecFor","encoded","encode","sameAs","ContentTypeGroupUpdated","decode","signWithInstallationKey","verifySignedWithInstallationKey","signatureBytes","verifySignedWithPublicKey","publicKey","getKeyPackageStatusesForInstallationIds","ApiUrls","local","dev","production","HistorySyncUrls"],"mappings":"+oCAcA,MAAMA,EAAeC,IACnBC,QAAQC,MAAMF,EAAMG,QAAQ,QAajBC,EACXC,GAEAC,GAEAC,GAAY,IAAIC,IAQhB,WAAAC,CAAYJ,EAAgBC,GAC1BI,MAAKL,EAAUA,EACfK,MAAKL,EAAQM,iBAAiB,UAAWD,KAAKE,eAC1CN,GACFI,MAAKL,EAAQM,iBAAiB,QAASZ,GAEzCW,MAAKJ,EAAiBA,CACxB,CASA,WAAAO,CACEC,EACAC,GAEA,MAAMC,EAAYC,IAClBP,MAAKL,EAAQa,YAAY,CACvBJ,SACAK,GAAIH,EACJD,SAQF,OANgB,IAAIK,SAAQ,CAACC,EAASC,KACpCZ,MAAKH,EAAUgB,IAAIP,EAAW,CAC5BK,QAASA,EACTC,UACA,GAON,CAOAV,cACEZ,IAKA,MAAMwB,EAAYxB,EAAMe,KACpBL,MAAKJ,GACPL,QAAQwB,IAAI,6BAA8BD,GAE5C,MAAME,EAAUhB,MAAKH,EAAUoB,IAAIH,EAAUL,IACzCO,IACFhB,MAAKH,EAAUqB,OAAOJ,EAAUL,IAC5B,UAAWK,EACbE,EAAQJ,OAAOE,EAAUtB,OAEzBwB,EAAQL,QAAQG,EAAUK,QAE9B,EAUFC,oBAAsB,CACpBC,EACAC,KAEA,MAAMC,EACJjC,IAEA,MAAMwB,EAAYxB,EAAMe,KACpBS,EAAUO,WAAaA,IACrB,UAAWP,EACbQ,EAASR,EAAUtB,MAAO,MAE1B8B,EAAS,KAAMR,EAAUK,QAE7B,EAIF,OAFAnB,MAAKL,EAAQM,iBAAiB,UAAWsB,GAElC,KACLvB,MAAKL,EAAQ6B,oBAAoB,UAAWD,EAAc,CAC3D,EAMH,KAAAE,GACEzB,MAAKL,EAAQ6B,oBAAoB,UAAWxB,KAAKE,eAC7CF,MAAKJ,GACPI,MAAKL,EAAQ6B,oBAAoB,QAASnC,GAE5CW,MAAKL,EAAQ+B,WACf,QChIWC,EACXC,IAAU,EACVC,GAAwC,GACxCC,GACAtC,GACAuC,GACAC,GACAC,GAEA,WAAAlC,GACEC,MAAK8B,EAAS,GACd9B,MAAK4B,GAAU,CACjB,CAEA,EAAAM,CAAOC,GACL,KAAOnC,MAAK6B,EAAiBO,OAAS,GAAG,CACvC,MAAMC,EAAqBrC,MAAK6B,EAAiBS,QAC7CD,GACFA,EAAmB1B,QAAQ,CAAE4B,MAAM,EAAMJ,SAE7C,CACF,CAEA,EAAAI,CAAMJ,GACJnC,MAAKkC,EAAOC,GACZnC,MAAK8B,EAAS,GACd9B,MAAK6B,EAAmB,GACxB7B,MAAK4B,GAAU,EACf5B,MAAK+B,MACD/B,MAAKR,GACPQ,MAAKiC,IAAWjC,MAAKR,EAEzB,CAEA,SAAIA,GACF,OAAOQ,MAAKR,CACd,CAEA,UAAIoC,GACF,OAAO5B,MAAK4B,CACd,CAEA,YAAII,CAASV,GACXtB,MAAKgC,EAAYV,CACnB,CAEA,WAAIW,CAAQX,GACVtB,MAAKiC,EAAWX,CAClB,CAEA,UAAIS,CAAOT,GACTtB,MAAK+B,EAAUT,CACjB,CAEAA,SAA8B,CAAC9B,EAAO2C,KACpC,GAAInC,MAAK4B,EACP,OAGF,MAAMS,EAAqBrC,MAAK6B,EAAiBS,QACjD,GAAID,EAAoB,CACtB,MAAM1B,QAAEA,EAAOC,OAAEA,GAAWyB,EACxB7C,GACFQ,MAAKR,EAASA,EACdoB,EAAOpB,GACPQ,MAAKuC,KAEL5B,EAAQ,CACN4B,MAAM,EACNJ,SAGN,MACEnC,MAAK8B,EAAOU,KAAKhD,GAAS2C,EAC5B,EAGFM,KAAO,KACL,GAAIzC,MAAK4B,EACP,OAAOlB,QAAQC,QAAQ,CACrB4B,MAAM,EACNJ,WAAOO,IAIX,GAAI1C,MAAK8B,EAAOM,OAAS,EAAG,CAC1B,MAAMD,EAAQnC,MAAK8B,EAAOQ,QAC1B,OAAIH,aAAiBQ,OACnB3C,MAAKR,EAAS2C,EACdnC,MAAKuC,IACE7B,QAAQE,OAAOuB,IAEjBzB,QAAQC,QAAQ,CACrB4B,MAAM,EACNJ,SAEJ,CAEA,OAAO,IAAIzB,SAAQ,CAACC,EAASC,KAC3BZ,MAAK6B,EAAiBW,KAAK,CAAE7B,UAASC,UAAS,GAC/C,EAGJgC,OAAUT,IACRnC,MAAKgC,MACLhC,MAAKuC,EAAMJ,GAEJzB,QAAQC,QAAQ,CACrB4B,MAAM,EACNJ,WAIJU,IAAM,IAAM7C,KAAK4C,SAEjB,CAACE,OAAOC,iBACN,OAAO/C,IACT,ECjGK,MAAMgD,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,IAA4B,CAE5BE,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,IAA2B,CAG3BC,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,IAAI/D,IAAIiE,OAAOM,QAAQT,EAAQE,aAC/BF,EAAQK,SACRL,EAAQM,YACRN,EAAQA,SAWCU,EACXV,IAAuB,CAEvBC,KAAMJ,EAAoBG,EAAQC,MAClCC,WAAYF,EAAQE,WACpBG,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBN,QAASA,EAAQA,UAGNW,EACXX,IAA2B,CAE3BC,KAAMH,EAAsBE,EAAQC,MACpCC,WAAYF,EAAQE,WACpBG,SAAUL,EAAQK,SAClBC,YAAaN,EAAQM,YACrBN,QAASA,EAAQA,UAaNY,EAAiB/E,IAAgB,CAC5CmE,QAASU,EAAqBX,EAAiBlE,EAAQmE,UACvDa,QAAShF,EAAQgF,QACjBC,eAAgBjF,EAAQiF,eACxBjE,GAAIhB,EAAQgB,GACZkE,KAAMlF,EAAQkF,KACdC,cAAenF,EAAQmF,cACvBC,SAAUpF,EAAQoF,WAYPC,EACXC,IAA4B,CAE5BC,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,cAYCO,EACXR,IAAiC,CAEjCS,cAAeT,EAAQS,cACvBC,iBAAkBV,EAAQU,iBAC1BC,eAAgBX,EAAQW,eACxBC,gBAAiBZ,EAAQY,gBACzBC,oBAAqBb,EAAQa,oBAC7BV,MAAOH,EAAQG,QAGJW,EACXd,GAEA,IAAIe,EACFf,EAAQS,cACRT,EAAQU,iBACRV,EAAQW,eACRX,EAAQY,gBACRZ,EAAQa,sBAAuB,EAC/Bb,EAAQG,OAcCa,EACXC,IAA8B,CAE9BC,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,EACX5B,IAA2B,CAE3B6B,0BAA2B7B,EAAQ6B,0BACnCC,YAAa9B,EAAQ+B,iBACrBC,eAAgBhC,EAAQiC,oBACxBC,4BAA6BlC,EAAQkC,4BACjCC,EAAkCnC,EAAQkC,kCAC1CvE,EACJyE,KAAMpC,EAAQqC,UACdC,YAAatC,EAAQsC,cAGVC,EACXvC,GAEA,IAAIwC,EACFxC,EAAQsC,YACRtC,EAAQoC,KACRpC,EAAQgC,eACRhC,EAAQ8B,YAER9B,EAAQ6B,2BACR7B,EAAQsC,cAAgBG,EAAwBC,aAC5ChB,EAA4B1B,EAAQ6B,gCACpClE,EACJqC,EAAQkC,4BACJS,EAAoC3C,EAAQkC,kCAC5CvE,GAOKiF,EACX5C,IAAwB,CAExBkC,4BAA6BlC,EAAQkC,4BACjCC,EAAkCnC,EAAQkC,kCAC1CvE,IAGOkF,EACX7C,GAEA,IAAI8C,EACF9C,EAAQkC,4BACJS,EAAoC3C,EAAQkC,kCAC5CvE,GAgCKoF,EAAqBC,MAChCC,IAEA,MAAMvH,EAAKuH,EAAavH,GAClB0G,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,CACLvF,KACA0G,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,IAA0B,CAE1BC,MAAOD,EAAaC,MACpBC,kBAAmBF,EAAaE,kBAChCnI,GAAIiI,EAAajI,KAUNoI,EAAoBC,IAAsB,CACrDC,YAAaD,EAAWE,mBACxBC,QAASH,EAAWG,QACpBC,cAAeJ,EAAWI,cAAcC,IAAIV,GAC5CW,mBAAoBN,EAAWM,qBASpBC,EAAiBC,IAAgB,CAC5CC,OAAQD,EAAQC,OAChBC,WAAYF,EAAQE,WACpBC,MAAOH,EAAQG,QAGJC,EAAmBJ,GAC9B,IAAIK,EAAQL,EAAQE,WAAYF,EAAQG,MAAOH,EAAQC,QAU5CK,EAAqBC,IAAmB,CACnDb,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,IAAgB,CAC5CC,IAAKD,EAAQC,IACbC,MAAOF,EAAQE,QAWJpD,EACXqD,IAAqC,CAErCC,OAAQD,EAASC,OACjBC,KAAMF,EAASE,OAGJ/C,EACX6C,GAEA,IAAIG,EAA4BH,EAASC,OAAQD,EAASE,MAU/CE,EACXC,IAAwB,CAExBC,SAAUD,EAAOC,SACb,CACEC,UAAWF,EAAOC,SAASE,WAC3BC,SAAUJ,EAAOC,SAASI,gBAE5BvI,EACJwI,gBAAiBN,EAAOM,kBASbC,EACXC,IAAgC,CAEhCd,MAAOc,EAAUd,MACjBe,YAAaD,EAAUC,YACvBC,YAAaF,EAAUE,cAcZC,GAAkBC,IAAe,CAC5CC,iBAAkBD,EAAME,mBACxBC,gBAAiBH,EAAMI,kBACvBC,kBAAmBL,EAAMM,oBACzBC,oBAAqBP,EAAMQ,sBAC3BC,mBAAoBT,EAAMU,qBAC1BC,qBAAsBX,EAAMY,uBAC5BC,kBAAmBb,EAAMc,mBACzBC,kBAAmBf,EAAMgB,qBAUdC,GACXjB,IAAoB,CAEpBkB,qBAAsBlB,EAAMmB,wBAC5BC,YAAapB,EAAMqB,cACnBC,sBAAuBtB,EAAMuB,wBAC7BC,mCACExB,EAAMyB,+CClhBGC,GACXC,GACAvJ,QACAwJ,YACAC,eACA3I,eACAT,SACAC,YACAzD,GACAkE,KACAb,WACAwJ,eACA1I,cACAC,SAEA,WAAA9E,CAAYoN,EAA8B1N,GAQxC,OAPAO,MAAKmN,EAAUA,EACfnN,KAAKS,GAAKhB,EAAQgB,GAClBT,KAAK6E,SAAWpF,EAAQoF,SACxB7E,KAAKqN,eAAiB5N,EAAQgF,QAC9BzE,KAAK4E,cAAgBnF,EAAQmF,cAC7B5E,KAAKsN,eAAiB7N,EAAQmE,QAEtBnE,EAAQkF,MACd,KAAK4I,EAAiBC,YACpBxN,KAAK2E,KAAO,cACZ,MACF,KAAK4I,EAAiBE,iBACpBzN,KAAK2E,KAAO,oBAKhB,OAAQlF,EAAQiF,gBACd,KAAKgJ,EAAeC,YAClB3N,KAAK0E,eAAiB,cACtB,MACF,KAAKgJ,EAAeE,UAClB5N,KAAK0E,eAAiB,YACtB,MACF,KAAKgJ,EAAeG,OAClB7N,KAAK0E,eAAiB,SAK1B1E,KAAKoN,YAAc1J,EAAsBjE,EAAQmE,QAAQC,MACzD7D,KAAK8D,WAAa,IAAIhE,IAAIiE,OAAOM,QAAQ5E,EAAQmE,QAAQE,aACzD9D,KAAKiE,SAAWxE,EAAQmE,QAAQK,SAChCjE,KAAKkE,YAAczE,EAAQmE,QAAQM,YAEnC,IACElE,KAAK4D,QAAU5D,MAAKmN,EAAQW,cAC1BrO,EACAO,KAAKoN,YAET,CAAE,MACApN,KAAK4D,aAAUlB,CACjB,CACF,ECrFI,MAAOqL,WAAkCpL,MAC7C,WAAA5C,GACEiO,MACE,+EAEJ,EAGI,MAAOC,WAA+BtL,MAC1C,WAAA5C,GACEiO,MACE,yEAEJ,EAGI,MAAOE,WAA2BvL,MACtC,WAAA5C,CAAYqN,GACVY,MAAM,wBAAwBZ,EAAYe,2BAC5C,EAGI,MAAOC,WAA2BzL,MACtC,WAAA5C,GACEiO,MACE,iFAEJ,EAGI,MAAOK,WAAsC1L,MACjD,WAAA5C,CAAYkJ,GACV+E,MAAM,yCAAyC/E,IACjD,EAGI,MAAOqF,WAA2B3L,MACtC,WAAA5C,CAAYwO,GACVP,MAAM,UAAUO,eAClB,EAGI,MAAOC,WAA4B7L,MACvC,WAAA5C,CAAYsB,GACV2M,MAAM,WAAW3M,eACnB,EAGI,MAAOoN,WAA0C9L,MACrD,WAAA5C,CAAY2O,GACVV,MAAM,+CAA+CU,IACvD,EAGI,MAAOC,WAAgChM,MAC3C,WAAA5C,GACEiO,MAAM,gEACR,QCvCWY,GACXzG,GACAgF,GACA5E,GACA9H,GACAyH,GACAE,GASA,WAAArI,CACEoN,EACA1M,EACAJ,GAEAL,MAAKmN,EAAUA,EACfnN,MAAKS,EAAMA,EACXT,MAAK6O,EAAUxO,EACjB,CAEA,EAAAwO,CAAUxO,GACRL,MAAKkI,EAAY7H,GAAM6H,eAAYxF,EACnC1C,MAAKmI,EAAkB9H,GAAM8H,gBAAkB,GAC/CnI,MAAKoI,EAAY/H,GAAM+H,eAAY1F,EACnC1C,MAAKuI,EAAelI,GAAMkI,kBAAe7F,CAC3C,CAEA,MAAIjC,GACF,OAAOT,MAAKS,CACd,CAEA,YAAIyH,GACF,OAAOlI,MAAKkI,CACd,CAEA,kBAAIC,GACF,OAAOnI,MAAKmI,CACd,CAEA,eAAII,GACF,OAAOvI,MAAKuI,CACd,CAEA,aAAIuG,GACF,OAAO9O,MAAKuI,GCrESwG,EDqEe/O,MAAKuI,ECpEpC,IAAIyG,KAAKC,OAAOF,EAAK,iBDoE+BrM,ECrEvD,IAAmBqM,CDsEvB,CAEA,YAAI3G,GACF,OAAOpI,MAAKoI,CACd,CAOA,aAAM8G,GACJ,OAAOlP,MAAKmN,EAAQhN,YAAY,uBAAwB,CACtDM,GAAIT,MAAKS,GAEb,CAOA,UAAM0O,GACJ,MAAM9O,QAAaL,MAAKmN,EAAQhN,YAAY,oBAAqB,CAC/DM,GAAIT,MAAKS,IAGX,OADAT,MAAK6O,EAAUxO,GACRA,CACT,CAOA,qBAAM+O,GACJ,OAAOpP,MAAKmN,EAAQhN,YAAY,+BAAgC,CAC9DM,GAAIT,MAAKS,GAEb,CAUA,oBAAM4O,CAAezL,EAAuBwJ,GAC1C,GAAuB,iBAAZxJ,IAAyBwJ,EAClC,MAAM,IAAIuB,GAGZ,MAAMW,EACe,iBAAZ1L,EACH5D,MAAKmN,EAAQoC,cAAc3L,EAASwJ,GAAeoC,GAEnDxP,MAAKmN,EAAQoC,cAAc3L,EAASwJ,GAE1C,OAAOpN,MAAKmN,EAAQhN,YAAY,8BAA+B,CAC7DM,GAAIT,MAAKS,EACTmD,QAAS0L,GAEb,CAUA,UAAMG,CAAK7L,EAAuBwJ,GAChC,GAAuB,iBAAZxJ,IAAyBwJ,EAClC,MAAM,IAAIuB,GAGZ,MAAMW,EACe,iBAAZ1L,EACH5D,MAAKmN,EAAQoC,cAAc3L,EAASwJ,GAAeoC,GAEnDxP,MAAKmN,EAAQoC,cAAc3L,EAASwJ,GAE1C,OAAOpN,MAAKmN,EAAQhN,YAAY,oBAAqB,CACnDM,GAAIT,MAAKS,EACTmD,QAAS0L,GAEb,CAQA,cAAMI,CAAS3K,GAMb,aALuB/E,MAAKmN,EAAQhN,YAAY,wBAAyB,CACvEM,GAAIT,MAAKS,EACTsE,aAGcoE,KAAK1J,GAAY,IAAIyN,GAAelN,MAAKmN,EAAS1N,IACpE,CAOA,kBAAMqK,GACJ,OAAO9J,MAAKmN,EAAQhN,YAAY,4BAA6B,CAC3DM,GAAIT,MAAKS,GAEb,CAQA,wBAAMkP,CAAmBlG,GACvB,OAAOzJ,MAAKmN,EAAQhN,YAAY,kCAAmC,CACjEM,GAAIT,MAAKS,EACTgJ,SAEJ,CAOA,iCAAMxC,GACJ,OAAOjH,MAAKmN,EAAQhN,YAClB,2CACA,CACEM,GAAIT,MAAKS,GAGf,CASA,uCAAMmP,CAAkCpF,EAAgBC,GACtD,OAAOzK,MAAKmN,EAAQhN,YAClB,iDACA,CACEM,GAAIT,MAAKS,EACT+J,SACAC,QAGN,CAOA,uCAAMoF,GACJ,OAAO7P,MAAKmN,EAAQhN,YAClB,iDACA,CACEM,GAAIT,MAAKS,GAGf,CAOA,kCAAMqP,GACJ,OAAO9P,MAAKmN,EAAQhN,YAClB,4CACA,CACEM,GAAIT,MAAKS,GAGf,CAQA,YAAMsP,CAAOzO,GACX,MAAMD,EAAWd,IACXyP,EAAc,IAAIrO,EAClBsO,EAAYjQ,MAAKmN,EAAQ/L,oBAC7BC,GACA,CAAC7B,EAAO2C,KACN,IACI1C,EADAyQ,EAAoB1Q,EAGxB,GAAI2C,EACF,IACE1C,EAAU,IAAIyN,GAAelN,MAAKmN,EAAShL,EAC7C,CAAE,MAAO3C,GACP0Q,EAAM1Q,CACR,CAGGwQ,EAAY1O,SAAS4O,EAAKzQ,GAC1B6B,IAAW4O,EAAKzQ,EAAQ,IAajC,aAVMO,MAAKmN,EAAQhN,YAAY,sBAAuB,CACpDoO,QAASvO,MAAKS,EACdY,aAEF2O,EAAYjO,OAAS,KACd/B,MAAKmN,EAAQhN,YAAY,YAAa,CACzCkB,aAEF4O,GAAW,EAEND,CACT,CAEA,sBAAMG,GACJ,OAAOnQ,MAAKmN,EAAQhN,YAAY,gCAAiC,CAC/DM,GAAIT,MAAKS,GAEb,CAOA,iBAAM2P,GACJ,OAAOpQ,MAAKmN,EAAQhN,YAAY,2BAA4B,CAC1DM,GAAIT,MAAKS,GAEb,CAOA,eAAM2K,GACJ,OAAOpL,MAAKmN,EAAQhN,YAAY,yBAA0B,CACxDM,GAAIT,MAAKS,GAEb,EE7TI,MAAO4P,WAAmCzB,GAC9CzB,GACA1M,GASA,WAAAV,CACEoN,EACA1M,EACAJ,GAEA2N,MAAMb,EAAQ1M,EAAIJ,GAClBL,MAAKmN,EAAUA,EACfnN,MAAKS,EAAMA,CACb,CAOA,iBAAM6P,GACJ,OAAOtQ,MAAKmN,EAAQhN,YAAY,iBAAkB,CAChDM,GAAIT,MAAKS,GAEb,CAEA,qBAAM8P,GACJ,OAAOvQ,MAAKmN,EAAQhN,YAAY,qBAAsB,CACpDM,GAAIT,MAAKS,GAEb,EC9BI,MAAO+P,WAAsC5B,GACjDvG,GAAsC,GACtC8E,GACAtG,GACApG,GACAwH,GACAd,GACAmB,GAAgD,GAEhD,EAAAuG,CAAUxO,GACRL,MAAKmH,EAAQ9G,GAAM8G,MAAQ,GAC3BnH,MAAKiI,EAAY5H,GAAM4H,UAAY,GACnCjI,MAAK6G,EAAexG,GAAMwG,aAAe,GACzC7G,MAAKqI,EAAUhI,GAAMgI,QAAU,GAC/BrI,MAAKsI,EAAejI,GAAMiI,aAAe,EAC3C,CASA,WAAAvI,CACEoN,EACA1M,EACAJ,GAEA2N,MAAMb,EAAQ1M,EAAIJ,GAClBL,MAAKmN,EAAUA,EACfnN,MAAKS,EAAMA,EACXT,MAAK6O,EAAUxO,EACjB,CAOA,UAAM8O,GACJ,MAAM9O,QAAa2N,MAAMmB,OAEzB,OADAnP,MAAK6O,EAAUxO,GACRA,CACT,CAKA,QAAI8G,GACF,OAAOnH,MAAKmH,CACd,CAOA,gBAAMsJ,CAAWtJ,SACTnH,MAAKmN,EAAQhN,YAAY,mBAAoB,CACjDM,GAAIT,MAAKS,EACT0G,SAEFnH,MAAKmH,EAAQA,CACf,CAKA,YAAIc,GACF,OAAOjI,MAAKiI,CACd,CAOA,oBAAMyI,CAAezI,SACbjI,MAAKmN,EAAQhN,YAAY,uBAAwB,CACrDM,GAAIT,MAAKS,EACTwH,aAEFjI,MAAKiI,EAAYA,CACnB,CAKA,eAAIpB,GACF,OAAO7G,MAAK6G,CACd,CAOA,uBAAM8J,CAAkB9J,SAChB7G,MAAKmN,EAAQhN,YAAY,0BAA2B,CACxDM,GAAIT,MAAKS,EACToG,gBAEF7G,MAAK6G,EAAeA,CACtB,CAKA,UAAIwB,GACF,OAAOrI,MAAKqI,CACd,CAKA,eAAIC,GACF,OAAOtI,MAAKsI,CACd,CAOA,gBAAMsI,GACJ,MAAMvI,QAAerI,MAAKmN,EAAQhN,YAAY,mBAAoB,CAChEM,GAAIT,MAAKS,IAGX,OADAT,MAAKqI,EAAUA,EACRA,CACT,CAOA,qBAAMwI,GACJ,MAAMvI,QAAoBtI,MAAKmN,EAAQhN,YACrC,wBACA,CACEM,GAAIT,MAAKS,IAIb,OADAT,MAAKsI,EAAeA,EACbA,CACT,CAOA,iBAAMjB,GACJ,OAAOrH,MAAKmN,EAAQhN,YAAY,oBAAqB,CACnDM,GAAIT,MAAKS,GAEb,CASA,sBAAMqQ,CACJC,EACAC,EACAC,GAEA,OAAOjR,MAAKmN,EAAQhN,YAAY,yBAA0B,CACxDM,GAAIT,MAAKS,EACTsQ,iBACAC,SACAC,iBAEJ,CAQA,aAAMC,CAAQjI,GAEZ,aADqBjJ,KAAK4Q,cACZO,SAASlI,EACzB,CAQA,kBAAMmI,CAAanI,GAEjB,aAD0BjJ,KAAK6Q,mBACZM,SAASlI,EAC9B,CAOA,6BAAMoI,CAAwBtI,GAC5B,OAAO/I,MAAKmN,EAAQhN,YAAY,gCAAiC,CAC/DM,GAAIT,MAAKS,EACTsI,eAEJ,CAOA,gBAAMuI,CAAWC,GACf,OAAOvR,MAAKmN,EAAQhN,YAAY,mBAAoB,CAClDM,GAAIT,MAAKS,EACT8Q,YAEJ,CAOA,gCAAMC,CAA2BzI,GAC/B,OAAO/I,MAAKmN,EAAQhN,YAAY,mCAAoC,CAClEM,GAAIT,MAAKS,EACTsI,eAEJ,CAOA,mBAAM0I,CAAcF,GAClB,OAAOvR,MAAKmN,EAAQhN,YAAY,sBAAuB,CACrDM,GAAIT,MAAKS,EACT8Q,YAEJ,CAOA,cAAMG,CAASzI,GACb,OAAOjJ,MAAKmN,EAAQhN,YAAY,iBAAkB,CAChDM,GAAIT,MAAKS,EACTwI,WAEJ,CAOA,iBAAM0I,CAAY1I,GAChB,OAAOjJ,MAAKmN,EAAQhN,YAAY,oBAAqB,CACnDM,GAAIT,MAAKS,EACTwI,WAEJ,CAOA,mBAAM2I,CAAc3I,GAClB,OAAOjJ,MAAKmN,EAAQhN,YAAY,sBAAuB,CACrDM,GAAIT,MAAKS,EACTwI,WAEJ,CAOA,sBAAM4I,CAAiB5I,GACrB,OAAOjJ,MAAKmN,EAAQhN,YAAY,yBAA0B,CACxDM,GAAIT,MAAKS,EACTwI,WAEJ,QC/RW6I,GACX3E,GAOA,WAAApN,CAAYoN,GACVnN,MAAKmN,EAAUA,CACjB,CAOA,UAAMgC,GACJ,OAAOnP,MAAKmN,EAAQhN,YAAY,0BAAsBuC,EACxD,CAUA,aAAMqP,CAAQvM,GACZ,OAAOxF,MAAKmN,EAAQhN,YAAY,wBAAyB,CACvDqF,iBAEJ,CAQA,yBAAMwM,CAAoBvR,GACxB,MAAMJ,QAAaL,MAAKmN,EAAQhN,YAC9B,oCACA,CACEM,OAGJ,GAAIJ,EACF,MAA0C,UAAnCA,EAAK+H,SAAS3C,iBACjB,IAAI+K,GAAMxQ,MAAKmN,EAAS9M,EAAKI,GAAIJ,GACjC,IAAIgQ,GAAGrQ,MAAKmN,EAAS9M,EAAKI,GAAIJ,EAGtC,CAQA,oBAAM4R,CAAexR,GACnB,MAAMJ,QAAaL,MAAKmN,EAAQhN,YAC9B,+BACA,CACEM,OAGJ,OAAOJ,EAAO,IAAI6M,GAAelN,MAAKmN,EAAS9M,QAAQqC,CACzD,CAQA,oBAAMwP,CAAejJ,GACnB,MAAM5I,QAAaL,MAAKmN,EAAQhN,YAC9B,+BACA,CACE8I,YAGJ,OAAO5I,EAAO,IAAIgQ,GAAGrQ,MAAKmN,EAAS9M,EAAKI,GAAIJ,QAAQqC,CACtD,CAQA,UAAMyP,CAAKpN,GAKT,aAJ4B/E,MAAKmN,EAAQhN,YAAY,qBAAsB,CACzE4E,aAICoE,KAAKnB,IACJ,OAAQA,EAAaI,SAAS3C,kBAC5B,IAAK,KACH,OAAO,IAAI4K,GAAGrQ,MAAKmN,EAASnF,EAAavH,GAAIuH,GAC/C,IAAK,QACH,OAAO,IAAIwI,GAAMxQ,MAAKmN,EAASnF,EAAavH,GAAIuH,GAClD,QACE,WAGLoK,QAAQpK,QAAkCtF,IAAjBsF,GAC9B,CAQA,gBAAMqK,CACJtN,GASA,aAP4B/E,MAAKmN,EAAQhN,YACvC,2BACA,CACE4E,aAIiBoE,KAClBnB,GAAiB,IAAIwI,GAAMxQ,MAAKmN,EAASnF,EAAavH,GAAIuH,IAE/D,CAQA,aAAMsK,CACJvN,GASA,aAP4B/E,MAAKmN,EAAQhN,YACvC,wBACA,CACE4E,aAIiBoE,KAClBnB,GAAiB,IAAIqI,GAAGrQ,MAAKmN,EAASnF,EAAavH,GAAIuH,IAE5D,CAQA,wBAAMuK,CAAmBxN,GACvB,MAAMiD,QAAqBhI,MAAKmN,EAAQhN,YACtC,mCACA,CACE4E,YAIJ,OAAO,IAAIyL,GAAMxQ,MAAKmN,EAASnF,EAAavH,GAAIuH,EAClD,CASA,6BAAMwK,CACJzJ,EACAhE,GAEA,MAAMiD,QAAqBhI,MAAKmN,EAAQhN,YACtC,wCACA,CACE4I,cACAhE,YAIJ,OAAO,IAAIyL,GAAMxQ,MAAKmN,EAASnF,EAAavH,GAAIuH,EAClD,CASA,cAAMyK,CAASlB,EAAoBxM,GACjC,MAAMiD,QAAqBhI,MAAKmN,EAAQhN,YACtC,yBACA,CACEoR,WACAxM,YAIJ,OAAO,IAAIyL,GAAMxQ,MAAKmN,EAASnF,EAAavH,GAAIuH,EAClD,CASA,yBAAM0K,CACJC,EACA5N,GAEA,MAAMiD,QAAqBhI,MAAKmN,EAAQhN,YACtC,oCACA,CACEwS,aACA5N,YAIJ,OAAO,IAAIsL,GAAGrQ,MAAKmN,EAASnF,EAAavH,GAAIuH,EAC/C,CASA,WAAM4K,CAAM3J,EAAiBlE,GAC3B,MAAMiD,QAAqBhI,MAAKmN,EAAQhN,YAAY,sBAAuB,CACzE8I,UACAlE,YAGF,OAAO,IAAIsL,GAAGrQ,MAAKmN,EAASnF,EAAavH,GAAIuH,EAC/C,CAOA,iBAAMoI,GACJ,OAAOpQ,MAAKmN,EAAQhN,YAAY,iCAA6BuC,EAC/D,CASA,YAAMqN,CAIJzO,EAA8BmE,GAC9B,MAAMpE,EAAWd,IACXyP,EAAc,IAAIrO,EAClBsO,EAAYjQ,MAAKmN,EAAQ/L,oBAC7BC,GACA,CAAC7B,EAAO2C,KACN,IACI0Q,EADA3C,EAAoB1Q,EAGxB,GAAI2C,EACF,IACE0Q,EACsC,UAApC1Q,EAAMiG,SAAS3C,iBACV,IAAI+K,GAAMxQ,MAAKmN,EAAShL,EAAM1B,GAAI0B,GAClC,IAAIkO,GAAGrQ,MAAKmN,EAAShL,EAAM1B,GAAI0B,EACxC,CAAE,MAAO3C,GACP0Q,EAAM1Q,CACR,CAGGwQ,EAAY1O,SAAS4O,EAAK2C,GAC1BvR,IAAW4O,EAAK2C,EAAY,IAarC,aAVM7S,MAAKmN,EAAQhN,YAAY,uBAAwB,CACrDkB,WACAoE,qBAEFuK,EAAYjO,OAAS,KACd/B,MAAKmN,EAAQhN,YAAY,YAAa,CACzCkB,aAEF4O,GAAW,EAEND,CACT,CAQA,kBAAM8C,CAAaxR,GACjB,OAAOtB,KAAK+P,OAAOzO,EAAUyR,EAAiBvC,MAChD,CAQA,eAAMwC,CAAU1R,GACd,OAAOtB,KAAK+P,OAAOzO,EAAUyR,EAAiB1C,GAChD,CASA,uBAAM4C,CACJ3R,EACAmE,EACAD,GAEA,MAAMnE,EAAWd,IACXyP,EAAc,IAAIrO,EAClBsO,EAAYjQ,MAAKmN,EAAQ/L,oBAC7BC,GACA,CAAC7B,EAAO2C,KACN,IACI1C,EADAyQ,EAAoB1Q,EAGxB,GAAI2C,EACF,IACE1C,EAAU,IAAIyN,GAAelN,MAAKmN,EAAShL,EAC7C,CAAE,MAAO3C,GACP0Q,EAAM1Q,CACR,CAGGwQ,EAAY1O,SAAS4O,EAAKzQ,GAC1B6B,IAAW4O,EAAKzQ,EAAQ,IAcjC,aAXMO,MAAKmN,EAAQhN,YAAY,kCAAmC,CAChEkB,WACAoE,mBACAD,kBAEFwK,EAAYjO,OAAS,KACd/B,MAAKmN,EAAQhN,YAAY,YAAa,CACzCkB,aAEF4O,GAAW,EAEND,CACT,CAQA,4BAAMkD,CACJ5R,EACAkE,GAEA,OAAOxF,KAAKiT,kBACV3R,EACAyR,EAAiBvC,MACjBhL,EAEJ,CAQA,yBAAM2N,CACJ7R,EACAkE,GAEA,OAAOxF,KAAKiT,kBAAkB3R,EAAUyR,EAAiB1C,GAAI7K,EAC/D,QCnaW4N,GACXjG,GAEA,WAAApN,CAAYoN,GACVnN,MAAKmN,EAAUA,CACjB,CAEA,aAAAkG,GACE,OAAOrT,MAAKmN,EAAQhN,YAClB,sCACAuC,EAEJ,CAEA,qBAAA4Q,GACE,OAAOtT,MAAKmN,EAAQhN,YAClB,8CACAuC,EAEJ,CAEA,sBAAA6Q,GACE,OAAOvT,MAAKmN,EAAQhN,YAClB,+CACAuC,EAEJ,CAEA,kBAAA8Q,GACE,OAAOxT,MAAKmN,EAAQhN,YAClB,2CACAuC,EAEJ,CAEA,kBAAA+Q,CAAmBC,GACjB,OAAO1T,MAAKmN,EAAQhN,YAAY,sCAAuC,CACrEuT,aAEJ,QCnCWC,GACXxG,GAOA,WAAApN,CAAYoN,GACVnN,MAAKmN,EAAUA,CACjB,CAEA,IAAAgC,GACE,OAAOnP,MAAKmN,EAAQhN,YAAY,wBAAoBuC,EACtD,CAQA,gBAAMoG,CAAW8K,GACf,OAAO5T,MAAKmN,EAAQhN,YAAY,yBAA0B,CACxDyT,mBAAoBA,IAAsB,GAE9C,CASA,4BAAMC,CACJtC,EACAqC,GAEA,OAAO5T,MAAKmN,EAAQhN,YAAY,qCAAsC,CACpEoR,WACAqC,mBAAoBA,IAAsB,GAE9C,CAQA,yBAAME,CAAoB7K,GACxB,OAAOjJ,MAAKmN,EAAQhN,YAAY,kCAAmC,CACjE8I,WAEJ,CAQA,sBAAM8K,CAAiBC,GACrB,OAAOhU,MAAKmN,EAAQhN,YAAY,+BAAgC,CAC9D6T,WAEJ,CASA,qBAAMC,CAAgBzK,EAA+BD,GACnD,OAAOvJ,MAAKmN,EAAQhN,YAAY,8BAA+B,CAC7DqJ,aACAD,UAEJ,CAQA,mBAAM2K,CAAc5S,GAClB,MAAMD,EAAWd,IACXyP,EAAc,IAAIrO,EAClBsO,EAAYjQ,MAAKmN,EAAQ/L,oBAC7BC,GACA,CAAC7B,EAAO2C,KACD6N,EAAY1O,SAAS9B,EAAO2C,QAASO,GACrCpB,IAAW9B,EAAO2C,QAASO,EAAU,IAY9C,aATM1C,MAAKmN,EAAQhN,YAAY,4BAA6B,CAC1DkB,aAEF2O,EAAYjO,OAAS,KACd/B,MAAKmN,EAAQhN,YAAY,YAAa,CACzCkB,aAEF4O,GAAW,EAEND,CACT,CAQA,uBAAMmE,CAAkB7S,GACtB,MAAMD,EAAWd,IACXyP,EAAc,IAAIrO,EAClBsO,EAAYjQ,MAAKmN,EAAQ/L,oBAC7BC,GACA,CAAC7B,EAAO2C,KACD6N,EAAY1O,SAAS9B,EAAO2C,QAASO,GACrCpB,IAAW9B,EAAO2C,QAASO,EAAU,IAY9C,aATM1C,MAAKmN,EAAQhN,YAAY,gCAAiC,CAC9DkB,aAEF2O,EAAYjO,OAAS,KACd/B,MAAKmN,EAAQhN,YAAY,YAAa,CACzCkB,aAEF4O,GAAW,EAEND,CACT,EC9GK,MAAMoE,GAAerM,MAC1BsM,EACAC,KAEA,OAAQD,EAAOxQ,MACb,IAAK,MACH,MAAO,CACLA,KAAM,MACN8O,iBAAkB0B,EAAOE,gBACzBD,aAEJ,IAAK,MACH,MAAO,CACLzQ,KAAM,MACN8O,iBAAkB0B,EAAOE,gBACzBD,YACAE,QAASH,EAAOI,aAChBC,YAAaL,EAAOM,sBC7CtBtV,GAAeC,IACnBC,QAAQC,MAAMF,EAAMG,QAAQ,QAajBmV,GACXjV,GAEAC,GAEAC,GAAY,IAAIC,IAKhB,WAAAC,CAAYJ,EAAgBC,GAC1BI,MAAKL,EAAUA,EACfK,MAAKL,EAAQM,iBAAiB,UAAWD,KAAKE,eAC1CN,GACFI,MAAKL,EAAQM,iBAAiB,QAASZ,IAEzCW,MAAKJ,EAAiBA,CACxB,CAQA,UAAMiV,GACJ,OAAO7U,KAAKG,YAAY,aAAc,CACpCP,cAAeI,MAAKJ,GAExB,CASA,WAAAO,CACEC,EACAC,GAEA,MAAMC,EAAYC,IAClBP,MAAKL,EAAQa,YAAY,CACvBJ,SACAK,GAAIH,EACJD,SAQF,OANgB,IAAIK,SAAQ,CAACC,EAASC,KACpCZ,MAAKH,EAAUgB,IAAIP,EAAW,CAC5BK,QAASA,EACTC,UACA,GAON,CAOAV,cACEZ,IAIA,MAAMwB,EAAYxB,EAAMe,KACpBL,MAAKJ,GACPL,QAAQwB,IAAI,4BAA6BD,GAE3C,MAAME,EAAUhB,MAAKH,EAAUoB,IAAIH,EAAUL,IACzCO,IACFhB,MAAKH,EAAUqB,OAAOJ,EAAUL,IAC5B,UAAWK,EACbE,EAAQJ,OAAOE,EAAUtB,OAEzBwB,EAAQL,QAAQG,EAAUK,QAE9B,EAMF,KAAAM,GACEzB,MAAKL,EAAQ6B,oBAAoB,UAAWxB,KAAKE,eAC7CF,MAAKJ,GACPI,MAAKL,EAAQ6B,oBAAoB,QAASnC,IAE5CW,MAAKL,EAAQ+B,WACf,EC9GI,MAAOoT,WAAcF,GAMzB,WAAA7U,CAAYH,GAIVoO,MAHe,IAAI+G,OAAO,IAAIC,IAAI,8BAA+BC,KAAM,CACrEpR,KAAM,WAEMjE,IAAiB,EACjC,CAQA,qBAAMsV,CAAgBvC,GACpB,OAAO3S,KAAKG,YAAY,wBAAyB,CAC/CwS,cAEJ,CASA,6BAAMwC,CAAwBxC,EAAwByC,GACpD,OAAOpV,KAAKG,YAAY,gCAAiC,CACvDwS,aACAyC,OAEJ,CAiBA,sCAAMC,CACJ1C,EACA1J,EACAc,EACAqL,GAEA,OAAOpV,KAAKG,YAAY,yCAA0C,CAChEiV,MACAzC,aACA1J,UACAc,kBACAuL,mBAAoB/U,KAExB,CAWA,yBAAMgV,CACJlB,EACApL,EACAc,EACAqL,GAEA,MAAMzC,QAAmB0B,EAAOE,iBAC1BiB,cAAEA,EAAaF,mBAAEA,SACftV,KAAKqV,iCACT1C,EACA1J,EACAc,EACAqL,GAEEd,QAAkBD,EAAOoB,YAAYD,GACrCE,QAAmBtB,GAAaC,EAAQC,GAE9C,OAAOtU,KAAKG,YAAY,4BAA6B,CACnDkU,OAAQqB,EACRJ,qBACAF,OAEJ,CASA,4BAAMvB,CAAuBtC,EAAoB6D,GAC/C,OAAOpV,KAAKG,YAAY,+BAAgC,CACtDoR,WACA6D,OAEJ,ECpFI,MAAOO,WAEHjW,EACRkW,GACAC,GACAC,GACAnD,GACA1J,GACA8M,GACAC,GACAC,IAAW,EACXC,GACA7B,GACAtP,GAUA,WAAAhF,CAAYgF,GAIViJ,MAHe,IAAI+G,OAAO,IAAIC,IAAI,+BAAgCC,KAAM,CACtEpR,KAAM,gBAIoBnB,IAA1BqC,GAASoR,cAAuD,QAAzBpR,EAAQoR,cAEjDnW,MAAK+E,EAAWA,EAChB/E,MAAK6V,EAAiB,IAAI/D,GAAc9R,MACxCA,MAAK8V,EAAoB,IAAI1C,GAAiBpT,MAC9CA,MAAKkW,EAAe,IAAIvC,GAAY3T,MACpC,MAAM4V,EAAS,CACb,IAAIQ,EACJ,IAAIC,KACAtR,GAAS6Q,QAAU,IAEzB5V,MAAK4V,EAAU,IAAI9V,IACjB8V,EAAOzM,KAAKmN,GAAU,CAACA,EAAMlJ,YAAYe,WAAYmI,KAEzD,CAUA,UAAMzB,CAAKlC,GACT,MAAMxR,QAAenB,KAAKG,YAAY,cAAe,CACnDwS,aACA5N,QAAS/E,MAAK+E,IAEhB/E,MAAK2S,EAAcA,EACnB3S,MAAKiJ,EAAW9H,EAAO8H,QACvBjJ,MAAK+V,EAAkB5U,EAAO4U,eAC9B/V,MAAKgW,EAAuB7U,EAAO6U,oBACnChW,MAAKiW,GAAW,CAClB,CASA,mBAAaM,CACXlC,EACAtP,GAIA,MAAMoI,EAAS,IAAIwI,GAAgD5Q,GASnE,OARAoI,GAAOkH,EAAUA,QAEXlH,EAAO0H,WAAWR,EAAOE,iBAE1BxP,GAASyR,2BACNrJ,EAAOsJ,WAGRtJ,CACT,CAYA,kBAAauJ,CACX/D,EACA5N,GAIA,MAAMoI,EAAS,IAAIwI,GAAgD,IAC9D5Q,EACHyR,qBAAqB,IAGvB,aADMrJ,EAAO0H,KAAKlC,GACXxF,CACT,CAKA,WAAIpI,GACF,OAAO/E,MAAK+E,CACd,CAKA,UAAIsP,GACF,OAAOrU,MAAKqU,CACd,CAKA,WAAI4B,GACF,OAAOjW,MAAKiW,CACd,CAKA,WAAIhN,GACF,OAAOjJ,MAAKiJ,CACd,CAKA,qBAAI0N,GACF,OAAO3W,MAAK2S,CACd,CAKA,kBAAIoD,GACF,OAAO/V,MAAK+V,CACd,CAKA,uBAAIC,GACF,OAAOhW,MAAKgW,CACd,CAKA,iBAAIH,GACF,OAAO7V,MAAK6V,CACd,CAKA,oBAAIC,GACF,OAAO9V,MAAK8V,CACd,CAKA,eAAII,GACF,OAAOlW,MAAKkW,CACd,CAaA,qCAAMU,GACJ,OAAO5W,KAAKG,YAAY,kCAAmC,CACzDmV,mBAAoB/U,KAExB,CAgBA,oCAAMsW,CACJC,EACAC,GAA8B,GAE9B,IAAKA,EACH,MAAM,IAAI3I,GAGZ,OAAOpO,KAAKG,YAAY,iCAAkC,CACxD2W,gBACAxB,mBAAoB/U,KAExB,CAcA,uCAAMyW,CAAkCrE,GACtC,OAAO3S,KAAKG,YAAY,oCAAqC,CAC3DwS,aACA2C,mBAAoB/U,KAExB,CAcA,qDAAM0W,GACJ,OAAOjX,KAAKG,YAAY,kDAAmD,CACzEmV,mBAAoB/U,KAExB,CAeA,6CAAM2W,CAAwCnN,GAC5C,OAAO/J,KAAKG,YAAY,0CAA2C,CACjE4J,kBACAuL,mBAAoB/U,KAExB,CAeA,kDAAM4W,CAA6CxE,GACjD,OAAO3S,KAAKG,YAAY,+CAAgD,CACtEwS,aACA2C,mBAAoB/U,KAExB,CAgBA,kCAAM6W,CACJ/C,EACAiB,GAEA,OAAOtV,KAAKG,YAAY,+BAAgC,CACtDkU,SACAiB,sBAEJ,CASA,cAAMmB,GACJ,IAAKzW,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,MAAMuH,cAAEA,EAAaF,mBAAEA,SACftV,KAAK4W,kCAGb,IAAKpB,IAAkBF,EACrB,OAGF,MAAMhB,QAAkBtU,MAAKqU,EAAQoB,YAAYD,GAC3CnB,QAAeD,GAAapU,MAAKqU,EAASC,GAEhD,OAAOtU,KAAKG,YAAY,0BAA2B,CACjDkU,SACAiB,sBAEJ,CAoBA,uBAAM+B,CACJC,EACAP,GAA8B,GAE9B,IAAK/W,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,IAAK8I,EACH,MAAM,IAAI3I,GAIZ,MAAMmJ,QAAwBvX,KAAKwX,8BAC3BF,EAAiB/C,iBAGzB,GAAIgD,EACF,MAAM,IAAIlJ,GAA8BkJ,GAG1C,MAAM/B,cAAEA,EAAaF,mBAAEA,SACftV,KAAK6W,qCACHS,EAAiB/C,iBACvB,GAEED,QAAkBgD,EAAiB7B,YAAYD,GAC/CnB,QAAeD,GAAakD,EAAkBhD,GACpD,OAAOtU,KAAKG,YAAY,oBAAqB,CAC3CwS,WAAY0B,EAAO1B,WACnB0B,SACAiB,sBAEJ,CAUA,mBAAMmC,CAAc9E,GAClB,IAAK3S,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,MAAMuH,cAAEA,EAAaF,mBAAEA,SACftV,KAAKgX,kCAAkCrE,GACzC2B,QAAkBtU,MAAKqU,EAAQoB,YAAYD,GAC3CnB,QAAeD,GAAapU,MAAKqU,EAASC,GAEhD,OAAOtU,KAAKG,YAAY,uBAAwB,CAC9CwS,aACA0B,SACAiB,sBAEJ,CASA,iCAAMoC,GACJ,IAAK1X,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,MAAMuH,cAAEA,EAAaF,mBAAEA,SACftV,KAAKiX,kDACP3C,QAAkBtU,MAAKqU,EAAQoB,YAAYD,GAC3CnB,QAAeD,GAAapU,MAAKqU,EAASC,GAEhD,OAAOtU,KAAKG,YAAY,qCAAsC,CAC5DkU,SACAiB,sBAEJ,CAUA,yBAAMC,CAAoBxL,GACxB,IAAK/J,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,MAAMuH,cAAEA,EAAaF,mBAAEA,SACftV,KAAKkX,wCAAwCnN,GAC/CuK,QAAkBtU,MAAKqU,EAAQoB,YAAYD,GAC3CnB,QAAeD,GAAapU,MAAKqU,EAASC,GAEhD,OAAOtU,KAAKG,YAAY,6BAA8B,CACpD4J,kBACAsK,SACAiB,sBAEJ,CAUA,gCAAaC,CACXlB,EACApL,EACAc,EACAqL,EACAxV,GAEA,MAAM+X,EAAQ,IAAI7C,GAAMlV,SAClB+X,EAAM9C,aACN8C,EAAMpC,oBAAoBlB,EAAQpL,EAASc,EAAiBqL,GAClEuC,EAAMlW,OACR,CASA,mCAAaoS,CACXtC,EACA6D,EACAxV,GAEA,MAAM+X,EAAQ,IAAI7C,GAAMlV,SAClB+X,EAAM9C,OACZ,MAAM1T,QAAewW,EAAM9D,uBAAuBtC,EAAU6D,GAE5D,OADAuC,EAAMlW,QACCN,CACT,CAUA,8BAAMyW,CAAyBjF,GAC7B,IAAK3S,MAAKqU,EACR,MAAM,IAAIpG,GAGZ,MAAMuH,cAAEA,EAAaF,mBAAEA,SACftV,KAAKmX,6CAA6CxE,GACpD2B,QAAkBtU,MAAKqU,EAAQoB,YAAYD,GAC3CnB,QAAeD,GAAapU,MAAKqU,EAASC,GAEhD,OAAOtU,KAAKG,YAAY,kCAAmC,CACzDwS,aACA0B,SACAiB,sBAEJ,CAOA,kBAAMuC,GACJ,OAAO7X,KAAKG,YAAY,2BAAuBuC,EACjD,CAQA,gBAAMoV,CAAW/O,GACf,OAAO/I,KAAKG,YAAY,oBAAqB,CAAE4I,eACjD,CASA,uBAAa+O,CAAW/O,EAA2BqM,GACjD,MAAM2C,EAAgB,IAAIjY,IACpB6X,EAAQ,IAAI7C,GAClB,IAAK,MAAMnC,KAAc5J,EAAa,CACpC,MAAME,QAAgB0O,EAAMxC,wBAAwBxC,EAAYyC,GAChE2C,EAAclX,IACZ8R,EAAWA,WAAWqF,mBACVtV,IAAZuG,EAEJ,CAEA,OADA0O,EAAMlW,QACCsW,CACT,CAQA,6BAAMP,CAAwB7E,GAC5B,OAAO3S,KAAKG,YAAY,iCAAkC,CAAEwS,cAC9D,CAQA,QAAAsF,CAAgC7K,GAC9B,OAAOpN,MAAK4V,EAAQ3U,IAAImM,EAAYe,WAGtC,CAUA,aAAAoB,CAAc3L,EAAuBwJ,GACnC,MAAMkJ,EAAQtW,KAAKiY,SAAS7K,GAC5B,IAAKkJ,EACH,MAAM,IAAIpI,GAAmBd,GAE/B,MAAM8K,EAAU5B,EAAM6B,OAAOvU,EAAS5D,MAChCiE,EAAWqS,EAAMrS,SAASL,GAIhC,OAHIK,IACFiU,EAAQjU,SAAWA,GAEdK,EAAqB4T,EAC9B,CAWA,aAAApK,CACErO,EACA2N,GAEA,MAAMkJ,EAAQtW,KAAKiY,SAAsB7K,GACzC,IAAKkJ,EACH,MAAM,IAAIpI,GAAmBd,GAI/B,GACEA,EAAYgL,OAAOC,IACnB5Y,EAAQkF,OAAS4I,EAAiBE,iBAElC,MAAM,IAAIgB,GAAkChP,EAAQgB,IAGtD,MAAM6M,EAAiB/I,EAAuB9E,EAAQmE,SAEtD,OAAO0S,EAAMgC,OAAOhL,EAAgBtN,KACtC,CAQA,uBAAAuY,CAAwB/C,GACtB,OAAOxV,KAAKG,YAAY,iCAAkC,CACxDqV,iBAEJ,CASA,+BAAAgD,CACEhD,EACAiD,GAEA,OAAOzY,KAAKG,YAAY,yCAA0C,CAChEqV,gBACAiD,kBAEJ,CAUA,yBAAAC,CACElD,EACAiD,EACAE,GAEA,OAAO3Y,KAAKG,YAAY,mCAAoC,CAC1DqV,gBACAiD,iBACAE,aAEJ,CAQA,6CAAMC,CAAwC7O,GAC5C,OAAO/J,KAAKG,YAAY,iDAAkD,CACxE4J,mBAEJ,EClvBK,MAAM8O,GAAU,CACrBC,MAAO,wBACPC,IAAK,2BACLC,WAAY,mCAWDC,GAAkB,CAC7BH,MAAO,wBACPC,IAAK,+CACLC,WAAY"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/ClientWorkerClass.ts","../src/utils/conversions.ts","../src/DecodedMessage.ts","../src/utils/errors.ts","../src/AsyncStream.ts","../src/utils/streams.ts","../src/Conversation.ts","../src/utils/date.ts","../src/Dm.ts","../src/Group.ts","../src/Conversations.ts","../src/DebugInformation.ts","../src/Preferences.ts","../src/utils/signer.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,null,null,null],"names":["handleError","event","console","error","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","result","handleStreamMessage","streamId","callback","options","streamHandler","onFail","undefined","async","removeEventListener","close","terminate","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","contentTypes","direction","limit","sentAfterNs","sentBeforeNs","fromSafeListMessagesOptions","ListMessagesOptions","toSafeListConversationsOptions","consentStates","conversationType","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","conversation","imageUrl","isActive","addedByInboxId","metadata","admins","superAdmins","createdAtNs","policyType","toSafeInstallation","installation","bytes","clientTimestampNs","toSafeInboxState","inboxState","identifiers","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","toSafeConversationDebugInfo","debugInfo","maybeForked","forkDetails","toSafeApiStats","stats","uploadKeyPackage","upload_key_package","fetchKeyPackage","fetch_key_package","sendGroupMessages","send_group_messages","sendWelcomeMessages","send_welcome_messages","queryGroupMessages","query_group_messages","queryWelcomeMessages","query_welcome_messages","subscribeMessages","subscribe_messages","subscribeWelcomes","subscribe_welcomes","toSafeIdentityStats","getIdentityUpdatesV2","get_identity_updates_v2","getInboxIds","get_inbox_ids","publishIdentityUpdate","publish_identity_update","verifySmartContractWalletSignature","verify_smart_contract_wallet_signature","DecodedMessage","client","contentType","conversationId","encodedContent","GroupMessageKind","Application","MembershipChange","DeliveryStatus","Unpublished","Published","Failed","decodeContent","ClientNotInitializedError","Error","super","SignerUnavailableError","CodecNotFoundError","toString","InboxReassignError","AccountAlreadyAssociatedError","GroupNotFoundError","groupId","StreamNotFoundError","InvalidGroupMembershipChangeError","messageId","MissingContentTypeError","StreamFailedError","retryAttempts","StreamInvalidRetryAttemptsError","AsyncStream","isDone","pendingResolves","queue","onDone","onReturn","flush","length","nextResolve","shift","done","value","push","next","return","end","Symbol","asyncIterator","usableProperties","isUsableProperty","prop","includes","DEFAULT_RETRY_DELAY","DEFAULT_RETRY_ATTEMPTS","createStream","streamFunction","streamValueMutator","onEnd","onError","onRestart","onRetry","onValue","retryDelay","retryOnFail","asyncStream","streamCallback","mutatedValue","then","isPromise","catch","retry","retries","ms","setTimeout","streamCloser","startRetry","Proxy","target","receiver","Reflect","has","_target","ownKeys","getOwnPropertyDescriptor","enumerable","configurable","Conversation","syncData","createdAt","ns","Date","Number","members","sync","publishMessages","sendOptimistic","safeEncodedContent","encodeContent","ContentTypeText","send","messages","updateConsentState","updateMessageDisappearingSettings","removeMessageDisappearingSettings","isMessageDisappearingEnabled","stream","pausedForVersion","getHmacKeys","Dm","peerInboxId","getDuplicateDms","Group","updateName","updateImageUrl","updateDescription","listAdmins","listSuperAdmins","updatePermission","permissionType","policy","metadataField","isAdmin","isSuperAdmin","addMembersByIdentifiers","addMembers","inboxIds","removeMembersByIdentifiers","removeMembers","addAdmin","removeAdmin","addSuperAdmin","removeSuperAdmin","Conversations","syncAll","getConversationById","getMessageById","getDmByInboxId","list","filter","listGroups","listDms","newGroupOptimistic","newGroupWithIdentifiers","newGroup","newDmWithIdentifier","identifier","newDm","streamGroups","ConversationType","streamDms","streamAllMessages","streamAllGroupMessages","streamAllDmMessages","DebugInformation","apiStatistics","apiIdentityStatistics","apiAggregateStatistics","clearAllStatistics","uploadDebugArchive","serverUrl","Preferences","refreshFromNetwork","inboxStateFromInboxIds","getLatestInboxState","setConsentStates","records","getConsentState","streamConsent","streamPreferences","toSafeSigner","signer","signature","getIdentifier","chainId","getChainId","blockNumber","getBlockNumber","UtilsWorkerClass","init","Utils","Worker","URL","url","generateInboxId","getInboxIdForIdentifier","env","revokeInstallationsSignatureText","signatureRequestId","revokeInstallations","signatureText","signMessage","safeSigner","Client","codecs","conversations","debugInformation","installationId","installationIdBytes","isReady","preferences","loggingLevel","GroupUpdatedCodec","TextCodec","codec","create","disableAutoRegister","register","build","accountIdentifier","unsafe_createInboxSignatureText","unsafe_addAccountSignatureText","newIdentifier","allowInboxReassign","unsafe_removeAccountSignatureText","unsafe_revokeAllOtherInstallationsSignatureText","unsafe_revokeInstallationsSignatureText","unsafe_changeRecoveryIdentifierSignatureText","unsafe_applySignatureRequest","unsafe_addAccount","newAccountSigner","existingInboxId","findInboxIdByIdentifier","removeAccount","revokeAllOtherInstallations","utils","changeRecoveryIdentifier","isRegistered","canMessage","canMessageMap","toLowerCase","codecFor","encoded","encode","sameAs","ContentTypeGroupUpdated","decode","signWithInstallationKey","verifySignedWithInstallationKey","signatureBytes","verifySignedWithPublicKey","publicKey","getKeyPackageStatusesForInstallationIds","ApiUrls","local","dev","production","HistorySyncUrls"],"mappings":"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"}
|