packages feed

effectful-zoo-0.0.2.0: effectful-zoo.cabal

cabal-version: 3.4

name:                   effectful-zoo
version:                0.0.2.0
synopsis:               Effectful effects for testing
description:            See https://hackage.haskell.org/package/effectful-zoo/docs/effectful-zoo.html
category:               Development
homepage:               https://github.com/haskell-works/effectful-zoo#readme
bug-reports:            https://github.com/haskell-works/effectful-zoo/issues
author:                 John Ky
maintainer:             newhoggy@gmail.com
copyright:              2024 John Ky
license:                BSD-3-Clause
license-file:           LICENSE
build-type:             Simple
extra-doc-files:        README.md
                        CHANGELOG.md

source-repository head
  type: git
  location: https://github.com/haskell-works/effectful-zoo

common base                       { build-depends: base                       >= 4.17.2.1   && < 4.20   }

common aeson                      { build-depends: aeson                      >= 2.2.3      && < 3      }
common aeson-pretty               { build-depends: aeson-pretty               >= 0.8.10     && < 1      }
common amazonka                   { build-depends: amazonka                   >= 2          && < 3      }
common amazonka-core              { build-depends: amazonka-core              >= 2          && < 3      }
common amazonka-rds-data          { build-depends: amazonka-rds-data          >= 2          && < 3      }
common blockfrost-api             { build-depends: blockfrost-api             >= 0.11       && < 0.12   }
common blockfrost-client          { build-depends: blockfrost-client          >= 0.8        && < 0.9    }
common bytestring                 { build-depends: bytestring                 >= 0.11       && < 1      }
common effectful                  { build-depends: effectful                  >= 2.5        && < 3      }
common effectful-core             { build-depends: effectful-core             >= 2.5        && < 3      }
common effectful-plugin           { build-depends: effectful-plugin           >= 1.1.0.4    && < 2      }
common generic-lens               { build-depends: generic-lens               >= 2.2.2      && < 3      }
common hedgehog                   { build-depends: hedgehog                   >= 1.5        && < 2      }
common HUnit                      { build-depends: HUnit                      >= 1.6.2      && < 2      }
common hw-prelude                 { build-depends: hw-prelude                 >= 0.0.4.2    && < 0.1    }
common microlens                  { build-depends: microlens                  >= 0.4.13.1   && < 0.5    }
common rds-data-codecs            { build-depends: rds-data:codecs            >= 0.1.1.1    && < 0.2    }
common resourcet                  { build-depends: resourcet                  >= 1.3        && < 2      }
common resourcet-effectful        { build-depends: resourcet-effectful        >= 1.0.1      && < 2      }
common tasty                      { build-depends: tasty                      >= 1.4.3      && < 1.5    }
common tasty-hedgehog             { build-depends: tasty-hedgehog             >= 1.1.0.0    && < 1.5    }
common text                       { build-depends: text                       >= 2          && < 3      }
common time                       { build-depends: time                       >= 1.12       && < 2      }
common transformers               { build-depends: transformers               >= 0.5.6.2    && < 0.7    }
common yaml                       { build-depends: yaml                       >= 0.11.11.2  && < 1      }

common effectful-zoo-amazonka     { build-depends: effectful-zoo:amazonka                               }
common effectful-zoo-core         { build-depends: effectful-zoo:core                                   }
common effectful-zoo-hedgehog     { build-depends: effectful-zoo:hedgehog                               }

common project-config
  default-extensions:   AllowAmbiguousTypes
                        ApplicativeDo
                        BlockArguments
                        DataKinds
                        DefaultSignatures
                        DeriveAnyClass
                        DerivingStrategies
                        DerivingVia
                        DisambiguateRecordFields
                        DuplicateRecordFields
                        FunctionalDependencies
                        GADTs
                        ImportQualifiedPost
                        LambdaCase
                        LiberalTypeSynonyms
                        MonadComprehensions
                        MultiWayIf
                        NoFieldSelectors
                        NoImplicitPrelude
                        OverloadedLabels
                        OverloadedLists
                        OverloadedRecordDot
                        OverloadedStrings
                        PackageImports
                        PartialTypeSignatures
                        PatternSynonyms
                        QuantifiedConstraints
                        QuasiQuotes
                        RecordWildCards
                        RecursiveDo
                        RoleAnnotations
                        TemplateHaskell
                        TypeFamilies
                        TypeFamilyDependencies
                        UndecidableInstances
                        UnicodeSyntax
                        ViewPatterns
  ghc-options:          -Wall
                        -Widentities
                        -Wincomplete-uni-patterns
                        -Wmissing-deriving-strategies
                        -Wredundant-constraints
                        -Wunused-packages
  default-language:     GHC2021

