cabal-version:      2.2
name:               addy
version:            0.1.0.1
license:            BSD-2-Clause
license-file:       LICENSE
author:             Peter Jones <pjones@devalot.com>
maintainer:         Peter Jones <pjones@devalot.com>
copyright:          Copyright (c) 2019-2020 Peter Jones
homepage:           https://github.com/pjones/addy
bug-reports:        https://github.com/pjones/addy/issues
category:           Text
tested-with:        GHC ==8.6.5 || ==8.8.4 || ==8.10.2
build-type:         Simple
synopsis:
  A full-featured library for parsing, validating, and rendering email addresses

description:
  A modern library for working with email addresses.  This package can
  be used to validate user input or handle various flavors of
  addresses that appear in places such as mail messages.
  .
  Email addresses can be decoded, manipulated, then rendered back to
  text using the simple @local-part\@domain@ format or the more
  complete syntax that allows for display names and comments.
  .
  Comprehensive documentation can be found in the "Addy" module.

--------------------------------------------------------------------------------
extra-source-files:
  README.md
  CHANGES.md
  test/isemail.json
  test/README.md

--------------------------------------------------------------------------------
source-repository head
  type:     git
  location: https://github.com/pjones/addy.git

--------------------------------------------------------------------------------
common options
  default-language:   Haskell2010
  default-extensions:
    DataKinds
    DeriveAnyClass
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingVia
    GeneralizedNewtypeDeriving
    KindSignatures
    LambdaCase
    MultiParamTypeClasses
    MultiWayIf
    NamedFieldPuns
    NumericUnderscores
    OverloadedStrings
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TupleSections
    TypeApplications

  ghc-options:
    -Wall -Wno-name-shadowing -Werror=incomplete-record-updates
    -Werror=incomplete-uni-patterns -Werror=missing-home-modules
    -Widentities -Wmissing-export-lists -Wredundant-constraints

--------------------------------------------------------------------------------
common dependencies
  build-depends:
    , attoparsec            ^>=0.13
    , base                  >=4.9   && <5.0
    , bytestring            >=0.10  && <0.12
    , ip                    >=1.5.1 && <1.8
    , lens                  >=4.17  && <5.0
    , relude                >=0.6   && <0.8
    , text                  ^>=1.2
    , text-icu              ^>=0.7
    , validation-selective  ^>=0.1

  mixins:
    base hiding (Prelude),
    relude (Relude as Prelude)

--------------------------------------------------------------------------------
library
  import:          options, dependencies
  hs-source-dirs:  src
  exposed-modules:
    Addy
    Addy.Internal.Char
    Addy.Internal.Parser
    Addy.Internal.Render
    Addy.Internal.Types
    Addy.Internal.Validation

--------------------------------------------------------------------------------
test-suite test
  import:         options, dependencies
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  other-modules:
    ParserTest
    RenderTest
    TestData

  build-depends:
    , addy
    , aeson           >=1.4
    , hedgehog        ^>=1.0
    , http-types      >=0.12
    , tasty           >=1.1  && <1.5
    , tasty-hedgehog  ^>=1.0
    , tasty-hunit     ^>=0.10

--------------------------------------------------------------------------------
-- test-suite doctests
--   import: options, dependencies
--   type: exitcode-stdio-1.0
--   ghc-options: -threaded
--   hs-source-dirs: test/docs
--   main-is: Main.hs
--   build-depends: doctest >= 0.16