Encrypts one outbound payload for all resolved target devices.
This module owns Signal JID aliases, target accumulation, prekey wire diagnostics, fanout coverage checks, and retry-session invalidation. It does not build message payloads, send transport nodes, or persist chat state.
Summary
Functions
Clears cached Signal sessions for retry targets and their PN/LID aliases.
Encrypts the selected payload independently for every target device.
Returns target specs that do not have a corresponding encrypted participant node.
Types
@type encrypted_payloads() :: ExWapp.Session.Outbound.Direct.payloads() | %{recipient: binary()}
@type result() :: {:ok, [ExWapp.Binary.Node.t()], ExWapp.Signal.SessionStore.t(), boolean()} | {:error, {:no_encrypted_targets, [{String.t(), term()}]}}
Functions
@spec clear_sessions_for_targets( ExWapp.Signal.SessionStore.t(), [target_spec() | String.t()], ExWapp.Store.t() ) :: ExWapp.Signal.SessionStore.t()
Clears cached Signal sessions for retry targets and their PN/LID aliases.
@spec encrypt_for_targets( ExWapp.Store.t(), ExWapp.Signal.SessionStore.t(), [target_spec()], encrypted_payloads(), prekey_bundle_map() ) :: result()
Encrypts the selected payload independently for every target device.
@spec missing_expected_targets([target_spec()], [ExWapp.Binary.Node.t()]) :: [ target_spec() ]
Returns target specs that do not have a corresponding encrypted participant node.