cabal-version:       >=1.10
name:                openapi3
version:             3.0.1.0

synopsis:            OpenAPI 3.0 data model
category:            Web, Swagger, OpenApi
description:
  This library is intended to be used for decoding and encoding OpenAPI 3.0 API
  specifications as well as manipulating them.
  .
  The original OpenAPI 3.0 specification is available at http://swagger.io/specification/.

homepage:            https://github.com/biocad/openapi3
bug-reports:         https://github.com/biocad/openapi3/issues
license:             BSD3
license-file:        LICENSE
author:              Nickolay Kudasov, Maxim Koltsov
maintainer:          nickolay@getshoptv.com, kolmax94@gmail.com
copyright:           (c) 2015-2016, GetShopTV, (c) 2020, Biocad
build-type:          Custom
extra-source-files:
    README.md
  , CHANGELOG.md
  , examples/*.hs
tested-with:
  GHC ==8.4.4
   || ==8.6.5
   || ==8.8.3
   || ==8.10.1

custom-setup
  setup-depends:
    base, Cabal, cabal-doctest >=1.0.6 && <1.1

library
  hs-source-dirs:      src
  exposed-modules:
    Data.OpenApi
    Data.OpenApi.Declare
    Data.OpenApi.Lens
    Data.OpenApi.Operation
    Data.OpenApi.Optics
    Data.OpenApi.ParamSchema
    Data.OpenApi.Schema
    Data.OpenApi.Schema.Generator
    Data.OpenApi.Schema.Validation
    Data.OpenApi.SchemaOptions

    -- internal modules
    Data.OpenApi.Internal
    Data.OpenApi.Internal.Schema
    Data.OpenApi.Internal.Schema.Validation
    Data.OpenApi.Internal.ParamSchema
    Data.OpenApi.Internal.Utils
    Data.OpenApi.Internal.AesonUtils
    Data.OpenApi.Internal.TypeShape

  -- GHC boot libraries
  build-depends:
      base             >=4.11.1.0  && <4.15
    , bytestring       >=0.10.8.2  && <0.11
    , containers       >=0.5.11.0  && <0.7
    , template-haskell >=2.13.0.0  && <2.17
    , time             >=1.8.0.2   && <1.10
    , transformers     >=0.5.5.0   && <0.6

  build-depends:
      mtl              >=2.2.2   && <2.3
    , text             >=1.2.3.1 && <1.3

  -- other dependencies
  build-depends:
      base-compat-batteries     >=0.11.1   && <0.12
    , aeson                     >=1.4.2.0  && <1.6
    , aeson-pretty              >=0.8.7    && <0.9
    -- cookie 0.4.3 is needed by GHC 7.8 due to time>=1.4 constraint
    , cookie                    >=0.4.3    && <0.5
    , generics-sop              >=0.5.1.0  && <0.6
    , hashable                  >=1.2.7.0  && <1.4
    , http-media                >=0.8.0.0  && <0.9
    , insert-ordered-containers >=0.2.3    && <0.3
    , lens                      >=4.16.1   && <4.20
    , network                   >=2.6.3.5  && <3.2
    , optics-core               >=0.2      && <0.4
    , optics-th                 >=0.2      && <0.4
    , scientific                >=0.3.6.2  && <0.4
    , unordered-containers      >=0.2.9.0  && <0.3
    , uuid-types                >=1.0.3    && <1.1
    , vector                    >=0.12.0.1 && <0.13
    , QuickCheck                >=2.10.1   && <2.15

  default-language:    Haskell2010

test-suite spec
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Spec.hs

  -- From library parat
 -- We need aeson's toEncoding for doctests too
  build-depends:
      base
    , QuickCheck
    , aeson
    , base-compat-batteries
    , bytestring
    , containers
    , hashable
    , insert-ordered-containers
    , lens
    , mtl
    , openapi3
    , template-haskell
    , text
    , time
    , unordered-containers
    , vector

  -- test-suite only dependencies
  build-depends:
      hspec                >=2.5.5   && <2.8
    , HUnit                >=1.6.0.0 && <1.7
    , quickcheck-instances >=0.3.19  && <0.14
    , utf8-string          >=1.0.1.1 && <1.1

  -- https://github.com/haskell/cabal/issues/3708
  build-tool-depends:
    hspec-discover:hspec-discover >=2.5.5 && <2.8

  other-modules:
    SpecCommon
    Data.OpenApiSpec
    Data.OpenApi.CommonTestTypes
    Data.OpenApi.ParamSchemaSpec
    Data.OpenApi.SchemaSpec
    Data.OpenApi.Schema.ValidationSpec
    Data.OpenApi.Schema.GeneratorSpec
  default-language: Haskell2010

test-suite doctests
  -- See QuickCheck note in https://github.com/phadej/cabal-doctest#notes
  build-depends:    base, doctest, Glob, QuickCheck
  default-language: Haskell2010
  hs-source-dirs:   test
  main-is:          doctests.hs
  type:             exitcode-stdio-1.0

executable example
  hs-source-dirs:   examples
  main-is:          hackage.hs
  default-language: Haskell2010
  build-depends:    base, aeson, lens, openapi3, text

source-repository head
  type:     git
  location: https://github.com/biocad/openapi3.git