cabal-version:      1.22
name:               freckle-app
version:            1.21.0.0
x-revision: 1
license:            MIT
license-file:       LICENSE
maintainer:         Freckle Education
homepage:           https://github.com/freckle/freckle-app#readme
bug-reports:        https://github.com/freckle/freckle-app/issues
synopsis:           Haskell application toolkit used at Freckle
description:        Please see README.md
category:           Utils
build-type:         Simple
extra-source-files: package.yaml
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
    type:     git
    location: https://github.com/freckle/freckle-app

library
    exposed-modules:
        Freckle.App
        Freckle.App.Async
        Freckle.App.Bugsnag
        Freckle.App.Bugsnag.HttpException
        Freckle.App.Bugsnag.MetaData
        Freckle.App.Bugsnag.SqlError
        Freckle.App.Csv
        Freckle.App.Database
        Freckle.App.Ecs
        Freckle.App.Faktory.ProducerPool
        Freckle.App.Ghci
        Freckle.App.GlobalCache
        Freckle.App.Json.Empty
        Freckle.App.Random
        Freckle.App.Scientist
        Freckle.App.Stats
        Freckle.App.Stats.Rts
        Freckle.App.Test
        Freckle.App.Test.DocTest
        Freckle.App.Test.Hspec.AnnotatedException
        Freckle.App.Test.Hspec.Runner
        Freckle.App.Test.Properties.JSON
        Freckle.App.Test.Properties.PathPiece
        Freckle.App.Test.Properties.PersistValue
        Freckle.App.Test.Yesod
        Freckle.App.TextualEnum
        Freckle.App.Wai
        Freckle.App.Yesod
        Freckle.App.Yesod.Routes
        Network.Wai.Middleware.Cors
        Network.Wai.Middleware.Stats
        Yesod.Core.Lens

    reexported-modules:
        Freckle.App.Dotenv,
        Freckle.App.Env,
        Freckle.App.Http,
        Freckle.App.Http.Cache,
        Freckle.App.Http.Cache.Gzip,
        Freckle.App.Http.Cache.Memcached,
        Freckle.App.Http.Cache.State,
        Freckle.App.Http.Header,
        Freckle.App.Http.Paginate,
        Freckle.App.Http.Retry,
        Freckle.App.HttpSpec,
        Freckle.App.Prelude,
        Freckle.App.Exception,
        Freckle.App.Exception.MonadThrow,
        Freckle.App.Exception.MonadUnliftIO,
        Freckle.App.Exception.Types,
        Freckle.App.Test.Http,
        Freckle.App.Test.Http.MatchRequest

    hs-source-dirs:     library
    other-modules:      Paths_freckle_app
    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingVia DerivingStrategies GADTs
        LambdaCase NoImplicitPrelude NoMonomorphismRestriction
        OverloadedStrings RecordWildCards TypeFamilies

    ghc-options:
        -fignore-optim-changes -fwrite-ide-info -Weverything
        -Wno-all-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-kind-signatures
        -Wno-missing-local-signatures -Wno-missing-safe-haskell-mode
        -Wno-monomorphism-restriction -Wno-prepositive-qualified-module
        -Wno-safe -Wno-unsafe

    build-depends:
        Blammo >=2.1.0.0,
        Blammo-wai >=0.0.0.2,
        Glob >=0.10.2,
        HUnit >=1.6.2.0,
        MonadRandom >=0.5.3,
        QuickCheck >=2.14.3,
        aeson >=2.0.3.0,
        annotated-exception >=0.2.0.4,
        autodocodec >=0.2.0.3,
        autodocodec-openapi3 >=0.2.1.1,
        base >=4.16.4.0 && <5,
        bcp47 >=0.2.0.6,
        bugsnag >=1.1.0.0,
        bytestring >=0.11.4.0,
        case-insensitive >=1.2.1.0,
        cassava >=0.5.3.0,
        conduit >=1.3.5,
        conduit-extra >=1.3.6,
        containers >=0.6.5.1,
        cookie >=0.4.6,
        datadog >=0.3.0.0,
        doctest >=0.20.1,
        ekg-core >=0.1.1.7,
        exceptions >=0.10.4,
        extra >=1.7.13,
        faktory >=1.1.2.4,
        freckle-env >=0.0.1.1,
        freckle-exception >=0.0.0.0,
        freckle-http >=0.0.0.0,
        freckle-otel >=0.0.0.2,
        freckle-prelude >=0.0.1.1,
        hs-opentelemetry-api >=0.1.0.0,
        hs-opentelemetry-instrumentation-persistent >=0.1.0.0,
        hs-opentelemetry-instrumentation-wai >=0.1.0.0,
        hs-opentelemetry-sdk >=0.0.3.6,
        hspec >=2.8.1,
        hspec-core >=2.8.1,
        hspec-expectations-lifted >=0.10.0,
        hspec-junit-formatter >=1.1.1.0,
        http-client >=0.7.13.1,
        http-types >=0.12.3,
        immortal >=0.3,
        lens >=5.1.1,
        monad-control >=1.0.3.1,
        monad-validate >=1.3.0.0,
        mtl >=2.2.2,
        nonempty-containers >=0.3.4.4,
        openapi3 >=3.2.3,
        path-pieces >=0.2.1,
        persistent >=2.13.3.5,
        persistent-postgresql >=2.13.5.2,
        persistent-sql-lifted >=0.1.0.0,
        postgresql-simple >=0.6.4,
        primitive >=0.7.3.0,
        resource-pool >=0.4.0.0,
        resourcet >=1.2.6,
        scientist >=0.0.0.0,
        semigroupoids >=5.3.7,
        servant-server >=0.19.2,
        template-haskell >=2.18.0.0,
        text >=1.2.5.0,
        time >=1.11.1.1,
        transformers >=0.5.6.2,
        transformers-base >=0.4.6,
        typed-process >=0.2.11.0,
        unliftio >=0.2.25.0,
        unordered-containers >=0.2.19.1,
        vector >=0.12.3.1,
        wai >=3.2.3,
        wai-extra >=3.1.13.0,
        yaml >=0.11.11.1,
        yesod-core >=1.6.24.2,
        yesod-test >=1.6.15

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures

