packages feed

wikimusic-api-1.2.0.8: wikimusic-api.cabal

cabal-version: 1.12

name:           wikimusic-api
version:        1.2.0.8
description:    Please see the README at <https://codeberg.org/jjba23/wikimusic-api>
homepage:       https://codeberg.org/jjba23/wikimusic-api
bug-reports:    https://codeberg.org/jjba23/wikimusic-api/-/issues
author:         Josep Bigorra
maintainer:     Josep Bigorra <jjbigorra@gmail.com>
copyright:      2023 Josep Bigorra
license:        GPL-3
license-file:   COPYING
build-type:     Simple
                
extra-source-files:
    README.org

source-repository head
  type: git
  location: https://codeberg.org/jjba23/wikimusic-api

library
  exposed-modules:
      -- λ main
      WikiMusic.Config
      WikiMusic.Boot
      
      -- λ servant
      WikiMusic.Servant.ApiSetup
      WikiMusic.Servant.ArtistRoutes
      WikiMusic.Servant.AuthRoutes
      WikiMusic.Servant.GenreRoutes
      WikiMusic.Servant.SongRoutes
      WikiMusic.Servant.UserRoutes
      WikiMusic.Servant.Utilities
      
      -- λ interactions with wikimusic's system
      WikiMusic.Interaction.Artist
      WikiMusic.Interaction.Auth
      WikiMusic.Interaction.User
      WikiMusic.Interaction.Genre
      WikiMusic.Interaction.Mail
      WikiMusic.Interaction.Song

      -- λ free monadic definition of wikimusic's system and possible interactions
      WikiMusic.Free.ArtistCommand
      WikiMusic.Free.ArtistQuery
      WikiMusic.Free.AuthQuery
      WikiMusic.Free.GenreCommand
      WikiMusic.Free.GenreQuery      
      WikiMusic.Free.SongCommand
      WikiMusic.Free.SongQuery
      WikiMusic.Free.UserCommand
      WikiMusic.Free.MailCommand      
      WikiMusic.Free.UserQuery
      WikiMusic.Free.Clock
      WikiMusic.Free.Logger

      WikiMusic.Model.Config
      WikiMusic.Model.Env

      WikiMusic.Beam.Artist
      WikiMusic.Beam.Genre
      WikiMusic.Beam.Song
      WikiMusic.Beam.Database
      WikiMusic.Beam.User
      WikiMusic.Beam.Util
      WikiMusic.Beam.Relations
      
      -- λ sqlite implementations
      WikiMusic.Sqlite.ArtistCommand
      WikiMusic.Sqlite.ArtistQuery
      WikiMusic.Sqlite.AuthQuery
      WikiMusic.Sqlite.GenreCommand
      WikiMusic.Sqlite.GenreQuery
      WikiMusic.Sqlite.SongCommand
      WikiMusic.Sqlite.SongQuery
      WikiMusic.Sqlite.UserQuery
      WikiMusic.Sqlite.UserCommand      
      
      -- λ clock
      WikiMusic.Clock.LiveClock

      -- λ logging
      WikiMusic.Console.Logger

      -- λ mail
      WikiMusic.Smtp.MailCommandSES

      -- λ custom prelude
      WikiMusic.Protolude
      
  other-modules:
      Paths_wikimusic_api
  hs-source-dirs:
      src
  ghc-options: -Wall -threaded
  default-extensions:
      DataKinds
      DefaultSignatures
      DuplicateRecordFields
      EmptyDataDecls
      ExistentialQuantification
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      InstanceSigs
      KindSignatures
      LambdaCase
      MultiWayIf
      NamedFieldPuns
      NoImplicitPrelude
      OverloadedStrings
      PartialTypeSignatures
      RecordWildCards
      TypeFamilies
      ViewPatterns

  build-depends:
      aeson
    , async
    , base < 5
    , bytestring
    , contravariant-extras
    , keuringsdienst
    , keys
    , mtl
    , openapi3
    , optics
    , optparse-applicative
    , password
    , password-types
    , relude
    , time
    , servant
    , servant-openapi3
    , servant-server
    , text
    , containers
    , filepath
    , directory
    , uuid
    , wai
    , wai-cors
    , wai-extra
    , wai-logger
    , warp
    , prometheus-client
    , prometheus-metrics-ghc
    , wai-middleware-prometheus
    , smtp-mail
    , mime-mail
    , base64-bytestring
    , neat-interpolation
    , HTTP
    , free-alacarte
    , tomland
    , wikimusic-model-hs
    , wikimusic-api-spec
    , word8
    , beam-core
    , beam-sqlite
    , sqlite-simple
    , yggdrasil-schema
  default-language: GHC2021

executable wikimusic-api-exe
  main-is: Main.hs
  other-modules:
      Paths_wikimusic_api
  hs-source-dirs:
      app
  ghc-options: -Wall -threaded -rtsopts "-with-rtsopts=-T -N"
  default-extensions:
      DataKinds
      DefaultSignatures
      DuplicateRecordFields
      EmptyDataDecls
      ExistentialQuantification
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      InstanceSigs
      KindSignatures
      LambdaCase
      MultiWayIf
      NamedFieldPuns
      NoImplicitPrelude
      OverloadedStrings
      PartialTypeSignatures
      RecordWildCards
      TypeFamilies
      ViewPatterns

  build-depends:
    base
    , wikimusic-api    
  default-language: GHC2021

test-suite wikimusic-api-spec
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_wikimusic_api
      WikiMusic.Test.Integration
      WikiMusic.Test.Principium
  hs-source-dirs:
      test
  ghc-options: -Wall -threaded -rtsopts "-with-rtsopts=-T -N"
  default-extensions:
      DataKinds
      DefaultSignatures
      DuplicateRecordFields
      EmptyDataDecls
      ExistentialQuantification
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      InstanceSigs
      KindSignatures
      LambdaCase
      MultiWayIf
      NamedFieldPuns
      NoImplicitPrelude
      OverloadedStrings
      PartialTypeSignatures
      RecordWildCards
      TypeFamilies
      ViewPatterns

  build-depends:
    wikimusic-api
    , base
    , hspec
    , QuickCheck
    , tasty
    , tasty-hspec
    , relude
    , wai
    , wai-logger
    , random
    , uuid
    , text
    , http-client
    , http-types
    , containers
    , optics
    , beam-core
    , beam-sqlite
    , sqlite-simple
    , neat-interpolation
    , time
    , password
    , password-types
    , directory
    , keuringsdienst
    , wikimusic-model-hs
    , wikimusic-api-spec
    , yggdrasil-schema
  default-language: GHC2021