@xmtp/wasm-bindings 1.9.0-rc2 → 1.9.0-rc3

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.
@@ -1,51 +1,78 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- export function verifySignedWithPublicKey(signatureText: string, signatureBytes: Uint8Array, publicKey: Uint8Array): void;
4
- export function applySignatureRequest(host: string, gatewayHost: string | null | undefined, signatureRequest: SignatureRequestHandle): Promise<void>;
5
- export function revokeInstallationsSignatureRequest(host: string, gatewayHost: string | null | undefined, recoveryIdentifier: Identifier, inboxId: string, installationIds: Uint8Array[]): SignatureRequestHandle;
6
- export function metadataFieldName(field: MetadataField): string;
7
3
  export function encodeAttachment(attachment: Attachment): EncodedContent;
8
4
  export function contentTypeAttachment(): ContentTypeId;
9
- export function contentTypeGroupUpdated(): ContentTypeId;
10
- export function contentTypeLeaveRequest(): ContentTypeId;
11
- export function contentTypeMultiRemoteAttachment(): ContentTypeId;
5
+ export function encodeReadReceipt(read_receipt: ReadReceipt): EncodedContent;
6
+ export function contentTypeReadReceipt(): ContentTypeId;
7
+ export function encodeTransactionReference(transaction_reference: TransactionReference): EncodedContent;
8
+ export function contentTypeTransactionReference(): ContentTypeId;
12
9
  export function encodeMultiRemoteAttachment(multi_remote_attachment: MultiRemoteAttachment): EncodedContent;
10
+ export function contentTypeMultiRemoteAttachment(): ContentTypeId;
13
11
  export function contentTypeText(): ContentTypeId;
14
12
  export function encodeText(text: string): EncodedContent;
15
- export function contentTypeIntent(): ContentTypeId;
16
- export function encodeIntent(intent: Intent): EncodedContent;
13
+ export function contentTypeReply(): ContentTypeId;
17
14
  export function contentTypeMarkdown(): ContentTypeId;
18
15
  export function encodeMarkdown(text: string): EncodedContent;
16
+ export function verifySignedWithPublicKey(signatureText: string, signatureBytes: Uint8Array, publicKey: Uint8Array): void;
17
+ export function revokeInstallationsSignatureRequest(host: string, gatewayHost: string | null | undefined, recoveryIdentifier: Identifier, inboxId: string, installationIds: Uint8Array[]): SignatureRequestHandle;
18
+ export function applySignatureRequest(host: string, gatewayHost: string | null | undefined, signatureRequest: SignatureRequestHandle): Promise<void>;
19
+ export function inboxStateFromInboxIds(host: string, gatewayHost: string | null | undefined, inboxIds: string[]): Promise<InboxState[]>;
20
+ export function contentTypeGroupUpdated(): ContentTypeId;
21
+ export function contentTypeLeaveRequest(): ContentTypeId;
22
+ /**
23
+ * Encrypts an attachment for storage as a remote attachment.
24
+ */
25
+ export function encryptAttachment(attachment: Attachment): EncryptedAttachment;
26
+ export function encodeRemoteAttachment(remote_attachment: RemoteAttachment): EncodedContent;
27
+ export function contentTypeRemoteAttachment(): ContentTypeId;
28
+ /**
29
+ * Decrypts an encrypted payload from a remote attachment.
30
+ */
31
+ export function decryptAttachment(encryptedBytes: Uint8Array, remoteAttachment: RemoteAttachment): Attachment;
32
+ export function contentTypeWalletSendCalls(): ContentTypeId;
33
+ export function encodeWalletSendCalls(wallet_send_calls: WalletSendCalls): EncodedContent;
34
+ export function encodeIntent(intent: Intent): EncodedContent;
35
+ export function contentTypeIntent(): ContentTypeId;
36
+ export function encodeActions(actions: Actions): EncodedContent;
37
+ export function contentTypeActions(): ContentTypeId;
19
38
  export function encodeReaction(reaction: Reaction): EncodedContent;
20
39
  export function contentTypeReaction(): ContentTypeId;
40
+ export function createClient(host: string, inboxId: string, accountIdentifier: Identifier, dbPath?: string | null, encryptionKey?: Uint8Array | null, deviceSyncServerUrl?: string | null, deviceSyncWorkerMode?: DeviceSyncWorkerMode | null, logOptions?: LogOptions | null, allowOffline?: boolean | null, appVersion?: string | null, gatewayHost?: string | null, nonce?: bigint | null, authCallback?: any | null, authHandle?: AuthHandle | null, clientMode?: ClientMode | null): Promise<Client>;
41
+ export function getInboxIdForIdentifier(host: string, gatewayHost: string | null | undefined, isSecure: boolean, accountIdentifier: Identifier): Promise<string | undefined>;
42
+ export function generateInboxId(accountIdentifier: Identifier, nonce?: bigint | null): string;
43
+ export function metadataFieldName(field: MetadataField): string;
21
44
  /**
22
- * Delete a specific database file from OPFS.
23
- * Returns true if the file was deleted, false if it didn't exist.
24
- * Note: The database must be closed before calling this function.
45
+ * Get the number of database files stored in OPFS.
25
46
  */
26
- export function opfsDeleteFile(filename: string): Promise<boolean>;
47
+ export function opfsFileCount(): Promise<number>;
48
+ /**
49
+ * List all database files stored in OPFS.
50
+ * Returns an array of file names.
51
+ */
52
+ export function opfsListFiles(): Promise<string[]>;
27
53
  /**
28
54
  * Initialize the OPFS SQLite VFS if not already initialized.
29
55
  * This must be called before using other OPFS functions.
30
56
  */
31
57
  export function opfsInit(): Promise<void>;
32
- /**
33
- * Check if a database file exists in OPFS.
34
- */
35
- export function opfsFileExists(filename: string): Promise<boolean>;
36
- /**
37
- * Get the number of database files stored in OPFS.
38
- */
39
- export function opfsFileCount(): Promise<number>;
40
58
  /**
41
59
  * Delete all database files from OPFS.
42
60
  * Note: All databases must be closed before calling this function.
43
61
  */