test-suite doctest
    type:               exitcode-stdio-1.0
    main-is:            Main.hs
    hs-source-dirs:     doctest
    other-modules:      Paths_freckle_app
    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingVia DerivingStrategies GADTs
        LambdaCase NoImplicitPrelude NoMonomorphismRestriction
        OverloadedStrings RecordWildCards TypeFamilies

    ghc-options:
        -fignore-optim-changes -fwrite-ide-info -Weverything
        -Wno-all-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-kind-signatures
        -Wno-missing-local-signatures -Wno-missing-safe-haskell-mode
        -Wno-monomorphism-restriction -Wno-prepositive-qualified-module
        -Wno-safe -Wno-unsafe

    build-depends:
        base >=4.16.4.0 && <5,
        freckle-app

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures

test-suite spec
    type:               exitcode-stdio-1.0
    main-is:            Main.hs
    hs-source-dirs:     tests
    other-modules:
        Freckle.App.AsyncSpec
        Freckle.App.Bugsnag.MetaDataSpec
        Freckle.App.BugsnagSpec
        Freckle.App.CsvSpec
        Freckle.App.Test.Hspec.AnnotatedExceptionSpec
        Freckle.App.Test.Http.MatchRequestSpec
        Freckle.App.Test.Properties.JSONSpec
        Freckle.App.Test.Properties.PathPieceSpec
        Freckle.App.Test.Properties.PersistValueSpec
        Freckle.App.TextualEnumSpec
        Freckle.App.WaiSpec
        Spec
        Paths_freckle_app

    default-language:   GHC2021
    default-extensions:
        DataKinds DeriveAnyClass DerivingVia DerivingStrategies GADTs
        LambdaCase NoImplicitPrelude NoMonomorphismRestriction
        OverloadedStrings RecordWildCards TypeFamilies

    ghc-options:
        -fignore-optim-changes -fwrite-ide-info -Weverything
        -Wno-all-missed-specialisations -Wno-missing-exported-signatures
        -Wno-missing-import-lists -Wno-missing-kind-signatures
        -Wno-missing-local-signatures -Wno-missing-safe-haskell-mode
        -Wno-monomorphism-restriction -Wno-prepositive-qualified-module
        -Wno-safe -Wno-unsafe -threaded -rtsopts -with-rtsopts=-N

    build-depends:
        Blammo >=2.1.0.0,
        HUnit >=1.6.2.0,
        QuickCheck >=2.14.3,
        aeson >=2.0.3.0,
        annotated-exception >=0.2.0.4,
        async >=2.2.4,
        base >=4.16.4.0 && <5,
        bugsnag >=1.1.0.0,
        bytestring >=0.11.4.0,
        cassava >=0.5.3.0,
        conduit >=1.3.5,
        freckle-app,
        hs-opentelemetry-api >=0.1.0.0,
        hspec >=2.10.10,
        http-types >=0.12.3,
        monad-validate >=1.3.0.0,
        nonempty-containers >=0.3.4.4,
        path-pieces >=0.2.1,
        persistent >=2.13.3.5,
        postgresql-simple >=0.6.4,
        servant-server >=0.19.2,
        vector >=0.12.3.1,
        wai >=3.2.3,
        wai-extra >=3.1.13.0

    if impl(ghc >=9.8)
        ghc-options:
            -Wno-missing-role-annotations -Wno-missing-poly-kind-signatures