Ctrl K
ComunidadGuías…

simplex-chat.cabal

Rama stable · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.35.0.
--
-- see: https://github.com/sol/hpack

name:           simplex-chat
version:        7.0.0.12
category:       Web, System, Services, Cryptography
homepage:       https://github.com/simplex-chat/simplex-chat#readme
author:         simplex.chat
maintainer:     chat@simplex.chat
copyright:      2020-22 simplex.chat
license:        AGPL-3
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    PRIVACY.md
    cabal.project

flag swift
  description: Enable swift JSON format
  manual: True
  default: False

flag client_library
  description: Don't build server- and CLI-related code.
  manual: True
  default: False

flag client_postgres
  description: Build with PostgreSQL instead of SQLite.
  manual: True
  default: False

library
  exposed-modules:
      Simplex.Chat
      Simplex.Chat.AppSettings
      Simplex.Chat.Badges
      Simplex.Chat.Badges.CLI
      Simplex.Chat.Names
      Simplex.Chat.Call
      Simplex.Chat.Controller
      Simplex.Chat.Delivery
      Simplex.Chat.Files
      Simplex.Chat.Library.Commands
      Simplex.Chat.Library.Internal
      Simplex.Chat.Library.Subscriber
      Simplex.Chat.Markdown
      Simplex.Chat.Messages
      Simplex.Chat.Messages.Batch
      Simplex.Chat.Messages.CIContent
      Simplex.Chat.Messages.CIContent.Events
      Simplex.Chat.Mobile
      Simplex.Chat.Mobile.Badges
      Simplex.Chat.Mobile.File
      Simplex.Chat.Mobile.Shared
      Simplex.Chat.Mobile.WebRTC
      Simplex.Chat.Operators
      Simplex.Chat.Operators.Conditions
      Simplex.Chat.Operators.Presets
      Simplex.Chat.Options
      Simplex.Chat.Options.DB
      Simplex.Chat.ProfileGenerator
      Simplex.Chat.Protocol
      Simplex.Chat.Remote
      Simplex.Chat.Remote.AppVersion
      Simplex.Chat.Remote.Multicast
      Simplex.Chat.Remote.Protocol
      Simplex.Chat.Remote.RevHTTP
      Simplex.Chat.Remote.Transport
      Simplex.Chat.Remote.Types
      Simplex.Chat.Stats
      Simplex.Chat.Store
      Simplex.Chat.Store.AppSettings
      Simplex.Chat.Store.Connections
      Simplex.Chat.Store.ContactRequest
      Simplex.Chat.Store.Delivery
      Simplex.Chat.Store.Direct
      Simplex.Chat.Store.Files
      Simplex.Chat.Store.Groups
      Simplex.Chat.Store.Messages
      Simplex.Chat.Store.NoteFolders
      Simplex.Chat.Store.Profiles
      Simplex.Chat.Store.RelayRequests
      Simplex.Chat.Store.Remote
      Simplex.Chat.Store.Shared
      Simplex.Chat.Styled
      Simplex.Chat.Types
      Simplex.Chat.Types.MemberRelations
      Simplex.Chat.Types.Preferences
      Simplex.Chat.Types.Shared
      Simplex.Chat.Types.UITheme
      Simplex.Chat.Util
      Simplex.Chat.Web
  if !flag(client_library)
      exposed-modules:
          Simplex.Chat.Bot
          Simplex.Chat.Bot.KnownContacts
          Simplex.Chat.Core
          Simplex.Chat.Help
          Simplex.Chat.Terminal
          Simplex.Chat.Terminal.Input
          Simplex.Chat.Terminal.Main
          Simplex.Chat.Terminal.Notification
          Simplex.Chat.Terminal.Output
          Simplex.Chat.View
  if flag(client_postgres)
      exposed-modules:
          Simplex.Chat.Options.Postgres
          Simplex.Chat.Store.Postgres.Migrations
          Simplex.Chat.Store.Postgres.Migrations.M20241220_initial
          Simplex.Chat.Store.Postgres.Migrations.M20250402_short_links
          Simplex.Chat.Store.Postgres.Migrations.M20250512_member_admission
          Simplex.Chat.Store.Postgres.Migrations.M20250513_group_scope
          Simplex.Chat.Store.Postgres.Migrations.M20250526_short_links
          Simplex.Chat.Store.Postgres.Migrations.M20250702_contact_requests_remove_cascade_delete
          Simplex.Chat.Store.Postgres.Migrations.M20250704_groups_conn_link_prepared_connection
          Simplex.Chat.Store.Postgres.Migrations.M20250709_profile_short_descr
          Simplex.Chat.Store.Postgres.Migrations.M20250721_indexes
          Simplex.Chat.Store.Postgres.Migrations.M20250729_member_contact_requests
          Simplex.Chat.Store.Postgres.Migrations.M20250801_via_group_link_uri
          Simplex.Chat.Store.Postgres.Migrations.M20250802_chat_peer_type
          Simplex.Chat.Store.Postgres.Migrations.M20250813_delivery_tasks
          Simplex.Chat.Store.Postgres.Migrations.M20250919_group_summary
          Simplex.Chat.Store.Postgres.Migrations.M20250922_remove_unused_connections
          Simplex.Chat.Store.Postgres.Migrations.M20251007_connections_sync
          Simplex.Chat.Store.Postgres.Migrations.M20251017_chat_tags_cascade
          Simplex.Chat.Store.Postgres.Migrations.M20251117_member_relations_vector
          Simplex.Chat.Store.Postgres.Migrations.M20251128_migrate_member_relations
          Simplex.Chat.Store.Postgres.Migrations.M20251230_strict_tables
          Simplex.Chat.Store.Postgres.Migrations.M20260108_chat_indices
          Simplex.Chat.Store.Postgres.Migrations.M20260122_has_link
          Simplex.Chat.Store.Postgres.Migrations.M20260222_chat_relays
          Simplex.Chat.Store.Postgres.Migrations.M20260403_item_viewed
          Simplex.Chat.Store.Postgres.Migrations.M20260429_relay_request_retries
          Simplex.Chat.Store.Postgres.Migrations.M20260507_relay_inactive_at
          Simplex.Chat.Store.Postgres.Migrations.M20260514_relay_request_group_link_index
          Simplex.Chat.Store.Postgres.Migrations.M20260515_public_group_access
          Simplex.Chat.Store.Postgres.Migrations.M20260516_supporter_badges
          Simplex.Chat.Store.Postgres.Migrations.M20260529_delivery_job_senders
          Simplex.Chat.Store.Postgres.Migrations.M20260530_client_services
          Simplex.Chat.Store.Postgres.Migrations.M20260531_member_removed_at
          Simplex.Chat.Store.Postgres.Migrations.M20260601_relay_sent_web_domain
          Simplex.Chat.Store.Postgres.Migrations.M20260602_group_roster
          Simplex.Chat.Store.Postgres.Migrations.M20260603_simplex_name
          Simplex.Chat.Store.Postgres.Migrations.M20260629_roster_catchup
          Simplex.Chat.Store.Postgres.Migrations.M20260707_file_digest
          Simplex.Chat.Store.Postgres.Migrations.M20260714_member_security_code
          Simplex.Chat.Store.Postgres.Migrations.M20260715_profile_description
          Simplex.Chat.Store.Postgres.Migrations.M20260716_signed_history
          Simplex.Chat.Store.Postgres.Migrations.M20260720_server_roles
  else
      exposed-modules:
          Simplex.Chat.Archive
          Simplex.Chat.Options.SQLite
          Simplex.Chat.Store.SQLite.Migrations
          Simplex.Chat.Store.SQLite.Migrations.M20220101_initial
          Simplex.Chat.Store.SQLite.Migrations.M20220122_v1_1
          Simplex.Chat.Store.SQLite.Migrations.M20220205_chat_item_status
          Simplex.Chat.Store.SQLite.Migrations.M20220210_deduplicate_contact_requests
          Simplex.Chat.Store.SQLite.Migrations.M20220224_messages_fks
          Simplex.Chat.Store.SQLite.Migrations.M20220301_smp_servers
          Simplex.Chat.Store.SQLite.Migrations.M20220302_profile_images
          Simplex.Chat.Store.SQLite.Migrations.M20220304_msg_quotes
          Simplex.Chat.Store.SQLite.Migrations.M20220321_chat_item_edited
          Simplex.Chat.Store.SQLite.Migrations.M20220404_files_status_fields
          Simplex.Chat.Store.SQLite.Migrations.M20220514_profiles_user_id
          Simplex.Chat.Store.SQLite.Migrations.M20220626_auto_reply
          Simplex.Chat.Store.SQLite.Migrations.M20220702_calls
          Simplex.Chat.Store.SQLite.Migrations.M20220715_groups_chat_item_id
          Simplex.Chat.Store.SQLite.Migrations.M20220811_chat_items_indices
          Simplex.Chat.Store.SQLite.Migrations.M20220812_incognito_profiles
          Simplex.Chat.Store.SQLite.Migrations.M20220818_chat_notifications
          Simplex.Chat.Store.SQLite.Migrations.M20220822_groups_host_conn_custom_user_profile_id
          Simplex.Chat.Store.SQLite.Migrations.M20220823_delete_broken_group_event_chat_items
          Simplex.Chat.Store.SQLite.Migrations.M20220824_profiles_local_alias
          Simplex.Chat.Store.SQLite.Migrations.M20220909_commands
          Simplex.Chat.Store.SQLite.Migrations.M20220926_connection_alias
          Simplex.Chat.Store.SQLite.Migrations.M20220928_settings
          Simplex.Chat.Store.SQLite.Migrations.M20221001_shared_msg_id_indices
          Simplex.Chat.Store.SQLite.Migrations.M20221003_delete_broken_integrity_error_chat_items
          Simplex.Chat.Store.SQLite.Migrations.M20221004_idx_msg_deliveries_message_id
          Simplex.Chat.Store.SQLite.Migrations.M20221011_user_contact_links_group_id
          Simplex.Chat.Store.SQLite.Migrations.M20221012_inline_files
          Simplex.Chat.Store.SQLite.Migrations.M20221019_unread_chat
          Simplex.Chat.Store.SQLite.Migrations.M20221021_auto_accept__group_links
          Simplex.Chat.Store.SQLite.Migrations.M20221024_contact_used
          Simplex.Chat.Store.SQLite.Migrations.M20221025_chat_settings
          Simplex.Chat.Store.SQLite.Migrations.M20221029_group_link_id
          Simplex.Chat.Store.SQLite.Migrations.M20221112_server_password
          Simplex.Chat.Store.SQLite.Migrations.M20221115_server_cfg
          Simplex.Chat.Store.SQLite.Migrations.M20221129_delete_group_feature_items
          Simplex.Chat.Store.SQLite.Migrations.M20221130_delete_item_deleted
          Simplex.Chat.Store.SQLite.Migrations.M20221209_verified_connection
          Simplex.Chat.Store.SQLite.Migrations.M20221210_idxs
          Simplex.Chat.Store.SQLite.Migrations.M20221211_group_description
          Simplex.Chat.Store.SQLite.Migrations.M20221212_chat_items_timed
          Simplex.Chat.Store.SQLite.Migrations.M20221214_live_message
          Simplex.Chat.Store.SQLite.Migrations.M20221222_chat_ts
          Simplex.Chat.Store.SQLite.Migrations.M20221223_idx_chat_items_item_status
          Simplex.Chat.Store.SQLite.Migrations.M20221230_idxs
          Simplex.Chat.Store.SQLite.Migrations.M20230107_connections_auth_err_counter
          Simplex.Chat.Store.SQLite.Migrations.M20230111_users_agent_user_id
          Simplex.Chat.Store.SQLite.Migrations.M20230117_fkey_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20230118_recreate_smp_servers
          Simplex.Chat.Store.SQLite.Migrations.M20230129_drop_chat_items_group_idx
          Simplex.Chat.Store.SQLite.Migrations.M20230206_item_deleted_by_group_member_id
          Simplex.Chat.Store.SQLite.Migrations.M20230303_group_link_role
          Simplex.Chat.Store.SQLite.Migrations.M20230317_hidden_profiles
          Simplex.Chat.Store.SQLite.Migrations.M20230318_file_description
          Simplex.Chat.Store.SQLite.Migrations.M20230321_agent_file_deleted
          Simplex.Chat.Store.SQLite.Migrations.M20230328_files_protocol
          Simplex.Chat.Store.SQLite.Migrations.M20230402_protocol_servers
          Simplex.Chat.Store.SQLite.Migrations.M20230411_extra_xftp_file_descriptions
          Simplex.Chat.Store.SQLite.Migrations.M20230420_rcv_files_to_receive
          Simplex.Chat.Store.SQLite.Migrations.M20230422_profile_contact_links
          Simplex.Chat.Store.SQLite.Migrations.M20230504_recreate_msg_delivery_events_cleanup_messages
          Simplex.Chat.Store.SQLite.Migrations.M20230505_chat_item_versions
          Simplex.Chat.Store.SQLite.Migrations.M20230511_reactions
          Simplex.Chat.Store.SQLite.Migrations.M20230519_item_deleted_ts
          Simplex.Chat.Store.SQLite.Migrations.M20230526_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20230529_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20230608_deleted_contacts
          Simplex.Chat.Store.SQLite.Migrations.M20230618_favorite_chats
          Simplex.Chat.Store.SQLite.Migrations.M20230621_chat_item_moderations
          Simplex.Chat.Store.SQLite.Migrations.M20230705_delivery_receipts
          Simplex.Chat.Store.SQLite.Migrations.M20230721_group_snd_item_statuses
          Simplex.Chat.Store.SQLite.Migrations.M20230814_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20230827_file_encryption
          Simplex.Chat.Store.SQLite.Migrations.M20230829_connections_chat_vrange
          Simplex.Chat.Store.SQLite.Migrations.M20230903_connections_to_subscribe
          Simplex.Chat.Store.SQLite.Migrations.M20230913_member_contacts
          Simplex.Chat.Store.SQLite.Migrations.M20230914_member_probes
          Simplex.Chat.Store.SQLite.Migrations.M20230926_contact_status
          Simplex.Chat.Store.SQLite.Migrations.M20231002_conn_initiated
          Simplex.Chat.Store.SQLite.Migrations.M20231009_via_group_link_uri_hash
          Simplex.Chat.Store.SQLite.Migrations.M20231010_member_settings
          Simplex.Chat.Store.SQLite.Migrations.M20231019_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20231030_xgrplinkmem_received
          Simplex.Chat.Store.SQLite.Migrations.M20231107_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20231113_group_forward
          Simplex.Chat.Store.SQLite.Migrations.M20231114_remote_control
          Simplex.Chat.Store.SQLite.Migrations.M20231126_remote_ctrl_address
          Simplex.Chat.Store.SQLite.Migrations.M20231207_chat_list_pagination
          Simplex.Chat.Store.SQLite.Migrations.M20231214_item_content_tag
          Simplex.Chat.Store.SQLite.Migrations.M20231215_recreate_msg_deliveries
          Simplex.Chat.Store.SQLite.Migrations.M20240102_note_folders
          Simplex.Chat.Store.SQLite.Migrations.M20240104_members_profile_update
          Simplex.Chat.Store.SQLite.Migrations.M20240115_block_member_for_all
          Simplex.Chat.Store.SQLite.Migrations.M20240122_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20240214_redirect_file_id
          Simplex.Chat.Store.SQLite.Migrations.M20240222_app_settings
          Simplex.Chat.Store.SQLite.Migrations.M20240226_users_restrict
          Simplex.Chat.Store.SQLite.Migrations.M20240228_pq
          Simplex.Chat.Store.SQLite.Migrations.M20240313_drop_agent_ack_cmd_id
          Simplex.Chat.Store.SQLite.Migrations.M20240324_custom_data
          Simplex.Chat.Store.SQLite.Migrations.M20240402_item_forwarded
          Simplex.Chat.Store.SQLite.Migrations.M20240430_ui_theme
          Simplex.Chat.Store.SQLite.Migrations.M20240501_chat_deleted
          Simplex.Chat.Store.SQLite.Migrations.M20240510_chat_items_via_proxy
          Simplex.Chat.Store.SQLite.Migrations.M20240515_rcv_files_user_approved_relays
          Simplex.Chat.Store.SQLite.Migrations.M20240528_quota_err_counter
          Simplex.Chat.Store.SQLite.Migrations.M20240827_calls_uuid
          Simplex.Chat.Store.SQLite.Migrations.M20240920_user_order
          Simplex.Chat.Store.SQLite.Migrations.M20241008_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20241010_contact_requests_contact_id
          Simplex.Chat.Store.SQLite.Migrations.M20241023_chat_item_autoincrement_id
          Simplex.Chat.Store.SQLite.Migrations.M20241027_server_operators
          Simplex.Chat.Store.SQLite.Migrations.M20241125_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20241128_business_chats
          Simplex.Chat.Store.SQLite.Migrations.M20241205_business_chat_members
          Simplex.Chat.Store.SQLite.Migrations.M20241222_operator_conditions
          Simplex.Chat.Store.SQLite.Migrations.M20241223_chat_tags
          Simplex.Chat.Store.SQLite.Migrations.M20241230_reports
          Simplex.Chat.Store.SQLite.Migrations.M20250105_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20250115_chat_ttl
          Simplex.Chat.Store.SQLite.Migrations.M20250122_chat_items_include_in_history
          Simplex.Chat.Store.SQLite.Migrations.M20250126_mentions
          Simplex.Chat.Store.SQLite.Migrations.M20250129_delete_unused_contacts
          Simplex.Chat.Store.SQLite.Migrations.M20250130_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20250402_short_links
          Simplex.Chat.Store.SQLite.Migrations.M20250512_member_admission
          Simplex.Chat.Store.SQLite.Migrations.M20250513_group_scope
          Simplex.Chat.Store.SQLite.Migrations.M20250526_short_links
          Simplex.Chat.Store.SQLite.Migrations.M20250702_contact_requests_remove_cascade_delete
          Simplex.Chat.Store.SQLite.Migrations.M20250704_groups_conn_link_prepared_connection
          Simplex.Chat.Store.SQLite.Migrations.M20250709_profile_short_descr
          Simplex.Chat.Store.SQLite.Migrations.M20250721_indexes
          Simplex.Chat.Store.SQLite.Migrations.M20250729_member_contact_requests
          Simplex.Chat.Store.SQLite.Migrations.M20250801_via_group_link_uri
          Simplex.Chat.Store.SQLite.Migrations.M20250802_chat_peer_type
          Simplex.Chat.Store.SQLite.Migrations.M20250813_delivery_tasks
          Simplex.Chat.Store.SQLite.Migrations.M20250919_group_summary
          Simplex.Chat.Store.SQLite.Migrations.M20250922_remove_unused_connections
          Simplex.Chat.Store.SQLite.Migrations.M20251007_connections_sync
          Simplex.Chat.Store.SQLite.Migrations.M20251017_chat_tags_cascade
          Simplex.Chat.Store.SQLite.Migrations.M20251117_member_relations_vector
          Simplex.Chat.Store.SQLite.Migrations.M20251128_migrate_member_relations
          Simplex.Chat.Store.SQLite.Migrations.M20251230_strict_tables
          Simplex.Chat.Store.SQLite.Migrations.M20260108_chat_indices
          Simplex.Chat.Store.SQLite.Migrations.M20260122_has_link
          Simplex.Chat.Store.SQLite.Migrations.M20260222_chat_relays
          Simplex.Chat.Store.SQLite.Migrations.M20260403_item_viewed
          Simplex.Chat.Store.SQLite.Migrations.M20260429_relay_request_retries
          Simplex.Chat.Store.SQLite.Migrations.M20260507_relay_inactive_at
          Simplex.Chat.Store.SQLite.Migrations.M20260514_relay_request_group_link_index
          Simplex.Chat.Store.SQLite.Migrations.M20260515_public_group_access
          Simplex.Chat.Store.SQLite.Migrations.M20260516_supporter_badges
          Simplex.Chat.Store.SQLite.Migrations.M20260529_delivery_job_senders
          Simplex.Chat.Store.SQLite.Migrations.M20260530_client_services
          Simplex.Chat.Store.SQLite.Migrations.M20260531_member_removed_at
          Simplex.Chat.Store.SQLite.Migrations.M20260601_relay_sent_web_domain
          Simplex.Chat.Store.SQLite.Migrations.M20260602_group_roster
          Simplex.Chat.Store.SQLite.Migrations.M20260603_simplex_name
          Simplex.Chat.Store.SQLite.Migrations.M20260629_roster_catchup
          Simplex.Chat.Store.SQLite.Migrations.M20260707_file_digest
          Simplex.Chat.Store.SQLite.Migrations.M20260714_member_security_code
          Simplex.Chat.Store.SQLite.Migrations.M20260715_profile_description
          Simplex.Chat.Store.SQLite.Migrations.M20260716_signed_history
          Simplex.Chat.Store.SQLite.Migrations.M20260720_server_roles
  other-modules:
      Paths_simplex_chat
  hs-source-dirs:
      src
  default-extensions:
      StrictData
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing
  build-depends:
      aeson ==2.2.*
    , ansi-terminal >=0.10 && <0.12
    , async ==2.2.*
    , attoparsec ==0.14.*
    , base >=4.7 && <5
    , base64-bytestring >=1.0 && <1.3
    , composition ==1.0.*
    , constraints >=0.12 && <0.14
    , containers ==0.6.*
    , crypton ==0.34.*
    , crypton-x509 ==1.7.*
    , data-default ==0.7.*
    , directory ==1.3.*
    , email-validate ==2.3.*
    , exceptions ==0.10.*
    , file-embed ==0.0.15.*
    , filepath ==1.4.*
    , http-types ==0.12.*
    , http2 >=4.2.2 && <4.3
    , memory ==0.18.*
    , mtl >=2.3.1 && <3.0
    , network >=3.1.2.7 && <3.2
    , network-transport ==0.5.6
    , optparse-applicative >=0.15 && <0.17
    , random >=1.1 && <1.3
    , record-hasfield ==1.0.*
    , simple-logger ==0.1.*
    , simplexmq >=6.3
    , socks ==0.6.*
    , stm ==2.5.*
    , terminal ==0.2.*
    , time ==1.12.*
    , tls >=1.9.0 && <1.10
    , unliftio ==0.2.*
    , unliftio-core ==0.2.*
    , uri-bytestring >=0.3.3.1 && <0.4
    , uuid ==1.3.*
    , zip ==2.2.*
    , zstd ==0.1.3.*
  default-language: Haskell2010
  if flag(swift)
    cpp-options: -DswiftJSON
  if flag(client_postgres)
    build-depends:
        postgresql-libpq >=0.10.0.0
      , postgresql-simple ==0.7.*
      , raw-strings-qq ==1.1.*
    cpp-options: -DdbPostgres
  else
    build-depends:
        direct-sqlcipher ==2.3.*
      , sqlcipher-simple ==0.4.*
  if impl(ghc >= 9.6.2)
    build-depends:
        bytestring ==0.11.*
      , process ==1.6.*
      , template-haskell ==2.20.*
      , text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        bytestring ==0.10.*
      , process >=1.6 && <1.6.18
      , template-haskell ==2.16.*
      , text >=1.2.4.0 && <1.3

