-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


@package simplex-chat
@version 6.5.0.7

module Simplex.Chat.Mobile.Shared
type CJSONString = CString
type JSONByteString = ByteString
getByteString :: Ptr Word8 -> CInt -> IO ByteString
putByteString :: Ptr Word8 -> ByteString -> IO ()
putLazyByteString :: Ptr Word8 -> ByteString -> IO ()
newCStringFromBS :: ByteString -> IO CString
newCStringFromLazyBS :: ByteString -> IO CString

module Simplex.Chat.Operators.Conditions
stripFrontMatter :: Text -> Text

module Simplex.Chat.Remote.AppVersion
data AppVersionRange
pattern AppVersionRange :: AppVersion -> AppVersion -> AppVersionRange
newtype AppVersion
AppVersion :: Version -> AppVersion
[appVersion] :: AppVersion -> Version
pattern AppCompatible :: a -> AppCompatible a
mkAppVersionRange :: AppVersion -> AppVersion -> AppVersionRange
compatibleAppVersion :: AppVersionRange -> AppVersionRange -> Maybe (AppCompatible AppVersion)
isAppCompatible :: AppVersion -> AppVersionRange -> Bool
instance GHC.Classes.Eq Simplex.Chat.Remote.AppVersion.AppVersion
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.AppVersion.AppVersion
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.AppVersion.AppVersionRange
instance GHC.Classes.Ord Simplex.Chat.Remote.AppVersion.AppVersion
instance GHC.Show.Show Simplex.Chat.Remote.AppVersion.AppVersion
instance GHC.Show.Show Simplex.Chat.Remote.AppVersion.AppVersionRange
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.AppVersion.AppVersion
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.AppVersion.AppVersionRange

module Simplex.Chat.Remote.Multicast

-- | Toggle multicast group membership. NB: Group membership is per-host,
--   not per-process. A socket is only used to access system interface for
--   groups.
setMembership :: Socket -> HostAddress -> Bool -> IO (Either CInt ())

module Simplex.Chat.Remote.RevHTTP
attachRevHTTP2Client :: IO () -> TLS 'TServer -> IO (Either HTTP2ClientError HTTP2Client)
attachHTTP2Server :: TLS 'TClient -> (HTTP2Request -> IO ()) -> IO ()

-- | Suppress storing initial chunk in bodyHead, forcing clients and
--   servers to stream chunks
doNotPrefetchHead :: Int

module Simplex.Chat.Store.SQLite.Migrations.M20220101_initial
m20220101_initial :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220122_v1_1
m20220122_v1_1 :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220205_chat_item_status
m20220205_chat_item_status :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220210_deduplicate_contact_requests
m20220210_deduplicate_contact_requests :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220224_messages_fks
m20220224_messages_fks :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220301_smp_servers
m20220301_smp_servers :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220302_profile_images
m20220302_profile_images :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220304_msg_quotes
m20220304_msg_quotes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220321_chat_item_edited
m20220321_chat_item_edited :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220404_files_status_fields
m20220404_files_status_fields :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220514_profiles_user_id
m20220514_profiles_user_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220626_auto_reply
m20220626_auto_reply :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220702_calls
m20220702_calls :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220715_groups_chat_item_id
m20220715_groups_chat_item_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220811_chat_items_indices
m20220811_chat_items_indices :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220812_incognito_profiles
m20220812_incognito_profiles :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220818_chat_notifications
m20220818_chat_notifications :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220822_groups_host_conn_custom_user_profile_id
m20220822_groups_host_conn_custom_user_profile_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220823_delete_broken_group_event_chat_items
m20220823_delete_broken_group_event_chat_items :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220824_profiles_local_alias
m20220824_profiles_local_alias :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220909_commands
m20220909_commands :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220926_connection_alias
m20220926_connection_alias :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20220928_settings
m20220928_settings :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221001_shared_msg_id_indices
m20221001_shared_msg_id_indices :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221003_delete_broken_integrity_error_chat_items
m20221003_delete_broken_integrity_error_chat_items :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221004_idx_msg_deliveries_message_id
m20221004_idx_msg_deliveries_message_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221011_user_contact_links_group_id
m20221011_user_contact_links_group_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221012_inline_files
m20221012_inline_files :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221019_unread_chat
m20221019_unread_chat :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221021_auto_accept__group_links
m20221021_auto_accept__group_links :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221024_contact_used
m20221024_contact_used :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221025_chat_settings
m20221025_chat_settings :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221029_group_link_id
m20221029_group_link_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221112_server_password
m20221112_server_password :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221115_server_cfg
m20221115_server_cfg :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221129_delete_group_feature_items
m20221129_delete_group_feature_items :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221130_delete_item_deleted
m20221130_delete_item_deleted :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221209_verified_connection
m20221209_verified_connection :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221210_idxs
m20221210_idxs :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221211_group_description
m20221211_group_description :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221212_chat_items_timed
m20221212_chat_items_timed :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221214_live_message
m20221214_live_message :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221222_chat_ts
m20221222_chat_ts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221223_idx_chat_items_item_status
m20221223_idx_chat_items_item_status :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20221230_idxs
m20221230_idxs :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230107_connections_auth_err_counter
m20230107_connections_auth_err_counter :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230111_users_agent_user_id
m20230111_users_agent_user_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230117_fkey_indexes
m20230117_fkey_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230118_recreate_smp_servers
m20230118_recreate_smp_servers :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230129_drop_chat_items_group_idx
m20230129_drop_chat_items_group_idx :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230206_item_deleted_by_group_member_id
m20230206_item_deleted_by_group_member_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230303_group_link_role
m20230303_group_link_role :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230317_hidden_profiles
m20230317_hidden_profiles :: Query
down_m20230317_hidden_profiles :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230318_file_description
m20230318_file_description :: Query
down_m20230318_file_description :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230321_agent_file_deleted
m20230321_agent_file_deleted :: Query
down_m20230321_agent_file_deleted :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230328_files_protocol
m20230328_files_protocol :: Query
down_m20230328_files_protocol :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230402_protocol_servers
m20230402_protocol_servers :: Query
down_m20230402_protocol_servers :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230411_extra_xftp_file_descriptions
m20230411_extra_xftp_file_descriptions :: Query
down_m20230411_extra_xftp_file_descriptions :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230420_rcv_files_to_receive
m20230420_rcv_files_to_receive :: Query
down_m20230420_rcv_files_to_receive :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230422_profile_contact_links
m20230422_profile_contact_links :: Query
down_m20230422_profile_contact_links :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230504_recreate_msg_delivery_events_cleanup_messages
m20230504_recreate_msg_delivery_events_cleanup_messages :: Query
down_m20230504_recreate_msg_delivery_events_cleanup_messages :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230505_chat_item_versions
m20230505_chat_item_versions :: Query
down_m20230505_chat_item_versions :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230511_reactions
m20230511_reactions :: Query
down_m20230511_reactions :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230519_item_deleted_ts
m20230519_item_deleted_ts :: Query
down_m20230519_item_deleted_ts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230526_indexes
m20230526_indexes :: Query
down_m20230526_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230529_indexes
m20230529_indexes :: Query
down_m20230529_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230608_deleted_contacts
m20230608_deleted_contacts :: Query
down_m20230608_deleted_contacts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230618_favorite_chats
m20230618_favorite_chats :: Query
down_m20230618_favorite_chats :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230621_chat_item_moderations
m20230621_chat_item_moderations :: Query
down_m20230621_chat_item_moderations :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230705_delivery_receipts
m20230705_delivery_receipts :: Query
down_m20230705_delivery_receipts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230721_group_snd_item_statuses
m20230721_group_snd_item_statuses :: Query
down_m20230721_group_snd_item_statuses :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230814_indexes
m20230814_indexes :: Query
down_m20230814_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230827_file_encryption
m20230827_file_encryption :: Query
down_m20230827_file_encryption :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230829_connections_chat_vrange
m20230829_connections_chat_vrange :: Query
down_m20230829_connections_chat_vrange :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230903_connections_to_subscribe
m20230903_connections_to_subscribe :: Query
down_m20230903_connections_to_subscribe :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230913_member_contacts
m20230913_member_contacts :: Query
down_m20230913_member_contacts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230914_member_probes
m20230914_member_probes :: Query
down_m20230914_member_probes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20230926_contact_status
m20230926_contact_status :: Query
down_m20230926_contact_status :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231002_conn_initiated
m20231002_conn_initiated :: Query
down_m20231002_conn_initiated :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231009_via_group_link_uri_hash
m20231009_via_group_link_uri_hash :: Query
down_m20231009_via_group_link_uri_hash :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231010_member_settings
m20231010_member_settings :: Query
down_m20231010_member_settings :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231019_indexes
m20231019_indexes :: Query
down_m20231019_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231030_xgrplinkmem_received
m20231030_xgrplinkmem_received :: Query
down_m20231030_xgrplinkmem_received :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231107_indexes
m20231107_indexes :: Query
down_m20231107_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231113_group_forward
m20231113_group_forward :: Query
down_m20231113_group_forward :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231114_remote_control
m20231114_remote_control :: Query
down_m20231114_remote_control :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231126_remote_ctrl_address
m20231126_remote_ctrl_address :: Query
down_m20231126_remote_ctrl_address :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231207_chat_list_pagination
m20231207_chat_list_pagination :: Query
down_m20231207_chat_list_pagination :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231214_item_content_tag
m20231214_item_content_tag :: Query
down_m20231214_item_content_tag :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20231215_recreate_msg_deliveries
m20231215_recreate_msg_deliveries :: Query
down_m20231215_recreate_msg_deliveries :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240102_note_folders
m20240102_note_folders :: Query
down_m20240102_note_folders :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240104_members_profile_update
m20240104_members_profile_update :: Query
down_m20240104_members_profile_update :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240115_block_member_for_all
m20240115_block_member_for_all :: Query
down_m20240115_block_member_for_all :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240122_indexes
m20240122_indexes :: Query
down_m20240122_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240214_redirect_file_id
m20240214_redirect_file_id :: Query
down_m20240214_redirect_file_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240222_app_settings
m20240222_app_settings :: Query
down_m20240222_app_settings :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240226_users_restrict
m20240226_users_restrict :: Query
down_m20240226_users_restrict :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240228_pq
m20240228_pq :: Query
down_m20240228_pq :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240313_drop_agent_ack_cmd_id
m20240313_drop_agent_ack_cmd_id :: Query
down_m20240313_drop_agent_ack_cmd_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240324_custom_data
m20240324_custom_data :: Query
down_m20240324_custom_data :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240402_item_forwarded
m20240402_item_forwarded :: Query
down_m20240402_item_forwarded :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240430_ui_theme
m20240430_ui_theme :: Query
down_m20240430_ui_theme :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240501_chat_deleted
m20240501_chat_deleted :: Query
down_m20240501_chat_deleted :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240510_chat_items_via_proxy
m20240510_chat_items_via_proxy :: Query
down_m20240510_chat_items_via_proxy :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240515_rcv_files_user_approved_relays
m20240515_rcv_files_user_approved_relays :: Query
down_m20240515_rcv_files_user_approved_relays :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240528_quota_err_counter
m20240528_quota_err_counter :: Query
down_m20240528_quota_err_counter :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240827_calls_uuid
m20240827_calls_uuid :: Query
down_m20240827_calls_uuid :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20240920_user_order
m20240920_user_order :: Query
down_m20240920_user_order :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241008_indexes
m20241008_indexes :: Query
down_m20241008_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241010_contact_requests_contact_id
m20241010_contact_requests_contact_id :: Query
down_m20241010_contact_requests_contact_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241023_chat_item_autoincrement_id
m20241023_chat_item_autoincrement_id :: Query
down_m20241023_chat_item_autoincrement_id :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241027_server_operators
m20241027_server_operators :: Query
down_m20241027_server_operators :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241125_indexes
m20241125_indexes :: Query
down_m20241125_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241128_business_chats
m20241128_business_chats :: Query
down_m20241128_business_chats :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241205_business_chat_members
m20241205_business_chat_members :: Query
down_m20241205_business_chat_members :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241222_operator_conditions
m20241222_operator_conditions :: Query
down_m20241222_operator_conditions :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241223_chat_tags
m20241223_chat_tags :: Query
down_m20241223_chat_tags :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20241230_reports
m20241230_reports :: Query
down_m20241230_reports :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250105_indexes
m20250105_indexes :: Query
down_m20250105_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250115_chat_ttl
m20250115_chat_ttl :: Query
down_m20250115_chat_ttl :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250122_chat_items_include_in_history
m20250122_chat_items_include_in_history :: Query
down_m20250122_chat_items_include_in_history :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250126_mentions
m20250126_mentions :: Query
down_m20250126_mentions :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250129_delete_unused_contacts
m20250129_delete_unused_contacts :: Query
down_m20250129_delete_unused_contacts :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250130_indexes
m20250130_indexes :: Query
down_m20250130_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250402_short_links
m20250402_short_links :: Query
down_m20250402_short_links :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250512_member_admission
m20250512_member_admission :: Query
down_m20250512_member_admission :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250513_group_scope
m20250513_group_scope :: Query
down_m20250513_group_scope :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250526_short_links
m20250526_short_links :: Query
down_m20250526_short_links :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250702_contact_requests_remove_cascade_delete
m20250702_contact_requests_remove_cascade_delete :: Query
down_m20250702_contact_requests_remove_cascade_delete :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250704_groups_conn_link_prepared_connection
m20250704_groups_conn_link_prepared_connection :: Query
down_m20250704_groups_conn_link_prepared_connection :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250709_profile_short_descr
m20250709_profile_short_descr :: Query
down_m20250709_profile_short_descr :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250721_indexes
m20250721_indexes :: Query
down_m20250721_indexes :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250729_member_contact_requests
m20250729_member_contact_requests :: Query
down_m20250729_member_contact_requests :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250801_via_group_link_uri
m20250801_via_group_link_uri :: Query
down_m20250801_via_group_link_uri :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250802_chat_peer_type
m20250802_chat_peer_type :: Query
down_m20250802_chat_peer_type :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250813_delivery_tasks
m20250813_delivery_tasks :: Query
down_m20250813_delivery_tasks :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250919_group_summary
m20250919_group_summary :: Query
down_m20250919_group_summary :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20250922_remove_unused_connections
m20250922_remove_unused_connections :: Query
down_m20250922_remove_unused_connections :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20251007_connections_sync
m20251007_connections_sync :: Query
down_m20251007_connections_sync :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20251017_chat_tags_cascade
m20251017_chat_tags_cascade :: Query
down_m20251017_chat_tags_cascade :: Query

module Simplex.Chat.Store.SQLite.Migrations.M20251128_migrate_member_relations
m20251128_migrate_member_relations :: Query
down_m20251128_migrate_member_relations :: Query

module Simplex.Chat.Terminal.Notification
data Notification
Notification :: Text -> Text -> Notification
[title] :: Notification -> Text
[text] :: Notification -> Text
initializeNotifications :: IO (Notification -> IO ())

module Simplex.Chat.Types.MemberRelations
data IntroductionDirection
IDSubjectIntroduced :: IntroductionDirection
IDReferencedIntroduced :: IntroductionDirection
data MemberRelation
MRNew :: MemberRelation
MRIntroduced :: MemberRelation
MRSubjectConnected :: MemberRelation
MRReferencedConnected :: MemberRelation
MRConnected :: MemberRelation
toIntroDirInt :: IntroductionDirection -> Word8
fromIntroDirInt :: Word8 -> IntroductionDirection
toRelationInt :: MemberRelation -> Word8
fromRelationInt :: Word8 -> MemberRelation

-- | Get the relation status of a member at a given index from the
--   relations vector. Returns <a>MRNew</a> if the vector is not long
--   enough (lazy initialization).
getRelation :: Int64 -> ByteString -> MemberRelation

-- | Get both direction and status of a member at a given index from the
--   relations vector. Returns (IDSubjectIntroduced, MRNew) if the vector
--   is not long enough (lazy initialization).
getRelation' :: Int64 -> ByteString -> (IntroductionDirection, MemberRelation)

-- | Get the indexes of members with the given relation status from the
--   relations vector.
getRelationsIndexes :: MemberRelation -> ByteString -> [Int64]

-- | Set the relation status of a member at a given index in the relations
--   vector. Preserves the introduction direction. Expands the vector
--   lazily if needed.
setRelation :: Int64 -> MemberRelation -> ByteString -> ByteString

-- | Set multiple relation statuses at once. Preserves the introduction
--   direction. Expands the vector lazily if needed.
setRelations :: [(Int64, MemberRelation)] -> ByteString -> ByteString

-- | Set relation to connected state based on passed status and current
--   status. newStatus should be MRSubjectConnected or
--   MRReferencedConnected, otherwise returns vector unchanged. Logic: - if
--   newStatus is complementary to oldStatus -&gt; set MRConnected - if
--   newStatus &gt; oldStatus (by enum order) -&gt; set newStatus -
--   otherwise don't update
setRelationConnected :: Int64 -> MemberRelation -> ByteString -> ByteString

-- | Set a new relation with both direction and status at a given index.
--   Expands the vector lazily if needed.
setNewRelation :: Int64 -> IntroductionDirection -> MemberRelation -> ByteString -> ByteString

-- | Set multiple new relations with both direction and status at once.
--   Expands the vector lazily if needed.
setNewRelations :: [(Int64, (IntroductionDirection, MemberRelation))] -> ByteString -> ByteString
instance GHC.Classes.Eq Simplex.Chat.Types.MemberRelations.IntroductionDirection
instance GHC.Classes.Eq Simplex.Chat.Types.MemberRelations.MemberRelation
instance GHC.Classes.Ord Simplex.Chat.Types.MemberRelations.MemberRelation
instance GHC.Show.Show Simplex.Chat.Types.MemberRelations.IntroductionDirection
instance GHC.Show.Show Simplex.Chat.Types.MemberRelations.MemberRelation

module Simplex.Chat.Store.SQLite.Migrations.M20251117_member_relations_vector
sqliteMemberRelationsStepPtr :: FunPtr SQLiteFunc
sqliteMemberRelationsFinalPtr :: FunPtr SQLiteFuncFinal
sqliteMemberRelationsStep :: SQLiteFunc
sqliteMemberRelationsFinal :: SQLiteFuncFinal
sqliteSetMemberVectorNewRelationPtr :: FunPtr SQLiteFunc
sqliteSetMemberVectorNewRelation :: SQLiteFunc
m20251117_member_relations_vector :: Query
down_m20251117_member_relations_vector :: Query

module Simplex.Chat.Store.SQLite.Migrations

-- | The list of migrations in ascending order by date
migrations :: [Migration]

module Simplex.Chat.Options.SQLite
data ChatDbOpts
ChatDbOpts :: String -> ScrubbedBytes -> TrackQueries -> Bool -> ChatDbOpts
[dbFilePrefix] :: ChatDbOpts -> String
[dbKey] :: ChatDbOpts -> ScrubbedBytes
[trackQueries] :: ChatDbOpts -> TrackQueries
[vacuumOnMigration] :: ChatDbOpts -> Bool
chatDbOptsP :: FilePath -> FilePath -> Parser ChatDbOpts
migrationBackupPathP :: Parser (Maybe FilePath)
dbString :: ChatDbOpts -> String
toDBOpts :: ChatDbOpts -> String -> Bool -> [SQLiteFuncDef] -> DBOpts
chatSuffix :: String
agentSuffix :: String
chatDBFunctions :: [SQLiteFuncDef]
mobileDbOpts :: CString -> CString -> IO ChatDbOpts
removeDbKey :: ChatDbOpts -> ChatDbOpts
errorDbStr :: DBOpts -> String

module Simplex.Chat.Options.DB
class FromField a
fromField :: FromField a => FieldParser a
class ToField a
toField :: ToField a => a -> SQLData

module Simplex.Chat.Types.Shared
data GroupMemberRole
GRObserver :: GroupMemberRole
GRAuthor :: GroupMemberRole
GRMember :: GroupMemberRole
GRModerator :: GroupMemberRole
GRAdmin :: GroupMemberRole
GROwner :: GroupMemberRole
data GroupAcceptance
GAAccepted :: GroupAcceptance
GAPendingApproval :: GroupAcceptance
GAPendingReview :: GroupAcceptance
instance GHC.Classes.Eq Simplex.Chat.Types.Shared.GroupAcceptance
instance GHC.Classes.Eq Simplex.Chat.Types.Shared.GroupMemberRole
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.Shared.GroupMemberRole
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Shared.GroupAcceptance
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Shared.GroupMemberRole
instance GHC.Classes.Ord Simplex.Chat.Types.Shared.GroupMemberRole
instance GHC.Show.Show Simplex.Chat.Types.Shared.GroupAcceptance
instance GHC.Show.Show Simplex.Chat.Types.Shared.GroupMemberRole
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.Shared.GroupAcceptance
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.Shared.GroupMemberRole
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.Shared.GroupMemberRole
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Shared.GroupAcceptance
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Shared.GroupMemberRole

module Simplex.Chat.Types.Preferences
data ChatFeature
CFTimedMessages :: ChatFeature
CFFullDelete :: ChatFeature
CFReactions :: ChatFeature
CFVoice :: ChatFeature
CFFiles :: ChatFeature
CFCalls :: ChatFeature
CFSessions :: ChatFeature
data SChatFeature (f :: ChatFeature)
[SCFTimedMessages] :: SChatFeature 'CFTimedMessages
[SCFFullDelete] :: SChatFeature 'CFFullDelete
[SCFReactions] :: SChatFeature 'CFReactions
[SCFVoice] :: SChatFeature 'CFVoice
[SCFFiles] :: SChatFeature 'CFFiles
[SCFCalls] :: SChatFeature 'CFCalls
[SCFSessions] :: SChatFeature 'CFSessions
data AChatFeature
ACF :: SChatFeature f -> AChatFeature
chatFeatureNameText :: ChatFeature -> Text
chatFeatureNameText' :: forall (f :: ChatFeature). SChatFeature f -> Text
allChatFeatures :: [AChatFeature]
chatPrefSel :: forall (f :: ChatFeature). SChatFeature f -> Preferences -> Maybe (FeaturePreference f)
chatFeature :: forall (f :: ChatFeature). SChatFeature f -> ChatFeature
class PreferenceI p
getPreference :: forall (f :: ChatFeature). PreferenceI p => SChatFeature f -> p -> FeaturePreference f
setPreference :: forall (f :: ChatFeature). FeatureI f => SChatFeature f -> Maybe FeatureAllowed -> Maybe Preferences -> Preferences
setPreference' :: forall (f :: ChatFeature). SChatFeature f -> Maybe (FeaturePreference f) -> Maybe Preferences -> Preferences
setPreference_ :: forall (f :: ChatFeature). SChatFeature f -> Maybe (FeaturePreference f) -> Preferences -> Preferences
data Preferences
Preferences :: Maybe TimedMessagesPreference -> Maybe FullDeletePreference -> Maybe ReactionsPreference -> Maybe VoicePreference -> Maybe FilesPreference -> Maybe CallsPreference -> Maybe SessionsPreference -> Maybe [ChatBotCommand] -> Preferences
[timedMessages] :: Preferences -> Maybe TimedMessagesPreference
[fullDelete] :: Preferences -> Maybe FullDeletePreference
[reactions] :: Preferences -> Maybe ReactionsPreference
[voice] :: Preferences -> Maybe VoicePreference
[files] :: Preferences -> Maybe FilesPreference
[calls] :: Preferences -> Maybe CallsPreference
[sessions] :: Preferences -> Maybe SessionsPreference
[commands] :: Preferences -> Maybe [ChatBotCommand]
class HasCommands p
commands_ :: HasCommands p => p -> Maybe [ChatBotCommand]
data GroupFeature
GFTimedMessages :: GroupFeature
GFDirectMessages :: GroupFeature
GFFullDelete :: GroupFeature
GFReactions :: GroupFeature
GFVoice :: GroupFeature
GFFiles :: GroupFeature
GFSimplexLinks :: GroupFeature
GFReports :: GroupFeature
GFHistory :: GroupFeature
GFSessions :: GroupFeature
data SGroupFeature (f :: GroupFeature)
[SGFTimedMessages] :: SGroupFeature 'GFTimedMessages
[SGFDirectMessages] :: SGroupFeature 'GFDirectMessages
[SGFFullDelete] :: SGroupFeature 'GFFullDelete
[SGFReactions] :: SGroupFeature 'GFReactions
[SGFVoice] :: SGroupFeature 'GFVoice
[SGFFiles] :: SGroupFeature 'GFFiles
[SGFSimplexLinks] :: SGroupFeature 'GFSimplexLinks
[SGFReports] :: SGroupFeature 'GFReports
[SGFHistory] :: SGroupFeature 'GFHistory
[SGFSessions] :: SGroupFeature 'GFSessions
data AGroupFeature
AGF :: SGroupFeature f -> AGroupFeature
data AGroupFeatureNoRole
AGFNR :: SGroupFeature f -> AGroupFeatureNoRole
data AGroupFeatureRole
AGFR :: SGroupFeature f -> AGroupFeatureRole
groupFeatureNameText :: GroupFeature -> Text
groupFeatureNameText' :: forall (f :: GroupFeature). SGroupFeature f -> Text
groupFeatureAllowed' :: forall (f :: GroupFeature). GroupFeatureNoRoleI f => SGroupFeature f -> FullGroupPreferences -> Bool
groupFeatureMemberAllowed' :: forall (f :: GroupFeature). GroupFeatureRoleI f => SGroupFeature f -> GroupMemberRole -> FullGroupPreferences -> Bool
allGroupFeatures :: [AGroupFeature]
groupPrefSel :: forall (f :: GroupFeature). SGroupFeature f -> GroupPreferences -> Maybe (GroupFeaturePreference f)
toGroupFeature :: forall (f :: GroupFeature). SGroupFeature f -> GroupFeature
class GroupPreferenceI p
getGroupPreference :: forall (f :: GroupFeature). GroupPreferenceI p => SGroupFeature f -> p -> GroupFeaturePreference f
data GroupPreferences
GroupPreferences :: Maybe TimedMessagesGroupPreference -> Maybe DirectMessagesGroupPreference -> Maybe FullDeleteGroupPreference -> Maybe ReactionsGroupPreference -> Maybe VoiceGroupPreference -> Maybe FilesGroupPreference -> Maybe SimplexLinksGroupPreference -> Maybe ReportsGroupPreference -> Maybe HistoryGroupPreference -> Maybe SessionsGroupPreference -> Maybe [ChatBotCommand] -> GroupPreferences
[timedMessages] :: GroupPreferences -> Maybe TimedMessagesGroupPreference
[directMessages] :: GroupPreferences -> Maybe DirectMessagesGroupPreference
[fullDelete] :: GroupPreferences -> Maybe FullDeleteGroupPreference
[reactions] :: GroupPreferences -> Maybe ReactionsGroupPreference
[voice] :: GroupPreferences -> Maybe VoiceGroupPreference
[files] :: GroupPreferences -> Maybe FilesGroupPreference
[simplexLinks] :: GroupPreferences -> Maybe SimplexLinksGroupPreference
[reports] :: GroupPreferences -> Maybe ReportsGroupPreference
[history] :: GroupPreferences -> Maybe HistoryGroupPreference
[sessions] :: GroupPreferences -> Maybe SessionsGroupPreference
[commands] :: GroupPreferences -> Maybe [ChatBotCommand]
data ChatBotCommand
CBCCommand :: Text -> Text -> Maybe Text -> ChatBotCommand
[keyword] :: ChatBotCommand -> Text
[label] :: ChatBotCommand -> Text
[params] :: ChatBotCommand -> Maybe Text
CBCMenu :: Text -> [ChatBotCommand] -> ChatBotCommand
[label] :: ChatBotCommand -> Text
[commands] :: ChatBotCommand -> [ChatBotCommand]
setGroupPreference :: forall (f :: GroupFeature). GroupFeatureNoRoleI f => SGroupFeature f -> GroupFeatureEnabled -> Maybe GroupPreferences -> GroupPreferences
setGroupPreferenceRole :: forall (f :: GroupFeature). GroupFeatureRoleI f => SGroupFeature f -> GroupFeatureEnabled -> Maybe GroupMemberRole -> Maybe GroupPreferences -> GroupPreferences
setGroupPreference' :: forall (f :: GroupFeature). SGroupFeature f -> GroupFeaturePreference f -> Maybe GroupPreferences -> GroupPreferences
setGroupPreference_ :: forall (f :: GroupFeature). SGroupFeature f -> GroupFeaturePreference f -> FullGroupPreferences -> GroupPreferences
setGroupTimedMessagesPreference :: TimedMessagesGroupPreference -> Maybe GroupPreferences -> GroupPreferences
data FullPreferences
FullPreferences :: TimedMessagesPreference -> FullDeletePreference -> ReactionsPreference -> VoicePreference -> FilesPreference -> CallsPreference -> SessionsPreference -> ListDef ChatBotCommand -> FullPreferences
[timedMessages] :: FullPreferences -> TimedMessagesPreference
[fullDelete] :: FullPreferences -> FullDeletePreference
[reactions] :: FullPreferences -> ReactionsPreference
[voice] :: FullPreferences -> VoicePreference
[files] :: FullPreferences -> FilesPreference
[calls] :: FullPreferences -> CallsPreference
[sessions] :: FullPreferences -> SessionsPreference
[commands] :: FullPreferences -> ListDef ChatBotCommand
newtype ListDef a
ListDef :: [a] -> ListDef a
data FullGroupPreferences
FullGroupPreferences :: TimedMessagesGroupPreference -> DirectMessagesGroupPreference -> FullDeleteGroupPreference -> ReactionsGroupPreference -> VoiceGroupPreference -> FilesGroupPreference -> SimplexLinksGroupPreference -> ReportsGroupPreference -> HistoryGroupPreference -> SessionsGroupPreference -> ListDef ChatBotCommand -> FullGroupPreferences
[timedMessages] :: FullGroupPreferences -> TimedMessagesGroupPreference
[directMessages] :: FullGroupPreferences -> DirectMessagesGroupPreference
[fullDelete] :: FullGroupPreferences -> FullDeleteGroupPreference
[reactions] :: FullGroupPreferences -> ReactionsGroupPreference
[voice] :: FullGroupPreferences -> VoiceGroupPreference
[files] :: FullGroupPreferences -> FilesGroupPreference
[simplexLinks] :: FullGroupPreferences -> SimplexLinksGroupPreference
[reports] :: FullGroupPreferences -> ReportsGroupPreference
[history] :: FullGroupPreferences -> HistoryGroupPreference
[sessions] :: FullGroupPreferences -> SessionsGroupPreference
[commands] :: FullGroupPreferences -> ListDef ChatBotCommand
data ContactUserPreferences
ContactUserPreferences :: ContactUserPreference TimedMessagesPreference -> ContactUserPreference FullDeletePreference -> ContactUserPreference ReactionsPreference -> ContactUserPreference VoicePreference -> ContactUserPreference FilesPreference -> ContactUserPreference CallsPreference -> ContactUserPreference SessionsPreference -> Maybe [ChatBotCommand] -> ContactUserPreferences
[timedMessages] :: ContactUserPreferences -> ContactUserPreference TimedMessagesPreference
[fullDelete] :: ContactUserPreferences -> ContactUserPreference FullDeletePreference
[reactions] :: ContactUserPreferences -> ContactUserPreference ReactionsPreference
[voice] :: ContactUserPreferences -> ContactUserPreference VoicePreference
[files] :: ContactUserPreferences -> ContactUserPreference FilesPreference
[calls] :: ContactUserPreferences -> ContactUserPreference CallsPreference
[sessions] :: ContactUserPreferences -> ContactUserPreference SessionsPreference
[commands] :: ContactUserPreferences -> Maybe [ChatBotCommand]
data ContactUserPreference p
ContactUserPreference :: PrefEnabled -> ContactUserPref p -> p -> ContactUserPreference p
[enabled] :: ContactUserPreference p -> PrefEnabled
[userPreference] :: ContactUserPreference p -> ContactUserPref p
[contactPreference] :: ContactUserPreference p -> p
data ContactUserPref p
CUPContact :: p -> ContactUserPref p
[preference] :: ContactUserPref p -> p
CUPUser :: p -> ContactUserPref p
[preference] :: ContactUserPref p -> p
toChatPrefs :: FullPreferences -> Preferences
defaultChatPrefs :: FullPreferences
emptyChatPrefs :: Preferences
defaultGroupPrefs :: FullGroupPreferences
emptyGroupPrefs :: GroupPreferences
businessGroupPrefs :: Preferences -> GroupPreferences
defaultBusinessGroupPrefs :: GroupPreferences
data TimedMessagesPreference
TimedMessagesPreference :: FeatureAllowed -> Maybe Int -> TimedMessagesPreference
[allow] :: TimedMessagesPreference -> FeatureAllowed
[ttl] :: TimedMessagesPreference -> Maybe Int
data FullDeletePreference
FullDeletePreference :: FeatureAllowed -> FullDeletePreference
[allow] :: FullDeletePreference -> FeatureAllowed
data ReactionsPreference
ReactionsPreference :: FeatureAllowed -> ReactionsPreference
[allow] :: ReactionsPreference -> FeatureAllowed
data VoicePreference
VoicePreference :: FeatureAllowed -> VoicePreference
[allow] :: VoicePreference -> FeatureAllowed
data FilesPreference
FilesPreference :: FeatureAllowed -> FilesPreference
[allow] :: FilesPreference -> FeatureAllowed
data CallsPreference
CallsPreference :: FeatureAllowed -> CallsPreference
[allow] :: CallsPreference -> FeatureAllowed
data SessionsPreference
SessionsPreference :: FeatureAllowed -> SessionsPreference
[allow] :: SessionsPreference -> FeatureAllowed
class (Eq FeaturePreference f, HasField "allow" FeaturePreference f FeatureAllowed) => FeatureI (f :: ChatFeature) where {
    type FeaturePreference (f :: ChatFeature) = (p :: Type) | p -> f;
}
sFeature :: FeatureI f => SChatFeature f
prefParam :: FeatureI f => FeaturePreference f -> Maybe Int
data GroupPreference
GroupPreference :: GroupFeatureEnabled -> GroupPreference
[enable] :: GroupPreference -> GroupFeatureEnabled
data TimedMessagesGroupPreference
TimedMessagesGroupPreference :: GroupFeatureEnabled -> Maybe Int -> TimedMessagesGroupPreference
[enable] :: TimedMessagesGroupPreference -> GroupFeatureEnabled
[ttl] :: TimedMessagesGroupPreference -> Maybe Int
data DirectMessagesGroupPreference
DirectMessagesGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> DirectMessagesGroupPreference
[enable] :: DirectMessagesGroupPreference -> GroupFeatureEnabled
[role] :: DirectMessagesGroupPreference -> Maybe GroupMemberRole
data FullDeleteGroupPreference
FullDeleteGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> FullDeleteGroupPreference
[enable] :: FullDeleteGroupPreference -> GroupFeatureEnabled
[role] :: FullDeleteGroupPreference -> Maybe GroupMemberRole
data ReactionsGroupPreference
ReactionsGroupPreference :: GroupFeatureEnabled -> ReactionsGroupPreference
[enable] :: ReactionsGroupPreference -> GroupFeatureEnabled
data VoiceGroupPreference
VoiceGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> VoiceGroupPreference
[enable] :: VoiceGroupPreference -> GroupFeatureEnabled
[role] :: VoiceGroupPreference -> Maybe GroupMemberRole
data FilesGroupPreference
FilesGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> FilesGroupPreference
[enable] :: FilesGroupPreference -> GroupFeatureEnabled
[role] :: FilesGroupPreference -> Maybe GroupMemberRole
data SimplexLinksGroupPreference
SimplexLinksGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> SimplexLinksGroupPreference
[enable] :: SimplexLinksGroupPreference -> GroupFeatureEnabled
[role] :: SimplexLinksGroupPreference -> Maybe GroupMemberRole
data ReportsGroupPreference
ReportsGroupPreference :: GroupFeatureEnabled -> ReportsGroupPreference
[enable] :: ReportsGroupPreference -> GroupFeatureEnabled
data HistoryGroupPreference
HistoryGroupPreference :: GroupFeatureEnabled -> HistoryGroupPreference
[enable] :: HistoryGroupPreference -> GroupFeatureEnabled
data SessionsGroupPreference
SessionsGroupPreference :: GroupFeatureEnabled -> Maybe GroupMemberRole -> SessionsGroupPreference
[enable] :: SessionsGroupPreference -> GroupFeatureEnabled
[role] :: SessionsGroupPreference -> Maybe GroupMemberRole
class (Eq GroupFeaturePreference f, HasField "enable" GroupFeaturePreference f GroupFeatureEnabled) => GroupFeatureI (f :: GroupFeature) where {
    type GroupFeaturePreference (f :: GroupFeature) = (p :: Type) | p -> f;
}
sGroupFeature :: GroupFeatureI f => SGroupFeature f
groupPrefParam :: GroupFeatureI f => GroupFeaturePreference f -> Maybe Int
groupPrefRole :: GroupFeatureI f => GroupFeaturePreference f -> Maybe GroupMemberRole
class GroupFeatureI f => GroupFeatureNoRoleI (f :: GroupFeature)
class (GroupFeatureI f, HasField "role" GroupFeaturePreference f Maybe GroupMemberRole) => GroupFeatureRoleI (f :: GroupFeature)
groupPrefStateText :: HasField "enable" p GroupFeatureEnabled => GroupFeature -> p -> Maybe Int -> Maybe GroupMemberRole -> Text
groupParamText_ :: GroupFeature -> Maybe Int -> Text
groupPreferenceText :: forall (f :: GroupFeature). GroupFeatureI f => GroupFeaturePreference f -> Text
timedTTLText :: Int -> Text
toGroupPreference :: forall (f :: GroupFeature). GroupFeatureI f => GroupFeaturePreference f -> GroupPreference
data FeatureAllowed
FAAlways :: FeatureAllowed
FAYes :: FeatureAllowed
FANo :: FeatureAllowed
data GroupFeatureEnabled
FEOn :: GroupFeatureEnabled
FEOff :: GroupFeatureEnabled
groupFeatureState :: forall (f :: GroupFeature). GroupFeatureI f => GroupFeaturePreference f -> (GroupFeatureEnabled, Maybe Int, Maybe GroupMemberRole)
mergePreferences :: Maybe Preferences -> Maybe Preferences -> Bool -> FullPreferences
fullPreferences' :: Maybe Preferences -> FullPreferences
mergeGroupPreferences :: Maybe GroupPreferences -> FullGroupPreferences
toGroupPreferences :: FullGroupPreferences -> GroupPreferences
data PrefEnabled
PrefEnabled :: Bool -> Bool -> PrefEnabled
[forUser] :: PrefEnabled -> Bool
[forContact] :: PrefEnabled -> Bool
prefEnabled :: forall (f :: ChatFeature). FeatureI f => Bool -> FeaturePreference f -> FeaturePreference f -> PrefEnabled
prefStateText :: ChatFeature -> FeatureAllowed -> Maybe Int -> Text
featureStateText :: ChatFeature -> PrefEnabled -> Maybe Int -> Text
paramText_ :: ChatFeature -> Maybe Int -> Text
prefEnabledToText :: ChatFeature -> PrefEnabled -> Maybe Int -> Text
preferenceText :: forall (f :: ChatFeature). FeatureI f => FeaturePreference f -> Text
featureState :: forall (f :: ChatFeature). FeatureI f => ContactUserPreference (FeaturePreference f) -> (PrefEnabled, Maybe Int)
preferenceState :: forall (f :: ChatFeature). FeatureI f => FeaturePreference f -> (FeatureAllowed, Maybe Int)
getContactUserPreference :: forall (f :: ChatFeature). SChatFeature f -> ContactUserPreferences -> ContactUserPreference (FeaturePreference f)
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.CallsPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.ChatBotCommand
instance GHC.Classes.Eq p => GHC.Classes.Eq (Simplex.Chat.Types.Preferences.ContactUserPref p)
instance GHC.Classes.Eq p => GHC.Classes.Eq (Simplex.Chat.Types.Preferences.ContactUserPreference p)
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.ContactUserPreferences
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FilesGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FilesPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FullDeleteGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FullDeletePreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FullGroupPreferences
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.FullPreferences
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.GroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.GroupPreferences
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.HistoryGroupPreference
instance GHC.Classes.Eq a => GHC.Classes.Eq (Simplex.Chat.Types.Preferences.ListDef a)
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.PrefEnabled
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.Preferences
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.ReactionsGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.ReactionsPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.ReportsGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.SessionsGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.SessionsPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.TimedMessagesGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.TimedMessagesPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.VoiceGroupPreference
instance GHC.Classes.Eq Simplex.Chat.Types.Preferences.VoicePreference
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFCalls
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFFiles
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFFullDelete
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFReactions
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFSessions
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFTimedMessages
instance Simplex.Chat.Types.Preferences.FeatureI 'Simplex.Chat.Types.Preferences.CFVoice
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.Preferences.FeatureAllowed
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.Preferences.GroupPreferences
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.Preferences.Preferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.CallsPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ChatBotCommand
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ChatFeature
instance Data.Aeson.Types.FromJSON.FromJSON p => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Types.Preferences.ContactUserPref p)
instance Data.Aeson.Types.FromJSON.FromJSON p => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Types.Preferences.ContactUserPreference p)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ContactUserPreferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FeatureAllowed
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FilesGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FilesPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FullDeleteGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FullDeletePreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FullGroupPreferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.FullPreferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.GroupFeature
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.GroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.GroupPreferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.HistoryGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Types.Preferences.ListDef a)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.PrefEnabled
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.Preferences
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ReactionsGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ReactionsPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.ReportsGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.SessionsGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.SessionsPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.TimedMessagesGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.TimedMessagesPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.VoiceGroupPreference
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Preferences.VoicePreference
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFDirectMessages
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFFiles
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFFullDelete
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFHistory
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFReactions
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFReports
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFSessions
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFSimplexLinks
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFTimedMessages
instance Simplex.Chat.Types.Preferences.GroupFeatureI 'Simplex.Chat.Types.Preferences.GFVoice
instance Simplex.Chat.Types.Preferences.GroupFeatureNoRoleI 'Simplex.Chat.Types.Preferences.GFFullDelete
instance Simplex.Chat.Types.Preferences.GroupFeatureNoRoleI 'Simplex.Chat.Types.Preferences.GFHistory
instance Simplex.Chat.Types.Preferences.GroupFeatureNoRoleI 'Simplex.Chat.Types.Preferences.GFReactions
instance Simplex.Chat.Types.Preferences.GroupFeatureNoRoleI 'Simplex.Chat.Types.Preferences.GFReports
instance Simplex.Chat.Types.Preferences.GroupFeatureNoRoleI 'Simplex.Chat.Types.Preferences.GFTimedMessages
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFDirectMessages
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFFiles
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFFullDelete
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFSessions
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFSimplexLinks
instance Simplex.Chat.Types.Preferences.GroupFeatureRoleI 'Simplex.Chat.Types.Preferences.GFVoice
instance Simplex.Chat.Types.Preferences.GroupPreferenceI Simplex.Chat.Types.Preferences.FullGroupPreferences
instance Simplex.Chat.Types.Preferences.GroupPreferenceI Simplex.Chat.Types.Preferences.GroupPreferences
instance Simplex.Chat.Types.Preferences.GroupPreferenceI (GHC.Maybe.Maybe Simplex.Chat.Types.Preferences.GroupPreferences)
instance Simplex.Chat.Types.Preferences.HasCommands Simplex.Chat.Types.Preferences.GroupPreferences
instance Simplex.Chat.Types.Preferences.HasCommands Simplex.Chat.Types.Preferences.Preferences
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.CallsPreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.FilesPreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.FullDeletePreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.ReactionsPreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.SessionsPreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.TimedMessagesPreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "allow" Simplex.Chat.Types.Preferences.VoicePreference Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.GroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.HistoryGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.ReactionsGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.ReportsGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.TimedMessagesGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.FilesGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.FilesGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.FullDeleteGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.FullDeleteGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.SessionsGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.SessionsGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance GHC.Records.Compat.HasField "enable" Simplex.Chat.Types.Preferences.VoiceGroupPreference Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Records.Compat.HasField "role" Simplex.Chat.Types.Preferences.VoiceGroupPreference (GHC.Maybe.Maybe Simplex.Chat.Types.Shared.GroupMemberRole)
instance Simplex.Chat.Types.Preferences.PreferenceI Simplex.Chat.Types.Preferences.FullPreferences
instance Simplex.Chat.Types.Preferences.PreferenceI (GHC.Maybe.Maybe Simplex.Chat.Types.Preferences.Preferences)
instance Simplex.Chat.Types.Preferences.PreferenceI Simplex.Chat.Types.Preferences.Preferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.AChatFeature
instance GHC.Show.Show Simplex.Chat.Types.Preferences.AGroupFeature
instance GHC.Show.Show Simplex.Chat.Types.Preferences.AGroupFeatureNoRole
instance GHC.Show.Show Simplex.Chat.Types.Preferences.AGroupFeatureRole
instance GHC.Show.Show Simplex.Chat.Types.Preferences.CallsPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ChatBotCommand
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ChatFeature
instance GHC.Show.Show p => GHC.Show.Show (Simplex.Chat.Types.Preferences.ContactUserPref p)
instance GHC.Show.Show p => GHC.Show.Show (Simplex.Chat.Types.Preferences.ContactUserPreference p)
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ContactUserPreferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FeatureAllowed
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FilesGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FilesPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FullDeleteGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FullDeletePreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FullGroupPreferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.FullPreferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.GroupFeature
instance GHC.Show.Show Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance GHC.Show.Show Simplex.Chat.Types.Preferences.GroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.GroupPreferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.HistoryGroupPreference
instance GHC.Show.Show a => GHC.Show.Show (Simplex.Chat.Types.Preferences.ListDef a)
instance GHC.Show.Show Simplex.Chat.Types.Preferences.PrefEnabled
instance GHC.Show.Show Simplex.Chat.Types.Preferences.Preferences
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ReactionsGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ReactionsPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.ReportsGroupPreference
instance GHC.Show.Show (Simplex.Chat.Types.Preferences.SChatFeature f)
instance GHC.Show.Show (Simplex.Chat.Types.Preferences.SGroupFeature f)
instance GHC.Show.Show Simplex.Chat.Types.Preferences.SessionsGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.SessionsPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.TimedMessagesGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.TimedMessagesPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.VoiceGroupPreference
instance GHC.Show.Show Simplex.Chat.Types.Preferences.VoicePreference
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.Preferences.FeatureAllowed
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.Preferences.FeatureAllowed
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.Preferences.GroupPreferences
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.Preferences.Preferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.CallsPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ChatBotCommand
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ChatFeature
instance Data.Aeson.Types.ToJSON.ToJSON p => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Types.Preferences.ContactUserPref p)
instance Data.Aeson.Types.ToJSON.ToJSON p => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Types.Preferences.ContactUserPreference p)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ContactUserPreferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.DirectMessagesGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FeatureAllowed
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FilesGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FilesPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FullDeleteGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FullDeletePreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FullGroupPreferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.FullPreferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.GroupFeature
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.GroupFeatureEnabled
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.GroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.GroupPreferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.HistoryGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Types.Preferences.ListDef a)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.PrefEnabled
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.Preferences
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ReactionsGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ReactionsPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.ReportsGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.SessionsGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.SessionsPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.SimplexLinksGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.TimedMessagesGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.TimedMessagesPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.VoiceGroupPreference
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Preferences.VoicePreference

module Simplex.Chat.Types.UITheme
data UITheme
UITheme :: Text -> ThemeColorScheme -> Maybe ChatWallpaper -> UIColors -> UITheme
[themeId] :: UITheme -> Text
[base] :: UITheme -> ThemeColorScheme
[wallpaper] :: UITheme -> Maybe ChatWallpaper
[colors] :: UITheme -> UIColors
data UIColorMode
UCMLight :: UIColorMode
UCMDark :: UIColorMode
data UIThemeEntityOverrides
UIThemeEntityOverrides :: Maybe UIThemeEntityOverride -> Maybe UIThemeEntityOverride -> UIThemeEntityOverrides
[light] :: UIThemeEntityOverrides -> Maybe UIThemeEntityOverride
[dark] :: UIThemeEntityOverrides -> Maybe UIThemeEntityOverride
data UIThemeEntityOverride
UIThemeEntityOverride :: UIColorMode -> Maybe ChatWallpaper -> UIColors -> UIThemeEntityOverride
[mode] :: UIThemeEntityOverride -> UIColorMode
[wallpaper] :: UIThemeEntityOverride -> Maybe ChatWallpaper
[colors] :: UIThemeEntityOverride -> UIColors
data DarkColorScheme
DCSDark :: DarkColorScheme
DCSBlack :: DarkColorScheme
DCSSimplex :: DarkColorScheme
data ThemeColorScheme
TCSLight :: ThemeColorScheme
TCSDark :: DarkColorScheme -> ThemeColorScheme
data UIColorScheme
UCSSystem :: UIColorScheme
UCSFixed :: ThemeColorScheme -> UIColorScheme
data ChatWallpaper
ChatWallpaper :: Maybe Text -> Maybe FilePath -> Maybe UIColor -> Maybe UIColor -> Maybe ChatWallpaperScale -> Maybe Double -> ChatWallpaper
[preset] :: ChatWallpaper -> Maybe Text
[imageFile] :: ChatWallpaper -> Maybe FilePath
[background] :: ChatWallpaper -> Maybe UIColor
[tint] :: ChatWallpaper -> Maybe UIColor
[scaleType] :: ChatWallpaper -> Maybe ChatWallpaperScale
[scale] :: ChatWallpaper -> Maybe Double
data ChatWallpaperScale
CWSFill :: ChatWallpaperScale
CWSFit :: ChatWallpaperScale
CWSRepeat :: ChatWallpaperScale
data UIColors
UIColors :: Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> Maybe UIColor -> UIColors
[accent] :: UIColors -> Maybe UIColor
[accentVariant] :: UIColors -> Maybe UIColor
[secondary] :: UIColors -> Maybe UIColor
[secondaryVariant] :: UIColors -> Maybe UIColor
[background] :: UIColors -> Maybe UIColor
[menus] :: UIColors -> Maybe UIColor
[title] :: UIColors -> Maybe UIColor
[accentVariant2] :: UIColors -> Maybe UIColor
[sentMessage] :: UIColors -> Maybe UIColor
[sentReply] :: UIColors -> Maybe UIColor
[receivedMessage] :: UIColors -> Maybe UIColor
[receivedReply] :: UIColors -> Maybe UIColor
defaultUIColors :: UIColors
newtype UIColor
UIColor :: String -> UIColor
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.ChatWallpaper
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.ChatWallpaperScale
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.DarkColorScheme
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.ThemeColorScheme
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIColor
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIColorMode
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIColorScheme
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIColors
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UITheme
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIThemeEntityOverride
instance GHC.Classes.Eq Simplex.Chat.Types.UITheme.UIThemeEntityOverrides
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.UITheme.UIThemeEntityOverrides
instance Data.Aeson.Types.FromJSON.FromJSONKey Simplex.Chat.Types.UITheme.ThemeColorScheme
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.ChatWallpaper
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.ChatWallpaperScale
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.DarkColorScheme
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.ThemeColorScheme
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIColor
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIColorMode
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIColorScheme
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIColors
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UITheme
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIThemeEntityOverride
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UITheme.UIThemeEntityOverrides
instance GHC.Classes.Ord Simplex.Chat.Types.UITheme.DarkColorScheme
instance GHC.Classes.Ord Simplex.Chat.Types.UITheme.ThemeColorScheme
instance GHC.Classes.Ord Simplex.Chat.Types.UITheme.UIColorScheme
instance GHC.Show.Show Simplex.Chat.Types.UITheme.ChatWallpaper
instance GHC.Show.Show Simplex.Chat.Types.UITheme.ChatWallpaperScale
instance GHC.Show.Show Simplex.Chat.Types.UITheme.DarkColorScheme
instance GHC.Show.Show Simplex.Chat.Types.UITheme.ThemeColorScheme
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIColor
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIColorMode
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIColorScheme
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIColors
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UITheme
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIThemeEntityOverride
instance GHC.Show.Show Simplex.Chat.Types.UITheme.UIThemeEntityOverrides
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.UITheme.DarkColorScheme
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.UITheme.ThemeColorScheme
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.UITheme.UIColorScheme
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.UITheme.UIThemeEntityOverrides
instance Data.Aeson.Types.ToJSON.ToJSONKey Simplex.Chat.Types.UITheme.ThemeColorScheme
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.ChatWallpaper
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.ChatWallpaperScale
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.DarkColorScheme
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.ThemeColorScheme
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIColor
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIColorMode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIColorScheme
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIColors
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UITheme
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIThemeEntityOverride
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UITheme.UIThemeEntityOverrides

module Simplex.Chat.Types
class IsContact a
contactId' :: IsContact a => a -> ContactId
profile' :: IsContact a => a -> LocalProfile
localDisplayName' :: IsContact a => a -> ContactName
preferences' :: IsContact a => a -> Maybe Preferences
newtype AgentUserId
AgentUserId :: UserId -> AgentUserId
aUserId :: User -> UserId
data User
User :: UserId -> AgentUserId -> ContactId -> ContactName -> LocalProfile -> FullPreferences -> Bool -> Int64 -> Maybe UserPwdHash -> Bool -> Bool -> Bool -> BoolDef -> Maybe UTCTime -> Maybe UIThemeEntityOverrides -> User
[userId] :: User -> UserId
[agentUserId] :: User -> AgentUserId
[userContactId] :: User -> ContactId
[localDisplayName] :: User -> ContactName
[profile] :: User -> LocalProfile
[fullPreferences] :: User -> FullPreferences
[activeUser] :: User -> Bool
[activeOrder] :: User -> Int64
[viewPwdHash] :: User -> Maybe UserPwdHash
[showNtfs] :: User -> Bool
[sendRcptsContacts] :: User -> Bool
[sendRcptsSmallGroups] :: User -> Bool
[autoAcceptMemberContacts] :: User -> BoolDef
[userMemberProfileUpdatedAt] :: User -> Maybe UTCTime
[uiThemes] :: User -> Maybe UIThemeEntityOverrides
data NewUser
NewUser :: Maybe Profile -> Bool -> NewUser
[profile] :: NewUser -> Maybe Profile
[pastTimestamp] :: NewUser -> Bool
newtype B64UrlByteString
B64UrlByteString :: ByteString -> B64UrlByteString
data UserPwdHash
UserPwdHash :: B64UrlByteString -> B64UrlByteString -> UserPwdHash
[hash] :: UserPwdHash -> B64UrlByteString
[salt] :: UserPwdHash -> B64UrlByteString
data UserInfo
UserInfo :: User -> Int -> UserInfo
[user] :: UserInfo -> User
[unreadCount] :: UserInfo -> Int
type ContactId = Int64
type ProfileId = Int64
type ChatTagId = Int64
data Contact
Contact :: ContactId -> ContactName -> LocalProfile -> Maybe Connection -> Bool -> ContactStatus -> ChatSettings -> Preferences -> ContactUserPreferences -> UTCTime -> UTCTime -> Maybe UTCTime -> Maybe PreparedContact -> Maybe Int64 -> Maybe GroupMemberId -> Bool -> Maybe GroupDirectInvitation -> [ChatTagId] -> Maybe Int64 -> Maybe UIThemeEntityOverrides -> Bool -> Maybe CustomData -> Contact
[contactId] :: Contact -> ContactId
[localDisplayName] :: Contact -> ContactName
[profile] :: Contact -> LocalProfile
[activeConn] :: Contact -> Maybe Connection
[contactUsed] :: Contact -> Bool
[contactStatus] :: Contact -> ContactStatus
[chatSettings] :: Contact -> ChatSettings
[userPreferences] :: Contact -> Preferences
[mergedPreferences] :: Contact -> ContactUserPreferences
[createdAt] :: Contact -> UTCTime
[updatedAt] :: Contact -> UTCTime
[chatTs] :: Contact -> Maybe UTCTime
[preparedContact] :: Contact -> Maybe PreparedContact
[contactRequestId] :: Contact -> Maybe Int64
[contactGroupMemberId] :: Contact -> Maybe GroupMemberId
[contactGrpInvSent] :: Contact -> Bool
[groupDirectInv] :: Contact -> Maybe GroupDirectInvitation
[chatTags] :: Contact -> [ChatTagId]
[chatItemTTL] :: Contact -> Maybe Int64
[uiThemes] :: Contact -> Maybe UIThemeEntityOverrides
[chatDeleted] :: Contact -> Bool
[customData] :: Contact -> Maybe CustomData
contactRequestId' :: Contact -> Maybe Int64
data PreparedContact
PreparedContact :: ACreatedConnLink -> ConnectionMode -> Maybe SharedMsgId -> Maybe SharedMsgId -> PreparedContact
[connLinkToConnect] :: PreparedContact -> ACreatedConnLink
[uiConnLinkType] :: PreparedContact -> ConnectionMode
[welcomeSharedMsgId] :: PreparedContact -> Maybe SharedMsgId
[requestSharedMsgId] :: PreparedContact -> Maybe SharedMsgId
data GroupDirectInvitation
GroupDirectInvitation :: ConnReqInvitation -> Maybe GroupId -> Maybe GroupMemberId -> Maybe Int64 -> Bool -> GroupDirectInvitation
[groupDirectInvLink] :: GroupDirectInvitation -> ConnReqInvitation
[fromGroupId_] :: GroupDirectInvitation -> Maybe GroupId
[fromGroupMemberId_] :: GroupDirectInvitation -> Maybe GroupMemberId
[fromGroupMemberConnId_] :: GroupDirectInvitation -> Maybe Int64
[groupDirectInvStartedConnection] :: GroupDirectInvitation -> Bool
newtype SharedMsgId
SharedMsgId :: ByteString -> SharedMsgId
newtype CustomData
CustomData :: Object -> CustomData
contactConn :: Contact -> Maybe Connection
contactConnId :: Contact -> Maybe ConnId
type IncognitoEnabled = Bool
contactConnIncognito :: Contact -> IncognitoEnabled
contactDirect :: Contact -> Bool
connDirect :: Connection -> Bool
directOrUsed :: Contact -> Bool
anyDirectOrUsed :: Contact -> Bool
contactReady :: Contact -> Bool
contactActive :: Contact -> Bool
contactDeleted :: Contact -> Bool
contactSecurityCode :: Contact -> Maybe SecurityCode
contactPQEnabled :: Contact -> PQEncryption
data ContactStatus
CSActive :: ContactStatus
CSDeleted :: ContactStatus
CSDeletedByUser :: ContactStatus
data ContactRef
ContactRef :: ContactId -> Int64 -> AgentConnId -> ContactName -> ContactRef
[contactId] :: ContactRef -> ContactId
[connId] :: ContactRef -> Int64
[agentConnId] :: ContactRef -> AgentConnId
[localDisplayName] :: ContactRef -> ContactName
data ContactOrMember
COMContact :: Contact -> ContactOrMember
COMGroupMember :: GroupMember -> ContactOrMember
contactOrMemberIds :: ContactOrMember -> (Maybe ContactId, Maybe GroupMemberId)
contactOrMemberIncognito :: ContactOrMember -> IncognitoEnabled
data UserContact
UserContact :: Int64 -> ConnReqContact -> Maybe GroupId -> UserContact
[userContactLinkId] :: UserContact -> Int64
[connReqContact] :: UserContact -> ConnReqContact
[groupId] :: UserContact -> Maybe GroupId
data UserContactRequest
UserContactRequest :: Int64 -> AgentInvId -> Maybe ContactId -> Maybe GroupId -> Maybe Int64 -> VersionRangeChat -> ContactName -> Int64 -> Profile -> UTCTime -> UTCTime -> Maybe XContactId -> PQSupport -> Maybe SharedMsgId -> Maybe SharedMsgId -> UserContactRequest
[contactRequestId] :: UserContactRequest -> Int64
[agentInvitationId] :: UserContactRequest -> AgentInvId
[contactId_] :: UserContactRequest -> Maybe ContactId
[businessGroupId_] :: UserContactRequest -> Maybe GroupId
[userContactLinkId_] :: UserContactRequest -> Maybe Int64
[cReqChatVRange] :: UserContactRequest -> VersionRangeChat
[localDisplayName] :: UserContactRequest -> ContactName
[profileId] :: UserContactRequest -> Int64
[profile] :: UserContactRequest -> Profile
[createdAt] :: UserContactRequest -> UTCTime
[updatedAt] :: UserContactRequest -> UTCTime
[xContactId] :: UserContactRequest -> Maybe XContactId
[pqSupport] :: UserContactRequest -> PQSupport
[welcomeSharedMsgId] :: UserContactRequest -> Maybe SharedMsgId
[requestSharedMsgId] :: UserContactRequest -> Maybe SharedMsgId
newtype XContactId
XContactId :: ByteString -> XContactId
newtype ConnReqUriHash
ConnReqUriHash :: ByteString -> ConnReqUriHash
[unConnReqUriHash] :: ConnReqUriHash -> ByteString
data RequestEntity
REContact :: Contact -> RequestEntity
REBusinessChat :: GroupInfo -> GroupMember -> RequestEntity
type RepeatRequest = Bool
data RequestStage
RSAcceptedRequest :: Maybe UserContactRequest -> RequestEntity -> RequestStage
[acceptedRequest] :: RequestStage -> Maybe UserContactRequest
[requestEntity] :: RequestStage -> RequestEntity
RSCurrentRequest :: Maybe UserContactRequest -> UserContactRequest -> Maybe RequestEntity -> RequestStage
[previousRequest] :: RequestStage -> Maybe UserContactRequest
[currentRequest] :: RequestStage -> UserContactRequest
[requestEntity_] :: RequestStage -> Maybe RequestEntity
type UserName = Text
type ContactName = Text
type MemberName = Text
type GroupName = Text
optionalFullName :: ContactName -> Text -> Maybe Text -> Text
data Group
Group :: GroupInfo -> [GroupMember] -> Group
[groupInfo] :: Group -> GroupInfo
[members] :: Group -> [GroupMember]
type GroupId = Int64
data GroupInfo
GroupInfo :: GroupId -> BoolDef -> GroupName -> GroupProfile -> Text -> Maybe BusinessChatInfo -> FullGroupPreferences -> GroupMember -> ChatSettings -> UTCTime -> UTCTime -> Maybe UTCTime -> Maybe UTCTime -> Maybe PreparedGroup -> [ChatTagId] -> Maybe Int64 -> Maybe UIThemeEntityOverrides -> Maybe CustomData -> GroupSummary -> Int -> Maybe ConnReqContact -> GroupInfo
[groupId] :: GroupInfo -> GroupId
[useRelays] :: GroupInfo -> BoolDef
[localDisplayName] :: GroupInfo -> GroupName
[groupProfile] :: GroupInfo -> GroupProfile
[localAlias] :: GroupInfo -> Text
[businessChat] :: GroupInfo -> Maybe BusinessChatInfo
[fullGroupPreferences] :: GroupInfo -> FullGroupPreferences
[membership] :: GroupInfo -> GroupMember
[chatSettings] :: GroupInfo -> ChatSettings
[createdAt] :: GroupInfo -> UTCTime
[updatedAt] :: GroupInfo -> UTCTime
[chatTs] :: GroupInfo -> Maybe UTCTime
[userMemberProfileSentAt] :: GroupInfo -> Maybe UTCTime
[preparedGroup] :: GroupInfo -> Maybe PreparedGroup
[chatTags] :: GroupInfo -> [ChatTagId]
[chatItemTTL] :: GroupInfo -> Maybe Int64
[uiThemes] :: GroupInfo -> Maybe UIThemeEntityOverrides
[customData] :: GroupInfo -> Maybe CustomData
[groupSummary] :: GroupInfo -> GroupSummary
[membersRequireAttention] :: GroupInfo -> Int
[viaGroupLinkUri] :: GroupInfo -> Maybe ConnReqContact
data BusinessChatType
BCBusiness :: BusinessChatType
BCCustomer :: BusinessChatType
data PreparedGroup
PreparedGroup :: CreatedLinkContact -> Bool -> Bool -> Maybe SharedMsgId -> Maybe SharedMsgId -> PreparedGroup
[connLinkToConnect] :: PreparedGroup -> CreatedLinkContact
[connLinkPreparedConnection] :: PreparedGroup -> Bool
[connLinkStartedConnection] :: PreparedGroup -> Bool
[welcomeSharedMsgId] :: PreparedGroup -> Maybe SharedMsgId
[requestSharedMsgId] :: PreparedGroup -> Maybe SharedMsgId
groupName' :: GroupInfo -> GroupName
data GroupSummary
GroupSummary :: Int64 -> GroupSummary
[currentMembers] :: GroupSummary -> Int64
data GroupLink
GroupLink :: Int64 -> CreatedLinkContact -> Bool -> BoolDef -> GroupLinkId -> GroupMemberRole -> GroupLink
[userContactLinkId] :: GroupLink -> Int64
[connLinkContact] :: GroupLink -> CreatedLinkContact
[shortLinkDataSet] :: GroupLink -> Bool
[shortLinkLargeDataSet] :: GroupLink -> BoolDef
[groupLinkId] :: GroupLink -> GroupLinkId
[acceptMemberRole] :: GroupLink -> GroupMemberRole
data ContactOrGroup
CGContact :: Contact -> ContactOrGroup
CGGroup :: GroupInfo -> [GroupMember] -> ContactOrGroup
data PreparedChatEntity
PCEContact :: Contact -> PreparedChatEntity
PCEGroup :: GroupInfo -> GroupMember -> PreparedChatEntity
[groupInfo] :: PreparedChatEntity -> GroupInfo
[hostMember] :: PreparedChatEntity -> GroupMember
contactAndGroupIds :: ContactOrGroup -> (Maybe ContactId, Maybe GroupId)
data ChatSettings
ChatSettings :: MsgFilter -> Maybe Bool -> Bool -> ChatSettings
[enableNtfs] :: ChatSettings -> MsgFilter
[sendRcpts] :: ChatSettings -> Maybe Bool
[favorite] :: ChatSettings -> Bool
defaultChatSettings :: ChatSettings
chatHasNtfs :: ChatSettings -> Bool
data MsgFilter
MFNone :: MsgFilter
MFAll :: MsgFilter
MFMentions :: MsgFilter
msgFilterInt :: MsgFilter -> Int
msgFilterIntP :: Int64 -> Maybe MsgFilter
fromIntField_ :: Typeable a => (Int64 -> Maybe a) -> FieldParser a
featureAllowed :: forall (f :: ChatFeature). SChatFeature f -> (PrefEnabled -> Bool) -> Contact -> Bool
groupFeatureAllowed :: forall (f :: GroupFeature). GroupFeatureNoRoleI f => SGroupFeature f -> GroupInfo -> Bool
groupFeatureMemberAllowed :: forall (f :: GroupFeature). GroupFeatureRoleI f => SGroupFeature f -> GroupMember -> GroupInfo -> Bool
groupFeatureUserAllowed :: forall (f :: GroupFeature). GroupFeatureRoleI f => SGroupFeature f -> GroupInfo -> Bool
mergeUserChatPrefs :: User -> Contact -> FullPreferences
mergeUserChatPrefs' :: User -> Bool -> Preferences -> FullPreferences
updateMergedPreferences :: User -> Contact -> Contact
contactUserPreferences :: User -> Preferences -> Maybe Preferences -> Bool -> ContactUserPreferences
data Profile
Profile :: ContactName -> Text -> Maybe Text -> Maybe ImageData -> Maybe ConnLinkContact -> Maybe Preferences -> Maybe ChatPeerType -> Profile
[displayName] :: Profile -> ContactName
[fullName] :: Profile -> Text
[shortDescr] :: Profile -> Maybe Text
[image] :: Profile -> Maybe ImageData
[contactLink] :: Profile -> Maybe ConnLinkContact
[preferences] :: Profile -> Maybe Preferences
[peerType] :: Profile -> Maybe ChatPeerType
data ChatPeerType
CPTHuman :: ChatPeerType
CPTBot :: ChatPeerType
profileFromName :: ContactName -> Profile
profilesMatch :: LocalProfile -> LocalProfile -> Bool
data IncognitoProfile
NewIncognito :: Profile -> IncognitoProfile
ExistingIncognito :: LocalProfile -> IncognitoProfile
fromIncognitoProfile :: IncognitoProfile -> Profile
userProfileDirect :: User -> Maybe Profile -> Maybe Contact -> Bool -> Profile
type LocalAlias = Text
data LocalProfile
LocalProfile :: ProfileId -> ContactName -> Text -> Maybe Text -> Maybe ImageData -> Maybe ConnLinkContact -> Maybe Preferences -> Maybe ChatPeerType -> LocalAlias -> LocalProfile
[profileId] :: LocalProfile -> ProfileId
[displayName] :: LocalProfile -> ContactName
[fullName] :: LocalProfile -> Text
[shortDescr] :: LocalProfile -> Maybe Text
[image] :: LocalProfile -> Maybe ImageData
[contactLink] :: LocalProfile -> Maybe ConnLinkContact
[preferences] :: LocalProfile -> Maybe Preferences
[peerType] :: LocalProfile -> Maybe ChatPeerType
[localAlias] :: LocalProfile -> LocalAlias
localProfileId :: LocalProfile -> ProfileId
toLocalProfile :: ProfileId -> Profile -> LocalAlias -> LocalProfile
fromLocalProfile :: LocalProfile -> Profile
data GroupProfile
GroupProfile :: GroupName -> Text -> Maybe Text -> Maybe Text -> Maybe ImageData -> Maybe GroupPreferences -> Maybe GroupMemberAdmission -> GroupProfile
[displayName] :: GroupProfile -> GroupName
[fullName] :: GroupProfile -> Text
[shortDescr] :: GroupProfile -> Maybe Text
[description] :: GroupProfile -> Maybe Text
[image] :: GroupProfile -> Maybe ImageData
[groupPreferences] :: GroupProfile -> Maybe GroupPreferences
[memberAdmission] :: GroupProfile -> Maybe GroupMemberAdmission
data GroupMemberAdmission
GroupMemberAdmission :: Maybe MemberCriteria -> GroupMemberAdmission
[review] :: GroupMemberAdmission -> Maybe MemberCriteria
data MemberCriteria
MCAll :: MemberCriteria
emptyGroupMemberAdmission :: GroupMemberAdmission
newtype ImageData
ImageData :: Text -> ImageData
data CReqClientData
CRDataGroup :: GroupLinkId -> CReqClientData
[groupLinkId] :: CReqClientData -> GroupLinkId
newtype GroupLinkId
GroupLinkId :: ByteString -> GroupLinkId
[unGroupLinkId] :: GroupLinkId -> ByteString
data GroupInvitation
GroupInvitation :: MemberIdRole -> MemberIdRole -> ConnReqInvitation -> GroupProfile -> Maybe BusinessChatInfo -> Maybe GroupLinkId -> Maybe Int -> GroupInvitation
[fromMember] :: GroupInvitation -> MemberIdRole
[invitedMember] :: GroupInvitation -> MemberIdRole
[connRequest] :: GroupInvitation -> ConnReqInvitation
[groupProfile] :: GroupInvitation -> GroupProfile
[business] :: GroupInvitation -> Maybe BusinessChatInfo
[groupLinkId] :: GroupInvitation -> Maybe GroupLinkId
[groupSize] :: GroupInvitation -> Maybe Int
data GroupLinkInvitation
GroupLinkInvitation :: MemberIdRole -> ContactName -> MemberIdRole -> GroupProfile -> Maybe GroupAcceptance -> Maybe BusinessChatInfo -> Maybe Int -> GroupLinkInvitation
[fromMember] :: GroupLinkInvitation -> MemberIdRole
[fromMemberName] :: GroupLinkInvitation -> ContactName
[invitedMember] :: GroupLinkInvitation -> MemberIdRole
[groupProfile] :: GroupLinkInvitation -> GroupProfile
[accepted] :: GroupLinkInvitation -> Maybe GroupAcceptance
[business] :: GroupLinkInvitation -> Maybe BusinessChatInfo
[groupSize] :: GroupLinkInvitation -> Maybe Int
data GroupLinkRejection
GroupLinkRejection :: MemberIdRole -> MemberIdRole -> GroupProfile -> GroupRejectionReason -> GroupLinkRejection
[fromMember] :: GroupLinkRejection -> MemberIdRole
[invitedMember] :: GroupLinkRejection -> MemberIdRole
[groupProfile] :: GroupLinkRejection -> GroupProfile
[rejectionReason] :: GroupLinkRejection -> GroupRejectionReason
data GroupRejectionReason
GRRLongName :: GroupRejectionReason
GRRBlockedName :: GroupRejectionReason
GRRUnknown :: Text -> GroupRejectionReason
[text] :: GroupRejectionReason -> Text
data MemberIdRole
MemberIdRole :: MemberId -> GroupMemberRole -> MemberIdRole
[memberId] :: MemberIdRole -> MemberId
[memberRole] :: MemberIdRole -> GroupMemberRole
data IntroInvitation
IntroInvitation :: ConnReqInvitation -> Maybe ConnReqInvitation -> IntroInvitation
[groupConnReq] :: IntroInvitation -> ConnReqInvitation
[directConnReq] :: IntroInvitation -> Maybe ConnReqInvitation
data MemberInfo
MemberInfo :: MemberId -> GroupMemberRole -> Maybe ChatVersionRange -> Profile -> MemberInfo
[memberId] :: MemberInfo -> MemberId
[memberRole] :: MemberInfo -> GroupMemberRole
[v] :: MemberInfo -> Maybe ChatVersionRange
[profile] :: MemberInfo -> Profile
data BusinessChatInfo
BusinessChatInfo :: BusinessChatType -> MemberId -> MemberId -> BusinessChatInfo
[chatType] :: BusinessChatInfo -> BusinessChatType
[businessId] :: BusinessChatInfo -> MemberId
[customerId] :: BusinessChatInfo -> MemberId
data MemberRestrictionStatus
MRSBlocked :: MemberRestrictionStatus
MRSUnrestricted :: MemberRestrictionStatus
MRSUnknown :: Text -> MemberRestrictionStatus
mrsBlocked :: MemberRestrictionStatus -> Bool
data MemberRestrictions
MemberRestrictions :: MemberRestrictionStatus -> MemberRestrictions
[restriction] :: MemberRestrictions -> MemberRestrictionStatus
memberRestrictions :: GroupMember -> Maybe MemberRestrictions
data ReceivedGroupInvitation
ReceivedGroupInvitation :: GroupMember -> ConnReqInvitation -> GroupInfo -> ReceivedGroupInvitation
[fromMember] :: ReceivedGroupInvitation -> GroupMember
[connRequest] :: ReceivedGroupInvitation -> ConnReqInvitation
[groupInfo] :: ReceivedGroupInvitation -> GroupInfo
type GroupMemberId = Int64
data GroupMember
GroupMember :: GroupMemberId -> GroupId -> Int64 -> MemberId -> GroupMemberRole -> GroupMemberCategory -> GroupMemberStatus -> GroupMemberSettings -> Bool -> InvitedBy -> Maybe GroupMemberId -> ContactName -> LocalProfile -> Maybe ContactId -> ProfileId -> Maybe Connection -> VersionRangeChat -> UTCTime -> UTCTime -> Maybe GroupSupportChat -> GroupMember
[groupMemberId] :: GroupMember -> GroupMemberId
[groupId] :: GroupMember -> GroupId
[indexInGroup] :: GroupMember -> Int64
[memberId] :: GroupMember -> MemberId
[memberRole] :: GroupMember -> GroupMemberRole
[memberCategory] :: GroupMember -> GroupMemberCategory
[memberStatus] :: GroupMember -> GroupMemberStatus
[memberSettings] :: GroupMember -> GroupMemberSettings
[blockedByAdmin] :: GroupMember -> Bool
[invitedBy] :: GroupMember -> InvitedBy
[invitedByGroupMemberId] :: GroupMember -> Maybe GroupMemberId
[localDisplayName] :: GroupMember -> ContactName
[memberProfile] :: GroupMember -> LocalProfile
[memberContactId] :: GroupMember -> Maybe ContactId
[memberContactProfileId] :: GroupMember -> ProfileId
[activeConn] :: GroupMember -> Maybe Connection
[memberChatVRange] :: GroupMember -> VersionRangeChat
[createdAt] :: GroupMember -> UTCTime
[updatedAt] :: GroupMember -> UTCTime
[supportChat] :: GroupMember -> Maybe GroupSupportChat
data GroupSupportChat
GroupSupportChat :: UTCTime -> Int64 -> Int64 -> Int64 -> Maybe UTCTime -> GroupSupportChat
[chatTs] :: GroupSupportChat -> UTCTime
[unread] :: GroupSupportChat -> Int64
[memberAttention] :: GroupSupportChat -> Int64
[mentions] :: GroupSupportChat -> Int64
[lastMsgFromMemberTs] :: GroupSupportChat -> Maybe UTCTime
gmRequiresAttention :: GroupMember -> Bool
data GroupMemberRef
GroupMemberRef :: Int64 -> Profile -> GroupMemberRef
[groupMemberId] :: GroupMemberRef -> Int64
[profile] :: GroupMemberRef -> Profile
groupMemberRef :: GroupMember -> GroupMemberRef
isMemberRelay :: GroupMember -> Bool
memberConn :: GroupMember -> Maybe Connection
memberConnId :: GroupMember -> Maybe ConnId
sameMemberId :: MemberId -> GroupMember -> Bool
memberChatVRange' :: GroupMember -> VersionRangeChat
supportsVersion :: GroupMember -> VersionChat -> Bool
groupMemberId' :: GroupMember -> GroupMemberId
memberId' :: GroupMember -> MemberId
memberIncognito :: GroupMember -> IncognitoEnabled
incognitoMembership :: GroupInfo -> IncognitoEnabled
incognitoMembershipProfile :: GroupInfo -> Maybe LocalProfile
memberSecurityCode :: GroupMember -> Maybe SecurityCode
memberBlocked :: GroupMember -> Bool
data NewGroupMember
NewGroupMember :: MemberInfo -> GroupMemberCategory -> GroupMemberStatus -> Maybe MemberRestrictionStatus -> InvitedBy -> Maybe GroupMemberId -> ContactName -> Int64 -> Maybe Int64 -> NewGroupMember
[memInfo] :: NewGroupMember -> MemberInfo
[memCategory] :: NewGroupMember -> GroupMemberCategory
[memStatus] :: NewGroupMember -> GroupMemberStatus
[memRestriction] :: NewGroupMember -> Maybe MemberRestrictionStatus
[memInvitedBy] :: NewGroupMember -> InvitedBy
[memInvitedByGroupMemberId] :: NewGroupMember -> Maybe GroupMemberId
[localDisplayName] :: NewGroupMember -> ContactName
[memProfileId] :: NewGroupMember -> Int64
[memContactId] :: NewGroupMember -> Maybe Int64
newtype MemberId
MemberId :: ByteString -> MemberId
[unMemberId] :: MemberId -> ByteString
nameFromMemberId :: MemberId -> ContactName
data InvitedBy
IBContact :: Int64 -> InvitedBy
[byContactId] :: InvitedBy -> Int64
IBUser :: InvitedBy
IBUnknown :: InvitedBy
toInvitedBy :: Int64 -> Maybe Int64 -> InvitedBy
fromInvitedBy :: Int64 -> InvitedBy -> Maybe Int64
data GroupMemberSettings
GroupMemberSettings :: Bool -> GroupMemberSettings
[showMessages] :: GroupMemberSettings -> Bool
defaultMemberSettings :: GroupMemberSettings
newtype Probe
Probe :: ByteString -> Probe
[unProbe] :: Probe -> ByteString
newtype ProbeHash
ProbeHash :: ByteString -> ProbeHash
[unProbeHash] :: ProbeHash -> ByteString
data GroupMemberCategory
GCUserMember :: GroupMemberCategory
GCInviteeMember :: GroupMemberCategory
GCHostMember :: GroupMemberCategory
GCPreMember :: GroupMemberCategory
GCPostMember :: GroupMemberCategory
data GroupMemberStatus
GSMemRejected :: GroupMemberStatus
GSMemRemoved :: GroupMemberStatus
GSMemLeft :: GroupMemberStatus
GSMemGroupDeleted :: GroupMemberStatus
GSMemUnknown :: GroupMemberStatus
GSMemInvited :: GroupMemberStatus
GSMemPendingApproval :: GroupMemberStatus
GSMemPendingReview :: GroupMemberStatus
GSMemIntroduced :: GroupMemberStatus
GSMemIntroInvited :: GroupMemberStatus
GSMemAccepted :: GroupMemberStatus
GSMemAnnounced :: GroupMemberStatus
GSMemConnected :: GroupMemberStatus
GSMemComplete :: GroupMemberStatus
GSMemCreator :: GroupMemberStatus
acceptanceToStatus :: Maybe GroupMemberAdmission -> GroupAcceptance -> GroupMemberStatus
memberActive :: GroupMember -> Bool
memberCurrent :: GroupMember -> Bool
memberPending :: GroupMember -> Bool
memberCurrentOrPending :: GroupMember -> Bool
memberCurrent' :: GroupMemberStatus -> Bool
memberRemoved :: GroupMember -> Bool
data SndFileTransfer
SndFileTransfer :: FileTransferId -> String -> String -> Integer -> Integer -> ContactName -> Int64 -> AgentConnId -> Maybe Int64 -> FileStatus -> Maybe Int64 -> Maybe InlineFileMode -> SndFileTransfer
[fileId] :: SndFileTransfer -> FileTransferId
[fileName] :: SndFileTransfer -> String
[filePath] :: SndFileTransfer -> String
[fileSize] :: SndFileTransfer -> Integer
[chunkSize] :: SndFileTransfer -> Integer
[recipientDisplayName] :: SndFileTransfer -> ContactName
[connId] :: SndFileTransfer -> Int64
[agentConnId] :: SndFileTransfer -> AgentConnId
[groupMemberId] :: SndFileTransfer -> Maybe Int64
[fileStatus] :: SndFileTransfer -> FileStatus
[fileDescrId] :: SndFileTransfer -> Maybe Int64
[fileInline] :: SndFileTransfer -> Maybe InlineFileMode
type FileTransferId = Int64
data FileInvitation
FileInvitation :: String -> Integer -> Maybe FileDigest -> Maybe ConnReqInvitation -> Maybe InlineFileMode -> Maybe FileDescr -> FileInvitation
[fileName] :: FileInvitation -> String
[fileSize] :: FileInvitation -> Integer
[fileDigest] :: FileInvitation -> Maybe FileDigest
[fileConnReq] :: FileInvitation -> Maybe ConnReqInvitation
[fileInline] :: FileInvitation -> Maybe InlineFileMode
[fileDescr] :: FileInvitation -> Maybe FileDescr
data FileDescr
FileDescr :: Text -> Int -> Bool -> FileDescr
[fileDescrText] :: FileDescr -> Text
[fileDescrPartNo] :: FileDescr -> Int
[fileDescrComplete] :: FileDescr -> Bool
xftpFileInvitation :: FilePath -> Integer -> FileDescr -> FileInvitation
data InlineFileMode
IFMOffer :: InlineFileMode
IFMSent :: InlineFileMode
data RcvFileTransfer
RcvFileTransfer :: FileTransferId -> Maybe XFTPRcvFile -> FileInvitation -> RcvFileStatus -> Maybe InlineFileMode -> ContactName -> Integer -> Bool -> Maybe Int64 -> Maybe CryptoFileArgs -> RcvFileTransfer
[fileId] :: RcvFileTransfer -> FileTransferId
[xftpRcvFile] :: RcvFileTransfer -> Maybe XFTPRcvFile
[fileInvitation] :: RcvFileTransfer -> FileInvitation
[fileStatus] :: RcvFileTransfer -> RcvFileStatus
[rcvFileInline] :: RcvFileTransfer -> Maybe InlineFileMode
[senderDisplayName] :: RcvFileTransfer -> ContactName
[chunkSize] :: RcvFileTransfer -> Integer
[cancelled] :: RcvFileTransfer -> Bool
[grpMemberId] :: RcvFileTransfer -> Maybe Int64
[cryptoArgs] :: RcvFileTransfer -> Maybe CryptoFileArgs
data XFTPRcvFile
XFTPRcvFile :: RcvFileDescr -> Maybe AgentRcvFileId -> Bool -> Bool -> XFTPRcvFile
[rcvFileDescription] :: XFTPRcvFile -> RcvFileDescr
[agentRcvFileId] :: XFTPRcvFile -> Maybe AgentRcvFileId
[agentRcvFileDeleted] :: XFTPRcvFile -> Bool
[userApprovedRelays] :: XFTPRcvFile -> Bool
type RcvFileDescrText = Text
data RcvFileDescr
RcvFileDescr :: Int64 -> RcvFileDescrText -> Int -> Bool -> RcvFileDescr
[fileDescrId] :: RcvFileDescr -> Int64
[fileDescrText] :: RcvFileDescr -> RcvFileDescrText
[fileDescrPartNo] :: RcvFileDescr -> Int
[fileDescrComplete] :: RcvFileDescr -> Bool
data RcvFileStatus
RFSNew :: RcvFileStatus
RFSAccepted :: FilePath -> RcvFileStatus
[filePath] :: RcvFileStatus -> FilePath
RFSConnected :: FilePath -> RcvFileStatus
[filePath] :: RcvFileStatus -> FilePath
RFSComplete :: FilePath -> RcvFileStatus
[filePath] :: RcvFileStatus -> FilePath
RFSCancelled :: Maybe FilePath -> RcvFileStatus
[filePath_] :: RcvFileStatus -> Maybe FilePath
rcvFileComplete :: RcvFileStatus -> Bool
rcvFileCompleteOrCancelled :: RcvFileTransfer -> Bool
liveRcvFileTransferPath :: RcvFileTransfer -> Maybe FilePath
newtype AgentConnId
AgentConnId :: ConnId -> AgentConnId
newtype AgentSndFileId
AgentSndFileId :: SndFileId -> AgentSndFileId
newtype AgentRcvFileId
AgentRcvFileId :: RcvFileId -> AgentRcvFileId
newtype AgentInvId
AgentInvId :: InvitationId -> AgentInvId
data FileTransfer
FTSnd :: FileTransferMeta -> [SndFileTransfer] -> FileTransfer
[fileTransferMeta] :: FileTransfer -> FileTransferMeta
[sndFileTransfers] :: FileTransfer -> [SndFileTransfer]
FTRcv :: RcvFileTransfer -> FileTransfer
[rcvFileTransfer] :: FileTransfer -> RcvFileTransfer
data FileTransferMeta
FileTransferMeta :: FileTransferId -> Maybe XFTPSndFile -> Maybe FileTransferId -> String -> String -> Integer -> Maybe InlineFileMode -> Integer -> Bool -> FileTransferMeta
[fileId] :: FileTransferMeta -> FileTransferId
[xftpSndFile] :: FileTransferMeta -> Maybe XFTPSndFile
[xftpRedirectFor] :: FileTransferMeta -> Maybe FileTransferId
[fileName] :: FileTransferMeta -> String
[filePath] :: FileTransferMeta -> String
[fileSize] :: FileTransferMeta -> Integer
[fileInline] :: FileTransferMeta -> Maybe InlineFileMode
[chunkSize] :: FileTransferMeta -> Integer
[cancelled] :: FileTransferMeta -> Bool
data LocalFileMeta
LocalFileMeta :: FileTransferId -> String -> String -> Integer -> Maybe CryptoFileArgs -> LocalFileMeta
[fileId] :: LocalFileMeta -> FileTransferId
[fileName] :: LocalFileMeta -> String
[filePath] :: LocalFileMeta -> String
[fileSize] :: LocalFileMeta -> Integer
[fileCryptoArgs] :: LocalFileMeta -> Maybe CryptoFileArgs
data XFTPSndFile
XFTPSndFile :: AgentSndFileId -> Maybe Text -> Bool -> Maybe CryptoFileArgs -> XFTPSndFile
[agentSndFileId] :: XFTPSndFile -> AgentSndFileId
[privateSndFileDescr] :: XFTPSndFile -> Maybe Text
[agentSndFileDeleted] :: XFTPSndFile -> Bool
[cryptoArgs] :: XFTPSndFile -> Maybe CryptoFileArgs
fileTransferCancelled :: FileTransfer -> Bool
data FileStatus
FSNew :: FileStatus
FSAccepted :: FileStatus
FSConnected :: FileStatus
FSComplete :: FileStatus
FSCancelled :: FileStatus
data RcvChunkStatus
RcvChunkOk :: RcvChunkStatus
RcvChunkFinal :: RcvChunkStatus
RcvChunkDuplicate :: RcvChunkStatus
RcvChunkError :: RcvChunkStatus
type ConnReqInvitation = ConnectionRequestUri 'CMInvitation
type ConnReqContact = ConnectionRequestUri 'CMContact
type CreatedLinkInvitation = CreatedConnLink 'CMInvitation
type CreatedLinkContact = CreatedConnLink 'CMContact
type ConnLinkContact = ConnectionLink 'CMContact
type ShortLinkInvitation = ConnShortLink 'CMInvitation
type ShortLinkContact = ConnShortLink 'CMContact
data Connection
Connection :: Int64 -> AgentConnId -> VersionChat -> VersionRangeChat -> Int -> Maybe Int64 -> Maybe Int64 -> Bool -> Maybe GroupLinkId -> Maybe XContactId -> Maybe Int64 -> ConnType -> ConnStatus -> Bool -> Text -> Maybe Int64 -> Maybe SecurityCode -> PQSupport -> PQEncryption -> Maybe PQEncryption -> Maybe PQEncryption -> Int -> Int -> UTCTime -> Connection
[connId] :: Connection -> Int64
[agentConnId] :: Connection -> AgentConnId
[connChatVersion] :: Connection -> VersionChat
[peerChatVRange] :: Connection -> VersionRangeChat
[connLevel] :: Connection -> Int
[viaContact] :: Connection -> Maybe Int64
[viaUserContactLink] :: Connection -> Maybe Int64
[viaGroupLink] :: Connection -> Bool
[groupLinkId] :: Connection -> Maybe GroupLinkId
[xContactId] :: Connection -> Maybe XContactId
[customUserProfileId] :: Connection -> Maybe Int64
[connType] :: Connection -> ConnType
[connStatus] :: Connection -> ConnStatus
[contactConnInitiated] :: Connection -> Bool
[localAlias] :: Connection -> Text
[entityId] :: Connection -> Maybe Int64
[connectionCode] :: Connection -> Maybe SecurityCode
[pqSupport] :: Connection -> PQSupport
[pqEncryption] :: Connection -> PQEncryption
[pqSndEnabled] :: Connection -> Maybe PQEncryption
[pqRcvEnabled] :: Connection -> Maybe PQEncryption
[authErrCounter] :: Connection -> Int
[quotaErrCounter] :: Connection -> Int
[createdAt] :: Connection -> UTCTime
dbConnId :: Connection -> Int64
connReady :: Connection -> Bool
authErrDisableCount :: Int
connDisabled :: Connection -> Bool
quotaErrInactiveCount :: Int
quotaErrSetOnMERR :: Int
connInactive :: Connection -> Bool
data SecurityCode
SecurityCode :: Text -> UTCTime -> SecurityCode
[securityCode] :: SecurityCode -> Text
[verifiedAt] :: SecurityCode -> UTCTime
verificationCode :: ByteString -> Text
sameVerificationCode :: Text -> Text -> Bool
aConnId :: Connection -> ConnId
connIncognito :: Connection -> Bool
connPQEnabled :: Connection -> PQEncryption
data PendingContactConnection
PendingContactConnection :: Int64 -> AgentConnId -> ConnStatus -> Bool -> Maybe Int64 -> Maybe GroupLinkId -> Maybe Int64 -> Maybe CreatedLinkInvitation -> Text -> UTCTime -> UTCTime -> PendingContactConnection
[pccConnId] :: PendingContactConnection -> Int64
[pccAgentConnId] :: PendingContactConnection -> AgentConnId
[pccConnStatus] :: PendingContactConnection -> ConnStatus
[viaContactUri] :: PendingContactConnection -> Bool
[viaUserContactLink] :: PendingContactConnection -> Maybe Int64
[groupLinkId] :: PendingContactConnection -> Maybe GroupLinkId
[customUserProfileId] :: PendingContactConnection -> Maybe Int64
[connLinkInv] :: PendingContactConnection -> Maybe CreatedLinkInvitation
[localAlias] :: PendingContactConnection -> Text
[createdAt] :: PendingContactConnection -> UTCTime
[updatedAt] :: PendingContactConnection -> UTCTime
mkPendingContactConnection :: Connection -> Maybe CreatedLinkInvitation -> PendingContactConnection
aConnId' :: PendingContactConnection -> ConnId
data ConnStatus

-- | connection is created by initiating party with agent NEW command
--   (createConnection)
ConnNew :: ConnStatus

-- | connection is prepared, to avoid changing keys on invitation links
--   when retrying.
ConnPrepared :: ConnStatus

-- | connection is joined by joining party with agent JOIN command
--   (joinConnection)
ConnJoined :: ConnStatus

-- | initiating party received CONF notification (to be renamed to REQ)
ConnRequested :: ConnStatus

-- | initiating party accepted connection with agent LET command (to be
--   renamed to ACPT) (allowConnection)
ConnAccepted :: ConnStatus

-- | connection can be sent messages to (after joining party received INFO
--   notification, or after securing snd queue on join)
ConnSndReady :: ConnStatus

-- | connection is ready for both parties to send and receive messages
ConnReady :: ConnStatus

-- | connection deleted
ConnDeleted :: ConnStatus
data ConnType
ConnContact :: ConnType
ConnMember :: ConnType
ConnUserContact :: ConnType
type CommandId = Int64
aCorrId :: CommandId -> ACorrId
commandId :: ACorrId -> String
data CommandStatus
CSCreated :: CommandStatus
CSCompleted :: CommandStatus
CSError :: CommandStatus
data CommandFunction
CFCreateConnGrpMemInv :: CommandFunction
CFCreateConnGrpInv :: CommandFunction
CFCreateConnFileInvDirect :: CommandFunction
CFCreateConnFileInvGroup :: CommandFunction
CFJoinConn :: CommandFunction
CFAllowConn :: CommandFunction
CFAcceptContact :: CommandFunction
CFAckMessage :: CommandFunction
CFDeleteConn :: CommandFunction
commandExpectedResponse :: CommandFunction -> AEvtTag
data CommandData
CommandData :: CommandId -> Maybe Int64 -> CommandFunction -> CommandStatus -> CommandData
[cmdId] :: CommandData -> CommandId
[cmdConnId] :: CommandData -> Maybe Int64
[cmdFunction] :: CommandData -> CommandFunction
[cmdStatus] :: CommandData -> CommandStatus
data ChatTag
ChatTag :: Int64 -> Text -> Maybe Text -> ChatTag
[chatTagId] :: ChatTag -> Int64
[chatTagText] :: ChatTag -> Text
[chatTagEmoji] :: ChatTag -> Maybe Text
data XGrpMemIntroCont
XGrpMemIntroCont :: GroupId -> GroupMemberId -> MemberId -> ConnReqInvitation -> XGrpMemIntroCont
[groupId] :: XGrpMemIntroCont -> GroupId
[groupMemberId] :: XGrpMemIntroCont -> GroupMemberId
[memberId] :: XGrpMemIntroCont -> MemberId
[groupConnReq] :: XGrpMemIntroCont -> ConnReqInvitation

-- | Entity for local chats
data NoteFolder
NoteFolder :: NoteFolderId -> UserId -> UTCTime -> UTCTime -> UTCTime -> Bool -> Bool -> NoteFolder
[noteFolderId] :: NoteFolder -> NoteFolderId
[userId] :: NoteFolder -> UserId
[createdAt] :: NoteFolder -> UTCTime
[updatedAt] :: NoteFolder -> UTCTime
[chatTs] :: NoteFolder -> UTCTime
[favorite] :: NoteFolder -> Bool
[unread] :: NoteFolder -> Bool
type NoteFolderId = Int64
data ChatVersion
type VersionChat = Version ChatVersion
type VersionRangeChat = VersionRange ChatVersion
pattern VersionChat :: Word16 -> VersionChat
newtype ChatVersionRange
ChatVersionRange :: VersionRangeChat -> ChatVersionRange
[fromChatVRange] :: ChatVersionRange -> VersionRangeChat
peerConnChatVersion :: VersionRangeChat -> VersionRangeChat -> VersionChat
initialChatVersion :: VersionChat
chatInitialVRange :: VersionRangeChat
newtype BoolDef
BoolDef :: Bool -> BoolDef
[isTrue] :: BoolDef -> Bool
instance GHC.Classes.Eq Simplex.Chat.Types.AgentConnId
instance GHC.Classes.Eq Simplex.Chat.Types.AgentInvId
instance GHC.Classes.Eq Simplex.Chat.Types.AgentRcvFileId
instance GHC.Classes.Eq Simplex.Chat.Types.AgentSndFileId
instance GHC.Classes.Eq Simplex.Chat.Types.AgentUserId
instance GHC.Classes.Eq Simplex.Chat.Types.B64UrlByteString
instance GHC.Classes.Eq Simplex.Chat.Types.BoolDef
instance GHC.Classes.Eq Simplex.Chat.Types.BusinessChatInfo
instance GHC.Classes.Eq Simplex.Chat.Types.BusinessChatType
instance GHC.Classes.Eq Simplex.Chat.Types.ChatPeerType
instance GHC.Classes.Eq Simplex.Chat.Types.ChatSettings
instance GHC.Classes.Eq Simplex.Chat.Types.ChatVersionRange
instance GHC.Classes.Eq Simplex.Chat.Types.CommandFunction
instance GHC.Classes.Eq Simplex.Chat.Types.ConnReqUriHash
instance GHC.Classes.Eq Simplex.Chat.Types.ConnStatus
instance GHC.Classes.Eq Simplex.Chat.Types.ConnType
instance GHC.Classes.Eq Simplex.Chat.Types.Connection
instance GHC.Classes.Eq Simplex.Chat.Types.Contact
instance GHC.Classes.Eq Simplex.Chat.Types.ContactRef
instance GHC.Classes.Eq Simplex.Chat.Types.ContactStatus
instance GHC.Classes.Eq Simplex.Chat.Types.CustomData
instance GHC.Classes.Eq Simplex.Chat.Types.FileDescr
instance GHC.Classes.Eq Simplex.Chat.Types.FileInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.FileStatus
instance GHC.Classes.Eq Simplex.Chat.Types.FileTransferMeta
instance GHC.Classes.Eq Simplex.Chat.Types.Group
instance GHC.Classes.Eq Simplex.Chat.Types.GroupDirectInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.GroupInfo
instance GHC.Classes.Eq Simplex.Chat.Types.GroupInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.GroupLinkId
instance GHC.Classes.Eq Simplex.Chat.Types.GroupLinkInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.GroupLinkRejection
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMember
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMemberAdmission
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMemberCategory
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMemberRef
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMemberSettings
instance GHC.Classes.Eq Simplex.Chat.Types.GroupMemberStatus
instance GHC.Classes.Eq Simplex.Chat.Types.GroupProfile
instance GHC.Classes.Eq Simplex.Chat.Types.GroupRejectionReason
instance GHC.Classes.Eq Simplex.Chat.Types.GroupSummary
instance GHC.Classes.Eq Simplex.Chat.Types.GroupSupportChat
instance GHC.Classes.Eq Simplex.Chat.Types.ImageData
instance GHC.Classes.Eq Simplex.Chat.Types.InlineFileMode
instance GHC.Classes.Eq Simplex.Chat.Types.IntroInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.InvitedBy
instance GHC.Classes.Eq Simplex.Chat.Types.LocalFileMeta
instance GHC.Classes.Eq Simplex.Chat.Types.LocalProfile
instance GHC.Classes.Eq Simplex.Chat.Types.MemberCriteria
instance GHC.Classes.Eq Simplex.Chat.Types.MemberId
instance GHC.Classes.Eq Simplex.Chat.Types.MemberIdRole
instance GHC.Classes.Eq Simplex.Chat.Types.MemberInfo
instance GHC.Classes.Eq Simplex.Chat.Types.MemberRestrictionStatus
instance GHC.Classes.Eq Simplex.Chat.Types.MemberRestrictions
instance GHC.Classes.Eq Simplex.Chat.Types.MsgFilter
instance GHC.Classes.Eq Simplex.Chat.Types.NoteFolder
instance GHC.Classes.Eq Simplex.Chat.Types.PendingContactConnection
instance GHC.Classes.Eq Simplex.Chat.Types.PreparedContact
instance GHC.Classes.Eq Simplex.Chat.Types.PreparedGroup
instance GHC.Classes.Eq Simplex.Chat.Types.Probe
instance GHC.Classes.Eq Simplex.Chat.Types.ProbeHash
instance GHC.Classes.Eq Simplex.Chat.Types.Profile
instance GHC.Classes.Eq Simplex.Chat.Types.RcvChunkStatus
instance GHC.Classes.Eq Simplex.Chat.Types.RcvFileDescr
instance GHC.Classes.Eq Simplex.Chat.Types.RcvFileStatus
instance GHC.Classes.Eq Simplex.Chat.Types.RcvFileTransfer
instance GHC.Classes.Eq Simplex.Chat.Types.ReceivedGroupInvitation
instance GHC.Classes.Eq Simplex.Chat.Types.SecurityCode
instance GHC.Classes.Eq Simplex.Chat.Types.SharedMsgId
instance GHC.Classes.Eq Simplex.Chat.Types.SndFileTransfer
instance GHC.Classes.Eq Simplex.Chat.Types.UserContact
instance GHC.Classes.Eq Simplex.Chat.Types.UserContactRequest
instance GHC.Classes.Eq Simplex.Chat.Types.UserPwdHash
instance GHC.Classes.Eq Simplex.Chat.Types.XContactId
instance GHC.Classes.Eq Simplex.Chat.Types.XFTPRcvFile
instance GHC.Classes.Eq Simplex.Chat.Types.XFTPSndFile
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.AgentConnId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.AgentInvId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.AgentRcvFileId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.AgentSndFileId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.AgentUserId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.B64UrlByteString
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.BusinessChatType
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ChatPeerType
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.CommandFunction
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.CommandStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ConnReqUriHash
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ConnStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ConnType
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ContactStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.CustomData
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.FileStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.GroupLinkId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.GroupMemberAdmission
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.GroupMemberCategory
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.GroupMemberStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.GroupRejectionReason
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.ImageData
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.InlineFileMode
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.MemberId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.MemberRestrictionStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.MsgFilter
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.SharedMsgId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Types.XContactId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.AgentConnId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.AgentInvId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.AgentRcvFileId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.AgentSndFileId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.AgentUserId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.B64UrlByteString
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.BoolDef
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.BusinessChatInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.BusinessChatType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.CReqClientData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ChatPeerType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ChatSettings
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ChatTag
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ChatVersionRange
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ConnReqUriHash
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ConnStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ConnType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Connection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Contact
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ContactRef
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ContactStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.CustomData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.FileDescr
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.FileInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.FileStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.FileTransfer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.FileTransferMeta
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Group
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupDirectInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupLink
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupLinkId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupLinkInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupLinkRejection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMember
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMemberAdmission
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMemberCategory
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMemberRef
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMemberSettings
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupMemberStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupProfile
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupRejectionReason
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.GroupSupportChat
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ImageData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.InlineFileMode
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.IntroInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.InvitedBy
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.LocalFileMeta
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.LocalProfile
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberCriteria
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberIdRole
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberRestrictionStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MemberRestrictions
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.MsgFilter
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.NewUser
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.NoteFolder
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.PendingContactConnection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.PreparedContact
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.PreparedGroup
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Probe
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.ProbeHash
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.Profile
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.RcvFileDescr
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.RcvFileStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.RcvFileTransfer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.SecurityCode
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.SharedMsgId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.SndFileTransfer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.User
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UserContact
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UserContactRequest
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UserInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.UserPwdHash
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.XContactId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.XFTPRcvFile
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Types.XFTPSndFile
instance Simplex.Chat.Types.IsContact Simplex.Chat.Types.Contact
instance Simplex.Chat.Types.IsContact Simplex.Chat.Types.User
instance GHC.Classes.Ord Simplex.Chat.Types.AgentConnId
instance GHC.Classes.Ord Simplex.Chat.Types.ContactStatus
instance GHC.Classes.Ord Simplex.Chat.Types.FileStatus
instance GHC.Classes.Ord Simplex.Chat.Types.GroupMemberStatus
instance GHC.Classes.Ord Simplex.Chat.Types.MemberId
instance GHC.Read.Read Simplex.Chat.Types.ConnStatus
instance GHC.Show.Show Simplex.Chat.Types.AgentConnId
instance GHC.Show.Show Simplex.Chat.Types.AgentInvId
instance GHC.Show.Show Simplex.Chat.Types.AgentRcvFileId
instance GHC.Show.Show Simplex.Chat.Types.AgentSndFileId
instance GHC.Show.Show Simplex.Chat.Types.AgentUserId
instance GHC.Show.Show Simplex.Chat.Types.B64UrlByteString
instance GHC.Show.Show Simplex.Chat.Types.BoolDef
instance GHC.Show.Show Simplex.Chat.Types.BusinessChatInfo
instance GHC.Show.Show Simplex.Chat.Types.BusinessChatType
instance GHC.Show.Show Simplex.Chat.Types.ChatPeerType
instance GHC.Show.Show Simplex.Chat.Types.ChatSettings
instance GHC.Show.Show Simplex.Chat.Types.ChatTag
instance GHC.Show.Show Simplex.Chat.Types.ChatVersionRange
instance GHC.Show.Show Simplex.Chat.Types.CommandData
instance GHC.Show.Show Simplex.Chat.Types.CommandFunction
instance GHC.Show.Show Simplex.Chat.Types.CommandStatus
instance GHC.Show.Show Simplex.Chat.Types.ConnReqUriHash
instance GHC.Show.Show Simplex.Chat.Types.ConnStatus
instance GHC.Show.Show Simplex.Chat.Types.ConnType
instance GHC.Show.Show Simplex.Chat.Types.Connection
instance GHC.Show.Show Simplex.Chat.Types.Contact
instance GHC.Show.Show Simplex.Chat.Types.ContactOrMember
instance GHC.Show.Show Simplex.Chat.Types.ContactRef
instance GHC.Show.Show Simplex.Chat.Types.ContactStatus
instance GHC.Show.Show Simplex.Chat.Types.CustomData
instance GHC.Show.Show Simplex.Chat.Types.FileDescr
instance GHC.Show.Show Simplex.Chat.Types.FileInvitation
instance GHC.Show.Show Simplex.Chat.Types.FileStatus
instance GHC.Show.Show Simplex.Chat.Types.FileTransfer
instance GHC.Show.Show Simplex.Chat.Types.FileTransferMeta
instance GHC.Show.Show Simplex.Chat.Types.Group
instance GHC.Show.Show Simplex.Chat.Types.GroupDirectInvitation
instance GHC.Show.Show Simplex.Chat.Types.GroupInfo
instance GHC.Show.Show Simplex.Chat.Types.GroupInvitation
instance GHC.Show.Show Simplex.Chat.Types.GroupLink
instance GHC.Show.Show Simplex.Chat.Types.GroupLinkId
instance GHC.Show.Show Simplex.Chat.Types.GroupLinkInvitation
instance GHC.Show.Show Simplex.Chat.Types.GroupLinkRejection
instance GHC.Show.Show Simplex.Chat.Types.GroupMember
instance GHC.Show.Show Simplex.Chat.Types.GroupMemberAdmission
instance GHC.Show.Show Simplex.Chat.Types.GroupMemberCategory
instance GHC.Show.Show Simplex.Chat.Types.GroupMemberRef
instance GHC.Show.Show Simplex.Chat.Types.GroupMemberSettings
instance GHC.Show.Show Simplex.Chat.Types.GroupMemberStatus
instance GHC.Show.Show Simplex.Chat.Types.GroupProfile
instance GHC.Show.Show Simplex.Chat.Types.GroupRejectionReason
instance GHC.Show.Show Simplex.Chat.Types.GroupSummary
instance GHC.Show.Show Simplex.Chat.Types.GroupSupportChat
instance GHC.Show.Show Simplex.Chat.Types.ImageData
instance GHC.Show.Show Simplex.Chat.Types.InlineFileMode
instance GHC.Show.Show Simplex.Chat.Types.IntroInvitation
instance GHC.Show.Show Simplex.Chat.Types.InvitedBy
instance GHC.Show.Show Simplex.Chat.Types.LocalFileMeta
instance GHC.Show.Show Simplex.Chat.Types.LocalProfile
instance GHC.Show.Show Simplex.Chat.Types.MemberCriteria
instance GHC.Show.Show Simplex.Chat.Types.MemberId
instance GHC.Show.Show Simplex.Chat.Types.MemberIdRole
instance GHC.Show.Show Simplex.Chat.Types.MemberInfo
instance GHC.Show.Show Simplex.Chat.Types.MemberRestrictionStatus
instance GHC.Show.Show Simplex.Chat.Types.MemberRestrictions
instance GHC.Show.Show Simplex.Chat.Types.MsgFilter
instance GHC.Show.Show Simplex.Chat.Types.NewUser
instance GHC.Show.Show Simplex.Chat.Types.NoteFolder
instance GHC.Show.Show Simplex.Chat.Types.PendingContactConnection
instance GHC.Show.Show Simplex.Chat.Types.PreparedContact
instance GHC.Show.Show Simplex.Chat.Types.PreparedGroup
instance GHC.Show.Show Simplex.Chat.Types.Probe
instance GHC.Show.Show Simplex.Chat.Types.ProbeHash
instance GHC.Show.Show Simplex.Chat.Types.Profile
instance GHC.Show.Show Simplex.Chat.Types.RcvChunkStatus
instance GHC.Show.Show Simplex.Chat.Types.RcvFileDescr
instance GHC.Show.Show Simplex.Chat.Types.RcvFileStatus
instance GHC.Show.Show Simplex.Chat.Types.RcvFileTransfer
instance GHC.Show.Show Simplex.Chat.Types.ReceivedGroupInvitation
instance GHC.Show.Show Simplex.Chat.Types.SecurityCode
instance GHC.Show.Show Simplex.Chat.Types.SharedMsgId
instance GHC.Show.Show Simplex.Chat.Types.SndFileTransfer
instance GHC.Show.Show Simplex.Chat.Types.User
instance GHC.Show.Show Simplex.Chat.Types.UserContact
instance GHC.Show.Show Simplex.Chat.Types.UserContactRequest
instance GHC.Show.Show Simplex.Chat.Types.UserInfo
instance GHC.Show.Show Simplex.Chat.Types.UserPwdHash
instance GHC.Show.Show Simplex.Chat.Types.XContactId
instance GHC.Show.Show Simplex.Chat.Types.XFTPRcvFile
instance GHC.Show.Show Simplex.Chat.Types.XFTPSndFile
instance GHC.Show.Show Simplex.Chat.Types.XGrpMemIntroCont
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.AgentConnId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.AgentInvId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.AgentRcvFileId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.AgentSndFileId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.AgentUserId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.B64UrlByteString
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.ConnReqUriHash
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.GroupLinkId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.GroupRejectionReason
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.MemberId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.MemberRestrictionStatus
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.Probe
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.ProbeHash
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.SharedMsgId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Types.XContactId
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.BusinessChatType
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.ChatPeerType
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.CommandFunction
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.CommandStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.ConnStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.ConnType
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.ContactStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.FileStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.GroupMemberCategory
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.GroupMemberStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Types.InlineFileMode
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.AgentConnId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.AgentInvId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.AgentRcvFileId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.AgentSndFileId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.AgentUserId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.B64UrlByteString
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.BusinessChatType
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ChatPeerType
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.CommandFunction
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.CommandStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ConnReqUriHash
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ConnStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ConnType
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ContactStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.CustomData
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.FileStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.GroupLinkId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.GroupMemberAdmission
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.GroupMemberCategory
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.GroupMemberStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.GroupRejectionReason
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.ImageData
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.InlineFileMode
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.MemberId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.MemberRestrictionStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.MsgFilter
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.SharedMsgId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Types.XContactId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.AgentConnId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.AgentInvId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.AgentRcvFileId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.AgentSndFileId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.AgentUserId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.B64UrlByteString
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.BoolDef
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.BusinessChatInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.BusinessChatType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.CReqClientData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ChatPeerType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ChatSettings
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ChatTag
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ChatVersionRange
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ConnReqUriHash
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ConnStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ConnType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Connection
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Contact
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ContactRef
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ContactStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.CustomData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.FileDescr
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.FileInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.FileStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.FileTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.FileTransferMeta
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Group
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupDirectInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupLink
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupLinkId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupLinkInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupLinkRejection
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMember
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMemberAdmission
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMemberCategory
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMemberRef
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMemberSettings
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupMemberStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupProfile
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupRejectionReason
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.GroupSupportChat
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ImageData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.InlineFileMode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.IntroInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.InvitedBy
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.LocalFileMeta
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.LocalProfile
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberCriteria
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberIdRole
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberRestrictionStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MemberRestrictions
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.MsgFilter
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.NewUser
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.NoteFolder
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.PendingContactConnection
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.PreparedContact
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.PreparedGroup
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Probe
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.ProbeHash
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.Profile
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.RcvFileDescr
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.RcvFileStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.RcvFileTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.SecurityCode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.SharedMsgId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.SndFileTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.User
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UserContact
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UserContactRequest
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UserInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.UserPwdHash
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.XContactId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.XFTPRcvFile
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Types.XFTPSndFile
instance Simplex.Messaging.Version.VersionScope Simplex.Chat.Types.ChatVersion

module Simplex.Chat.Stats
data PresentedServersSummary
PresentedServersSummary :: UTCTime -> SMPServersSummary -> XFTPServersSummary -> NtfServersSummary -> SMPServersSummary -> XFTPServersSummary -> NtfServersSummary -> PresentedServersSummary
[statsStartedAt] :: PresentedServersSummary -> UTCTime
[allUsersSMP] :: PresentedServersSummary -> SMPServersSummary
[allUsersXFTP] :: PresentedServersSummary -> XFTPServersSummary
[allUsersNtf] :: PresentedServersSummary -> NtfServersSummary
[currentUserSMP] :: PresentedServersSummary -> SMPServersSummary
[currentUserXFTP] :: PresentedServersSummary -> XFTPServersSummary
[currentUserNtf] :: PresentedServersSummary -> NtfServersSummary
data SMPServersSummary
SMPServersSummary :: SMPTotals -> [SMPServerSummary] -> [SMPServerSummary] -> [SMPServerSummary] -> SMPServersSummary
[smpTotals] :: SMPServersSummary -> SMPTotals
[currentlyUsedSMPServers] :: SMPServersSummary -> [SMPServerSummary]
[previouslyUsedSMPServers] :: SMPServersSummary -> [SMPServerSummary]
[onlyProxiedSMPServers] :: SMPServersSummary -> [SMPServerSummary]
data SMPTotals
SMPTotals :: ServerSessions -> SMPServerSubs -> AgentSMPServerStatsData -> SMPTotals
[sessions] :: SMPTotals -> ServerSessions
[subs] :: SMPTotals -> SMPServerSubs
[stats] :: SMPTotals -> AgentSMPServerStatsData
data SMPServerSummary
SMPServerSummary :: SMPServer -> Maybe Bool -> Maybe ServerSessions -> Maybe SMPServerSubs -> Maybe AgentSMPServerStatsData -> SMPServerSummary
[smpServer] :: SMPServerSummary -> SMPServer
[known] :: SMPServerSummary -> Maybe Bool
[sessions] :: SMPServerSummary -> Maybe ServerSessions
[subs] :: SMPServerSummary -> Maybe SMPServerSubs
[stats] :: SMPServerSummary -> Maybe AgentSMPServerStatsData
data XFTPServersSummary
XFTPServersSummary :: XFTPTotals -> [XFTPServerSummary] -> [XFTPServerSummary] -> XFTPServersSummary
[xftpTotals] :: XFTPServersSummary -> XFTPTotals
[currentlyUsedXFTPServers] :: XFTPServersSummary -> [XFTPServerSummary]
[previouslyUsedXFTPServers] :: XFTPServersSummary -> [XFTPServerSummary]
data XFTPTotals
XFTPTotals :: ServerSessions -> AgentXFTPServerStatsData -> XFTPTotals
[sessions] :: XFTPTotals -> ServerSessions
[stats] :: XFTPTotals -> AgentXFTPServerStatsData
data XFTPServerSummary
XFTPServerSummary :: XFTPServer -> Maybe Bool -> Maybe ServerSessions -> Maybe AgentXFTPServerStatsData -> Bool -> Bool -> Bool -> XFTPServerSummary
[xftpServer] :: XFTPServerSummary -> XFTPServer
[known] :: XFTPServerSummary -> Maybe Bool
[sessions] :: XFTPServerSummary -> Maybe ServerSessions
[stats] :: XFTPServerSummary -> Maybe AgentXFTPServerStatsData
[rcvInProgress] :: XFTPServerSummary -> Bool
[sndInProgress] :: XFTPServerSummary -> Bool
[delInProgress] :: XFTPServerSummary -> Bool
data NtfServersSummary
NtfServersSummary :: NtfTotals -> [NtfServerSummary] -> [NtfServerSummary] -> NtfServersSummary
[ntfTotals] :: NtfServersSummary -> NtfTotals
[currentlyUsedNtfServers] :: NtfServersSummary -> [NtfServerSummary]
[previouslyUsedNtfServers] :: NtfServersSummary -> [NtfServerSummary]
data NtfTotals
NtfTotals :: ServerSessions -> AgentNtfServerStatsData -> NtfTotals
[sessions] :: NtfTotals -> ServerSessions
[stats] :: NtfTotals -> AgentNtfServerStatsData
data NtfServerSummary
NtfServerSummary :: NtfServer -> Maybe Bool -> Maybe ServerSessions -> Maybe AgentNtfServerStatsData -> NtfServerSummary
[ntfServer] :: NtfServerSummary -> NtfServer
[known] :: NtfServerSummary -> Maybe Bool
[sessions] :: NtfServerSummary -> Maybe ServerSessions
[stats] :: NtfServerSummary -> Maybe AgentNtfServerStatsData
toPresentedServersSummary :: AgentServersSummary -> [User] -> User -> [SMPServer] -> [XFTPServer] -> [NtfServer] -> PresentedServersSummary
countUserInAllStats :: AgentUserId -> User -> [User] -> Bool
addSMPSubs :: SMPServerSubs -> SMPServerSubs -> SMPServerSubs
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.NtfServerSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.NtfServersSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.NtfTotals
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.PresentedServersSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.SMPServerSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.SMPServersSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.SMPTotals
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.XFTPServerSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.XFTPServersSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Stats.XFTPTotals
instance GHC.Show.Show Simplex.Chat.Stats.NtfServerSummary
instance GHC.Show.Show Simplex.Chat.Stats.NtfServersSummary
instance GHC.Show.Show Simplex.Chat.Stats.NtfTotals
instance GHC.Show.Show Simplex.Chat.Stats.PresentedServersSummary
instance GHC.Show.Show Simplex.Chat.Stats.SMPServerSummary
instance GHC.Show.Show Simplex.Chat.Stats.SMPServersSummary
instance GHC.Show.Show Simplex.Chat.Stats.SMPTotals
instance GHC.Show.Show Simplex.Chat.Stats.XFTPServerSummary
instance GHC.Show.Show Simplex.Chat.Stats.XFTPServersSummary
instance GHC.Show.Show Simplex.Chat.Stats.XFTPTotals
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.NtfServerSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.NtfServersSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.NtfTotals
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.PresentedServersSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.SMPServerSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.SMPServersSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.SMPTotals
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.XFTPServerSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.XFTPServersSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Stats.XFTPTotals

module Simplex.Chat.Remote.Types
data RemoteHostClient
RemoteHostClient :: PlatformEncoding -> Text -> HTTP2Client -> RemoteCrypto -> Bool -> FilePath -> RemoteHostClient
[hostEncoding] :: RemoteHostClient -> PlatformEncoding
[hostDeviceName] :: RemoteHostClient -> Text
[httpClient] :: RemoteHostClient -> HTTP2Client
[encryption] :: RemoteHostClient -> RemoteCrypto
[encryptHostFiles] :: RemoteHostClient -> Bool
[storePath] :: RemoteHostClient -> FilePath
data RemoteCrypto
RemoteCrypto :: ByteString -> TVar Word32 -> TVar Word32 -> TSbChainKeys -> TMap Word32 (SbKeyNonce, SbKeyNonce) -> RemoteSignatures -> RemoteCrypto
[sessionCode] :: RemoteCrypto -> ByteString
[sndCounter] :: RemoteCrypto -> TVar Word32
[rcvCounter] :: RemoteCrypto -> TVar Word32
[chainKeys] :: RemoteCrypto -> TSbChainKeys
[skippedKeys] :: RemoteCrypto -> TMap Word32 (SbKeyNonce, SbKeyNonce)
[signatures] :: RemoteCrypto -> RemoteSignatures
getRemoteSndKeys :: RemoteCrypto -> STM (Word32, SbKeyNonce, SbKeyNonce)
getRemoteRcvKeys :: RemoteCrypto -> Word32 -> STM (Either RemoteProtocolError (SbKeyNonce, SbKeyNonce))
data RemoteSignatures
RSSign :: PrivateKeyEd25519 -> PrivateKeyEd25519 -> RemoteSignatures
[idPrivKey] :: RemoteSignatures -> PrivateKeyEd25519
[sessPrivKey] :: RemoteSignatures -> PrivateKeyEd25519
RSVerify :: PublicKeyEd25519 -> PublicKeyEd25519 -> RemoteSignatures
[idPubKey] :: RemoteSignatures -> PublicKeyEd25519
[sessPubKey] :: RemoteSignatures -> PublicKeyEd25519
type SessionSeq = Int
data RHPendingSession
RHPendingSession :: RHKey -> RCHostClient -> Async () -> Maybe RemoteHostInfo -> RHPendingSession
[rhKey] :: RHPendingSession -> RHKey
[rchClient] :: RHPendingSession -> RCHostClient
[rhsWaitSession] :: RHPendingSession -> Async ()
[remoteHost_] :: RHPendingSession -> Maybe RemoteHostInfo
data RemoteHostSession
RHSessionStarting :: RemoteHostSession
RHSessionConnecting :: Text -> RHPendingSession -> RemoteHostSession
[invitation] :: RemoteHostSession -> Text
[rhPendingSession] :: RemoteHostSession -> RHPendingSession
RHSessionPendingConfirmation :: Text -> TLS 'TServer -> RHPendingSession -> RemoteHostSession
[sessionCode] :: RemoteHostSession -> Text
[tls] :: RemoteHostSession -> TLS 'TServer
[rhPendingSession] :: RemoteHostSession -> RHPendingSession
RHSessionConfirmed :: TLS 'TServer -> RHPendingSession -> RemoteHostSession
[tls] :: RemoteHostSession -> TLS 'TServer
[rhPendingSession] :: RemoteHostSession -> RHPendingSession
RHSessionConnected :: RCHostClient -> TLS 'TServer -> RemoteHostClient -> Async () -> FilePath -> RemoteHostSession
[rchClient] :: RemoteHostSession -> RCHostClient
[tls] :: RemoteHostSession -> TLS 'TServer
[rhClient] :: RemoteHostSession -> RemoteHostClient
[pollAction] :: RemoteHostSession -> Async ()
[storePath] :: RemoteHostSession -> FilePath
data RemoteHostSessionState
RHSStarting :: RemoteHostSessionState
RHSConnecting :: Text -> RemoteHostSessionState
[invitation] :: RemoteHostSessionState -> Text
RHSPendingConfirmation :: Text -> RemoteHostSessionState
[sessionCode] :: RemoteHostSessionState -> Text
RHSConfirmed :: Text -> RemoteHostSessionState
[sessionCode] :: RemoteHostSessionState -> Text
RHSConnected :: Text -> RemoteHostSessionState
[sessionCode] :: RemoteHostSessionState -> Text
rhsSessionState :: RemoteHostSession -> RemoteHostSessionState
tlsSessionCode :: forall (p :: TransportPeer). TLS p -> Text
data RemoteProtocolError

-- | size prefix is malformed
RPEInvalidSize :: RemoteProtocolError

-- | failed to parse RemoteCommand or RemoteResponse
RPEInvalidJSON :: String -> RemoteProtocolError
[invalidJSON] :: RemoteProtocolError -> String
RPEInvalidBody :: String -> RemoteProtocolError
[invalidBody] :: RemoteProtocolError -> String
PRESessionCode :: RemoteProtocolError
RPEIncompatibleEncoding :: RemoteProtocolError
RPEUnexpectedFile :: RemoteProtocolError
RPENoFile :: RemoteProtocolError
RPEFileSize :: RemoteProtocolError
RPEFileDigest :: RemoteProtocolError
RPEManySkippedIds :: Word32 -> RemoteProtocolError
PREEarlierId :: Word32 -> RemoteProtocolError
PREDuplicateId :: RemoteProtocolError

-- | Wrong response received for the command sent
RPEUnexpectedResponse :: Text -> RemoteProtocolError
[response] :: RemoteProtocolError -> Text

-- | A file already exists in the destination position
RPEStoredFileExists :: RemoteProtocolError
PRERemoteControl :: RCErrorType -> RemoteProtocolError
[rcError] :: RemoteProtocolError -> RCErrorType
RPEHTTP2 :: Text -> RemoteProtocolError
[http2Error] :: RemoteProtocolError -> Text
RPEException :: Text -> RemoteProtocolError
[someException] :: RemoteProtocolError -> Text
type RemoteHostId = Int64
data RHKey
RHNew :: RHKey
RHId :: RemoteHostId -> RHKey
[remoteHostId] :: RHKey -> RemoteHostId

-- | Storable/internal remote host data
data RemoteHost
RemoteHost :: RemoteHostId -> Text -> FilePath -> Maybe RCCtrlAddress -> Maybe Word16 -> RCHostPairing -> RemoteHost
[remoteHostId] :: RemoteHost -> RemoteHostId
[hostDeviceName] :: RemoteHost -> Text
[storePath] :: RemoteHost -> FilePath
[bindAddress_] :: RemoteHost -> Maybe RCCtrlAddress
[bindPort_] :: RemoteHost -> Maybe Word16
[hostPairing] :: RemoteHost -> RCHostPairing

-- | UI-accessible remote host information
data RemoteHostInfo
RemoteHostInfo :: RemoteHostId -> Text -> FilePath -> Maybe RCCtrlAddress -> Maybe Word16 -> Maybe RemoteHostSessionState -> RemoteHostInfo
[remoteHostId] :: RemoteHostInfo -> RemoteHostId
[hostDeviceName] :: RemoteHostInfo -> Text
[storePath] :: RemoteHostInfo -> FilePath
[bindAddress_] :: RemoteHostInfo -> Maybe RCCtrlAddress
[bindPort_] :: RemoteHostInfo -> Maybe Word16
[sessionState] :: RemoteHostInfo -> Maybe RemoteHostSessionState
type RemoteCtrlId = Int64

-- | Storable/internal remote controller data
data RemoteCtrl
RemoteCtrl :: RemoteCtrlId -> Text -> RCCtrlPairing -> RemoteCtrl
[remoteCtrlId] :: RemoteCtrl -> RemoteCtrlId
[ctrlDeviceName] :: RemoteCtrl -> Text
[ctrlPairing] :: RemoteCtrl -> RCCtrlPairing
remoteCtrlId' :: RemoteCtrl -> RemoteCtrlId
data PlatformEncoding
PESwift :: PlatformEncoding
PEKotlin :: PlatformEncoding
localEncoding :: PlatformEncoding
data RemoteFile
RemoteFile :: Int64 -> Int64 -> Bool -> CryptoFile -> RemoteFile
[userId] :: RemoteFile -> Int64
[fileId] :: RemoteFile -> Int64
[sent] :: RemoteFile -> Bool
[fileSource] :: RemoteFile -> CryptoFile
data CtrlAppInfo
CtrlAppInfo :: AppVersionRange -> Text -> CtrlAppInfo
[appVersionRange] :: CtrlAppInfo -> AppVersionRange
[deviceName] :: CtrlAppInfo -> Text
data HostAppInfo
HostAppInfo :: AppVersion -> Text -> PlatformEncoding -> Bool -> HostAppInfo
[appVersion] :: HostAppInfo -> AppVersion
[deviceName] :: HostAppInfo -> Text
[encoding] :: HostAppInfo -> PlatformEncoding
[encryptFiles] :: HostAppInfo -> Bool
instance Simplex.Messaging.Util.AnyError Simplex.Chat.Remote.Types.RemoteProtocolError
instance GHC.Classes.Eq Simplex.Chat.Remote.Types.PlatformEncoding
instance GHC.Classes.Eq Simplex.Chat.Remote.Types.RHKey
instance GHC.Exception.Type.Exception Simplex.Chat.Remote.Types.RemoteProtocolError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.CtrlAppInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.HostAppInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.PlatformEncoding
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.RHKey
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.RemoteFile
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.RemoteHostInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.RemoteHostSessionState
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Types.RemoteProtocolError
instance GHC.Classes.Ord Simplex.Chat.Remote.Types.RHKey
instance GHC.Show.Show Simplex.Chat.Remote.Types.CtrlAppInfo
instance GHC.Show.Show Simplex.Chat.Remote.Types.PlatformEncoding
instance GHC.Show.Show Simplex.Chat.Remote.Types.RHKey
instance GHC.Show.Show Simplex.Chat.Remote.Types.RemoteFile
instance GHC.Show.Show Simplex.Chat.Remote.Types.RemoteHostInfo
instance GHC.Show.Show Simplex.Chat.Remote.Types.RemoteHostSessionState
instance GHC.Show.Show Simplex.Chat.Remote.Types.RemoteProtocolError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.CtrlAppInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.HostAppInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.PlatformEncoding
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.RHKey
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.RemoteFile
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.RemoteHostInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.RemoteHostSessionState
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Types.RemoteProtocolError

module Simplex.Chat.Remote.Transport
type EncryptedFile = ((Handle, Word32), SbState)
prepareEncryptedFile :: SbKeyNonce -> (Handle, Word32) -> ExceptT RemoteProtocolError IO EncryptedFile
sendEncryptedFile :: EncryptedFile -> (Builder -> IO ()) -> IO ()
receiveEncryptedFile :: SbKeyNonce -> (Int -> IO ByteString) -> Word32 -> FileDigest -> FilePath -> ExceptT RemoteProtocolError IO ()
getFileInfo :: FilePath -> ExceptT RemoteProtocolError IO (Word32, FileDigest)

module Simplex.Chat.ProfileGenerator
generateRandomProfile :: IO Profile
adjectives :: [Text]
nouns :: [Text]

module Simplex.Chat.Operators
usageConditionsCommit :: Text
previousConditionsCommit :: Text
usageConditionsText :: Text
data OperatorTag
OTSimplex :: OperatorTag
OTFlux :: OperatorTag
data UsageConditions
UsageConditions :: Int64 -> Text -> Maybe UTCTime -> UTCTime -> UsageConditions
[conditionsId] :: UsageConditions -> Int64
[conditionsCommit] :: UsageConditions -> Text
[notifiedAt] :: UsageConditions -> Maybe UTCTime
[createdAt] :: UsageConditions -> UTCTime
data UsageConditionsAction
UCAReview :: [ServerOperator] -> Maybe UTCTime -> Bool -> UsageConditionsAction
[operators] :: UsageConditionsAction -> [ServerOperator]
[deadline] :: UsageConditionsAction -> Maybe UTCTime
[showNotice] :: UsageConditionsAction -> Bool
UCAAccepted :: [ServerOperator] -> UsageConditionsAction
[operators] :: UsageConditionsAction -> [ServerOperator]
data ServerOperatorConditions
ServerOperatorConditions :: [ServerOperator] -> UsageConditions -> Maybe UsageConditionsAction -> ServerOperatorConditions
[serverOperators] :: ServerOperatorConditions -> [ServerOperator]
[currentConditions] :: ServerOperatorConditions -> UsageConditions
[conditionsAction] :: ServerOperatorConditions -> Maybe UsageConditionsAction
usageConditionsAction :: [ServerOperator] -> UsageConditions -> UTCTime -> Maybe UsageConditionsAction
conditionsRequiredOrDeadline :: UTCTime -> UTCTime -> Maybe UTCTime
data ConditionsAcceptance
CAAccepted :: Maybe UTCTime -> Bool -> ConditionsAcceptance
[acceptedAt] :: ConditionsAcceptance -> Maybe UTCTime
[autoAccepted] :: ConditionsAcceptance -> Bool
CARequired :: Maybe UTCTime -> ConditionsAcceptance
[deadline] :: ConditionsAcceptance -> Maybe UTCTime
type ServerOperator = ServerOperator' 'DBStored
type NewServerOperator = ServerOperator' 'DBNew
data AServerOperator
ASO :: SDBStored s -> ServerOperator' s -> AServerOperator
data ServerOperator' (s :: DBStored)
ServerOperator :: DBEntityId' s -> Maybe OperatorTag -> Text -> Maybe Text -> [Text] -> ConditionsAcceptance -> Bool -> ServerRoles -> ServerRoles -> ServerOperator' (s :: DBStored)
[operatorId] :: ServerOperator' (s :: DBStored) -> DBEntityId' s
[operatorTag] :: ServerOperator' (s :: DBStored) -> Maybe OperatorTag
[tradeName] :: ServerOperator' (s :: DBStored) -> Text
[legalName] :: ServerOperator' (s :: DBStored) -> Maybe Text
[serverDomains] :: ServerOperator' (s :: DBStored) -> [Text]
[conditionsAcceptance] :: ServerOperator' (s :: DBStored) -> ConditionsAcceptance
[enabled] :: ServerOperator' (s :: DBStored) -> Bool
[smpRoles] :: ServerOperator' (s :: DBStored) -> ServerRoles
[xftpRoles] :: ServerOperator' (s :: DBStored) -> ServerRoles
data ServerOperatorRoles
ServerOperatorRoles :: Int64 -> Bool -> ServerRoles -> ServerRoles -> ServerOperatorRoles
[operatorId'] :: ServerOperatorRoles -> Int64
[enabled'] :: ServerOperatorRoles -> Bool
[smpRoles'] :: ServerOperatorRoles -> ServerRoles
[xftpRoles'] :: ServerOperatorRoles -> ServerRoles
operatorRoles :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> ServerOperator -> ServerRoles
conditionsAccepted :: ServerOperator -> Bool
data UserOperatorServers
UserOperatorServers :: Maybe ServerOperator -> [UserServer 'PSMP] -> [UserServer 'PXFTP] -> UserOperatorServers
[operator] :: UserOperatorServers -> Maybe ServerOperator
[smpServers] :: UserOperatorServers -> [UserServer 'PSMP]
[xftpServers] :: UserOperatorServers -> [UserServer 'PXFTP]
data UpdatedUserOperatorServers
UpdatedUserOperatorServers :: Maybe ServerOperator -> [AUserServer 'PSMP] -> [AUserServer 'PXFTP] -> UpdatedUserOperatorServers
[operator] :: UpdatedUserOperatorServers -> Maybe ServerOperator
[smpServers] :: UpdatedUserOperatorServers -> [AUserServer 'PSMP]
[xftpServers] :: UpdatedUserOperatorServers -> [AUserServer 'PXFTP]
data ValidatedProtoServer (p :: ProtocolType)
ValidatedProtoServer :: Either Text (ProtoServerWithAuth p) -> ValidatedProtoServer (p :: ProtocolType)
[unVPS] :: ValidatedProtoServer (p :: ProtocolType) -> Either Text (ProtoServerWithAuth p)
class UserServersClass u where {
    type AServer u = (s :: ProtocolType -> Type) | s -> u;
}
operator' :: UserServersClass u => u -> Maybe ServerOperator
aUserServer' :: forall (p :: ProtocolType). UserServersClass u => AServer u p -> AUserServer p
servers' :: forall (p :: ProtocolType). (UserServersClass u, UserProtocol p) => SProtocolType p -> u -> [AServer u p]
type UserServer (p :: ProtocolType) = UserServer' 'DBStored p
type NewUserServer (p :: ProtocolType) = UserServer' 'DBNew p
data AUserServer (p :: ProtocolType)
AUS :: SDBStored s -> UserServer' s p -> AUserServer (p :: ProtocolType)
data UserServer' (s :: DBStored) (p :: ProtocolType)
UserServer :: DBEntityId' s -> ProtoServerWithAuth p -> Bool -> Maybe Bool -> Bool -> Bool -> UserServer' (s :: DBStored) (p :: ProtocolType)
[serverId] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> DBEntityId' s
[server] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> ProtoServerWithAuth p
[preset] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> Bool
[tested] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> Maybe Bool
[enabled] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> Bool
[deleted] :: UserServer' (s :: DBStored) (p :: ProtocolType) -> Bool
presetServerAddress :: forall (s :: DBStored) (p :: ProtocolType). UserServer' s p -> ProtocolServer p
data PresetOperator
PresetOperator :: Maybe NewServerOperator -> [NewUserServer 'PSMP] -> Int -> [NewUserServer 'PXFTP] -> Int -> PresetOperator
[operator] :: PresetOperator -> Maybe NewServerOperator
[smp] :: PresetOperator -> [NewUserServer 'PSMP]
[useSMP] :: PresetOperator -> Int
[xftp] :: PresetOperator -> [NewUserServer 'PXFTP]
[useXFTP] :: PresetOperator -> Int
pOperator :: PresetOperator -> Maybe NewServerOperator
pServers :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> PresetOperator -> [NewUserServer p]
operatorServersToUse :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> PresetOperator -> Int
presetServer' :: forall (p :: ProtocolType). Bool -> ProtocolServer p -> NewUserServer p
presetServer :: forall (p :: ProtocolType). Bool -> ProtoServerWithAuth p -> NewUserServer p
newUserServer :: forall (p :: ProtocolType). ProtoServerWithAuth p -> NewUserServer p
newUserServer_ :: forall (p :: ProtocolType). Bool -> Bool -> ProtoServerWithAuth p -> NewUserServer p
usageConditionsToAdd :: Bool -> UTCTime -> [UsageConditions] -> (UsageConditions, [UsageConditions])
usageConditionsToAdd' :: Text -> Text -> Bool -> UTCTime -> [UsageConditions] -> (UsageConditions, [UsageConditions])
presetUserServers :: [(Maybe PresetOperator, Maybe ServerOperator)] -> [UpdatedUserOperatorServers]
updatedServerOperators :: NonEmpty PresetOperator -> [ServerOperator] -> [(Maybe PresetOperator, Maybe AServerOperator)]
updatedUserServers :: (Maybe PresetOperator, UserOperatorServers) -> UpdatedUserOperatorServers
srvHost :: forall (s :: DBStored) (p :: ProtocolType). UserServer' s p -> NonEmpty TransportHost
agentServerCfgs :: forall (p :: ProtocolType) (s :: DBStored). UserProtocol p => SProtocolType p -> [(Text, ServerOperator)] -> [UserServer' s p] -> [ServerCfg p]
matchingHost :: Text -> TransportHost -> Bool
operatorDomains :: forall (s :: DBStored). [ServerOperator' s] -> [(Text, ServerOperator' s)]
class Box (b :: Type -> Type)
box :: Box b => a -> b a
unbox :: Box b => b a -> a
groupByOperator :: ([Maybe ServerOperator], [UserServer 'PSMP], [UserServer 'PXFTP]) -> IO [UserOperatorServers]
groupByOperator' :: ([(Maybe PresetOperator, Maybe ServerOperator)], [UserServer 'PSMP], [UserServer 'PXFTP]) -> IO [(Maybe PresetOperator, UserOperatorServers)]
groupByOperator_ :: (Box f, Traversable f) => ([f (Maybe ServerOperator)], [UserServer 'PSMP], [UserServer 'PXFTP]) -> IO [f UserOperatorServers]
data UserServersError
USENoServers :: AProtocolType -> Maybe User -> UserServersError
[protocol] :: UserServersError -> AProtocolType
[user] :: UserServersError -> Maybe User
USEStorageMissing :: AProtocolType -> Maybe User -> UserServersError
[protocol] :: UserServersError -> AProtocolType
[user] :: UserServersError -> Maybe User
USEProxyMissing :: AProtocolType -> Maybe User -> UserServersError
[protocol] :: UserServersError -> AProtocolType
[user] :: UserServersError -> Maybe User
USEDuplicateServer :: AProtocolType -> Text -> TransportHost -> UserServersError
[protocol] :: UserServersError -> AProtocolType
[duplicateServer] :: UserServersError -> Text
[duplicateHost] :: UserServersError -> TransportHost
validateUserServers :: UserServersClass u' => [u'] -> [(User, [UserOperatorServers])] -> [UserServersError]
instance Simplex.Chat.Operators.Box Data.Functor.Identity.Identity
instance Simplex.Chat.Operators.Box ((,) (GHC.Maybe.Maybe a))
instance GHC.Classes.Eq Simplex.Chat.Operators.OperatorTag
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Operators.OperatorTag
instance Simplex.Messaging.Protocol.ProtocolTypeI p => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Operators.AUserServer p)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.ConditionsAcceptance
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.OperatorTag
instance Simplex.Messaging.Agent.Store.Entity.DBStoredI s => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Operators.ServerOperator' s)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.ServerOperatorConditions
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.UpdatedUserOperatorServers
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.UsageConditions
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.UsageConditionsAction
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.UserOperatorServers
instance (Simplex.Messaging.Agent.Store.Entity.DBStoredI s, Simplex.Messaging.Protocol.ProtocolTypeI p) => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Operators.UserServer' s p)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Operators.UserServersError
instance GHC.Classes.Ord Simplex.Chat.Operators.OperatorTag
instance GHC.Show.Show Simplex.Chat.Operators.AServerOperator
instance GHC.Show.Show (Simplex.Chat.Operators.AUserServer p)
instance GHC.Show.Show Simplex.Chat.Operators.ConditionsAcceptance
instance GHC.Show.Show Simplex.Chat.Operators.OperatorTag
instance GHC.Show.Show Simplex.Chat.Operators.PresetOperator
instance GHC.Show.Show (Simplex.Chat.Operators.ServerOperator' s)
instance GHC.Show.Show Simplex.Chat.Operators.ServerOperatorConditions
instance GHC.Show.Show Simplex.Chat.Operators.ServerOperatorRoles
instance GHC.Show.Show Simplex.Chat.Operators.UpdatedUserOperatorServers
instance GHC.Show.Show Simplex.Chat.Operators.UsageConditions
instance GHC.Show.Show Simplex.Chat.Operators.UsageConditionsAction
instance GHC.Show.Show Simplex.Chat.Operators.UserOperatorServers
instance GHC.Show.Show (Simplex.Chat.Operators.UserServer' s p)
instance GHC.Show.Show Simplex.Chat.Operators.UserServersError
instance GHC.Show.Show (Simplex.Chat.Operators.ValidatedProtoServer p)
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Operators.OperatorTag
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Operators.OperatorTag
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.ConditionsAcceptance
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.OperatorTag
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Operators.ServerOperator' s)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.ServerOperatorConditions
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.UsageConditions
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.UsageConditionsAction
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.UserOperatorServers
instance Simplex.Messaging.Protocol.ProtocolTypeI p => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Operators.UserServer' s p)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Operators.UserServersError
instance Simplex.Chat.Operators.UserServersClass Simplex.Chat.Operators.UpdatedUserOperatorServers
instance Simplex.Chat.Operators.UserServersClass Simplex.Chat.Operators.UserOperatorServers

module Simplex.Chat.Operators.Presets
operatorSimpleXChat :: NewServerOperator
operatorFlux :: NewServerOperator
allPresetServers :: NonEmpty SMPServer
simplexChatSMPServers :: [NewUserServer 'PSMP]
enabledSimplexChatSMPServers :: NonEmpty SMPServer
disabledSimplexChatSMPServers :: NonEmpty SMPServer
fluxSMPServers :: [NewUserServer 'PSMP]
fluxSMPServers_ :: NonEmpty SMPServer
fluxXFTPServers :: [NewUserServer 'PXFTP]

module Simplex.Chat.Messages.CIContent.Events
data RcvGroupEvent
RGEMemberAdded :: GroupMemberId -> Profile -> RcvGroupEvent
[groupMemberId] :: RcvGroupEvent -> GroupMemberId
[profile] :: RcvGroupEvent -> Profile
RGEMemberConnected :: RcvGroupEvent
RGEMemberAccepted :: GroupMemberId -> Profile -> RcvGroupEvent
[groupMemberId] :: RcvGroupEvent -> GroupMemberId
[profile] :: RcvGroupEvent -> Profile
RGEUserAccepted :: RcvGroupEvent
RGEMemberLeft :: RcvGroupEvent
RGEMemberRole :: GroupMemberId -> Profile -> GroupMemberRole -> RcvGroupEvent
[groupMemberId] :: RcvGroupEvent -> GroupMemberId
[profile] :: RcvGroupEvent -> Profile
[role] :: RcvGroupEvent -> GroupMemberRole
RGEMemberBlocked :: GroupMemberId -> Profile -> Bool -> RcvGroupEvent
[groupMemberId] :: RcvGroupEvent -> GroupMemberId
[profile] :: RcvGroupEvent -> Profile
[blocked] :: RcvGroupEvent -> Bool
RGEUserRole :: GroupMemberRole -> RcvGroupEvent
[role] :: RcvGroupEvent -> GroupMemberRole
RGEMemberDeleted :: GroupMemberId -> Profile -> RcvGroupEvent
[groupMemberId] :: RcvGroupEvent -> GroupMemberId
[profile] :: RcvGroupEvent -> Profile
RGEUserDeleted :: RcvGroupEvent
RGEGroupDeleted :: RcvGroupEvent
RGEGroupUpdated :: GroupProfile -> RcvGroupEvent
[groupProfile] :: RcvGroupEvent -> GroupProfile
RGEInvitedViaGroupLink :: RcvGroupEvent
RGEMemberCreatedContact :: RcvGroupEvent
RGEMemberProfileUpdated :: Profile -> Profile -> RcvGroupEvent
[fromProfile] :: RcvGroupEvent -> Profile
[toProfile] :: RcvGroupEvent -> Profile
RGENewMemberPendingReview :: RcvGroupEvent
data SndGroupEvent
SGEMemberRole :: GroupMemberId -> Profile -> GroupMemberRole -> SndGroupEvent
[groupMemberId] :: SndGroupEvent -> GroupMemberId
[profile] :: SndGroupEvent -> Profile
[role] :: SndGroupEvent -> GroupMemberRole
SGEMemberBlocked :: GroupMemberId -> Profile -> Bool -> SndGroupEvent
[groupMemberId] :: SndGroupEvent -> GroupMemberId
[profile] :: SndGroupEvent -> Profile
[blocked] :: SndGroupEvent -> Bool
SGEUserRole :: GroupMemberRole -> SndGroupEvent
[role] :: SndGroupEvent -> GroupMemberRole
SGEMemberDeleted :: GroupMemberId -> Profile -> SndGroupEvent
[groupMemberId] :: SndGroupEvent -> GroupMemberId
[profile] :: SndGroupEvent -> Profile
SGEUserLeft :: SndGroupEvent
SGEGroupUpdated :: GroupProfile -> SndGroupEvent
[groupProfile] :: SndGroupEvent -> GroupProfile
SGEMemberAccepted :: GroupMemberId -> Profile -> SndGroupEvent
[groupMemberId] :: SndGroupEvent -> GroupMemberId
[profile] :: SndGroupEvent -> Profile
SGEUserPendingReview :: SndGroupEvent
data RcvConnEvent
RCESwitchQueue :: SwitchPhase -> RcvConnEvent
[phase] :: RcvConnEvent -> SwitchPhase
RCERatchetSync :: RatchetSyncState -> RcvConnEvent
[syncStatus] :: RcvConnEvent -> RatchetSyncState
RCEVerificationCodeReset :: RcvConnEvent
RCEPqEnabled :: PQEncryption -> RcvConnEvent
[enabled] :: RcvConnEvent -> PQEncryption
data SndConnEvent
SCESwitchQueue :: SwitchPhase -> Maybe GroupMemberRef -> SndConnEvent
[phase] :: SndConnEvent -> SwitchPhase
[member] :: SndConnEvent -> Maybe GroupMemberRef
SCERatchetSync :: RatchetSyncState -> Maybe GroupMemberRef -> SndConnEvent
[syncStatus] :: SndConnEvent -> RatchetSyncState
[member] :: SndConnEvent -> Maybe GroupMemberRef
SCEPqEnabled :: PQEncryption -> SndConnEvent
[enabled] :: SndConnEvent -> PQEncryption
data RcvDirectEvent
RDEContactDeleted :: RcvDirectEvent
RDEProfileUpdated :: Profile -> Profile -> RcvDirectEvent
[fromProfile] :: RcvDirectEvent -> Profile
[toProfile] :: RcvDirectEvent -> Profile
RDEGroupInvLinkReceived :: GroupProfile -> RcvDirectEvent
[groupProfile] :: RcvDirectEvent -> GroupProfile
newtype DBRcvGroupEvent
RGE :: RcvGroupEvent -> DBRcvGroupEvent
newtype DBSndGroupEvent
SGE :: SndGroupEvent -> DBSndGroupEvent
newtype DBRcvConnEvent
RCE :: RcvConnEvent -> DBRcvConnEvent
newtype DBSndConnEvent
SCE :: SndConnEvent -> DBSndConnEvent
newtype DBRcvDirectEvent
RDE :: RcvDirectEvent -> DBRcvDirectEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.DBRcvConnEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.DBRcvDirectEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.DBRcvGroupEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.DBSndConnEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.DBSndGroupEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.RcvConnEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.RcvDirectEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.RcvGroupEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.SndConnEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.Events.SndGroupEvent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.Events.RcvConnEvent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.Events.RcvDirectEvent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.Events.RcvGroupEvent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.Events.SndConnEvent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.Events.SndGroupEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.DBRcvConnEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.DBRcvDirectEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.DBRcvGroupEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.DBSndConnEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.DBSndGroupEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.RcvConnEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.RcvDirectEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.RcvGroupEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.SndConnEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.Events.SndGroupEvent

module Simplex.Chat.Markdown
data Markdown
Markdown :: Maybe Format -> Text -> Markdown
(:|:) :: Markdown -> Markdown -> Markdown
data Format
Bold :: Format
Italic :: Format
StrikeThrough :: Format
Snippet :: Format
Secret :: Format
Colored :: FormatColor -> Format
[color] :: Format -> FormatColor
Uri :: Format
HyperLink :: Maybe Text -> Text -> Format
[showText] :: Format -> Maybe Text
[linkUri] :: Format -> Text
SimplexLink :: Maybe Text -> SimplexLinkType -> AConnectionLink -> NonEmpty Text -> Format
[showText] :: Format -> Maybe Text
[linkType] :: Format -> SimplexLinkType
[simplexUri] :: Format -> AConnectionLink
[smpHosts] :: Format -> NonEmpty Text
Command :: Text -> Format
[commandStr] :: Format -> Text
Mention :: Text -> Format
[memberName] :: Format -> Text
Email :: Format
Phone :: Format
Unknown :: Value -> Format
[json] :: Format -> Value
mentionedNames :: MarkdownList -> [Text]
data SimplexLinkType
XLContact :: SimplexLinkType
XLInvitation :: SimplexLinkType
XLGroup :: SimplexLinkType
XLChannel :: SimplexLinkType
XLRelay :: SimplexLinkType
colored :: Color -> Format
markdown :: Format -> Text -> Markdown
newtype FormatColor
FormatColor :: Color -> FormatColor
data FormattedText
FormattedText :: Maybe Format -> Text -> FormattedText
[format] :: FormattedText -> Maybe Format
[text] :: FormattedText -> Text
type MarkdownList = [FormattedText]
data ParsedMarkdown
ParsedMarkdown :: Maybe MarkdownList -> ParsedMarkdown
[formattedText] :: ParsedMarkdown -> Maybe MarkdownList
unmarked :: Text -> Markdown
parseMaybeMarkdownList :: Text -> Maybe MarkdownList
parseMarkdownList :: Text -> MarkdownList
markdownToList :: Markdown -> MarkdownList
parseMarkdown :: Text -> Markdown
isSimplexLink :: Format -> Bool
markdownP :: Parser Markdown
parseUri :: ByteString -> Either Text URI
sanitizeUri :: Bool -> URI -> Maybe URI
markdownText :: FormattedText -> Text
displayNameTextP :: Parser Text
displayNameTextP_ :: Parser (Text, Text)
commandTextP :: Parser (Text, Text)
viewName :: Text -> Text
instance GHC.Classes.Eq Simplex.Chat.Markdown.Format
instance GHC.Classes.Eq Simplex.Chat.Markdown.FormatColor
instance GHC.Classes.Eq Simplex.Chat.Markdown.FormattedText
instance GHC.Classes.Eq Simplex.Chat.Markdown.Markdown
instance GHC.Classes.Eq Simplex.Chat.Markdown.SimplexLinkType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Markdown.Format
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Markdown.FormatColor
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Markdown.FormattedText
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Markdown.SimplexLinkType
instance Data.String.IsString Simplex.Chat.Markdown.FormattedText
instance Data.String.IsString Simplex.Chat.Markdown.Markdown
instance GHC.Base.Monoid Simplex.Chat.Markdown.Markdown
instance GHC.Base.Semigroup Simplex.Chat.Markdown.Markdown
instance GHC.Show.Show Simplex.Chat.Markdown.Format
instance GHC.Show.Show Simplex.Chat.Markdown.FormatColor
instance GHC.Show.Show Simplex.Chat.Markdown.FormattedText
instance GHC.Show.Show Simplex.Chat.Markdown.Markdown
instance GHC.Show.Show Simplex.Chat.Markdown.SimplexLinkType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Markdown.Format
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Markdown.FormatColor
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Markdown.FormattedText
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Markdown.ParsedMarkdown
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Markdown.SimplexLinkType

module Simplex.Chat.Styled
data StyledString
Styled :: [SGR] -> String -> StyledString
(:<>:) :: StyledString -> StyledString -> StyledString
class StyledFormat a
styled :: StyledFormat a => Format -> a -> StyledString
plain :: StyledFormat a => a -> StyledString
styleMarkdown :: Markdown -> StyledString
styleMarkdownList :: MarkdownList -> StyledString
unStyle :: StyledString -> String
sLength :: StyledString -> Int
sShow :: Show a => a -> StyledString
sTake :: Int -> StyledString -> StyledString
instance Data.String.IsString Simplex.Chat.Styled.StyledString
instance GHC.Base.Monoid Simplex.Chat.Styled.StyledString
instance GHC.Base.Semigroup Simplex.Chat.Styled.StyledString
instance GHC.Show.Show Simplex.Chat.Styled.StyledString
instance Simplex.Chat.Styled.StyledFormat Data.ByteString.Internal.Type.ByteString
instance Simplex.Chat.Styled.StyledFormat GHC.Base.String
instance Simplex.Chat.Styled.StyledFormat Data.Text.Internal.Text

module Simplex.Chat.Help
chatWelcome :: User -> [StyledString]
chatHelpInfo :: [StyledString]
filesHelpInfo :: [StyledString]
groupsHelpInfo :: [StyledString]
contactsHelpInfo :: [StyledString]
myAddressHelpInfo :: [StyledString]
incognitoHelpInfo :: [StyledString]
messagesHelpInfo :: [StyledString]
remoteHelpInfo :: [StyledString]
markdownInfo :: [StyledString]
settingsInfo :: [StyledString]
databaseHelpInfo :: [StyledString]

module Simplex.Chat.Call
data Call
Call :: ContactId -> CallId -> Text -> Int64 -> CallState -> UTCTime -> Call
[contactId] :: Call -> ContactId
[callId] :: Call -> CallId
[callUUID] :: Call -> Text
[chatItemId] :: Call -> Int64
[callState] :: Call -> CallState
[callTs] :: Call -> UTCTime
isRcvInvitation :: Call -> Bool
data CallStateTag
CSTCallInvitationSent :: CallStateTag
CSTCallInvitationReceived :: CallStateTag
CSTCallOfferSent :: CallStateTag
CSTCallOfferReceived :: CallStateTag
CSTCallNegotiated :: CallStateTag
callStateTag :: CallState -> CallStateTag
data CallState
CallInvitationSent :: CallType -> Maybe PrivateKeyX25519 -> CallState
[localCallType] :: CallState -> CallType
[localDhPrivKey] :: CallState -> Maybe PrivateKeyX25519
CallInvitationReceived :: CallType -> Maybe PublicKeyX25519 -> Maybe Key -> CallState
[peerCallType] :: CallState -> CallType
[localDhPubKey] :: CallState -> Maybe PublicKeyX25519
[sharedKey] :: CallState -> Maybe Key
CallOfferSent :: CallType -> CallType -> WebRTCSession -> Maybe Key -> CallState
[localCallType] :: CallState -> CallType
[peerCallType] :: CallState -> CallType
[localCallSession] :: CallState -> WebRTCSession
[sharedKey] :: CallState -> Maybe Key
CallOfferReceived :: CallType -> CallType -> WebRTCSession -> Maybe Key -> CallState
[localCallType] :: CallState -> CallType
[peerCallType] :: CallState -> CallType
[peerCallSession] :: CallState -> WebRTCSession
[sharedKey] :: CallState -> Maybe Key
CallNegotiated :: CallType -> CallType -> WebRTCSession -> WebRTCSession -> Maybe Key -> CallState
[localCallType] :: CallState -> CallType
[peerCallType] :: CallState -> CallType
[localCallSession] :: CallState -> WebRTCSession
[peerCallSession] :: CallState -> WebRTCSession
[sharedKey] :: CallState -> Maybe Key
newtype CallId
CallId :: ByteString -> CallId
data RcvCallInvitation
RcvCallInvitation :: User -> Contact -> CallType -> Maybe Key -> Text -> UTCTime -> RcvCallInvitation
[user] :: RcvCallInvitation -> User
[contact] :: RcvCallInvitation -> Contact
[callType] :: RcvCallInvitation -> CallType
[sharedKey] :: RcvCallInvitation -> Maybe Key
[callUUID] :: RcvCallInvitation -> Text
[callTs] :: RcvCallInvitation -> UTCTime
data CallType
CallType :: CallMedia -> CallCapabilities -> CallType
[media] :: CallType -> CallMedia
[capabilities] :: CallType -> CallCapabilities
defaultCallType :: CallType
encryptedCall :: CallType -> Bool

-- | <ul>
--   <li>Types for chat protocol</li>
--   </ul>
data CallInvitation
CallInvitation :: CallType -> Maybe PublicKeyX25519 -> CallInvitation
[callType] :: CallInvitation -> CallType
[callDhPubKey] :: CallInvitation -> Maybe PublicKeyX25519
data CallMedia
CMAudio :: CallMedia
CMVideo :: CallMedia
data CallCapabilities
CallCapabilities :: Bool -> CallCapabilities
[encryption] :: CallCapabilities -> Bool
data CallOffer
CallOffer :: CallType -> WebRTCSession -> Maybe PublicKeyX25519 -> CallOffer
[callType] :: CallOffer -> CallType
[rtcSession] :: CallOffer -> WebRTCSession
[callDhPubKey] :: CallOffer -> Maybe PublicKeyX25519
data WebRTCCallOffer
WebRTCCallOffer :: CallType -> WebRTCSession -> WebRTCCallOffer
[callType] :: WebRTCCallOffer -> CallType
[rtcSession] :: WebRTCCallOffer -> WebRTCSession
data CallAnswer
CallAnswer :: WebRTCSession -> CallAnswer
[rtcSession] :: CallAnswer -> WebRTCSession
data CallExtraInfo
CallExtraInfo :: WebRTCExtraInfo -> CallExtraInfo
[rtcExtraInfo] :: CallExtraInfo -> WebRTCExtraInfo
data WebRTCSession
WebRTCSession :: Text -> Text -> WebRTCSession
[rtcSession] :: WebRTCSession -> Text
[rtcIceCandidates] :: WebRTCSession -> Text
data WebRTCExtraInfo
WebRTCExtraInfo :: Text -> WebRTCExtraInfo
[rtcIceCandidates] :: WebRTCExtraInfo -> Text
data WebRTCCallStatus
WCSConnecting :: WebRTCCallStatus
WCSConnected :: WebRTCCallStatus
WCSDisconnected :: WebRTCCallStatus
WCSFailed :: WebRTCCallStatus
instance GHC.Classes.Eq Simplex.Chat.Call.CallAnswer
instance GHC.Classes.Eq Simplex.Chat.Call.CallCapabilities
instance GHC.Classes.Eq Simplex.Chat.Call.CallExtraInfo
instance GHC.Classes.Eq Simplex.Chat.Call.CallId
instance GHC.Classes.Eq Simplex.Chat.Call.CallInvitation
instance GHC.Classes.Eq Simplex.Chat.Call.CallMedia
instance GHC.Classes.Eq Simplex.Chat.Call.CallOffer
instance GHC.Classes.Eq Simplex.Chat.Call.CallType
instance GHC.Classes.Eq Simplex.Chat.Call.WebRTCCallOffer
instance GHC.Classes.Eq Simplex.Chat.Call.WebRTCExtraInfo
instance GHC.Classes.Eq Simplex.Chat.Call.WebRTCSession
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Call.CallId
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Call.CallState
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallAnswer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallCapabilities
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallExtraInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallMedia
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallOffer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallState
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallStateTag
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.CallType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.RcvCallInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.WebRTCCallOffer
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.WebRTCExtraInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Call.WebRTCSession
instance GHC.Show.Show Simplex.Chat.Call.Call
instance GHC.Show.Show Simplex.Chat.Call.CallAnswer
instance GHC.Show.Show Simplex.Chat.Call.CallCapabilities
instance GHC.Show.Show Simplex.Chat.Call.CallExtraInfo
instance GHC.Show.Show Simplex.Chat.Call.CallId
instance GHC.Show.Show Simplex.Chat.Call.CallInvitation
instance GHC.Show.Show Simplex.Chat.Call.CallMedia
instance GHC.Show.Show Simplex.Chat.Call.CallOffer
instance GHC.Show.Show Simplex.Chat.Call.CallState
instance GHC.Show.Show Simplex.Chat.Call.CallStateTag
instance GHC.Show.Show Simplex.Chat.Call.CallType
instance GHC.Show.Show Simplex.Chat.Call.RcvCallInvitation
instance GHC.Show.Show Simplex.Chat.Call.WebRTCCallOffer
instance GHC.Show.Show Simplex.Chat.Call.WebRTCCallStatus
instance GHC.Show.Show Simplex.Chat.Call.WebRTCExtraInfo
instance GHC.Show.Show Simplex.Chat.Call.WebRTCSession
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Call.CallId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Call.WebRTCCallStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Call.CallId
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Call.CallState
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallAnswer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallCapabilities
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallExtraInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallMedia
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallOffer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallState
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallStateTag
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.CallType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.RcvCallInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.WebRTCCallOffer
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.WebRTCExtraInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Call.WebRTCSession

module Simplex.Chat.Protocol
currentChatVersion :: VersionChat
supportedChatVRange :: VersionRangeChat
groupDirectInvVersion :: VersionChat
groupFastLinkJoinVersion :: VersionChat
groupForwardVersion :: VersionChat
batchSendVersion :: VersionChat
groupHistoryIncludeWelcomeVersion :: VersionChat
memberProfileUpdateVersion :: VersionChat
pqEncryptionCompressionVersion :: VersionChat
batchSend2Version :: VersionChat
businessChatsVersion :: VersionChat
businessChatPrefsVersion :: VersionChat
contentReportsVersion :: VersionChat
groupJoinRejectVersion :: VersionChat
groupKnockingVersion :: VersionChat
shortLinkDataVersion :: VersionChat
agentToChatVersion :: VersionSMPA -> VersionChat
data ConnectionEntity
RcvDirectMsgConnection :: Connection -> Maybe Contact -> ConnectionEntity
[entityConnection] :: ConnectionEntity -> Connection
[contact] :: ConnectionEntity -> Maybe Contact
RcvGroupMsgConnection :: Connection -> GroupInfo -> GroupMember -> ConnectionEntity
[entityConnection] :: ConnectionEntity -> Connection
[groupInfo] :: ConnectionEntity -> GroupInfo
[groupMember] :: ConnectionEntity -> GroupMember
UserContactConnection :: Connection -> UserContact -> ConnectionEntity
[entityConnection] :: ConnectionEntity -> Connection
[userContact] :: ConnectionEntity -> UserContact
connEntityInfo :: ConnectionEntity -> String
updateEntityConnStatus :: ConnectionEntity -> ConnStatus -> ConnectionEntity
data MsgEncoding
Binary :: MsgEncoding
Json :: MsgEncoding
data SMsgEncoding (e :: MsgEncoding)
[SBinary] :: SMsgEncoding 'Binary
[SJson] :: SMsgEncoding 'Json
class MsgEncodingI (e :: MsgEncoding)
encoding :: MsgEncodingI e => SMsgEncoding e
checkEncoding :: forall t (e :: MsgEncoding) (e' :: MsgEncoding). (MsgEncodingI e, MsgEncodingI e') => t e' -> Either String (t e)
data AppMessage (e :: MsgEncoding)
[AMJson] :: AppMessageJson -> AppMessage 'Json
[AMBinary] :: AppMessageBinary -> AppMessage 'Binary
data AppMessageJson
AppMessageJson :: Maybe ChatVersionRange -> Maybe SharedMsgId -> Text -> Object -> AppMessageJson
[v] :: AppMessageJson -> Maybe ChatVersionRange
[msgId] :: AppMessageJson -> Maybe SharedMsgId
[event] :: AppMessageJson -> Text
[params] :: AppMessageJson -> Object
data AppMessageBinary
AppMessageBinary :: Maybe SharedMsgId -> Char -> ByteString -> AppMessageBinary
[msgId] :: AppMessageBinary -> Maybe SharedMsgId
[tag] :: AppMessageBinary -> Char
[body] :: AppMessageBinary -> ByteString
data MsgScope
MSMember :: MemberId -> MsgScope
[memberId] :: MsgScope -> MemberId
data MsgRef
MsgRef :: Maybe SharedMsgId -> UTCTime -> Bool -> Maybe MemberId -> MsgRef
[msgId] :: MsgRef -> Maybe SharedMsgId
[sentAt] :: MsgRef -> UTCTime
[sent] :: MsgRef -> Bool
[memberId] :: MsgRef -> Maybe MemberId
data LinkPreview
LinkPreview :: Text -> Text -> Text -> ImageData -> Maybe LinkContent -> LinkPreview
[uri] :: LinkPreview -> Text
[title] :: LinkPreview -> Text
[description] :: LinkPreview -> Text
[image] :: LinkPreview -> ImageData
[content] :: LinkPreview -> Maybe LinkContent
data LinkContent
LCPage :: LinkContent
LCImage :: LinkContent
LCVideo :: Maybe Int -> LinkContent
[duration] :: LinkContent -> Maybe Int
LCUnknown :: Text -> Object -> LinkContent
[tag] :: LinkContent -> Text
[json] :: LinkContent -> Object
data ReportReason
RRSpam :: ReportReason
RRContent :: ReportReason
RRCommunity :: ReportReason
RRProfile :: ReportReason
RROther :: ReportReason
RRUnknown :: Text -> ReportReason
data ChatMessage (e :: MsgEncoding)
ChatMessage :: VersionRangeChat -> Maybe SharedMsgId -> ChatMsgEvent e -> ChatMessage (e :: MsgEncoding)
[chatVRange] :: ChatMessage (e :: MsgEncoding) -> VersionRangeChat
[msgId] :: ChatMessage (e :: MsgEncoding) -> Maybe SharedMsgId
[chatMsgEvent] :: ChatMessage (e :: MsgEncoding) -> ChatMsgEvent e
data AChatMessage
ACMsg :: SMsgEncoding e -> ChatMessage e -> AChatMessage
type MessageFromChannel = Bool
data ChatMsgEvent (e :: MsgEncoding)
[XMsgNew] :: MsgContainer -> ChatMsgEvent 'Json
[XMsgFileDescr] :: SharedMsgId -> FileDescr -> ChatMsgEvent 'Json
[XMsgUpdate] :: SharedMsgId -> MsgContent -> Map MemberName MsgMention -> Maybe Int -> Maybe Bool -> Maybe MsgScope -> ChatMsgEvent 'Json
[XMsgDel] :: SharedMsgId -> Maybe MemberId -> Maybe MsgScope -> ChatMsgEvent 'Json
[XMsgDeleted] :: ChatMsgEvent 'Json
[XMsgReact] :: SharedMsgId -> Maybe MemberId -> Maybe MsgScope -> MsgReaction -> Bool -> ChatMsgEvent 'Json
[XFile] :: FileInvitation -> ChatMsgEvent 'Json
[XFileAcpt] :: String -> ChatMsgEvent 'Json
[XFileAcptInv] :: SharedMsgId -> Maybe ConnReqInvitation -> String -> ChatMsgEvent 'Json
[XFileCancel] :: SharedMsgId -> ChatMsgEvent 'Json
[XInfo] :: Profile -> ChatMsgEvent 'Json
[XContact] :: Profile -> Maybe XContactId -> Maybe SharedMsgId -> Maybe (SharedMsgId, MsgContent) -> ChatMsgEvent 'Json
[XDirectDel] :: ChatMsgEvent 'Json
[XGrpInv] :: GroupInvitation -> ChatMsgEvent 'Json
[XGrpAcpt] :: MemberId -> ChatMsgEvent 'Json
[XGrpLinkInv] :: GroupLinkInvitation -> ChatMsgEvent 'Json
[XGrpLinkReject] :: GroupLinkRejection -> ChatMsgEvent 'Json
[XGrpLinkMem] :: Profile -> ChatMsgEvent 'Json
[XGrpLinkAcpt] :: GroupAcceptance -> GroupMemberRole -> MemberId -> ChatMsgEvent 'Json
[XGrpMemNew] :: MemberInfo -> Maybe MsgScope -> ChatMsgEvent 'Json
[XGrpMemIntro] :: MemberInfo -> Maybe MemberRestrictions -> ChatMsgEvent 'Json
[XGrpMemInv] :: MemberId -> IntroInvitation -> ChatMsgEvent 'Json
[XGrpMemFwd] :: MemberInfo -> IntroInvitation -> ChatMsgEvent 'Json
[XGrpMemInfo] :: MemberId -> Profile -> ChatMsgEvent 'Json
[XGrpMemRole] :: MemberId -> GroupMemberRole -> ChatMsgEvent 'Json
[XGrpMemRestrict] :: MemberId -> MemberRestrictions -> ChatMsgEvent 'Json
[XGrpMemCon] :: MemberId -> ChatMsgEvent 'Json
[XGrpMemConAll] :: MemberId -> ChatMsgEvent 'Json
[XGrpMemDel] :: MemberId -> Bool -> ChatMsgEvent 'Json
[XGrpLeave] :: ChatMsgEvent 'Json
[XGrpDel] :: ChatMsgEvent 'Json
[XGrpInfo] :: GroupProfile -> ChatMsgEvent 'Json
[XGrpPrefs] :: GroupPreferences -> ChatMsgEvent 'Json
[XGrpDirectInv] :: ConnReqInvitation -> Maybe MsgContent -> Maybe MsgScope -> ChatMsgEvent 'Json
[XGrpMsgForward] :: MemberId -> Maybe ContactName -> ChatMessage 'Json -> UTCTime -> ChatMsgEvent 'Json
[XInfoProbe] :: Probe -> ChatMsgEvent 'Json
[XInfoProbeCheck] :: ProbeHash -> ChatMsgEvent 'Json
[XInfoProbeOk] :: Probe -> ChatMsgEvent 'Json
[XCallInv] :: CallId -> CallInvitation -> ChatMsgEvent 'Json
[XCallOffer] :: CallId -> CallOffer -> ChatMsgEvent 'Json
[XCallAnswer] :: CallId -> CallAnswer -> ChatMsgEvent 'Json
[XCallExtra] :: CallId -> CallExtraInfo -> ChatMsgEvent 'Json
[XCallEnd] :: CallId -> ChatMsgEvent 'Json
[XOk] :: ChatMsgEvent 'Json
[XUnknown] :: Text -> Object -> ChatMsgEvent 'Json
[BFileChunk] :: SharedMsgId -> FileChunk -> ChatMsgEvent 'Binary
data AChatMsgEvent
ACME :: SMsgEncoding e -> ChatMsgEvent e -> AChatMsgEvent
isForwardedGroupMsg :: forall (e :: MsgEncoding). ChatMsgEvent e -> Bool
data MsgReaction
MREmoji :: MREmojiChar -> MsgReaction
[emoji] :: MsgReaction -> MREmojiChar
MRUnknown :: Text -> Object -> MsgReaction
[tag] :: MsgReaction -> Text
[json] :: MsgReaction -> Object
emojiTag :: IsString a => a
knownReaction :: MsgReaction -> Either String MsgReaction
newtype MREmojiChar
MREmojiChar :: Char -> MREmojiChar
mrEmojiChar :: Char -> Either String MREmojiChar
data FileChunk
FileChunk :: Integer -> ByteString -> FileChunk
[chunkNo] :: FileChunk -> Integer
[chunkBytes] :: FileChunk -> ByteString
FileChunkCancel :: FileChunk
newtype InlineFileChunk
IFC :: FileChunk -> InlineFileChunk
[unIFC] :: InlineFileChunk -> FileChunk
data QuotedMsg
QuotedMsg :: MsgRef -> MsgContent -> QuotedMsg
[msgRef] :: QuotedMsg -> MsgRef
[content] :: QuotedMsg -> MsgContent
cmToQuotedMsg :: AChatMsgEvent -> Maybe QuotedMsg
data MsgContentTag
MCText_ :: MsgContentTag
MCLink_ :: MsgContentTag
MCImage_ :: MsgContentTag
MCVideo_ :: MsgContentTag
MCVoice_ :: MsgContentTag
MCFile_ :: MsgContentTag
MCReport_ :: MsgContentTag
MCChat_ :: MsgContentTag
MCUnknown_ :: Text -> MsgContentTag
data MsgContainer
MCSimple :: ExtMsgContent -> MsgContainer
MCQuote :: QuotedMsg -> ExtMsgContent -> MsgContainer
MCComment :: MsgRef -> ExtMsgContent -> MsgContainer
MCForward :: ExtMsgContent -> MsgContainer
mcExtMsgContent :: MsgContainer -> ExtMsgContent
isMCForward :: MsgContainer -> Bool
data MsgContent
MCText :: Text -> MsgContent
[text] :: MsgContent -> Text
MCLink :: Text -> LinkPreview -> MsgContent
[text] :: MsgContent -> Text
[preview] :: MsgContent -> LinkPreview
MCImage :: Text -> ImageData -> MsgContent
[text] :: MsgContent -> Text
[image] :: MsgContent -> ImageData
MCVideo :: Text -> ImageData -> Int -> MsgContent
[text] :: MsgContent -> Text
[image] :: MsgContent -> ImageData
[duration] :: MsgContent -> Int
MCVoice :: Text -> Int -> MsgContent
[text] :: MsgContent -> Text
[duration] :: MsgContent -> Int
MCFile :: Text -> MsgContent
[text] :: MsgContent -> Text
MCReport :: Text -> ReportReason -> MsgContent
[text] :: MsgContent -> Text
[reason] :: MsgContent -> ReportReason
MCChat :: Text -> MsgChatLink -> MsgContent
[text] :: MsgContent -> Text
[chatLink] :: MsgContent -> MsgChatLink
MCUnknown :: Text -> Text -> Object -> MsgContent
[tag] :: MsgContent -> Text
[text] :: MsgContent -> Text
[json] :: MsgContent -> Object
data MsgChatLink
MCLContact :: ShortLinkContact -> Profile -> Bool -> MsgChatLink
[connLink] :: MsgChatLink -> ShortLinkContact
[profile] :: MsgChatLink -> Profile
[business] :: MsgChatLink -> Bool
MCLInvitation :: ShortLinkInvitation -> Profile -> MsgChatLink
[invLink] :: MsgChatLink -> ShortLinkInvitation
[profile] :: MsgChatLink -> Profile
MCLGroup :: ShortLinkContact -> GroupProfile -> MsgChatLink
[connLink] :: MsgChatLink -> ShortLinkContact
[groupProfile] :: MsgChatLink -> GroupProfile
msgContentText :: MsgContent -> Text
durationText :: Int -> Text
msgContentHasText :: MsgContent -> Bool
isVoice :: MsgContent -> Bool
isReport :: MsgContent -> Bool
msgContentTag :: MsgContent -> MsgContentTag
data ExtMsgContent
ExtMsgContent :: MsgContent -> Map MemberName MsgMention -> Maybe FileInvitation -> Maybe Int -> Maybe Bool -> Maybe MsgScope -> ExtMsgContent
[content] :: ExtMsgContent -> MsgContent
[mentions] :: ExtMsgContent -> Map MemberName MsgMention
[file] :: ExtMsgContent -> Maybe FileInvitation
[ttl] :: ExtMsgContent -> Maybe Int
[live] :: ExtMsgContent -> Maybe Bool
[scope] :: ExtMsgContent -> Maybe MsgScope
data MsgMention
MsgMention :: MemberId -> MsgMention
[memberId] :: MsgMention -> MemberId
maxEncodedMsgLength :: Int
maxCompressedMsgLength :: Int
maxEncodedInfoLength :: Int
maxCompressedInfoLength :: Int
data EncodedChatMessage
ECMEncoded :: ByteString -> EncodedChatMessage
ECMLarge :: EncodedChatMessage
encodeChatMessage :: forall (e :: MsgEncoding). MsgEncodingI e => Int -> ChatMessage e -> EncodedChatMessage
parseChatMessages :: ByteString -> [Either String AChatMessage]
compressedBatchMsgBody_ :: MsgBody -> ByteString
markCompressedBatch :: ByteString -> ByteString
parseMsgContainer :: Object -> Parser MsgContainer
extMsgContent :: MsgContent -> Maybe FileInvitation -> ExtMsgContent
justTrue :: Bool -> Maybe Bool
unknownMsgType :: Text
msgContainerJSON :: MsgContainer -> Object
nonEmptyMap :: Map k v -> Maybe (Map k v)
data ACMEventTag
ACMEventTag :: SMsgEncoding e -> CMEventTag e -> ACMEventTag
data CMEventTag (e :: MsgEncoding)
[XMsgNew_] :: CMEventTag 'Json
[XMsgFileDescr_] :: CMEventTag 'Json
[XMsgUpdate_] :: CMEventTag 'Json
[XMsgDel_] :: CMEventTag 'Json
[XMsgDeleted_] :: CMEventTag 'Json
[XMsgReact_] :: CMEventTag 'Json
[XFile_] :: CMEventTag 'Json
[XFileAcpt_] :: CMEventTag 'Json
[XFileAcptInv_] :: CMEventTag 'Json
[XFileCancel_] :: CMEventTag 'Json
[XInfo_] :: CMEventTag 'Json
[XContact_] :: CMEventTag 'Json
[XDirectDel_] :: CMEventTag 'Json
[XGrpInv_] :: CMEventTag 'Json
[XGrpAcpt_] :: CMEventTag 'Json
[XGrpLinkInv_] :: CMEventTag 'Json
[XGrpLinkReject_] :: CMEventTag 'Json
[XGrpLinkMem_] :: CMEventTag 'Json
[XGrpLinkAcpt_] :: CMEventTag 'Json
[XGrpMemNew_] :: CMEventTag 'Json
[XGrpMemIntro_] :: CMEventTag 'Json
[XGrpMemInv_] :: CMEventTag 'Json
[XGrpMemFwd_] :: CMEventTag 'Json
[XGrpMemInfo_] :: CMEventTag 'Json
[XGrpMemRole_] :: CMEventTag 'Json
[XGrpMemRestrict_] :: CMEventTag 'Json
[XGrpMemCon_] :: CMEventTag 'Json
[XGrpMemConAll_] :: CMEventTag 'Json
[XGrpMemDel_] :: CMEventTag 'Json
[XGrpLeave_] :: CMEventTag 'Json
[XGrpDel_] :: CMEventTag 'Json
[XGrpInfo_] :: CMEventTag 'Json
[XGrpPrefs_] :: CMEventTag 'Json
[XGrpDirectInv_] :: CMEventTag 'Json
[XGrpMsgForward_] :: CMEventTag 'Json
[XInfoProbe_] :: CMEventTag 'Json
[XInfoProbeCheck_] :: CMEventTag 'Json
[XInfoProbeOk_] :: CMEventTag 'Json
[XCallInv_] :: CMEventTag 'Json
[XCallOffer_] :: CMEventTag 'Json
[XCallAnswer_] :: CMEventTag 'Json
[XCallExtra_] :: CMEventTag 'Json
[XCallEnd_] :: CMEventTag 'Json
[XOk_] :: CMEventTag 'Json
[XUnknown_] :: Text -> CMEventTag 'Json
[BFileChunk_] :: CMEventTag 'Binary
toCMEventTag :: forall (e :: MsgEncoding). ChatMsgEvent e -> CMEventTag e
hasNotification :: forall (e :: MsgEncoding). CMEventTag e -> Bool
hasDeliveryReceipt :: forall (e :: MsgEncoding). CMEventTag e -> Bool
appBinaryToCM :: AppMessageBinary -> Either String (ChatMessage 'Binary)
appJsonToCM :: AppMessageJson -> Either String (ChatMessage 'Json)
(.=?) :: ToJSON v => Key -> Maybe v -> [(Key, Value)] -> [(Key, Value)]
chatToAppMessage :: forall (e :: MsgEncoding). MsgEncodingI e => ChatMessage e -> AppMessage e
chatMsgBinaryToBody :: ChatMessage 'Binary -> ByteString
chatMsgToBody :: forall (e :: MsgEncoding). MsgEncodingI e => ChatMessage e -> ByteString
data ContactShortLinkData
ContactShortLinkData :: Profile -> Maybe MsgContent -> Bool -> ContactShortLinkData
[profile] :: ContactShortLinkData -> Profile
[message] :: ContactShortLinkData -> Maybe MsgContent
[business] :: ContactShortLinkData -> Bool
data GroupShortLinkData
GroupShortLinkData :: GroupProfile -> GroupShortLinkData
[groupProfile] :: GroupShortLinkData -> GroupProfile
instance Simplex.Messaging.Encoding.Encoding Simplex.Chat.Protocol.FileChunk
instance Simplex.Messaging.Encoding.Encoding Simplex.Chat.Protocol.InlineFileChunk
instance GHC.Classes.Eq (Simplex.Chat.Protocol.CMEventTag e)
instance GHC.Classes.Eq (Simplex.Chat.Protocol.ChatMessage e)
instance GHC.Classes.Eq (Simplex.Chat.Protocol.ChatMsgEvent e)
instance GHC.Classes.Eq Simplex.Chat.Protocol.ConnectionEntity
instance GHC.Classes.Eq Simplex.Chat.Protocol.ExtMsgContent
instance GHC.Classes.Eq Simplex.Chat.Protocol.FileChunk
instance GHC.Classes.Eq Simplex.Chat.Protocol.LinkContent
instance GHC.Classes.Eq Simplex.Chat.Protocol.LinkPreview
instance GHC.Classes.Eq Simplex.Chat.Protocol.MREmojiChar
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgChatLink
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgContainer
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgContent
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgContentTag
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgMention
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgReaction
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgRef
instance GHC.Classes.Eq Simplex.Chat.Protocol.MsgScope
instance GHC.Classes.Eq Simplex.Chat.Protocol.QuotedMsg
instance GHC.Classes.Eq Simplex.Chat.Protocol.ReportReason
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Protocol.ACMEventTag
instance (Simplex.Chat.Protocol.MsgEncodingI e, Data.Typeable.Internal.Typeable e) => Database.SQLite.Simple.FromField.FromField (Simplex.Chat.Protocol.CMEventTag e)
instance Database.SQLite.Simple.FromField.FromField (Simplex.Chat.Protocol.ChatMessage 'Simplex.Chat.Protocol.Json)
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Protocol.MsgContent
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Protocol.MsgReaction
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.AppMessageJson
instance Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Protocol.ChatMessage 'Simplex.Chat.Protocol.Json)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.ConnectionEntity
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.ContactShortLinkData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.GroupShortLinkData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.LinkContent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.LinkPreview
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MREmojiChar
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgChatLink
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgContent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgContentTag
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgMention
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgReaction
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgRef
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.MsgScope
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.QuotedMsg
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Protocol.ReportReason
instance Simplex.Chat.Protocol.MsgEncodingI 'Simplex.Chat.Protocol.Binary
instance Simplex.Chat.Protocol.MsgEncodingI 'Simplex.Chat.Protocol.Json
instance GHC.Show.Show Simplex.Chat.Protocol.AChatMsgEvent
instance GHC.Show.Show (Simplex.Chat.Protocol.CMEventTag e)
instance GHC.Show.Show (Simplex.Chat.Protocol.ChatMessage e)
instance GHC.Show.Show (Simplex.Chat.Protocol.ChatMsgEvent e)
instance GHC.Show.Show Simplex.Chat.Protocol.ConnectionEntity
instance GHC.Show.Show Simplex.Chat.Protocol.ContactShortLinkData
instance GHC.Show.Show Simplex.Chat.Protocol.ExtMsgContent
instance GHC.Show.Show Simplex.Chat.Protocol.FileChunk
instance GHC.Show.Show Simplex.Chat.Protocol.GroupShortLinkData
instance GHC.Show.Show Simplex.Chat.Protocol.LinkContent
instance GHC.Show.Show Simplex.Chat.Protocol.LinkPreview
instance GHC.Show.Show Simplex.Chat.Protocol.MREmojiChar
instance GHC.Show.Show Simplex.Chat.Protocol.MsgChatLink
instance GHC.Show.Show Simplex.Chat.Protocol.MsgContainer
instance GHC.Show.Show Simplex.Chat.Protocol.MsgContent
instance GHC.Show.Show Simplex.Chat.Protocol.MsgContentTag
instance GHC.Show.Show Simplex.Chat.Protocol.MsgMention
instance GHC.Show.Show Simplex.Chat.Protocol.MsgReaction
instance GHC.Show.Show Simplex.Chat.Protocol.MsgRef
instance GHC.Show.Show Simplex.Chat.Protocol.MsgScope
instance GHC.Show.Show Simplex.Chat.Protocol.QuotedMsg
instance GHC.Show.Show Simplex.Chat.Protocol.ReportReason
instance GHC.Show.Show (Simplex.Chat.Protocol.SMsgEncoding e)
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Protocol.ACMEventTag
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Protocol.AppMessageBinary
instance Simplex.Chat.Protocol.MsgEncodingI e => Simplex.Messaging.Encoding.String.StrEncoding (Simplex.Chat.Protocol.CMEventTag e)
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Protocol.MsgContentTag
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Protocol.ReportReason
instance Data.Type.Equality.TestEquality Simplex.Chat.Protocol.SMsgEncoding
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Protocol.ACMEventTag
instance Simplex.Chat.Protocol.MsgEncodingI e => Simplex.Messaging.Encoding.String.TextEncoding (Simplex.Chat.Protocol.CMEventTag e)
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Protocol.ACMEventTag
instance Simplex.Chat.Protocol.MsgEncodingI e => Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Protocol.CMEventTag e)
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Protocol.MsgContent
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Protocol.MsgContentTag
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Protocol.MsgReaction
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.AppMessageJson
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Protocol.ChatMessage 'Simplex.Chat.Protocol.Json)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.ConnectionEntity
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.ContactShortLinkData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.GroupShortLinkData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.LinkContent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.LinkPreview
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MREmojiChar
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgChatLink
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgContent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgContentTag
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgMention
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgReaction
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgRef
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.MsgScope
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.QuotedMsg
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Protocol.ReportReason

module Simplex.Chat.Messages.CIContent
data MsgDirection
MDRcv :: MsgDirection
MDSnd :: MsgDirection
data SMsgDirection (d :: MsgDirection)
[SMDRcv] :: SMsgDirection 'MDRcv
[SMDSnd] :: SMsgDirection 'MDSnd
data AMsgDirection
AMsgDirection :: SMsgDirection d -> AMsgDirection
toMsgDirection :: forall (d :: MsgDirection). SMsgDirection d -> MsgDirection
fromMsgDirection :: MsgDirection -> AMsgDirection
class MsgDirectionI (d :: MsgDirection)
msgDirection :: MsgDirectionI d => SMsgDirection d
checkDirection :: forall t (d :: MsgDirection) (d' :: MsgDirection). (MsgDirectionI d, MsgDirectionI d') => t d' -> Either String (t d)
msgDirectionInt :: MsgDirection -> Int
msgDirectionIntP :: Int64 -> Maybe MsgDirection
data CIDeleteMode
CIDMBroadcast :: CIDeleteMode
CIDMInternal :: CIDeleteMode
CIDMInternalMark :: CIDeleteMode
ciDeleteModeToText :: CIDeleteMode -> Text

-- | This type is used both in API and in DB, so we use different JSON
--   encodings for the database and for the API ! ^ Nested sum types also
--   have to use different encodings for database and API ! ^ to avoid
--   breaking cross-platform compatibility, see RcvGroupEvent and
--   SndGroupEvent
data CIContent (d :: MsgDirection)
[CISndMsgContent] :: MsgContent -> CIContent 'MDSnd
[CIRcvMsgContent] :: MsgContent -> CIContent 'MDRcv
[CISndDeleted] :: CIDeleteMode -> CIContent 'MDSnd
[CIRcvDeleted] :: CIDeleteMode -> CIContent 'MDRcv
[CISndCall] :: CICallStatus -> Int -> CIContent 'MDSnd
[CIRcvCall] :: CICallStatus -> Int -> CIContent 'MDRcv
[CIRcvIntegrityError] :: MsgErrorType -> CIContent 'MDRcv
[CIRcvDecryptionError] :: MsgDecryptError -> Word32 -> CIContent 'MDRcv
[CIRcvGroupInvitation] :: CIGroupInvitation -> GroupMemberRole -> CIContent 'MDRcv
[CISndGroupInvitation] :: CIGroupInvitation -> GroupMemberRole -> CIContent 'MDSnd
[CIRcvDirectEvent] :: RcvDirectEvent -> CIContent 'MDRcv
[CIRcvGroupEvent] :: RcvGroupEvent -> CIContent 'MDRcv
[CISndGroupEvent] :: SndGroupEvent -> CIContent 'MDSnd
[CIRcvConnEvent] :: RcvConnEvent -> CIContent 'MDRcv
[CISndConnEvent] :: SndConnEvent -> CIContent 'MDSnd
[CIRcvChatFeature] :: ChatFeature -> PrefEnabled -> Maybe Int -> CIContent 'MDRcv
[CISndChatFeature] :: ChatFeature -> PrefEnabled -> Maybe Int -> CIContent 'MDSnd
[CIRcvChatPreference] :: ChatFeature -> FeatureAllowed -> Maybe Int -> CIContent 'MDRcv
[CISndChatPreference] :: ChatFeature -> FeatureAllowed -> Maybe Int -> CIContent 'MDSnd
[CIRcvGroupFeature] :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent 'MDRcv
[CISndGroupFeature] :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent 'MDSnd
[CIRcvChatFeatureRejected] :: ChatFeature -> CIContent 'MDRcv
[CIRcvGroupFeatureRejected] :: GroupFeature -> CIContent 'MDRcv
[CISndModerated] :: CIContent 'MDSnd
[CIRcvModerated] :: CIContent 'MDRcv
[CIRcvBlocked] :: CIContent 'MDRcv
[CISndDirectE2EEInfo] :: E2EInfo -> CIContent 'MDSnd
[CIRcvDirectE2EEInfo] :: E2EInfo -> CIContent 'MDRcv
[CISndGroupE2EEInfo] :: E2EInfo -> CIContent 'MDSnd
[CIRcvGroupE2EEInfo] :: E2EInfo -> CIContent 'MDRcv
[CIChatBanner] :: CIContent 'MDSnd
[CIInvalidJSON] :: forall (d :: MsgDirection). Text -> CIContent d
data E2EInfo
E2EInfo :: Maybe PQEncryption -> E2EInfo
[pqEnabled] :: E2EInfo -> Maybe PQEncryption
ciMsgContent :: forall (d :: MsgDirection). CIContent d -> Maybe MsgContent
isCIReport :: forall (d :: MsgDirection). CIContent d -> Bool
data MsgDecryptError
MDERatchetHeader :: MsgDecryptError
MDETooManySkipped :: MsgDecryptError
MDERatchetEarlier :: MsgDecryptError
MDEOther :: MsgDecryptError
MDERatchetSync :: MsgDecryptError
ciRequiresAttention :: forall (d :: MsgDirection). MsgDirectionI d => CIContent d -> Bool
newtype DBMsgErrorType
DBME :: MsgErrorType -> DBMsgErrorType
data CIGroupInvitation
CIGroupInvitation :: GroupId -> GroupMemberId -> GroupName -> GroupProfile -> CIGroupInvitationStatus -> CIGroupInvitation
[groupId] :: CIGroupInvitation -> GroupId
[groupMemberId] :: CIGroupInvitation -> GroupMemberId
[localDisplayName] :: CIGroupInvitation -> GroupName
[groupProfile] :: CIGroupInvitation -> GroupProfile
[status] :: CIGroupInvitation -> CIGroupInvitationStatus
data CIGroupInvitationStatus
CIGISPending :: CIGroupInvitationStatus
CIGISAccepted :: CIGroupInvitationStatus
CIGISRejected :: CIGroupInvitationStatus
CIGISExpired :: CIGroupInvitationStatus
ciContentToText :: forall (d :: MsgDirection). CIContent d -> Text
directE2EInfoToText :: E2EInfo -> Text
groupE2EInfoToText :: E2EInfo -> Text
simpleE2EText :: Text
e2eInfoNoPQText :: Text
e2eInfoPQText :: Text
ciGroupInvitationToText :: CIGroupInvitation -> GroupMemberRole -> Text
rcvDirectEventToText :: RcvDirectEvent -> Text
rcvGroupEventToText :: RcvGroupEvent -> Text
sndGroupEventToText :: SndGroupEvent -> Text
pendingReviewMessage :: Text
acceptedToGroupMessage :: Text
rcvConnEventToText :: RcvConnEvent -> Text
ratchetSyncStatusToText :: RatchetSyncState -> Text
sndConnEventToText :: SndConnEvent -> Text
profileToText :: Profile -> Text
msgIntegrityError :: MsgErrorType -> Text
msgDecryptErrorText :: MsgDecryptError -> Word32 -> Text
msgDirToModeratedContent_ :: forall (d :: MsgDirection). SMsgDirection d -> CIContent d
ciModeratedText :: Text
data ACIContent
ACIContent :: SMsgDirection d -> CIContent d -> ACIContent
data JSONCIContent
JCISndMsgContent :: MsgContent -> JSONCIContent
[msgContent] :: JSONCIContent -> MsgContent
JCIRcvMsgContent :: MsgContent -> JSONCIContent
[msgContent] :: JSONCIContent -> MsgContent
JCISndDeleted :: CIDeleteMode -> JSONCIContent
[deleteMode] :: JSONCIContent -> CIDeleteMode
JCIRcvDeleted :: CIDeleteMode -> JSONCIContent
[deleteMode] :: JSONCIContent -> CIDeleteMode
JCISndCall :: CICallStatus -> Int -> JSONCIContent
[status] :: JSONCIContent -> CICallStatus
[duration] :: JSONCIContent -> Int
JCIRcvCall :: CICallStatus -> Int -> JSONCIContent
[status] :: JSONCIContent -> CICallStatus
[duration] :: JSONCIContent -> Int
JCIRcvIntegrityError :: MsgErrorType -> JSONCIContent
[msgError] :: JSONCIContent -> MsgErrorType
JCIRcvDecryptionError :: MsgDecryptError -> Word32 -> JSONCIContent
[msgDecryptError] :: JSONCIContent -> MsgDecryptError
[msgCount] :: JSONCIContent -> Word32
JCIRcvGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> JSONCIContent
[groupInvitation] :: JSONCIContent -> CIGroupInvitation
[memberRole] :: JSONCIContent -> GroupMemberRole
JCISndGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> JSONCIContent
[groupInvitation] :: JSONCIContent -> CIGroupInvitation
[memberRole] :: JSONCIContent -> GroupMemberRole
JCIRcvDirectEvent :: RcvDirectEvent -> JSONCIContent
[rcvDirectEvent] :: JSONCIContent -> RcvDirectEvent
JCIRcvGroupEvent :: RcvGroupEvent -> JSONCIContent
[rcvGroupEvent] :: JSONCIContent -> RcvGroupEvent
JCISndGroupEvent :: SndGroupEvent -> JSONCIContent
[sndGroupEvent] :: JSONCIContent -> SndGroupEvent
JCIRcvConnEvent :: RcvConnEvent -> JSONCIContent
[rcvConnEvent] :: JSONCIContent -> RcvConnEvent
JCISndConnEvent :: SndConnEvent -> JSONCIContent
[sndConnEvent] :: JSONCIContent -> SndConnEvent
JCIRcvChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> JSONCIContent
[feature] :: JSONCIContent -> ChatFeature
[enabled] :: JSONCIContent -> PrefEnabled
[param] :: JSONCIContent -> Maybe Int
JCISndChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> JSONCIContent
[feature] :: JSONCIContent -> ChatFeature
[enabled] :: JSONCIContent -> PrefEnabled
[param] :: JSONCIContent -> Maybe Int
JCIRcvChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> JSONCIContent
[feature] :: JSONCIContent -> ChatFeature
[allowed] :: JSONCIContent -> FeatureAllowed
[param] :: JSONCIContent -> Maybe Int
JCISndChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> JSONCIContent
[feature] :: JSONCIContent -> ChatFeature
[allowed] :: JSONCIContent -> FeatureAllowed
[param] :: JSONCIContent -> Maybe Int
JCIRcvGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> JSONCIContent
[groupFeature] :: JSONCIContent -> GroupFeature
[preference] :: JSONCIContent -> GroupPreference
[param] :: JSONCIContent -> Maybe Int
[memberRole_] :: JSONCIContent -> Maybe GroupMemberRole
JCISndGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> JSONCIContent
[groupFeature] :: JSONCIContent -> GroupFeature
[preference] :: JSONCIContent -> GroupPreference
[param] :: JSONCIContent -> Maybe Int
[memberRole_] :: JSONCIContent -> Maybe GroupMemberRole
JCIRcvChatFeatureRejected :: ChatFeature -> JSONCIContent
[feature] :: JSONCIContent -> ChatFeature
JCIRcvGroupFeatureRejected :: GroupFeature -> JSONCIContent
[groupFeature] :: JSONCIContent -> GroupFeature
JCISndModerated :: JSONCIContent
JCIRcvModerated :: JSONCIContent
JCIRcvBlocked :: JSONCIContent
JCISndDirectE2EEInfo :: E2EInfo -> JSONCIContent
[e2eeInfo] :: JSONCIContent -> E2EInfo
JCIRcvDirectE2EEInfo :: E2EInfo -> JSONCIContent
[e2eeInfo] :: JSONCIContent -> E2EInfo
JCISndGroupE2EEInfo :: E2EInfo -> JSONCIContent
[e2eeInfo] :: JSONCIContent -> E2EInfo
JCIRcvGroupE2EEInfo :: E2EInfo -> JSONCIContent
[e2eeInfo] :: JSONCIContent -> E2EInfo
JCIChatBanner :: JSONCIContent
JCIInvalidJSON :: MsgDirection -> Text -> JSONCIContent
[direction] :: JSONCIContent -> MsgDirection
[json] :: JSONCIContent -> Text
jsonCIContent :: forall (d :: MsgDirection). MsgDirectionI d => CIContent d -> JSONCIContent
aciContentJSON :: JSONCIContent -> ACIContent
data DBJSONCIContent
DBJCISndMsgContent :: MsgContent -> DBJSONCIContent
[msgContent] :: DBJSONCIContent -> MsgContent
DBJCIRcvMsgContent :: MsgContent -> DBJSONCIContent
[msgContent] :: DBJSONCIContent -> MsgContent
DBJCISndDeleted :: CIDeleteMode -> DBJSONCIContent
[deleteMode] :: DBJSONCIContent -> CIDeleteMode
DBJCIRcvDeleted :: CIDeleteMode -> DBJSONCIContent
[deleteMode] :: DBJSONCIContent -> CIDeleteMode
DBJCISndCall :: CICallStatus -> Int -> DBJSONCIContent
[status] :: DBJSONCIContent -> CICallStatus
[duration] :: DBJSONCIContent -> Int
DBJCIRcvCall :: CICallStatus -> Int -> DBJSONCIContent
[status] :: DBJSONCIContent -> CICallStatus
[duration] :: DBJSONCIContent -> Int
DBJCIRcvIntegrityError :: DBMsgErrorType -> DBJSONCIContent
[msgError] :: DBJSONCIContent -> DBMsgErrorType
DBJCIRcvDecryptionError :: MsgDecryptError -> Word32 -> DBJSONCIContent
[msgDecryptError] :: DBJSONCIContent -> MsgDecryptError
[msgCount] :: DBJSONCIContent -> Word32
DBJCIRcvGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> DBJSONCIContent
[groupInvitation] :: DBJSONCIContent -> CIGroupInvitation
[memberRole] :: DBJSONCIContent -> GroupMemberRole
DBJCISndGroupInvitation :: CIGroupInvitation -> GroupMemberRole -> DBJSONCIContent
[groupInvitation] :: DBJSONCIContent -> CIGroupInvitation
[memberRole] :: DBJSONCIContent -> GroupMemberRole
DBJCIRcvDirectEvent :: DBRcvDirectEvent -> DBJSONCIContent
[rcvDirectEvent] :: DBJSONCIContent -> DBRcvDirectEvent
DBJCIRcvGroupEvent :: DBRcvGroupEvent -> DBJSONCIContent
[rcvGroupEvent] :: DBJSONCIContent -> DBRcvGroupEvent
DBJCISndGroupEvent :: DBSndGroupEvent -> DBJSONCIContent
[sndGroupEvent] :: DBJSONCIContent -> DBSndGroupEvent
DBJCIRcvConnEvent :: DBRcvConnEvent -> DBJSONCIContent
[rcvConnEvent] :: DBJSONCIContent -> DBRcvConnEvent
DBJCISndConnEvent :: DBSndConnEvent -> DBJSONCIContent
[sndConnEvent] :: DBJSONCIContent -> DBSndConnEvent
DBJCIRcvChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> DBJSONCIContent
[feature] :: DBJSONCIContent -> ChatFeature
[enabled] :: DBJSONCIContent -> PrefEnabled
[param] :: DBJSONCIContent -> Maybe Int
DBJCISndChatFeature :: ChatFeature -> PrefEnabled -> Maybe Int -> DBJSONCIContent
[feature] :: DBJSONCIContent -> ChatFeature
[enabled] :: DBJSONCIContent -> PrefEnabled
[param] :: DBJSONCIContent -> Maybe Int
DBJCIRcvChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> DBJSONCIContent
[feature] :: DBJSONCIContent -> ChatFeature
[allowed] :: DBJSONCIContent -> FeatureAllowed
[param] :: DBJSONCIContent -> Maybe Int
DBJCISndChatPreference :: ChatFeature -> FeatureAllowed -> Maybe Int -> DBJSONCIContent
[feature] :: DBJSONCIContent -> ChatFeature
[allowed] :: DBJSONCIContent -> FeatureAllowed
[param] :: DBJSONCIContent -> Maybe Int
DBJCIRcvGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> DBJSONCIContent
[groupFeature] :: DBJSONCIContent -> GroupFeature
[preference] :: DBJSONCIContent -> GroupPreference
[param] :: DBJSONCIContent -> Maybe Int
[memberRole_] :: DBJSONCIContent -> Maybe GroupMemberRole
DBJCISndGroupFeature :: GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> DBJSONCIContent
[groupFeature] :: DBJSONCIContent -> GroupFeature
[preference] :: DBJSONCIContent -> GroupPreference
[param] :: DBJSONCIContent -> Maybe Int
[memberRole_] :: DBJSONCIContent -> Maybe GroupMemberRole
DBJCIRcvChatFeatureRejected :: ChatFeature -> DBJSONCIContent
[feature] :: DBJSONCIContent -> ChatFeature
DBJCIRcvGroupFeatureRejected :: GroupFeature -> DBJSONCIContent
[groupFeature] :: DBJSONCIContent -> GroupFeature
DBJCISndModerated :: DBJSONCIContent
DBJCIRcvModerated :: DBJSONCIContent
DBJCIRcvBlocked :: DBJSONCIContent
DBJCISndDirectE2EEInfo :: E2EInfo -> DBJSONCIContent
[e2eeInfo] :: DBJSONCIContent -> E2EInfo
DBJCIRcvDirectE2EEInfo :: E2EInfo -> DBJSONCIContent
[e2eeInfo] :: DBJSONCIContent -> E2EInfo
DBJCISndGroupE2EEInfo :: E2EInfo -> DBJSONCIContent
[e2eeInfo] :: DBJSONCIContent -> E2EInfo
DBJCIRcvGroupE2EEInfo :: E2EInfo -> DBJSONCIContent
[e2eeInfo] :: DBJSONCIContent -> E2EInfo
DBJCIChatBanner :: DBJSONCIContent
DBJCIInvalidJSON :: MsgDirection -> Text -> DBJSONCIContent
[direction] :: DBJSONCIContent -> MsgDirection
[json] :: DBJSONCIContent -> Text
dbJsonCIContent :: forall (d :: MsgDirection). MsgDirectionI d => CIContent d -> DBJSONCIContent
aciContentDBJSON :: DBJSONCIContent -> ACIContent
data CICallStatus
CISCallPending :: CICallStatus
CISCallMissed :: CICallStatus
CISCallRejected :: CICallStatus
CISCallAccepted :: CICallStatus
CISCallNegotiated :: CICallStatus
CISCallProgress :: CICallStatus
CISCallEnded :: CICallStatus
CISCallError :: CICallStatus
ciCallInfoText :: CICallStatus -> Int -> Text
callComplete :: CICallStatus -> Bool
dbParseACIContent :: Text -> Either String ACIContent
sndMsgContentTag :: Text
rcvMsgContentTag :: Text
toCIContentTag :: forall (e :: MsgDirection). CIContent e -> Text
instance GHC.Classes.Eq Simplex.Chat.Messages.CIContent.CIGroupInvitation
instance GHC.Classes.Eq Simplex.Chat.Messages.CIContent.CIGroupInvitationStatus
instance GHC.Classes.Eq Simplex.Chat.Messages.CIContent.E2EInfo
instance GHC.Classes.Eq Simplex.Chat.Messages.CIContent.MsgDecryptError
instance GHC.Classes.Eq Simplex.Chat.Messages.CIContent.MsgDirection
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.CIContent.AMsgDirection
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.CIContent.MsgDirection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.ACIContent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.CICallStatus
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIContent.CIContent d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.CIDeleteMode
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.CIGroupInvitation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.CIGroupInvitationStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.DBJSONCIContent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.DBMsgErrorType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.E2EInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.JSONCIContent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.MsgDecryptError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIContent.MsgDirection
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIContent.SMsgDirection d)
instance Simplex.Chat.Messages.CIContent.MsgDirectionI 'Simplex.Chat.Messages.CIContent.MDRcv
instance Simplex.Chat.Messages.CIContent.MsgDirectionI 'Simplex.Chat.Messages.CIContent.MDSnd
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.ACIContent
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.AMsgDirection
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.CICallStatus
instance GHC.Show.Show (Simplex.Chat.Messages.CIContent.CIContent d)
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.CIDeleteMode
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.CIGroupInvitation
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.CIGroupInvitationStatus
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.E2EInfo
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.MsgDecryptError
instance GHC.Show.Show Simplex.Chat.Messages.CIContent.MsgDirection
instance GHC.Show.Show (Simplex.Chat.Messages.CIContent.SMsgDirection d)
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.CIContent.CIDeleteMode
instance Data.Type.Equality.TestEquality Simplex.Chat.Messages.CIContent.SMsgDirection
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Messages.CIContent.CIContent d)
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Messages.CIContent.MsgDirection
instance Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Messages.CIContent.SMsgDirection d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.CICallStatus
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIContent.CIContent d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.CIDeleteMode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.CIGroupInvitation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.CIGroupInvitationStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.DBJSONCIContent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.DBMsgErrorType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.E2EInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.JSONCIContent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.MsgDecryptError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIContent.MsgDirection
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIContent.SMsgDirection d)

module Simplex.Chat.Messages
data ChatType
CTDirect :: ChatType
CTGroup :: ChatType
CTLocal :: ChatType
CTContactRequest :: ChatType
CTContactConnection :: ChatType
data SChatType (c :: ChatType)
[SCTDirect] :: SChatType 'CTDirect
[SCTGroup] :: SChatType 'CTGroup
[SCTLocal] :: SChatType 'CTLocal
[SCTContactRequest] :: SChatType 'CTContactRequest
[SCTContactConnection] :: SChatType 'CTContactConnection
data AChatType
ACT :: SChatType c -> AChatType
class ChatTypeI (c :: ChatType)
chatTypeI :: ChatTypeI c => SChatType c
toChatType :: forall (c :: ChatType). SChatType c -> ChatType
aChatType :: ChatType -> AChatType
checkChatType :: forall t (c :: ChatType) (c' :: ChatType). (ChatTypeI c, ChatTypeI c') => t c' -> Either String (t c)
data GroupChatScope
GCSMemberSupport :: Maybe GroupMemberId -> GroupChatScope
[groupMemberId_] :: GroupChatScope -> Maybe GroupMemberId
data GroupChatScopeTag
GCSTMemberSupport_ :: GroupChatScopeTag
data ChatName
ChatName :: ChatType -> Text -> ChatName
[chatType] :: ChatName -> ChatType
[chatName] :: ChatName -> Text
data SendName
SNDirect :: ContactName -> SendName
SNGroup :: GroupName -> Maybe GroupScopeName -> SendName
SNLocal :: SendName
data GroupScopeName
GSNMemberSupport :: Maybe ContactName -> GroupScopeName
chatTypeStr :: ChatType -> Text
chatNameStr :: ChatName -> String
data ChatRef
ChatRef :: ChatType -> Int64 -> Maybe GroupChatScope -> ChatRef
[chatType] :: ChatRef -> ChatType
[chatId] :: ChatRef -> Int64
[chatScope] :: ChatRef -> Maybe GroupChatScope
data ChatInfo (c :: ChatType)
[DirectChat] :: Contact -> ChatInfo 'CTDirect
[GroupChat] :: GroupInfo -> Maybe GroupChatScopeInfo -> ChatInfo 'CTGroup
[LocalChat] :: NoteFolder -> ChatInfo 'CTLocal
[ContactRequest] :: UserContactRequest -> ChatInfo 'CTContactRequest
[ContactConnection] :: PendingContactConnection -> ChatInfo 'CTContactConnection
[CInfoInvalidJSON] :: forall (c :: ChatType). SChatType c -> Object -> ChatInfo c
data GroupChatScopeInfo
GCSIMemberSupport :: Maybe GroupMember -> GroupChatScopeInfo
[groupMember_] :: GroupChatScopeInfo -> Maybe GroupMember
toChatScope :: GroupChatScopeInfo -> GroupChatScope
toMsgScope :: GroupInfo -> GroupChatScopeInfo -> MsgScope
chatInfoToRef :: forall (c :: ChatType). ChatInfo c -> Maybe ChatRef
chatInfoMembership :: forall (c :: ChatType). ChatInfo c -> Maybe GroupMember
data JSONChatInfo
JCInfoDirect :: Contact -> JSONChatInfo
[contact] :: JSONChatInfo -> Contact
JCInfoGroup :: GroupInfo -> Maybe GroupChatScopeInfo -> JSONChatInfo
[groupInfo] :: JSONChatInfo -> GroupInfo
[groupChatScope] :: JSONChatInfo -> Maybe GroupChatScopeInfo
JCInfoLocal :: NoteFolder -> JSONChatInfo
[noteFolder] :: JSONChatInfo -> NoteFolder
JCInfoContactRequest :: UserContactRequest -> JSONChatInfo
[contactRequest] :: JSONChatInfo -> UserContactRequest
JCInfoContactConnection :: PendingContactConnection -> JSONChatInfo
[contactConnection] :: JSONChatInfo -> PendingContactConnection
JCInfoInvalidJSON :: ChatType -> Object -> JSONChatInfo
[chatType] :: JSONChatInfo -> ChatType
[json] :: JSONChatInfo -> Object
jsonChatInfo :: forall (c :: ChatType). ChatInfo c -> JSONChatInfo
data AChatInfo
AChatInfo :: SChatType c -> ChatInfo c -> AChatInfo
jsonAChatInfo :: JSONChatInfo -> AChatInfo
data ChatItem (c :: ChatType) (d :: MsgDirection)
ChatItem :: CIDirection c d -> CIMeta c d -> CIContent d -> Map MemberName CIMention -> Maybe MarkdownList -> Maybe (CIQuote c) -> [CIReactionCount] -> Maybe (CIFile d) -> ChatItem (c :: ChatType) (d :: MsgDirection)
[chatDir] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> CIDirection c d
[meta] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> CIMeta c d
[content] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> CIContent d
[mentions] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> Map MemberName CIMention
[formattedText] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> Maybe MarkdownList
[quotedItem] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> Maybe (CIQuote c)
[reactions] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> [CIReactionCount]
[file] :: ChatItem (c :: ChatType) (d :: MsgDirection) -> Maybe (CIFile d)
data CIMention
CIMention :: MemberId -> Maybe CIMentionMember -> CIMention
[memberId] :: CIMention -> MemberId
[memberRef] :: CIMention -> Maybe CIMentionMember
data CIMentionMember
CIMentionMember :: GroupMemberId -> Text -> Maybe Text -> GroupMemberRole -> CIMentionMember
[groupMemberId] :: CIMentionMember -> GroupMemberId
[displayName] :: CIMentionMember -> Text
[localAlias] :: CIMentionMember -> Maybe Text
[memberRole] :: CIMentionMember -> GroupMemberRole
isACIUserMention :: AChatItem -> Bool
isUserMention :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Bool
data CIDirection (c :: ChatType) (d :: MsgDirection)
[CIDirectSnd] :: CIDirection 'CTDirect 'MDSnd
[CIDirectRcv] :: CIDirection 'CTDirect 'MDRcv
[CIGroupSnd] :: CIDirection 'CTGroup 'MDSnd
[CIGroupRcv] :: GroupMember -> CIDirection 'CTGroup 'MDRcv
[CILocalSnd] :: CIDirection 'CTLocal 'MDSnd
[CILocalRcv] :: CIDirection 'CTLocal 'MDRcv
data CCIDirection (c :: ChatType)
CCID :: SMsgDirection d -> CIDirection c d -> CCIDirection (c :: ChatType)
data ACIDirection
ACID :: SChatType c -> SMsgDirection d -> CIDirection c d -> ACIDirection
data JSONCIDirection
JCIDirectSnd :: JSONCIDirection
JCIDirectRcv :: JSONCIDirection
JCIGroupSnd :: JSONCIDirection
JCIGroupRcv :: GroupMember -> JSONCIDirection
[groupMember] :: JSONCIDirection -> GroupMember
JCILocalSnd :: JSONCIDirection
JCILocalRcv :: JSONCIDirection
jsonCIDirection :: forall (c :: ChatType) (d :: MsgDirection). CIDirection c d -> JSONCIDirection
jsonACIDirection :: JSONCIDirection -> ACIDirection
data CIReactionCount
CIReactionCount :: MsgReaction -> Bool -> Int -> CIReactionCount
[reaction] :: CIReactionCount -> MsgReaction
[userReacted] :: CIReactionCount -> Bool
[totalReacted] :: CIReactionCount -> Int
data CChatItem (c :: ChatType)
CChatItem :: SMsgDirection d -> ChatItem c d -> CChatItem (c :: ChatType)
cChatItemId :: forall (c :: ChatType). CChatItem c -> ChatItemId
chatItemId' :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> ChatItemId
chatItemTs :: forall (c :: ChatType). CChatItem c -> UTCTime
chatItemTs' :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> UTCTime
ciCreatedAt :: forall (c :: ChatType). CChatItem c -> UTCTime
ciCreatedAt' :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> UTCTime
chatItemTimed :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Maybe CITimed
timedDeleteAt' :: CITimed -> Maybe UTCTime
chatItemMember :: forall (d :: MsgDirection). GroupInfo -> ChatItem 'CTGroup d -> GroupMember
chatItemRcvFromMember :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Maybe GroupMember
chatItemIsRcvNew :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Bool
ciReactionAllowed :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Bool
data ChatDirection (c :: ChatType) (d :: MsgDirection)
[CDDirectSnd] :: Contact -> ChatDirection 'CTDirect 'MDSnd
[CDDirectRcv] :: Contact -> ChatDirection 'CTDirect 'MDRcv
[CDGroupSnd] :: GroupInfo -> Maybe GroupChatScopeInfo -> ChatDirection 'CTGroup 'MDSnd
[CDGroupRcv] :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> ChatDirection 'CTGroup 'MDRcv
[CDLocalSnd] :: NoteFolder -> ChatDirection 'CTLocal 'MDSnd
[CDLocalRcv] :: NoteFolder -> ChatDirection 'CTLocal 'MDRcv
toCIDirection :: forall (c :: ChatType) (d :: MsgDirection). ChatDirection c d -> CIDirection c d
toChatInfo :: forall (c :: ChatType) (d :: MsgDirection). ChatDirection c d -> ChatInfo c
contactChatDeleted :: forall (c :: ChatType) (d :: MsgDirection). ChatDirection c d -> Bool
data NewChatItem (d :: MsgDirection)
NewChatItem :: Maybe MessageId -> SMsgDirection d -> ChatItemTs -> CIContent d -> Text -> CIStatus d -> Maybe SharedMsgId -> Maybe QuotedMsg -> UTCTime -> NewChatItem (d :: MsgDirection)
[createdByMsgId] :: NewChatItem (d :: MsgDirection) -> Maybe MessageId
[itemSent] :: NewChatItem (d :: MsgDirection) -> SMsgDirection d
[itemTs] :: NewChatItem (d :: MsgDirection) -> ChatItemTs
[itemContent] :: NewChatItem (d :: MsgDirection) -> CIContent d
[itemText] :: NewChatItem (d :: MsgDirection) -> Text
[itemStatus] :: NewChatItem (d :: MsgDirection) -> CIStatus d
[itemSharedMsgId] :: NewChatItem (d :: MsgDirection) -> Maybe SharedMsgId
[itemQuotedMsg] :: NewChatItem (d :: MsgDirection) -> Maybe QuotedMsg
[createdAt] :: NewChatItem (d :: MsgDirection) -> UTCTime

-- | type to show one chat with messages
data Chat (c :: ChatType)
Chat :: ChatInfo c -> [CChatItem c] -> ChatStats -> Chat (c :: ChatType)
[chatInfo] :: Chat (c :: ChatType) -> ChatInfo c
[chatItems] :: Chat (c :: ChatType) -> [CChatItem c]
[chatStats] :: Chat (c :: ChatType) -> ChatStats
data AChat
AChat :: SChatType c -> Chat c -> AChat
data ChatStats
ChatStats :: Int -> Int -> Int -> ChatItemId -> Bool -> ChatStats
[unreadCount] :: ChatStats -> Int
[unreadMentions] :: ChatStats -> Int
[reportsCount] :: ChatStats -> Int
[minUnreadItemId] :: ChatStats -> ChatItemId
[unreadChat] :: ChatStats -> Bool
emptyChatStats :: ChatStats
data NavigationInfo
NavigationInfo :: Int -> Int -> NavigationInfo
[afterUnread] :: NavigationInfo -> Int
[afterTotal] :: NavigationInfo -> Int

-- | type to show a mix of messages from multiple chats
data AChatItem
AChatItem :: SChatType c -> SMsgDirection d -> ChatInfo c -> ChatItem c d -> AChatItem
data JSONAnyChatItem (c :: ChatType) (d :: MsgDirection)
JSONAnyChatItem :: ChatInfo c -> ChatItem c d -> JSONAnyChatItem (c :: ChatType) (d :: MsgDirection)
[chatInfo] :: JSONAnyChatItem (c :: ChatType) (d :: MsgDirection) -> ChatInfo c
[chatItem] :: JSONAnyChatItem (c :: ChatType) (d :: MsgDirection) -> ChatItem c d
aChatItems :: AChat -> [AChatItem]
aChatItemId :: AChatItem -> Int64
aChatItemTs :: AChatItem -> UTCTime
aChatItemDir :: AChatItem -> MsgDirection
aChatItemRcvFromMember :: AChatItem -> Maybe GroupMember
aChatItemIsRcvNew :: AChatItem -> Bool
updateFileStatus :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> CIFileStatus d -> ChatItem c d
data CIMeta (c :: ChatType) (d :: MsgDirection)
CIMeta :: ChatItemId -> ChatItemTs -> Text -> CIStatus d -> Maybe Bool -> Maybe SharedMsgId -> Maybe CIForwardedFrom -> Maybe (CIDeleted c) -> Bool -> Maybe CITimed -> Maybe Bool -> Bool -> Bool -> Bool -> Maybe GroupMemberId -> ShowGroupAsSender -> UTCTime -> UTCTime -> CIMeta (c :: ChatType) (d :: MsgDirection)
[itemId] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> ChatItemId
[itemTs] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> ChatItemTs
[itemText] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Text
[itemStatus] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> CIStatus d
[sentViaProxy] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe Bool
[itemSharedMsgId] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe SharedMsgId
[itemForwarded] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe CIForwardedFrom
[itemDeleted] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe (CIDeleted c)
[itemEdited] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Bool
[itemTimed] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe CITimed
[itemLive] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe Bool
[userMention] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Bool
[deletable] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Bool
[editable] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Bool
[forwardedByMember] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> Maybe GroupMemberId
[showGroupAsSender] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> ShowGroupAsSender
[createdAt] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> UTCTime
[updatedAt] :: CIMeta (c :: ChatType) (d :: MsgDirection) -> UTCTime
type ShowGroupAsSender = Bool
mkCIMeta :: forall (c :: ChatType) (d :: MsgDirection). ChatTypeI c => ChatItemId -> CIContent d -> Text -> CIStatus d -> Maybe Bool -> Maybe SharedMsgId -> Maybe CIForwardedFrom -> Maybe (CIDeleted c) -> Bool -> Maybe CITimed -> Maybe Bool -> Bool -> UTCTime -> ChatItemTs -> Maybe GroupMemberId -> Bool -> UTCTime -> UTCTime -> CIMeta c d
deletable' :: forall (c :: ChatType) (d :: MsgDirection). ChatTypeI c => CIContent d -> Maybe (CIDeleted c) -> UTCTime -> NominalDiffTime -> UTCTime -> Bool
dummyMeta :: forall (c :: ChatType). ChatItemId -> UTCTime -> Text -> CIMeta c 'MDSnd
data CITimed
CITimed :: Int -> Maybe UTCTime -> CITimed
[ttl] :: CITimed -> Int
[deleteAt] :: CITimed -> Maybe UTCTime
ttl' :: CITimed -> Int
contactTimedTTL :: Contact -> Maybe (Maybe Int)
groupTimedTTL :: GroupInfo -> Maybe (Maybe Int)
rcvContactCITimed :: Contact -> Maybe Int -> Maybe CITimed
rcvGroupCITimed :: GroupInfo -> Maybe Int -> Maybe CITimed
rcvCITimed_ :: Maybe (Maybe Int) -> Maybe Int -> Maybe CITimed
data CIQuote (c :: ChatType)
CIQuote :: CIQDirection c -> Maybe ChatItemId -> Maybe SharedMsgId -> UTCTime -> MsgContent -> Maybe MarkdownList -> CIQuote (c :: ChatType)
[chatDir] :: CIQuote (c :: ChatType) -> CIQDirection c
[itemId] :: CIQuote (c :: ChatType) -> Maybe ChatItemId
[sharedMsgId] :: CIQuote (c :: ChatType) -> Maybe SharedMsgId
[sentAt] :: CIQuote (c :: ChatType) -> UTCTime
[content] :: CIQuote (c :: ChatType) -> MsgContent
[formattedText] :: CIQuote (c :: ChatType) -> Maybe MarkdownList
quoteItemId :: forall (c :: ChatType). CIQuote c -> Maybe ChatItemId
data CIReaction (c :: ChatType) (d :: MsgDirection)
CIReaction :: CIDirection c d -> CChatItem c -> UTCTime -> MsgReaction -> CIReaction (c :: ChatType) (d :: MsgDirection)
[chatDir] :: CIReaction (c :: ChatType) (d :: MsgDirection) -> CIDirection c d
[chatItem] :: CIReaction (c :: ChatType) (d :: MsgDirection) -> CChatItem c
[sentAt] :: CIReaction (c :: ChatType) (d :: MsgDirection) -> UTCTime
[reaction] :: CIReaction (c :: ChatType) (d :: MsgDirection) -> MsgReaction
data AnyCIReaction
ACIR :: SChatType c -> SMsgDirection d -> CIReaction c d -> AnyCIReaction
data ACIReaction
ACIReaction :: SChatType c -> SMsgDirection d -> ChatInfo c -> CIReaction c d -> ACIReaction
data JSONCIReaction (c :: ChatType) (d :: MsgDirection)
JSONCIReaction :: ChatInfo c -> CIReaction c d -> JSONCIReaction (c :: ChatType) (d :: MsgDirection)
[chatInfo] :: JSONCIReaction (c :: ChatType) (d :: MsgDirection) -> ChatInfo c
[chatReaction] :: JSONCIReaction (c :: ChatType) (d :: MsgDirection) -> CIReaction c d
data MemberReaction
MemberReaction :: GroupMember -> UTCTime -> MemberReaction
[groupMember] :: MemberReaction -> GroupMember
[reactionTs] :: MemberReaction -> UTCTime
type family ChatTypeQuotable (a :: ChatType)
data CIQDirection (c :: ChatType)
[CIQDirectSnd] :: CIQDirection 'CTDirect
[CIQDirectRcv] :: CIQDirection 'CTDirect
[CIQGroupSnd] :: CIQDirection 'CTGroup
[CIQGroupRcv] :: Maybe GroupMember -> CIQDirection 'CTGroup
data ACIQDirection
ACIQDirection :: SChatType c -> CIQDirection c -> ACIQDirection
jsonCIQDirection :: forall (c :: ChatType). CIQDirection c -> Maybe JSONCIDirection
jsonACIQDirection :: Maybe JSONCIDirection -> Either String ACIQDirection
quoteMsgDirection :: forall (c :: ChatType). CIQDirection c -> MsgDirection
data CIFile (d :: MsgDirection)
CIFile :: Int64 -> String -> Integer -> Maybe CryptoFile -> CIFileStatus d -> FileProtocol -> CIFile (d :: MsgDirection)
[fileId] :: CIFile (d :: MsgDirection) -> Int64
[fileName] :: CIFile (d :: MsgDirection) -> String
[fileSize] :: CIFile (d :: MsgDirection) -> Integer
[fileSource] :: CIFile (d :: MsgDirection) -> Maybe CryptoFile
[fileStatus] :: CIFile (d :: MsgDirection) -> CIFileStatus d
[fileProtocol] :: CIFile (d :: MsgDirection) -> FileProtocol
data FileProtocol
FPSMP :: FileProtocol
FPXFTP :: FileProtocol
FPLocal :: FileProtocol
data CIFileStatus (d :: MsgDirection)
[CIFSSndStored] :: CIFileStatus 'MDSnd
[CIFSSndTransfer] :: Int64 -> Int64 -> CIFileStatus 'MDSnd
[CIFSSndCancelled] :: CIFileStatus 'MDSnd
[CIFSSndComplete] :: CIFileStatus 'MDSnd
[CIFSSndError] :: FileError -> CIFileStatus 'MDSnd
[CIFSSndWarning] :: FileError -> CIFileStatus 'MDSnd
[CIFSRcvInvitation] :: CIFileStatus 'MDRcv
[CIFSRcvAccepted] :: CIFileStatus 'MDRcv
[CIFSRcvTransfer] :: Int64 -> Int64 -> CIFileStatus 'MDRcv
[CIFSRcvAborted] :: CIFileStatus 'MDRcv
[CIFSRcvComplete] :: CIFileStatus 'MDRcv
[CIFSRcvCancelled] :: CIFileStatus 'MDRcv
[CIFSRcvError] :: FileError -> CIFileStatus 'MDRcv
[CIFSRcvWarning] :: FileError -> CIFileStatus 'MDRcv
[CIFSInvalid] :: Text -> CIFileStatus 'MDSnd
ciFileEnded :: forall (d :: MsgDirection). CIFileStatus d -> Bool
ciFileLoaded :: forall (d :: MsgDirection). CIFileStatus d -> Bool
data ForwardFileError
FFENotAccepted :: FileTransferId -> ForwardFileError
FFEInProgress :: ForwardFileError
FFEFailed :: ForwardFileError
FFEMissing :: ForwardFileError
ciFileForwardError :: forall (d :: MsgDirection). FileTransferId -> CIFileStatus d -> Maybe ForwardFileError
data ACIFileStatus
AFS :: SMsgDirection d -> CIFileStatus d -> ACIFileStatus
data JSONCIFileStatus
JCIFSSndStored :: JSONCIFileStatus
JCIFSSndTransfer :: Int64 -> Int64 -> JSONCIFileStatus
[sndProgress] :: JSONCIFileStatus -> Int64
[sndTotal] :: JSONCIFileStatus -> Int64
JCIFSSndCancelled :: JSONCIFileStatus
JCIFSSndComplete :: JSONCIFileStatus
JCIFSSndError :: FileError -> JSONCIFileStatus
[sndFileError] :: JSONCIFileStatus -> FileError
JCIFSSndWarning :: FileError -> JSONCIFileStatus
[sndFileError] :: JSONCIFileStatus -> FileError
JCIFSRcvInvitation :: JSONCIFileStatus
JCIFSRcvAccepted :: JSONCIFileStatus
JCIFSRcvTransfer :: Int64 -> Int64 -> JSONCIFileStatus
[rcvProgress] :: JSONCIFileStatus -> Int64
[rcvTotal] :: JSONCIFileStatus -> Int64
JCIFSRcvAborted :: JSONCIFileStatus
JCIFSRcvComplete :: JSONCIFileStatus
JCIFSRcvCancelled :: JSONCIFileStatus
JCIFSRcvError :: FileError -> JSONCIFileStatus
[rcvFileError] :: JSONCIFileStatus -> FileError
JCIFSRcvWarning :: FileError -> JSONCIFileStatus
[rcvFileError] :: JSONCIFileStatus -> FileError
JCIFSInvalid :: Text -> JSONCIFileStatus
[text] :: JSONCIFileStatus -> Text
jsonCIFileStatus :: forall (d :: MsgDirection). CIFileStatus d -> JSONCIFileStatus
aciFileStatusJSON :: JSONCIFileStatus -> ACIFileStatus
data FileError
FileErrAuth :: FileError
FileErrBlocked :: String -> BlockingInfo -> FileError
[server] :: FileError -> String
[blockInfo] :: FileError -> BlockingInfo
FileErrNoFile :: FileError
FileErrRelay :: SrvError -> FileError
[srvError] :: FileError -> SrvError
FileErrOther :: Text -> FileError
[fileError] :: FileError -> Text
data CIFileInfo
CIFileInfo :: Int64 -> Maybe ACIFileStatus -> Maybe FilePath -> CIFileInfo
[fileId] :: CIFileInfo -> Int64
[fileStatus] :: CIFileInfo -> Maybe ACIFileStatus
[filePath] :: CIFileInfo -> Maybe FilePath
mkCIFileInfo :: forall (d :: MsgDirection). MsgDirectionI d => CIFile d -> CIFileInfo
data CIStatus (d :: MsgDirection)
[CISSndNew] :: CIStatus 'MDSnd
[CISSndSent] :: SndCIStatusProgress -> CIStatus 'MDSnd
[CISSndRcvd] :: MsgReceiptStatus -> SndCIStatusProgress -> CIStatus 'MDSnd
[CISSndErrorAuth] :: CIStatus 'MDSnd
[CISSndError] :: SndError -> CIStatus 'MDSnd
[CISSndWarning] :: SndError -> CIStatus 'MDSnd
[CISRcvNew] :: CIStatus 'MDRcv
[CISRcvRead] :: CIStatus 'MDRcv
[CISInvalid] :: Text -> CIStatus 'MDSnd
data ACIStatus
ACIStatus :: SMsgDirection d -> CIStatus d -> ACIStatus
data SndError
SndErrAuth :: SndError
SndErrQuota :: SndError
SndErrExpired :: SndError
SndErrRelay :: SrvError -> SndError
[srvError] :: SndError -> SrvError
SndErrProxy :: String -> SrvError -> SndError
[proxyServer] :: SndError -> String
[srvError] :: SndError -> SrvError
SndErrProxyRelay :: String -> SrvError -> SndError
[proxyServer] :: SndError -> String
[srvError] :: SndError -> SrvError
SndErrOther :: Text -> SndError
[sndError] :: SndError -> Text
data SrvError
SrvErrHost :: SrvError
SrvErrVersion :: SrvError
SrvErrOther :: Text -> SrvError
[srvError] :: SrvError -> Text
data JSONCIStatus
JCISSndNew :: JSONCIStatus
JCISSndSent :: SndCIStatusProgress -> JSONCIStatus
[sndProgress] :: JSONCIStatus -> SndCIStatusProgress
JCISSndRcvd :: MsgReceiptStatus -> SndCIStatusProgress -> JSONCIStatus
[msgRcptStatus] :: JSONCIStatus -> MsgReceiptStatus
[sndProgress] :: JSONCIStatus -> SndCIStatusProgress
JCISSndErrorAuth :: JSONCIStatus
JCISSndError :: SndError -> JSONCIStatus
[agentError] :: JSONCIStatus -> SndError
JCISSndWarning :: SndError -> JSONCIStatus
[agentError] :: JSONCIStatus -> SndError
JCISRcvNew :: JSONCIStatus
JCISRcvRead :: JSONCIStatus
JCISInvalid :: Text -> JSONCIStatus
[text] :: JSONCIStatus -> Text
jsonCIStatus :: forall (d :: MsgDirection). CIStatus d -> JSONCIStatus
jsonACIStatus :: JSONCIStatus -> ACIStatus
ciStatusNew :: forall (d :: MsgDirection). MsgDirectionI d => CIStatus d
ciCreateStatus :: forall (d :: MsgDirection). MsgDirectionI d => CIContent d -> CIStatus d
membersGroupItemStatus :: [(GroupSndStatus, Int)] -> CIStatus 'MDSnd
data SndCIStatusProgress
SSPPartial :: SndCIStatusProgress
SSPComplete :: SndCIStatusProgress
data GroupSndStatus
GSSNew :: GroupSndStatus
GSSForwarded :: GroupSndStatus
GSSInactive :: GroupSndStatus
GSSSent :: GroupSndStatus
GSSRcvd :: MsgReceiptStatus -> GroupSndStatus
[msgRcptStatus] :: GroupSndStatus -> MsgReceiptStatus
GSSError :: SndError -> GroupSndStatus
[agentError] :: GroupSndStatus -> SndError
GSSWarning :: SndError -> GroupSndStatus
[agentError] :: GroupSndStatus -> SndError
GSSInvalid :: Text -> GroupSndStatus
[text] :: GroupSndStatus -> Text
type ChatItemId = Int64
type ChatItemTs = UTCTime
data SndMessage
SndMessage :: MessageId -> SharedMsgId -> MsgBody -> SndMessage
[msgId] :: SndMessage -> MessageId
[sharedMsgId] :: SndMessage -> SharedMsgId
[msgBody] :: SndMessage -> MsgBody
data NewRcvMessage (e :: MsgEncoding)
NewRcvMessage :: ChatMsgEvent e -> MsgBody -> UTCTime -> NewRcvMessage (e :: MsgEncoding)
[chatMsgEvent] :: NewRcvMessage (e :: MsgEncoding) -> ChatMsgEvent e
[msgBody] :: NewRcvMessage (e :: MsgEncoding) -> MsgBody
[brokerTs] :: NewRcvMessage (e :: MsgEncoding) -> UTCTime
data RcvMessage
RcvMessage :: MessageId -> AChatMsgEvent -> Maybe SharedMsgId -> MsgBody -> Maybe GroupMemberId -> Maybe GroupMemberId -> RcvMessage
[msgId] :: RcvMessage -> MessageId
[chatMsgEvent] :: RcvMessage -> AChatMsgEvent
[sharedMsgId_] :: RcvMessage -> Maybe SharedMsgId
[msgBody] :: RcvMessage -> MsgBody
[authorMember] :: RcvMessage -> Maybe GroupMemberId
[forwardedByMember] :: RcvMessage -> Maybe GroupMemberId
type MessageId = Int64
data ConnOrGroupId
ConnectionId :: Int64 -> ConnOrGroupId
GroupId :: Int64 -> ConnOrGroupId
data SndMsgDelivery
SndMsgDelivery :: Int64 -> AgentMsgId -> SndMsgDelivery
[connId] :: SndMsgDelivery -> Int64
[agentMsgId] :: SndMsgDelivery -> AgentMsgId
data RcvMsgDelivery
RcvMsgDelivery :: Int64 -> AgentMsgId -> MsgMeta -> RcvMsgDelivery
[connId] :: RcvMsgDelivery -> Int64
[agentMsgId] :: RcvMsgDelivery -> AgentMsgId
[agentMsgMeta] :: RcvMsgDelivery -> MsgMeta
data RcvMsgInfo
RcvMsgInfo :: Int64 -> Int64 -> Text -> AgentMsgId -> Text -> RcvMsgInfo
[msgId] :: RcvMsgInfo -> Int64
[msgDeliveryId] :: RcvMsgInfo -> Int64
[msgDeliveryStatus] :: RcvMsgInfo -> Text
[agentMsgId] :: RcvMsgInfo -> AgentMsgId
[agentMsgMeta] :: RcvMsgInfo -> Text
data MsgMetaJSON
MsgMetaJSON :: Text -> Int64 -> UTCTime -> Text -> UTCTime -> Int64 -> MsgMetaJSON
[integrity] :: MsgMetaJSON -> Text
[rcvId] :: MsgMetaJSON -> Int64
[rcvTs] :: MsgMetaJSON -> UTCTime
[serverId] :: MsgMetaJSON -> Text
[serverTs] :: MsgMetaJSON -> UTCTime
[sndId] :: MsgMetaJSON -> Int64
msgMetaToJson :: MsgMeta -> MsgMetaJSON
data MsgDeliveryStatus (d :: MsgDirection)
[MDSRcvAgent] :: MsgDeliveryStatus 'MDRcv
[MDSRcvAcknowledged] :: MsgDeliveryStatus 'MDRcv
[MDSSndPending] :: MsgDeliveryStatus 'MDSnd
[MDSSndAgent] :: MsgDeliveryStatus 'MDSnd
[MDSSndSent] :: MsgDeliveryStatus 'MDSnd
[MDSSndRcvd] :: MsgReceiptStatus -> MsgDeliveryStatus 'MDSnd
[MDSSndRead] :: MsgDeliveryStatus 'MDSnd
data AMsgDeliveryStatus
AMDS :: SMsgDirection d -> MsgDeliveryStatus d -> AMsgDeliveryStatus
serializeMsgDeliveryStatus :: forall (d :: MsgDirection). MsgDeliveryStatus d -> Text
msgDeliveryStatusT :: Text -> Maybe AMsgDeliveryStatus
msgDeliveryStatusT' :: forall (d :: MsgDirection). MsgDirectionI d => Text -> Maybe (MsgDeliveryStatus d)
data CIDeleted (c :: ChatType)
[CIDeleted] :: forall (c :: ChatType). Maybe UTCTime -> CIDeleted c
[CIBlocked] :: Maybe UTCTime -> CIDeleted 'CTGroup
[CIBlockedByAdmin] :: Maybe UTCTime -> CIDeleted 'CTGroup
[CIModerated] :: Maybe UTCTime -> GroupMember -> CIDeleted 'CTGroup
data ACIDeleted
ACIDeleted :: SChatType c -> CIDeleted c -> ACIDeleted
data JSONCIDeleted
JCIDDeleted :: Maybe UTCTime -> ChatType -> JSONCIDeleted
[deletedTs] :: JSONCIDeleted -> Maybe UTCTime
[chatType] :: JSONCIDeleted -> ChatType
JCIDBlocked :: Maybe UTCTime -> JSONCIDeleted
[deletedTs] :: JSONCIDeleted -> Maybe UTCTime
JCIDBlockedByAdmin :: Maybe UTCTime -> JSONCIDeleted
[deletedTs] :: JSONCIDeleted -> Maybe UTCTime
JCIDModerated :: Maybe UTCTime -> GroupMember -> JSONCIDeleted
[deletedTs] :: JSONCIDeleted -> Maybe UTCTime
[byGroupMember] :: JSONCIDeleted -> GroupMember
jsonCIDeleted :: forall (d :: ChatType). ChatTypeI d => CIDeleted d -> JSONCIDeleted
jsonACIDeleted :: JSONCIDeleted -> ACIDeleted
itemDeletedTs :: forall (d :: ChatType). CIDeleted d -> Maybe UTCTime
data CIForwardedFrom
CIFFUnknown :: CIForwardedFrom
CIFFContact :: Text -> MsgDirection -> Maybe ContactId -> Maybe ChatItemId -> CIForwardedFrom
[chatName] :: CIForwardedFrom -> Text
[msgDir] :: CIForwardedFrom -> MsgDirection
[contactId] :: CIForwardedFrom -> Maybe ContactId
[chatItemId] :: CIForwardedFrom -> Maybe ChatItemId
CIFFGroup :: Text -> MsgDirection -> Maybe GroupId -> Maybe ChatItemId -> CIForwardedFrom
[chatName] :: CIForwardedFrom -> Text
[msgDir] :: CIForwardedFrom -> MsgDirection
[groupId] :: CIForwardedFrom -> Maybe GroupId
[chatItemId] :: CIForwardedFrom -> Maybe ChatItemId
cmForwardedFrom :: AChatMsgEvent -> Maybe CIForwardedFrom
data CIForwardedFromTag
CIFFUnknown_ :: CIForwardedFromTag
CIFFContact_ :: CIForwardedFromTag
CIFFGroup_ :: CIForwardedFromTag
data ChatItemInfo
ChatItemInfo :: [ChatItemVersion] -> Maybe (NonEmpty MemberDeliveryStatus) -> Maybe AChatItem -> ChatItemInfo
[itemVersions] :: ChatItemInfo -> [ChatItemVersion]
[memberDeliveryStatuses] :: ChatItemInfo -> Maybe (NonEmpty MemberDeliveryStatus)
[forwardedFromChatItem] :: ChatItemInfo -> Maybe AChatItem
data ChatItemVersion
ChatItemVersion :: Int64 -> MsgContent -> Maybe MarkdownList -> UTCTime -> UTCTime -> ChatItemVersion
[chatItemVersionId] :: ChatItemVersion -> Int64
[msgContent] :: ChatItemVersion -> MsgContent
[formattedText] :: ChatItemVersion -> Maybe MarkdownList
[itemVersionTs] :: ChatItemVersion -> UTCTime
[createdAt] :: ChatItemVersion -> UTCTime
mkItemVersion :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Maybe ChatItemVersion
data MemberDeliveryStatus
MemberDeliveryStatus :: GroupMemberId -> GroupSndStatus -> Maybe Bool -> MemberDeliveryStatus
[groupMemberId] :: MemberDeliveryStatus -> GroupMemberId
[memberDeliveryStatus] :: MemberDeliveryStatus -> GroupSndStatus
[sentViaProxy] :: MemberDeliveryStatus -> Maybe Bool
data CIModeration
CIModeration :: Int64 -> GroupMember -> MessageId -> UTCTime -> CIModeration
[moderationId] :: CIModeration -> Int64
[moderatorMember] :: CIModeration -> GroupMember
[createdByMsgId] :: CIModeration -> MessageId
[moderatedAt] :: CIModeration -> UTCTime
msgMetaJson :: MsgMeta -> Text
instance Simplex.Chat.Messages.ChatTypeI 'Simplex.Chat.Messages.CTContactConnection
instance Simplex.Chat.Messages.ChatTypeI 'Simplex.Chat.Messages.CTContactRequest
instance Simplex.Chat.Messages.ChatTypeI 'Simplex.Chat.Messages.CTDirect
instance Simplex.Chat.Messages.ChatTypeI 'Simplex.Chat.Messages.CTGroup
instance Simplex.Chat.Messages.ChatTypeI 'Simplex.Chat.Messages.CTLocal
instance GHC.Classes.Eq (Simplex.Chat.Messages.CIFileStatus d)
instance GHC.Classes.Eq Simplex.Chat.Messages.CIMention
instance GHC.Classes.Eq Simplex.Chat.Messages.CIMentionMember
instance GHC.Classes.Eq (Simplex.Chat.Messages.CIStatus d)
instance GHC.Classes.Eq Simplex.Chat.Messages.ChatItemVersion
instance GHC.Classes.Eq Simplex.Chat.Messages.ChatRef
instance GHC.Classes.Eq Simplex.Chat.Messages.ChatType
instance GHC.Classes.Eq Simplex.Chat.Messages.FileError
instance GHC.Classes.Eq Simplex.Chat.Messages.FileProtocol
instance GHC.Classes.Eq Simplex.Chat.Messages.ForwardFileError
instance GHC.Classes.Eq Simplex.Chat.Messages.GroupChatScope
instance GHC.Classes.Eq Simplex.Chat.Messages.GroupChatScopeTag
instance GHC.Classes.Eq Simplex.Chat.Messages.GroupSndStatus
instance GHC.Classes.Eq Simplex.Chat.Messages.MemberDeliveryStatus
instance GHC.Classes.Eq Simplex.Chat.Messages.MsgMetaJSON
instance GHC.Classes.Eq Simplex.Chat.Messages.SndCIStatusProgress
instance GHC.Classes.Eq Simplex.Chat.Messages.SndError
instance GHC.Classes.Eq Simplex.Chat.Messages.SrvError
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.ACIFileStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.ACIStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.CIForwardedFromTag
instance (Data.Typeable.Internal.Typeable d, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Database.SQLite.Simple.FromField.FromField (Simplex.Chat.Messages.CIStatus d)
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.FileProtocol
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.GroupChatScopeTag
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Messages.GroupSndStatus
instance (Data.Typeable.Internal.Typeable d, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Database.SQLite.Simple.FromField.FromField (Simplex.Chat.Messages.MsgDeliveryStatus d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ACIDirection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ACIReaction
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.AChat
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.AChatInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.AChatItem
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.AnyCIReaction
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CCIDirection c)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CChatItem c)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIDeleted c)
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIDirection c d)
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIFile d)
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIFileStatus d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIForwardedFrom
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIMention
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIMentionMember
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIMeta c d)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIQDirection c)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIQuote c)
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIReaction c d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CIReactionCount
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.CIStatus d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.CITimed
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.ChatInfo c)
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.ChatItem c d)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ChatItemInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ChatItemVersion
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ChatName
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ChatStats
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.ChatType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.FileError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.FileProtocol
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.GroupChatScope
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.GroupChatScopeInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.GroupSndStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.JSONCIDeleted
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.JSONCIDirection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.JSONCIFileStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.JSONCIStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.JSONChatInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.MemberDeliveryStatus
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.MemberReaction
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.MsgMetaJSON
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.NavigationInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.RcvMsgInfo
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Messages.SChatType c)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.SndCIStatusProgress
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.SndError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Messages.SrvError
instance GHC.Classes.Ord Simplex.Chat.Messages.ChatRef
instance GHC.Classes.Ord Simplex.Chat.Messages.ChatType
instance GHC.Classes.Ord Simplex.Chat.Messages.FileProtocol
instance GHC.Classes.Ord Simplex.Chat.Messages.ForwardFileError
instance GHC.Classes.Ord Simplex.Chat.Messages.GroupChatScope
instance GHC.Show.Show Simplex.Chat.Messages.ACIFileStatus
instance GHC.Show.Show Simplex.Chat.Messages.ACIReaction
instance GHC.Show.Show Simplex.Chat.Messages.ACIStatus
instance GHC.Show.Show Simplex.Chat.Messages.AChat
instance GHC.Show.Show Simplex.Chat.Messages.AChatInfo
instance GHC.Show.Show Simplex.Chat.Messages.AChatItem
instance GHC.Show.Show (Simplex.Chat.Messages.CChatItem c)
instance GHC.Show.Show (Simplex.Chat.Messages.CIDeleted c)
instance GHC.Show.Show (Simplex.Chat.Messages.CIDirection c d)
instance GHC.Show.Show (Simplex.Chat.Messages.CIFile d)
instance GHC.Show.Show Simplex.Chat.Messages.CIFileInfo
instance GHC.Show.Show (Simplex.Chat.Messages.CIFileStatus d)
instance GHC.Show.Show Simplex.Chat.Messages.CIForwardedFrom
instance GHC.Show.Show Simplex.Chat.Messages.CIMention
instance GHC.Show.Show Simplex.Chat.Messages.CIMentionMember
instance GHC.Show.Show (Simplex.Chat.Messages.CIMeta c d)
instance GHC.Show.Show Simplex.Chat.Messages.CIModeration
instance GHC.Show.Show (Simplex.Chat.Messages.CIQDirection c)
instance GHC.Show.Show (Simplex.Chat.Messages.CIQuote c)
instance GHC.Show.Show (Simplex.Chat.Messages.CIReaction c d)
instance GHC.Show.Show Simplex.Chat.Messages.CIReactionCount
instance GHC.Show.Show (Simplex.Chat.Messages.CIStatus d)
instance GHC.Show.Show Simplex.Chat.Messages.CITimed
instance GHC.Show.Show (Simplex.Chat.Messages.Chat c)
instance GHC.Show.Show (Simplex.Chat.Messages.ChatInfo c)
instance GHC.Show.Show (Simplex.Chat.Messages.ChatItem c d)
instance GHC.Show.Show Simplex.Chat.Messages.ChatItemInfo
instance GHC.Show.Show Simplex.Chat.Messages.ChatItemVersion
instance GHC.Show.Show Simplex.Chat.Messages.ChatName
instance GHC.Show.Show Simplex.Chat.Messages.ChatRef
instance GHC.Show.Show Simplex.Chat.Messages.ChatStats
instance GHC.Show.Show Simplex.Chat.Messages.ChatType
instance GHC.Show.Show Simplex.Chat.Messages.FileError
instance GHC.Show.Show Simplex.Chat.Messages.FileProtocol
instance GHC.Show.Show Simplex.Chat.Messages.GroupChatScope
instance GHC.Show.Show Simplex.Chat.Messages.GroupChatScopeInfo
instance GHC.Show.Show Simplex.Chat.Messages.GroupChatScopeTag
instance GHC.Show.Show Simplex.Chat.Messages.GroupScopeName
instance GHC.Show.Show Simplex.Chat.Messages.GroupSndStatus
instance GHC.Show.Show Simplex.Chat.Messages.JSONCIDeleted
instance GHC.Show.Show Simplex.Chat.Messages.JSONCIDirection
instance GHC.Show.Show Simplex.Chat.Messages.JSONCIStatus
instance GHC.Show.Show Simplex.Chat.Messages.MemberDeliveryStatus
instance GHC.Show.Show Simplex.Chat.Messages.MemberReaction
instance GHC.Show.Show Simplex.Chat.Messages.MsgMetaJSON
instance GHC.Show.Show Simplex.Chat.Messages.NavigationInfo
instance GHC.Show.Show (Simplex.Chat.Messages.NewChatItem d)
instance GHC.Show.Show (Simplex.Chat.Messages.NewRcvMessage e)
instance GHC.Show.Show Simplex.Chat.Messages.RcvMsgDelivery
instance GHC.Show.Show Simplex.Chat.Messages.RcvMsgInfo
instance GHC.Show.Show (Simplex.Chat.Messages.SChatType c)
instance GHC.Show.Show Simplex.Chat.Messages.SendName
instance GHC.Show.Show Simplex.Chat.Messages.SndCIStatusProgress
instance GHC.Show.Show Simplex.Chat.Messages.SndError
instance GHC.Show.Show Simplex.Chat.Messages.SndMessage
instance GHC.Show.Show Simplex.Chat.Messages.SndMsgDelivery
instance GHC.Show.Show Simplex.Chat.Messages.SrvError
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.ACIFileStatus
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.ACIStatus
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Simplex.Messaging.Encoding.String.StrEncoding (Simplex.Chat.Messages.CIFileStatus d)
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Simplex.Messaging.Encoding.String.StrEncoding (Simplex.Chat.Messages.CIStatus d)
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.FileError
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.GroupSndStatus
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.SndCIStatusProgress
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.SndError
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Messages.SrvError
instance Data.Type.Equality.TestEquality Simplex.Chat.Messages.SChatType
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Messages.CIForwardedFromTag
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Messages.FileProtocol
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Messages.GroupChatScopeTag
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Messages.CIFileStatus d)
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Messages.CIForwardedFromTag
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Messages.CIStatus d)
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Messages.FileProtocol
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Messages.GroupChatScopeTag
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Messages.GroupSndStatus
instance Database.SQLite.Simple.ToField.ToField (Simplex.Chat.Messages.MsgDeliveryStatus d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ACIReaction
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.AChat
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.AChatInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.AChatItem
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CChatItem c)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIDeleted c)
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIDirection c d)
instance Simplex.Chat.Messages.CIContent.MsgDirectionI d => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIFile d)
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIFileStatus d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIForwardedFrom
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIMention
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIMentionMember
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIMeta c d)
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIQDirection c)
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIQuote c)
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIReaction c d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CIReactionCount
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.CIStatus d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.CITimed
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.Chat c)
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.ChatInfo c)
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.ChatItem c d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ChatItemInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ChatItemVersion
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ChatName
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ChatStats
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.ChatType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.FileError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.FileProtocol
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.GroupChatScope
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.GroupChatScopeInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.GroupSndStatus
instance (Simplex.Chat.Messages.ChatTypeI c, Simplex.Chat.Messages.CIContent.MsgDirectionI d) => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.JSONAnyChatItem c d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.JSONCIDeleted
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.JSONCIDirection
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.JSONCIFileStatus
instance Simplex.Chat.Messages.ChatTypeI c => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.JSONCIReaction c d)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.JSONCIStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.JSONChatInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.MemberDeliveryStatus
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.MemberReaction
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.MsgMetaJSON
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.NavigationInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.RcvMsgInfo
instance Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Messages.SChatType c)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.SndCIStatusProgress
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.SndError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Messages.SrvError

module Simplex.Chat.Delivery
type DeliveryWorkerKey = (GroupId, DeliveryWorkerScope)
data DeliveryWorkerScope
DWSGroup :: DeliveryWorkerScope
DWSMemberSupport :: DeliveryWorkerScope
data DeliveryJobScope
DJSGroup :: DeliveryJobSpec -> DeliveryJobScope
[jobSpec] :: DeliveryJobScope -> DeliveryJobSpec
DJSMemberSupport :: GroupMemberId -> DeliveryJobScope
[supportGMId] :: DeliveryJobScope -> GroupMemberId
data DeliveryJobSpec
DJDeliveryJob :: Bool -> DeliveryJobSpec
[includePending] :: DeliveryJobSpec -> Bool
DJRelayRemoved :: DeliveryJobSpec
data DeliveryJobSpecTag
DJSTDeliveryJob :: DeliveryJobSpecTag
DJSTRelayRemoved :: DeliveryJobSpecTag
toWorkerScope :: DeliveryJobScope -> DeliveryWorkerScope
isRelayRemoved :: DeliveryJobScope -> Bool
jobScopeImpliedSpec :: DeliveryJobScope -> DeliveryJobSpec
jobSpecImpliedPending :: DeliveryJobSpec -> Bool
infoToDeliveryScope :: GroupInfo -> Maybe GroupChatScopeInfo -> DeliveryJobScope
memberEventDeliveryScope :: GroupMember -> Maybe DeliveryJobScope
data NewMessageDeliveryTask
NewMessageDeliveryTask :: MessageId -> DeliveryJobScope -> MessageFromChannel -> NewMessageDeliveryTask
[messageId] :: NewMessageDeliveryTask -> MessageId
[jobScope] :: NewMessageDeliveryTask -> DeliveryJobScope
[messageFromChannel] :: NewMessageDeliveryTask -> MessageFromChannel
data MessageDeliveryTask
MessageDeliveryTask :: Int64 -> DeliveryJobScope -> GroupMemberId -> MemberId -> ContactName -> UTCTime -> ChatMessage 'Json -> MessageFromChannel -> MessageDeliveryTask
[taskId] :: MessageDeliveryTask -> Int64
[jobScope] :: MessageDeliveryTask -> DeliveryJobScope
[senderGMId] :: MessageDeliveryTask -> GroupMemberId
[senderMemberId] :: MessageDeliveryTask -> MemberId
[senderMemberName] :: MessageDeliveryTask -> ContactName
[brokerTs] :: MessageDeliveryTask -> UTCTime
[chatMessage] :: MessageDeliveryTask -> ChatMessage 'Json
[messageFromChannel] :: MessageDeliveryTask -> MessageFromChannel
deliveryTaskId :: MessageDeliveryTask -> Int64
data DeliveryTaskStatus
DTSNew :: DeliveryTaskStatus
DTSProcessed :: DeliveryTaskStatus
DTSError :: DeliveryTaskStatus
data MessageDeliveryJob
MessageDeliveryJob :: Int64 -> DeliveryJobScope -> Maybe GroupMemberId -> ByteString -> Maybe GroupMemberId -> MessageDeliveryJob
[jobId] :: MessageDeliveryJob -> Int64
[jobScope] :: MessageDeliveryJob -> DeliveryJobScope
[singleSenderGMId_] :: MessageDeliveryJob -> Maybe GroupMemberId
[body] :: MessageDeliveryJob -> ByteString
[cursorGMId_] :: MessageDeliveryJob -> Maybe GroupMemberId
deliveryJobId :: MessageDeliveryJob -> Int64
data DeliveryJobStatus
DJSPending :: DeliveryJobStatus
DJSComplete :: DeliveryJobStatus
DJSError :: DeliveryJobStatus
instance GHC.Classes.Eq Simplex.Chat.Delivery.DeliveryWorkerScope
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Delivery.DeliveryJobSpecTag
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Delivery.DeliveryJobStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Delivery.DeliveryTaskStatus
instance Database.SQLite.Simple.FromField.FromField Simplex.Chat.Delivery.DeliveryWorkerScope
instance GHC.Classes.Ord Simplex.Chat.Delivery.DeliveryWorkerScope
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryJobScope
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryJobSpec
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryJobSpecTag
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryJobStatus
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryTaskStatus
instance GHC.Show.Show Simplex.Chat.Delivery.DeliveryWorkerScope
instance GHC.Show.Show Simplex.Chat.Delivery.MessageDeliveryJob
instance GHC.Show.Show Simplex.Chat.Delivery.MessageDeliveryTask
instance GHC.Show.Show Simplex.Chat.Delivery.NewMessageDeliveryTask
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Delivery.DeliveryJobSpecTag
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Delivery.DeliveryJobStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Delivery.DeliveryTaskStatus
instance Simplex.Messaging.Encoding.String.TextEncoding Simplex.Chat.Delivery.DeliveryWorkerScope
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Delivery.DeliveryJobSpecTag
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Delivery.DeliveryJobStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Delivery.DeliveryTaskStatus
instance Database.SQLite.Simple.ToField.ToField Simplex.Chat.Delivery.DeliveryWorkerScope

module Simplex.Chat.Store.Shared
data ChatLockEntity
CLInvitation :: ByteString -> ChatLockEntity
CLConnection :: Int64 -> ChatLockEntity
CLContact :: ContactId -> ChatLockEntity
CLGroup :: GroupId -> ChatLockEntity
CLUserContact :: Int64 -> ChatLockEntity
CLContactRequest :: Int64 -> ChatLockEntity
CLFile :: Int64 -> ChatLockEntity
data StoreError
SEDuplicateName :: StoreError
SEUserNotFound :: UserId -> StoreError
[userId] :: StoreError -> UserId
SEUserNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEUserNotFoundByContactId :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEUserNotFoundByGroupId :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEUserNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEUserNotFoundByContactRequestId :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEContactNotFound :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEContactNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEContactNotFoundByMemberId :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEContactNotReady :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEDuplicateContactLink :: StoreError
SEUserContactLinkNotFound :: StoreError
SEContactRequestNotFound :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEContactRequestNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEInvalidContactRequestEntity :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEInvalidBusinessChatContactRequest :: StoreError
SEGroupNotFound :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEGroupNotFoundByName :: GroupName -> StoreError
[groupName] :: StoreError -> GroupName
SEGroupMemberNameNotFound :: GroupId -> ContactName -> StoreError
[groupId] :: StoreError -> GroupId
[groupMemberName] :: StoreError -> ContactName
SEGroupMemberNotFound :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEGroupMemberNotFoundByIndex :: Int64 -> StoreError
[groupMemberIndex] :: StoreError -> Int64
SEMemberRelationsVectorNotFound :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEGroupHostMemberNotFound :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEGroupMemberNotFoundByMemberId :: MemberId -> StoreError
[memberId] :: StoreError -> MemberId
SEMemberContactGroupMemberNotFound :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEInvalidMemberRelationUpdate :: StoreError
SEGroupWithoutUser :: StoreError
SEDuplicateGroupMember :: StoreError
SEGroupAlreadyJoined :: StoreError
SEGroupInvitationNotFound :: StoreError
SENoteFolderAlreadyExists :: NoteFolderId -> StoreError
[noteFolderId] :: StoreError -> NoteFolderId
SENoteFolderNotFound :: NoteFolderId -> StoreError
[noteFolderId] :: StoreError -> NoteFolderId
SEUserNoteFolderNotFound :: StoreError
SESndFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SESndFileInvalid :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileDescrNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileInvalid :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileInvalidDescrPart :: StoreError
SELocalFileNoTransfer :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SESharedMsgIdNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEFileIdNotFoundBySharedMsgId :: SharedMsgId -> StoreError
[sharedMsgId] :: StoreError -> SharedMsgId
SESndFileNotFoundXFTP :: AgentSndFileId -> StoreError
[agentSndFileId] :: StoreError -> AgentSndFileId
SERcvFileNotFoundXFTP :: AgentRcvFileId -> StoreError
[agentRcvFileId] :: StoreError -> AgentRcvFileId
SEConnectionNotFound :: AgentConnId -> StoreError
[agentConnId] :: StoreError -> AgentConnId
SEConnectionNotFoundById :: Int64 -> StoreError
[connId] :: StoreError -> Int64
SEConnectionNotFoundByMemberId :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEPendingConnectionNotFound :: Int64 -> StoreError
[connId] :: StoreError -> Int64
SEUniqueID :: StoreError
SELargeMsg :: StoreError
SEInternalError :: String -> StoreError
[message] :: StoreError -> String
SEDBException :: String -> StoreError
[message] :: StoreError -> String
SEDBBusyError :: String -> StoreError
[message] :: StoreError -> String
SEBadChatItem :: ChatItemId -> Maybe ChatItemTs -> StoreError
[itemId] :: StoreError -> ChatItemId
[itemTs] :: StoreError -> Maybe ChatItemTs
SEChatItemNotFound :: ChatItemId -> StoreError
[itemId] :: StoreError -> ChatItemId
SEChatItemNotFoundByText :: Text -> StoreError
[text] :: StoreError -> Text
SEChatItemSharedMsgIdNotFound :: SharedMsgId -> StoreError
[sharedMsgId] :: StoreError -> SharedMsgId
SEChatItemNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEChatItemNotFoundByContactId :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEChatItemNotFoundByGroupId :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEProfileNotFound :: Int64 -> StoreError
[profileId] :: StoreError -> Int64
SEDuplicateGroupLink :: GroupInfo -> StoreError
[groupInfo] :: StoreError -> GroupInfo
SEGroupLinkNotFound :: GroupInfo -> StoreError
[groupInfo] :: StoreError -> GroupInfo
SEHostMemberIdNotFound :: Int64 -> StoreError
[groupId] :: StoreError -> Int64
SEContactNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SENoGroupSndStatus :: ChatItemId -> GroupMemberId -> StoreError
[itemId] :: StoreError -> ChatItemId
[groupMemberId] :: StoreError -> GroupMemberId
SEDuplicateGroupMessage :: Int64 -> SharedMsgId -> Maybe GroupMemberId -> Maybe GroupMemberId -> StoreError
[groupId] :: StoreError -> Int64
[sharedMsgId] :: StoreError -> SharedMsgId
[authorGroupMemberId] :: StoreError -> Maybe GroupMemberId
[forwardedByGroupMemberId] :: StoreError -> Maybe GroupMemberId
SERemoteHostNotFound :: RemoteHostId -> StoreError
[remoteHostId] :: StoreError -> RemoteHostId
SERemoteHostUnknown :: StoreError
SERemoteHostDuplicateCA :: StoreError
SERemoteCtrlNotFound :: RemoteCtrlId -> StoreError
[remoteCtrlId] :: StoreError -> RemoteCtrlId
SERemoteCtrlDuplicateCA :: StoreError
SEProhibitedDeleteUser :: UserId -> ContactId -> StoreError
[userId] :: StoreError -> UserId
[contactId] :: StoreError -> ContactId
SEOperatorNotFound :: Int64 -> StoreError
[serverOperatorId] :: StoreError -> Int64
SEUsageConditionsNotFound :: StoreError
SEInvalidQuote :: StoreError
SEInvalidMention :: StoreError
SEInvalidDeliveryTask :: Int64 -> StoreError
[taskId] :: StoreError -> Int64
SEDeliveryTaskNotFound :: Int64 -> StoreError
[taskId] :: StoreError -> Int64
SEInvalidDeliveryJob :: Int64 -> StoreError
[jobId] :: StoreError -> Int64
SEDeliveryJobNotFound :: Int64 -> StoreError
[jobId] :: StoreError -> Int64

-- | Error when reading work item that suspends worker - do not use!
SEWorkItemError :: String -> StoreError
[errContext] :: StoreError -> String
insertedRowId :: Connection -> IO Int64
checkConstraint :: StoreError -> ExceptT StoreError IO a -> ExceptT StoreError IO a
constraintError :: SQLError -> Bool
handleSQLError :: StoreError -> SQLError -> StoreError
mkStoreError :: SomeException -> StoreError
fileInfoQuery :: Query
toFileInfo :: (Int64, Maybe ACIFileStatus, Maybe FilePath) -> CIFileInfo
type EntityIdsRow = (Maybe Int64, Maybe Int64, Maybe Int64)
type ConnectionRow = (Int64, ConnId, Int, Maybe Int64, Maybe Int64, BoolInt, Maybe GroupLinkId, Maybe XContactId) :. (Maybe Int64, ConnStatus, ConnType, BoolInt, LocalAlias) :. EntityIdsRow :. (UTCTime, Maybe Text, Maybe UTCTime, PQSupport, PQEncryption, Maybe PQEncryption, Maybe PQEncryption, Int, Int, Maybe VersionChat, VersionChat, VersionChat)
type MaybeConnectionRow = (Maybe Int64, Maybe ConnId, Maybe Int, Maybe Int64, Maybe Int64, Maybe BoolInt, Maybe GroupLinkId, Maybe XContactId) :. (Maybe Int64, Maybe ConnStatus, Maybe ConnType, Maybe BoolInt, Maybe LocalAlias) :. EntityIdsRow :. (Maybe UTCTime, Maybe Text, Maybe UTCTime, Maybe PQSupport, Maybe PQEncryption, Maybe PQEncryption, Maybe PQEncryption, Maybe Int, Maybe Int, Maybe VersionChat, Maybe VersionChat, Maybe VersionChat)
toConnection :: VersionRangeChat -> ConnectionRow -> Connection
toMaybeConnection :: VersionRangeChat -> MaybeConnectionRow -> Maybe Connection
createConnection_ :: Connection -> UserId -> ConnType -> Maybe Int64 -> ConnId -> ConnStatus -> VersionChat -> VersionRangeChat -> Maybe ContactId -> Maybe Int64 -> Maybe ProfileId -> Int -> UTCTime -> SubscriptionMode -> PQSupport -> IO Connection
createIncognitoProfile_ :: Connection -> UserId -> UTCTime -> Profile -> IO Int64
updateConnSupportPQ :: Connection -> Int64 -> PQSupport -> PQEncryption -> IO ()
updateConnPQSndEnabled :: Connection -> Int64 -> PQEncryption -> IO ()
updateConnPQRcvEnabled :: Connection -> Int64 -> PQEncryption -> IO ()
updateConnPQEnabledCON :: Connection -> Int64 -> PQEncryption -> IO ()
setPeerChatVRange :: Connection -> Int64 -> VersionChat -> VersionRangeChat -> IO ()
setMemberChatVRange :: Connection -> GroupMemberId -> VersionRangeChat -> IO ()
setCommandConnId :: Connection -> User -> CommandId -> Int64 -> IO ()
createContact :: Connection -> User -> Profile -> ExceptT StoreError IO ()
createContact_ :: Connection -> User -> Profile -> Preferences -> Maybe (ACreatedConnLink, Maybe SharedMsgId) -> LocalAlias -> UTCTime -> ExceptT StoreError IO ContactId
newContactUserPrefs :: User -> Profile -> Preferences
type NewPreparedContactRow = (Maybe AConnectionRequestUri, Maybe AConnShortLink, Maybe SharedMsgId)
toPreparedContactRow :: Maybe (ACreatedConnLink, Maybe SharedMsgId) -> NewPreparedContactRow
type NewPreparedGroupRow (m :: ConnectionMode) = (Maybe ConnectionRequestUri m, Maybe ConnShortLink m, Maybe SharedMsgId)
toPreparedGroupRow :: forall (m :: ConnectionMode). Maybe (CreatedConnLink m, Maybe SharedMsgId) -> NewPreparedGroupRow m
deleteUnusedIncognitoProfileById_ :: Connection -> User -> ProfileId -> IO ()
type PreparedContactRow = (Maybe AConnectionRequestUri, Maybe AConnShortLink, Maybe SharedMsgId, Maybe SharedMsgId)
type GroupDirectInvitationRow = (Maybe ConnReqInvitation, Maybe GroupId, Maybe GroupMemberId, Maybe Int64, BoolInt)
type ContactRow' = (ProfileId, ContactName, ContactName, Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, LocalAlias, BoolInt, ContactStatus) :. (Maybe MsgFilter, Maybe BoolInt, BoolInt, Maybe Preferences, Preferences, UTCTime, UTCTime, Maybe UTCTime) :. PreparedContactRow :. (Maybe Int64, Maybe GroupMemberId, BoolInt) :. GroupDirectInvitationRow :. (Maybe UIThemeEntityOverrides, BoolInt, Maybe CustomData, Maybe Int64)
type ContactRow = Only ContactId :. ContactRow'
toContact :: VersionRangeChat -> User -> [ChatTagId] -> (ContactRow :. MaybeConnectionRow) -> Contact
toPreparedContact :: PreparedContactRow -> Maybe PreparedContact
toACreatedConnLink_ :: Maybe AConnectionRequestUri -> Maybe AConnShortLink -> Maybe ACreatedConnLink
toGroupDirectInvitation :: GroupDirectInvitationRow -> Maybe GroupDirectInvitation
getProfileById :: Connection -> UserId -> Int64 -> ExceptT StoreError IO LocalProfile
type ContactRequestRow = (Int64, ContactName, AgentInvId, Maybe ContactId, Maybe GroupId, Maybe Int64) :. (Int64, ContactName, Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType) :. (Maybe XContactId, PQSupport, Maybe SharedMsgId, Maybe SharedMsgId, Maybe Preferences, UTCTime, UTCTime, VersionChat, VersionChat)
toContactRequest :: ContactRequestRow -> UserContactRequest
userQuery :: Query
toUser :: ((UserId, UserId, ContactId, ProfileId, BoolInt, Int64) :. ((ContactName, Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, Maybe Preferences) :. (BoolInt, BoolInt, BoolInt, BoolInt, Maybe B64UrlByteString, Maybe B64UrlByteString, Maybe UTCTime, Maybe UIThemeEntityOverrides))) -> User
toPendingContactConnection :: (Int64, ConnId, ConnStatus, Maybe ByteString, Maybe Int64, Maybe GroupLinkId, Maybe Int64, Maybe ConnReqInvitation, Maybe ShortLinkInvitation, LocalAlias, UTCTime, UTCTime) -> PendingContactConnection
getConnReqInv :: Connection -> Int64 -> ExceptT StoreError IO ConnReqInvitation

-- | Saves unique local display name based on passed displayName, suffixed
--   with _N if required. This function should be called inside
--   transaction.
withLocalDisplayName :: Connection -> UserId -> Text -> (Text -> IO (Either StoreError a)) -> IO (Either StoreError a)
createWithRandomId :: TVar ChaChaDRG -> (ByteString -> IO a) -> ExceptT StoreError IO a
createWithRandomId' :: TVar ChaChaDRG -> (ByteString -> IO (Either StoreError a)) -> ExceptT StoreError IO a
createWithRandomBytes :: Int -> TVar ChaChaDRG -> (ByteString -> IO a) -> ExceptT StoreError IO a
createWithRandomBytes' :: Int -> TVar ChaChaDRG -> (ByteString -> IO (Either StoreError a)) -> ExceptT StoreError IO a
encodedRandomBytes :: TVar ChaChaDRG -> Int -> IO ByteString
assertNotUser :: Connection -> User -> Contact -> ExceptT StoreError IO ()
safeDeleteLDN :: Connection -> User -> ContactName -> IO ()
type PreparedGroupRow = (Maybe ConnReqContact, Maybe ShortLinkContact, BoolInt, BoolInt, Maybe SharedMsgId, Maybe SharedMsgId)
type BusinessChatInfoRow = (Maybe BusinessChatType, Maybe MemberId, Maybe MemberId)
type GroupInfoRow = (Int64, GroupName, GroupName, Text, Maybe Text, Text, Maybe Text, Maybe ImageData) :. (Maybe MsgFilter, Maybe BoolInt, BoolInt, Maybe GroupPreferences, Maybe GroupMemberAdmission) :. (UTCTime, UTCTime, Maybe UTCTime, Maybe UTCTime) :. PreparedGroupRow :. BusinessChatInfoRow :. (Maybe UIThemeEntityOverrides, Int64, Maybe CustomData, Maybe Int64, Int, Maybe ConnReqContact) :. GroupMemberRow
type GroupMemberRow = (GroupMemberId, GroupId, Int64, MemberId, VersionChat, VersionChat, GroupMemberRole, GroupMemberCategory, GroupMemberStatus, BoolInt, Maybe MemberRestrictionStatus) :. (Maybe Int64, Maybe GroupMemberId, ContactName, Maybe ContactId, ProfileId) :. ProfileRow :. (UTCTime, UTCTime) :. (Maybe UTCTime, Int64, Int64, Int64, Maybe UTCTime)
type ProfileRow = (ProfileId, ContactName, Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, LocalAlias, Maybe Preferences)
toGroupInfo :: VersionRangeChat -> Int64 -> [ChatTagId] -> GroupInfoRow -> GroupInfo
toPreparedGroup :: PreparedGroupRow -> Maybe PreparedGroup
toGroupMember :: Int64 -> GroupMemberRow -> GroupMember
groupMemberQuery :: Query
toContactMember :: VersionRangeChat -> User -> (GroupMemberRow :. MaybeConnectionRow) -> GroupMember
rowToLocalProfile :: ProfileRow -> LocalProfile
toBusinessChatInfo :: BusinessChatInfoRow -> Maybe BusinessChatInfo
groupInfoQuery :: Query
groupInfoQueryFields :: Query
groupInfoQueryFrom :: Query
createChatTag :: Connection -> User -> Maybe Text -> Text -> IO ChatTagId
deleteChatTag :: Connection -> User -> ChatTagId -> IO ()
updateChatTag :: Connection -> User -> ChatTagId -> Maybe Text -> Text -> IO ()
updateChatTagOrder :: Connection -> User -> ChatTagId -> Int -> IO ()
reorderChatTags :: Connection -> User -> [ChatTagId] -> IO ()
getUserChatTags :: Connection -> User -> IO [ChatTag]
getGroupChatTags :: Connection -> GroupId -> IO [ChatTagId]
addGroupChatTags :: Connection -> GroupInfo -> IO GroupInfo
setViaGroupLinkUri :: Connection -> GroupId -> Int64 -> IO ()
deleteConnectionRecord :: Connection -> User -> Int64 -> IO ()
instance Simplex.Messaging.Util.AnyError Simplex.Chat.Store.Shared.StoreError
instance Simplex.Messaging.Agent.Store.AnyStoreError Simplex.Chat.Store.Shared.StoreError
instance GHC.Classes.Eq Simplex.Chat.Store.Shared.ChatLockEntity
instance GHC.Exception.Type.Exception Simplex.Chat.Store.Shared.StoreError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Store.Shared.StoreError
instance GHC.Classes.Ord Simplex.Chat.Store.Shared.ChatLockEntity
instance GHC.Show.Show Simplex.Chat.Store.Shared.StoreError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Store.Shared.StoreError

module Simplex.Chat.Store.Remote
insertRemoteHost :: Connection -> Text -> FilePath -> Maybe RCCtrlAddress -> Maybe Word16 -> RCHostPairing -> ExceptT StoreError IO RemoteHostId
getRemoteHosts :: Connection -> IO [RemoteHost]
getRemoteHost :: Connection -> RemoteHostId -> ExceptT StoreError IO RemoteHost
getRemoteHostByFingerprint :: Connection -> KeyHash -> IO (Maybe RemoteHost)
remoteHostQuery :: Query
toRemoteHost :: (Int64, Text, FilePath, APrivateSignKey, SignedObject Certificate, PrivateKeyEd25519, KeyHash, PublicKeyX25519, Maybe Text, Maybe Text, Maybe Word16) -> RemoteHost
updateHostPairing :: Connection -> RemoteHostId -> Text -> PublicKeyX25519 -> Maybe RCCtrlAddress -> Maybe Word16 -> IO ()
rcCtrlAddressFields_ :: Maybe RCCtrlAddress -> (Maybe Text, Maybe Text)
deleteRemoteHostRecord :: Connection -> RemoteHostId -> IO ()
insertRemoteCtrl :: Connection -> Text -> RCCtrlPairing -> ExceptT StoreError IO RemoteCtrlId
getRemoteCtrls :: Connection -> IO [RemoteCtrl]
getRemoteCtrl :: Connection -> RemoteCtrlId -> ExceptT StoreError IO RemoteCtrl
getRemoteCtrlByFingerprint :: Connection -> KeyHash -> IO (Maybe RemoteCtrl)
remoteCtrlQuery :: Query
toRemoteCtrl :: (RemoteCtrlId, Text, APrivateSignKey, SignedObject Certificate, KeyHash, PublicKeyEd25519, PrivateKeyX25519, Maybe PrivateKeyX25519) -> RemoteCtrl
updateRemoteCtrl :: Connection -> RemoteCtrl -> Text -> PrivateKeyX25519 -> IO ()
deleteRemoteCtrlRecord :: Connection -> RemoteCtrlId -> IO ()

module Simplex.Chat.Store.NoteFolders
createNoteFolder :: Connection -> User -> ExceptT StoreError IO ()
getUserNoteFolderId :: Connection -> User -> ExceptT StoreError IO NoteFolderId
getNoteFolder :: Connection -> User -> NoteFolderId -> ExceptT StoreError IO NoteFolder
updateNoteFolderUnreadChat :: Connection -> User -> NoteFolder -> Bool -> IO ()
deleteNoteFolderFiles :: Connection -> UserId -> NoteFolder -> IO ()
deleteNoteFolderCIs :: Connection -> User -> NoteFolder -> IO ()

module Simplex.Chat.Store.Direct
updateContactLDN_ :: Connection -> User -> Int64 -> ContactName -> ContactName -> UTCTime -> IO ()
updateContactProfile_ :: Connection -> UserId -> ProfileId -> Profile -> IO ()
updateContactProfile_' :: Connection -> UserId -> ProfileId -> Profile -> UTCTime -> IO ()
updateMemberContactProfileReset_' :: Connection -> UserId -> ProfileId -> Profile -> UTCTime -> IO ()
updateMemberContactProfileReset_ :: Connection -> UserId -> ProfileId -> Profile -> IO ()
updateMemberContactProfile_ :: Connection -> UserId -> ProfileId -> Profile -> IO ()
updateMemberContactProfile_' :: Connection -> UserId -> ProfileId -> Profile -> UTCTime -> IO ()
deleteContactProfile_ :: Connection -> UserId -> ContactId -> IO ()
deleteUnusedProfile_ :: Connection -> UserId -> ProfileId -> IO ()
getPendingContactConnection :: Connection -> UserId -> Int64 -> ExceptT StoreError IO PendingContactConnection
deletePendingContactConnection :: Connection -> UserId -> Int64 -> IO ()
createDirectConnection' :: Connection -> UserId -> ConnId -> CreatedLinkInvitation -> Maybe ContactId -> ConnStatus -> Maybe Profile -> SubscriptionMode -> VersionChat -> PQSupport -> IO Connection
createDirectConnection :: Connection -> User -> ConnId -> CreatedLinkInvitation -> Maybe ContactId -> ConnStatus -> Maybe Profile -> SubscriptionMode -> VersionChat -> PQSupport -> IO PendingContactConnection
createIncognitoProfile :: Connection -> User -> Profile -> IO Int64
createConnReqConnection :: Connection -> UserId -> ConnId -> Maybe PreparedChatEntity -> ConnReqContact -> ConnReqUriHash -> Maybe ShortLinkContact -> XContactId -> Maybe Profile -> Maybe GroupLinkId -> SubscriptionMode -> VersionChat -> PQSupport -> IO Connection
setPreparedGroupStartedConnection :: Connection -> GroupId -> IO ()
getProfileById :: Connection -> UserId -> Int64 -> ExceptT StoreError IO LocalProfile
getConnReqContactXContactId :: Connection -> VersionRangeChat -> User -> ConnReqUriHash -> ConnReqUriHash -> IO (Either (Maybe Connection) Contact)
createPreparedContact :: Connection -> VersionRangeChat -> User -> Profile -> ACreatedConnLink -> Maybe SharedMsgId -> ExceptT StoreError IO Contact
updatePreparedContactUser :: Connection -> VersionRangeChat -> User -> Contact -> User -> ExceptT StoreError IO Contact
createDirectContact :: Connection -> VersionRangeChat -> User -> Connection -> Profile -> ExceptT StoreError IO Contact
deleteContactConnections :: Connection -> User -> Contact -> IO ()
deleteContactFiles :: Connection -> User -> Contact -> IO ()
deleteContact :: Connection -> User -> Contact -> ExceptT StoreError IO ()
deleteContactWithoutGroups :: Connection -> User -> Contact -> ExceptT StoreError IO ()
getDeletedContacts :: Connection -> VersionRangeChat -> User -> IO [Contact]
getContactByName :: Connection -> VersionRangeChat -> User -> ContactName -> ExceptT StoreError IO Contact
getContact :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO Contact
getContactViaShortLinkToConnect :: forall (c :: ConnectionMode). ConnectionModeI c => Connection -> VersionRangeChat -> User -> ConnShortLink c -> ExceptT StoreError IO (Maybe (ConnectionRequestUri c, Contact))
getContactIdByName :: Connection -> User -> ContactName -> ExceptT StoreError IO Int64
updateContactProfile :: Connection -> User -> Contact -> Profile -> ExceptT StoreError IO Contact
updateContactUserPreferences :: Connection -> User -> Contact -> Preferences -> IO Contact
updateContactAlias :: Connection -> UserId -> Contact -> LocalAlias -> IO Contact
updateContactConnectionAlias :: Connection -> UserId -> PendingContactConnection -> LocalAlias -> IO PendingContactConnection
updatePCCIncognito :: Connection -> User -> PendingContactConnection -> Maybe ProfileId -> Maybe ShortLinkInvitation -> IO PendingContactConnection
deletePCCIncognitoProfile :: Connection -> User -> ProfileId -> IO ()
updateContactUnreadChat :: Connection -> User -> Contact -> Bool -> IO ()
setUserChatsRead :: Connection -> User -> IO ()
updateContactStatus :: Connection -> User -> Contact -> ContactStatus -> IO Contact
updateGroupUnreadChat :: Connection -> User -> GroupInfo -> Bool -> IO ()
setConnectionVerified :: Connection -> User -> Int64 -> Maybe Text -> IO ()
incAuthErrCounter :: Connection -> User -> Connection -> IO Int
setAuthErrCounter :: Connection -> User -> Connection -> Int -> IO ()
incQuotaErrCounter :: Connection -> User -> Connection -> IO Int
setQuotaErrCounter :: Connection -> User -> Connection -> Int -> IO ()
getUserContacts :: Connection -> VersionRangeChat -> User -> IO [Contact]
getUserContactLinkIdByCReq :: Connection -> Int64 -> ExceptT StoreError IO (Maybe Int64)
getContactRequest :: Connection -> User -> Int64 -> ExceptT StoreError IO UserContactRequest
getContactRequest' :: Connection -> User -> Int64 -> IO (Maybe UserContactRequest)
getBusinessContactRequest :: Connection -> User -> GroupId -> IO (Maybe UserContactRequest)
getContactRequestIdByName :: Connection -> UserId -> ContactName -> ExceptT StoreError IO Int64
deleteContactRequest :: Connection -> User -> Int64 -> IO ()
createContactFromRequest :: Connection -> User -> Maybe Int64 -> ConnId -> VersionChat -> VersionRangeChat -> ContactName -> ProfileId -> Profile -> Maybe XContactId -> Maybe IncognitoProfile -> SubscriptionMode -> PQSupport -> Bool -> IO (Contact, Connection)
createAcceptedContactConn :: Connection -> User -> Maybe Int64 -> ContactId -> ConnId -> VersionChat -> VersionRangeChat -> PQSupport -> Maybe IncognitoProfile -> SubscriptionMode -> UTCTime -> IO Connection
updateContactAccepted :: Connection -> User -> Contact -> Bool -> IO ()
getUserByContactRequestId :: Connection -> Int64 -> ExceptT StoreError IO User
getContactConnections :: Connection -> VersionRangeChat -> UserId -> Contact -> IO [Connection]
getConnectionById :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO Connection
getConnectionsContacts :: Connection -> [ConnId] -> IO [ContactRef]
updateConnectionStatus :: Connection -> Connection -> ConnStatus -> IO ()
updateConnectionStatusFromTo :: Connection -> Connection -> ConnStatus -> ConnStatus -> IO Connection
updateContactSettings :: Connection -> User -> Int64 -> ChatSettings -> IO ()
setConnConnReqInv :: Connection -> User -> Int64 -> ConnReqInvitation -> IO ()
resetContactConnInitiated :: Connection -> User -> Connection -> IO ()
setContactCustomData :: Connection -> User -> Contact -> Maybe CustomData -> IO ()
setContactUIThemes :: Connection -> User -> Contact -> Maybe UIThemeEntityOverrides -> IO ()
setContactChatDeleted :: Connection -> User -> Contact -> Bool -> IO ()
getDirectChatTags :: Connection -> ContactId -> IO [ChatTagId]
addDirectChatTags :: Connection -> Contact -> IO Contact
updateDirectChatTags :: Connection -> ContactId -> [ChatTagId] -> IO ()
setDirectChatTTL :: Connection -> ContactId -> Maybe Int64 -> IO ()
getDirectChatTTL :: Connection -> ContactId -> IO (Maybe Int64)
getUserContactsToExpire :: Connection -> User -> Int64 -> IO [ContactId]

module Simplex.Chat.Store.Profiles
data AutoAccept
AutoAccept :: IncognitoEnabled -> AutoAccept
[acceptIncognito] :: AutoAccept -> IncognitoEnabled
data AddressSettings
AddressSettings :: Bool -> Maybe AutoAccept -> Maybe MsgContent -> AddressSettings
[businessAddress] :: AddressSettings -> Bool
[autoAccept] :: AddressSettings -> Maybe AutoAccept
[autoReply] :: AddressSettings -> Maybe MsgContent
data UserMsgReceiptSettings
UserMsgReceiptSettings :: Bool -> Bool -> UserMsgReceiptSettings
[enable] :: UserMsgReceiptSettings -> Bool
[clearOverrides] :: UserMsgReceiptSettings -> Bool
data UserContactLink
UserContactLink :: Int64 -> CreatedLinkContact -> Bool -> BoolDef -> AddressSettings -> UserContactLink
[userContactLinkId] :: UserContactLink -> Int64
[connLinkContact] :: UserContactLink -> CreatedLinkContact
[shortLinkDataSet] :: UserContactLink -> Bool
[shortLinkLargeDataSet] :: UserContactLink -> BoolDef
[addressSettings] :: UserContactLink -> AddressSettings
data GroupLinkInfo
GroupLinkInfo :: GroupId -> GroupMemberRole -> GroupLinkInfo
[groupId] :: GroupLinkInfo -> GroupId
[memberRole] :: GroupLinkInfo -> GroupMemberRole
createUserRecord :: Connection -> AgentUserId -> Profile -> Bool -> ExceptT StoreError IO User
createUserRecordAt :: Connection -> AgentUserId -> Profile -> Bool -> UTCTime -> ExceptT StoreError IO User
getUsersInfo :: Connection -> IO [UserInfo]
getUsers :: Connection -> IO [User]
setActiveUser :: Connection -> User -> IO User
getUser :: Connection -> UserId -> ExceptT StoreError IO User
getUserIdByName :: Connection -> UserName -> ExceptT StoreError IO Int64
getUserByAConnId :: Connection -> AgentConnId -> IO (Maybe User)
getUserByASndFileId :: Connection -> AgentSndFileId -> IO (Maybe User)
getUserByARcvFileId :: Connection -> AgentRcvFileId -> IO (Maybe User)
getUserByContactId :: Connection -> ContactId -> ExceptT StoreError IO User
getUserByGroupId :: Connection -> GroupId -> ExceptT StoreError IO User
getUserByNoteFolderId :: Connection -> NoteFolderId -> ExceptT StoreError IO User
getUserByFileId :: Connection -> FileTransferId -> ExceptT StoreError IO User
getUserFileInfo :: Connection -> User -> IO [CIFileInfo]
deleteUserRecord :: Connection -> User -> IO ()
updateUserPrivacy :: Connection -> User -> IO ()
updateAllContactReceipts :: Connection -> Bool -> IO ()
updateUserContactReceipts :: Connection -> User -> UserMsgReceiptSettings -> IO ()
updateUserGroupReceipts :: Connection -> User -> UserMsgReceiptSettings -> IO ()
updateUserAutoAcceptMemberContacts :: Connection -> User -> Bool -> IO ()
updateUserProfile :: Connection -> User -> Profile -> ExceptT StoreError IO User
setUserProfileContactLink :: Connection -> User -> Maybe UserContactLink -> IO User
getUserContactProfiles :: Connection -> User -> IO [Profile]
createUserContactLink :: Connection -> User -> ConnId -> CreatedLinkContact -> SubscriptionMode -> ExceptT StoreError IO ()
getUserAddressConnection :: Connection -> VersionRangeChat -> User -> ExceptT StoreError IO Connection
deleteUserAddress :: Connection -> User -> IO ()
getUserAddress :: Connection -> User -> ExceptT StoreError IO UserContactLink
getUserContactLinkById :: Connection -> UserId -> Int64 -> ExceptT StoreError IO (UserContactLink, Maybe GroupLinkInfo)
getGroupLinkInfo :: Connection -> UserId -> GroupId -> IO (Maybe GroupLinkInfo)
getUserContactLinkByConnReq :: Connection -> User -> (ConnReqContact, ConnReqContact) -> IO (Maybe UserContactLink)
getUserContactLinkViaShortLink :: Connection -> User -> ShortLinkContact -> IO (Maybe UserContactLink)
setUserContactLinkShortLink :: Connection -> Int64 -> ShortLinkContact -> IO ()
getContactWithoutConnViaAddress :: Connection -> VersionRangeChat -> User -> (ConnReqContact, ConnReqContact) -> IO (Maybe Contact)
getContactWithoutConnViaShortAddress :: Connection -> VersionRangeChat -> User -> ShortLinkContact -> IO (Maybe Contact)
updateUserAddressSettings :: Connection -> Int64 -> AddressSettings -> IO ()
getProtocolServers :: forall (p :: ProtocolType). ProtocolTypeI p => Connection -> SProtocolType p -> User -> IO [UserServer p]
insertProtocolServer :: forall (p :: ProtocolType). ProtocolTypeI p => Connection -> SProtocolType p -> User -> UTCTime -> NewUserServer p -> IO (UserServer p)
getUpdateServerOperators :: Connection -> NonEmpty PresetOperator -> Bool -> IO [(Maybe PresetOperator, Maybe ServerOperator)]
getServerOperators :: Connection -> ExceptT StoreError IO ServerOperatorConditions
getUserServers :: Connection -> User -> ExceptT StoreError IO ([Maybe ServerOperator], [UserServer 'PSMP], [UserServer 'PXFTP])
setServerOperators :: Connection -> NonEmpty ServerOperator -> IO ()
getCurrentUsageConditions :: Connection -> ExceptT StoreError IO UsageConditions
getLatestAcceptedConditions :: Connection -> IO (Maybe UsageConditions)
setConditionsNotified :: Connection -> Int64 -> UTCTime -> IO ()
acceptConditions :: Connection -> Int64 -> NonEmpty Int64 -> UTCTime -> ExceptT StoreError IO ()
setUserServers :: Connection -> User -> UTCTime -> UpdatedUserOperatorServers -> ExceptT StoreError IO UserOperatorServers
setUserServers' :: Connection -> User -> UTCTime -> UpdatedUserOperatorServers -> IO UserOperatorServers
createCall :: Connection -> User -> Call -> UTCTime -> IO ()
deleteCalls :: Connection -> User -> ContactId -> IO ()
getCalls :: Connection -> IO [Call]
createCommand :: Connection -> User -> Maybe Int64 -> CommandFunction -> IO CommandId
setCommandConnId :: Connection -> User -> CommandId -> Int64 -> IO ()
deleteCommand :: Connection -> User -> CommandId -> IO ()
updateCommandStatus :: Connection -> User -> CommandId -> CommandStatus -> IO ()
getCommandDataByCorrId :: Connection -> User -> ACorrId -> IO (Maybe CommandData)
setUserUIThemes :: Connection -> User -> Maybe UIThemeEntityOverrides -> IO ()
profileContactLink :: UserContactLink -> ConnLinkContact
instance GHC.Classes.Eq Simplex.Chat.Store.Profiles.AddressSettings
instance GHC.Classes.Eq Simplex.Chat.Store.Profiles.AutoAccept
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Store.Profiles.AddressSettings
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Store.Profiles.AutoAccept
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Store.Profiles.UserContactLink
instance GHC.Show.Show Simplex.Chat.Store.Profiles.AddressSettings
instance GHC.Show.Show Simplex.Chat.Store.Profiles.AutoAccept
instance GHC.Show.Show Simplex.Chat.Store.Profiles.GroupLinkInfo
instance GHC.Show.Show Simplex.Chat.Store.Profiles.UserContactLink
instance GHC.Show.Show Simplex.Chat.Store.Profiles.UserMsgReceiptSettings
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Store.Profiles.AddressSettings
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Store.Profiles.AutoAccept
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Store.Profiles.UserContactLink

module Simplex.Chat.Store
data DBStore
data StoreError
SEDuplicateName :: StoreError
SEUserNotFound :: UserId -> StoreError
[userId] :: StoreError -> UserId
SEUserNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEUserNotFoundByContactId :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEUserNotFoundByGroupId :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEUserNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEUserNotFoundByContactRequestId :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEContactNotFound :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEContactNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEContactNotFoundByMemberId :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEContactNotReady :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEDuplicateContactLink :: StoreError
SEUserContactLinkNotFound :: StoreError
SEContactRequestNotFound :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEContactRequestNotFoundByName :: ContactName -> StoreError
[contactName] :: StoreError -> ContactName
SEInvalidContactRequestEntity :: Int64 -> StoreError
[contactRequestId] :: StoreError -> Int64
SEInvalidBusinessChatContactRequest :: StoreError
SEGroupNotFound :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEGroupNotFoundByName :: GroupName -> StoreError
[groupName] :: StoreError -> GroupName
SEGroupMemberNameNotFound :: GroupId -> ContactName -> StoreError
[groupId] :: StoreError -> GroupId
[groupMemberName] :: StoreError -> ContactName
SEGroupMemberNotFound :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEGroupMemberNotFoundByIndex :: Int64 -> StoreError
[groupMemberIndex] :: StoreError -> Int64
SEMemberRelationsVectorNotFound :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEGroupHostMemberNotFound :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEGroupMemberNotFoundByMemberId :: MemberId -> StoreError
[memberId] :: StoreError -> MemberId
SEMemberContactGroupMemberNotFound :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEInvalidMemberRelationUpdate :: StoreError
SEGroupWithoutUser :: StoreError
SEDuplicateGroupMember :: StoreError
SEGroupAlreadyJoined :: StoreError
SEGroupInvitationNotFound :: StoreError
SENoteFolderAlreadyExists :: NoteFolderId -> StoreError
[noteFolderId] :: StoreError -> NoteFolderId
SENoteFolderNotFound :: NoteFolderId -> StoreError
[noteFolderId] :: StoreError -> NoteFolderId
SEUserNoteFolderNotFound :: StoreError
SESndFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SESndFileInvalid :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileDescrNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEFileNotFound :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileInvalid :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SERcvFileInvalidDescrPart :: StoreError
SELocalFileNoTransfer :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SESharedMsgIdNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEFileIdNotFoundBySharedMsgId :: SharedMsgId -> StoreError
[sharedMsgId] :: StoreError -> SharedMsgId
SESndFileNotFoundXFTP :: AgentSndFileId -> StoreError
[agentSndFileId] :: StoreError -> AgentSndFileId
SERcvFileNotFoundXFTP :: AgentRcvFileId -> StoreError
[agentRcvFileId] :: StoreError -> AgentRcvFileId
SEConnectionNotFound :: AgentConnId -> StoreError
[agentConnId] :: StoreError -> AgentConnId
SEConnectionNotFoundById :: Int64 -> StoreError
[connId] :: StoreError -> Int64
SEConnectionNotFoundByMemberId :: GroupMemberId -> StoreError
[groupMemberId] :: StoreError -> GroupMemberId
SEPendingConnectionNotFound :: Int64 -> StoreError
[connId] :: StoreError -> Int64
SEUniqueID :: StoreError
SELargeMsg :: StoreError
SEInternalError :: String -> StoreError
[message] :: StoreError -> String
SEDBException :: String -> StoreError
[message] :: StoreError -> String
SEDBBusyError :: String -> StoreError
[message] :: StoreError -> String
SEBadChatItem :: ChatItemId -> Maybe ChatItemTs -> StoreError
[itemId] :: StoreError -> ChatItemId
[itemTs] :: StoreError -> Maybe ChatItemTs
SEChatItemNotFound :: ChatItemId -> StoreError
[itemId] :: StoreError -> ChatItemId
SEChatItemNotFoundByText :: Text -> StoreError
[text] :: StoreError -> Text
SEChatItemSharedMsgIdNotFound :: SharedMsgId -> StoreError
[sharedMsgId] :: StoreError -> SharedMsgId
SEChatItemNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SEChatItemNotFoundByContactId :: ContactId -> StoreError
[contactId] :: StoreError -> ContactId
SEChatItemNotFoundByGroupId :: GroupId -> StoreError
[groupId] :: StoreError -> GroupId
SEProfileNotFound :: Int64 -> StoreError
[profileId] :: StoreError -> Int64
SEDuplicateGroupLink :: GroupInfo -> StoreError
[groupInfo] :: StoreError -> GroupInfo
SEGroupLinkNotFound :: GroupInfo -> StoreError
[groupInfo] :: StoreError -> GroupInfo
SEHostMemberIdNotFound :: Int64 -> StoreError
[groupId] :: StoreError -> Int64
SEContactNotFoundByFileId :: FileTransferId -> StoreError
[fileId] :: StoreError -> FileTransferId
SENoGroupSndStatus :: ChatItemId -> GroupMemberId -> StoreError
[itemId] :: StoreError -> ChatItemId
[groupMemberId] :: StoreError -> GroupMemberId
SEDuplicateGroupMessage :: Int64 -> SharedMsgId -> Maybe GroupMemberId -> Maybe GroupMemberId -> StoreError
[groupId] :: StoreError -> Int64
[sharedMsgId] :: StoreError -> SharedMsgId
[authorGroupMemberId] :: StoreError -> Maybe GroupMemberId
[forwardedByGroupMemberId] :: StoreError -> Maybe GroupMemberId
SERemoteHostNotFound :: RemoteHostId -> StoreError
[remoteHostId] :: StoreError -> RemoteHostId
SERemoteHostUnknown :: StoreError
SERemoteHostDuplicateCA :: StoreError
SERemoteCtrlNotFound :: RemoteCtrlId -> StoreError
[remoteCtrlId] :: StoreError -> RemoteCtrlId
SERemoteCtrlDuplicateCA :: StoreError
SEProhibitedDeleteUser :: UserId -> ContactId -> StoreError
[userId] :: StoreError -> UserId
[contactId] :: StoreError -> ContactId
SEOperatorNotFound :: Int64 -> StoreError
[serverOperatorId] :: StoreError -> Int64
SEUsageConditionsNotFound :: StoreError
SEInvalidQuote :: StoreError
SEInvalidMention :: StoreError
SEInvalidDeliveryTask :: Int64 -> StoreError
[taskId] :: StoreError -> Int64
SEDeliveryTaskNotFound :: Int64 -> StoreError
[taskId] :: StoreError -> Int64
SEInvalidDeliveryJob :: Int64 -> StoreError
[jobId] :: StoreError -> Int64
SEDeliveryJobNotFound :: Int64 -> StoreError
[jobId] :: StoreError -> Int64

-- | Error when reading work item that suspends worker - do not use!
SEWorkItemError :: String -> StoreError
[errContext] :: StoreError -> String
data ChatLockEntity
CLInvitation :: ByteString -> ChatLockEntity
CLConnection :: Int64 -> ChatLockEntity
CLContact :: ContactId -> ChatLockEntity
CLGroup :: GroupId -> ChatLockEntity
CLUserContact :: Int64 -> ChatLockEntity
CLContactRequest :: Int64 -> ChatLockEntity
CLFile :: Int64 -> ChatLockEntity
data UserMsgReceiptSettings
UserMsgReceiptSettings :: Bool -> Bool -> UserMsgReceiptSettings
[enable] :: UserMsgReceiptSettings -> Bool
[clearOverrides] :: UserMsgReceiptSettings -> Bool
data UserContactLink
UserContactLink :: Int64 -> CreatedLinkContact -> Bool -> BoolDef -> AddressSettings -> UserContactLink
[userContactLinkId] :: UserContactLink -> Int64
[connLinkContact] :: UserContactLink -> CreatedLinkContact
[shortLinkDataSet] :: UserContactLink -> Bool
[shortLinkLargeDataSet] :: UserContactLink -> BoolDef
[addressSettings] :: UserContactLink -> AddressSettings
data GroupLinkInfo
GroupLinkInfo :: GroupId -> GroupMemberRole -> GroupLinkInfo
[groupId] :: GroupLinkInfo -> GroupId
[memberRole] :: GroupLinkInfo -> GroupMemberRole
data AddressSettings
AddressSettings :: Bool -> Maybe AutoAccept -> Maybe MsgContent -> AddressSettings
[businessAddress] :: AddressSettings -> Bool
[autoAccept] :: AddressSettings -> Maybe AutoAccept
[autoReply] :: AddressSettings -> Maybe MsgContent
data AutoAccept
AutoAccept :: IncognitoEnabled -> AutoAccept
[acceptIncognito] :: AutoAccept -> IncognitoEnabled
createChatStore :: DBOpts -> MigrationConfig -> IO (Either MigrationError DBStore)

-- | The list of migrations in ascending order by date
migrations :: [Migration]
withTransaction :: DBStore -> (Connection -> IO a) -> IO a

module Simplex.Chat.Store.Groups
type GroupInfoRow = (Int64, GroupName, GroupName, Text, Maybe Text, Text, Maybe Text, Maybe ImageData) :. (Maybe MsgFilter, Maybe BoolInt, BoolInt, Maybe GroupPreferences, Maybe GroupMemberAdmission) :. (UTCTime, UTCTime, Maybe UTCTime, Maybe UTCTime) :. PreparedGroupRow :. BusinessChatInfoRow :. (Maybe UIThemeEntityOverrides, Int64, Maybe CustomData, Maybe Int64, Int, Maybe ConnReqContact) :. GroupMemberRow
type GroupMemberRow = (GroupMemberId, GroupId, Int64, MemberId, VersionChat, VersionChat, GroupMemberRole, GroupMemberCategory, GroupMemberStatus, BoolInt, Maybe MemberRestrictionStatus) :. (Maybe Int64, Maybe GroupMemberId, ContactName, Maybe ContactId, ProfileId) :. ProfileRow :. (UTCTime, UTCTime) :. (Maybe UTCTime, Int64, Int64, Int64, Maybe UTCTime)
type MaybeGroupMemberRow = (Maybe GroupMemberId, Maybe GroupId, Maybe Int64, Maybe MemberId, Maybe VersionChat, Maybe VersionChat, Maybe GroupMemberRole, Maybe GroupMemberCategory, Maybe GroupMemberStatus, Maybe BoolInt, Maybe MemberRestrictionStatus) :. (Maybe Int64, Maybe GroupMemberId, Maybe ContactName, Maybe ContactId, Maybe ProfileId) :. (Maybe ProfileId, Maybe ContactName, Maybe Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, Maybe LocalAlias, Maybe Preferences) :. (Maybe UTCTime, Maybe UTCTime) :. (Maybe UTCTime, Maybe Int64, Maybe Int64, Maybe Int64, Maybe UTCTime)
toGroupInfo :: VersionRangeChat -> Int64 -> [ChatTagId] -> GroupInfoRow -> GroupInfo
toGroupMember :: Int64 -> GroupMemberRow -> GroupMember
toMaybeGroupMember :: Int64 -> MaybeGroupMemberRow -> Maybe GroupMember
createGroupLink :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> ConnId -> CreatedLinkContact -> GroupLinkId -> GroupMemberRole -> SubscriptionMode -> ExceptT StoreError IO GroupLink
getGroupLinkConnection :: Connection -> VersionRangeChat -> User -> GroupInfo -> ExceptT StoreError IO Connection
deleteGroupLink :: Connection -> User -> GroupInfo -> IO ()
getGroupLink :: Connection -> User -> GroupInfo -> ExceptT StoreError IO GroupLink
getGroupLinkId :: Connection -> User -> GroupInfo -> IO (Maybe GroupLinkId)
setGroupLinkMemberRole :: Connection -> User -> GroupLink -> GroupMemberRole -> IO GroupLink
setGroupLinkShortLink :: Connection -> GroupLink -> ShortLinkContact -> IO GroupLink

-- | creates completely new group with a single member - the current user
createNewGroup :: Connection -> VersionRangeChat -> TVar ChaChaDRG -> User -> GroupProfile -> Maybe Profile -> ExceptT StoreError IO GroupInfo

-- | creates a new group record for the group the current user was invited
--   to, or returns an existing one
createGroupInvitation :: Connection -> VersionRangeChat -> User -> Contact -> GroupInvitation -> Maybe ProfileId -> ExceptT StoreError IO (GroupInfo, GroupMemberId)
deleteContactCardKeepConn :: Connection -> Int64 -> Contact -> IO ()
createPreparedGroup :: Connection -> VersionRangeChat -> User -> GroupProfile -> Bool -> CreatedLinkContact -> Maybe SharedMsgId -> ExceptT StoreError IO (GroupInfo, GroupMember)
updatePreparedGroupUser :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupMember -> User -> ExceptT StoreError IO GroupInfo
updatePreparedUserAndHostMembersInvited :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupMember -> GroupLinkInvitation -> ExceptT StoreError IO (GroupInfo, GroupMember)
updatePreparedUserAndHostMembersRejected :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupMember -> GroupLinkRejection -> ExceptT StoreError IO (GroupInfo, GroupMember)
createGroupInvitedViaLink :: Connection -> VersionRangeChat -> User -> Connection -> GroupLinkInvitation -> ExceptT StoreError IO (GroupInfo, GroupMember)
createGroupRejectedViaLink :: Connection -> VersionRangeChat -> User -> Connection -> GroupLinkRejection -> ExceptT StoreError IO (GroupInfo, GroupMember)
setGroupInvitationChatItemId :: Connection -> User -> GroupId -> ChatItemId -> IO ()
getGroup :: Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO Group
getGroupInfo :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO GroupInfo
getGroupInfoByUserContactLinkConnReq :: Connection -> VersionRangeChat -> User -> (ConnReqContact, ConnReqContact) -> IO (Maybe GroupInfo)
getGroupInfoViaUserShortLink :: Connection -> VersionRangeChat -> User -> ShortLinkContact -> IO (Maybe (ConnReqContact, GroupInfo))
getGroupViaShortLinkToConnect :: Connection -> VersionRangeChat -> User -> ShortLinkContact -> ExceptT StoreError IO (Maybe (ConnReqContact, GroupInfo))
getGroupInfoByGroupLinkHash :: Connection -> VersionRangeChat -> User -> (ConnReqUriHash, ConnReqUriHash) -> IO (Maybe GroupInfo)
updateGroupProfile :: Connection -> User -> GroupInfo -> GroupProfile -> ExceptT StoreError IO GroupInfo
updateGroupPreferences :: Connection -> User -> GroupInfo -> GroupPreferences -> IO GroupInfo
updateGroupProfileFromMember :: Connection -> User -> GroupInfo -> Profile -> ExceptT StoreError IO GroupInfo
getGroupIdByName :: Connection -> User -> GroupName -> ExceptT StoreError IO GroupId
getGroupMemberIdByName :: Connection -> User -> GroupId -> ContactName -> ExceptT StoreError IO GroupMemberId
getActiveMembersByName :: Connection -> VersionRangeChat -> User -> ContactName -> ExceptT StoreError IO [(GroupInfo, GroupMember)]
getGroupInfoByName :: Connection -> VersionRangeChat -> User -> GroupName -> ExceptT StoreError IO GroupInfo
getGroupMember :: Connection -> VersionRangeChat -> User -> GroupId -> GroupMemberId -> ExceptT StoreError IO GroupMember
getHostMember :: Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO GroupMember
getMentionedGroupMember :: Connection -> User -> GroupId -> GroupMemberId -> ExceptT StoreError IO CIMention
getMentionedMemberByMemberId :: Connection -> User -> GroupId -> MsgMention -> IO CIMention
getGroupMemberById :: Connection -> VersionRangeChat -> User -> GroupMemberId -> ExceptT StoreError IO GroupMember
getGroupMemberByIndex :: Connection -> VersionRangeChat -> User -> GroupInfo -> Int64 -> ExceptT StoreError IO GroupMember
getGroupMemberByMemberId :: Connection -> VersionRangeChat -> User -> GroupInfo -> MemberId -> ExceptT StoreError IO GroupMember
getGroupMemberIdViaMemberId :: Connection -> User -> GroupInfo -> MemberId -> ExceptT StoreError IO GroupMemberId
getScopeMemberIdViaMemberId :: Connection -> User -> GroupInfo -> GroupMember -> MemberId -> ExceptT StoreError IO GroupMemberId
getGroupMembers :: Connection -> VersionRangeChat -> User -> GroupInfo -> IO [GroupMember]
getGroupMembersByIndexes :: Connection -> VersionRangeChat -> User -> GroupInfo -> [Int64] -> IO [GroupMember]
getSupportScopeMembersByIndexes :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupMemberId -> [Int64] -> IO [GroupMember]
getGroupModerators :: Connection -> VersionRangeChat -> User -> GroupInfo -> IO [GroupMember]
getGroupRelays :: Connection -> VersionRangeChat -> User -> GroupInfo -> IO [GroupMember]
getGroupMembersForExpiration :: Connection -> VersionRangeChat -> User -> GroupInfo -> IO [GroupMember]
getGroupCurrentMembersCount :: Connection -> User -> GroupInfo -> IO Int
deleteGroupChatItems :: Connection -> User -> GroupInfo -> IO ()
deleteGroupMembers :: Connection -> User -> GroupInfo -> IO ()
cleanupHostGroupLinkConn :: Connection -> User -> GroupInfo -> IO ()
deleteGroup :: Connection -> User -> GroupInfo -> IO ()
getBaseGroupDetails :: Connection -> VersionRangeChat -> User -> Maybe ContactId -> Maybe Text -> IO [GroupInfo]
getContactGroupPreferences :: Connection -> User -> Contact -> IO [(GroupMemberRole, FullGroupPreferences)]
getGroupInvitation :: Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO ReceivedGroupInvitation
createNewContactMember :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> Contact -> GroupMemberRole -> ConnId -> ConnReqInvitation -> SubscriptionMode -> ExceptT StoreError IO GroupMember
createNewContactMemberAsync :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> Contact -> GroupMemberRole -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> SubscriptionMode -> ExceptT StoreError IO ()
createJoiningMember :: Connection -> TVar ChaChaDRG -> User -> GroupInfo -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe SharedMsgId -> GroupMemberRole -> GroupMemberStatus -> ExceptT StoreError IO (GroupMemberId, MemberId)
getMemberJoinRequest :: Connection -> User -> GroupInfo -> GroupMember -> IO (Maybe (Maybe XContactId, Maybe SharedMsgId))
createJoiningMemberConnection :: Connection -> User -> Int64 -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> GroupMemberId -> SubscriptionMode -> IO ()
createBusinessRequestGroup :: Connection -> VersionRangeChat -> TVar ChaChaDRG -> User -> VersionRangeChat -> Profile -> Int64 -> Text -> GroupPreferences -> ExceptT StoreError IO (GroupInfo, GroupMember)
getContactViaMember :: Connection -> VersionRangeChat -> User -> GroupMember -> ExceptT StoreError IO Contact
setNewContactMemberConnRequest :: Connection -> User -> GroupMember -> ConnReqInvitation -> IO ()
getMemberInvitation :: Connection -> User -> Int64 -> IO (Maybe ConnReqInvitation)
createMemberConnection :: Connection -> UserId -> GroupMember -> ConnId -> VersionChat -> VersionRangeChat -> SubscriptionMode -> IO Connection
createMemberConnectionAsync :: Connection -> User -> GroupMemberId -> (CommandId, ConnId) -> VersionChat -> VersionRangeChat -> SubscriptionMode -> IO ()
updateGroupMemberStatus :: Connection -> UserId -> GroupMember -> GroupMemberStatus -> IO ()
updateGroupMemberStatusById :: Connection -> UserId -> GroupMemberId -> GroupMemberStatus -> IO ()
updateGroupMemberAccepted :: Connection -> User -> GroupMember -> GroupMemberStatus -> GroupMemberRole -> IO GroupMember
deleteGroupMemberSupportChat :: Connection -> GroupMember -> IO GroupMember
updateGroupMembersRequireAttention :: Connection -> User -> GroupInfo -> GroupMember -> GroupMember -> IO GroupInfo
decreaseGroupMembersRequireAttention :: Connection -> User -> GroupInfo -> IO GroupInfo
increaseGroupMembersRequireAttention :: Connection -> User -> GroupInfo -> IO GroupInfo

-- | add new member with profile
createNewGroupMember :: Connection -> User -> GroupInfo -> GroupMember -> MemberInfo -> GroupMemberCategory -> GroupMemberStatus -> ExceptT StoreError IO GroupMember
checkGroupMemberHasItems :: Connection -> User -> GroupMember -> IO (Maybe ChatItemId)
deleteGroupMember :: Connection -> User -> GroupMember -> IO ()
deleteGroupMemberConnection :: Connection -> User -> GroupMember -> IO ()
updateGroupMemberRole :: Connection -> User -> GroupMember -> GroupMemberRole -> IO ()
setMemberVectorNewRelations :: Connection -> GroupMember -> [(Int64, (IntroductionDirection, MemberRelation))] -> IO ()
setMembersVectorsNewRelation :: Connection -> [GroupMember] -> Int64 -> IntroductionDirection -> MemberRelation -> IO ()
setMemberVectorRelationConnected :: Connection -> GroupMember -> GroupMember -> MemberRelation -> ExceptT StoreError IO ()
getMemberRelationsVector :: Connection -> GroupMember -> ExceptT StoreError IO ByteString
createIntroReMember :: Connection -> User -> GroupInfo -> GroupMember -> VersionChat -> MemberInfo -> Maybe MemberRestrictions -> (CommandId, ConnId) -> SubscriptionMode -> ExceptT StoreError IO GroupMember
createIntroToMemberContact :: Connection -> User -> GroupMember -> GroupMember -> VersionChat -> VersionRangeChat -> (CommandId, ConnId) -> Maybe (CommandId, ConnId) -> Maybe ProfileId -> SubscriptionMode -> IO ()
getMatchingContacts :: Connection -> VersionRangeChat -> User -> Contact -> IO [Contact]
getMatchingMembers :: Connection -> VersionRangeChat -> User -> Contact -> IO [GroupMember]
getMatchingMemberContacts :: Connection -> VersionRangeChat -> User -> GroupMember -> IO [Contact]
createSentProbe :: Connection -> TVar ChaChaDRG -> UserId -> ContactOrMember -> ExceptT StoreError IO (Probe, Int64)
createSentProbeHash :: Connection -> UserId -> Int64 -> ContactOrMember -> IO ()
matchReceivedProbe :: Connection -> VersionRangeChat -> User -> ContactOrMember -> Probe -> IO [ContactOrMember]
matchReceivedProbeHash :: Connection -> VersionRangeChat -> User -> ContactOrMember -> ProbeHash -> IO (Maybe (ContactOrMember, Probe))
matchSentProbe :: Connection -> VersionRangeChat -> User -> ContactOrMember -> Probe -> IO (Maybe ContactOrMember)
associateMemberWithContactRecord :: Connection -> User -> Contact -> GroupMember -> IO ()
associateContactWithMemberRecord :: Connection -> VersionRangeChat -> User -> GroupMember -> Contact -> ExceptT StoreError IO Contact
deleteOldProbes :: Connection -> UTCTime -> IO ()
updateGroupSettings :: Connection -> User -> Int64 -> ChatSettings -> IO ()
updateGroupMemberSettings :: Connection -> User -> GroupId -> GroupMemberId -> GroupMemberSettings -> IO ()
updateGroupMemberBlocked :: Connection -> User -> GroupInfo -> MemberRestrictionStatus -> GroupMember -> IO GroupMember
getHostConnId :: Connection -> User -> GroupId -> ExceptT StoreError IO GroupMemberId
createMemberContact :: Connection -> User -> ConnId -> ConnReqInvitation -> GroupInfo -> GroupMember -> Connection -> SubscriptionMode -> IO Contact
getMemberContact :: Connection -> VersionRangeChat -> User -> ContactId -> ExceptT StoreError IO (GroupInfo, GroupMember, Contact, ConnReqInvitation)
setContactGrpInvSent :: Connection -> Contact -> Bool -> IO ()
createMemberContactInvited :: Connection -> User -> GroupInfo -> GroupMember -> GroupDirectInvitation -> IO (ContactId, GroupMember)
updateMemberContactInvited :: Connection -> User -> Contact -> GroupDirectInvitation -> ExceptT StoreError IO ()
createMemberContactConn :: Connection -> User -> ConnId -> Maybe CommandId -> GroupInfo -> Connection -> ConnStatus -> ContactId -> SubscriptionMode -> IO Int64
getMemberContactInvited :: Connection -> VersionRangeChat -> User -> ContactId -> ExceptT StoreError IO (GroupInfo, Connection, Contact, GroupDirectInvitation)
setMemberContactStartedConnection :: Connection -> Contact -> IO ()
resetMemberContactFields :: Connection -> Contact -> IO Contact
updateMemberProfile :: Connection -> User -> GroupMember -> Profile -> ExceptT StoreError IO GroupMember
updateContactMemberProfile :: Connection -> User -> GroupMember -> Contact -> Profile -> ExceptT StoreError IO (GroupMember, Contact)
getXGrpLinkMemReceived :: Connection -> GroupMemberId -> ExceptT StoreError IO Bool
setXGrpLinkMemReceived :: Connection -> GroupMemberId -> Bool -> IO ()
createNewUnknownGroupMember :: Connection -> VersionRangeChat -> User -> GroupInfo -> MemberId -> Text -> ExceptT StoreError IO GroupMember
updateUnknownMemberAnnounced :: Connection -> VersionRangeChat -> User -> GroupMember -> GroupMember -> MemberInfo -> GroupMemberStatus -> ExceptT StoreError IO GroupMember
updateUserMemberProfileSentAt :: Connection -> User -> GroupInfo -> UTCTime -> IO ()
setGroupCustomData :: Connection -> User -> GroupInfo -> Maybe CustomData -> IO ()
setGroupUIThemes :: Connection -> User -> GroupInfo -> Maybe UIThemeEntityOverrides -> IO ()
updateGroupChatTags :: Connection -> GroupId -> [ChatTagId] -> IO ()
getGroupChatTags :: Connection -> GroupId -> IO [ChatTagId]
setGroupChatTTL :: Connection -> GroupId -> Maybe Int64 -> IO ()
getGroupChatTTL :: Connection -> GroupId -> IO (Maybe Int64)
getUserGroupsToExpire :: Connection -> User -> Int64 -> IO [GroupId]
updateGroupAlias :: Connection -> UserId -> GroupInfo -> LocalAlias -> IO GroupInfo

module Simplex.Chat.Store.Delivery
createMsgDeliveryTask :: Connection -> GroupInfo -> GroupMember -> NewMessageDeliveryTask -> IO ()
deleteGroupDeliveryTasks :: Connection -> GroupInfo -> IO ()
deleteGroupDeliveryJobs :: Connection -> GroupInfo -> IO ()
getPendingDeliveryTaskScopes :: Connection -> IO [DeliveryWorkerKey]
getNextDeliveryTask :: Connection -> DeliveryWorkerKey -> IO (Either StoreError (Maybe MessageDeliveryTask))
getNextDeliveryTasks :: Connection -> GroupInfo -> MessageDeliveryTask -> IO (Either StoreError [Either StoreError MessageDeliveryTask])
updateDeliveryTaskStatus :: Connection -> Int64 -> DeliveryTaskStatus -> IO ()
setDeliveryTaskErrStatus :: Connection -> Int64 -> Text -> IO ()
deleteDoneDeliveryTasks :: Connection -> UTCTime -> IO ()
createMsgDeliveryJob :: Connection -> GroupInfo -> DeliveryJobScope -> Maybe GroupMemberId -> ByteString -> IO ()
getPendingDeliveryJobScopes :: Connection -> IO [DeliveryWorkerKey]
getNextDeliveryJob :: Connection -> DeliveryWorkerKey -> IO (Either StoreError (Maybe MessageDeliveryJob))
updateDeliveryJobStatus :: Connection -> Int64 -> DeliveryJobStatus -> IO ()
setDeliveryJobErrStatus :: Connection -> Int64 -> Text -> IO ()
getGroupMembersByCursor :: Connection -> VersionRangeChat -> User -> GroupInfo -> Maybe GroupMemberId -> Maybe GroupMemberId -> Int -> IO [GroupMember]
updateDeliveryJobCursor :: Connection -> Int64 -> GroupMemberId -> IO ()
deleteDoneDeliveryJobs :: Connection -> UTCTime -> IO ()

module Simplex.Chat.Store.ContactRequest
createOrUpdateContactRequest :: Connection -> TVar ChaChaDRG -> VersionRangeChat -> User -> Int64 -> UserContactLink -> Bool -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe SharedMsgId -> Maybe (SharedMsgId, MsgContent) -> PQSupport -> ExceptT StoreError IO RequestStage
setContactAcceptedXContactId :: Connection -> Contact -> XContactId -> IO ()
setBusinessChatAcceptedXContactId :: Connection -> GroupInfo -> XContactId -> IO ()
setRequestSharedMsgIdForContact :: Connection -> ContactId -> SharedMsgId -> IO ()
setRequestSharedMsgIdForGroup :: Connection -> GroupId -> SharedMsgId -> IO ()

module Simplex.Chat.Store.Connections
getChatLockEntity :: Connection -> AgentConnId -> ExceptT StoreError IO ChatLockEntity
getConnectionEntity :: Connection -> VersionRangeChat -> User -> AgentConnId -> ExceptT StoreError IO ConnectionEntity
getConnectionEntityByConnReq :: Connection -> VersionRangeChat -> User -> (ConnReqInvitation, ConnReqInvitation) -> IO (Maybe ConnectionEntity)
getConnectionEntityViaShortLink :: Connection -> VersionRangeChat -> User -> ShortLinkInvitation -> IO (Maybe (ConnReqInvitation, ConnectionEntity))
getContactConnEntityByConnReqHash :: Connection -> VersionRangeChat -> User -> (ConnReqUriHash, ConnReqUriHash) -> IO (Maybe ConnectionEntity)
getContactConnsToSub :: Connection -> User -> Bool -> IO [ConnId]
getUCLConnsToSub :: Connection -> User -> Bool -> IO [ConnId]
getMemberConnsToSub :: Connection -> User -> Bool -> IO [ConnId]
getPendingConnsToSub :: Connection -> User -> Bool -> IO [ConnId]
shouldSyncConnections :: Connection -> IO Bool
setConnectionsSyncTs :: Connection -> IO ()

module Simplex.Chat.AppSettings
data AppPlatform
APIOS :: AppPlatform
APAndroid :: AppPlatform
APDesktop :: AppPlatform
data NotificationMode
NMOff :: NotificationMode
NMPeriodic :: NotificationMode
NMInstant :: NotificationMode
data NotificationPreviewMode
NPMHidden :: NotificationPreviewMode
NPMContact :: NotificationPreviewMode
NPMMessage :: NotificationPreviewMode
data LockScreenCalls
LSCDisable :: LockScreenCalls
LSCShow :: LockScreenCalls
LSCAccept :: LockScreenCalls
data AppSettings
AppSettings :: Maybe AppPlatform -> Maybe NetworkConfig -> Maybe NetworkProxy -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe NotificationMode -> Maybe NotificationPreviewMode -> Maybe Bool -> Maybe [Text] -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe LockScreenCalls -> Maybe Bool -> Maybe Bool -> Maybe Double -> Maybe Double -> Maybe Bool -> Maybe UIColorScheme -> Maybe DarkColorScheme -> Maybe (Map ThemeColorScheme Text) -> Maybe [UITheme] -> Maybe Bool -> Maybe Bool -> AppSettings
[appPlatform] :: AppSettings -> Maybe AppPlatform
[networkConfig] :: AppSettings -> Maybe NetworkConfig
[networkProxy] :: AppSettings -> Maybe NetworkProxy
[privacyEncryptLocalFiles] :: AppSettings -> Maybe Bool
[privacyAskToApproveRelays] :: AppSettings -> Maybe Bool
[privacyAcceptImages] :: AppSettings -> Maybe Bool
[privacyLinkPreviews] :: AppSettings -> Maybe Bool
[privacyShowChatPreviews] :: AppSettings -> Maybe Bool
[privacySaveLastDraft] :: AppSettings -> Maybe Bool
[privacyProtectScreen] :: AppSettings -> Maybe Bool
[privacyMediaBlurRadius] :: AppSettings -> Maybe Int
[notificationMode] :: AppSettings -> Maybe NotificationMode
[notificationPreviewMode] :: AppSettings -> Maybe NotificationPreviewMode
[webrtcPolicyRelay] :: AppSettings -> Maybe Bool
[webrtcICEServers] :: AppSettings -> Maybe [Text]
[confirmRemoteSessions] :: AppSettings -> Maybe Bool
[connectRemoteViaMulticast] :: AppSettings -> Maybe Bool
[connectRemoteViaMulticastAuto] :: AppSettings -> Maybe Bool
[developerTools] :: AppSettings -> Maybe Bool
[confirmDBUpgrades] :: AppSettings -> Maybe Bool
[androidCallOnLockScreen] :: AppSettings -> Maybe LockScreenCalls
[iosCallKitEnabled] :: AppSettings -> Maybe Bool
[iosCallKitCallsInRecents] :: AppSettings -> Maybe Bool
[uiProfileImageCornerRadius] :: AppSettings -> Maybe Double
[uiChatItemRoundness] :: AppSettings -> Maybe Double
[uiChatItemTail] :: AppSettings -> Maybe Bool
[uiColorScheme] :: AppSettings -> Maybe UIColorScheme
[uiDarkColorScheme] :: AppSettings -> Maybe DarkColorScheme
[uiCurrentThemeIds] :: AppSettings -> Maybe (Map ThemeColorScheme Text)
[uiThemes] :: AppSettings -> Maybe [UITheme]
[oneHandUI] :: AppSettings -> Maybe Bool
[chatBottomBar] :: AppSettings -> Maybe Bool
data NetworkProxy
NetworkProxy :: Text -> Int -> NetworkProxyAuth -> Text -> Text -> NetworkProxy
[host] :: NetworkProxy -> Text
[port] :: NetworkProxy -> Int
[auth] :: NetworkProxy -> NetworkProxyAuth
[username] :: NetworkProxy -> Text
[password] :: NetworkProxy -> Text
data NetworkProxyAuth
NPAUsername :: NetworkProxyAuth
NPAIsolate :: NetworkProxyAuth
defaultAppSettings :: AppSettings
defaultParseAppSettings :: AppSettings
combineAppSettings :: AppSettings -> AppSettings -> AppSettings
readAppSettings :: FilePath -> Maybe AppSettings -> IO AppSettings
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.AppPlatform
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.AppSettings
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.LockScreenCalls
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.NetworkProxy
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.NetworkProxyAuth
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.NotificationMode
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.AppSettings.NotificationPreviewMode
instance GHC.Show.Show Simplex.Chat.AppSettings.AppPlatform
instance GHC.Show.Show Simplex.Chat.AppSettings.AppSettings
instance GHC.Show.Show Simplex.Chat.AppSettings.LockScreenCalls
instance GHC.Show.Show Simplex.Chat.AppSettings.NetworkProxy
instance GHC.Show.Show Simplex.Chat.AppSettings.NetworkProxyAuth
instance GHC.Show.Show Simplex.Chat.AppSettings.NotificationMode
instance GHC.Show.Show Simplex.Chat.AppSettings.NotificationPreviewMode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.AppPlatform
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.AppSettings
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.LockScreenCalls
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.NetworkProxy
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.NetworkProxyAuth
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.NotificationMode
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.AppSettings.NotificationPreviewMode

module Simplex.Chat.Store.AppSettings
saveAppSettings :: Connection -> AppSettings -> IO ()
getAppSettings :: Connection -> Maybe AppSettings -> IO AppSettings

module Simplex.Chat.Util
week :: NominalDiffTime
encryptFile :: FilePath -> FilePath -> CryptoFileArgs -> ExceptT String IO ()
chunkSize :: Num a => a
liftIOEither :: (MonadIO m, MonadError e m) => IO (Either e a) -> m a
shuffle :: [a] -> IO [a]
zipWith3' :: (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
instance GHC.Classes.Eq e => GHC.Classes.Eq (Simplex.Chat.Util.InternalException e)
instance GHC.Exception.Type.Exception e => GHC.Exception.Type.Exception (Simplex.Chat.Util.InternalException e)
instance GHC.Exception.Type.Exception e => Control.Monad.IO.Unlift.MonadUnliftIO (Control.Monad.Trans.Except.ExceptT e GHC.Types.IO)
instance GHC.Exception.Type.Exception e => Control.Monad.IO.Unlift.MonadUnliftIO (Control.Monad.Trans.Except.ExceptT e (Control.Monad.Trans.Reader.ReaderT r GHC.Types.IO))
instance GHC.Show.Show e => GHC.Show.Show (Simplex.Chat.Util.InternalException e)

module Simplex.Chat.Controller
versionNumber :: String
versionString :: String -> String
simplexmqCommitQ :: Q Exp
coreVersionInfo :: String -> CoreVersionInfo
data ChatConfig
ChatConfig :: AgentConfig -> VersionRangeChat -> MigrationConfirmation -> PresetServers -> NonEmpty SMPServer -> [HostName] -> Natural -> Integer -> Int -> InlineFilesConfig -> Integer -> Bool -> Bool -> Bool -> Bool -> ChatLogLevel -> Bool -> Int64 -> NominalDiffTime -> Int64 -> Int64 -> Int64 -> Int -> Bool -> Text -> ChatHooks -> ChatConfig
[agentConfig] :: ChatConfig -> AgentConfig
[chatVRange] :: ChatConfig -> VersionRangeChat
[confirmMigrations] :: ChatConfig -> MigrationConfirmation
[presetServers] :: ChatConfig -> PresetServers
[shortLinkPresetServers] :: ChatConfig -> NonEmpty SMPServer
[presetDomains] :: ChatConfig -> [HostName]
[tbqSize] :: ChatConfig -> Natural
[fileChunkSize] :: ChatConfig -> Integer
[xftpDescrPartSize] :: ChatConfig -> Int
[inlineFiles] :: ChatConfig -> InlineFilesConfig
[autoAcceptFileSize] :: ChatConfig -> Integer
[showReactions] :: ChatConfig -> Bool
[showReceipts] :: ChatConfig -> Bool
[subscriptionEvents] :: ChatConfig -> Bool
[hostEvents] :: ChatConfig -> Bool
[logLevel] :: ChatConfig -> ChatLogLevel
[testView] :: ChatConfig -> Bool
[initialCleanupManagerDelay] :: ChatConfig -> Int64
[cleanupManagerInterval] :: ChatConfig -> NominalDiffTime
[cleanupManagerStepDelay] :: ChatConfig -> Int64
[ciExpirationInterval] :: ChatConfig -> Int64
[deliveryWorkerDelay] :: ChatConfig -> Int64
[deliveryBucketSize] :: ChatConfig -> Int
[highlyAvailable] :: ChatConfig -> Bool
[deviceNameForRemote] :: ChatConfig -> Text
[chatHooks] :: ChatConfig -> ChatHooks
data RandomAgentServers
RandomAgentServers :: NonEmpty (ServerCfg 'PSMP) -> NonEmpty (ServerCfg 'PXFTP) -> RandomAgentServers
[smpServers] :: RandomAgentServers -> NonEmpty (ServerCfg 'PSMP)
[xftpServers] :: RandomAgentServers -> NonEmpty (ServerCfg 'PXFTP)
data ChatHooks
ChatHooks :: Maybe (ChatController -> IO ()) -> Maybe (ChatController -> IO ()) -> Maybe (ChatController -> ChatCommand -> IO (Either (Either ChatError ChatResponse) ChatCommand)) -> Maybe (ChatController -> Either ChatError ChatEvent -> IO (Either ChatError ChatEvent)) -> Maybe (GroupInfo -> GroupLinkInfo -> Profile -> IO (Either GroupRejectionReason (GroupAcceptance, GroupMemberRole))) -> ChatHooks
[preStartHook] :: ChatHooks -> Maybe (ChatController -> IO ())
[postStartHook] :: ChatHooks -> Maybe (ChatController -> IO ())
[preCmdHook] :: ChatHooks -> Maybe (ChatController -> ChatCommand -> IO (Either (Either ChatError ChatResponse) ChatCommand))
[eventHook] :: ChatHooks -> Maybe (ChatController -> Either ChatError ChatEvent -> IO (Either ChatError ChatEvent))
[acceptMember] :: ChatHooks -> Maybe (GroupInfo -> GroupLinkInfo -> Profile -> IO (Either GroupRejectionReason (GroupAcceptance, GroupMemberRole)))
defaultChatHooks :: ChatHooks
data PresetServers
PresetServers :: NonEmpty PresetOperator -> [NtfServer] -> NetworkConfig -> PresetServers
[operators] :: PresetServers -> NonEmpty PresetOperator
[ntf] :: PresetServers -> [NtfServer]
[netCfg] :: PresetServers -> NetworkConfig
data InlineFilesConfig
InlineFilesConfig :: Integer -> Integer -> Integer -> Integer -> Bool -> InlineFilesConfig
[offerChunks] :: InlineFilesConfig -> Integer
[sendChunks] :: InlineFilesConfig -> Integer
[totalSendChunks] :: InlineFilesConfig -> Integer
[receiveChunks] :: InlineFilesConfig -> Integer
[receiveInstant] :: InlineFilesConfig -> Bool
defaultInlineFilesConfig :: InlineFilesConfig
data ChatDatabase
ChatDatabase :: DBStore -> DBStore -> ChatDatabase
[chatStore] :: ChatDatabase -> DBStore
[agentStore] :: ChatDatabase -> DBStore
data ChatController
ChatController :: TVar (Maybe User) -> NonEmpty PresetOperator -> RandomAgentServers -> TVar (Maybe RemoteHostId) -> Bool -> AgentClient -> TVar (Maybe (Async (), Maybe (Async ()))) -> DBStore -> TVar Bool -> TVar ChaChaDRG -> TVar Int -> TBQueue String -> TBQueue (Maybe RemoteHostId, Either ChatError ChatEvent) -> TVar SubscriptionMode -> Lock -> TMap ChatLockEntity Lock -> TVar (Map Int64 Handle) -> TVar (Map Int64 Handle) -> TMap ContactId Call -> TVar Text -> TMVar Int -> TVar Int -> TMap RHKey (SessionSeq, RemoteHostSession) -> TVar (Maybe FilePath) -> TVar (Maybe (SessionSeq, RemoteCtrlSession)) -> ChatConfig -> TVar (Maybe FilePath) -> TMap DeliveryWorkerKey Worker -> TMap DeliveryWorkerKey Worker -> TMap UserId (Maybe (Async ())) -> TMap UserId Bool -> TVar (Maybe (Async ())) -> TVar Bool -> TMap (ChatRef, ChatItemId) (TVar (Maybe (Weak ThreadId))) -> TVar Bool -> TVar Bool -> TVar (Maybe FilePath) -> TVar (Maybe FilePath) -> Maybe FilePath -> TVar Bool -> ChatController
[currentUser] :: ChatController -> TVar (Maybe User)
[randomPresetServers] :: ChatController -> NonEmpty PresetOperator
[randomAgentServers] :: ChatController -> RandomAgentServers
[currentRemoteHost] :: ChatController -> TVar (Maybe RemoteHostId)
[firstTime] :: ChatController -> Bool
[smpAgent] :: ChatController -> AgentClient
[agentAsync] :: ChatController -> TVar (Maybe (Async (), Maybe (Async ())))
[chatStore] :: ChatController -> DBStore
[chatStoreChanged] :: ChatController -> TVar Bool
[random] :: ChatController -> TVar ChaChaDRG
[eventSeq] :: ChatController -> TVar Int
[inputQ] :: ChatController -> TBQueue String
[outputQ] :: ChatController -> TBQueue (Maybe RemoteHostId, Either ChatError ChatEvent)
[subscriptionMode] :: ChatController -> TVar SubscriptionMode
[chatLock] :: ChatController -> Lock
[entityLocks] :: ChatController -> TMap ChatLockEntity Lock
[sndFiles] :: ChatController -> TVar (Map Int64 Handle)
[rcvFiles] :: ChatController -> TVar (Map Int64 Handle)
[currentCalls] :: ChatController -> TMap ContactId Call
[localDeviceName] :: ChatController -> TVar Text
[multicastSubscribers] :: ChatController -> TMVar Int
[remoteSessionSeq] :: ChatController -> TVar Int
[remoteHostSessions] :: ChatController -> TMap RHKey (SessionSeq, RemoteHostSession)
[remoteHostsFolder] :: ChatController -> TVar (Maybe FilePath)
[remoteCtrlSession] :: ChatController -> TVar (Maybe (SessionSeq, RemoteCtrlSession))
[config] :: ChatController -> ChatConfig
[filesFolder] :: ChatController -> TVar (Maybe FilePath)
[deliveryTaskWorkers] :: ChatController -> TMap DeliveryWorkerKey Worker
[deliveryJobWorkers] :: ChatController -> TMap DeliveryWorkerKey Worker
[expireCIThreads] :: ChatController -> TMap UserId (Maybe (Async ()))
[expireCIFlags] :: ChatController -> TMap UserId Bool
[cleanupManagerAsync] :: ChatController -> TVar (Maybe (Async ()))
[chatActivated] :: ChatController -> TVar Bool
[timedItemThreads] :: ChatController -> TMap (ChatRef, ChatItemId) (TVar (Maybe (Weak ThreadId)))
[showLiveItems] :: ChatController -> TVar Bool
[encryptLocalFiles] :: ChatController -> TVar Bool
[tempDirectory] :: ChatController -> TVar (Maybe FilePath)
[assetsDirectory] :: ChatController -> TVar (Maybe FilePath)
[logFilePath] :: ChatController -> Maybe FilePath
[contactMergeEnabled] :: ChatController -> TVar Bool
data HelpSection
HSMain :: HelpSection
HSFiles :: HelpSection
HSGroups :: HelpSection
HSContacts :: HelpSection
HSMyAddress :: HelpSection
HSIncognito :: HelpSection
HSMarkdown :: HelpSection
HSMessages :: HelpSection
HSRemote :: HelpSection
HSSettings :: HelpSection
HSDatabase :: HelpSection
data ChatCommand
ShowActiveUser :: ChatCommand
CreateActiveUser :: NewUser -> ChatCommand
[newUser] :: ChatCommand -> NewUser
ListUsers :: ChatCommand
APISetActiveUser :: UserId -> Maybe UserPwd -> ChatCommand
[userId] :: ChatCommand -> UserId
[viewPwd] :: ChatCommand -> Maybe UserPwd
SetActiveUser :: UserName -> Maybe UserPwd -> ChatCommand
SetAllContactReceipts :: Bool -> ChatCommand
APISetUserContactReceipts :: UserId -> UserMsgReceiptSettings -> ChatCommand
SetUserContactReceipts :: UserMsgReceiptSettings -> ChatCommand
APISetUserGroupReceipts :: UserId -> UserMsgReceiptSettings -> ChatCommand
SetUserGroupReceipts :: UserMsgReceiptSettings -> ChatCommand
APISetUserAutoAcceptMemberContacts :: UserId -> Bool -> ChatCommand
SetUserAutoAcceptMemberContacts :: Bool -> ChatCommand
APIHideUser :: UserId -> UserPwd -> ChatCommand
APIUnhideUser :: UserId -> UserPwd -> ChatCommand
APIMuteUser :: UserId -> ChatCommand
APIUnmuteUser :: UserId -> ChatCommand
HideUser :: UserPwd -> ChatCommand
UnhideUser :: UserPwd -> ChatCommand
MuteUser :: ChatCommand
UnmuteUser :: ChatCommand
APIDeleteUser :: UserId -> Bool -> Maybe UserPwd -> ChatCommand
[userId] :: ChatCommand -> UserId
[delSMPQueues] :: ChatCommand -> Bool
[viewPwd] :: ChatCommand -> Maybe UserPwd
DeleteUser :: UserName -> Bool -> Maybe UserPwd -> ChatCommand
StartChat :: Bool -> Bool -> ChatCommand
[mainApp] :: ChatCommand -> Bool
[enableSndFiles] :: ChatCommand -> Bool
CheckChatRunning :: ChatCommand
APIStopChat :: ChatCommand
APIActivateChat :: Bool -> ChatCommand
[restoreChat] :: ChatCommand -> Bool
APISuspendChat :: Int -> ChatCommand
[suspendTimeout] :: ChatCommand -> Int
ShowConnectionsDiff :: Bool -> ChatCommand
ResubscribeAllConnections :: ChatCommand
SetTempFolder :: FilePath -> ChatCommand
SetFilesFolder :: FilePath -> ChatCommand
SetRemoteHostsFolder :: FilePath -> ChatCommand
APISetAppFilePaths :: AppFilePathsConfig -> ChatCommand
APISetEncryptLocalFiles :: Bool -> ChatCommand
SetContactMergeEnabled :: Bool -> ChatCommand
APIExportArchive :: ArchiveConfig -> ChatCommand
ExportArchive :: ChatCommand
APIImportArchive :: ArchiveConfig -> ChatCommand
APIDeleteStorage :: ChatCommand
APIStorageEncryption :: DBEncryptionConfig -> ChatCommand
TestStorageEncryption :: DBEncryptionKey -> ChatCommand
SlowSQLQueries :: ChatCommand
ExecChatStoreSQL :: Text -> ChatCommand
ExecAgentStoreSQL :: Text -> ChatCommand
APISaveAppSettings :: AppSettings -> ChatCommand
APIGetAppSettings :: Maybe AppSettings -> ChatCommand
APIGetChatTags :: UserId -> ChatCommand
APIGetChats :: UserId -> Bool -> PaginationByTime -> ChatListQuery -> ChatCommand
[userId] :: ChatCommand -> UserId
[pendingConnections] :: ChatCommand -> Bool
[pagination] :: ChatCommand -> PaginationByTime
[query] :: ChatCommand -> ChatListQuery
APIGetChat :: ChatRef -> Maybe MsgContentTag -> ChatPagination -> Maybe Text -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[contentTag] :: ChatCommand -> Maybe MsgContentTag
[chatPagination] :: ChatCommand -> ChatPagination
[search] :: ChatCommand -> Maybe Text
APIGetChatItems :: ChatPagination -> Maybe Text -> ChatCommand
[chatPagination] :: ChatCommand -> ChatPagination
[search] :: ChatCommand -> Maybe Text
APIGetChatItemInfo :: ChatRef -> ChatItemId -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatItemId] :: ChatCommand -> ChatItemId
APISendMessages :: SendRef -> Bool -> Maybe Int -> NonEmpty ComposedMessage -> ChatCommand
[sendRef] :: ChatCommand -> SendRef
[liveMessage] :: ChatCommand -> Bool
[ttl] :: ChatCommand -> Maybe Int
[composedMessages] :: ChatCommand -> NonEmpty ComposedMessage
APICreateChatTag :: ChatTagData -> ChatCommand
APISetChatTags :: ChatRef -> Maybe (NonEmpty ChatTagId) -> ChatCommand
APIDeleteChatTag :: ChatTagId -> ChatCommand
APIUpdateChatTag :: ChatTagId -> ChatTagData -> ChatCommand
APIReorderChatTags :: NonEmpty ChatTagId -> ChatCommand
APICreateChatItems :: NoteFolderId -> NonEmpty ComposedMessage -> ChatCommand
[noteFolderId] :: ChatCommand -> NoteFolderId
[composedMessages] :: ChatCommand -> NonEmpty ComposedMessage
APIReportMessage :: GroupId -> ChatItemId -> ReportReason -> Text -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[chatItemId] :: ChatCommand -> ChatItemId
[reportReason] :: ChatCommand -> ReportReason
[reportText] :: ChatCommand -> Text
ReportMessage :: GroupName -> Maybe ContactName -> ReportReason -> Text -> ChatCommand
[groupName] :: ChatCommand -> GroupName
[contactName_] :: ChatCommand -> Maybe ContactName
[reportReason] :: ChatCommand -> ReportReason
[reportedMessage] :: ChatCommand -> Text
APIUpdateChatItem :: ChatRef -> ChatItemId -> Bool -> UpdatedMessage -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatItemId] :: ChatCommand -> ChatItemId
[liveMessage] :: ChatCommand -> Bool
[updatedMessage] :: ChatCommand -> UpdatedMessage
APIDeleteChatItem :: ChatRef -> NonEmpty ChatItemId -> CIDeleteMode -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatItemIds] :: ChatCommand -> NonEmpty ChatItemId
[deleteMode] :: ChatCommand -> CIDeleteMode
APIDeleteMemberChatItem :: GroupId -> NonEmpty ChatItemId -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[chatItemIds] :: ChatCommand -> NonEmpty ChatItemId
APIArchiveReceivedReports :: GroupId -> ChatCommand
APIDeleteReceivedReports :: GroupId -> NonEmpty ChatItemId -> CIDeleteMode -> ChatCommand
APIChatItemReaction :: ChatRef -> ChatItemId -> Bool -> MsgReaction -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatItemId] :: ChatCommand -> ChatItemId
[add] :: ChatCommand -> Bool
[reaction] :: ChatCommand -> MsgReaction
APIGetReactionMembers :: UserId -> GroupId -> ChatItemId -> MsgReaction -> ChatCommand
[userId] :: ChatCommand -> UserId
[groupId] :: ChatCommand -> GroupId
[chatItemId] :: ChatCommand -> ChatItemId
[reaction] :: ChatCommand -> MsgReaction
APIPlanForwardChatItems :: ChatRef -> NonEmpty ChatItemId -> ChatCommand
[fromChatRef] :: ChatCommand -> ChatRef
[chatItemIds] :: ChatCommand -> NonEmpty ChatItemId
APIForwardChatItems :: ChatRef -> ChatRef -> NonEmpty ChatItemId -> Maybe Int -> ChatCommand
[toChatRef] :: ChatCommand -> ChatRef
[fromChatRef] :: ChatCommand -> ChatRef
[chatItemIds] :: ChatCommand -> NonEmpty ChatItemId
[ttl] :: ChatCommand -> Maybe Int
APIUserRead :: UserId -> ChatCommand
UserRead :: ChatCommand
APIChatRead :: ChatRef -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
APIChatItemsRead :: ChatRef -> NonEmpty ChatItemId -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatItemIds] :: ChatCommand -> NonEmpty ChatItemId
APIChatUnread :: ChatRef -> Bool -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[unreadChat] :: ChatCommand -> Bool
APIDeleteChat :: ChatRef -> ChatDeleteMode -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatDeleteMode] :: ChatCommand -> ChatDeleteMode
APIClearChat :: ChatRef -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
APIAcceptContact :: IncognitoEnabled -> Int64 -> ChatCommand
[incognito] :: ChatCommand -> IncognitoEnabled
[contactReqId] :: ChatCommand -> Int64
APIRejectContact :: Int64 -> ChatCommand
[contactReqId] :: ChatCommand -> Int64
APISendCallInvitation :: ContactId -> CallType -> ChatCommand
SendCallInvitation :: ContactName -> CallType -> ChatCommand
APIRejectCall :: ContactId -> ChatCommand
APISendCallOffer :: ContactId -> WebRTCCallOffer -> ChatCommand
APISendCallAnswer :: ContactId -> WebRTCSession -> ChatCommand
APISendCallExtraInfo :: ContactId -> WebRTCExtraInfo -> ChatCommand
APIEndCall :: ContactId -> ChatCommand
APIGetCallInvitations :: ChatCommand
APICallStatus :: ContactId -> WebRTCCallStatus -> ChatCommand
APIUpdateProfile :: UserId -> Profile -> ChatCommand
[userId] :: ChatCommand -> UserId
[profile] :: ChatCommand -> Profile
APISetContactPrefs :: ContactId -> Preferences -> ChatCommand
[contactId] :: ChatCommand -> ContactId
[preferences] :: ChatCommand -> Preferences
APISetContactAlias :: ContactId -> LocalAlias -> ChatCommand
[contactId] :: ChatCommand -> ContactId
[localAlias] :: ChatCommand -> LocalAlias
APISetGroupAlias :: GroupId -> LocalAlias -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[localAlias] :: ChatCommand -> LocalAlias
APISetConnectionAlias :: Int64 -> LocalAlias -> ChatCommand
[connectionId] :: ChatCommand -> Int64
[localAlias] :: ChatCommand -> LocalAlias
APISetUserUIThemes :: UserId -> Maybe UIThemeEntityOverrides -> ChatCommand
APISetChatUIThemes :: ChatRef -> Maybe UIThemeEntityOverrides -> ChatCommand
APIGetNtfToken :: ChatCommand
APIRegisterToken :: DeviceToken -> NotificationsMode -> ChatCommand
APIVerifyToken :: DeviceToken -> CbNonce -> ByteString -> ChatCommand
APICheckToken :: DeviceToken -> ChatCommand
APIDeleteToken :: DeviceToken -> ChatCommand
APIGetNtfConns :: CbNonce -> ByteString -> ChatCommand
[nonce] :: ChatCommand -> CbNonce
[encNtfInfo] :: ChatCommand -> ByteString
APIGetConnNtfMessages :: NonEmpty ConnMsgReq -> ChatCommand
APIAddMember :: GroupId -> ContactId -> GroupMemberRole -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[contactId] :: ChatCommand -> ContactId
[memberRole] :: ChatCommand -> GroupMemberRole
APIJoinGroup :: GroupId -> MsgFilter -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[enableNtfs] :: ChatCommand -> MsgFilter
APIAcceptMember :: GroupId -> GroupMemberId -> GroupMemberRole -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupMemberId] :: ChatCommand -> GroupMemberId
[memberRole] :: ChatCommand -> GroupMemberRole
APIDeleteMemberSupportChat :: GroupId -> GroupMemberId -> ChatCommand
APIMembersRole :: GroupId -> NonEmpty GroupMemberId -> GroupMemberRole -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupMemberIds] :: ChatCommand -> NonEmpty GroupMemberId
[memberRole] :: ChatCommand -> GroupMemberRole
APIBlockMembersForAll :: GroupId -> NonEmpty GroupMemberId -> Bool -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupMemberIds] :: ChatCommand -> NonEmpty GroupMemberId
[blocked] :: ChatCommand -> Bool
APIRemoveMembers :: GroupId -> NonEmpty GroupMemberId -> Bool -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupMemberIds] :: ChatCommand -> NonEmpty GroupMemberId
[withMessages] :: ChatCommand -> Bool
APILeaveGroup :: GroupId -> ChatCommand
[groupId] :: ChatCommand -> GroupId
APIListMembers :: GroupId -> ChatCommand
[groupId] :: ChatCommand -> GroupId
APIUpdateGroupProfile :: GroupId -> GroupProfile -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupProfile] :: ChatCommand -> GroupProfile
APICreateGroupLink :: GroupId -> GroupMemberRole -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[memberRole] :: ChatCommand -> GroupMemberRole
APIGroupLinkMemberRole :: GroupId -> GroupMemberRole -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[memberRole] :: ChatCommand -> GroupMemberRole
APIDeleteGroupLink :: GroupId -> ChatCommand
[groupId] :: ChatCommand -> GroupId
APIGetGroupLink :: GroupId -> ChatCommand
[groupId] :: ChatCommand -> GroupId
APIAddGroupShortLink :: GroupId -> ChatCommand
APICreateMemberContact :: GroupId -> GroupMemberId -> ChatCommand
APISendMemberContactInvitation :: ContactId -> Maybe MsgContent -> ChatCommand
[contactId] :: ChatCommand -> ContactId
[msgContent_] :: ChatCommand -> Maybe MsgContent
APIAcceptMemberContact :: ContactId -> ChatCommand
GetUserProtoServers :: AProtocolType -> ChatCommand
SetUserProtoServers :: AProtocolType -> [AProtoServerWithAuth] -> ChatCommand
APITestProtoServer :: UserId -> AProtoServerWithAuth -> ChatCommand
TestProtoServer :: AProtoServerWithAuth -> ChatCommand
APIGetServerOperators :: ChatCommand
APISetServerOperators :: NonEmpty ServerOperator -> ChatCommand
SetServerOperators :: NonEmpty ServerOperatorRoles -> ChatCommand
APIGetUserServers :: UserId -> ChatCommand
APISetUserServers :: UserId -> NonEmpty UpdatedUserOperatorServers -> ChatCommand
APIValidateServers :: UserId -> [UpdatedUserOperatorServers] -> ChatCommand
APIGetUsageConditions :: ChatCommand
APISetConditionsNotified :: Int64 -> ChatCommand
APIAcceptConditions :: Int64 -> NonEmpty Int64 -> ChatCommand
APISetChatItemTTL :: UserId -> Int64 -> ChatCommand
SetChatItemTTL :: Int64 -> ChatCommand
APIGetChatItemTTL :: UserId -> ChatCommand
GetChatItemTTL :: ChatCommand
APISetChatTTL :: UserId -> ChatRef -> Maybe Int64 -> ChatCommand
[userId] :: ChatCommand -> UserId
[chatRef] :: ChatCommand -> ChatRef
[seconds] :: ChatCommand -> Maybe Int64
SetChatTTL :: ChatName -> Maybe Int64 -> ChatCommand
GetChatTTL :: ChatName -> ChatCommand
APISetNetworkConfig :: NetworkConfig -> ChatCommand
APIGetNetworkConfig :: ChatCommand
SetNetworkConfig :: SimpleNetCfg -> ChatCommand
APISetNetworkInfo :: UserNetworkInfo -> ChatCommand
ReconnectAllServers :: ChatCommand
ReconnectServer :: UserId -> SMPServer -> ChatCommand
APISetChatSettings :: ChatRef -> ChatSettings -> ChatCommand
[chatRef] :: ChatCommand -> ChatRef
[chatSettings] :: ChatCommand -> ChatSettings
APISetMemberSettings :: GroupId -> GroupMemberId -> GroupMemberSettings -> ChatCommand
APIContactInfo :: ContactId -> ChatCommand
APIGroupInfo :: GroupId -> ChatCommand
APIGroupMemberInfo :: GroupId -> GroupMemberId -> ChatCommand
APIContactQueueInfo :: ContactId -> ChatCommand
APIGroupMemberQueueInfo :: GroupId -> GroupMemberId -> ChatCommand
APISwitchContact :: ContactId -> ChatCommand
APISwitchGroupMember :: GroupId -> GroupMemberId -> ChatCommand
APIAbortSwitchContact :: ContactId -> ChatCommand
APIAbortSwitchGroupMember :: GroupId -> GroupMemberId -> ChatCommand
APISyncContactRatchet :: ContactId -> Bool -> ChatCommand
[contactId] :: ChatCommand -> ContactId
[force] :: ChatCommand -> Bool
APISyncGroupMemberRatchet :: GroupId -> GroupMemberId -> Bool -> ChatCommand
[groupId] :: ChatCommand -> GroupId
[groupMemberId] :: ChatCommand -> GroupMemberId
[force] :: ChatCommand -> Bool
APIGetContactCode :: ContactId -> ChatCommand
APIGetGroupMemberCode :: GroupId -> GroupMemberId -> ChatCommand
APIVerifyContact :: ContactId -> Maybe Text -> ChatCommand
APIVerifyGroupMember :: GroupId -> GroupMemberId -> Maybe Text -> ChatCommand
APIEnableContact :: ContactId -> ChatCommand
APIEnableGroupMember :: GroupId -> GroupMemberId -> ChatCommand
SetShowMessages :: ChatName -> MsgFilter -> ChatCommand
SetSendReceipts :: ChatName -> Maybe Bool -> ChatCommand
SetShowMemberMessages :: GroupName -> ContactName -> Bool -> ChatCommand
ContactInfo :: ContactName -> ChatCommand
ShowGroupInfo :: GroupName -> ChatCommand
GroupMemberInfo :: GroupName -> ContactName -> ChatCommand
ContactQueueInfo :: ContactName -> ChatCommand
GroupMemberQueueInfo :: GroupName -> ContactName -> ChatCommand
SwitchContact :: ContactName -> ChatCommand
SwitchGroupMember :: GroupName -> ContactName -> ChatCommand
AbortSwitchContact :: ContactName -> ChatCommand
AbortSwitchGroupMember :: GroupName -> ContactName -> ChatCommand
SyncContactRatchet :: ContactName -> Bool -> ChatCommand
SyncGroupMemberRatchet :: GroupName -> ContactName -> Bool -> ChatCommand
GetContactCode :: ContactName -> ChatCommand
GetGroupMemberCode :: GroupName -> ContactName -> ChatCommand
VerifyContact :: ContactName -> Maybe Text -> ChatCommand
VerifyGroupMember :: GroupName -> ContactName -> Maybe Text -> ChatCommand
EnableContact :: ContactName -> ChatCommand
EnableGroupMember :: GroupName -> ContactName -> ChatCommand
ChatHelp :: HelpSection -> ChatCommand
Welcome :: ChatCommand
APIAddContact :: UserId -> IncognitoEnabled -> ChatCommand
[userId] :: ChatCommand -> UserId
[incognito] :: ChatCommand -> IncognitoEnabled
AddContact :: IncognitoEnabled -> ChatCommand
APISetConnectionIncognito :: Int64 -> IncognitoEnabled -> ChatCommand
APIChangeConnectionUser :: Int64 -> UserId -> ChatCommand
APIConnectPlan :: UserId -> Maybe AConnectionLink -> ChatCommand
[userId] :: ChatCommand -> UserId
[connectionLink] :: ChatCommand -> Maybe AConnectionLink
APIPrepareContact :: UserId -> ACreatedConnLink -> ContactShortLinkData -> ChatCommand
APIPrepareGroup :: UserId -> CreatedLinkContact -> GroupShortLinkData -> ChatCommand
APIChangePreparedContactUser :: ContactId -> UserId -> ChatCommand
APIChangePreparedGroupUser :: GroupId -> UserId -> ChatCommand
APIConnectPreparedContact :: ContactId -> IncognitoEnabled -> Maybe MsgContent -> ChatCommand
[contactId] :: ChatCommand -> ContactId
[incognito] :: ChatCommand -> IncognitoEnabled
[msgContent_] :: ChatCommand -> Maybe MsgContent
APIConnectPreparedGroup :: GroupId -> IncognitoEnabled -> Maybe MsgContent -> ChatCommand
APIConnect :: UserId -> IncognitoEnabled -> Maybe ACreatedConnLink -> ChatCommand
[userId] :: ChatCommand -> UserId
[incognito] :: ChatCommand -> IncognitoEnabled
[preparedLink_] :: ChatCommand -> Maybe ACreatedConnLink
Connect :: IncognitoEnabled -> Maybe AConnectionLink -> ChatCommand
[incognito] :: ChatCommand -> IncognitoEnabled
[connLink_] :: ChatCommand -> Maybe AConnectionLink
APIConnectContactViaAddress :: UserId -> IncognitoEnabled -> ContactId -> ChatCommand
ConnectSimplex :: IncognitoEnabled -> ChatCommand
DeleteContact :: ContactName -> ChatDeleteMode -> ChatCommand
ClearContact :: ContactName -> ChatCommand
APIListContacts :: UserId -> ChatCommand
[userId] :: ChatCommand -> UserId
ListContacts :: ChatCommand
APICreateMyAddress :: UserId -> ChatCommand
[userId] :: ChatCommand -> UserId
CreateMyAddress :: ChatCommand
APIDeleteMyAddress :: UserId -> ChatCommand
[userId] :: ChatCommand -> UserId
DeleteMyAddress :: ChatCommand
APIShowMyAddress :: UserId -> ChatCommand
[userId] :: ChatCommand -> UserId
ShowMyAddress :: ChatCommand
APIAddMyAddressShortLink :: UserId -> ChatCommand
APISetProfileAddress :: UserId -> Bool -> ChatCommand
[userId] :: ChatCommand -> UserId
[enable] :: ChatCommand -> Bool
SetProfileAddress :: Bool -> ChatCommand
APISetAddressSettings :: UserId -> AddressSettings -> ChatCommand
[userId] :: ChatCommand -> UserId
[settings] :: ChatCommand -> AddressSettings
SetAddressSettings :: AddressSettings -> ChatCommand
AcceptContact :: IncognitoEnabled -> ContactName -> ChatCommand
RejectContact :: ContactName -> ChatCommand
ForwardMessage :: ChatName -> ContactName -> Text -> ChatCommand
[toChatName] :: ChatCommand -> ChatName
[fromContactName] :: ChatCommand -> ContactName
[forwardedMsg] :: ChatCommand -> Text
ForwardGroupMessage :: ChatName -> GroupName -> Maybe ContactName -> Text -> ChatCommand
[toChatName] :: ChatCommand -> ChatName
[fromGroupName] :: ChatCommand -> GroupName
[fromMemberName_] :: ChatCommand -> Maybe ContactName
[forwardedMsg] :: ChatCommand -> Text
ForwardLocalMessage :: ChatName -> Text -> ChatCommand
[toChatName] :: ChatCommand -> ChatName
[forwardedMsg] :: ChatCommand -> Text
SendMessage :: SendName -> Text -> ChatCommand
SendMemberContactMessage :: GroupName -> ContactName -> Text -> ChatCommand
AcceptMemberContact :: ContactName -> ChatCommand
SendLiveMessage :: ChatName -> Text -> ChatCommand
SendMessageQuote :: ContactName -> AMsgDirection -> Text -> Text -> ChatCommand
[contactName] :: ChatCommand -> ContactName
[msgDir] :: ChatCommand -> AMsgDirection
[quotedMsg] :: ChatCommand -> Text
[message] :: ChatCommand -> Text
SendMessageBroadcast :: MsgContent -> ChatCommand
DeleteMessage :: ChatName -> Text -> ChatCommand
DeleteMemberMessage :: GroupName -> ContactName -> Text -> ChatCommand
EditMessage :: ChatName -> Text -> Text -> ChatCommand
[chatName] :: ChatCommand -> ChatName
[editedMsg] :: ChatCommand -> Text
[message] :: ChatCommand -> Text
UpdateLiveMessage :: ChatName -> ChatItemId -> Bool -> Text -> ChatCommand
[chatName] :: ChatCommand -> ChatName
[chatItemId] :: ChatCommand -> ChatItemId
[liveMessage] :: ChatCommand -> Bool
[message] :: ChatCommand -> Text
ReactToMessage :: Bool -> MsgReaction -> ChatName -> Text -> ChatCommand
[add] :: ChatCommand -> Bool
[reaction] :: ChatCommand -> MsgReaction
[chatName] :: ChatCommand -> ChatName
[reactToMessage] :: ChatCommand -> Text
APINewGroup :: UserId -> IncognitoEnabled -> GroupProfile -> ChatCommand
[userId] :: ChatCommand -> UserId
[incognito] :: ChatCommand -> IncognitoEnabled
[groupProfile] :: ChatCommand -> GroupProfile
NewGroup :: IncognitoEnabled -> GroupProfile -> ChatCommand
AddMember :: GroupName -> ContactName -> GroupMemberRole -> ChatCommand
JoinGroup :: GroupName -> MsgFilter -> ChatCommand
[groupName] :: ChatCommand -> GroupName
[enableNtfs] :: ChatCommand -> MsgFilter
AcceptMember :: GroupName -> ContactName -> GroupMemberRole -> ChatCommand
MemberRole :: GroupName -> ContactName -> GroupMemberRole -> ChatCommand
BlockForAll :: GroupName -> ContactName -> Bool -> ChatCommand
RemoveMembers :: GroupName -> NonEmpty ContactName -> Bool -> ChatCommand
[groupName] :: ChatCommand -> GroupName
[members] :: ChatCommand -> NonEmpty ContactName
[withMessages] :: ChatCommand -> Bool
LeaveGroup :: GroupName -> ChatCommand
DeleteGroup :: GroupName -> ChatCommand
ClearGroup :: GroupName -> ChatCommand
ListMembers :: GroupName -> ChatCommand
ListMemberSupportChats :: GroupName -> ChatCommand
APIListGroups :: UserId -> Maybe ContactId -> Maybe Text -> ChatCommand
[userId] :: ChatCommand -> UserId
[contactId_] :: ChatCommand -> Maybe ContactId
[search] :: ChatCommand -> Maybe Text
ListGroups :: Maybe ContactName -> Maybe Text -> ChatCommand
UpdateGroupNames :: GroupName -> GroupProfile -> ChatCommand
ShowGroupProfile :: GroupName -> ChatCommand
UpdateGroupDescription :: GroupName -> Maybe Text -> ChatCommand
ShowGroupDescription :: GroupName -> ChatCommand
CreateGroupLink :: GroupName -> GroupMemberRole -> ChatCommand
GroupLinkMemberRole :: GroupName -> GroupMemberRole -> ChatCommand
DeleteGroupLink :: GroupName -> ChatCommand
ShowGroupLink :: GroupName -> ChatCommand
SendGroupMessageQuote :: GroupName -> Maybe ContactName -> Text -> Text -> ChatCommand
[groupName] :: ChatCommand -> GroupName
[contactName_] :: ChatCommand -> Maybe ContactName
[quotedMsg] :: ChatCommand -> Text
[message] :: ChatCommand -> Text
ClearNoteFolder :: ChatCommand
LastChats :: Maybe Int -> ChatCommand
LastMessages :: Maybe ChatName -> Int -> Maybe Text -> ChatCommand
LastChatItemId :: Maybe ChatName -> Int -> ChatCommand
ShowChatItem :: Maybe ChatItemId -> ChatCommand
ShowChatItemInfo :: ChatName -> Text -> ChatCommand
ShowLiveItems :: Bool -> ChatCommand
SendFile :: ChatName -> CryptoFile -> ChatCommand
SendImage :: ChatName -> CryptoFile -> ChatCommand
ForwardFile :: ChatName -> FileTransferId -> ChatCommand
ForwardImage :: ChatName -> FileTransferId -> ChatCommand
SendFileDescription :: ChatName -> FilePath -> ChatCommand
ReceiveFile :: FileTransferId -> Bool -> Maybe Bool -> Maybe Bool -> Maybe FilePath -> ChatCommand
[fileId] :: ChatCommand -> FileTransferId
[userApprovedRelays] :: ChatCommand -> Bool
[storeEncrypted] :: ChatCommand -> Maybe Bool
[fileInline] :: ChatCommand -> Maybe Bool
[filePath] :: ChatCommand -> Maybe FilePath
SetFileToReceive :: FileTransferId -> Bool -> Maybe Bool -> ChatCommand
[fileId] :: ChatCommand -> FileTransferId
[userApprovedRelays] :: ChatCommand -> Bool
[storeEncrypted] :: ChatCommand -> Maybe Bool
CancelFile :: FileTransferId -> ChatCommand
[fileId] :: ChatCommand -> FileTransferId
FileStatus :: FileTransferId -> ChatCommand
ShowProfile :: ChatCommand
SetBotCommands :: [ChatBotCommand] -> ChatCommand
UpdateProfile :: ContactName -> Maybe Text -> ChatCommand
UpdateProfileImage :: Maybe ImageData -> ChatCommand
ShowProfileImage :: ChatCommand
SetUserFeature :: AChatFeature -> FeatureAllowed -> ChatCommand
SetContactFeature :: AChatFeature -> ContactName -> Maybe FeatureAllowed -> ChatCommand
SetGroupFeature :: AGroupFeatureNoRole -> GroupName -> GroupFeatureEnabled -> ChatCommand
SetGroupFeatureRole :: AGroupFeatureRole -> GroupName -> GroupFeatureEnabled -> Maybe GroupMemberRole -> ChatCommand
SetGroupMemberAdmissionReview :: GroupName -> Maybe MemberCriteria -> ChatCommand
SetUserTimedMessages :: Bool -> ChatCommand
SetContactTimedMessages :: ContactName -> Maybe TimedMessagesEnabled -> ChatCommand
SetGroupTimedMessages :: GroupName -> Maybe Int -> ChatCommand
SetLocalDeviceName :: Text -> ChatCommand
ListRemoteHosts :: ChatCommand
StartRemoteHost :: Maybe (RemoteHostId, Bool) -> Maybe RCCtrlAddress -> Maybe Word16 -> ChatCommand
SwitchRemoteHost :: Maybe RemoteHostId -> ChatCommand
StopRemoteHost :: RHKey -> ChatCommand
DeleteRemoteHost :: RemoteHostId -> ChatCommand
StoreRemoteFile :: RemoteHostId -> Maybe Bool -> FilePath -> ChatCommand
[remoteHostId] :: ChatCommand -> RemoteHostId
[storeEncrypted] :: ChatCommand -> Maybe Bool
[localPath] :: ChatCommand -> FilePath
GetRemoteFile :: RemoteHostId -> RemoteFile -> ChatCommand
[remoteHostId] :: ChatCommand -> RemoteHostId
[file] :: ChatCommand -> RemoteFile
ConnectRemoteCtrl :: RCSignedInvitation -> ChatCommand
FindKnownRemoteCtrl :: ChatCommand
ConfirmRemoteCtrl :: RemoteCtrlId -> ChatCommand
VerifyRemoteCtrlSession :: Text -> ChatCommand
ListRemoteCtrls :: ChatCommand
StopRemoteCtrl :: ChatCommand
DeleteRemoteCtrl :: RemoteCtrlId -> ChatCommand
APIUploadStandaloneFile :: UserId -> CryptoFile -> ChatCommand
APIDownloadStandaloneFile :: UserId -> FileDescriptionURI -> CryptoFile -> ChatCommand
APIStandaloneFileInfo :: FileDescriptionURI -> ChatCommand
QuitChat :: ChatCommand
ShowVersion :: ChatCommand
DebugLocks :: ChatCommand
DebugEvent :: ChatEvent -> ChatCommand
GetAgentSubsTotal :: UserId -> ChatCommand
GetAgentServersSummary :: UserId -> ChatCommand
ResetAgentServersStats :: ChatCommand
GetAgentSubs :: ChatCommand
GetAgentSubsDetails :: ChatCommand
GetAgentWorkers :: ChatCommand
GetAgentWorkersDetails :: ChatCommand
GetAgentQueuesInfo :: ChatCommand
CustomChatCommand :: ByteString -> ChatCommand
allowRemoteCommand :: ChatCommand -> Bool
data ChatResponse
CRActiveUser :: User -> ChatResponse
[user] :: ChatResponse -> User
CRUsersList :: [UserInfo] -> ChatResponse
[users] :: ChatResponse -> [UserInfo]
CRChatStarted :: ChatResponse
CRChatRunning :: ChatResponse
CRChatStopped :: ChatResponse
CRConnectionsDiff :: Bool -> DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> ChatResponse
[showIds] :: ChatResponse -> Bool
[userIds] :: ChatResponse -> DatabaseDiff AgentUserId
[connIds] :: ChatResponse -> DatabaseDiff AgentConnId
CRApiChats :: User -> [AChat] -> ChatResponse
[user] :: ChatResponse -> User
[chats] :: ChatResponse -> [AChat]
CRChats :: [AChat] -> ChatResponse
[chats] :: ChatResponse -> [AChat]
CRApiChat :: User -> AChat -> Maybe NavigationInfo -> ChatResponse
[user] :: ChatResponse -> User
[chat] :: ChatResponse -> AChat
[navInfo] :: ChatResponse -> Maybe NavigationInfo
CRChatTags :: User -> [ChatTag] -> ChatResponse
[user] :: ChatResponse -> User
[userTags] :: ChatResponse -> [ChatTag]
CRChatItems :: User -> Maybe ChatName -> [AChatItem] -> ChatResponse
[user] :: ChatResponse -> User
[chatName_] :: ChatResponse -> Maybe ChatName
[chatItems] :: ChatResponse -> [AChatItem]
CRChatItemInfo :: User -> AChatItem -> ChatItemInfo -> ChatResponse
[user] :: ChatResponse -> User
[chatItem] :: ChatResponse -> AChatItem
[chatItemInfo] :: ChatResponse -> ChatItemInfo
CRChatItemId :: User -> Maybe ChatItemId -> ChatResponse
CRServerTestResult :: User -> AProtoServerWithAuth -> Maybe ProtocolTestFailure -> ChatResponse
[user] :: ChatResponse -> User
[testServer] :: ChatResponse -> AProtoServerWithAuth
[testFailure] :: ChatResponse -> Maybe ProtocolTestFailure
CRServerOperatorConditions :: ServerOperatorConditions -> ChatResponse
[conditions] :: ChatResponse -> ServerOperatorConditions
CRUserServers :: User -> [UserOperatorServers] -> ChatResponse
[user] :: ChatResponse -> User
[userServers] :: ChatResponse -> [UserOperatorServers]
CRUserServersValidation :: User -> [UserServersError] -> ChatResponse
[user] :: ChatResponse -> User
[serverErrors] :: ChatResponse -> [UserServersError]
CRUsageConditions :: UsageConditions -> Text -> Maybe UsageConditions -> ChatResponse
[usageConditions] :: ChatResponse -> UsageConditions
[conditionsText] :: ChatResponse -> Text
[acceptedConditions] :: ChatResponse -> Maybe UsageConditions
CRChatItemTTL :: User -> Maybe Int64 -> ChatResponse
[user] :: ChatResponse -> User
[chatItemTTL] :: ChatResponse -> Maybe Int64
CRNetworkConfig :: NetworkConfig -> ChatResponse
[networkConfig] :: ChatResponse -> NetworkConfig
CRContactInfo :: User -> Contact -> Maybe ConnectionStats -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[connectionStats_] :: ChatResponse -> Maybe ConnectionStats
[customUserProfile] :: ChatResponse -> Maybe Profile
CRGroupInfo :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRGroupMemberInfo :: User -> GroupInfo -> GroupMember -> Maybe ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
[connectionStats_] :: ChatResponse -> Maybe ConnectionStats
CRQueueInfo :: User -> Maybe RcvMsgInfo -> ServerQueueInfo -> ChatResponse
[user] :: ChatResponse -> User
[rcvMsgInfo] :: ChatResponse -> Maybe RcvMsgInfo
[queueInfo] :: ChatResponse -> ServerQueueInfo
CRContactSwitchStarted :: User -> Contact -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[connectionStats] :: ChatResponse -> ConnectionStats
CRGroupMemberSwitchStarted :: User -> GroupInfo -> GroupMember -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
[connectionStats] :: ChatResponse -> ConnectionStats
CRContactSwitchAborted :: User -> Contact -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[connectionStats] :: ChatResponse -> ConnectionStats
CRGroupMemberSwitchAborted :: User -> GroupInfo -> GroupMember -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
[connectionStats] :: ChatResponse -> ConnectionStats
CRContactRatchetSyncStarted :: User -> Contact -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[connectionStats] :: ChatResponse -> ConnectionStats
CRGroupMemberRatchetSyncStarted :: User -> GroupInfo -> GroupMember -> ConnectionStats -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
[connectionStats] :: ChatResponse -> ConnectionStats
CRContactCode :: User -> Contact -> Text -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[connectionCode] :: ChatResponse -> Text
CRGroupMemberCode :: User -> GroupInfo -> GroupMember -> Text -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
[connectionCode] :: ChatResponse -> Text
CRConnectionVerified :: User -> Bool -> Text -> ChatResponse
[user] :: ChatResponse -> User
[verified] :: ChatResponse -> Bool
[expectedCode] :: ChatResponse -> Text
CRTagsUpdated :: User -> [ChatTag] -> [ChatTagId] -> ChatResponse
[user] :: ChatResponse -> User
[userTags] :: ChatResponse -> [ChatTag]
[chatTags] :: ChatResponse -> [ChatTagId]
CRNewChatItems :: User -> [AChatItem] -> ChatResponse
[user] :: ChatResponse -> User
[chatItems] :: ChatResponse -> [AChatItem]
CRChatItemUpdated :: User -> AChatItem -> ChatResponse
[user] :: ChatResponse -> User
[chatItem] :: ChatResponse -> AChatItem
CRChatItemNotChanged :: User -> AChatItem -> ChatResponse
[user] :: ChatResponse -> User
[chatItem] :: ChatResponse -> AChatItem
CRChatItemReaction :: User -> Bool -> ACIReaction -> ChatResponse
[user] :: ChatResponse -> User
[added] :: ChatResponse -> Bool
[reaction] :: ChatResponse -> ACIReaction
CRReactionMembers :: User -> [MemberReaction] -> ChatResponse
[user] :: ChatResponse -> User
[memberReactions] :: ChatResponse -> [MemberReaction]
CRChatItemsDeleted :: User -> [ChatItemDeletion] -> Bool -> Bool -> ChatResponse
[user] :: ChatResponse -> User
[chatItemDeletions] :: ChatResponse -> [ChatItemDeletion]
[byUser] :: ChatResponse -> Bool
[timed] :: ChatResponse -> Bool
CRGroupChatItemsDeleted :: User -> GroupInfo -> [ChatItemId] -> Bool -> Maybe GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[chatItemIDs] :: ChatResponse -> [ChatItemId]
[byUser] :: ChatResponse -> Bool
[member_] :: ChatResponse -> Maybe GroupMember
CRBroadcastSent :: User -> MsgContent -> Int -> Int -> UTCTime -> ChatResponse
[user] :: ChatResponse -> User
[msgContent] :: ChatResponse -> MsgContent
[successes] :: ChatResponse -> Int
[failures] :: ChatResponse -> Int
[timestamp] :: ChatResponse -> UTCTime
CRCmdOk :: Maybe User -> ChatResponse
[user_] :: ChatResponse -> Maybe User
CRChatHelp :: HelpSection -> ChatResponse
[helpSection] :: ChatResponse -> HelpSection
CRWelcome :: User -> ChatResponse
[user] :: ChatResponse -> User
CRGroupCreated :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRGroupMembers :: User -> Group -> ChatResponse
[user] :: ChatResponse -> User
[group] :: ChatResponse -> Group
CRMemberSupportChats :: User -> GroupInfo -> [GroupMember] -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[members] :: ChatResponse -> [GroupMember]

-- | CRGroupConversationsArchived {user :: User, groupInfo :: GroupInfo,
--   archivedGroupConversations :: [GroupConversation]} |
--   CRGroupConversationsDeleted {user :: User, groupInfo :: GroupInfo,
--   deletedGroupConversations :: [GroupConversation]}
CRContactsList :: User -> [Contact] -> ChatResponse
[user] :: ChatResponse -> User
[contacts] :: ChatResponse -> [Contact]
CRUserContactLink :: User -> UserContactLink -> ChatResponse
[user] :: ChatResponse -> User
[contactLink] :: ChatResponse -> UserContactLink
CRUserContactLinkUpdated :: User -> UserContactLink -> ChatResponse
[user] :: ChatResponse -> User
[contactLink] :: ChatResponse -> UserContactLink
CRContactRequestRejected :: User -> UserContactRequest -> Maybe Contact -> ChatResponse
[user] :: ChatResponse -> User
[contactRequest] :: ChatResponse -> UserContactRequest
[contact_] :: ChatResponse -> Maybe Contact
CRUserAcceptedGroupSent :: User -> GroupInfo -> Maybe Contact -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[hostContact] :: ChatResponse -> Maybe Contact
CRUserDeletedMembers :: User -> GroupInfo -> [GroupMember] -> Bool -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[members] :: ChatResponse -> [GroupMember]
[withMessages] :: ChatResponse -> Bool
CRGroupsList :: User -> [GroupInfo] -> ChatResponse
[user] :: ChatResponse -> User
[groups] :: ChatResponse -> [GroupInfo]
CRSentGroupInvitation :: User -> GroupInfo -> Contact -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[contact] :: ChatResponse -> Contact
[member] :: ChatResponse -> GroupMember
CRFileTransferStatus :: User -> (FileTransfer, [Integer]) -> ChatResponse
CRFileTransferStatusXFTP :: User -> AChatItem -> ChatResponse
CRUserProfile :: User -> Profile -> ChatResponse
[user] :: ChatResponse -> User
[profile] :: ChatResponse -> Profile
CRUserProfileNoChange :: User -> ChatResponse
[user] :: ChatResponse -> User
CRUserPrivacy :: User -> User -> ChatResponse
[user] :: ChatResponse -> User
[updatedUser] :: ChatResponse -> User
CRVersionInfo :: CoreVersionInfo -> [UpMigration] -> [UpMigration] -> ChatResponse
[versionInfo] :: ChatResponse -> CoreVersionInfo
[chatMigrations] :: ChatResponse -> [UpMigration]
[agentMigrations] :: ChatResponse -> [UpMigration]
CRInvitation :: User -> CreatedLinkInvitation -> PendingContactConnection -> ChatResponse
[user] :: ChatResponse -> User
[connLinkInvitation] :: ChatResponse -> CreatedLinkInvitation
[connection] :: ChatResponse -> PendingContactConnection
CRConnectionIncognitoUpdated :: User -> PendingContactConnection -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[toConnection] :: ChatResponse -> PendingContactConnection
[customUserProfile] :: ChatResponse -> Maybe Profile
CRConnectionUserChanged :: User -> PendingContactConnection -> PendingContactConnection -> User -> ChatResponse
[user] :: ChatResponse -> User
[fromConnection] :: ChatResponse -> PendingContactConnection
[toConnection] :: ChatResponse -> PendingContactConnection
[newUser] :: ChatResponse -> User
CRConnectionPlan :: User -> ACreatedConnLink -> ConnectionPlan -> ChatResponse
[user] :: ChatResponse -> User
[connLink] :: ChatResponse -> ACreatedConnLink
[connectionPlan] :: ChatResponse -> ConnectionPlan
CRNewPreparedChat :: User -> AChat -> ChatResponse
[user] :: ChatResponse -> User
[chat] :: ChatResponse -> AChat
CRContactUserChanged :: User -> Contact -> User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[fromContact] :: ChatResponse -> Contact
[newUser] :: ChatResponse -> User
[toContact] :: ChatResponse -> Contact
CRGroupUserChanged :: User -> GroupInfo -> User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[fromGroup] :: ChatResponse -> GroupInfo
[newUser] :: ChatResponse -> User
[toGroup] :: ChatResponse -> GroupInfo
CRSentConfirmation :: User -> PendingContactConnection -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[connection] :: ChatResponse -> PendingContactConnection
[customUserProfile] :: ChatResponse -> Maybe Profile
CRSentInvitation :: User -> PendingContactConnection -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[connection] :: ChatResponse -> PendingContactConnection
[customUserProfile] :: ChatResponse -> Maybe Profile
CRStartedConnectionToContact :: User -> Contact -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[customUserProfile] :: ChatResponse -> Maybe Profile
CRStartedConnectionToGroup :: User -> GroupInfo -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[customUserProfile] :: ChatResponse -> Maybe Profile
CRSentInvitationToContact :: User -> Contact -> Maybe Profile -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[customUserProfile] :: ChatResponse -> Maybe Profile
CRItemsReadForChat :: User -> AChatInfo -> ChatResponse
[user] :: ChatResponse -> User
[chatInfo] :: ChatResponse -> AChatInfo
CRContactDeleted :: User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
CRChatCleared :: User -> AChatInfo -> ChatResponse
[user] :: ChatResponse -> User
[chatInfo] :: ChatResponse -> AChatInfo
CRUserContactLinkCreated :: User -> CreatedLinkContact -> ChatResponse
[user] :: ChatResponse -> User
[connLinkContact] :: ChatResponse -> CreatedLinkContact
CRUserContactLinkDeleted :: User -> ChatResponse
[user] :: ChatResponse -> User
CRAcceptingContactRequest :: User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
CRContactAlreadyExists :: User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
CRLeftMemberUser :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRGroupDeletedUser :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRForwardPlan :: User -> Int -> [ChatItemId] -> Maybe ForwardConfirmation -> ChatResponse
[user] :: ChatResponse -> User
[itemsCount] :: ChatResponse -> Int
[chatItemIds] :: ChatResponse -> [ChatItemId]
[forwardConfirmation] :: ChatResponse -> Maybe ForwardConfirmation
CRRcvFileAccepted :: User -> AChatItem -> ChatResponse
[user] :: ChatResponse -> User
[chatItem] :: ChatResponse -> AChatItem
CRRcvFileAcceptedSndCancelled :: User -> RcvFileTransfer -> ChatResponse
[user] :: ChatResponse -> User
[rcvFileTransfer] :: ChatResponse -> RcvFileTransfer
CRStandaloneFileInfo :: Maybe Value -> ChatResponse
[fileMeta] :: ChatResponse -> Maybe Value
CRRcvStandaloneFileCreated :: User -> RcvFileTransfer -> ChatResponse
[user] :: ChatResponse -> User
[rcvFileTransfer] :: ChatResponse -> RcvFileTransfer
CRRcvFileCancelled :: User -> Maybe AChatItem -> RcvFileTransfer -> ChatResponse
[user] :: ChatResponse -> User
[chatItem_] :: ChatResponse -> Maybe AChatItem
[rcvFileTransfer] :: ChatResponse -> RcvFileTransfer
CRSndFileCancelled :: User -> Maybe AChatItem -> FileTransferMeta -> [SndFileTransfer] -> ChatResponse
[user] :: ChatResponse -> User
[chatItem_] :: ChatResponse -> Maybe AChatItem
[fileTransferMeta] :: ChatResponse -> FileTransferMeta
[sndFileTransfers] :: ChatResponse -> [SndFileTransfer]
CRSndStandaloneFileCreated :: User -> FileTransferMeta -> ChatResponse
[user] :: ChatResponse -> User
[fileTransferMeta] :: ChatResponse -> FileTransferMeta
CRUserProfileUpdated :: User -> Profile -> Profile -> UserProfileUpdateSummary -> ChatResponse
[user] :: ChatResponse -> User
[fromProfile] :: ChatResponse -> Profile
[toProfile] :: ChatResponse -> Profile
[updateSummary] :: ChatResponse -> UserProfileUpdateSummary
CRUserProfileImage :: User -> Profile -> ChatResponse
[user] :: ChatResponse -> User
[profile] :: ChatResponse -> Profile
CRContactAliasUpdated :: User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[toContact] :: ChatResponse -> Contact
CRGroupAliasUpdated :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[toGroup] :: ChatResponse -> GroupInfo
CRConnectionAliasUpdated :: User -> PendingContactConnection -> ChatResponse
[user] :: ChatResponse -> User
[toConnection] :: ChatResponse -> PendingContactConnection
CRContactPrefsUpdated :: User -> Contact -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[fromContact] :: ChatResponse -> Contact
[toContact] :: ChatResponse -> Contact
CRJoinedGroupMember :: User -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRMemberAccepted :: User -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRMemberSupportChatRead :: User -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRMemberSupportChatDeleted :: User -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRMembersRoleUser :: User -> GroupInfo -> [GroupMember] -> GroupMemberRole -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[members] :: ChatResponse -> [GroupMember]
[toRole] :: ChatResponse -> GroupMemberRole
CRMembersBlockedForAllUser :: User -> GroupInfo -> [GroupMember] -> Bool -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[members] :: ChatResponse -> [GroupMember]
[blocked] :: ChatResponse -> Bool
CRGroupUpdated :: User -> GroupInfo -> GroupInfo -> Maybe GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[fromGroup] :: ChatResponse -> GroupInfo
[toGroup] :: ChatResponse -> GroupInfo
[member_] :: ChatResponse -> Maybe GroupMember
CRGroupProfile :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRGroupDescription :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRGroupLinkCreated :: User -> GroupInfo -> GroupLink -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[groupLink] :: ChatResponse -> GroupLink
CRGroupLink :: User -> GroupInfo -> GroupLink -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
[groupLink] :: ChatResponse -> GroupLink
CRGroupLinkDeleted :: User -> GroupInfo -> ChatResponse
[user] :: ChatResponse -> User
[groupInfo] :: ChatResponse -> GroupInfo
CRNewMemberContact :: User -> Contact -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRNewMemberContactSentInv :: User -> Contact -> GroupInfo -> GroupMember -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
[groupInfo] :: ChatResponse -> GroupInfo
[member] :: ChatResponse -> GroupMember
CRMemberContactAccepted :: User -> Contact -> ChatResponse
[user] :: ChatResponse -> User
[contact] :: ChatResponse -> Contact
CRCallInvitations :: [RcvCallInvitation] -> ChatResponse
[callInvitations] :: ChatResponse -> [RcvCallInvitation]
CRNtfTokenStatus :: NtfTknStatus -> ChatResponse
[status] :: ChatResponse -> NtfTknStatus
CRNtfToken :: DeviceToken -> NtfTknStatus -> NotificationsMode -> NtfServer -> ChatResponse
[token] :: ChatResponse -> DeviceToken
[status] :: ChatResponse -> NtfTknStatus
[ntfMode] :: ChatResponse -> NotificationsMode
[ntfServer] :: ChatResponse -> NtfServer
CRNtfConns :: [NtfConn] -> ChatResponse
[ntfConns] :: ChatResponse -> [NtfConn]
CRConnNtfMessages :: NonEmpty RcvNtfMsgInfo -> ChatResponse
[receivedMsgs] :: ChatResponse -> NonEmpty RcvNtfMsgInfo
CRContactConnectionDeleted :: User -> PendingContactConnection -> ChatResponse
[user] :: ChatResponse -> User
[connection] :: ChatResponse -> PendingContactConnection
CRRemoteHostList :: [RemoteHostInfo] -> ChatResponse
[remoteHosts] :: ChatResponse -> [RemoteHostInfo]
CRCurrentRemoteHost :: Maybe RemoteHostInfo -> ChatResponse
[remoteHost_] :: ChatResponse -> Maybe RemoteHostInfo
CRRemoteHostStarted :: Maybe RemoteHostInfo -> Text -> String -> NonEmpty RCCtrlAddress -> ChatResponse
[remoteHost_] :: ChatResponse -> Maybe RemoteHostInfo
[invitation] :: ChatResponse -> Text
[ctrlPort] :: ChatResponse -> String
[localAddrs] :: ChatResponse -> NonEmpty RCCtrlAddress
CRRemoteFileStored :: RemoteHostId -> CryptoFile -> ChatResponse
[remoteHostId] :: ChatResponse -> RemoteHostId
[remoteFileSource] :: ChatResponse -> CryptoFile
CRRemoteCtrlList :: [RemoteCtrlInfo] -> ChatResponse
[remoteCtrls] :: ChatResponse -> [RemoteCtrlInfo]
CRRemoteCtrlConnecting :: Maybe RemoteCtrlInfo -> CtrlAppInfo -> AppVersion -> ChatResponse
[remoteCtrl_] :: ChatResponse -> Maybe RemoteCtrlInfo
[ctrlAppInfo] :: ChatResponse -> CtrlAppInfo
[appVersion] :: ChatResponse -> AppVersion
CRRemoteCtrlConnected :: RemoteCtrlInfo -> ChatResponse
[remoteCtrl] :: ChatResponse -> RemoteCtrlInfo
CRSQLResult :: [Text] -> ChatResponse
[rows] :: ChatResponse -> [Text]
CRArchiveExported :: [ArchiveError] -> ChatResponse
[archiveErrors] :: ChatResponse -> [ArchiveError]
CRArchiveImported :: [ArchiveError] -> ChatResponse
[archiveErrors] :: ChatResponse -> [ArchiveError]
CRSlowSQLQueries :: [SlowSQLQuery] -> [SlowSQLQuery] -> ChatResponse
[chatQueries] :: ChatResponse -> [SlowSQLQuery]
[agentQueries] :: ChatResponse -> [SlowSQLQuery]
CRDebugLocks :: Maybe Text -> Map Text Text -> AgentLocks -> ChatResponse
[chatLockName] :: ChatResponse -> Maybe Text
[chatEntityLocks] :: ChatResponse -> Map Text Text
[agentLocks] :: ChatResponse -> AgentLocks
CRAgentSubsTotal :: User -> SMPServerSubs -> Bool -> ChatResponse
[user] :: ChatResponse -> User
[subsTotal] :: ChatResponse -> SMPServerSubs
[hasSession] :: ChatResponse -> Bool
CRAgentServersSummary :: User -> PresentedServersSummary -> ChatResponse
[user] :: ChatResponse -> User
[serversSummary] :: ChatResponse -> PresentedServersSummary
CRAgentWorkersDetails :: AgentWorkersDetails -> ChatResponse
[agentWorkersDetails] :: ChatResponse -> AgentWorkersDetails
CRAgentWorkersSummary :: AgentWorkersSummary -> ChatResponse
[agentWorkersSummary] :: ChatResponse -> AgentWorkersSummary
CRAgentSubs :: Map Text Int -> Map Text Int -> Map Text [String] -> ChatResponse
[activeSubs] :: ChatResponse -> Map Text Int
[pendingSubs] :: ChatResponse -> Map Text Int
[removedSubs] :: ChatResponse -> Map Text [String]
CRAgentSubsDetails :: SubscriptionsInfo -> ChatResponse
[agentSubs] :: ChatResponse -> SubscriptionsInfo
CRAgentQueuesInfo :: AgentQueuesInfo -> ChatResponse
[agentQueuesInfo] :: ChatResponse -> AgentQueuesInfo
CRAppSettings :: AppSettings -> ChatResponse
[appSettings] :: ChatResponse -> AppSettings
CRCustomChatResponse :: Maybe User -> Text -> ChatResponse
[user_] :: ChatResponse -> Maybe User
[response] :: ChatResponse -> Text
data ChatEvent
CEvtChatSuspended :: ChatEvent
CEvtContactSwitch :: User -> Contact -> SwitchProgress -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[switchProgress] :: ChatEvent -> SwitchProgress
CEvtGroupMemberSwitch :: User -> GroupInfo -> GroupMember -> SwitchProgress -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
[switchProgress] :: ChatEvent -> SwitchProgress
CEvtContactRatchetSync :: User -> Contact -> RatchetSyncProgress -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[ratchetSyncProgress] :: ChatEvent -> RatchetSyncProgress
CEvtGroupMemberRatchetSync :: User -> GroupInfo -> GroupMember -> RatchetSyncProgress -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
[ratchetSyncProgress] :: ChatEvent -> RatchetSyncProgress
CEvtChatInfoUpdated :: User -> AChatInfo -> ChatEvent
[user] :: ChatEvent -> User
[chatInfo] :: ChatEvent -> AChatInfo
CEvtNewChatItems :: User -> [AChatItem] -> ChatEvent
[user] :: ChatEvent -> User
[chatItems] :: ChatEvent -> [AChatItem]
CEvtChatItemsStatusesUpdated :: User -> [AChatItem] -> ChatEvent
[user] :: ChatEvent -> User
[chatItems] :: ChatEvent -> [AChatItem]
CEvtChatItemUpdated :: User -> AChatItem -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
CEvtChatItemNotChanged :: User -> AChatItem -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
CEvtChatItemReaction :: User -> Bool -> ACIReaction -> ChatEvent
[user] :: ChatEvent -> User
[added] :: ChatEvent -> Bool
[reaction] :: ChatEvent -> ACIReaction
CEvtGroupChatItemsDeleted :: User -> GroupInfo -> [ChatItemId] -> Bool -> Maybe GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[chatItemIDs] :: ChatEvent -> [ChatItemId]
[byUser] :: ChatEvent -> Bool
[member_] :: ChatEvent -> Maybe GroupMember
CEvtChatItemsDeleted :: User -> [ChatItemDeletion] -> Bool -> Bool -> ChatEvent
[user] :: ChatEvent -> User
[chatItemDeletions] :: ChatEvent -> [ChatItemDeletion]
[byUser] :: ChatEvent -> Bool
[timed] :: ChatEvent -> Bool
CEvtChatItemDeletedNotFound :: User -> Contact -> SharedMsgId -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[sharedMsgId] :: ChatEvent -> SharedMsgId
CEvtUserAcceptedGroupSent :: User -> GroupInfo -> Maybe Contact -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[hostContact] :: ChatEvent -> Maybe Contact
CEvtGroupLinkConnecting :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[hostMember] :: ChatEvent -> GroupMember
CEvtBusinessLinkConnecting :: User -> GroupInfo -> GroupMember -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[hostMember] :: ChatEvent -> GroupMember
[fromContact] :: ChatEvent -> Contact
CEvtSentGroupInvitation :: User -> GroupInfo -> Contact -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[contact] :: ChatEvent -> Contact
[member] :: ChatEvent -> GroupMember
CEvtContactUpdated :: User -> Contact -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[fromContact] :: ChatEvent -> Contact
[toContact] :: ChatEvent -> Contact
CEvtGroupMemberUpdated :: User -> GroupInfo -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[fromMember] :: ChatEvent -> GroupMember
[toMember] :: ChatEvent -> GroupMember
CEvtContactDeletedByContact :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtReceivedContactRequest :: User -> UserContactRequest -> Maybe AChat -> ChatEvent
[user] :: ChatEvent -> User
[contactRequest] :: ChatEvent -> UserContactRequest
[chat_] :: ChatEvent -> Maybe AChat
CEvtAcceptingContactRequest :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtAcceptingBusinessRequest :: User -> GroupInfo -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
CEvtContactRequestAlreadyAccepted :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtBusinessRequestAlreadyAccepted :: User -> GroupInfo -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
CEvtRcvFileDescrReady :: User -> AChatItem -> RcvFileTransfer -> RcvFileDescr -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
[rcvFileDescr] :: ChatEvent -> RcvFileDescr
CEvtRcvFileAccepted :: User -> AChatItem -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
CEvtRcvFileAcceptedSndCancelled :: User -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtRcvFileStart :: User -> AChatItem -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
CEvtRcvFileProgressXFTP :: User -> Maybe AChatItem -> Int64 -> Int64 -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[receivedSize] :: ChatEvent -> Int64
[totalSize] :: ChatEvent -> Int64
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtRcvFileComplete :: User -> AChatItem -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
CEvtRcvStandaloneFileComplete :: User -> FilePath -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[targetPath] :: ChatEvent -> FilePath
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtRcvFileSndCancelled :: User -> AChatItem -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtRcvFileError :: User -> Maybe AChatItem -> AgentErrorType -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[agentError] :: ChatEvent -> AgentErrorType
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtRcvFileWarning :: User -> Maybe AChatItem -> AgentErrorType -> RcvFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[agentError] :: ChatEvent -> AgentErrorType
[rcvFileTransfer] :: ChatEvent -> RcvFileTransfer
CEvtSndFileStart :: User -> AChatItem -> SndFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
[sndFileTransfer] :: ChatEvent -> SndFileTransfer
CEvtSndFileComplete :: User -> AChatItem -> SndFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
[sndFileTransfer] :: ChatEvent -> SndFileTransfer
CEvtSndFileRcvCancelled :: User -> Maybe AChatItem -> SndFileTransfer -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[sndFileTransfer] :: ChatEvent -> SndFileTransfer
CEvtSndFileProgressXFTP :: User -> Maybe AChatItem -> FileTransferMeta -> Int64 -> Int64 -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
[sentSize] :: ChatEvent -> Int64
[totalSize] :: ChatEvent -> Int64
CEvtSndFileRedirectStartXFTP :: User -> FileTransferMeta -> FileTransferMeta -> ChatEvent
[user] :: ChatEvent -> User
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
[redirectMeta] :: ChatEvent -> FileTransferMeta
CEvtSndFileCompleteXFTP :: User -> AChatItem -> FileTransferMeta -> ChatEvent
[user] :: ChatEvent -> User
[chatItem] :: ChatEvent -> AChatItem
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
CEvtSndStandaloneFileComplete :: User -> FileTransferMeta -> [Text] -> ChatEvent
[user] :: ChatEvent -> User
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
[rcvURIs] :: ChatEvent -> [Text]
CEvtSndFileError :: User -> Maybe AChatItem -> FileTransferMeta -> Text -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
[errorMessage] :: ChatEvent -> Text
CEvtSndFileWarning :: User -> Maybe AChatItem -> FileTransferMeta -> Text -> ChatEvent
[user] :: ChatEvent -> User
[chatItem_] :: ChatEvent -> Maybe AChatItem
[fileTransferMeta] :: ChatEvent -> FileTransferMeta
[errorMessage] :: ChatEvent -> Text
CEvtContactConnecting :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtContactConnected :: User -> Contact -> Maybe Profile -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[userCustomProfile] :: ChatEvent -> Maybe Profile
CEvtContactSndReady :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtContactAnotherClient :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtConnectionsDiff :: DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> ChatEvent
[userIds] :: ChatEvent -> DatabaseDiff AgentUserId
[connIds] :: ChatEvent -> DatabaseDiff AgentConnId
CEvtSubscriptionEnd :: User -> ConnectionEntity -> ChatEvent
[user] :: ChatEvent -> User
[connectionEntity] :: ChatEvent -> ConnectionEntity
CEvtSubscriptionStatus :: SMPServer -> SubscriptionStatus -> [AgentConnId] -> ChatEvent
[server] :: ChatEvent -> SMPServer
[subscriptionStatus] :: ChatEvent -> SubscriptionStatus
[connections] :: ChatEvent -> [AgentConnId]
CEvtHostConnected :: AProtocolType -> TransportHost -> ChatEvent
[protocol] :: ChatEvent -> AProtocolType
[transportHost] :: ChatEvent -> TransportHost
CEvtHostDisconnected :: AProtocolType -> TransportHost -> ChatEvent
[protocol] :: ChatEvent -> AProtocolType
[transportHost] :: ChatEvent -> TransportHost
CEvtReceivedGroupInvitation :: User -> GroupInfo -> Contact -> GroupMemberRole -> GroupMemberRole -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[contact] :: ChatEvent -> Contact
[fromMemberRole] :: ChatEvent -> GroupMemberRole
[memberRole] :: ChatEvent -> GroupMemberRole
CEvtUserJoinedGroup :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[hostMember] :: ChatEvent -> GroupMember
CEvtJoinedGroupMember :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtJoinedGroupMemberConnecting :: User -> GroupInfo -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[hostMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
CEvtMemberAcceptedByOther :: User -> GroupInfo -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[acceptingMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
CEvtMemberRole :: User -> GroupInfo -> GroupMember -> GroupMember -> GroupMemberRole -> GroupMemberRole -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[byMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
[fromRole] :: ChatEvent -> GroupMemberRole
[toRole] :: ChatEvent -> GroupMemberRole
CEvtMemberBlockedForAll :: User -> GroupInfo -> GroupMember -> GroupMember -> Bool -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[byMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
[blocked] :: ChatEvent -> Bool
CEvtConnectedToGroupMember :: User -> GroupInfo -> GroupMember -> Maybe Contact -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
[memberContact] :: ChatEvent -> Maybe Contact
CEvtDeletedMember :: User -> GroupInfo -> GroupMember -> GroupMember -> Bool -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[byMember] :: ChatEvent -> GroupMember
[deletedMember] :: ChatEvent -> GroupMember
[withMessages] :: ChatEvent -> Bool
CEvtDeletedMemberUser :: User -> GroupInfo -> GroupMember -> Bool -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
[withMessages] :: ChatEvent -> Bool
CEvtLeftMember :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtUnknownMemberCreated :: User -> GroupInfo -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[forwardedByMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
CEvtUnknownMemberBlocked :: User -> GroupInfo -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[blockedByMember] :: ChatEvent -> GroupMember
[member] :: ChatEvent -> GroupMember
CEvtUnknownMemberAnnounced :: User -> GroupInfo -> GroupMember -> GroupMember -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[announcingMember] :: ChatEvent -> GroupMember
[unknownMember] :: ChatEvent -> GroupMember
[announcedMember] :: ChatEvent -> GroupMember
CEvtGroupDeleted :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtGroupUpdated :: User -> GroupInfo -> GroupInfo -> Maybe GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[fromGroup] :: ChatEvent -> GroupInfo
[toGroup] :: ChatEvent -> GroupInfo
[member_] :: ChatEvent -> Maybe GroupMember
CEvtAcceptingGroupJoinRequestMember :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtNoMemberContactCreating :: User -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtNewMemberContactReceivedInv :: User -> Contact -> GroupInfo -> GroupMember -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
CEvtContactAndMemberAssociated :: User -> Contact -> GroupInfo -> GroupMember -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[groupInfo] :: ChatEvent -> GroupInfo
[member] :: ChatEvent -> GroupMember
[updatedContact] :: ChatEvent -> Contact
CEvtCallInvitation :: RcvCallInvitation -> ChatEvent
[callInvitation] :: ChatEvent -> RcvCallInvitation
CEvtCallOffer :: User -> Contact -> CallType -> WebRTCSession -> Maybe Key -> Bool -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[callType] :: ChatEvent -> CallType
[offer] :: ChatEvent -> WebRTCSession
[sharedKey] :: ChatEvent -> Maybe Key
[askConfirmation] :: ChatEvent -> Bool
CEvtCallAnswer :: User -> Contact -> WebRTCSession -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[answer] :: ChatEvent -> WebRTCSession
CEvtCallExtraInfo :: User -> Contact -> WebRTCExtraInfo -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[extraInfo] :: ChatEvent -> WebRTCExtraInfo
CEvtCallEnded :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtNtfMessage :: User -> ConnectionEntity -> NtfMsgAckInfo -> ChatEvent
[user] :: ChatEvent -> User
[connEntity] :: ChatEvent -> ConnectionEntity
[ntfMessage] :: ChatEvent -> NtfMsgAckInfo
CEvtRemoteHostSessionCode :: Maybe RemoteHostInfo -> Text -> ChatEvent
[remoteHost_] :: ChatEvent -> Maybe RemoteHostInfo
[sessionCode] :: ChatEvent -> Text
CEvtNewRemoteHost :: RemoteHostInfo -> ChatEvent
[remoteHost] :: ChatEvent -> RemoteHostInfo
CEvtRemoteHostConnected :: RemoteHostInfo -> ChatEvent
[remoteHost] :: ChatEvent -> RemoteHostInfo
CEvtRemoteHostStopped :: Maybe RemoteHostId -> RemoteHostSessionState -> RemoteHostStopReason -> ChatEvent
[remoteHostId_] :: ChatEvent -> Maybe RemoteHostId
[rhsState] :: ChatEvent -> RemoteHostSessionState
[rhStopReason] :: ChatEvent -> RemoteHostStopReason
CEvtRemoteCtrlFound :: RemoteCtrlInfo -> Maybe CtrlAppInfo -> AppVersion -> Bool -> ChatEvent
[remoteCtrl] :: ChatEvent -> RemoteCtrlInfo
[ctrlAppInfo_] :: ChatEvent -> Maybe CtrlAppInfo
[appVersion] :: ChatEvent -> AppVersion
[compatible] :: ChatEvent -> Bool
CEvtRemoteCtrlSessionCode :: Maybe RemoteCtrlInfo -> Text -> ChatEvent
[remoteCtrl_] :: ChatEvent -> Maybe RemoteCtrlInfo
[sessionCode] :: ChatEvent -> Text
CEvtRemoteCtrlStopped :: RemoteCtrlSessionState -> RemoteCtrlStopReason -> ChatEvent
[rcsState] :: ChatEvent -> RemoteCtrlSessionState
[rcStopReason] :: ChatEvent -> RemoteCtrlStopReason
CEvtContactPQEnabled :: User -> Contact -> PQEncryption -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
[pqEnabled] :: ChatEvent -> PQEncryption
CEvtContactDisabled :: User -> Contact -> ChatEvent
[user] :: ChatEvent -> User
[contact] :: ChatEvent -> Contact
CEvtConnectionDisabled :: ConnectionEntity -> ChatEvent
[connectionEntity] :: ChatEvent -> ConnectionEntity
CEvtConnectionInactive :: ConnectionEntity -> Bool -> ChatEvent
[connectionEntity] :: ChatEvent -> ConnectionEntity
[inactive] :: ChatEvent -> Bool
CEvtAgentRcvQueuesDeleted :: NonEmpty DeletedRcvQueue -> ChatEvent
[deletedRcvQueues] :: ChatEvent -> NonEmpty DeletedRcvQueue
CEvtAgentConnsDeleted :: NonEmpty AgentConnId -> ChatEvent
[agentConnIds] :: ChatEvent -> NonEmpty AgentConnId
CEvtAgentUserDeleted :: Int64 -> ChatEvent
[agentUserId] :: ChatEvent -> Int64
CEvtMessageError :: User -> Text -> Text -> ChatEvent
[user] :: ChatEvent -> User
[severity] :: ChatEvent -> Text
[errorMessage] :: ChatEvent -> Text
CEvtChatErrors :: [ChatError] -> ChatEvent
[chatErrors] :: ChatEvent -> [ChatError]
CEvtTimedAction :: String -> Int64 -> ChatEvent
[action] :: ChatEvent -> String
[durationMilliseconds] :: ChatEvent -> Int64
CEvtTerminalEvent :: TerminalEvent -> ChatEvent
CEvtCustomChatEvent :: Maybe User -> Text -> ChatEvent
[user_] :: ChatEvent -> Maybe User
[response] :: ChatEvent -> Text
data TerminalEvent
TEGroupLinkRejected :: User -> GroupInfo -> GroupRejectionReason -> TerminalEvent
[user] :: TerminalEvent -> User
[groupInfo] :: TerminalEvent -> GroupInfo
[groupRejectionReason] :: TerminalEvent -> GroupRejectionReason
TERejectingGroupJoinRequestMember :: User -> GroupInfo -> GroupMember -> GroupRejectionReason -> TerminalEvent
[user] :: TerminalEvent -> User
[groupInfo] :: TerminalEvent -> GroupInfo
[member] :: TerminalEvent -> GroupMember
[groupRejectionReason] :: TerminalEvent -> GroupRejectionReason
TENewMemberContact :: User -> Contact -> GroupInfo -> GroupMember -> TerminalEvent
[user] :: TerminalEvent -> User
[contact] :: TerminalEvent -> Contact
[groupInfo] :: TerminalEvent -> GroupInfo
[member] :: TerminalEvent -> GroupMember
TEContactVerificationReset :: User -> Contact -> TerminalEvent
[user] :: TerminalEvent -> User
[contact] :: TerminalEvent -> Contact
TEGroupMemberVerificationReset :: User -> GroupInfo -> GroupMember -> TerminalEvent
[user] :: TerminalEvent -> User
[groupInfo] :: TerminalEvent -> GroupInfo
[member] :: TerminalEvent -> GroupMember
data DeletedRcvQueue
DeletedRcvQueue :: AgentConnId -> SMPServer -> AgentQueueId -> Maybe AgentErrorType -> DeletedRcvQueue
[agentConnId] :: DeletedRcvQueue -> AgentConnId
[server] :: DeletedRcvQueue -> SMPServer
[agentQueueId] :: DeletedRcvQueue -> AgentQueueId
[agentError_] :: DeletedRcvQueue -> Maybe AgentErrorType
allowRemoteEvent :: ChatEvent -> Bool
logEventToFile :: ChatEvent -> Bool
data SendRef
SRDirect :: ContactId -> SendRef
SRGroup :: GroupId -> Maybe GroupChatScope -> SendRef
sendToChatRef :: SendRef -> ChatRef
data ChatPagination
CPLast :: Int -> ChatPagination
CPAfter :: ChatItemId -> Int -> ChatPagination
CPBefore :: ChatItemId -> Int -> ChatPagination
CPAround :: ChatItemId -> Int -> ChatPagination
CPInitial :: Int -> ChatPagination
data PaginationByTime
PTLast :: Int -> PaginationByTime
PTAfter :: UTCTime -> Int -> PaginationByTime
PTBefore :: UTCTime -> Int -> PaginationByTime
data ChatListQuery
CLQFilters :: Bool -> Bool -> ChatListQuery
[favorite] :: ChatListQuery -> Bool
[unread] :: ChatListQuery -> Bool
CLQSearch :: String -> ChatListQuery
[search] :: ChatListQuery -> String
clqNoFilters :: ChatListQuery
data ChatDeleteMode
CDMFull :: Bool -> ChatDeleteMode
[notify] :: ChatDeleteMode -> Bool
CDMEntity :: Bool -> ChatDeleteMode
[notify] :: ChatDeleteMode -> Bool
CDMMessages :: ChatDeleteMode
data ConnectionPlan
CPInvitationLink :: InvitationLinkPlan -> ConnectionPlan
[invitationLinkPlan] :: ConnectionPlan -> InvitationLinkPlan
CPContactAddress :: ContactAddressPlan -> ConnectionPlan
[contactAddressPlan] :: ConnectionPlan -> ContactAddressPlan
CPGroupLink :: GroupLinkPlan -> ConnectionPlan
[groupLinkPlan] :: ConnectionPlan -> GroupLinkPlan
CPError :: ChatError -> ConnectionPlan
[chatError] :: ConnectionPlan -> ChatError
data InvitationLinkPlan
ILPOk :: Maybe ContactShortLinkData -> InvitationLinkPlan
[contactSLinkData_] :: InvitationLinkPlan -> Maybe ContactShortLinkData
ILPOwnLink :: InvitationLinkPlan
ILPConnecting :: Maybe Contact -> InvitationLinkPlan
[contact_] :: InvitationLinkPlan -> Maybe Contact
ILPKnown :: Contact -> InvitationLinkPlan
[contact] :: InvitationLinkPlan -> Contact
data ContactAddressPlan
CAPOk :: Maybe ContactShortLinkData -> ContactAddressPlan
[contactSLinkData_] :: ContactAddressPlan -> Maybe ContactShortLinkData
CAPOwnLink :: ContactAddressPlan
CAPConnectingConfirmReconnect :: ContactAddressPlan
CAPConnectingProhibit :: Contact -> ContactAddressPlan
[contact] :: ContactAddressPlan -> Contact
CAPKnown :: Contact -> ContactAddressPlan
[contact] :: ContactAddressPlan -> Contact
CAPContactViaAddress :: Contact -> ContactAddressPlan
[contact] :: ContactAddressPlan -> Contact
data GroupLinkPlan
GLPOk :: Maybe GroupShortLinkData -> GroupLinkPlan
[groupSLinkData_] :: GroupLinkPlan -> Maybe GroupShortLinkData
GLPOwnLink :: GroupInfo -> GroupLinkPlan
[groupInfo] :: GroupLinkPlan -> GroupInfo
GLPConnectingConfirmReconnect :: GroupLinkPlan
GLPConnectingProhibit :: Maybe GroupInfo -> GroupLinkPlan
[groupInfo_] :: GroupLinkPlan -> Maybe GroupInfo
GLPKnown :: GroupInfo -> GroupLinkPlan
[groupInfo] :: GroupLinkPlan -> GroupInfo
connectionPlanProceed :: ConnectionPlan -> Bool
data ForwardConfirmation
FCFilesNotAccepted :: [FileTransferId] -> ForwardConfirmation
[fileIds] :: ForwardConfirmation -> [FileTransferId]
FCFilesInProgress :: Int -> ForwardConfirmation
[filesCount] :: ForwardConfirmation -> Int
FCFilesMissing :: Int -> ForwardConfirmation
[filesCount] :: ForwardConfirmation -> Int
FCFilesFailed :: Int -> ForwardConfirmation
[filesCount] :: ForwardConfirmation -> Int
newtype UserPwd
UserPwd :: Text -> UserPwd
[unUserPwd] :: UserPwd -> Text
newtype AgentQueueId
AgentQueueId :: QueueId -> AgentQueueId
data ArchiveConfig
ArchiveConfig :: FilePath -> Maybe Bool -> Maybe FilePath -> ArchiveConfig
[archivePath] :: ArchiveConfig -> FilePath
[disableCompression] :: ArchiveConfig -> Maybe Bool
[parentTempDirectory] :: ArchiveConfig -> Maybe FilePath
data DBEncryptionConfig
DBEncryptionConfig :: DBEncryptionKey -> DBEncryptionKey -> Maybe Bool -> DBEncryptionConfig
[currentKey] :: DBEncryptionConfig -> DBEncryptionKey
[newKey] :: DBEncryptionConfig -> DBEncryptionKey
[keepKey] :: DBEncryptionConfig -> Maybe Bool
newtype DBEncryptionKey
DBEncryptionKey :: ScrubbedBytes -> DBEncryptionKey
data AppFilePathsConfig
AppFilePathsConfig :: FilePath -> FilePath -> FilePath -> Maybe FilePath -> AppFilePathsConfig
[appFilesFolder] :: AppFilePathsConfig -> FilePath
[appTempFolder] :: AppFilePathsConfig -> FilePath
[appAssetsFolder] :: AppFilePathsConfig -> FilePath
[appRemoteHostsFolder] :: AppFilePathsConfig -> Maybe FilePath
data SimpleNetCfg
SimpleNetCfg :: Maybe SocksProxyWithAuth -> SocksMode -> HostMode -> Bool -> Maybe SMPProxyMode -> Maybe SMPProxyFallback -> SMPWebPortServers -> Maybe Int -> Bool -> SimpleNetCfg
[socksProxy] :: SimpleNetCfg -> Maybe SocksProxyWithAuth
[socksMode] :: SimpleNetCfg -> SocksMode
[hostMode] :: SimpleNetCfg -> HostMode
[requiredHostMode] :: SimpleNetCfg -> Bool
[smpProxyMode_] :: SimpleNetCfg -> Maybe SMPProxyMode
[smpProxyFallback_] :: SimpleNetCfg -> Maybe SMPProxyFallback
[smpWebPortServers] :: SimpleNetCfg -> SMPWebPortServers
[tcpTimeout_] :: SimpleNetCfg -> Maybe Int
[logTLSErrors] :: SimpleNetCfg -> Bool
defaultSimpleNetCfg :: SimpleNetCfg
data ConnSubResult
ConnSubResult :: AgentConnId -> Maybe ChatError -> ConnSubResult
[agentConnId] :: ConnSubResult -> AgentConnId
[connSubError] :: ConnSubResult -> Maybe ChatError
data UserProfileUpdateSummary
UserProfileUpdateSummary :: Int -> Int -> [Contact] -> UserProfileUpdateSummary
[updateSuccesses] :: UserProfileUpdateSummary -> Int
[updateFailures] :: UserProfileUpdateSummary -> Int
[changedContacts] :: UserProfileUpdateSummary -> [Contact]
data ComposedMessage
ComposedMessage :: Maybe CryptoFile -> Maybe ChatItemId -> MsgContent -> Map MemberName GroupMemberId -> ComposedMessage
[fileSource] :: ComposedMessage -> Maybe CryptoFile
[quotedItemId] :: ComposedMessage -> Maybe ChatItemId
[msgContent] :: ComposedMessage -> MsgContent
[mentions] :: ComposedMessage -> Map MemberName GroupMemberId
data UpdatedMessage
UpdatedMessage :: MsgContent -> Map MemberName GroupMemberId -> UpdatedMessage
[msgContent] :: UpdatedMessage -> MsgContent
[mentions] :: UpdatedMessage -> Map MemberName GroupMemberId
data ChatTagData
ChatTagData :: Maybe Text -> Text -> ChatTagData
[emoji] :: ChatTagData -> Maybe Text
[text] :: ChatTagData -> Text
data NtfConn
NtfConn :: User -> AgentConnId -> Int64 -> ConnectionEntity -> Maybe NtfMsgInfo -> NtfConn
[user] :: NtfConn -> User
[agentConnId] :: NtfConn -> AgentConnId
[agentDbQueueId] :: NtfConn -> Int64
[connEntity] :: NtfConn -> ConnectionEntity
[expectedMsg_] :: NtfConn -> Maybe NtfMsgInfo
data NtfMsgInfo
NtfMsgInfo :: Text -> UTCTime -> NtfMsgInfo
[msgId] :: NtfMsgInfo -> Text
[msgTs] :: NtfMsgInfo -> UTCTime
data RcvNtfMsgInfo
RNMInfo :: Maybe NtfMsgInfo -> RcvNtfMsgInfo
[ntfMsgInfo] :: RcvNtfMsgInfo -> Maybe NtfMsgInfo
RNMError :: AgentErrorType -> RcvNtfMsgInfo
[ntfMsgError] :: RcvNtfMsgInfo -> AgentErrorType
receivedMsgInfo :: Either AgentErrorType (Maybe SMPMsgMeta) -> RcvNtfMsgInfo
expectedMsgInfo :: NMsgMeta -> NtfMsgInfo
ntfMsgInfo_ :: MsgId -> SystemTime -> NtfMsgInfo
data NtfMsgAckInfo
NtfMsgAckInfo :: Text -> Maybe UTCTime -> NtfMsgAckInfo
[msgId] :: NtfMsgAckInfo -> Text
[msgTs_] :: NtfMsgAckInfo -> Maybe UTCTime
ntfMsgAckInfo :: MsgId -> Maybe UTCTime -> NtfMsgAckInfo
crNtfToken :: (DeviceToken, NtfTknStatus, NotificationsMode, NtfServer) -> ChatResponse
data SwitchProgress
SwitchProgress :: QueueDirection -> SwitchPhase -> ConnectionStats -> SwitchProgress
[queueDirection] :: SwitchProgress -> QueueDirection
[switchPhase] :: SwitchProgress -> SwitchPhase
[connectionStats] :: SwitchProgress -> ConnectionStats
data RatchetSyncProgress
RatchetSyncProgress :: RatchetSyncState -> ConnectionStats -> RatchetSyncProgress
[ratchetSyncStatus] :: RatchetSyncProgress -> RatchetSyncState
[connectionStats] :: RatchetSyncProgress -> ConnectionStats
data ParsedServerAddress
ParsedServerAddress :: Maybe ServerAddress -> String -> ParsedServerAddress
[serverAddress] :: ParsedServerAddress -> Maybe ServerAddress
[parseError] :: ParsedServerAddress -> String
data ServerAddress
ServerAddress :: AProtocolType -> NonEmpty String -> String -> String -> String -> ServerAddress
[serverProtocol] :: ServerAddress -> AProtocolType
[hostnames] :: ServerAddress -> NonEmpty String
[port] :: ServerAddress -> String
[keyHash] :: ServerAddress -> String
[basicAuth] :: ServerAddress -> String
data TimedMessagesEnabled
TMEEnableSetTTL :: Int -> TimedMessagesEnabled
TMEEnableKeepTTL :: TimedMessagesEnabled
TMEDisableKeepTTL :: TimedMessagesEnabled
tmeToPref :: Maybe Int -> TimedMessagesEnabled -> TimedMessagesPreference
data ChatItemDeletion
ChatItemDeletion :: AChatItem -> Maybe AChatItem -> ChatItemDeletion
[deletedChatItem] :: ChatItemDeletion -> AChatItem
[toChatItem] :: ChatItemDeletion -> Maybe AChatItem
data ChatLogLevel
CLLDebug :: ChatLogLevel
CLLInfo :: ChatLogLevel
CLLWarning :: ChatLogLevel
CLLError :: ChatLogLevel
CLLImportant :: ChatLogLevel
data CoreVersionInfo
CoreVersionInfo :: String -> String -> String -> CoreVersionInfo
[version] :: CoreVersionInfo -> String
[simplexmqVersion] :: CoreVersionInfo -> String
[simplexmqCommit] :: CoreVersionInfo -> String
data SlowSQLQuery
SlowSQLQuery :: Text -> SlowQueryStats -> SlowSQLQuery
[query] :: SlowSQLQuery -> Text
[queryStats] :: SlowSQLQuery -> SlowQueryStats
data ChatError
ChatError :: ChatErrorType -> ChatError
[errorType] :: ChatError -> ChatErrorType
ChatErrorAgent :: AgentErrorType -> AgentConnId -> Maybe ConnectionEntity -> ChatError
[agentError] :: ChatError -> AgentErrorType
[agentConnId] :: ChatError -> AgentConnId
[connectionEntity_] :: ChatError -> Maybe ConnectionEntity
ChatErrorStore :: StoreError -> ChatError
[storeError] :: ChatError -> StoreError
ChatErrorDatabase :: DatabaseError -> ChatError
[databaseError] :: ChatError -> DatabaseError
ChatErrorRemoteCtrl :: RemoteCtrlError -> ChatError
[remoteCtrlError] :: ChatError -> RemoteCtrlError
ChatErrorRemoteHost :: RHKey -> RemoteHostError -> ChatError
[rhKey] :: ChatError -> RHKey
[remoteHostError] :: ChatError -> RemoteHostError
data ChatErrorType
CENoActiveUser :: ChatErrorType
CENoConnectionUser :: AgentConnId -> ChatErrorType
[agentConnId] :: ChatErrorType -> AgentConnId
CENoSndFileUser :: AgentSndFileId -> ChatErrorType
[agentSndFileId] :: ChatErrorType -> AgentSndFileId
CENoRcvFileUser :: AgentRcvFileId -> ChatErrorType
[agentRcvFileId] :: ChatErrorType -> AgentRcvFileId
CEUserUnknown :: ChatErrorType
CEActiveUserExists :: ChatErrorType
CEUserExists :: ContactName -> ChatErrorType
[contactName] :: ChatErrorType -> ContactName
CEDifferentActiveUser :: UserId -> UserId -> ChatErrorType
[commandUserId] :: ChatErrorType -> UserId
[activeUserId] :: ChatErrorType -> UserId
CECantDeleteActiveUser :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CECantDeleteLastUser :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CECantHideLastUser :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CEHiddenUserAlwaysMuted :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CEEmptyUserPassword :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CEUserAlreadyHidden :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CEUserNotHidden :: UserId -> ChatErrorType
[userId] :: ChatErrorType -> UserId
CEInvalidDisplayName :: Text -> Text -> ChatErrorType
[displayName] :: ChatErrorType -> Text
[validName] :: ChatErrorType -> Text
CEChatNotStarted :: ChatErrorType
CEChatNotStopped :: ChatErrorType
CEChatStoreChanged :: ChatErrorType
CEInvalidConnReq :: ChatErrorType
CEUnsupportedConnReq :: ChatErrorType
CEInvalidChatMessage :: Connection -> Maybe MsgMetaJSON -> Text -> String -> ChatErrorType
[connection] :: ChatErrorType -> Connection
[msgMeta] :: ChatErrorType -> Maybe MsgMetaJSON
[messageData] :: ChatErrorType -> Text
[message] :: ChatErrorType -> String
CEConnReqMessageProhibited :: ChatErrorType
CEContactNotFound :: ContactName -> Maybe (GroupInfo, GroupMember) -> ChatErrorType
[contactName] :: ChatErrorType -> ContactName
[suspectedMember] :: ChatErrorType -> Maybe (GroupInfo, GroupMember)
CEContactNotReady :: Contact -> ChatErrorType
[contact] :: ChatErrorType -> Contact
CEContactNotActive :: Contact -> ChatErrorType
[contact] :: ChatErrorType -> Contact
CEContactDisabled :: Contact -> ChatErrorType
[contact] :: ChatErrorType -> Contact
CEConnectionDisabled :: Connection -> ChatErrorType
[connection] :: ChatErrorType -> Connection
CEGroupUserRole :: GroupInfo -> GroupMemberRole -> ChatErrorType
[groupInfo] :: ChatErrorType -> GroupInfo
[requiredRole] :: ChatErrorType -> GroupMemberRole
CEGroupMemberInitialRole :: GroupInfo -> GroupMemberRole -> ChatErrorType
[groupInfo] :: ChatErrorType -> GroupInfo
[initialRole] :: ChatErrorType -> GroupMemberRole
CEContactIncognitoCantInvite :: ChatErrorType
CEGroupIncognitoCantInvite :: ChatErrorType
CEGroupContactRole :: ContactName -> ChatErrorType
[contactName] :: ChatErrorType -> ContactName
CEGroupDuplicateMember :: ContactName -> ChatErrorType
[contactName] :: ChatErrorType -> ContactName
CEGroupDuplicateMemberId :: ChatErrorType
CEGroupNotJoined :: GroupInfo -> ChatErrorType
[groupInfo] :: ChatErrorType -> GroupInfo
CEGroupMemberNotActive :: ChatErrorType
CECantBlockMemberForSelf :: GroupInfo -> GroupMember -> Bool -> ChatErrorType
[groupInfo] :: ChatErrorType -> GroupInfo
[member] :: ChatErrorType -> GroupMember
[setShowMessages] :: ChatErrorType -> Bool
CEGroupMemberUserRemoved :: ChatErrorType
CEGroupMemberNotFound :: ChatErrorType
CEGroupCantResendInvitation :: GroupInfo -> ContactName -> ChatErrorType
[groupInfo] :: ChatErrorType -> GroupInfo
[contactName] :: ChatErrorType -> ContactName
CEGroupInternal :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileNotFound :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileSize :: FilePath -> ChatErrorType
[filePath] :: ChatErrorType -> FilePath
CEFileAlreadyReceiving :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileCancelled :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileCancel :: FileTransferId -> String -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
[message] :: ChatErrorType -> String
CEFileAlreadyExists :: FilePath -> ChatErrorType
[filePath] :: ChatErrorType -> FilePath
CEFileWrite :: FilePath -> String -> ChatErrorType
[filePath] :: ChatErrorType -> FilePath
[message] :: ChatErrorType -> String
CEFileSend :: FileTransferId -> AgentErrorType -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
[agentError] :: ChatErrorType -> AgentErrorType
CEFileRcvChunk :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileInternal :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEFileImageType :: FilePath -> ChatErrorType
[filePath] :: ChatErrorType -> FilePath
CEFileImageSize :: FilePath -> ChatErrorType
[filePath] :: ChatErrorType -> FilePath
CEFileNotReceived :: FileTransferId -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
CEFileNotApproved :: FileTransferId -> [XFTPServer] -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
[unknownServers] :: ChatErrorType -> [XFTPServer]
CEFallbackToSMPProhibited :: FileTransferId -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
CEInlineFileProhibited :: FileTransferId -> ChatErrorType
[fileId] :: ChatErrorType -> FileTransferId
CEInvalidForward :: ChatErrorType
CEInvalidChatItemUpdate :: ChatErrorType
CEInvalidChatItemDelete :: ChatErrorType
CEHasCurrentCall :: ChatErrorType
CENoCurrentCall :: ChatErrorType
CECallContact :: Int64 -> ChatErrorType
[contactId] :: ChatErrorType -> Int64
CECallState :: CallStateTag -> ChatErrorType
[currentCallState] :: ChatErrorType -> CallStateTag
CEDirectMessagesProhibited :: MsgDirection -> Contact -> ChatErrorType
[direction] :: ChatErrorType -> MsgDirection
[contact] :: ChatErrorType -> Contact
CEAgentVersion :: ChatErrorType
CEAgentNoSubResult :: AgentConnId -> ChatErrorType
[agentConnId] :: ChatErrorType -> AgentConnId
CECommandError :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEServerProtocol :: AProtocolType -> ChatErrorType
[serverProtocol] :: ChatErrorType -> AProtocolType
CEAgentCommandError :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEInvalidFileDescription :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEConnectionIncognitoChangeProhibited :: ChatErrorType
CEConnectionUserChangeProhibited :: ChatErrorType
CEPeerChatVRangeIncompatible :: ChatErrorType
CEInternalError :: String -> ChatErrorType
[message] :: ChatErrorType -> String
CEException :: String -> ChatErrorType
[message] :: ChatErrorType -> String
data DatabaseError
DBErrorEncrypted :: DatabaseError
DBErrorPlaintext :: DatabaseError
DBErrorNoFile :: String -> DatabaseError
[dbFile] :: DatabaseError -> String
DBErrorExport :: SQLiteError -> DatabaseError
[sqliteError] :: DatabaseError -> SQLiteError
DBErrorOpen :: SQLiteError -> DatabaseError
[sqliteError] :: DatabaseError -> SQLiteError
data SQLiteError
SQLiteErrorNotADatabase :: SQLiteError
SQLiteError :: String -> SQLiteError
[dbError] :: SQLiteError -> String
throwDBError :: DatabaseError -> CM ()
data RemoteHostError
RHEMissing :: RemoteHostError
RHEInactive :: RemoteHostError
RHEBusy :: RemoteHostError
RHETimeout :: RemoteHostError
RHEBadState :: RemoteHostError
RHEBadVersion :: AppVersion -> RemoteHostError
[appVersion] :: RemoteHostError -> AppVersion
RHELocalCommand :: RemoteHostError
RHEDisconnected :: Text -> RemoteHostError
[reason] :: RemoteHostError -> Text
RHEProtocolError :: RemoteProtocolError -> RemoteHostError
data RemoteHostStopReason
RHSRConnectionFailed :: ChatError -> RemoteHostStopReason
[chatError] :: RemoteHostStopReason -> ChatError
RHSRCrashed :: ChatError -> RemoteHostStopReason
[chatError] :: RemoteHostStopReason -> ChatError
RHSRDisconnected :: RemoteHostStopReason
data RemoteCtrlError
RCEInactive :: RemoteCtrlError
RCEBadState :: RemoteCtrlError
RCEBusy :: RemoteCtrlError
RCETimeout :: RemoteCtrlError
RCENoKnownControllers :: RemoteCtrlError
RCEBadController :: RemoteCtrlError

-- | A session disconnected by a controller
RCEDisconnected :: RemoteCtrlId -> Text -> RemoteCtrlError
[remoteCtrlId] :: RemoteCtrlError -> RemoteCtrlId
[reason] :: RemoteCtrlError -> Text
RCEBadInvitation :: RemoteCtrlError
RCEBadVersion :: AppVersion -> RemoteCtrlError
[appVersion] :: RemoteCtrlError -> AppVersion
RCEHTTP2Error :: Text -> RemoteCtrlError
[http2Error] :: RemoteCtrlError -> Text
RCEProtocolError :: RemoteProtocolError -> RemoteCtrlError
[protocolError] :: RemoteCtrlError -> RemoteProtocolError
data RemoteCtrlStopReason
RCSRDiscoveryFailed :: ChatError -> RemoteCtrlStopReason
[chatError] :: RemoteCtrlStopReason -> ChatError
RCSRConnectionFailed :: ChatError -> RemoteCtrlStopReason
[chatError] :: RemoteCtrlStopReason -> ChatError
RCSRSetupFailed :: ChatError -> RemoteCtrlStopReason
[chatError] :: RemoteCtrlStopReason -> ChatError
RCSRDisconnected :: RemoteCtrlStopReason
data ArchiveError
AEImport :: String -> ArchiveError
[importError] :: ArchiveError -> String
AEFileError :: String -> String -> ArchiveError
[file] :: ArchiveError -> String
[fileError] :: ArchiveError -> String

-- | Host (mobile) side of transport to process remote commands and forward
--   notifications
data RemoteCtrlSession
RCSessionStarting :: RemoteCtrlSession
RCSessionSearching :: Async () -> TMVar (RemoteCtrl, RCVerifiedInvitation) -> RemoteCtrlSession
[action] :: RemoteCtrlSession -> Async ()
[foundCtrl] :: RemoteCtrlSession -> TMVar (RemoteCtrl, RCVerifiedInvitation)
RCSessionConnecting :: Maybe RemoteCtrlId -> RCCtrlClient -> Async () -> RemoteCtrlSession
[remoteCtrlId_] :: RemoteCtrlSession -> Maybe RemoteCtrlId
[rcsClient] :: RemoteCtrlSession -> RCCtrlClient
[rcsWaitSession] :: RemoteCtrlSession -> Async ()
RCSessionPendingConfirmation :: Maybe RemoteCtrlId -> Text -> RCCtrlClient -> TLS 'TClient -> Text -> Async () -> TMVar (Either RCErrorType (RCCtrlSession, RCCtrlPairing)) -> RemoteCtrlSession
[remoteCtrlId_] :: RemoteCtrlSession -> Maybe RemoteCtrlId
[ctrlDeviceName] :: RemoteCtrlSession -> Text
[rcsClient] :: RemoteCtrlSession -> RCCtrlClient
[tls] :: RemoteCtrlSession -> TLS 'TClient
[sessionCode] :: RemoteCtrlSession -> Text
[rcsWaitSession] :: RemoteCtrlSession -> Async ()
[rcsWaitConfirmation] :: RemoteCtrlSession -> TMVar (Either RCErrorType (RCCtrlSession, RCCtrlPairing))
RCSessionConnected :: RemoteCtrlId -> RCCtrlClient -> TLS 'TClient -> RCCtrlSession -> Async () -> TBQueue (Either ChatError ChatEvent) -> RemoteCtrlSession
[remoteCtrlId] :: RemoteCtrlSession -> RemoteCtrlId
[rcsClient] :: RemoteCtrlSession -> RCCtrlClient
[tls] :: RemoteCtrlSession -> TLS 'TClient
[rcsSession] :: RemoteCtrlSession -> RCCtrlSession
[http2Server] :: RemoteCtrlSession -> Async ()
[remoteOutputQ] :: RemoteCtrlSession -> TBQueue (Either ChatError ChatEvent)
data RemoteCtrlSessionState
RCSStarting :: RemoteCtrlSessionState
RCSSearching :: RemoteCtrlSessionState
RCSConnecting :: RemoteCtrlSessionState
RCSPendingConfirmation :: Text -> RemoteCtrlSessionState
[sessionCode] :: RemoteCtrlSessionState -> Text
RCSConnected :: Text -> RemoteCtrlSessionState
[sessionCode] :: RemoteCtrlSessionState -> Text
rcsSessionState :: RemoteCtrlSession -> RemoteCtrlSessionState

-- | UI-accessible remote controller information
data RemoteCtrlInfo
RemoteCtrlInfo :: RemoteCtrlId -> Text -> Maybe RemoteCtrlSessionState -> RemoteCtrlInfo
[remoteCtrlId] :: RemoteCtrlInfo -> RemoteCtrlId
[ctrlDeviceName] :: RemoteCtrlInfo -> Text
[sessionState] :: RemoteCtrlInfo -> Maybe RemoteCtrlSessionState
type CM' a = ReaderT ChatController IO a
type CM a = ExceptT ChatError ReaderT ChatController IO a
chatReadVar :: (ChatController -> TVar a) -> CM a
chatReadVar' :: (ChatController -> TVar a) -> CM' a
chatWriteVar :: (ChatController -> TVar a) -> a -> CM ()
chatWriteVar' :: (ChatController -> TVar a) -> a -> CM' ()
chatModifyVar :: (ChatController -> TVar a) -> (a -> a) -> CM ()
chatModifyVar' :: (ChatController -> TVar a) -> (a -> a) -> CM' ()
onChatError :: CM a -> CM b -> CM a
throwCmdError :: String -> CM a
chatCmdError :: String -> Either ChatError ChatResponse
throwChatError :: ChatErrorType -> CM a
toViewTE :: TerminalEvent -> CM ()

-- | Emit local events.
toView :: ChatEvent -> CM ()
toView' :: ChatEvent -> CM' ()
eToView :: ChatError -> CM ()
eToView' :: ChatError -> CM' ()
toView_ :: Either ChatError ChatEvent -> CM' ()
withStore' :: (Connection -> IO a) -> CM a
withFastStore' :: (Connection -> IO a) -> CM a
withStore :: (Connection -> ExceptT StoreError IO a) -> CM a
withFastStore :: (Connection -> ExceptT StoreError IO a) -> CM a
withStorePriority :: Bool -> (Connection -> ExceptT StoreError IO a) -> CM a
withStoreBatch :: Traversable t => (Connection -> t (IO (Either ChatError a))) -> CM' (t (Either ChatError a))
handleDBErrors :: [Handler (Either ChatError a)]
withStoreBatch' :: Traversable t => (Connection -> t (IO a)) -> CM' (t (Either ChatError a))
withAgent :: (AgentClient -> ExceptT AgentErrorType IO a) -> CM a
withAgent' :: (AgentClient -> IO a) -> CM' a
instance Simplex.Messaging.Util.AnyError Simplex.Chat.Controller.ChatError
instance GHC.Classes.Eq Simplex.Chat.Controller.AgentQueueId
instance GHC.Classes.Eq Simplex.Chat.Controller.ChatLogLevel
instance GHC.Classes.Eq Simplex.Chat.Controller.SendRef
instance GHC.Classes.Eq Simplex.Chat.Controller.UserPwd
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.ArchiveError
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.ChatError
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.ChatErrorType
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.DatabaseError
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.RemoteCtrlError
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.RemoteCtrlStopReason
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.RemoteHostError
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.RemoteHostStopReason
instance GHC.Exception.Type.Exception Simplex.Chat.Controller.SQLiteError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.AgentQueueId
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.AppFilePathsConfig
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ArchiveConfig
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ArchiveError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatErrorType
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatItemDeletion
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatListQuery
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatResponse
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ChatTagData
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ComposedMessage
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ConnSubResult
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ConnectionPlan
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ContactAddressPlan
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.CoreVersionInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.DBEncryptionConfig
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.DBEncryptionKey
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.DatabaseError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.DeletedRcvQueue
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ForwardConfirmation
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.GroupLinkPlan
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.HelpSection
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.InvitationLinkPlan
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.NtfConn
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.NtfMsgAckInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.NtfMsgInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ParsedServerAddress
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RatchetSyncProgress
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RcvNtfMsgInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteCtrlError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteCtrlInfo
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteCtrlSessionState
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteCtrlStopReason
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteHostError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.RemoteHostStopReason
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.SQLiteError
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.ServerAddress
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.SlowSQLQuery
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.SwitchProgress
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.TerminalEvent
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.UpdatedMessage
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.UserProfileUpdateSummary
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Controller.UserPwd
instance Data.String.IsString Simplex.Chat.Controller.DBEncryptionKey
instance GHC.Classes.Ord Simplex.Chat.Controller.ChatLogLevel
instance GHC.Show.Show Simplex.Chat.Controller.AgentQueueId
instance GHC.Show.Show Simplex.Chat.Controller.AppFilePathsConfig
instance GHC.Show.Show Simplex.Chat.Controller.ArchiveConfig
instance GHC.Show.Show Simplex.Chat.Controller.ArchiveError
instance GHC.Show.Show Simplex.Chat.Controller.ChatCommand
instance GHC.Show.Show Simplex.Chat.Controller.ChatDeleteMode
instance GHC.Show.Show Simplex.Chat.Controller.ChatError
instance GHC.Show.Show Simplex.Chat.Controller.ChatErrorType
instance GHC.Show.Show Simplex.Chat.Controller.ChatEvent
instance GHC.Show.Show Simplex.Chat.Controller.ChatItemDeletion
instance GHC.Show.Show Simplex.Chat.Controller.ChatListQuery
instance GHC.Show.Show Simplex.Chat.Controller.ChatLogLevel
instance GHC.Show.Show Simplex.Chat.Controller.ChatPagination
instance GHC.Show.Show Simplex.Chat.Controller.ChatResponse
instance GHC.Show.Show Simplex.Chat.Controller.ChatTagData
instance GHC.Show.Show Simplex.Chat.Controller.ComposedMessage
instance GHC.Show.Show Simplex.Chat.Controller.ConnSubResult
instance GHC.Show.Show Simplex.Chat.Controller.ConnectionPlan
instance GHC.Show.Show Simplex.Chat.Controller.ContactAddressPlan
instance GHC.Show.Show Simplex.Chat.Controller.CoreVersionInfo
instance GHC.Show.Show Simplex.Chat.Controller.DBEncryptionConfig
instance GHC.Show.Show Simplex.Chat.Controller.DBEncryptionKey
instance GHC.Show.Show Simplex.Chat.Controller.DatabaseError
instance GHC.Show.Show Simplex.Chat.Controller.DeletedRcvQueue
instance GHC.Show.Show Simplex.Chat.Controller.ForwardConfirmation
instance GHC.Show.Show Simplex.Chat.Controller.GroupLinkPlan
instance GHC.Show.Show Simplex.Chat.Controller.HelpSection
instance GHC.Show.Show Simplex.Chat.Controller.InvitationLinkPlan
instance GHC.Show.Show Simplex.Chat.Controller.NtfConn
instance GHC.Show.Show Simplex.Chat.Controller.NtfMsgAckInfo
instance GHC.Show.Show Simplex.Chat.Controller.NtfMsgInfo
instance GHC.Show.Show Simplex.Chat.Controller.PaginationByTime
instance GHC.Show.Show Simplex.Chat.Controller.ParsedServerAddress
instance GHC.Show.Show Simplex.Chat.Controller.PresetServers
instance GHC.Show.Show Simplex.Chat.Controller.RandomAgentServers
instance GHC.Show.Show Simplex.Chat.Controller.RatchetSyncProgress
instance GHC.Show.Show Simplex.Chat.Controller.RcvNtfMsgInfo
instance GHC.Show.Show Simplex.Chat.Controller.RemoteCtrlError
instance GHC.Show.Show Simplex.Chat.Controller.RemoteCtrlInfo
instance GHC.Show.Show Simplex.Chat.Controller.RemoteCtrlSessionState
instance GHC.Show.Show Simplex.Chat.Controller.RemoteCtrlStopReason
instance GHC.Show.Show Simplex.Chat.Controller.RemoteHostError
instance GHC.Show.Show Simplex.Chat.Controller.RemoteHostStopReason
instance GHC.Show.Show Simplex.Chat.Controller.SQLiteError
instance GHC.Show.Show Simplex.Chat.Controller.SendRef
instance GHC.Show.Show Simplex.Chat.Controller.ServerAddress
instance GHC.Show.Show Simplex.Chat.Controller.SimpleNetCfg
instance GHC.Show.Show Simplex.Chat.Controller.SlowSQLQuery
instance GHC.Show.Show Simplex.Chat.Controller.SwitchProgress
instance GHC.Show.Show Simplex.Chat.Controller.TerminalEvent
instance GHC.Show.Show Simplex.Chat.Controller.TimedMessagesEnabled
instance GHC.Show.Show Simplex.Chat.Controller.UpdatedMessage
instance GHC.Show.Show Simplex.Chat.Controller.UserProfileUpdateSummary
instance GHC.Show.Show Simplex.Chat.Controller.UserPwd
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Controller.AgentQueueId
instance Simplex.Messaging.Encoding.String.StrEncoding Simplex.Chat.Controller.DBEncryptionKey
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.AgentQueueId
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.AppFilePathsConfig
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ArchiveError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatErrorType
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatItemDeletion
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatListQuery
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatResponse
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ChatTagData
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ComposedMessage
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ConnSubResult
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ConnectionPlan
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ContactAddressPlan
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.CoreVersionInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.DatabaseError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.DeletedRcvQueue
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ForwardConfirmation
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.GroupLinkPlan
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.HelpSection
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.InvitationLinkPlan
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.NtfConn
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.NtfMsgAckInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.NtfMsgInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ParsedServerAddress
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RatchetSyncProgress
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RcvNtfMsgInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteCtrlError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteCtrlInfo
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteCtrlSessionState
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteCtrlStopReason
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteHostError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.RemoteHostStopReason
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.SQLiteError
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.ServerAddress
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.SlowSQLQuery
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.SwitchProgress
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.TerminalEvent
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.UpdatedMessage
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.UserProfileUpdateSummary
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Controller.UserPwd

module Simplex.Chat.Store.Messages
getContactConnIds_ :: Connection -> User -> Contact -> IO [Int64]
deleteContactCIs :: Connection -> User -> Contact -> IO ()
getGroupFileInfo :: Connection -> User -> GroupInfo -> IO [CIFileInfo]
getGroupMemberFileInfo :: Connection -> User -> GroupInfo -> GroupMember -> IO [CIFileInfo]
deleteGroupChatItemsMessages :: Connection -> User -> GroupInfo -> IO ()
createNewSndMessage :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> TVar ChaChaDRG -> ConnOrGroupId -> ChatMsgEvent e -> (SharedMsgId -> EncodedChatMessage) -> ExceptT StoreError IO SndMessage
createSndMsgDelivery :: Connection -> SndMsgDelivery -> MessageId -> IO Int64
createNewMessageAndRcvMsgDelivery :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> ConnOrGroupId -> NewRcvMessage e -> Maybe SharedMsgId -> RcvMsgDelivery -> Maybe GroupMemberId -> ExceptT StoreError IO RcvMessage
getLastRcvMsgInfo :: Connection -> Int64 -> IO (Maybe RcvMsgInfo)
createNewRcvMessage :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> ConnOrGroupId -> NewRcvMessage e -> Maybe SharedMsgId -> Maybe GroupMemberId -> Maybe GroupMemberId -> ExceptT StoreError IO RcvMessage
updateSndMsgDeliveryStatus :: Connection -> Int64 -> AgentMsgId -> MsgDeliveryStatus 'MDSnd -> IO ()
createPendingGroupMessage :: Connection -> Int64 -> MessageId -> IO ()
getPendingGroupMessages :: Connection -> Int64 -> IO [SndMessage]
deletePendingGroupMessage :: Connection -> Int64 -> MessageId -> IO ()
deleteOldMessages :: Connection -> UTCTime -> IO ()
data MemberAttention
MAInc :: Int -> Maybe UTCTime -> MemberAttention
MAReset :: MemberAttention
updateChatTsStats :: forall (c :: ChatType) (d :: MsgDirection). Connection -> VersionRangeChat -> User -> ChatDirection c d -> UTCTime -> Maybe (Int, MemberAttention, Int) -> IO (ChatInfo c)
setSupportChatTs :: Connection -> GroupMemberId -> UTCTime -> IO ()
setSupportChatMemberAttention :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupMember -> Int64 -> IO (GroupInfo, GroupMember)
createNewSndChatItem :: forall (c :: ChatType). Connection -> User -> ChatDirection c 'MDSnd -> SndMessage -> CIContent 'MDSnd -> Maybe (CIQuote c) -> Maybe CIForwardedFrom -> Maybe CITimed -> Bool -> UTCTime -> IO ChatItemId
createNewRcvChatItem :: forall (c :: ChatType). ChatTypeQuotable c => Connection -> User -> ChatDirection c 'MDRcv -> RcvMessage -> Maybe SharedMsgId -> CIContent 'MDRcv -> Maybe CITimed -> Bool -> Bool -> UTCTime -> UTCTime -> IO (ChatItemId, Maybe (CIQuote c), Maybe CIForwardedFrom)
createNewChatItemNoMsg :: forall (c :: ChatType) (d :: MsgDirection). MsgDirectionI d => Connection -> User -> ChatDirection c d -> ShowGroupAsSender -> CIContent d -> Maybe SharedMsgId -> UTCTime -> UTCTime -> IO ChatItemId
createNewChatItem_ :: forall (c :: ChatType) (d :: MsgDirection). MsgDirectionI d => Connection -> User -> ChatDirection c d -> ShowGroupAsSender -> Maybe MessageId -> Maybe SharedMsgId -> CIContent d -> NewQuoteRow -> Maybe CIForwardedFrom -> Maybe CITimed -> Bool -> Bool -> UTCTime -> Maybe GroupMemberId -> UTCTime -> IO ChatItemId
getChatPreviews :: Connection -> VersionRangeChat -> User -> Bool -> PaginationByTime -> ChatListQuery -> IO [Either StoreError AChat]
checkContactHasItems :: Connection -> User -> Contact -> IO Bool
getDirectChat :: Connection -> VersionRangeChat -> User -> Int64 -> ChatPagination -> Maybe Text -> ExceptT StoreError IO (Chat 'CTDirect, Maybe NavigationInfo)
getGroupChat :: Connection -> VersionRangeChat -> User -> Int64 -> Maybe GroupChatScope -> Maybe MsgContentTag -> ChatPagination -> Maybe Text -> ExceptT StoreError IO (Chat 'CTGroup, Maybe NavigationInfo)
getGroupChatScopeInfoForItem :: Connection -> VersionRangeChat -> User -> GroupInfo -> ChatItemId -> ExceptT StoreError IO (Maybe GroupChatScopeInfo)
getLocalChat :: Connection -> User -> Int64 -> ChatPagination -> Maybe Text -> ExceptT StoreError IO (Chat 'CTLocal, Maybe NavigationInfo)
getDirectChatItemLast :: Connection -> User -> ContactId -> ExceptT StoreError IO (CChatItem 'CTDirect)
getAllChatItems :: Connection -> VersionRangeChat -> User -> ChatPagination -> Maybe Text -> ExceptT StoreError IO [AChatItem]
getAChatItem :: Connection -> VersionRangeChat -> User -> ChatRef -> ChatItemId -> ExceptT StoreError IO AChatItem
getAChatItemBySharedMsgId :: forall (c :: ChatType). ChatTypeQuotable c => Connection -> User -> ChatDirection c 'MDRcv -> SharedMsgId -> ExceptT StoreError IO AChatItem
updateDirectChatItem :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Contact -> ChatItemId -> CIContent d -> Bool -> Bool -> Maybe CITimed -> Maybe MessageId -> ExceptT StoreError IO (ChatItem 'CTDirect d)
updateDirectChatItem' :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Int64 -> ChatItem 'CTDirect d -> CIContent d -> Bool -> Bool -> Maybe CITimed -> Maybe MessageId -> IO (ChatItem 'CTDirect d)
addInitialAndNewCIVersions :: Connection -> ChatItemId -> (UTCTime, MsgContent) -> (UTCTime, MsgContent) -> IO ()
createChatItemVersion :: Connection -> ChatItemId -> UTCTime -> MsgContent -> IO ()
deleteDirectChatItem :: forall (d :: MsgDirection). Connection -> User -> Contact -> ChatItem 'CTDirect d -> IO ()
markDirectChatItemDeleted :: forall (d :: MsgDirection). Connection -> User -> Contact -> ChatItem 'CTDirect d -> UTCTime -> IO (ChatItem 'CTDirect d)
updateGroupChatItemStatus :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> GroupInfo -> ChatItemId -> CIStatus d -> ExceptT StoreError IO (ChatItem 'CTGroup d)
updateGroupChatItem :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Int64 -> ChatItem 'CTGroup d -> CIContent d -> Bool -> Bool -> Maybe MessageId -> IO (ChatItem 'CTGroup d)
createGroupCIMentions :: forall (d :: MsgDirection). Connection -> GroupInfo -> ChatItem 'CTGroup d -> Map MemberName CIMention -> IO (ChatItem 'CTGroup d)
updateGroupCIMentions :: forall (d :: MsgDirection). Connection -> GroupInfo -> ChatItem 'CTGroup d -> Map MemberName CIMention -> IO (ChatItem 'CTGroup d)
deleteGroupChatItem :: forall (d :: MsgDirection). Connection -> User -> GroupInfo -> ChatItem 'CTGroup d -> IO ()
updateGroupChatItemModerated :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> GroupInfo -> ChatItem 'CTGroup d -> GroupMember -> UTCTime -> IO (ChatItem 'CTGroup d)
updateMemberCIsModerated :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> GroupInfo -> GroupMember -> GroupMember -> SMsgDirection d -> UTCTime -> IO ()
updateGroupCIBlockedByAdmin :: forall (d :: MsgDirection). Connection -> User -> GroupInfo -> ChatItem 'CTGroup d -> UTCTime -> IO (ChatItem 'CTGroup d)
markGroupChatItemDeleted :: forall (d :: MsgDirection). Connection -> User -> GroupInfo -> ChatItem 'CTGroup d -> Maybe GroupMember -> UTCTime -> IO (ChatItem 'CTGroup d)
markMemberCIsDeleted :: Connection -> User -> GroupInfo -> GroupMember -> GroupMember -> UTCTime -> IO ()
markGroupChatItemBlocked :: Connection -> User -> GroupInfo -> ChatItem 'CTGroup 'MDRcv -> IO (ChatItem 'CTGroup 'MDRcv)
markGroupCIBlockedByAdmin :: Connection -> User -> GroupInfo -> ChatItem 'CTGroup 'MDRcv -> IO (ChatItem 'CTGroup 'MDRcv)
markMessageReportsDeleted :: forall (d :: MsgDirection). Connection -> User -> GroupInfo -> ChatItem 'CTGroup d -> GroupMember -> UTCTime -> IO [ChatItemId]
markReceivedGroupReportsDeleted :: Connection -> User -> GroupInfo -> UTCTime -> IO [ChatItemId]
deleteLocalChatItem :: forall (d :: MsgDirection). Connection -> User -> NoteFolder -> ChatItem 'CTLocal d -> IO ()
updateDirectChatItemsRead :: Connection -> User -> ContactId -> IO ()
getDirectUnreadTimedItems :: Connection -> User -> ContactId -> IO [(ChatItemId, Int)]
updateDirectChatItemsReadList :: Connection -> User -> ContactId -> NonEmpty ChatItemId -> IO [(ChatItemId, Int)]
setDirectChatItemRead :: Connection -> User -> ContactId -> ChatItemId -> IO ()
setDirectChatItemsDeleteAt :: Connection -> User -> ContactId -> [(ChatItemId, Int)] -> UTCTime -> IO [(ChatItemId, UTCTime)]
updateGroupChatItemsRead :: Connection -> User -> GroupInfo -> IO ()
updateSupportChatItemsRead :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupChatScopeInfo -> IO (GroupInfo, GroupMember)
getGroupUnreadTimedItems :: Connection -> User -> GroupId -> Maybe GroupChatScope -> IO [(ChatItemId, Int)]
updateGroupChatItemsReadList :: Connection -> VersionRangeChat -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> NonEmpty ChatItemId -> ExceptT StoreError IO ([(ChatItemId, Int)], GroupInfo)
updateGroupScopeUnreadStats :: Connection -> VersionRangeChat -> User -> GroupInfo -> GroupChatScopeInfo -> (Int, Int, Int) -> IO GroupInfo
setGroupChatItemsDeleteAt :: Connection -> User -> GroupId -> [(ChatItemId, Int)] -> UTCTime -> IO [(ChatItemId, UTCTime)]
updateLocalChatItemsRead :: Connection -> User -> NoteFolderId -> IO ()
getChatRefViaItemId :: Connection -> User -> ChatItemId -> ExceptT StoreError IO ChatRef
getChatItemVersions :: Connection -> ChatItemId -> IO [ChatItemVersion]
getDirectCIReactions :: Connection -> Contact -> SharedMsgId -> IO [CIReactionCount]
getDirectReactions :: Connection -> Contact -> SharedMsgId -> Bool -> IO [MsgReaction]
setDirectReaction :: Connection -> Contact -> SharedMsgId -> Bool -> MsgReaction -> Bool -> MessageId -> UTCTime -> IO ()
getGroupCIReactions :: Connection -> GroupInfo -> MemberId -> SharedMsgId -> IO [CIReactionCount]
getGroupReactions :: Connection -> GroupInfo -> GroupMember -> MemberId -> SharedMsgId -> Bool -> IO [MsgReaction]
setGroupReaction :: Connection -> GroupInfo -> GroupMember -> MemberId -> SharedMsgId -> Bool -> MsgReaction -> Bool -> MessageId -> UTCTime -> IO ()
getReactionMembers :: Connection -> VersionRangeChat -> User -> GroupId -> SharedMsgId -> MsgReaction -> IO [MemberReaction]
getChatItemIdsByAgentMsgId :: Connection -> Int64 -> AgentMsgId -> IO [ChatItemId]
getDirectChatItem :: Connection -> User -> Int64 -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTDirect)
getDirectCIWithReactions :: Connection -> User -> Contact -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTDirect)
getDirectChatItemBySharedMsgId :: Connection -> User -> ContactId -> SharedMsgId -> ExceptT StoreError IO (CChatItem 'CTDirect)
getDirectChatItemsByAgentMsgId :: Connection -> User -> ContactId -> Int64 -> AgentMsgId -> IO [CChatItem 'CTDirect]
getGroupChatItem :: Connection -> User -> Int64 -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getGroupCIWithReactions :: Connection -> User -> GroupInfo -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getGroupChatItemBySharedMsgId :: Connection -> User -> GroupInfo -> GroupMemberId -> SharedMsgId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getGroupMemberCIBySharedMsgId :: Connection -> User -> GroupInfo -> MemberId -> SharedMsgId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getGroupChatItemsByAgentMsgId :: Connection -> User -> GroupId -> Int64 -> AgentMsgId -> IO [CChatItem 'CTGroup]
getGroupMemberChatItemLast :: Connection -> User -> GroupId -> GroupMemberId -> ExceptT StoreError IO (CChatItem 'CTGroup)
getLocalChatItem :: Connection -> User -> Int64 -> ChatItemId -> ExceptT StoreError IO (CChatItem 'CTLocal)
updateLocalChatItem' :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> NoteFolderId -> ChatItem 'CTLocal d -> CIContent d -> Bool -> IO (ChatItem 'CTLocal d)
getDirectChatItemIdByText :: forall (d :: MsgDirection). Connection -> UserId -> Int64 -> SMsgDirection d -> Text -> ExceptT StoreError IO ChatItemId
getDirectChatItemIdByText' :: Connection -> User -> ContactId -> Text -> ExceptT StoreError IO ChatItemId
getGroupChatItemIdByText :: Connection -> User -> GroupId -> Maybe ContactName -> Text -> ExceptT StoreError IO ChatItemId
getGroupChatItemIdByText' :: Connection -> User -> GroupId -> Text -> ExceptT StoreError IO ChatItemId
getLocalChatItemIdByText :: forall (d :: MsgDirection). Connection -> User -> NoteFolderId -> SMsgDirection d -> Text -> ExceptT StoreError IO ChatItemId
getLocalChatItemIdByText' :: Connection -> User -> NoteFolderId -> Text -> ExceptT StoreError IO ChatItemId
getChatItemByFileId :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO AChatItem
lookupChatItemByFileId :: Connection -> VersionRangeChat -> User -> Int64 -> ExceptT StoreError IO (Maybe AChatItem)
getChatItemByGroupId :: Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO AChatItem
updateDirectChatItemStatus :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Contact -> ChatItemId -> CIStatus d -> ExceptT StoreError IO (ChatItem 'CTDirect d)
setDirectSndChatItemViaProxy :: Connection -> User -> Contact -> ChatItem 'CTDirect 'MDSnd -> Bool -> IO (ChatItem 'CTDirect 'MDSnd)
getTimedItems :: Connection -> User -> UTCTime -> IO [((ChatRef, ChatItemId), UTCTime)]
getChatItemTTL :: Connection -> User -> IO Int64
setChatItemTTL :: Connection -> User -> Int64 -> IO ()
getChatTTLCount :: Connection -> User -> IO Int
getContactExpiredFileInfo :: Connection -> User -> Contact -> UTCTime -> IO [CIFileInfo]
deleteContactExpiredCIs :: Connection -> User -> Contact -> UTCTime -> IO ()
getGroupExpiredFileInfo :: Connection -> User -> GroupInfo -> UTCTime -> UTCTime -> IO [CIFileInfo]
deleteGroupExpiredCIs :: Connection -> User -> GroupInfo -> UTCTime -> UTCTime -> IO ()
createCIModeration :: Connection -> GroupInfo -> GroupMember -> MemberId -> SharedMsgId -> MessageId -> UTCTime -> IO ()
getCIModeration :: Connection -> VersionRangeChat -> User -> GroupInfo -> MemberId -> Maybe SharedMsgId -> IO (Maybe CIModeration)
deleteCIModeration :: Connection -> GroupInfo -> MemberId -> Maybe SharedMsgId -> IO ()
createGroupSndStatus :: Connection -> ChatItemId -> GroupMemberId -> GroupSndStatus -> IO ()
getGroupSndStatus :: Connection -> ChatItemId -> GroupMemberId -> ExceptT StoreError IO GroupSndStatus
updateGroupSndStatus :: Connection -> ChatItemId -> GroupMemberId -> GroupSndStatus -> IO ()
setGroupSndViaProxy :: Connection -> ChatItemId -> GroupMemberId -> Bool -> IO ()
getGroupSndStatuses :: Connection -> ChatItemId -> IO [MemberDeliveryStatus]
getGroupSndStatusCounts :: Connection -> ChatItemId -> IO [(GroupSndStatus, Int)]
getGroupHistoryItems :: Connection -> User -> GroupInfo -> GroupMember -> Int -> IO [Either StoreError (CChatItem 'CTGroup)]
instance GHC.Show.Show Simplex.Chat.Store.Messages.MemberAttention

module Simplex.Chat.Store.Files
createSndDirectInlineFT :: Connection -> Contact -> FileTransferMeta -> ExceptT StoreError IO SndFileTransfer
createSndGroupInlineFT :: Connection -> GroupMember -> Connection -> FileTransferMeta -> IO SndFileTransfer
updateSndDirectFTDelivery :: Connection -> Contact -> FileTransferMeta -> Int64 -> ExceptT StoreError IO ()
updateSndGroupFTDelivery :: Connection -> GroupMember -> Connection -> FileTransferMeta -> Int64 -> IO ()
getSndFTViaMsgDelivery :: Connection -> User -> Connection -> AgentMsgId -> IO (Maybe SndFileTransfer)
createSndFileTransferXFTP :: Connection -> User -> Maybe ContactOrGroup -> CryptoFile -> FileInvitation -> AgentSndFileId -> Maybe FileTransferId -> Integer -> IO FileTransferMeta
createSndFTDescrXFTP :: Connection -> User -> Maybe GroupMember -> Connection -> FileTransferMeta -> FileDescr -> IO ()
setSndFTPrivateSndDescr :: Connection -> User -> FileTransferId -> Text -> IO ()
updateSndFTDescrXFTP :: Connection -> User -> SndFileTransfer -> Text -> IO ()
createExtraSndFTDescrs :: Connection -> User -> FileTransferId -> [Text] -> IO ()
updateSndFTDeliveryXFTP :: Connection -> SndFileTransfer -> Int64 -> IO ()
setSndFTAgentDeleted :: Connection -> User -> FileTransferId -> IO ()
getXFTPSndFileDBIds :: Connection -> AgentSndFileId -> ExceptT StoreError IO (Maybe ChatRef, FileTransferId)
getXFTPRcvFileDBIds :: Connection -> AgentRcvFileId -> ExceptT StoreError IO (Maybe ChatRef, FileTransferId)
updateFileCancelled :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Int64 -> CIFileStatus d -> IO ()
updateCIFileStatus :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> Int64 -> CIFileStatus d -> IO ()
getSharedMsgIdByFileId :: Connection -> UserId -> Int64 -> ExceptT StoreError IO SharedMsgId
getFileIdBySharedMsgId :: Connection -> UserId -> Int64 -> SharedMsgId -> ExceptT StoreError IO Int64
getGroupFileIdBySharedMsgId :: Connection -> UserId -> Int64 -> SharedMsgId -> ExceptT StoreError IO Int64
getDirectFileIdBySharedMsgId :: Connection -> User -> Contact -> SharedMsgId -> ExceptT StoreError IO Int64
getChatRefByFileId :: Connection -> User -> Int64 -> ExceptT StoreError IO ChatRef
lookupChatRefByFileId :: Connection -> User -> Int64 -> IO (Maybe ChatRef)
updateSndFileStatus :: Connection -> SndFileTransfer -> FileStatus -> IO ()
createRcvFileTransfer :: Connection -> UserId -> Contact -> FileInvitation -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer
createRcvGroupFileTransfer :: Connection -> UserId -> GroupMember -> FileInvitation -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer
createRcvStandaloneFileTransfer :: Connection -> UserId -> CryptoFile -> Int64 -> Word32 -> ExceptT StoreError IO Int64
appendRcvFD :: Connection -> UserId -> FileTransferId -> FileDescr -> ExceptT StoreError IO RcvFileDescr
getRcvFileDescrByRcvFileId :: Connection -> FileTransferId -> ExceptT StoreError IO RcvFileDescr
getRcvFileDescrBySndFileId :: Connection -> FileTransferId -> ExceptT StoreError IO RcvFileDescr
updateRcvFileAgentId :: Connection -> FileTransferId -> Maybe AgentRcvFileId -> IO ()
getRcvFileTransferById :: Connection -> FileTransferId -> ExceptT StoreError IO (User, RcvFileTransfer)
getRcvFileTransfer :: Connection -> User -> FileTransferId -> ExceptT StoreError IO RcvFileTransfer
acceptRcvInlineFT :: Connection -> VersionRangeChat -> User -> FileTransferId -> FilePath -> ExceptT StoreError IO AChatItem
startRcvInlineFT :: Connection -> User -> RcvFileTransfer -> FilePath -> Maybe InlineFileMode -> IO ()
xftpAcceptRcvFT :: Connection -> VersionRangeChat -> User -> FileTransferId -> FilePath -> Bool -> ExceptT StoreError IO AChatItem
setRcvFileToReceive :: Connection -> FileTransferId -> Bool -> Maybe CryptoFileArgs -> IO ()
setFileCryptoArgs :: Connection -> FileTransferId -> CryptoFileArgs -> IO ()
removeFileCryptoArgs :: Connection -> FileTransferId -> IO ()
getRcvFilesToReceive :: Connection -> User -> IO [RcvFileTransfer]
setRcvFTAgentDeleted :: Connection -> FileTransferId -> IO ()
updateRcvFileStatus :: Connection -> FileTransferId -> FileStatus -> IO ()
createRcvFileChunk :: Connection -> RcvFileTransfer -> Integer -> AgentMsgId -> IO RcvChunkStatus
updatedRcvFileChunkStored :: Connection -> RcvFileTransfer -> Integer -> IO ()
deleteRcvFileChunks :: Connection -> RcvFileTransfer -> IO ()
updateFileTransferChatItemId :: Connection -> FileTransferId -> ChatItemId -> UTCTime -> IO ()
getFileTransfer :: Connection -> User -> Int64 -> ExceptT StoreError IO FileTransfer
getFileTransferProgress :: Connection -> User -> Int64 -> ExceptT StoreError IO (FileTransfer, [Integer])
getFileTransferMeta :: Connection -> User -> Int64 -> ExceptT StoreError IO FileTransferMeta
lookupFileTransferRedirectMeta :: Connection -> User -> Int64 -> IO [FileTransferMeta]
getSndFileTransfer :: Connection -> User -> Int64 -> ExceptT StoreError IO (FileTransferMeta, [SndFileTransfer])
getContactFileInfo :: Connection -> User -> Contact -> IO [CIFileInfo]
getNoteFolderFileInfo :: Connection -> User -> NoteFolder -> IO [CIFileInfo]
createLocalFile :: forall (d :: MsgDirection). ToField (CIFileStatus d) => CIFileStatus d -> Connection -> User -> NoteFolder -> UTCTime -> CryptoFile -> Integer -> Integer -> IO Int64
getLocalCryptoFile :: Connection -> UserId -> Int64 -> Bool -> ExceptT StoreError IO CryptoFile
updateDirectCIFileStatus :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> VersionRangeChat -> User -> Int64 -> CIFileStatus d -> ExceptT StoreError IO AChatItem

module Simplex.Chat.Remote.Protocol
data RemoteCommand
RCSend :: Text -> Int -> RemoteCommand
[command] :: RemoteCommand -> Text
[retryNumber] :: RemoteCommand -> Int
RCRecv :: Int -> RemoteCommand
[wait] :: RemoteCommand -> Int
RCStoreFile :: String -> Word32 -> FileDigest -> RemoteCommand
[fileName] :: RemoteCommand -> String
[fileSize] :: RemoteCommand -> Word32
[fileDigest] :: RemoteCommand -> FileDigest
RCGetFile :: RemoteFile -> RemoteCommand
[file] :: RemoteCommand -> RemoteFile
data RemoteResponse
RRChatResponse :: RRResult ChatResponse -> RemoteResponse
[chatResponse] :: RemoteResponse -> RRResult ChatResponse
RRChatEvent :: Maybe (RRResult ChatEvent) -> RemoteResponse
[chatEvent] :: RemoteResponse -> Maybe (RRResult ChatEvent)
RRFileStored :: String -> RemoteResponse
[filePath] :: RemoteResponse -> String
RRFile :: Word32 -> FileDigest -> RemoteResponse
[fileSize] :: RemoteResponse -> Word32
[fileDigest] :: RemoteResponse -> FileDigest
RRProtocolError :: RemoteProtocolError -> RemoteResponse
[remoteProcotolError] :: RemoteResponse -> RemoteProtocolError
data RRResult r
RRResult :: r -> RRResult r
[result] :: RRResult r -> r
RRError :: ChatError -> RRResult r
[error] :: RRResult r -> ChatError
resultToEither :: RRResult r -> Either ChatError r
eitherToResult :: Either ChatError r -> RRResult r
mkRemoteHostClient :: HTTP2Client -> HostSessKeys -> SessionCode -> FilePath -> HostAppInfo -> CM RemoteHostClient
mkCtrlRemoteCrypto :: CtrlSessKeys -> SessionCode -> CM RemoteCrypto
mkRemoteCrypto :: SessionCode -> TSbChainKeys -> RemoteSignatures -> IO RemoteCrypto
closeRemoteHostClient :: RemoteHostClient -> IO ()
remoteSend :: RemoteHostClient -> ByteString -> Int -> ExceptT RemoteProtocolError IO (Either ChatError ChatResponse)
remoteRecv :: RemoteHostClient -> Int -> ExceptT RemoteProtocolError IO (Maybe (Either ChatError ChatEvent))
remoteStoreFile :: RemoteHostClient -> FilePath -> FilePath -> ExceptT RemoteProtocolError IO FilePath
remoteGetFile :: RemoteHostClient -> FilePath -> RemoteFile -> ExceptT RemoteProtocolError IO ()
sendRemoteCommand' :: RemoteHostClient -> Maybe (Handle, Word32) -> RemoteCommand -> ExceptT RemoteProtocolError IO RemoteResponse
sendRemoteCommand :: RemoteHostClient -> Maybe (Handle, Word32) -> RemoteCommand -> ExceptT RemoteProtocolError IO (SbKeyNonce, Int -> IO ByteString, RemoteResponse)
badResponse :: RemoteResponse -> ExceptT RemoteProtocolError IO a
convertJSON :: PlatformEncoding -> PlatformEncoding -> Value -> Value

-- | Convert swift single-field sum encoding into
--   tagged/discriminator-field
owsf2tagged :: Value -> Value
pattern OwsfTag :: (Key, Value)
encryptEncodeHTTP2Body :: Word32 -> SbKeyNonce -> RemoteCrypto -> LazyByteString -> ExceptT RemoteProtocolError IO Builder

-- | Parse and decrypt HTTP2 request/response
parseDecryptHTTP2Body :: HTTP2BodyChunk a => RemoteCrypto -> a -> HTTP2Body -> ExceptT RemoteProtocolError IO (SbKeyNonce, LazyByteString, Int -> IO ByteString)
instance Data.Aeson.Types.FromJSON.FromJSON r => Data.Aeson.Types.FromJSON.FromJSON (Simplex.Chat.Remote.Protocol.RRResult r)
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Protocol.RemoteCommand
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Remote.Protocol.RemoteResponse
instance GHC.Show.Show r => GHC.Show.Show (Simplex.Chat.Remote.Protocol.RRResult r)
instance GHC.Show.Show Simplex.Chat.Remote.Protocol.RemoteCommand
instance GHC.Show.Show Simplex.Chat.Remote.Protocol.RemoteResponse
instance Data.Aeson.Types.ToJSON.ToJSON r => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Remote.Protocol.RRResult r)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Protocol.RemoteCommand
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Remote.Protocol.RemoteResponse

module Simplex.Chat.Options
data ChatOpts
ChatOpts :: CoreChatOpts -> String -> Int -> ChatCmdLog -> Maybe String -> Maybe FilePath -> Maybe FilePath -> Bool -> Bool -> Integer -> Bool -> Bool -> Maybe CreateBotOpts -> Bool -> ChatOpts
[coreOptions] :: ChatOpts -> CoreChatOpts
[chatCmd] :: ChatOpts -> String
[chatCmdDelay] :: ChatOpts -> Int
[chatCmdLog] :: ChatOpts -> ChatCmdLog
[chatServerPort] :: ChatOpts -> Maybe String
[optFilesFolder] :: ChatOpts -> Maybe FilePath
[optTempDirectory] :: ChatOpts -> Maybe FilePath
[showReactions] :: ChatOpts -> Bool
[allowInstantFiles] :: ChatOpts -> Bool
[autoAcceptFileSize] :: ChatOpts -> Integer
[muteNotifications] :: ChatOpts -> Bool
[markRead] :: ChatOpts -> Bool
[createBot] :: ChatOpts -> Maybe CreateBotOpts
[maintenance] :: ChatOpts -> Bool
data CoreChatOpts
CoreChatOpts :: ChatDbOpts -> [SMPServerWithAuth] -> [XFTPServerWithAuth] -> SimpleNetCfg -> ChatLogLevel -> Bool -> Bool -> Maybe LogLevel -> Maybe FilePath -> Natural -> Maybe Text -> Bool -> Bool -> Maybe FilePath -> CoreChatOpts
[dbOptions] :: CoreChatOpts -> ChatDbOpts
[smpServers] :: CoreChatOpts -> [SMPServerWithAuth]
[xftpServers] :: CoreChatOpts -> [XFTPServerWithAuth]
[simpleNetCfg] :: CoreChatOpts -> SimpleNetCfg
[logLevel] :: CoreChatOpts -> ChatLogLevel
[logConnections] :: CoreChatOpts -> Bool
[logServerHosts] :: CoreChatOpts -> Bool
[logAgent] :: CoreChatOpts -> Maybe LogLevel
[logFile] :: CoreChatOpts -> Maybe FilePath
[tbqSize] :: CoreChatOpts -> Natural
[deviceName] :: CoreChatOpts -> Maybe Text
[highlyAvailable] :: CoreChatOpts -> Bool
[yesToUpMigrations] :: CoreChatOpts -> Bool
[migrationBackupPath] :: CoreChatOpts -> Maybe FilePath
data CreateBotOpts
CreateBotOpts :: Text -> Bool -> CreateBotOpts
[botDisplayName] :: CreateBotOpts -> Text
[allowFiles] :: CreateBotOpts -> Bool
data ChatCmdLog
CCLAll :: ChatCmdLog
CCLMessages :: ChatCmdLog
CCLNone :: ChatCmdLog
chatOptsP :: FilePath -> FilePath -> Parser ChatOpts
coreChatOptsP :: FilePath -> FilePath -> Parser CoreChatOpts
getChatOpts :: FilePath -> FilePath -> IO ChatOpts
protocolServersP :: forall (p :: ProtocolType). ProtocolTypeI p => Parser [ProtoServerWithAuth p]
defaultHostMode :: Maybe SocksProxyWithAuth -> HostMode
printDbOpts :: CoreChatOpts -> IO ()
instance GHC.Classes.Eq Simplex.Chat.Options.ChatCmdLog

module Simplex.Chat.Mobile.WebRTC
cChatEncryptMedia :: StablePtr ChatController -> CString -> Ptr Word8 -> CInt -> IO CString
cChatDecryptMedia :: CString -> Ptr Word8 -> CInt -> IO CString
chatEncryptMedia :: StablePtr ChatController -> ByteString -> ByteString -> ExceptT String IO ByteString
chatDecryptMedia :: ByteString -> ByteString -> ExceptT String IO ByteString
reservedSize :: Int

module Simplex.Chat.Mobile.File
cChatWriteFile :: StablePtr ChatController -> CString -> Ptr Word8 -> CInt -> IO CJSONString
cChatReadFile :: CString -> CString -> CString -> IO (Ptr Word8)
cChatEncryptFile :: StablePtr ChatController -> CString -> CString -> IO CJSONString
cChatDecryptFile :: CString -> CString -> CString -> CString -> IO CString
data WriteFileResult
WFResult :: CryptoFileArgs -> WriteFileResult
[cryptoArgs] :: WriteFileResult -> CryptoFileArgs
WFError :: String -> WriteFileResult
[writeError] :: WriteFileResult -> String
data ReadFileResult
RFResult :: Int -> ReadFileResult
[fileSize] :: ReadFileResult -> Int
RFError :: String -> ReadFileResult
[readError] :: ReadFileResult -> String
chatWriteFile :: ChatController -> FilePath -> ByteString -> IO WriteFileResult
chatReadFile :: FilePath -> ByteString -> ByteString -> IO (Either String ByteString)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Mobile.File.ReadFileResult
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Mobile.File.WriteFileResult

module Simplex.Chat.Messages.Batch
data MsgBatch
MsgBatch :: ByteString -> [SndMessage] -> MsgBatch

-- | Batches SndMessages in [Either ChatError SndMessage] into batches of
--   ByteStrings in form of JSON arrays. Preserves original errors in the
--   list. Does not check if the resulting batch is a valid JSON. If a
--   single element is passed, it is returned as is (a JSON string). If an
--   element exceeds maxLen, it is returned as ChatError.
batchMessages :: Int -> [Either ChatError SndMessage] -> [Either ChatError MsgBatch]

-- | Batches delivery tasks into (batch, [taskIds], [largeTaskIds]).
batchDeliveryTasks1 :: VersionRangeChat -> Int -> NonEmpty MessageDeliveryTask -> (ByteString, [Int64], [Int64])

module Simplex.Chat.Files
uniqueCombine :: FilePath -> String -> IO FilePath
getChatTempDirectory :: CM' FilePath
getDefaultFilesFolder :: CM' FilePath

module Simplex.Chat.Remote
remoteFilesFolder :: String
minRemoteCtrlVersion :: AppVersion
minRemoteHostVersion :: AppVersion
currentAppVersion :: AppVersion
ctrlAppVersionRange :: AppVersionRange
hostAppVersionRange :: AppVersionRange
networkIOTimeout :: Int
discoveryTimeout :: Int
getRemoteHostClient :: RemoteHostId -> CM RemoteHostClient
withRemoteHostSession :: RHKey -> SessionSeq -> (RemoteHostSession -> Either ChatError (a, RemoteHostSession)) -> CM a

-- | Transition session state with a <a>RHNew</a> ID to an assigned
--   <a>RemoteHostId</a>
setNewRemoteHostId :: SessionSeq -> RemoteHostId -> CM ()
startRemoteHost :: Maybe (RemoteHostId, Bool) -> Maybe RCCtrlAddress -> Maybe Word16 -> CM (NonEmpty RCCtrlAddress, Maybe RemoteHostInfo, RCSignedInvitation)
startRemoteHostSession :: RHKey -> CM SessionSeq
closeRemoteHost :: RHKey -> CM ()
cancelRemoteHostSession :: Maybe (SessionSeq, RemoteHostStopReason) -> RHKey -> CM ()
cancelRemoteHost :: Bool -> RemoteHostSession -> IO ()

-- | Generate a random 16-char filepath without / in it by using base64url
--   encoding.
randomStorePath :: IO FilePath
listRemoteHosts :: CM [RemoteHostInfo]
switchRemoteHost :: Maybe RemoteHostId -> CM (Maybe RemoteHostInfo)
remoteHostInfo :: RemoteHost -> Maybe RemoteHostSessionState -> RemoteHostInfo
deleteRemoteHost :: RemoteHostId -> CM ()
storeRemoteFile :: RemoteHostId -> Maybe Bool -> FilePath -> CM CryptoFile
getRemoteFile :: RemoteHostId -> RemoteFile -> CM ()
processRemoteCommand :: RemoteHostId -> RemoteHostClient -> ChatCommand -> ByteString -> Int -> CM ChatResponse
liftRH :: RemoteHostId -> ExceptT RemoteProtocolError IO a -> CM a

-- | Use provided OOB link as an annouce
connectRemoteCtrlURI :: RCSignedInvitation -> CM (Maybe RemoteCtrlInfo, CtrlAppInfo)
findKnownRemoteCtrl :: CM ()
confirmRemoteCtrl :: RemoteCtrlId -> CM (RemoteCtrlInfo, CtrlAppInfo)
startRemoteCtrlSession :: CM SessionSeq
connectRemoteCtrl :: RCVerifiedInvitation -> SessionSeq -> CM (Maybe RemoteCtrlInfo, CtrlAppInfo)
parseCtrlAppInfo :: Value -> CM CtrlAppInfo
handleRemoteCommand :: (ByteString -> Int -> CM' (Either ChatError ChatResponse)) -> RemoteCrypto -> TBQueue (Either ChatError ChatEvent) -> HTTP2Request -> CM' ()
takeRCStep :: RCStepTMVar a -> CM a
type GetChunk = Int -> IO ByteString
type SendChunk = Builder -> IO ()
type Respond = RemoteResponse -> SbKeyNonce -> SendChunk -> IO () -> CM' ()
liftRC :: ExceptT RemoteProtocolError IO a -> CM a
handleSend :: (ByteString -> Int -> CM' (Either ChatError ChatResponse)) -> Text -> Int -> CM' RemoteResponse
handleRecv :: Int -> TBQueue (Either ChatError ChatEvent) -> IO RemoteResponse
handleStoreFile :: SbKeyNonce -> FilePath -> Word32 -> FileDigest -> GetChunk -> CM' RemoteResponse
handleGetFile :: User -> RemoteFile -> Respond -> CM ()
listRemoteCtrls :: CM [RemoteCtrlInfo]
remoteCtrlInfo :: RemoteCtrl -> Maybe RemoteCtrlSessionState -> RemoteCtrlInfo

-- | Take a look at emoji of tlsunique, commit pairing, and start session
--   server
verifyRemoteCtrlSession :: (ByteString -> Int -> CM' (Either ChatError ChatResponse)) -> Text -> CM RemoteCtrlInfo
stopRemoteCtrl :: CM ()
handleCtrlError :: SessionSeq -> (ChatError -> RemoteCtrlStopReason) -> Text -> CM a -> CM a

-- | Stop session controller, unless session update key is present but
--   stale
cancelActiveRemoteCtrl :: Maybe (SessionSeq, RemoteCtrlStopReason) -> CM ()
cancelRemoteCtrl :: Bool -> RemoteCtrlSession -> IO ()
deleteRemoteCtrl :: RemoteCtrlId -> CM ()
checkNoRemoteCtrlSession :: CM ()

-- | Transition controller to a new state, unless session update key is
--   stale
updateRemoteCtrlSession :: SessionSeq -> (RemoteCtrlSession -> Either ChatError RemoteCtrlSession) -> CM ()
utf8String :: [Char] -> ByteString

module Simplex.Chat.Library.Internal
maxMsgReactions :: Int
maxRcvMentions :: Int
maxSndMentions :: Int
withChatLock :: Text -> CM a -> CM a
withEntityLock :: Text -> ChatLockEntity -> CM a -> CM a
withInvitationLock :: Text -> ByteString -> CM a -> CM a
withConnectionLock :: Text -> Int64 -> CM a -> CM a
withContactLock :: Text -> ContactId -> CM a -> CM a
withGroupLock :: Text -> GroupId -> CM a -> CM a
withUserContactLock :: Text -> Int64 -> CM a -> CM a
withContactRequestLock :: Text -> Int64 -> CM a -> CM a
withFileLock :: Text -> Int64 -> CM a -> CM a
useServerCfgs :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> RandomAgentServers -> [(Text, ServerOperator)] -> [UserServer p] -> NonEmpty (ServerCfg p)
contactCITimed :: Contact -> CM (Maybe CITimed)
sndContactCITimed :: Bool -> Contact -> Maybe Int -> CM (Maybe CITimed)
sndGroupCITimed :: Bool -> GroupInfo -> Maybe Int -> CM (Maybe CITimed)
sndCITimed_ :: Bool -> Maybe (Maybe Int) -> Maybe Int -> CM (Maybe CITimed)
callTimed :: Contact -> ACIContent -> CM (Maybe CITimed)
toggleNtf :: GroupMember -> Bool -> CM ()
prepareGroupMsg :: Connection -> User -> GroupInfo -> Maybe MsgScope -> MsgContent -> Map MemberName MsgMention -> Maybe ChatItemId -> Maybe CIForwardedFrom -> Maybe FileInvitation -> Maybe CITimed -> Bool -> ExceptT StoreError IO (ChatMsgEvent 'Json, Maybe (CIQuote 'CTGroup))
updatedMentionNames :: MsgContent -> Maybe MarkdownList -> Map MemberName CIMention -> (MsgContent, Maybe MarkdownList, Map MemberName CIMention)
getCIMentions :: Connection -> User -> GroupInfo -> Maybe MarkdownList -> Map MemberName GroupMemberId -> ExceptT StoreError IO (Map MemberName CIMention)
getRcvCIMentions :: Connection -> User -> GroupInfo -> Maybe MarkdownList -> Map MemberName MsgMention -> IO (Map MemberName CIMention)
uniqueMsgMentions :: Int -> Map MemberName MsgMention -> [ContactName] -> Map MemberName MsgMention
getMessageMentions :: Connection -> User -> GroupId -> Text -> IO (Map MemberName GroupMemberId)
msgContentTexts :: MsgContent -> (Text, Maybe MarkdownList)
ciContentTexts :: forall (d :: MsgDirection). CIContent d -> (Text, Maybe MarkdownList)
quoteContent :: forall (d :: MsgDirection). MsgContent -> MsgContent -> Maybe (CIFile d) -> MsgContent
prohibitedGroupContent :: GroupInfo -> GroupMember -> Maybe GroupChatScopeInfo -> MsgContent -> Maybe MarkdownList -> Maybe f -> Bool -> Maybe GroupFeature
prohibitedSimplexLinks :: GroupInfo -> GroupMember -> Maybe MarkdownList -> Bool
ftIsSimplexLink :: FormattedText -> Bool
roundedFDCount :: Int -> Int
xftpSndFileTransfer_ :: User -> CryptoFile -> Integer -> Int -> Maybe ContactOrGroup -> CM (FileInvitation, CIFile 'MDSnd, FileTransferMeta)
xftpSndFileRedirect :: User -> FileTransferId -> ValidFileDescription 'FRecipient -> CM FileTransferMeta
dummyFileDescr :: FileDescr
cancelFilesInProgress :: User -> [CIFileInfo] -> CM ()
deleteFilesLocally :: [CIFileInfo] -> CM ()
deleteDirectCIs :: User -> Contact -> [CChatItem 'CTDirect] -> CM [ChatItemDeletion]
deleteGroupCIs :: User -> GroupInfo -> Maybe GroupChatScopeInfo -> [CChatItem 'CTGroup] -> Maybe GroupMember -> UTCTime -> CM [ChatItemDeletion]
updateACIGroupInfo :: GroupInfo -> AChatItem -> AChatItem
deleteGroupMemberCIs :: forall (d :: MsgDirection). MsgDirectionI d => User -> GroupInfo -> GroupMember -> GroupMember -> SMsgDirection d -> CM ()
deleteGroupMembersCIs :: User -> GroupInfo -> [GroupMember] -> GroupMember -> CM ()
deleteGroupMemberCIs_ :: forall (d :: MsgDirection). MsgDirectionI d => Connection -> User -> GroupInfo -> GroupMember -> GroupMember -> SMsgDirection d -> UTCTime -> IO [CIFileInfo]
deleteLocalCIs :: User -> NoteFolder -> [CChatItem 'CTLocal] -> Bool -> Bool -> CM ChatResponse
deleteCIFiles :: User -> [CIFileInfo] -> CM ()
markDirectCIsDeleted :: User -> Contact -> [CChatItem 'CTDirect] -> UTCTime -> CM [ChatItemDeletion]
markGroupCIsDeleted :: User -> GroupInfo -> Maybe GroupChatScopeInfo -> [CChatItem 'CTGroup] -> Maybe GroupMember -> UTCTime -> CM [ChatItemDeletion]
markGroupMemberCIsDeleted :: User -> GroupInfo -> GroupMember -> GroupMember -> CM ()
markGroupMembersCIsDeleted :: User -> GroupInfo -> [GroupMember] -> GroupMember -> CM ()
markGroupMemberCIsDeleted_ :: Connection -> User -> GroupInfo -> GroupMember -> GroupMember -> UTCTime -> IO [CIFileInfo]
groupDeletion :: forall (d :: MsgDirection). MsgDirectionI d => SMsgDirection d -> GroupInfo -> Maybe GroupChatScopeInfo -> ChatItem 'CTGroup d -> Maybe (ChatItem 'CTGroup d) -> ChatItemDeletion
contactDeletion :: forall (d :: MsgDirection). MsgDirectionI d => SMsgDirection d -> Contact -> ChatItem 'CTDirect d -> Maybe (ChatItem 'CTDirect d) -> ChatItemDeletion
updateCallItemStatus :: User -> Contact -> Call -> WebRTCCallStatus -> Maybe MessageId -> CM ()
updateDirectChatItemView :: User -> Contact -> ChatItemId -> ACIContent -> Bool -> Bool -> Maybe CITimed -> Maybe MessageId -> CM ()
callStatusItemContent :: User -> Contact -> ChatItemId -> WebRTCCallStatus -> CM (Maybe ACIContent)
toFSFilePath :: FilePath -> CM' FilePath
setFileToEncrypt :: RcvFileTransfer -> CM RcvFileTransfer
receiveFile' :: User -> RcvFileTransfer -> Bool -> Maybe Bool -> Maybe FilePath -> CM ChatResponse
receiveFileEvt' :: User -> RcvFileTransfer -> Bool -> Maybe Bool -> Maybe FilePath -> CM ChatEvent
rctFileCancelled :: ChatError -> Bool
acceptFileReceive :: User -> RcvFileTransfer -> Bool -> Maybe Bool -> Maybe FilePath -> CM AChatItem
receiveViaCompleteFD :: User -> FileTransferId -> RcvFileDescr -> Bool -> Maybe CryptoFileArgs -> CM ()
cleanupACIFile :: AChatItem -> CM ()
getKnownAgentServers :: forall (p :: ProtocolType). (ProtocolTypeI p, UserProtocol p) => SProtocolType p -> User -> CM (NonEmpty (ServerCfg p))
protoServer' :: forall (p :: ProtocolType). ServerCfg p -> ProtocolServer p
getNetworkConfig :: CM' NetworkConfig
resetRcvCIFileStatus :: User -> FileTransferId -> CIFileStatus 'MDRcv -> CM (Maybe AChatItem)
receiveViaURI :: User -> FileDescriptionURI -> CryptoFile -> CM RcvFileTransfer
startReceivingFile :: User -> FileTransferId -> CM ()
getRcvFilePath :: FileTransferId -> Maybe FilePath -> String -> Bool -> CM FilePath
acceptContactRequest :: NetworkRequestMode -> User -> UserContactRequest -> IncognitoEnabled -> CM (Contact, Connection, SndQueueSecured)
acceptContactRequestAsync :: User -> Int64 -> Contact -> UserContactRequest -> Maybe IncognitoProfile -> CM Contact
acceptGroupJoinRequestAsync :: User -> Int64 -> GroupInfo -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe SharedMsgId -> GroupAcceptance -> GroupMemberRole -> Maybe IncognitoProfile -> CM GroupMember
acceptGroupJoinSendRejectAsync :: User -> Int64 -> GroupInfo -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> GroupRejectionReason -> CM GroupMember
acceptBusinessJoinRequestAsync :: User -> Int64 -> GroupInfo -> GroupMember -> UserContactRequest -> CM (GroupInfo, GroupMember)
businessGroupProfile :: Profile -> GroupPreferences -> GroupProfile
introduceToModerators :: VersionRangeChat -> User -> GroupInfo -> GroupMember -> CM ()
introduceToAll :: VersionRangeChat -> User -> GroupInfo -> GroupMember -> CM ()
introduceToRemaining :: VersionRangeChat -> User -> GroupInfo -> GroupMember -> CM ()
shouldIntroduce :: GroupMember -> ByteString -> GroupMember -> Bool
introduceMember :: User -> GroupInfo -> GroupMember -> [GroupMember] -> Maybe MsgScope -> CM ()
userProfileInGroup :: User -> GroupInfo -> Maybe Profile -> Profile
userProfileInGroup' :: User -> Bool -> Maybe Profile -> Profile
memberInfo :: GroupInfo -> GroupMember -> MemberInfo
redactedMemberProfile :: Bool -> Profile -> Profile
sendHistory :: User -> GroupInfo -> GroupMember -> CM ()
memberShortenedName :: GroupMember -> ContactName
splitFileDescr :: Int -> RcvFileDescrText -> NonEmpty FileDescr
setGroupLinkData' :: NetworkRequestMode -> User -> GroupInfo -> CM ()
setGroupLinkData :: NetworkRequestMode -> User -> GroupInfo -> GroupLink -> CM GroupLink
encodeShortLinkData :: ToJSON a => a -> UserLinkData
decodeShortLinkData :: forall a (c :: ConnectionMode). FromJSON a => ConnLinkData c -> IO (Maybe a)
shortenShortLink' :: forall (m :: ConnectionMode). ConnShortLink m -> CM (ConnShortLink m)
shortenCreatedLink :: forall (m :: ConnectionMode). CreatedConnLink m -> CM (CreatedConnLink m)
createdGroupLink :: CreatedLinkContact -> CreatedLinkContact
toShortGroupLink :: ShortLinkContact -> ShortLinkContact
deleteGroupLink' :: User -> GroupInfo -> CM ()
deleteGroupLinkIfExists :: User -> GroupInfo -> CM ()
deleteGroupLink_ :: User -> GroupInfo -> Connection -> CM ()
startProximateTimedItemThread :: User -> (ChatRef, ChatItemId) -> UTCTime -> CM ()
startTimedItemThread :: User -> (ChatRef, ChatItemId) -> UTCTime -> CM ()
deleteTimedItem :: User -> (ChatRef, ChatItemId) -> UTCTime -> CM ()
startUpdatedTimedItemThread :: forall (c :: ChatType) (d :: MsgDirection). User -> ChatRef -> ChatItem c d -> ChatItem c d -> CM ()
metaBrokerTs :: MsgMeta -> UTCTime
createContactPQSndItem :: User -> Contact -> Connection -> PQEncryption -> CM (Contact, Connection)
updateContactPQRcv :: User -> Contact -> Connection -> PQEncryption -> CM (Contact, Connection)
updatePeerChatVRange :: Connection -> VersionRangeChat -> CM Connection
updateMemberChatVRange :: GroupMember -> Connection -> VersionRangeChat -> CM (GroupMember, Connection)
upgradedConnVersion :: VersionChat -> VersionRangeChat -> CM' VersionChat
parseFileDescription :: forall (p :: FileParty). FilePartyI p => Text -> CM (ValidFileDescription p)
sendDirectFileInline :: User -> Contact -> FileTransferMeta -> SharedMsgId -> CM ()
sendMemberFileInline :: GroupMember -> Connection -> FileTransferMeta -> SharedMsgId -> CM ()
sendFileInline_ :: FileTransferMeta -> SharedMsgId -> (ChatMsgEvent 'Binary -> CM (SndMessage, Int64)) -> CM Int64
parseChatMessage :: Connection -> ByteString -> CM (ChatMessage 'Json)
getChatScopeInfo :: VersionRangeChat -> User -> GroupChatScope -> CM GroupChatScopeInfo
getGroupRecipients :: VersionRangeChat -> User -> GroupInfo -> Maybe GroupChatScopeInfo -> VersionChat -> CM [GroupMember]
mkLocalGroupChatScope :: GroupInfo -> CM (GroupInfo, Maybe GroupChatScopeInfo)
mkGroupChatScope :: GroupInfo -> GroupMember -> CM (GroupInfo, GroupMember, Maybe GroupChatScopeInfo)
mkGetMessageChatScope :: VersionRangeChat -> User -> GroupInfo -> GroupMember -> MsgContent -> Maybe MsgScope -> CM (GroupInfo, GroupMember, Maybe GroupChatScopeInfo)
mkGroupSupportChatInfo :: GroupInfo -> CM (GroupInfo, GroupChatScopeInfo)
mkMemberSupportChatInfo :: GroupMember -> CM (GroupMember, GroupChatScopeInfo)
appendFileChunk :: RcvFileTransfer -> Integer -> ByteString -> Bool -> CM ()
getFileHandle :: Int64 -> FilePath -> (ChatController -> TVar (Map Int64 Handle)) -> IOMode -> CM Handle
isFileActive :: Int64 -> (ChatController -> TVar (Map Int64 Handle)) -> CM Bool
cancelRcvFileTransfer :: User -> RcvFileTransfer -> CM ()
cancelSndFile :: User -> FileTransferMeta -> [SndFileTransfer] -> Bool -> CM ()
cancelSndFileTransfer :: User -> SndFileTransfer -> Bool -> CM ()
closeFileHandle :: Int64 -> (ChatController -> TVar (Map Int64 Handle)) -> CM' ()
deleteMembersConnections :: User -> [GroupMember] -> CM ()
deleteMembersConnections' :: User -> [GroupMember] -> Bool -> CM ()
deleteMemberConnection :: GroupMember -> CM ()
deleteMemberConnection' :: GroupMember -> Bool -> CM ()
deleteOrUpdateMemberRecord :: User -> GroupInfo -> GroupMember -> CM GroupInfo
deleteOrUpdateMemberRecordIO :: Connection -> User -> GroupInfo -> GroupMember -> IO GroupInfo
updateMemberRecordDeleted :: User -> GroupInfo -> GroupMember -> GroupMemberStatus -> CM GroupInfo
deleteSupportChatIfExists :: Connection -> User -> GroupInfo -> GroupMember -> IO (GroupInfo, GroupMember)
sendDirectContactMessages :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Contact -> NonEmpty (ChatMsgEvent e) -> CM [Either ChatError SndMessage]
sendDirectContactMessages' :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Contact -> NonEmpty (ChatMsgEvent e) -> CM [Either ChatError SndMessage]
sendDirectContactMessage :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Contact -> ChatMsgEvent e -> CM (SndMessage, Int64)
contactSendConn_ :: Contact -> Either ChatError Connection
sendDirectMemberMessage :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> ChatMsgEvent e -> GroupId -> CM (SndMessage, Int64, PQEncryption)
sendDirectMessage_ :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> ChatMsgEvent e -> ConnOrGroupId -> CM (SndMessage, Int64, PQEncryption)
createSndMessage :: forall (e :: MsgEncoding). MsgEncodingI e => ChatMsgEvent e -> ConnOrGroupId -> CM SndMessage
createSndMessages :: forall (e :: MsgEncoding) t. (MsgEncodingI e, Traversable t) => t (ConnOrGroupId, ChatMsgEvent e) -> CM' (t (Either ChatError SndMessage))
sendGroupMemberMessages :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Connection -> NonEmpty (ChatMsgEvent e) -> GroupId -> CM ()
batchSendConnMessages :: User -> Connection -> MsgFlags -> NonEmpty SndMessage -> CM ([Either ChatError SndMessage], Maybe PQEncryption)
batchSendConnMessagesB :: User -> Connection -> MsgFlags -> NonEmpty (Either ChatError SndMessage) -> CM ([Either ChatError SndMessage], Maybe PQEncryption)
batchSndMessagesJSON :: NonEmpty (Either ChatError SndMessage) -> [Either ChatError MsgBatch]
encodeConnInfo :: forall (e :: MsgEncoding). MsgEncodingI e => ChatMsgEvent e -> CM ByteString
encodeConnInfoPQ :: forall (e :: MsgEncoding). MsgEncodingI e => PQSupport -> VersionChat -> ChatMsgEvent e -> CM ByteString
deliverMessage :: forall (e :: MsgEncoding). Connection -> CMEventTag e -> MsgBody -> MessageId -> CM (Int64, PQEncryption)
deliverMessage' :: Connection -> MsgFlags -> MsgBody -> MessageId -> CM (Int64, PQEncryption)
type ChatMsgReq = (Connection, MsgFlags, (ValueOrRef MsgBody, [MessageId]))
deliverMessages :: NonEmpty ChatMsgReq -> CM (NonEmpty (Either ChatError ([Int64], PQEncryption)))
deliverMessagesB :: NonEmpty (Either ChatError ChatMsgReq) -> CM (NonEmpty (Either ChatError ([Int64], PQEncryption)))
sendGroupMessage :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupInfo -> Maybe GroupChatScope -> [GroupMember] -> ChatMsgEvent e -> CM SndMessage
sendGroupMessage' :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupInfo -> [GroupMember] -> ChatMsgEvent e -> CM SndMessage
sendGroupMessages :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupInfo -> Maybe GroupChatScope -> [GroupMember] -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult)
data GroupSndResult
GroupSndResult :: [(GroupMemberId, Either ChatError [MessageId], Either ChatError ([Int64], PQEncryption))] -> [(GroupMemberId, Either ChatError MessageId, Either ChatError ())] -> [GroupMember] -> GroupSndResult
[sentTo] :: GroupSndResult -> [(GroupMemberId, Either ChatError [MessageId], Either ChatError ([Int64], PQEncryption))]
[pending] :: GroupSndResult -> [(GroupMemberId, Either ChatError MessageId, Either ChatError ())]
[forwarded] :: GroupSndResult -> [GroupMember]
sendGroupMessages_ :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupInfo -> [GroupMember] -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult)
data MemberSendAction
MSASend :: Connection -> MemberSendAction
MSASendBatched :: Connection -> MemberSendAction
MSAPending :: MemberSendAction
MSAForwarded :: MemberSendAction
memberSendAction :: forall (e :: MsgEncoding). GroupInfo -> NonEmpty (ChatMsgEvent e) -> [GroupMember] -> GroupMember -> Maybe MemberSendAction
readyMemberConn :: GroupMember -> Maybe (GroupMemberId, Connection)
sendGroupMemberMessage :: forall (e :: MsgEncoding). MsgEncodingI e => GroupInfo -> GroupMember -> ChatMsgEvent e -> CM ()
sendPendingGroupMessages :: User -> GroupMember -> Connection -> CM ()
saveDirectRcvMSG :: forall (e :: MsgEncoding). MsgEncodingI e => Connection -> MsgMeta -> MsgBody -> ChatMessage e -> CM (Connection, RcvMessage)
saveGroupRcvMsg :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupId -> GroupMember -> Connection -> MsgMeta -> MsgBody -> ChatMessage e -> CM (GroupMember, Connection, RcvMessage)
saveGroupFwdRcvMsg :: forall (e :: MsgEncoding). MsgEncodingI e => User -> GroupInfo -> GroupMember -> GroupMember -> MsgBody -> ChatMessage e -> UTCTime -> CM (Maybe RcvMessage)
saveSndChatItem :: forall (c :: ChatType). ChatTypeI c => User -> ChatDirection c 'MDSnd -> SndMessage -> CIContent 'MDSnd -> CM (ChatItem c 'MDSnd)
saveSndChatItem' :: forall (c :: ChatType). ChatTypeI c => User -> ChatDirection c 'MDSnd -> SndMessage -> CIContent 'MDSnd -> Maybe (CIFile 'MDSnd) -> Maybe (CIQuote c) -> Maybe CIForwardedFrom -> Maybe CITimed -> Bool -> CM (ChatItem c 'MDSnd)
data NewSndChatItemData (c :: ChatType)
NewSndChatItemData :: SndMessage -> CIContent 'MDSnd -> (Text, Maybe MarkdownList) -> Map MemberName CIMention -> Maybe (CIFile 'MDSnd) -> Maybe (CIQuote c) -> Maybe CIForwardedFrom -> NewSndChatItemData (c :: ChatType)
[msg] :: NewSndChatItemData (c :: ChatType) -> SndMessage
[content] :: NewSndChatItemData (c :: ChatType) -> CIContent 'MDSnd
[itemTexts] :: NewSndChatItemData (c :: ChatType) -> (Text, Maybe MarkdownList)
[itemMentions] :: NewSndChatItemData (c :: ChatType) -> Map MemberName CIMention
[ciFile] :: NewSndChatItemData (c :: ChatType) -> Maybe (CIFile 'MDSnd)
[quotedItem] :: NewSndChatItemData (c :: ChatType) -> Maybe (CIQuote c)
[itemForwarded] :: NewSndChatItemData (c :: ChatType) -> Maybe CIForwardedFrom
saveSndChatItems :: forall (c :: ChatType). ChatTypeI c => User -> ChatDirection c 'MDSnd -> [Either ChatError (NewSndChatItemData c)] -> Maybe CITimed -> Bool -> CM [Either ChatError (ChatItem c 'MDSnd)]
saveRcvChatItemNoParse :: forall (c :: ChatType). (ChatTypeI c, ChatTypeQuotable c) => User -> ChatDirection c 'MDRcv -> RcvMessage -> UTCTime -> CIContent 'MDRcv -> CM (ChatItem c 'MDRcv, ChatInfo c)
saveRcvChatItem :: forall (c :: ChatType). (ChatTypeI c, ChatTypeQuotable c) => User -> ChatDirection c 'MDRcv -> RcvMessage -> UTCTime -> (CIContent 'MDRcv, (Text, Maybe MarkdownList)) -> CM (ChatItem c 'MDRcv, ChatInfo c)
ciContentNoParse :: CIContent 'MDRcv -> (CIContent 'MDRcv, (Text, Maybe MarkdownList))
saveRcvChatItem' :: forall (c :: ChatType). (ChatTypeI c, ChatTypeQuotable c) => User -> ChatDirection c 'MDRcv -> RcvMessage -> Maybe SharedMsgId -> UTCTime -> (CIContent 'MDRcv, (Text, Maybe MarkdownList)) -> Maybe (CIFile 'MDRcv) -> Maybe CITimed -> Bool -> Map MemberName MsgMention -> CM (ChatItem c 'MDRcv, ChatInfo c)
mkChatItem :: forall (c :: ChatType) (d :: MsgDirection). (ChatTypeI c, MsgDirectionI d) => ChatDirection c d -> ShowGroupAsSender -> ChatItemId -> CIContent d -> Maybe (CIFile d) -> Maybe (CIQuote c) -> Maybe SharedMsgId -> Maybe CIForwardedFrom -> Maybe CITimed -> Bool -> Bool -> ChatItemTs -> Maybe GroupMemberId -> UTCTime -> ChatItem c d
mkChatItem_ :: forall (c :: ChatType) (d :: MsgDirection). (ChatTypeI c, MsgDirectionI d) => ChatDirection c d -> ShowGroupAsSender -> ChatItemId -> CIContent d -> (Text, Maybe MarkdownList) -> Maybe (CIFile d) -> Maybe (CIQuote c) -> Maybe SharedMsgId -> Maybe CIForwardedFrom -> Maybe CITimed -> Bool -> Bool -> ChatItemTs -> Maybe GroupMemberId -> UTCTime -> ChatItem c d
createAgentConnectionAsync :: forall (c :: ConnectionMode). ConnectionModeI c => User -> CommandFunction -> Bool -> SConnectionMode c -> SubscriptionMode -> CM (CommandId, ConnId)
joinAgentConnectionAsync :: forall (c :: ConnectionMode). User -> Bool -> ConnectionRequestUri c -> ConnInfo -> SubscriptionMode -> CM (CommandId, ConnId)
allowAgentConnectionAsync :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Connection -> ConfirmationId -> ChatMsgEvent e -> CM ()
agentAcceptContactAsync :: forall (e :: MsgEncoding). MsgEncodingI e => User -> Bool -> InvitationId -> ChatMsgEvent e -> SubscriptionMode -> PQSupport -> VersionChat -> CM (CommandId, ConnId)
deleteAgentConnectionAsync :: ConnId -> CM ()
deleteAgentConnectionAsync' :: ConnId -> Bool -> CM ()
deleteAgentConnectionsAsync :: [ConnId] -> CM ()
deleteAgentConnectionsAsync' :: [ConnId] -> Bool -> CM ()
agentXFTPDeleteRcvFile :: RcvFileId -> FileTransferId -> CM ()
agentXFTPDeleteRcvFiles :: [(XFTPRcvFile, FileTransferId)] -> CM' ()
agentXFTPDeleteSndFileRemote :: User -> XFTPSndFile -> FileTransferId -> CM' ()
agentXFTPDeleteSndFilesRemote :: User -> [(XFTPSndFile, FileTransferId)] -> CM' ()
connRequestPQEncryption :: forall (c :: ConnectionMode). ConnectionRequestUri c -> Maybe PQEncryption
createRcvFeatureItems :: User -> Contact -> Contact -> CM' ()
createSndFeatureItems :: User -> Contact -> Contact -> CM' ()
createContactChangedFeatureItems :: User -> Contact -> Contact -> CM' ()
type FeatureContent a (d :: MsgDirection) = ChatFeature -> a -> Maybe Int -> CIContent d
createFeatureEnabledItems :: User -> Contact -> CM ()
createFeatureEnabledItems_ :: User -> Contact -> CM [AChatItem]
createFeatureItems :: forall (d :: MsgDirection). MsgDirectionI d => User -> Contact -> Contact -> (Contact -> ChatDirection 'CTDirect d) -> FeatureContent PrefEnabled d -> FeatureContent FeatureAllowed d -> (forall (f :: ChatFeature). () => ContactUserPreference (FeaturePreference f) -> FeaturePreference f) -> CM' ()
createContactsFeatureItems :: forall (d :: MsgDirection). MsgDirectionI d => User -> [(Contact, Contact)] -> (Contact -> ChatDirection 'CTDirect d) -> FeatureContent PrefEnabled d -> FeatureContent FeatureAllowed d -> (forall (f :: ChatFeature). () => ContactUserPreference (FeaturePreference f) -> FeaturePreference f) -> CM' ()
createGroupFeatureChangedItems :: forall (d :: MsgDirection). MsgDirectionI d => User -> ChatDirection 'CTGroup d -> (GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent d) -> GroupInfo -> GroupInfo -> CM ()
sameGroupProfileInfo :: GroupProfile -> GroupProfile -> Bool
createGroupFeatureItems :: forall (d :: MsgDirection). MsgDirectionI d => User -> ChatDirection 'CTGroup d -> (GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent d) -> GroupInfo -> CM ()
createGroupFeatureItems_ :: forall (d :: MsgDirection). MsgDirectionI d => User -> ChatDirection 'CTGroup d -> ShowGroupAsSender -> (GroupFeature -> GroupPreference -> Maybe Int -> Maybe GroupMemberRole -> CIContent d) -> GroupInfo -> CM [AChatItem]
createInternalChatItem :: forall (c :: ChatType) (d :: MsgDirection). (ChatTypeI c, MsgDirectionI d) => User -> ChatDirection c d -> CIContent d -> Maybe UTCTime -> CM ()
createChatItem :: forall (c :: ChatType) (d :: MsgDirection). (ChatTypeI c, MsgDirectionI d) => User -> ChatDirection c d -> ShowGroupAsSender -> CIContent d -> Maybe SharedMsgId -> Maybe UTCTime -> CM AChatItem
createChatItems :: forall (c :: ChatType) (d :: MsgDirection). (ChatTypeI c, MsgDirectionI d) => User -> Maybe UTCTime -> [(ChatDirection c d, ShowGroupAsSender, [(CIContent d, Maybe SharedMsgId)])] -> CM' [Either ChatError AChatItem]
memberAttentionChange :: Int -> Maybe UTCTime -> GroupMember -> GroupChatScopeInfo -> MemberAttention
createLocalChatItems :: User -> ChatDirection 'CTLocal 'MDSnd -> NonEmpty (CIContent 'MDSnd, Maybe (CIFile 'MDSnd), Maybe CIForwardedFrom, (Text, Maybe MarkdownList)) -> UTCTime -> CM [ChatItem 'CTLocal 'MDSnd]
withUser' :: (User -> CM ChatResponse) -> CM ChatResponse
withUser :: (User -> CM ChatResponse) -> CM ChatResponse
withUser_ :: CM ChatResponse -> CM ChatResponse
withUserId' :: UserId -> (User -> CM ChatResponse) -> CM ChatResponse
withUserId :: UserId -> (User -> CM ChatResponse) -> CM ChatResponse
checkSameUser :: UserId -> User -> CM ()
chatStarted :: CM' Bool
waitChatStartedAndActivated :: CM' ()
chatVersionRange :: CM VersionRangeChat
chatVersionRange' :: CM' VersionRangeChat
adminContactReq :: ConnReqContact
simplexTeamContactProfile :: Profile
simplexStatusContactProfile :: Profile
timeItToView :: String -> CM' a -> CM' a
epochStart :: UTCTime

module Simplex.Chat.Library.Subscriber
smallGroupsRcptsMemLimit :: Int
processAgentMessage :: ACorrId -> ConnId -> AEvent 'AEConn -> CM ()
critical :: ConnId -> CM a -> CM a
processAgentMessageNoConn :: AEvent 'AENone -> CM ()
processAgentMsgSndFile :: ACorrId -> SndFileId -> AEvent 'AESndFile -> CM ()
agentFileError :: AgentErrorType -> FileError
processAgentMsgRcvFile :: ACorrId -> RcvFileId -> AEvent 'AERcvFile -> CM ()
type ShouldDeleteGroupConns = Bool
processAgentMessageConn :: VersionRangeChat -> User -> ACorrId -> ConnId -> AEvent 'AEConn -> CM ()
deleteGroupConnections :: User -> GroupInfo -> Bool -> CM ()
startDeliveryTaskWorkers :: CM ()
resumeDeliveryTaskWork :: DeliveryWorkerKey -> CM' ()
getDeliveryTaskWorker :: Bool -> DeliveryWorkerKey -> CM' Worker
runDeliveryTaskWorker :: AgentClient -> DeliveryWorkerKey -> Worker -> CM ()
startDeliveryJobWorkers :: CM ()
resumeDeliveryJobWork :: DeliveryWorkerKey -> CM' ()
getDeliveryJobWorker :: Bool -> DeliveryWorkerKey -> CM' Worker
runDeliveryJobWorker :: AgentClient -> DeliveryWorkerKey -> Worker -> CM ()

module Simplex.Chat.Archive
exportArchive :: ArchiveConfig -> CM' [ArchiveError]
importArchive :: ArchiveConfig -> CM' [ArchiveError]
deleteStorage :: CM ()
sqlCipherExport :: DBEncryptionConfig -> CM ()
sqlCipherTestKey :: DBEncryptionKey -> CM ()

module Simplex.Chat.Library.Commands
_defaultNtfServers :: [NtfServer]
maxImageSize :: Integer
imageExtensions :: [String]
fixedImagePreview :: ImageData
imageFilePrefix :: String
voiceFilePrefix :: String
videoFilePrefix :: String
startChatController :: Bool -> Bool -> CM' (Async ())
getConnsToSub :: User -> CM [ConnId]
subscribeUsers :: Bool -> [User] -> CM' ()
startFilesToReceive :: [User] -> CM' ()
startReceiveUserFiles :: User -> CM ()
restoreCalls :: CM' ()
stopChatController :: ChatController -> IO ()
updateNetworkConfig :: NetworkConfig -> SimpleNetCfg -> NetworkConfig
useServers :: Foldable f => RandomAgentServers -> [(Text, ServerOperator)] -> f UserOperatorServers -> (NonEmpty (ServerCfg 'PSMP), NonEmpty (ServerCfg 'PXFTP))
execChatCommand :: Maybe RemoteHostId -> ByteString -> Int -> CM' (Either ChatError ChatResponse)
execChatCommand' :: ChatCommand -> Int -> CM' (Either ChatError ChatResponse)
execRemoteCommand :: RemoteHostId -> ChatCommand -> ByteString -> Int -> CM' (Either ChatError ChatResponse)
handleCommandError :: CM ChatResponse -> CM' (Either ChatError ChatResponse)
parseChatCommand :: ByteString -> Either String ChatCommand

-- | Chat API commands interpreted in context of a local zone
processChatCommand :: VersionRangeChat -> NetworkRequestMode -> ChatCommand -> CM ChatResponse
data ConnectViaContactResult
CVRConnectedContact :: Contact -> ConnectViaContactResult
CVRSentInvitation :: Connection -> Maybe Profile -> ConnectViaContactResult
protocolServers :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> ([Maybe ServerOperator], [UserServer 'PSMP], [UserServer 'PXFTP]) -> ([Maybe ServerOperator], [UserServer 'PSMP], [UserServer 'PXFTP])
updatedServers :: forall (p :: ProtocolType). UserProtocol p => SProtocolType p -> [AUserServer p] -> UserOperatorServers -> UpdatedUserOperatorServers
type ComposedMessageReq = (ComposedMessage, Maybe CIForwardedFrom, (Text, Maybe MarkdownList), Map MemberName CIMention)
composedMessage :: Maybe CryptoFile -> MsgContent -> ComposedMessage
composedMessageReq :: ComposedMessage -> ComposedMessageReq
composedMessageReqMentions :: Connection -> User -> GroupInfo -> ComposedMessage -> ExceptT StoreError IO ComposedMessageReq
data ChangedProfileContact
ChangedProfileContact :: Contact -> Contact -> Profile -> Connection -> ChangedProfileContact
[ct] :: ChangedProfileContact -> Contact
[ct'] :: ChangedProfileContact -> Contact
[mergedProfile'] :: ChangedProfileContact -> Profile
[conn] :: ChangedProfileContact -> Connection
createContactsSndFeatureItems :: User -> [ChangedProfileContact] -> CM' ()
assertDirectAllowed :: forall (e :: MsgEncoding). User -> MsgDirection -> Contact -> CMEventTag e -> CM ()
startExpireCIThread :: User -> CM' ()
setChatItemsExpiration :: User -> Int64 -> Int -> CM' ()
setExpireCIFlag :: User -> Bool -> CM' ()
setAllExpireCIFlags :: Bool -> CM' ()
agentSubscriber :: CM' ()
type AgentSubResult = Map ConnId Either AgentErrorType Maybe ClientServiceId
cleanupManager :: CM ()
expireChatItems :: User -> Int64 -> Bool -> CM ()
expireContactChatItems :: User -> VersionRangeChat -> Int64 -> ContactId -> CM ()
expireGroupChatItems :: User -> VersionRangeChat -> Int64 -> UTCTime -> GroupId -> CM ()
withExpirationDate :: Int64 -> Maybe Int64 -> (UTCTime -> CM ()) -> CM ()
chatCommandP :: Parser ChatCommand
displayNameP :: Parser Text
displayNameP_ :: Parser ByteString
mkValidName :: String -> String

module Simplex.Chat.Bot.KnownContacts
data KnownContact
KnownContact :: Int64 -> Text -> KnownContact
[contactId] :: KnownContact -> Int64
[localDisplayName] :: KnownContact -> Text
data KnownGroup
KnownGroup :: Int64 -> Text -> KnownGroup
[groupId] :: KnownGroup -> Int64
[localDisplayName] :: KnownGroup -> Text
knownContactNames :: [KnownContact] -> Text
parseKnownContacts :: ReadM [KnownContact]
knownContactsP :: Parser [KnownContact]
parseKnownGroup :: ReadM KnownGroup
knownGroupP :: Parser KnownGroup
instance GHC.Classes.Eq Simplex.Chat.Bot.KnownContacts.KnownContact

module Simplex.Chat
defaultChatConfig :: ChatConfig
logCfg :: LogConfig
createChatDatabase :: ChatDbOpts -> MigrationConfig -> IO (Either MigrationError ChatDatabase)
newChatController :: ChatDatabase -> Maybe User -> ChatConfig -> ChatOpts -> Bool -> IO ChatController
chooseRandomServers :: PresetServers -> IO (NonEmpty PresetOperator)
toJustOrError :: String -> Maybe a -> IO a

module Simplex.Chat.Mobile
data DBMigrationResult
DBMOk :: DBMigrationResult
DBMInvalidConfirmation :: DBMigrationResult
DBMErrorNotADatabase :: String -> DBMigrationResult
[dbFile] :: DBMigrationResult -> String
DBMErrorMigration :: String -> MigrationError -> DBMigrationResult
[dbFile] :: DBMigrationResult -> String
[migrationError] :: DBMigrationResult -> MigrationError
DBMErrorSQL :: String -> String -> DBMigrationResult
[dbFile] :: DBMigrationResult -> String
[migrationSQLError] :: DBMigrationResult -> String
data APIResult r
APIResult :: Maybe RemoteHostId -> r -> APIResult r
[remoteHostId] :: APIResult r -> Maybe RemoteHostId
[result] :: APIResult r -> r
APIError :: Maybe RemoteHostId -> ChatError -> APIResult r
[remoteHostId] :: APIResult r -> Maybe RemoteHostId
[error] :: APIResult r -> ChatError
eitherToResult :: Maybe RemoteHostId -> Either ChatError r -> APIResult r
data ParsedUri
ParsedUri :: Maybe UriInfo -> Text -> ParsedUri
[uriInfo] :: ParsedUri -> Maybe UriInfo
[parseError] :: ParsedUri -> Text
data UriInfo
UriInfo :: Text -> Maybe Text -> UriInfo
[scheme] :: UriInfo -> Text
[sanitized] :: UriInfo -> Maybe Text

-- | check / migrate database and initialize chat controller on success For
--   postgres first param is schema prefix, second param is database
--   connection string.
cChatMigrateInit :: CString -> CString -> CString -> Ptr (StablePtr ChatController) -> IO CJSONString
cChatMigrateInitKey :: CString -> CString -> CInt -> CString -> CInt -> Ptr (StablePtr ChatController) -> IO CJSONString
cChatCloseStore :: StablePtr ChatController -> IO CString
cChatReopenStore :: StablePtr ChatController -> IO CString

-- | send command to chat
cChatSendCmd :: StablePtr ChatController -> CString -> IO CJSONString

-- | send command to chat with retry count
cChatSendCmdRetry :: StablePtr ChatController -> CString -> CInt -> IO CJSONString

-- | send remote command to chat
cChatSendRemoteCmd :: StablePtr ChatController -> CInt -> CString -> IO CJSONString

-- | send remote command to chat with retry count
cChatSendRemoteCmdRetry :: StablePtr ChatController -> CInt -> CString -> CInt -> IO CJSONString

-- | receive message from chat (blocking)
cChatRecvMsg :: StablePtr ChatController -> IO CJSONString

-- | receive message from chat (blocking up to <tt>t</tt> microseconds
--   (1/10^6 sec), returns empty string if times out)
cChatRecvMsgWait :: StablePtr ChatController -> CInt -> IO CJSONString

-- | parse markdown - returns ParsedMarkdown type JSON
cChatParseMarkdown :: CString -> IO CJSONString

-- | parse server address - returns ParsedServerAddress JSON
cChatParseServer :: CString -> IO CJSONString

-- | parse web URI - returns ParsedUri JSON
cChatParseUri :: CString -> CInt -> IO CJSONString
cChatPasswordHash :: CString -> CString -> IO CString
cChatValidName :: CString -> IO CString

-- | returns length of JSON encoded string
cChatJsonLength :: CString -> IO CInt
mobileChatOpts :: ChatDbOpts -> ChatOpts
defaultMobileConfig :: ChatConfig
getActiveUser_ :: DBStore -> IO (Maybe User)
chatMigrateInit :: String -> ScrubbedBytes -> String -> IO (Either DBMigrationResult ChatController)
chatMigrateInitKey :: ChatDbOpts -> Bool -> String -> Bool -> IO (Either DBMigrationResult ChatController)
chatCloseStore :: ChatController -> IO String
chatReopenStore :: ChatController -> IO String
handleErr :: IO () -> IO String
chatSendCmd :: ChatController -> ByteString -> IO JSONByteString
chatSendRemoteCmdRetry :: ChatController -> Maybe RemoteHostId -> ByteString -> Int -> IO JSONByteString
chatRecvMsg :: ChatController -> IO JSONByteString
chatRecvMsgWait :: ChatController -> Int -> IO JSONByteString
chatParseMarkdown :: ByteString -> JSONByteString
chatParseServer :: ByteString -> JSONByteString
chatParseUri :: Bool -> ByteString -> JSONByteString
chatPasswordHash :: ByteString -> ByteString -> ByteString
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Mobile.ParsedUri
instance Data.Aeson.Types.FromJSON.FromJSON Simplex.Chat.Mobile.UriInfo
instance GHC.Show.Show Simplex.Chat.Mobile.DBMigrationResult
instance Data.Aeson.Types.ToJSON.ToJSON r => Data.Aeson.Types.ToJSON.ToJSON (Simplex.Chat.Mobile.APIResult r)
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Mobile.DBMigrationResult
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Mobile.ParsedUri
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.Mobile.UriInfo

module Simplex.Chat.View
type CurrentTime = UTCTime
data WCallCommand
WCCallStart :: CallMedia -> Maybe String -> Bool -> WCallCommand
[media] :: WCallCommand -> CallMedia
[aesKey] :: WCallCommand -> Maybe String
[useWorker] :: WCallCommand -> Bool
WCCallOffer :: Text -> Text -> CallMedia -> Maybe String -> Bool -> WCallCommand
[offer] :: WCallCommand -> Text
[iceCandidates] :: WCallCommand -> Text
[media] :: WCallCommand -> CallMedia
[aesKey] :: WCallCommand -> Maybe String
[useWorker] :: WCallCommand -> Bool
WCCallAnswer :: Text -> Text -> WCallCommand
[answer] :: WCallCommand -> Text
[iceCandidates] :: WCallCommand -> Text
serializeChatError :: Bool -> ChatConfig -> ChatError -> String
serializeChatResponse :: ChatResponseEvent r => (Maybe RemoteHostId, Maybe User) -> ChatConfig -> CurrentTime -> TimeZone -> Maybe RemoteHostId -> r -> String
class ChatResponseEvent r
responseToView :: ChatResponseEvent r => (Maybe RemoteHostId, Maybe User) -> ChatConfig -> Bool -> CurrentTime -> TimeZone -> Maybe RemoteHostId -> r -> [StyledString]
isCommandResponse :: ChatResponseEvent r => Bool
chatErrorToView :: Bool -> ChatConfig -> ChatError -> [StyledString]
chatResponseToView :: (Maybe RemoteHostId, Maybe User) -> ChatConfig -> Bool -> CurrentTime -> TimeZone -> Maybe RemoteHostId -> ChatResponse -> [StyledString]
ttyUserPrefix :: (Maybe RemoteHostId, Maybe User) -> Maybe RemoteHostId -> User -> [StyledString] -> [StyledString]
viewSubErrorsSummary :: [ConnSubResult] -> [StyledString]
contactList :: [ContactRef] -> String
chatEventToView :: (Maybe RemoteHostId, Maybe User) -> ChatConfig -> Bool -> CurrentTime -> TimeZone -> Maybe RemoteHostId -> ChatEvent -> [StyledString]
userNtf :: User -> Bool
chatDirNtf :: forall (c :: ChatType) (d :: MsgDirection). User -> ChatInfo c -> CIDirection c d -> Bool -> Bool
contactNtf :: User -> Contact -> Bool -> Bool
groupNtf :: User -> GroupInfo -> Bool -> Bool
showMessageNtf :: ChatSettings -> Bool -> Bool
chatItemDeletedText :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> Maybe GroupMember -> Maybe Text
viewUsersList :: [UserInfo] -> [StyledString]
showSMPServer :: SMPServer -> String
viewHostEvent :: AProtocolType -> TransportHost -> String
viewChats :: CurrentTime -> TimeZone -> [AChat] -> [StyledString]
viewChatItems :: (User -> [StyledString] -> [StyledString]) -> (forall (c :: ChatType) (d :: MsgDirection). () => User -> ChatInfo c -> ChatItem c d -> [StyledString] -> [StyledString]) -> User -> [AChatItem] -> UTCTime -> TimeZone -> [StyledString]
viewChatItem :: forall (c :: ChatType) (d :: MsgDirection). MsgDirectionI d => ChatInfo c -> ChatItem c d -> Bool -> CurrentTime -> TimeZone -> [StyledString]
viewChatItemInfo :: AChatItem -> ChatItemInfo -> TimeZone -> [StyledString]
localTs :: TimeZone -> UTCTime -> String
viewChatItemStatusUpdated :: AChatItem -> CurrentTime -> TimeZone -> Bool -> Bool -> [StyledString]
viewDeliveryReceiptPartial :: MsgReceiptStatus -> StyledString
viewDeliveryReceipt :: MsgReceiptStatus -> StyledString
viewItemUpdate :: forall (d :: MsgDirection) (c :: ChatType). MsgDirectionI d => ChatInfo c -> ChatItem c d -> Bool -> CurrentTime -> TimeZone -> [StyledString]
hideLive :: forall (c :: ChatType) (d :: MsgDirection). CIMeta c d -> [StyledString] -> [StyledString]
viewItemNotChanged :: AChatItem -> [StyledString]
viewChatItemsDeleted :: (forall (c :: ChatType) (d :: MsgDirection). () => ChatInfo c -> ChatItem c d -> [StyledString] -> [StyledString]) -> [ChatItemDeletion] -> Bool -> Bool -> UTCTime -> TimeZone -> Bool -> [StyledString]
viewGroupChatItemsDeleted :: GroupInfo -> [ChatItemId] -> Bool -> Maybe GroupMember -> [StyledString]
viewItemDelete :: forall (c :: ChatType) (d :: MsgDirection). ChatInfo c -> ChatItem c d -> Maybe AChatItem -> Bool -> Bool -> CurrentTime -> TimeZone -> Bool -> [StyledString]
viewItemReaction :: forall (c :: ChatType) (d :: MsgDirection). Bool -> ChatInfo c -> CIReaction c d -> Bool -> CurrentTime -> TimeZone -> [StyledString]
viewItemReactions :: forall (c :: ChatType) (d :: MsgDirection). ChatItem c d -> [StyledString]
viewReactionMembers :: [MemberReaction] -> [StyledString]
directQuote :: forall (d' :: MsgDirection). MsgDirectionI d' => CIDirection 'CTDirect d' -> CIQuote 'CTDirect -> [StyledString]
groupQuote :: GroupInfo -> CIQuote 'CTGroup -> [StyledString]
forwardedFrom :: CIForwardedFrom -> [StyledString]
sentByMember :: GroupInfo -> CIQDirection 'CTGroup -> Maybe GroupMember
sentByMember' :: forall (d :: MsgDirection). GroupInfo -> CIDirection 'CTGroup d -> GroupMember
quoteText :: MsgContent -> StyledString -> [StyledString]
msgPreview :: MsgContent -> [StyledString]
viewRcvIntegrityError :: forall (c :: ChatType). StyledString -> MsgErrorType -> CurrentTime -> TimeZone -> CIMeta c 'MDRcv -> [StyledString]
viewMsgIntegrityError :: MsgErrorType -> [StyledString]
viewInvalidConnReq :: [StyledString]
viewConnReqInvitation :: CreatedLinkInvitation -> [StyledString]
simplexChatInvitation :: ConnReqInvitation -> ConnReqInvitation
viewContactNotFound :: ContactName -> Maybe (GroupInfo, GroupMember) -> [StyledString]
viewChatCleared :: AChatInfo -> [StyledString]
viewContactsList :: [Contact] -> [StyledString]
viewUserContactLinkDeleted :: [StyledString]
viewForwardPlan :: Int -> [ChatItemId] -> Maybe ForwardConfirmation -> [StyledString]
connReqContact_ :: StyledString -> CreatedLinkContact -> [StyledString]
simplexChatContact :: ConnReqContact -> ConnReqContact
simplexChatContact' :: ConnLinkContact -> ConnLinkContact
viewAddressSettings :: AddressSettings -> [StyledString]
groupLink_ :: StyledString -> GroupInfo -> GroupLink -> [StyledString]
viewGroupLinkDeleted :: GroupInfo -> [StyledString]
viewSentInvitation :: Maybe Profile -> Bool -> [StyledString]
viewStartedConnectionToContact :: Contact -> Maybe Profile -> Bool -> [StyledString]
viewStartedConnectionToGroup :: GroupInfo -> Maybe Profile -> Bool -> [StyledString]
viewAcceptingContactRequest :: Contact -> [StyledString]
viewAcceptingBusinessRequest :: GroupInfo -> [StyledString]
viewReceivedContactRequest :: ContactName -> Profile -> [StyledString]
viewGroupCreated :: GroupInfo -> Bool -> [StyledString]
viewCannotResendInvitation :: GroupInfo -> ContactName -> [StyledString]
viewDirectMessagesProhibited :: MsgDirection -> Contact -> [StyledString]
viewUserJoinedGroup :: GroupInfo -> [StyledString]
viewJoinedGroupMember :: GroupInfo -> GroupMember -> [StyledString]
viewMemberAccepted :: GroupInfo -> GroupMember -> [StyledString]
viewSupportChatRead :: GroupInfo -> GroupMember -> [StyledString]
viewMemberAcceptedByOther :: GroupInfo -> GroupMember -> GroupMember -> [StyledString]
viewJoinedGroupMemberConnecting :: GroupInfo -> GroupMember -> GroupMember -> [StyledString]
viewConnectedToGroupMember :: GroupInfo -> GroupMember -> [StyledString]
viewReceivedGroupInvitation :: GroupInfo -> Contact -> GroupMemberRole -> [StyledString]
groupPreserved :: GroupInfo -> [StyledString]
connectedMember :: GroupMember -> StyledString
viewMemberRoleChanged :: GroupInfo -> GroupMember -> GroupMember -> GroupMemberRole -> GroupMemberRole -> [StyledString]
viewMemberRoleUserChanged :: GroupInfo -> [GroupMember] -> GroupMemberRole -> [StyledString]
viewMemberBlockedForAll :: GroupInfo -> GroupMember -> GroupMember -> Bool -> [StyledString]
viewMembersBlockedForAllUser :: GroupInfo -> [GroupMember] -> Bool -> [StyledString]
showRole :: GroupMemberRole -> StyledString
viewGroupMembers :: Group -> [StyledString]
viewMemberSupportChats :: GroupInfo -> [GroupMember] -> [StyledString]
viewContactConnected :: Contact -> Maybe Profile -> Bool -> [StyledString]
viewGroupsList :: [GroupInfo] -> [StyledString]
viewSentGroupInvitation :: GroupInfo -> Contact -> [StyledString]
groupInvitation' :: GroupInfo -> StyledString
viewNewMemberContactReceivedInv :: User -> Contact -> GroupInfo -> GroupMember -> [StyledString]
viewContactAndMemberAssociated :: Contact -> GroupInfo -> GroupMember -> Contact -> [StyledString]
viewUserProfile :: Profile -> [StyledString]
viewUserPrivacy :: User -> User -> [StyledString]
viewConnDiffSync :: DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> [StyledString]
viewConnDiffSummary :: DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> [StyledString]
viewConnDiffSummary' :: DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> [StyledString]
viewConnDiffIds :: DatabaseDiff AgentUserId -> DatabaseDiff AgentConnId -> [StyledString]
subStatusStr :: SubscriptionStatus -> String
viewUserServers :: UserOperatorServers -> [StyledString]
serversUserHelp :: [StyledString]
protocolName :: forall (p :: ProtocolType). ProtocolTypeI p => SProtocolType p -> StyledString
viewServerTestResult :: AProtoServerWithAuth -> Maybe ProtocolTestFailure -> [StyledString]
viewServerOperators :: [ServerOperator] -> Maybe UsageConditionsAction -> [StyledString]
viewOperator :: forall (s :: DBStored). ServerOperator' s -> Text
shortViewOperator :: ServerOperator -> Text
viewOpIdTag :: forall (s :: DBStored). ServerOperator' s -> Text
viewOpConditions :: ConditionsAcceptance -> Text
viewOpEnabled :: forall (s :: DBStored). ServerOperator' s -> Text
viewConditionsAction :: UsageConditionsAction -> [StyledString]
viewUsageConditions :: UsageConditions -> Maybe UsageConditions -> [StyledString]
viewChatItemTTL :: Maybe Int64 -> [StyledString]
viewNetworkConfig :: NetworkConfig -> [StyledString]
smpProxyModeStr :: SMPProxyMode -> SMPProxyFallback -> String
viewContactInfo :: Contact -> Maybe ConnectionStats -> Maybe Profile -> [StyledString]
viewGroupInfo :: GroupInfo -> [StyledString]
viewUITheme :: Maybe UIThemeEntityOverrides -> [StyledString]
viewCustomData :: Maybe CustomData -> [StyledString]
viewGroupMemberInfo :: GroupInfo -> GroupMember -> Maybe ConnectionStats -> [StyledString]
viewConnectionVerified :: Maybe SecurityCode -> StyledString
viewPeerChatVRange :: VersionRangeChat -> StyledString
viewConnectionStats :: ConnectionStats -> [StyledString]
viewRcvQueuesInfo :: [RcvQueueInfo] -> StyledString
viewSndQueuesInfo :: [SndQueueInfo] -> StyledString
viewContactSwitch :: Contact -> SwitchProgress -> [StyledString]
viewGroupMemberSwitch :: GroupInfo -> GroupMember -> SwitchProgress -> [StyledString]
viewContactRatchetSync :: Contact -> RatchetSyncProgress -> [StyledString]
viewGroupMemberRatchetSync :: GroupInfo -> GroupMember -> RatchetSyncProgress -> [StyledString]
viewContactVerificationReset :: Contact -> [StyledString]
viewGroupMemberVerificationReset :: GroupInfo -> GroupMember -> [StyledString]
viewContactCode :: Contact -> Text -> Bool -> [StyledString]
viewGroupMemberCode :: GroupInfo -> GroupMember -> Text -> Bool -> [StyledString]
viewSecurityCode :: StyledString -> Text -> Text -> Bool -> [StyledString]
viewSwitchPhase :: SwitchPhase -> StyledString
viewUserProfileUpdated :: Profile -> Profile -> UserProfileUpdateSummary -> [StyledString]
viewUserProfileImage :: Profile -> [StyledString]
viewUserContactPrefsUpdated :: User -> Contact -> Contact -> [StyledString]
viewContactPrefsUpdated :: User -> Contact -> Contact -> [StyledString]
viewContactPreferences :: User -> Contact -> Contact -> ContactUserPreferences -> [StyledString]
viewContactPref :: FullPreferences -> FullPreferences -> Maybe Preferences -> ContactUserPreferences -> AChatFeature -> Maybe StyledString
viewPrefsUpdated :: Maybe Preferences -> Maybe Preferences -> [StyledString]
countactUserPrefText :: forall (f :: ChatFeature). FeatureI f => ContactUserPref (FeaturePreference f) -> Text
viewGroupUpdated :: GroupInfo -> GroupInfo -> Maybe GroupMember -> [StyledString]
viewGroupProfile :: GroupInfo -> [StyledString]
viewGroupDescription :: GroupInfo -> [StyledString]
bold' :: String -> StyledString
viewContactAliasUpdated :: Contact -> [StyledString]
viewGroupAliasUpdated :: GroupInfo -> [StyledString]
viewConnectionAliasUpdated :: PendingContactConnection -> [StyledString]
viewConnectionIncognitoUpdated :: PendingContactConnection -> Maybe Profile -> Bool -> [StyledString]
viewConnectionUserChanged :: User -> PendingContactConnection -> User -> PendingContactConnection -> [StyledString]
viewContactUserChanged :: User -> Contact -> User -> Contact -> [StyledString]
viewGroupUserChanged :: User -> GroupInfo -> User -> GroupInfo -> [StyledString]
viewConnectionPlan :: ChatConfig -> ACreatedConnLink -> ConnectionPlan -> [StyledString]
viewContactUpdated :: Contact -> Contact -> [StyledString]
viewReceivedMessage :: forall (c :: ChatType) (d :: MsgDirection). StyledString -> [StyledString] -> MsgContent -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
viewReceivedUpdatedMessage :: forall (c :: ChatType) (d :: MsgDirection). StyledString -> [StyledString] -> MsgContent -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
viewReceivedMessage_ :: forall (c :: ChatType) (d :: MsgDirection). Bool -> StyledString -> [StyledString] -> MsgContent -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
viewReceivedReaction :: StyledString -> [StyledString] -> StyledString -> CurrentTime -> TimeZone -> UTCTime -> [StyledString]
receivedWithTime_ :: forall (c :: ChatType) (d :: MsgDirection). CurrentTime -> TimeZone -> StyledString -> [StyledString] -> CIMeta c d -> [StyledString] -> Bool -> [StyledString]
ttyMsgTime :: CurrentTime -> TimeZone -> UTCTime -> StyledString
recent :: CurrentTime -> TimeZone -> UTCTime -> Bool
viewSentMessage :: forall (c :: ChatType) (d :: MsgDirection). StyledString -> [StyledString] -> MsgContent -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
viewSentBroadcast :: MsgContent -> Int -> Int -> CurrentTime -> TimeZone -> UTCTime -> [StyledString]
viewSentFileInvitation :: forall (d :: MsgDirection) (c :: ChatType). StyledString -> CIFile d -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
sentWithTime_ :: forall (c :: ChatType) (d :: MsgDirection). CurrentTime -> TimeZone -> [StyledString] -> CIMeta c d -> [StyledString]
ttyMsgContent :: MsgContent -> [StyledString]
prependFirst :: StyledString -> [StyledString] -> [StyledString]
msgPlain :: Text -> [StyledString]
viewRcvFileSndCancelled :: RcvFileTransfer -> [StyledString]
viewSndFileCancelled :: FileTransferMeta -> [SndFileTransfer] -> [StyledString]
sendingFile_ :: StyledString -> SndFileTransfer -> [StyledString]
uploadingFile :: StyledString -> AChatItem -> [StyledString]
uploadingFileStandalone :: StyledString -> FileTransferMeta -> [StyledString]
standaloneUploadRedirect :: FileTransferMeta -> FileTransferMeta -> [StyledString]
standaloneUploadComplete :: FileTransferMeta -> [Text] -> [StyledString]
sndFile :: SndFileTransfer -> StyledString
viewReceivedFileInvitation :: forall (d :: MsgDirection) (c :: ChatType). StyledString -> CIFile d -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
receivedFileInvitation_ :: forall (d :: MsgDirection). CIFile d -> [StyledString]
humanReadableSize :: Integer -> StyledString
savingFile' :: AChatItem -> [StyledString]
receivingFile_' :: (Maybe RemoteHostId, Maybe User) -> Bool -> String -> AChatItem -> [StyledString]
receivingFileStandalone :: String -> RcvFileTransfer -> [StyledString]
viewLocalFile :: forall (d :: MsgDirection) (c :: ChatType). StyledString -> CIFile d -> CurrentTime -> TimeZone -> CIMeta c d -> [StyledString]
cryptoFileArgsStr :: Bool -> CryptoFileArgs -> StyledString
fileFrom :: forall (c :: ChatType) (d :: MsgDirection). ChatInfo c -> CIDirection c d -> StyledString
receivingFile_ :: StyledString -> RcvFileTransfer -> [StyledString]
rcvFile :: RcvFileTransfer -> StyledString
fileTransferStr :: Int64 -> String -> StyledString
viewFileTransferStatus :: (FileTransfer, [Integer]) -> [StyledString]
viewFileTransferStatusXFTP :: AChatItem -> [StyledString]
listRecipients :: [SndFileTransfer] -> StyledString
fileProgress :: [Integer] -> Integer -> Integer -> StyledString
fileProgressXFTP :: Int64 -> Int64 -> Integer -> StyledString
viewCallInvitation :: Contact -> CallType -> Maybe Key -> [StyledString]
viewCallOffer :: Contact -> CallType -> WebRTCSession -> Maybe Key -> [StyledString]
viewCallAnswer :: Contact -> WebRTCSession -> [StyledString]
callMediaStr :: CallType -> StyledString
encryptedCallText :: CallType -> StyledString
supporedBrowsers :: CallType -> StyledString
viewVersionInfo :: ChatLogLevel -> CoreVersionInfo -> [StyledString]
parens :: (IsString a, Semigroup a) => a -> a
viewRemoteHosts :: [RemoteHostInfo] -> [StyledString]
viewRemoteCtrls :: [RemoteCtrlInfo] -> [StyledString]
viewRemoteCtrl :: CtrlAppInfo -> AppVersion -> Bool -> StyledString
viewRemoteCtrlStopped :: RemoteCtrlStopReason -> [StyledString]
viewChatError :: Bool -> ChatLogLevel -> Bool -> ChatError -> [StyledString]
viewConnectionEntityDisabled :: ConnectionEntity -> [StyledString]
viewConnectionEntityInactive :: ConnectionEntity -> Bool -> [StyledString]
viewJSON :: ToJSON a => a -> StyledString
connEntityLabel :: ConnectionEntity -> StyledString
ttyContact :: ContactName -> StyledString
ttyContact' :: Contact -> StyledString
ttyFullContact :: Contact -> StyledString
ttyMember :: GroupMember -> StyledString
ttyFullMember :: GroupMember -> StyledString
ttyFullName :: ContactName -> Text -> Maybe Text -> StyledString
ttyToContact :: ContactName -> StyledString
ttyToContact' :: Contact -> StyledString
ttyToContactEdited' :: Contact -> StyledString
ttyQuotedContact :: Contact -> StyledString
ttyQuotedMember :: Maybe GroupMember -> StyledString
ttyFromContact :: Contact -> StyledString
ttyFromContactEdited :: Contact -> StyledString
ttyFromContactDeleted :: Contact -> Maybe Text -> StyledString
ttyGroup :: GroupName -> StyledString
ttyGroup' :: GroupInfo -> StyledString
viewContactName :: Contact -> Text
viewGroupName :: GroupInfo -> Text
viewMemberName :: GroupMember -> Text
ttyGroups :: [GroupName] -> StyledString
ttyFullGroup :: GroupInfo -> StyledString
ttyFromGroup :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> StyledString
ttyFromGroupAttention :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> Bool -> StyledString
ttyFromGroupEdited :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> StyledString
ttyFromGroupDeleted :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> Maybe Text -> StyledString
fromGroup_ :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> Text
fromGroupAttention_ :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> Bool -> Text
ttyFrom :: Text -> StyledString
ttyTo :: Text -> StyledString
ttyToGroup :: GroupInfo -> Maybe GroupChatScopeInfo -> StyledString
ttyToGroupEdited :: GroupInfo -> Maybe GroupChatScopeInfo -> StyledString
groupScopeInfoStr :: Maybe GroupChatScopeInfo -> Text
ttyFilePath :: FilePath -> StyledString
optFullName :: ContactName -> Text -> Maybe Text -> StyledString
ctIncognito :: Contact -> StyledString
membershipIncognito :: GroupInfo -> StyledString
memIncognito :: GroupMember -> StyledString
incognitoPrefix :: StyledString
incognitoProfile' :: Profile -> StyledString
highlight :: StyledFormat a => a -> StyledString
highlight' :: String -> StyledString
styleIncognito :: StyledFormat a => a -> StyledString
styleIncognito' :: String -> StyledString
styleTime :: String -> StyledString
ttyError :: StyledFormat a => a -> StyledString
ttyError' :: String -> StyledString
instance Simplex.Chat.View.ChatResponseEvent Simplex.Chat.Controller.ChatEvent
instance Simplex.Chat.View.ChatResponseEvent Simplex.Chat.Controller.ChatResponse
instance Data.Aeson.Types.ToJSON.ToJSON Simplex.Chat.View.WCallCommand

module Simplex.Chat.Terminal.Output
data ChatTerminal
ChatTerminal :: TerminalDevice -> TVar TerminalState -> Size -> TVar (Maybe LiveMessage) -> TVar Int -> TMVar () -> Maybe (Notification -> IO ()) -> TVar String -> TMap RemoteHostId User -> ChatTerminal
[termDevice] :: ChatTerminal -> TerminalDevice
[termState] :: ChatTerminal -> TVar TerminalState
[termSize] :: ChatTerminal -> Size
[liveMessageState] :: ChatTerminal -> TVar (Maybe LiveMessage)
[nextMessageRow] :: ChatTerminal -> TVar Int
[termLock] :: ChatTerminal -> TMVar ()
[sendNotification] :: ChatTerminal -> Maybe (Notification -> IO ())
[activeTo] :: ChatTerminal -> TVar String
[currentRemoteUsers] :: ChatTerminal -> TMap RemoteHostId User
data TerminalState
TerminalState :: String -> String -> Int -> String -> AutoCompleteState -> TerminalState
[inputPrompt] :: TerminalState -> String
[inputString] :: TerminalState -> String
[inputPosition] :: TerminalState -> Int
[previousInput] :: TerminalState -> String
[autoComplete] :: TerminalState -> AutoCompleteState
data ACShowVariants
SVNone :: ACShowVariants
SVSome :: ACShowVariants
SVAll :: ACShowVariants
data AutoCompleteState
ACState :: [String] -> String -> Bool -> ACShowVariants -> AutoCompleteState
[acVariants] :: AutoCompleteState -> [String]
[acInputString] :: AutoCompleteState -> String
[acTabPressed] :: AutoCompleteState -> Bool
[acShowVariants] :: AutoCompleteState -> ACShowVariants
data LiveMessage
LiveMessage :: ChatName -> ChatItemId -> Bool -> String -> String -> Weak ThreadId -> Weak ThreadId -> LiveMessage
[chatName] :: LiveMessage -> ChatName
[chatItemId] :: LiveMessage -> ChatItemId
[livePrompt] :: LiveMessage -> Bool
[sentMsg] :: LiveMessage -> String
[typedMsg] :: LiveMessage -> String
[liveThreadId] :: LiveMessage -> Weak ThreadId
[promptThreadId] :: LiveMessage -> Weak ThreadId
class Terminal t => WithTerminal t
withTerm :: (WithTerminal t, MonadIO m, MonadMask m) => t -> (t -> m a) -> m a
data TerminalDevice
TerminalDevice :: t -> TerminalDevice
withChatTerm :: (MonadIO m, MonadMask m) => ChatTerminal -> (forall t. WithTerminal t => TerminalT t m a) -> m a
newChatTerminal :: WithTerminal t => t -> ChatOpts -> IO ChatTerminal
mkTermState :: TerminalState
mkAutoComplete :: AutoCompleteState
withTermLock :: MonadTerminal m => ChatTerminal -> m () -> m ()
runTerminalOutput :: ChatTerminal -> ChatController -> ChatOpts -> IO ()
chatEventNotification :: ChatTerminal -> ChatController -> ChatEvent -> IO ()
msgText :: MsgContent -> Maybe MarkdownList -> Text
chatActiveTo :: ChatName -> String
chatInfoActiveTo :: forall (c :: ChatType). ChatInfo c -> String
contactActiveTo :: Contact -> String
groupActiveTo :: GroupInfo -> String
setActiveChat :: forall (c :: ChatType). ChatTerminal -> ChatInfo c -> IO ()
setActiveContact :: ChatTerminal -> Contact -> IO ()
setActiveGroup :: ChatTerminal -> GroupInfo -> IO ()
setActive :: ChatTerminal -> String -> IO ()
unsetActiveContact :: ChatTerminal -> Contact -> IO ()
unsetActiveGroup :: ChatTerminal -> GroupInfo -> IO ()
unsetActive :: ChatTerminal -> String -> IO ()
whenCurrUser :: ChatController -> User -> IO () -> IO ()
printRespToTerminal :: ChatTerminal -> ChatController -> Bool -> Maybe RemoteHostId -> Either ChatError ChatResponse -> IO ()
responseString :: ChatResponseEvent r => ChatTerminal -> ChatController -> Bool -> Maybe RemoteHostId -> Either ChatError r -> IO [StyledString]
updateRemoteUser :: ChatTerminal -> User -> RemoteHostId -> IO ()
getCurrentUser :: ChatTerminal -> ChatController -> IO (Maybe RemoteHostId, Maybe User)
printToTerminal :: ChatTerminal -> [StyledString] -> IO ()
updateInputView :: ChatTerminal -> IO ()
updateInput :: MonadTerminal m => ChatTerminal -> m ()
printMessage :: MonadTerminal m => ChatTerminal -> [StyledString] -> m ()
putStyled :: MonadTerminal m => StyledString -> m ()
setSGR :: MonadTerminal m => [SGR] -> m ()
instance GHC.Enum.Enum Simplex.Chat.Terminal.Output.ACShowVariants
instance GHC.Classes.Eq Simplex.Chat.Terminal.Output.ACShowVariants
instance Simplex.Chat.Terminal.Output.WithTerminal System.Terminal.Platform.LocalTerminal
instance Simplex.Chat.Terminal.Output.WithTerminal System.Terminal.Virtual.VirtualTerminal

module Simplex.Chat.Terminal.Input
getKey :: MonadTerminal m => m (Key, Modifiers)
runInputLoop :: ChatTerminal -> ChatController -> IO ()
sendUpdatedLiveMessage :: ChatController -> String -> LiveMessage -> Bool -> IO (Either ChatError ChatResponse)
runTerminalInput :: ChatTerminal -> ChatController -> IO ()
receiveFromTTY :: MonadTerminal m => ChatController -> ChatTerminal -> m ()
data AutoComplete
ACContact :: Text -> AutoComplete
ACContactRequest :: Text -> AutoComplete
ACMember :: Text -> Text -> AutoComplete
ACGroup :: Text -> AutoComplete
ACCommand :: Text -> AutoComplete
ACNone :: AutoComplete
updateTermState :: Maybe User -> DBStore -> String -> Bool -> Int -> (Key, Modifiers) -> TerminalState -> IO TerminalState

module Simplex.Chat.Core
simplexChatCore :: ChatConfig -> ChatOpts -> (User -> ChatController -> IO ()) -> IO ()
runSimplexChat :: ChatOpts -> User -> ChatController -> (User -> ChatController -> IO ()) -> IO ()
sendChatCmdStr :: ChatController -> String -> IO (Either ChatError ChatResponse)
sendChatCmd :: ChatController -> ChatCommand -> IO (Either ChatError ChatResponse)
printResponseEvent :: ChatResponseEvent r => (Maybe RemoteHostId, Maybe User) -> ChatConfig -> Either ChatError r -> IO ()

module Simplex.Chat.Terminal
terminalChatConfig :: ChatConfig
simplexChatTerminal :: WithTerminal t => ChatConfig -> ChatOpts -> t -> IO ()
runChatTerminal :: ChatTerminal -> ChatController -> ChatOpts -> IO ()

module Simplex.Chat.Terminal.Main
simplexChatCLI :: ChatConfig -> Maybe (ServiceName -> ChatConfig -> ChatOpts -> IO ()) -> IO ()
simplexChatCLI' :: ChatConfig -> ChatOpts -> Maybe (ServiceName -> ChatConfig -> ChatOpts -> IO ()) -> IO ()
welcome :: ChatConfig -> ChatOpts -> IO ()

module Simplex.Chat.Bot
chatBotRepl :: String -> (Contact -> String -> IO String) -> User -> ChatController -> IO ()
initializeBotAddress :: ChatController -> IO ()
initializeBotAddress' :: Bool -> ChatController -> IO ()
sendMessage :: ChatController -> Contact -> Text -> IO ()
sendMessage' :: ChatController -> ContactId -> Text -> IO ()
sendComposedMessage :: ChatController -> Contact -> Maybe ChatItemId -> MsgContent -> IO ()
sendComposedMessage' :: ChatController -> ContactId -> Maybe ChatItemId -> MsgContent -> IO ()
sendComposedMessages :: ChatController -> SendRef -> NonEmpty MsgContent -> IO ()
sendComposedMessages_ :: ChatController -> SendRef -> NonEmpty (Maybe ChatItemId, MsgContent) -> IO ()
deleteMessage :: ChatController -> Contact -> ChatItemId -> IO ()
contactRef :: Contact -> ChatRef
printLog :: ChatController -> ChatLogLevel -> String -> IO ()
contactInfo :: Contact -> String
