cabal-version:      >=1.10
name:               aeson-extra
version:            0.4.1.3
synopsis:           Extra goodies for aeson
description:
  Package provides extra functionality on top of @aeson@ and @aeson-compat@

category:           Data, Aeson
homepage:           https://github.com/phadej/aeson-extra#readme
bug-reports:        https://github.com/phadej/aeson-extra/issues
author:             Oleg Grenrus <oleg.grenrus@iki.fi>
maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
license:            BSD3
license-file:       LICENSE
tested-with:
  GHC ==7.6.3
   || ==7.8.4
   || ==7.10.3
   || ==8.0.2
   || ==8.2.2
   || ==8.4.4
   || ==8.6.5
   || ==8.8.1

build-type:         Simple
extra-source-files:
  CHANGELOG.md
  README.md

source-repository head
  type:     git
  location: https://github.com/phadej/aeson-extra

library
  hs-source-dirs:   src
  ghc-options:      -Wall
  build-depends:
      aeson                  >=0.7.0.6  && <1.5
    , aeson-compat           >=0.3.0.0  && <0.4
    , attoparsec             >=0.11.3.4 && <0.14
    , attoparsec-iso8601     >=1.0      && <1.1
    , base                   >=4.6      && <4.14
    , base-compat-batteries  >=0.10.1   && <0.12
    , bytestring             >=0.10     && <0.11
    , containers             >=0.5      && <0.7
    , deepseq                >=1.3      && <1.5
    , exceptions             >=0.8      && <0.11
    , hashable               >=1.2      && <1.4
    , parsec                 >=3.1.9    && <3.2
    , recursion-schemes      >=4.1.2    && <5.2
    , scientific             >=0.3      && <0.4
    , semialign              >=1        && <1.2
    , template-haskell       >=2.8      && <2.16
    , text                   >=1.2      && <1.3
    , these                  >=1        && <1.1
    , time                   >=1.4.0.1  && <1.10
    , unordered-containers   >=0.2      && <0.3
    , vector                 >=0.10     && <0.13

  if !impl(ghc >=8.2)
    build-depends: bifunctors >=5.5.2 && <5.6

  if impl(ghc >=7.8)
    exposed-modules:
      Data.Aeson.Extra.SingObject
      Data.Aeson.Extra.SymTag

  exposed-modules:
    Data.Aeson.Extra
    Data.Aeson.Extra.CollapsedList
    Data.Aeson.Extra.Foldable
    Data.Aeson.Extra.Map
    Data.Aeson.Extra.Merge
    Data.Aeson.Extra.Recursive
    Data.Aeson.Extra.Stream
    Data.Aeson.Extra.TH
    Data.Aeson.Extra.Time

  default-language: Haskell2010

test-suite aeson-extra-test
  type:             exitcode-stdio-1.0
  main-is:          Tests.hs
  hs-source-dirs:   test
  ghc-options:      -Wall
  build-depends:
      aeson-extra
    , base
    , containers
    , quickcheck-instances  >=0.3     && <0.4
    , tasty                 >=0.10    && <1.3
    , tasty-hunit           >=0.9     && <0.11
    , tasty-quickcheck      >=0.8     && <0.11
    , time
    , time-parsers          >=0.1.0.0 && <0.2
    , unordered-containers
    , vector

  other-modules:    Orphans
  default-language: Haskell2010
