Releases: xmtp/xmtp-js
@xmtp/[email protected]
Patch Changes
- 1f737c5: Fixed LibXMTP version reporting
@xmtp/[email protected]
Patch Changes
- fe6a04f: Added
GroupSyncSummaryexport
@xmtp/[email protected]
This release introduces new features, performance optimizations, and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these enhancements and fixes.
Stream message deletions
Call streamMessageDeletions to return a stream of message IDs that have been deleted. This new stream works in tandem with disappearing messages so that developers can be notified when messages have been removed. This is a local stream that doesn't require network sync and will not fail like other streams.
To learn more, see Support disappearing messages.
Paginate the conversation list
For most pagination use cases, use the createdBeforeNs parameter for filtering and set orderBy to createdAt. This enables you to paginate against a stably sorted list. You can then perform a final sort of conversations in your app.
To learn more, see Paginate the conversation list.
Total ordered sort for message pagination
Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.
To learn more, see Paginate messages by insertion time.
More details on sync
The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.
Use countMessages to build an unread messages badge
Call countMessages to return a count of messages without retrieving the full message list. This is more efficient when you only need the number, such as for unread message badges.
To learn more, see Count messages in a conversation.
New version properties on the client
libxmtpVersion: Returns the version oflibxmtpused in the bindingsappVersion: Returns the app version configured for the client
The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.
Note: The static Client.version property is now deprecated, use libxmtpVersion instead.
syncAll performance improvements
The syncAll method now performs the same function as before, but with significantly improved performance. It achieves this by syncing only group chat and DM conversations with a consent state of allowed or unknown that contain unread messages, rather than syncing all conversations.
The method continues to sync new welcomes and preference updates.
To learn more, see Sync new welcomes, conversations with unread messages, and preferences.
Streaming now includes catch-up messages
Streaming messages now includes all messages sent after the last sync, including those missed while the client was offline. To only stream new messages, be sure to sync with the network before starting the stream.
To learn more, see Stream new group chat and DM messages.
Welcome pointers
OpenMLS supports sending welcomes to multiple installations in a single commit. This is currently used, but each welcome is sent individually to each installation. Some of the welcomes can be very large, and the data is duplicated for every installation.
Welcome pointers introduce a new welcome message that provides a pointer to the location where the welcome data can be found. The large welcome pointer data can be sent to the server only once, and each installation can fetch that message. This is achieved using symmetric key encryption for the welcome data, with each installation receiving a message that includes these keys.
This provides a performance and scalability improvement that makes both developer implementations and user experiences smoother and faster, without requiring changes to how developers write client code.
To learn more, see XIP-74: Welcome pointers.
revokeAllOtherInstallations no longer crashes with a single installation
Calling revokeAllOtherInstallations() on an inbox with only one active installation no longer crashes with an "Unknown signer" error.
Because the method’s purpose is to keep only the current installation active, having just one installation already meets this condition. The operation now completes successfully without trying to revoke non-existent installations.
To learn more, see Revoke all other installations.
Total ordered sort for message pagination
Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.
To learn more, see Paginate messages by insertion time.
More details on sync
The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.
Updates for disappearing messages
The disappearing messages feature has been updated to exclude expired (already disappeared) messages from queries.
To learn more, see Support disappearing messages.
@xmtp/[email protected]
This release includes a new property, performance optimizations and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these optimizations and fixes.
New libxmtpVersion property
The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.
For more information on these updates, see these release notes for the Node SDK.
@xmtp/[email protected]
This release introduces new features, performance optimizations, and bug fixes. If you've been building on a previous release, this one should be a drop-in replacement. Update as soon as possible to take advantage of these enhancements and fixes.
Stream message deletions
Call streamMessageDeletions to return a stream of message IDs that have been deleted. This new stream works in tandem with disappearing messages so that developers can be notified when messages have been removed. This is a local stream that doesn't require network sync and will not fail like other streams.
To learn more, see Support disappearing messages.
Paginate the conversation list
For most pagination use cases, use the createdBeforeNs parameter for filtering and set orderBy to createdAt. This enables you to paginate against a stably sorted list. You can then perform a final sort of conversations in your app.
To learn more, see Paginate the conversation list.
Use countMessages to build an unread messages badge
Call countMessages to return a count of messages without retrieving the full message list. This is more efficient when you only need the number, such as for unread message badges.
To learn more, see Count messages in a conversation.
New version properties on the client
libxmtpVersion: Returns the version oflibxmtpused in the bindingsappVersion: Returns the app version configured for the client
The libxmtpVersion property can be useful for debugging or ensuring compatibility with the underlying XMTP APIs.
Note: The static Client.version property is now deprecated, use libxmtpVersion instead.
syncAll performance improvements
The syncAll method now performs the same function as before, but with significantly improved performance. It achieves this by syncing only group chat and DM conversations with a consent state of allowed or unknown that contain unread messages, rather than syncing all conversations.
The method continues to sync new welcomes and preference updates.
To learn more, see Sync new welcomes, conversations with unread messages, and preferences.
Streaming now includes catch-up messages
Streaming messages now includes all messages sent after the last sync, including those missed while the client was offline. To only stream new messages, be sure to sync with the network before starting the stream.
To learn more, see Stream new group chat and DM messages.
Welcome pointers
OpenMLS supports sending welcomes to multiple installations in a single commit. This is currently used, but each welcome is sent individually to each installation. Some of the welcomes can be very large, and the data is duplicated for every installation.
Welcome pointers introduce a new welcome message that provides a pointer to the location where the welcome data can be found. The large welcome pointer data can be sent to the server only once, and each installation can fetch that message. This is achieved using symmetric key encryption for the welcome data, with each installation receiving a message that includes these keys.
This provides a performance and scalability improvement that makes both developer implementations and user experiences smoother and faster, without requiring changes to how developers write client code.
To learn more, see XIP-74: Welcome pointers.
revokeAllOtherInstallations no longer crashes with a single installation
Calling revokeAllOtherInstallations() on an inbox with only one active installation no longer crashes with an "Unknown signer" error.
Because the method’s purpose is to keep only the current installation active, having just one installation already meets this condition. The operation now completes successfully without trying to revoke non-existent installations.
To learn more, see Revoke all other installations.
Total ordered sort for message pagination
Provides the ability to filter queries for the message list by insertion time rather than by time sent. Filtering by insertion time provides a totally ordered list, which is more reliable for pagination.
To learn more, see Paginate messages by insertion time.
More details on sync
The return value of conversations.syncAllConversations is now an object that includes both the number of conversations, and the number that needed to be synced.
Updates for disappearing messages
The disappearing messages feature has been updated to exclude expired (already disappeared) messages from queries.
To learn more, see Support disappearing messages.
@xmtp/[email protected]
Patch Changes
- e3779a1: Locked
@xmtp/protoversions
@xmtp/[email protected]
Patch Changes
- e3779a1: Locked
@xmtp/protoversions
@xmtp/[email protected]
Patch Changes
- 76679fc: Locked
@xmtp/protoversion
@xmtp/[email protected]
Patch Changes
- e3779a1: Locked
@xmtp/protoversions
@xmtp/[email protected]
Patch Changes
- Updated dependencies [4dad992]
- @xmtp/[email protected]