Builders for outgoing app-state mutations.
Each helper returns a logical patch description that mirrors one user action such as archiving a chat or updating a contact. The encoder later turns these maps into protobuf payloads and cryptographic MACs.
Summary
Functions
Builds an archive or unarchive mutation for a chat.
Builds a clear-chat mutation.
Builds a contact upsert mutation.
Builds a delete-chat mutation.
Builds a remove mutation for a contact.
Builds a mark-read or mark-unread mutation for a chat.
Builds a mute or unmute mutation for a chat.
Builds a pin or unpin mutation for a chat.
Types
Functions
@spec build_archive(String.t(), boolean(), integer() | nil) :: patch_info()
Builds an archive or unarchive mutation for a chat.
When archiving we also emit the unpin mutation that WhatsApp Web sends, so the local behavior stays aligned with the server's expectations.
@spec build_clear_chat(String.t(), integer() | nil) :: patch_info()
Builds a clear-chat mutation.
@spec build_contact(String.t(), String.t(), String.t() | nil) :: patch_info()
Builds a contact upsert mutation.
@spec build_delete_chat(String.t(), integer() | nil) :: patch_info()
Builds a delete-chat mutation.
@spec build_delete_contact(String.t()) :: patch_info()
Builds a remove mutation for a contact.
@spec build_mark_read(String.t(), boolean(), integer() | nil) :: patch_info()
Builds a mark-read or mark-unread mutation for a chat.
@spec build_mute(String.t(), boolean(), integer()) :: patch_info()
Builds a mute or unmute mutation for a chat.
@spec build_pin(String.t(), boolean()) :: patch_info()
Builds a pin or unpin mutation for a chat.