44
62
  export function opfsClearAll(): Promise<void>;
45
63
  /**
46
- * Get the current capacity of the OPFS file pool.
64
+ * Import a database from a byte array into OPFS.
65
+ * This will overwrite any existing database with the same name.
66
+ * The byte array must contain a valid SQLite database.
67
+ * Note: Any existing database with the same name must be closed before importing.
47
68
  */
48
- export function opfsPoolCapacity(): Promise<number>;
69
+ export function opfsImportDb(filename: string, data: Uint8Array): Promise<void>;
70
+ /**
71
+ * Delete a specific database file from OPFS.
72
+ * Returns true if the file was deleted, false if it didn't exist.
73
+ * Note: The database must be closed before calling this function.
74
+ */
75
+ export function opfsDeleteFile(filename: string): Promise<boolean>;
49
76
  /**
50
77
  * Export a database file from OPFS as a byte array.
51
78
  * This can be used to backup or transfer a database.
@@ -53,40 +80,13 @@ export function opfsPoolCapacity(): Promise<number>;
53
80
  */
54
81
  export function opfsExportDb(filename: string): Promise<Uint8Array>;
55
82
  /**
56
- * List all database files stored in OPFS.
57
- * Returns an array of file names.
58
- */
59
- export function opfsListFiles(): Promise<string[]>;
60
- /**
61
- * Import a database from a byte array into OPFS.
62
- * This will overwrite any existing database with the same name.
63
- * The byte array must contain a valid SQLite database.
64
- * Note: Any existing database with the same name must be closed before importing.
65
- */
66
- export function opfsImportDb(filename: string, data: Uint8Array): Promise<void>;
67
- export function getInboxIdForIdentifier(host: string, gatewayHost: string | null | undefined, isSecure: boolean, accountIdentifier: Identifier): Promise<string | undefined>;
68
- export function generateInboxId(accountIdentifier: Identifier, nonce?: bigint | null): string;
69
- export function inboxStateFromInboxIds(host: string, gatewayHost: string | null | undefined, inboxIds: string[]): Promise<InboxState[]>;
70
- export function createClient(host: string, inboxId: string, accountIdentifier: Identifier, dbPath?: string | null, encryptionKey?: Uint8Array | null, deviceSyncServerUrl?: string | null, deviceSyncWorkerMode?: DeviceSyncWorkerMode | null, logOptions?: LogOptions | null, allowOffline?: boolean | null, appVersion?: string | null, gatewayHost?: string | null, nonce?: bigint | null, authCallback?: any | null, authHandle?: AuthHandle | null, clientMode?: ClientMode | null): Promise<Client>;
71
- export function encodeReadReceipt(read_receipt: ReadReceipt): EncodedContent;
72
- export function contentTypeReadReceipt(): ContentTypeId;
73
- export function encodeRemoteAttachment(remote_attachment: RemoteAttachment): EncodedContent;
74
- /**
75
- * Decrypts an encrypted payload from a remote attachment.
83
+ * Get the current capacity of the OPFS file pool.
76
84
  */
77
- export function decryptAttachment(encryptedBytes: Uint8Array, remoteAttachment: RemoteAttachment): Attachment;
78
- export function contentTypeRemoteAttachment(): ContentTypeId;
85
+ export function opfsPoolCapacity(): Promise<number>;
79
86
  /**
80
- * Encrypts an attachment for storage as a remote attachment.
87
+ * Check if a database file exists in OPFS.
81
88
  */
82
- export function encryptAttachment(attachment: Attachment): EncryptedAttachment;
83
- export function encodeWalletSendCalls(wallet_send_calls: WalletSendCalls): EncodedContent;
84
- export function contentTypeWalletSendCalls(): ContentTypeId;
85
- export function contentTypeTransactionReference(): ContentTypeId;
86
- export function encodeTransactionReference(transaction_reference: TransactionReference): EncodedContent;
87
- export function contentTypeReply(): ContentTypeId;
88
- export function encodeActions(actions: Actions): EncodedContent;
89
- export function contentTypeActions(): ContentTypeId;
89
+ export function opfsFileExists(filename: string): Promise<boolean>;
90
90
  /**
91
91
  * Entry point invoked by JavaScript in a worker.
92
92
  */