library core
  import:               base, project-config,
                        aeson,
                        bytestring,
                        effectful-core,
                        effectful-core,
                        effectful-plugin,
                        effectful,
                        hw-prelude,
                        text,
                        time,
                        yaml,
  visibility:           public
  exposed-modules:      Effectful.Zoo.Console.Data.Writer
                        Effectful.Zoo.Console.Dynamic
                        Effectful.Zoo.Console.Dynamic.Api
                        Effectful.Zoo.Console.Dynamic.Effect
                        Effectful.Zoo.Console.Dynamic.Run
                        Effectful.Zoo.Console.Effect
                        Effectful.Zoo.Console.Static
                        Effectful.Zoo.Core
                        Effectful.Zoo.Core.Error.Dynamic
                        Effectful.Zoo.Core.Error.Static
                        Effectful.Zoo.Core.Exception
                        Effectful.Zoo.Core.Function
                        Effectful.Zoo.Core.Prim
                        Effectful.Zoo.DataLog.Api
                        Effectful.Zoo.DataLog.Data.DataLogger
                        Effectful.Zoo.DataLog.Data.LogEntry
                        Effectful.Zoo.DataLog.Dynamic
                        Effectful.Zoo.DataLog.Static
                        Effectful.Zoo.FileSystem
                        Effectful.Zoo.Lazy.Dynamic
                        Effectful.Zoo.Log.Api
                        Effectful.Zoo.Log.Api.Generic
                        Effectful.Zoo.Log.Api.LazyText
                        Effectful.Zoo.Log.Api.Render
                        Effectful.Zoo.Log.Api.String
                        Effectful.Zoo.Log.Api.Text
                        Effectful.Zoo.Log.Data.Logger
                        Effectful.Zoo.Log.Data.LogMessage
                        Effectful.Zoo.Log.Data.Severity
                        Effectful.Zoo.Log.Dynamic
                        Effectful.Zoo.Log.Static
                        Effectful.Zoo.Unsafe
  ghc-options:          -fplugin=Effectful.Plugin
  hs-source-dirs:       components/core

library amazonka
  import:               base, project-config,
                        amazonka,
                        bytestring,
                        effectful,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-core,
                        generic-lens,
                        hw-prelude,
                        microlens,
                        resourcet,
                        resourcet-effectful,
                        text,
                        time,
  visibility:           public
  exposed-modules:      Effectful.Zoo.Amazonka.Api
                        Effectful.Zoo.Amazonka.Api.Discover
                        Effectful.Zoo.Amazonka.Api.Log
                        Effectful.Zoo.Amazonka.Api.Run
                        Effectful.Zoo.Amazonka.Api.Send
                        Effectful.Zoo.Amazonka.Data
                        Effectful.Zoo.Amazonka.Data.AwsError
                        Effectful.Zoo.Amazonka.Data.AwsEnv
                        Effectful.Zoo.Amazonka.Data.AwsLogEntry
                        Effectful.Zoo.Amazonka.Data.AwsLogLevel
                        Effectful.Zoo.Amazonka.Data.AwsRequest
                        Effectful.Zoo.Amazonka.Data.AwsResponse
                        Effectful.Zoo.Amazonka.Data.AwsService
                        Effectful.Zoo.Amazonka.Dynamic
                        Effectful.Zoo.Amazonka.Static
  ghc-options:          -fplugin=Effectful.Plugin
  hs-source-dirs:       components/amazonka

library blockfrost
  import:               base, project-config,
                        blockfrost-api,
                        blockfrost-client,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-core,
                        hw-prelude,
                        text,
  visibility:           public
  exposed-modules:      Effectful.Zoo.Blockfrost
                        Effectful.Zoo.Blockfrost.Api
                        Effectful.Zoo.Blockfrost.Types
                        Effectful.Zoo.Blockfrost.Dynamic
  ghc-options:          -fplugin=Effectful.Plugin
  hs-source-dirs:       components/blockfrost

library rds-data
  import:               base, project-config,
                        aeson,
                        amazonka,
                        amazonka-rds-data,
                        bytestring,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-amazonka,
                        effectful-zoo-core,
                        generic-lens,
                        hw-prelude,
                        microlens,
                        rds-data-codecs,
                        text,
  visibility:           public
  exposed-modules:      Effectful.Zoo.RdsData.Core
                        Effectful.Zoo.RdsData.Errors
                        Effectful.Zoo.RdsData.Errors.RdsDataError
                        Effectful.Zoo.RdsData.Migration
  ghc-options:          -fplugin=Effectful.Plugin
  hs-source-dirs:       components/rds-data

library hedgehog
  import:               base, project-config,
                        aeson,
                        aeson-pretty,
                        bytestring,
                        effectful-core,
                        effectful-plugin,
                        effectful-zoo-core,
                        hedgehog,
                        hw-prelude,
                        tasty-hedgehog,
                        tasty,
                        text,
                        transformers,
                        yaml,
  visibility:           public
  exposed-modules:      Effectful.Zoo.Hedgehog
                        Effectful.Zoo.Hedgehog.Api
                        Effectful.Zoo.Hedgehog.Api.Assert
                        Effectful.Zoo.Hedgehog.Api.Classify
                        Effectful.Zoo.Hedgehog.Api.Eval
                        Effectful.Zoo.Hedgehog.Api.Failure
                        Effectful.Zoo.Hedgehog.Api.Journal
                        Effectful.Zoo.Hedgehog.Api.Run
                        Effectful.Zoo.Hedgehog.Dynamic
                        Effectful.Zoo.Hedgehog.MonadTestProxy
  ghc-options:          -fplugin=Effectful.Plugin
  hs-source-dirs:       components/hedgehog

library hunit
  import:               base, project-config,
                        hedgehog,
                        HUnit,
                        hw-prelude,
  visibility:           public
  exposed-modules:      Effectful.Zoo.HUnit
  hs-source-dirs:       components/hunit

test-suite effectful-zoo-test
  import:               project-config,
                        effectful-core,
                        effectful-zoo-core,
                        effectful-zoo-hedgehog,
                        hw-prelude,
                        tasty,
  type:                 exitcode-stdio-1.0
  main-is:              Main.hs
  other-modules:        Effectful.Zoo.Hedgehog.Test.HedgehogTest
  hs-source-dirs:       components/hedgehog-test
  ghc-options:          -threaded
                        -rtsopts
                        -with-rtsopts=-N