executable simplex-bot
  if flag(client_library)
      buildable: False
  main-is: Main.hs
  other-modules:
      Paths_simplex_chat
  hs-source-dirs:
      apps/simplex-bot
  default-extensions:
      StrictData
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded
  build-depends:
      base >=4.7 && <5
    , directory ==1.3.*
    , simplex-chat
  default-language: Haskell2010
  if flag(client_postgres)
    cpp-options: -DdbPostgres

executable simplex-bot-advanced
  if flag(client_library)
      buildable: False
  main-is: Main.hs
  other-modules:
      Paths_simplex_chat
  hs-source-dirs:
      apps/simplex-bot-advanced
  default-extensions:
      StrictData
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded
  build-depends:
      async ==2.2.*
    , base >=4.7 && <5
    , directory ==1.3.*
    , simplex-chat
    , simplexmq >=6.3
    , stm ==2.5.*
  default-language: Haskell2010
  if flag(client_postgres)
    cpp-options: -DdbPostgres
  if impl(ghc >= 9.6.2)
    build-depends:
        text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        text >=1.2.4.0 && <1.3

executable simplex-broadcast-bot
  if flag(client_library)
      buildable: False
  main-is: Main.hs
  hs-source-dirs:
      apps/simplex-broadcast-bot
      apps/simplex-broadcast-bot/src
  default-extensions:
      StrictData
  other-modules:
      Broadcast.Bot
      Broadcast.Options
      Paths_simplex_chat
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded
  build-depends:
      async ==2.2.*
    , base >=4.7 && <5
    , directory ==1.3.*
    , optparse-applicative >=0.15 && <0.17
    , simplex-chat
    , simplexmq >=6.3
    , stm ==2.5.*
  default-language: Haskell2010
  if flag(client_postgres)
    cpp-options: -DdbPostgres
  if impl(ghc >= 9.6.2)
    build-depends:
        text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        text >=1.2.4.0 && <1.3