@@ -231,89 +231,31 @@ export enum SortDirection {
231
231
  * *This API requires the following crate features to be activated: `ReadableStreamType`*
232
232
  */
233
233
  type ReadableStreamType = "bytes";
234
- export interface PasskeySignature {
235
- publicKey: Uint8Array;
236
- signature: Uint8Array;
237
- authenticatorData: Uint8Array;
238
- clientDataJson: Uint8Array;
239
- }
240
-
241
- export interface PermissionPolicySet {
242
- addMemberPolicy: PermissionPolicy;
243
- removeMemberPolicy: PermissionPolicy;
244
- addAdminPolicy: PermissionPolicy;
245
- removeAdminPolicy: PermissionPolicy;
246
- updateGroupNamePolicy: PermissionPolicy;
247
- updateGroupDescriptionPolicy: PermissionPolicy;
248
- updateGroupImageUrlSquarePolicy: PermissionPolicy;
249
- updateMessageDisappearingPolicy: PermissionPolicy;
250
- updateAppDataPolicy: PermissionPolicy;
251
- }
252
-
253
- export interface GroupPermissions {
254
- policyType: GroupPermissionsOptions;
255
- policySet: PermissionPolicySet;
256
- }
257
-
258
- export interface SendMessageOpts {
259
- shouldPush: boolean;
260
- optimistic?: boolean;
261
- }
262
-
263
- export interface GroupMember {
264
- inboxId: string;
265
- accountIdentifiers: Identifier[];
266
- installationIds: string[];
267
- permissionLevel: PermissionLevel;
268
- consentState: ConsentState;
269
- }
270
-
271
- export interface GroupMetadata {
272
- creatorInboxId: string;
273
- conversationType: ConversationType;
274
- }
275
-
276
- export interface Consent {
277
- entityType: ConsentEntityType;
278
- state: ConsentState;
279
- entity: string;
280
- }
281
-
282
234
  export interface Attachment {
283
235
  filename?: string;
284
236
  mimeType: string;
285
237
  content: Uint8Array;
286
238
  }
287
239
 
288
- export interface MetadataFieldChange {
289
- fieldName: string;
290
- oldValue?: string;
291
- newValue?: string;
292
- }
293
-
294
- export interface Inbox {
295
- inboxId: string;
296
- }
240
+ export type ReadReceipt = Record<string, never>;
297
241
 
298
- export interface GroupUpdated {
299
- initiatedByInboxId: string;
300
- addedInboxes: Inbox[];
301
- removedInboxes: Inbox[];
302
- leftInboxes: Inbox[];
303
- metadataFieldChanges: MetadataFieldChange[];
304
- addedAdminInboxes: Inbox[];
305
- removedAdminInboxes: Inbox[];
306
- addedSuperAdminInboxes: Inbox[];
307
- removedSuperAdminInboxes: Inbox[];
242
+ export interface TransactionMetadata {
243
+ transactionType: string;
244
+ currency: string;
245
+ amount: number;
246
+ decimals: number;
247
+ fromAddress: string;
248
+ toAddress: string;
308
249
  }
309
250
 
310
- export interface LeaveRequest {
311
- authenticatedNote?: Uint8Array;
251
+ export interface TransactionReference {
252
+ namespace?: string;
253
+ networkId: string;
254
+ reference: string;
255
+ metadata?: TransactionMetadata;
312
256
  }
313
257
 
314
- export interface MultiRemoteAttachment {
315
- attachments: RemoteAttachmentInfo[];
316
- }
258
+ export type DecodedMessageContent = { type: "actions"; content: Actions | undefined } | { type: "attachment"; content: Attachment } | { type: "custom"; content: EncodedContent } | { type: "groupUpdated"; content: GroupUpdated } | { type: "intent"; content: Intent | undefined } | { type: "leaveRequest"; content: LeaveRequest } | { type: "markdown"; content: string } | { type: "multiRemoteAttachment"; content: MultiRemoteAttachment } | { type: "reaction"; content: Reaction } | { type: "readReceipt"; content: ReadReceipt } | { type: "remoteAttachment"; content: RemoteAttachment } | { type: "reply"; content: EnrichedReply } | { type: "text"; content: string } | { type: "transactionReference"; content: TransactionReference } | { type: "walletSendCalls"; content: WalletSendCalls } | { type: "deletedMessage"; content: DeletedMessage };
317
259
 
318
260
  export interface RemoteAttachmentInfo {
319
261
  secret: Uint8Array;
@@ -326,115 +268,50 @@ export interface RemoteAttachmentInfo {
326
268
  filename?: string;
327
269
  }
328
270
 
329
- export interface Intent {
330
- id: string;
331
- actionId: string;
332
- metadata?: Record<string, string | number | boolean | null>;
271
+ export interface MultiRemoteAttachment {
272
+ attachments: RemoteAttachmentInfo[];
333
273
  }
334
274
 
335
- export interface Reaction {
275
+ export interface Reply {
276
+ content: EncodedContent;
336
277
  reference: string;
337
- referenceInboxId: string;
338
- action: ReactionAction;
339
- content: string;
340
- schema: ReactionSchema;
341
- }
342
-
343
- export interface ConversationDebugInfo {
344
- epoch: bigint;
345
- maybeForked: boolean;
346
- forkDetails: string;
347
- isCommitLogForked?: boolean;
348
- localCommitLog: string;
349
- remoteCommitLog: string;
350
- cursor: Cursor[];
351
- }
352
-
353
- export interface CreateGroupOptions {
354
- permissions?: GroupPermissionsOptions;
355
- groupName?: string;
356
- groupImageUrlSquare?: string;
357
- groupDescription?: string;
358
- customPermissionPolicySet?: PermissionPolicySet;
359
- messageDisappearingSettings?: MessageDisappearingSettings;
360
- appData?: string;
361
- }
362
-
363
- export interface HmacKey {
364
- key: Uint8Array;
365
- epoch: bigint;
366
- }
367
-
368
- export interface ListConversationsOptions {
369
- consentStates?: ConsentState[];
370
- conversationType?: ConversationType;
371
- createdAfterNs?: bigint;
372
- createdBeforeNs?: bigint;
373
- includeDuplicateDms?: boolean;
374
- orderBy?: ListConversationsOrderBy;
375
- limit?: bigint;
376
- }
377
-
378
- export interface Cursor {
379
- originatorId: number;
380
- sequenceId: bigint;
381
- }
382
-
383
- export interface CreateDmOptions {
384
- messageDisappearingSettings?: MessageDisappearingSettings;
278
+ referenceInboxId?: string;
385
279
  }
386
280
 
387
- export interface MessageDisappearingSettings {
388
- fromNs: bigint;
389
- inNs: bigint;
281
+ export interface EnrichedReply {
282
+ referenceId: string;
283
+ content: DecodedMessageContent;
284
+ inReplyTo?: DecodedMessage;
390
285
  }
391
286
 
392
- export interface IdentityStats {
393
- publishIdentityUpdate: bigint;
394
- getIdentityUpdatesV2: bigint;
395
- getInboxIds: bigint;
396
- verifySmartContractWalletSignature: bigint;
287
+ export interface ContentTypeId {
288
+ authorityId: string;
289
+ typeId: string;
290
+ versionMajor: number;
291
+ versionMinor: number;
397
292
  }
398
293
 
399
- export interface Identifier {
400
- identifier: string;
401
- identifierKind: IdentifierKind;
294
+ export interface EncodedContent {
295
+ type?: ContentTypeId;
296
+ parameters: Record<string, string>;
297
+ fallback?: string;
298
+ compression?: number;
299
+ content: Uint8Array;
402
300
  }
403
301
 
404
- export interface ApiStats {
405
- uploadKeyPackage: bigint;
406
- fetchKeyPackage: bigint;
407
- sendGroupMessages: bigint;
408
- sendWelcomeMessages: bigint;
409
- queryGroupMessages: bigint;
410
- queryWelcomeMessages: bigint;
411
- subscribeMessages: bigint;
412
- subscribeWelcomes: bigint;
413
- }
302
+ export type UserPreferenceUpdate = { type: "ConsentUpdate"; consent: Consent } | { type: "HmacKeyUpdate"; key: number[] };
414
303
 
415
- export interface ListMessagesOptions {
416
- contentTypes?: ContentType[];
417
- excludeContentTypes?: ContentType[];
418
- sentBeforeNs?: bigint;
419
- sentAfterNs?: bigint;
420
- limit?: bigint;
421
- deliveryStatus?: DeliveryStatus;
422
- direction?: SortDirection;
423
- kind?: GroupMessageKind;
424
- excludeSenderInboxIds?: string[];
425
- sortBy?: MessageSortBy;
426
- insertedAfterNs?: bigint;
427
- insertedBeforeNs?: bigint;
304
+ export interface PasskeySignature {
305
+ publicKey: Uint8Array;
306
+ signature: Uint8Array;
307
+ authenticatorData: Uint8Array;
308
+ clientDataJson: Uint8Array;
428
309
  }
429
310
 
430
- export interface Message {
311
+ export interface Installation {
312
+ bytes: Uint8Array;
431
313
  id: string;
432
- sentAtNs: bigint;
433
- convoId: string;
434
- senderInboxId: string;
435
- content: EncodedContent;
436
- kind: GroupMessageKind;
437
- deliveryStatus: DeliveryStatus;
314
+ clientTimestampNs?: bigint;
438
315
  }
439
316
 
440
317
  export interface Lifetime {
@@ -454,42 +331,66 @@ export interface KeyPackageStatus {
454
331
  validationError?: string;
455
332
  }
456
333
 
457
- export interface Installation {
458
- bytes: Uint8Array;
459
- id: string;
460
- clientTimestampNs?: bigint;
334
+ export interface SendMessageOpts {
335
+ shouldPush: boolean;
336
+ optimistic?: boolean;
461
337
  }
462
338
 
463
- export interface Credential {
464
- name?: string;
465
- value: string;
466
- expiresAtSeconds: bigint;
339
+ export interface GroupMetadata {
340
+ creatorInboxId: string;
341
+ conversationType: ConversationType;
467
342
  }
468
343
 
469
- /**
470
- * Specify options for the logger
471
- */
472
- export interface LogOptions {
473
- /**
474
- * enable structured JSON logging to stdout. Useful for third-party log viewers
475
- */
476
- structured?: boolean;
477
- /**
478
- * enable performance metrics for libxmtp in the `performance` tab
479
- */
480
- performance?: boolean;
481
- /**
482
- * filter for logs
483
- */
484
- level?: LogLevel;
344
+ export interface GroupMember {
345
+ inboxId: string;
346
+ accountIdentifiers: Identifier[];
347
+ installationIds: string[];
348
+ permissionLevel: PermissionLevel;
349
+ consentState: ConsentState;
485
350
  }
486
351
 
487
- export interface GroupSyncSummary {
488
- numEligible: number;
489
- numSynced: number;
352
+ export interface Consent {
353
+ entityType: ConsentEntityType;
354
+ state: ConsentState;
355
+ entity: string;
490
356
  }
491
357
 
492
- export type ReadReceipt = Record<string, never>;
358
+ export interface MetadataFieldChange {
359
+ fieldName: string;
360
+ oldValue?: string;
361
+ newValue?: string;
362
+ }
363
+
364
+ export interface Inbox {
365
+ inboxId: string;
366
+ }
367
+
368
+ export interface GroupUpdated {
369
+ initiatedByInboxId: string;
370
+ addedInboxes: Inbox[];
371
+ removedInboxes: Inbox[];
372
+ leftInboxes: Inbox[];
373
+ metadataFieldChanges: MetadataFieldChange[];
374
+ addedAdminInboxes: Inbox[];
375
+ removedAdminInboxes: Inbox[];
376
+ addedSuperAdminInboxes: Inbox[];
377
+ removedSuperAdminInboxes: Inbox[];
378
+ }
379
+
380
+ export interface LeaveRequest {
381
+ authenticatedNote?: Uint8Array;
382
+ }
383
+
384
+ export interface RemoteAttachment {
385
+ url: string;
386
+ contentDigest: string;
387
+ secret: Uint8Array;
388
+ salt: Uint8Array;
389
+ nonce: Uint8Array;
390
+ scheme: string;
391
+ contentLength: number;
392
+ filename?: string;
393
+ }
493
394
 
494
395
  /**
495
396
  * Result of encrypting an attachment for remote storage.
@@ -525,17 +426,6 @@ export interface EncryptedAttachment {
525
426
  filename?: string;
526
427
  }
527
428
 
528
- export interface RemoteAttachment {
529
- url: string;
530
- contentDigest: string;
531
- secret: Uint8Array;
532
- salt: Uint8Array;
533
- nonce: Uint8Array;
534
- scheme: string;
535
- contentLength: number;
536
- filename?: string;
537
- }
538
-
539
429
  export interface WalletCall {
540
430
  to?: string;
541
431
  data?: string;
@@ -552,64 +442,82 @@ export interface WalletSendCalls {
552
442
  capabilities?: Record<string, string>;
553
443
  }
554
444
 
555
- export interface TransactionMetadata {
556
- transactionType: string;
557
- currency: string;
558
- amount: number;
559
- decimals: number;
560
- fromAddress: string;
561
- toAddress: string;
445
+ export interface Intent {
446
+ id: string;
447
+ actionId: string;
448
+ metadata?: Record<string, string | number | boolean | null>;
562
449
  }
563
450
 
564
- export interface TransactionReference {
565
- namespace?: string;
566
- networkId: string;
567
- reference: string;
568
- metadata?: TransactionMetadata;
451
+ export interface Action {
452
+ id: string;
453
+ label: string;
454
+ imageUrl?: string;
455
+ style?: ActionStyle;
456
+ expiresAtNs?: bigint;
569
457
  }
570
458
 
571
- export type DecodedMessageContent = { type: "actions"; content: Actions | undefined } | { type: "attachment"; content: Attachment } | { type: "custom"; content: EncodedContent } | { type: "groupUpdated"; content: GroupUpdated } | { type: "intent"; content: Intent | undefined } | { type: "leaveRequest"; content: LeaveRequest } | { type: "markdown"; content: string } | { type: "multiRemoteAttachment"; content: MultiRemoteAttachment } | { type: "reaction"; content: Reaction } | { type: "readReceipt"; content: ReadReceipt } | { type: "remoteAttachment"; content: RemoteAttachment } | { type: "reply"; content: EnrichedReply } | { type: "text"; content: string } | { type: "transactionReference"; content: TransactionReference } | { type: "walletSendCalls"; content: WalletSendCalls } | { type: "deletedMessage"; content: DeletedMessage };
572
-
573
- export interface EnrichedReply {
574
- referenceId: string;
575
- content: DecodedMessageContent;
576
- inReplyTo?: DecodedMessage;
459
+ export interface Actions {
460
+ id: string;
461
+ description: string;
462
+ actions: Action[];
463
+ expiresAtNs?: bigint;
577
464
  }
578
465
 
579
- export interface Reply {
580
- content: EncodedContent;
466
+ export interface Reaction {
581
467
  reference: string;
582
- referenceInboxId?: string;
468
+ referenceInboxId: string;
469
+ action: ReactionAction;
470
+ content: string;
471
+ schema: ReactionSchema;
472
+ }
473
+
474
+ export interface ListConversationsOptions {
475
+ consentStates?: ConsentState[];
476
+ conversationType?: ConversationType;
477
+ createdAfterNs?: bigint;
478
+ createdBeforeNs?: bigint;
479
+ includeDuplicateDms?: boolean;
480
+ orderBy?: ListConversationsOrderBy;
481
+ limit?: bigint;
482
+ }
483
+
484
+ export interface CreateGroupOptions {
485
+ permissions?: GroupPermissionsOptions;
486
+ groupName?: string;
487
+ groupImageUrlSquare?: string;
488
+ groupDescription?: string;
489
+ customPermissionPolicySet?: PermissionPolicySet;
490
+ messageDisappearingSettings?: MessageDisappearingSettings;
491
+ appData?: string;
492
+ }
493
+
494
+ export interface CreateDmOptions {
495
+ messageDisappearingSettings?: MessageDisappearingSettings;
583
496
  }
584
497
 
585
- export interface Action {
586
- id: string;
587
- label: string;
588
- imageUrl?: string;
589
- style?: ActionStyle;
590
- expiresAtNs?: bigint;
498
+ export interface MessageDisappearingSettings {
499
+ fromNs: bigint;
500
+ inNs: bigint;
591
501
  }
592
502
 
593
- export interface Actions {
594
- id: string;
595
- description: string;
596
- actions: Action[];
597
- expiresAtNs?: bigint;
503
+ export interface Cursor {
504
+ originatorId: number;
505
+ sequenceId: bigint;
598
506
  }
599
507
 
600
- export interface EncodedContent {
601
- type?: ContentTypeId;
602
- parameters: Record<string, string>;
603
- fallback?: string;
604
- compression?: number;
605
- content: Uint8Array;
508
+ export interface HmacKey {
509
+ key: Uint8Array;
510
+ epoch: bigint;
606
511
  }
607
512
 
608
- export interface ContentTypeId {
609
- authorityId: string;
610
- typeId: string;
611
- versionMajor: number;
612
- versionMinor: number;
513
+ export interface ConversationDebugInfo {
514
+ epoch: bigint;
515
+ maybeForked: boolean;
516
+ forkDetails: string;
517
+ isCommitLogForked?: boolean;
518
+ localCommitLog: string;
519
+ remoteCommitLog: string;
520
+ cursor: Cursor[];
613
521
  }
614
522
 
615
523
  export interface DecodedMessage {
@@ -628,7 +536,99 @@ export interface DecodedMessage {
628
536
  expiresAtNs: bigint | undefined;
629
537
  }
630
538
 
631
- export type UserPreferenceUpdate = { type: "ConsentUpdate"; consent: Consent } | { type: "HmacKeyUpdate"; key: number[] };
539
+ export interface GroupSyncSummary {
540
+ numEligible: number;
541
+ numSynced: number;
542
+ }
543
+
544
+ /**
545
+ * Specify options for the logger
546
+ */
547
+ export interface LogOptions {
548
+ /**
549
+ * enable structured JSON logging to stdout. Useful for third-party log viewers
550
+ */
551
+ structured?: boolean;
552
+ /**
553
+ * enable performance metrics for libxmtp in the `performance` tab
554
+ */
555
+ performance?: boolean;
556
+ /**
557
+ * filter for logs
558
+ */
559
+ level?: LogLevel;
560
+ }
561
+
562
+ export interface GroupPermissions {
563
+ policyType: GroupPermissionsOptions;
564
+ policySet: PermissionPolicySet;
565
+ }
566
+
567
+ export interface PermissionPolicySet {
568
+ addMemberPolicy: PermissionPolicy;
569
+ removeMemberPolicy: PermissionPolicy;
570
+ addAdminPolicy: PermissionPolicy;
571
+ removeAdminPolicy: PermissionPolicy;
572
+ updateGroupNamePolicy: PermissionPolicy;
573
+ updateGroupDescriptionPolicy: PermissionPolicy;
574
+ updateGroupImageUrlSquarePolicy: PermissionPolicy;
575
+ updateMessageDisappearingPolicy: PermissionPolicy;
576
+ updateAppDataPolicy: PermissionPolicy;
577
+ }
578
+
579
+ export interface Credential {
580
+ name?: string;
581
+ value: string;
582
+ expiresAtSeconds: bigint;
583
+ }
584
+
585
+ export interface Identifier {
586
+ identifier: string;
587
+ identifierKind: IdentifierKind;
588
+ }
589
+
590
+ export interface IdentityStats {
591
+ publishIdentityUpdate: bigint;
592
+ getIdentityUpdatesV2: bigint;
593
+ getInboxIds: bigint;
594
+ verifySmartContractWalletSignature: bigint;
595
+ }
596
+
597
+ export interface ApiStats {
598
+ uploadKeyPackage: bigint;
599
+ fetchKeyPackage: bigint;
600
+ sendGroupMessages: bigint;
601
+ sendWelcomeMessages: bigint;
602
+ queryGroupMessages: bigint;
603
+ queryWelcomeMessages: bigint;
604
+ subscribeMessages: bigint;
605
+ subscribeWelcomes: bigint;
606
+ }
607
+
608
+ export interface ListMessagesOptions {
609
+ contentTypes?: ContentType[];
610
+ excludeContentTypes?: ContentType[];
611
+ sentBeforeNs?: bigint;
612
+ sentAfterNs?: bigint;
613
+ limit?: bigint;
614
+ deliveryStatus?: DeliveryStatus;
615
+ direction?: SortDirection;
616
+ kind?: GroupMessageKind;
617
+ excludeSenderInboxIds?: string[];
618
+ sortBy?: MessageSortBy;
619
+ insertedAfterNs?: bigint;
620
+ insertedBeforeNs?: bigint;
621
+ }
622
+
623
+ export interface Message {
624
+ id: string;
625
+ sentAtNs: bigint;
626
+ convoId: string;
627
+ senderInboxId: string;
628
+ content: EncodedContent;
629
+ kind: GroupMessageKind;
630
+ deliveryStatus: DeliveryStatus;
631
+ }
632
632
 
633
633
  export class AuthHandle {
634
634
  free(): void;
@@ -651,8 +651,6 @@ export class Client {
651
651
  revokeInstallationsSignatureRequest(installationIds: Uint8Array[]): Promise<SignatureRequestHandle>;
652
652
  changeRecoveryIdentifierSignatureRequest(newRecoveryIdentifier: Identifier): Promise<SignatureRequestHandle>;
653
653
  revokeAllOtherInstallationsSignatureRequest(): Promise<SignatureRequestHandle | undefined>;
654
- getConsentState(entityType: ConsentEntityType, entity: string): Promise<ConsentState>;
655
- setConsentStates(records: Consent[]): Promise<void>;
656
654
  /**
657
655
  *
658
656
  * * Get the client's inbox state.
@@ -671,6 +669,8 @@ export class Client {
671
669
  *
672
670
  */
673
671
  getKeyPackageStatusesForInstallationIds(installationIds: string[]): Promise<any>;
672
+ getConsentState(entityType: ConsentEntityType, entity: string): Promise<ConsentState>;
673
+ setConsentStates(records: Consent[]): Promise<void>;
674
674
  /**
675
675
  * Output booleans should be zipped with the index of input identifiers
676
676
  */
@@ -877,6 +877,20 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
877
877
 
878
878
  export interface InitOutput {
879
879
  readonly memory: WebAssembly.Memory;
880
+ readonly contentTypeAttachment: () => any;
881
+ readonly contentTypeMarkdown: () => any;
882
+ readonly contentTypeMultiRemoteAttachment: () => any;
883
+ readonly contentTypeReadReceipt: () => any;
884
+ readonly contentTypeReply: () => any;
885
+ readonly contentTypeText: () => any;
886
+ readonly contentTypeTransactionReference: () => any;
887
+ readonly encodeAttachment: (a: any) => [number, number, number];
888
+ readonly encodeMarkdown: (a: number, b: number) => [number, number, number];
889
+ readonly encodeMultiRemoteAttachment: (a: any) => [number, number, number];
890
+ readonly encodeReadReceipt: (a: any) => [number, number, number];
891
+ readonly encodeText: (a: number, b: number) => [number, number, number];
892
+ readonly encodeTransactionReference: (a: any) => [number, number, number];
893
+ readonly __wbg_client_free: (a: number, b: number) => void;
880
894
  readonly __wbg_conversation_free: (a: number, b: number) => void;
881
895
  readonly __wbg_conversationlistitem_free: (a: number, b: number) => void;
882
896
  readonly __wbg_conversations_free: (a: number, b: number) => void;
@@ -894,26 +908,45 @@ export interface InitOutput {
894
908
  readonly __wbg_signaturerequesthandle_free: (a: number, b: number) => void;
895
909
  readonly __wbg_streamcloser_free: (a: number, b: number) => void;
896
910
  readonly applySignatureRequest: (a: number, b: number, c: number, d: number, e: number) => any;
911
+ readonly client_accountIdentifier: (a: number) => any;
897
912
  readonly client_addWalletSignatureRequest: (a: number, b: any) => any;
913
+ readonly client_apiAggregateStatistics: (a: number) => [number, number];
914
+ readonly client_apiIdentityStatistics: (a: number) => any;
915
+ readonly client_apiStatistics: (a: number) => any;
916
+ readonly client_appVersion: (a: number) => [number, number];
898
917
  readonly client_applySignatureRequest: (a: number, b: number) => any;
918
+ readonly client_canMessage: (a: number, b: number, c: number) => any;
899
919
  readonly client_changeRecoveryIdentifierSignatureRequest: (a: number, b: any) => any;
920
+ readonly client_clearAllStatistics: (a: number) => void;
921
+ readonly client_conversations: (a: number) => number;
900
922
  readonly client_createInboxSignatureRequest: (a: number) => [number, number, number];
923
+ readonly client_findInboxIdByIdentifier: (a: number, b: any) => any;
901
924
  readonly client_getConsentState: (a: number, b: number, c: number, d: number) => any;
925
+ readonly client_getKeyPackageStatusesForInstallationIds: (a: number, b: number, c: number) => any;
926
+ readonly client_getLatestInboxState: (a: number, b: number, c: number) => any;
927
+ readonly client_inboxId: (a: number) => [number, number];
928
+ readonly client_inboxState: (a: number, b: number) => any;
929
+ readonly client_inboxStateFromInboxIds: (a: number, b: number, c: number, d: number) => any;
930
+ readonly client_installationId: (a: number) => [number, number];
931
+ readonly client_installationIdBytes: (a: number) => any;
932
+ readonly client_isRegistered: (a: number) => number;
933
+ readonly client_libxmtpVersion: (a: number) => [number, number];
902
934
  readonly client_registerIdentity: (a: number, b: number) => any;
903
935
  readonly client_revokeAllOtherInstallationsSignatureRequest: (a: number) => any;
904
936
  readonly client_revokeInstallationsSignatureRequest: (a: number, b: number, c: number) => any;
905
937
  readonly client_revokeWalletSignatureRequest: (a: number, b: any) => any;
938
+ readonly client_sendSyncRequest: (a: number) => any;
906
939
  readonly client_setConsentStates: (a: number, b: number, c: number) => any;
907
940
  readonly client_signWithInstallationKey: (a: number, b: number, c: number) => [number, number, number];
941
+ readonly client_syncPreferences: (a: number) => any;
908
942
  readonly client_verifySignedWithInstallationKey: (a: number, b: number, c: number, d: any) => [number, number];
909
- readonly contentTypeAttachment: () => any;
943
+ readonly contentTypeActions: () => any;
910
944
  readonly contentTypeGroupUpdated: () => any;
911
945
  readonly contentTypeIntent: () => any;
912
946
  readonly contentTypeLeaveRequest: () => any;
913
- readonly contentTypeMarkdown: () => any;
914
- readonly contentTypeMultiRemoteAttachment: () => any;
915
947
  readonly contentTypeReaction: () => any;
916
- readonly contentTypeText: () => any;
948
+ readonly contentTypeRemoteAttachment: () => any;
949
+ readonly contentTypeWalletSendCalls: () => any;
917
950
  readonly conversation_addAdmin: (a: number, b: number, c: number) => any;
918
951
  readonly conversation_addMembers: (a: number, b: number, c: number) => any;
919
952
  readonly conversation_addMembersByInboxId: (a: number, b: number, c: number) => any;
@@ -999,24 +1032,17 @@ export interface InitOutput {
999
1032
  readonly conversations_streamPreferences: (a: number, b: any) => [number, number, number];
1000
1033
  readonly conversations_sync: (a: number) => any;
1001
1034
  readonly conversations_syncAllConversations: (a: number, b: number, c: number) => any;
1002
- readonly encodeAttachment: (a: any) => [number, number, number];
1035
+ readonly createClient: (a: number, b: number, c: number, d: number, e: any, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: bigint, t: number, u: number, v: number) => any;
1036
+ readonly decryptAttachment: (a: number, b: number, c: any) => [number, number, number];
1037
+ readonly encodeActions: (a: any) => [number, number, number];
1003
1038
  readonly encodeIntent: (a: any) => [number, number, number];
1004
- readonly encodeMarkdown: (a: number, b: number) => [number, number, number];
1005
- readonly encodeMultiRemoteAttachment: (a: any) => [number, number, number];
1006
1039
  readonly encodeReaction: (a: any) => [number, number, number];
1007
- readonly encodeText: (a: number, b: number) => [number, number, number];
1040
+ readonly encodeRemoteAttachment: (a: any) => [number, number, number];
1041
+ readonly encodeWalletSendCalls: (a: any) => [number, number, number];
1042
+ readonly encryptAttachment: (a: any) => [number, number, number];
1008
1043
  readonly generateInboxId: (a: any, b: number, c: bigint) => [number, number, number, number];
1009
1044
  readonly getInboxIdForIdentifier: (a: number, b: number, c: number, d: number, e: number, f: any) => any;
1010
- readonly metadataFieldName: (a: number) => [number, number];
1011
- readonly opfsClearAll: () => any;
1012
- readonly opfsDeleteFile: (a: number, b: number) => any;
1013
- readonly opfsExportDb: (a: number, b: number) => any;
1014
- readonly opfsFileCount: () => any;
1015
- readonly opfsFileExists: (a: number, b: number) => any;
1016
- readonly opfsImportDb: (a: number, b: number, c: any) => any;
1017
- readonly opfsInit: () => any;
1018
- readonly opfsListFiles: () => any;
1019
- readonly opfsPoolCapacity: () => any;
1045
+ readonly inboxStateFromInboxIds: (a: number, b: number, c: number, d: number, e: number, f: number) => any;
1020
1046
  readonly revokeInstallationsSignatureRequest: (a: number, b: number, c: number, d: number, e: any, f: number, g: number, h: number, i: number) => [number, number, number];
1021
1047
  readonly signaturerequesthandle_addEcdsaSignature: (a: number, b: any) => any;
1022
1048
  readonly signaturerequesthandle_addPasskeySignature: (a: number, b: any) => any;
@@ -1031,42 +1057,16 @@ export interface InitOutput {
1031
1057
  readonly authhandle_id: (a: number) => number;
1032
1058
  readonly authhandle_new: () => number;
1033
1059
  readonly authhandle_set: (a: number, b: any) => any;
1034
- readonly client_getKeyPackageStatusesForInstallationIds: (a: number, b: number, c: number) => any;
1035
- readonly client_getLatestInboxState: (a: number, b: number, c: number) => any;
1036
- readonly client_inboxState: (a: number, b: number) => any;
1037
- readonly inboxStateFromInboxIds: (a: number, b: number, c: number, d: number, e: number, f: number) => any;
1038
- readonly __wbg_client_free: (a: number, b: number) => void;
1039
- readonly client_accountIdentifier: (a: number) => any;
1040
- readonly client_apiAggregateStatistics: (a: number) => [number, number];
1041
- readonly client_apiIdentityStatistics: (a: number) => any;
1042
- readonly client_apiStatistics: (a: number) => any;
1043
- readonly client_appVersion: (a: number) => [number, number];
1044
- readonly client_canMessage: (a: number, b: number, c: number) => any;
1045
- readonly client_clearAllStatistics: (a: number) => void;
1046
- readonly client_conversations: (a: number) => number;
1047
- readonly client_findInboxIdByIdentifier: (a: number, b: any) => any;
1048
- readonly client_inboxId: (a: number) => [number, number];
1049
- readonly client_inboxStateFromInboxIds: (a: number, b: number, c: number, d: number) => any;
1050
- readonly client_installationId: (a: number) => [number, number];
1051
- readonly client_installationIdBytes: (a: number) => any;
1052
- readonly client_isRegistered: (a: number) => number;
1053
- readonly client_libxmtpVersion: (a: number) => [number, number];
1054
- readonly client_sendSyncRequest: (a: number) => any;
1055
- readonly client_syncPreferences: (a: number) => any;
1056
- readonly createClient: (a: number, b: number, c: number, d: number, e: any, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: bigint, t: number, u: number, v: number) => any;
1057
- readonly contentTypeActions: () => any;
1058
- readonly contentTypeReadReceipt: () => any;
1059
- readonly contentTypeRemoteAttachment: () => any;
1060
- readonly contentTypeReply: () => any;
1061
- readonly contentTypeTransactionReference: () => any;
1062
- readonly contentTypeWalletSendCalls: () => any;
1063
- readonly decryptAttachment: (a: number, b: number, c: any) => [number, number, number];
1064
- readonly encodeActions: (a: any) => [number, number, number];
1065
- readonly encodeReadReceipt: (a: any) => [number, number, number];
1066
- readonly encodeRemoteAttachment: (a: any) => [number, number, number];
1067
- readonly encodeTransactionReference: (a: any) => [number, number, number];
1068
- readonly encodeWalletSendCalls: (a: any) => [number, number, number];
1069
- readonly encryptAttachment: (a: any) => [number, number, number];
1060
+ readonly metadataFieldName: (a: number) => [number, number];
1061
+ readonly opfsClearAll: () => any;
1062
+ readonly opfsDeleteFile: (a: number, b: number) => any;
1063
+ readonly opfsExportDb: (a: number, b: number) => any;
1064
+ readonly opfsFileCount: () => any;
1065
+ readonly opfsFileExists: (a: number, b: number) => any;
1066
+ readonly opfsImportDb: (a: number, b: number, c: any) => any;
1067
+ readonly opfsInit: () => any;
1068
+ readonly opfsListFiles: () => any;
1069
+ readonly opfsPoolCapacity: () => any;
1070
1070
  readonly rust_zstd_wasm_shim_calloc: (a: number, b: number) => number;
1071
1071
  readonly rust_zstd_wasm_shim_free: (a: number) => void;
1072
1072
  readonly rust_zstd_wasm_shim_malloc: (a: number) => number;
@@ -1089,25 +1089,25 @@ export interface InitOutput {
1089
1089
  readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
1090
1090
  readonly intounderlyingsource_cancel: (a: number) => void;
1091
1091
  readonly intounderlyingsource_pull: (a: number, b: any) => any;
1092
- readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
1093
- readonly intounderlyingsink_abort: (a: number, b: any) => any;
1094
- readonly intounderlyingsink_close: (a: number) => any;
1095
- readonly intounderlyingsink_write: (a: number, b: any) => any;
1096
1092
  readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
1097
1093
  readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
1098
1094
  readonly intounderlyingbytesource_cancel: (a: number) => void;
1099
1095
  readonly intounderlyingbytesource_pull: (a: number, b: any) => any;
1100
1096
  readonly intounderlyingbytesource_start: (a: number, b: any) => void;
1101
1097
  readonly intounderlyingbytesource_type: (a: number) => number;
1102
- readonly wasm_bindgen__convert__closures_____invoke__h956b60152b2cf005: (a: number, b: number) => void;
1103
- readonly wasm_bindgen__closure__destroy__h3c5639ee43c80f22: (a: number, b: number) => void;
1104
- readonly wasm_bindgen__convert__closures_____invoke__hceddd2b8fc291040: (a: number, b: number) => void;
1105
- readonly wasm_bindgen__closure__destroy__hfbd660e60d498df9: (a: number, b: number) => void;
1106
- readonly wasm_bindgen__convert__closures_____invoke__hdff293b41f2cecc6: (a: number, b: number, c: any) => void;
1107
- readonly wasm_bindgen__closure__destroy__hed8af60076250245: (a: number, b: number) => void;
1108
- readonly wasm_bindgen__convert__closures_____invoke__h6af3cd86eb56f4b1: (a: number, b: number) => void;
1109
- readonly wasm_bindgen__closure__destroy__he7b712e0eb1b5ac1: (a: number, b: number) => void;
1110
- readonly wasm_bindgen__convert__closures_____invoke__h47a8fb56fc48c5fb: (a: number, b: number, c: any, d: any) => void;
1098
+ readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
1099
+ readonly intounderlyingsink_abort: (a: number, b: any) => any;
1100
+ readonly intounderlyingsink_close: (a: number) => any;
1101
+ readonly intounderlyingsink_write: (a: number, b: any) => any;
1102
+ readonly wasm_bindgen__convert__closures_____invoke__ha66b59b58c7b6e14: (a: number, b: number) => void;
1103
+ readonly wasm_bindgen__closure__destroy__h43bd69f6f2f23fdf: (a: number, b: number) => void;
1104
+ readonly wasm_bindgen__convert__closures_____invoke__hb3ea4cec5b2a99b4: (a: number, b: number) => void;
1105
+ readonly wasm_bindgen__closure__destroy__h3dd912ac8e2d6083: (a: number, b: number) => void;
1106
+ readonly wasm_bindgen__convert__closures_____invoke__h989c99c207fff0d8: (a: number, b: number, c: any) => void;
1107
+ readonly wasm_bindgen__closure__destroy__hab695a3e04b8e88a: (a: number, b: number) => void;
1108
+ readonly wasm_bindgen__convert__closures_____invoke__h57fa53c0b5bdcaf1: (a: number, b: number) => void;
1109
+ readonly wasm_bindgen__closure__destroy__hdc965c5deda6531b: (a: number, b: number) => void;
1110
+ readonly wasm_bindgen__convert__closures_____invoke__h09c21df9c40da302: (a: number, b: number, c: any, d: any) => void;
1111
1111
  readonly __wbindgen_malloc: (a: number, b: number) => number;
1112
1112
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
1113
1113
  readonly __wbindgen_exn_store: (a: number) => void;