executable simplex-chat
  if flag(client_library)
      buildable: False
  main-is: Main.hs
  other-modules:
      Server
      Paths_simplex_chat
  hs-source-dirs:
      apps/simplex-chat
  default-extensions:
      StrictData
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded
  build-depends:
      aeson ==2.2.*
    , base >=4.7 && <5
    , directory ==1.3.*
    , mtl >=2.3.1 && <3.0
    , network ==3.1.*
    , simplex-chat
    , simplexmq >=6.3
    , stm ==2.5.*
    , unliftio ==0.2.*
    , websockets ==0.12.*
  default-language: Haskell2010
  if flag(client_postgres)
    cpp-options: -DdbPostgres
  if impl(ghc >= 9.6.2)
    build-depends:
        text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        text >=1.2.4.0 && <1.3

executable simplex-directory-service
  if flag(client_library)
      buildable: False
  main-is: Main.hs
  hs-source-dirs:
      apps/simplex-directory-service
      apps/simplex-directory-service/src
  default-extensions:
      StrictData
  other-modules:
      Directory.BlockedWords
      Directory.Captcha
      Directory.Events
      Directory.Listing
      Directory.Options
      Directory.Search
      Directory.Service
      Directory.Store
      Directory.Store.Migrate
      Directory.Util
      Paths_simplex_chat
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded -rtsopts
  build-depends:
      aeson ==2.2.*
    , async ==2.2.*
    , attoparsec ==0.14.*
    , base >=4.7 && <5
    , base64-bytestring >=1.0 && <1.3
    , composition ==1.0.*
    , containers ==0.6.*
    , crypton ==0.34.*
    , directory ==1.3.*
    , filepath ==1.4.*
    , memory ==0.18.*
    , mtl >=2.3.1 && <3.0
    , optparse-applicative >=0.15 && <0.17
    , process >=1.6 && <1.6.18
    , random >=1.1 && <1.3
    , simple-logger ==0.1.*
    , simplex-chat
    , simplexmq >=6.3
    , stm ==2.5.*
    , time ==1.12.*
    , unicode-transforms ==0.4.*
  default-language: Haskell2010
  if flag(client_postgres)
    other-modules:
        Directory.Store.Postgres.Migrations
    build-depends:
        postgresql-simple ==0.7.*
        , raw-strings-qq ==1.1.*
    cpp-options: -DdbPostgres
  else
    other-modules:
        Directory.Store.SQLite.Migrations
    build-depends:
        sqlcipher-simple ==0.4.*
  if impl(ghc >= 9.6.2)
    build-depends:
        bytestring ==0.11.*
      , text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        bytestring ==0.10.*
      , text >=1.2.4.0 && <1.3

test-suite simplex-chat-test
  if flag(swift)
    cpp-options: -DswiftJSON
  if flag(client_library)
      buildable: False
  type: exitcode-stdio-1.0
  main-is: Test.hs
  other-modules:
      APIDocs
      BadgeTests
      Bots.BroadcastTests
      Bots.DirectoryTests
      ChatClient
      ChatTests
      ChatTests.ChatList
      ChatTests.ChatRelays
      ChatTests.Direct
      ChatTests.DBUtils
      ChatTests.Files
      ChatTests.Forward
      ChatTests.Groups
      ChatTests.Local
      ChatTests.Names
      ChatTests.Profiles
      ChatTests.Utils
      JSONFixtures
      JSONTests
      MarkdownTests
      MemberRelationsTests
      NameResolver
      MessageBatching
      OperatorTests
      ProtocolTests
      RandomServers
      RemoteTests
      ValidNames
      ViewTests
      API.Docs.Commands
      API.Docs.Events
      API.Docs.Generate
      API.Docs.Generate.Python
      API.Docs.Generate.TypeScript
      API.Docs.Responses
      API.Docs.Syntax
      API.Docs.Syntax.Types
      API.Docs.Types
      API.TypeInfo
      Broadcast.Bot
      Broadcast.Options
      Directory.BlockedWords
      Directory.Captcha
      Directory.Events
      Directory.Listing
      Directory.Options
      Directory.Search
      Directory.Service
      Directory.Store
      Directory.Store.Migrate
      Directory.Util
      Paths_simplex_chat
  if flag(client_postgres)
      other-modules:
          ChatTests.DBUtils.Postgres
          PostgresSchemaDump
  else
      other-modules:
          ChatTests.DBUtils.SQLite
          MobileTests
          SchemaDump
          WebRTCTests
  hs-source-dirs:
      bots/src
      tests
      apps/simplex-broadcast-bot/src
      apps/simplex-directory-service/src
  default-extensions:
      StrictData
  -- add -fhpc to ghc-options below to run tests with coverage
  ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded
  build-depends:
      QuickCheck ==2.14.*
    , aeson ==2.2.*
    , ansi-terminal >=0.10 && <0.12
    , async ==2.2.*
    , attoparsec ==0.14.*
    , base >=4.7 && <5
    , base64-bytestring >=1.0 && <1.3
    , composition ==1.0.*
    , containers ==0.6.*
    , crypton ==0.34.*
    , deepseq ==1.4.*
    , directory ==1.3.*
    , filepath ==1.4.*
    , generic-random ==1.5.*
    , http-types ==0.12.*
    , memory ==0.18.*
    , mtl >=2.3.1 && <3.0
    , network ==3.1.*
    , optparse-applicative >=0.15 && <0.17
    , random >=1.1 && <1.3
    , silently ==1.2.*
    , simple-logger ==0.1.*
    , simplex-chat
    , simplexmq >=6.3
    , stm ==2.5.*
    , terminal ==0.2.*
    , time ==1.12.*
    , unicode-transforms ==0.4.*
    , unliftio ==0.2.*
    , uri-bytestring >=0.3.3.1 && <0.4
    , wai ==3.2.*
    , warp ==3.3.*
  default-language: Haskell2010
  if flag(client_postgres)
    other-modules:
        Directory.Store.Postgres.Migrations
    build-depends:
        postgresql-simple ==0.7.*
        , raw-strings-qq ==1.1.*
    cpp-options: -DdbPostgres
  else
    other-modules:
        Directory.Store.SQLite.Migrations
    build-depends:
        sqlcipher-simple ==0.4.*
  if impl(ghc >= 9.6.2)
    build-depends:
        bytestring ==0.11.*
      , hspec ==2.11.*
      , process ==1.6.*
      , text >=2.0.1 && <2.2
  if impl(ghc < 9.6.2)
    build-depends:
        bytestring ==0.10.*
      , hspec ==2.7.*
      , process >=1.6 && <1.6.18
      , text >=1.2.4.0 && <1.3