packages feed

spotify-0.1.0.0: spotify.cabal

cabal-version:      3.0
name:               spotify
version:            0.1.0.0
author:             George Thomas
maintainer:         George Thomas
description:        Bindings for interacting with the Spotify Web API
synopsis:           Spotify Web API
homepage:           https://github.com/georgefst/spotify
license:            BSD-3-Clause
license-file:       LICENSE
category:           Music, Web
build-type:         Simple
extra-source-files:
    CHANGELOG.md
    README.md

source-repository head
    type: git
    location: git://github.com/georgefst/spotify.git

common common
    build-depends:
        base >= 4.16 && < 5,
        aeson ^>= 2.1.0,
        bytestring ^>= 0.11.3,
        composition ^>= 1.0.2,
        containers ^>= 0.6.5,
        directory ^>= 1.3.6,
        exceptions ^>= 0.10,
        extra ^>= 1.7.12,
        filepath ^>= 1.4.2,
        monad-loops ^>= 0.4.3,
        mtl ^>= {2.2.2, 2.3},
        pretty-simple ^>= 4.1,
        servant ^>= 0.19,
        text ^>= {1.2.5, 2.0},
        transformers ^>= {0.5.6, 0.6},
        time ^>= {1.11.1, 1.12},
        unordered-containers ^>= 0.2.19,
    default-language: GHC2021
    default-extensions:
        AllowAmbiguousTypes
        BlockArguments
        DataKinds
        DeriveAnyClass
        DerivingStrategies
        DerivingVia
        DuplicateRecordFields
        ExplicitNamespaces
        ImpredicativeTypes
        LambdaCase
        NoFieldSelectors
        NoMonomorphismRestriction
        OverloadedLabels
        OverloadedRecordDot
        OverloadedStrings
        PartialTypeSignatures
        RecordWildCards
        ViewPatterns
    ghc-options:
        -Wall
        -threaded

library spotify-types
    import: common
    hs-source-dirs: types
    exposed-modules:
        Spotify.Types.Albums
        Spotify.Types.Artists
        Spotify.Types.Tracks
        Spotify.Types.Search
        Spotify.Types.Users
        Spotify.Types.Playlists
        Spotify.Types.Categories
        Spotify.Types.Player
        Spotify.Types.Simple
        Spotify.Types.Misc
        Spotify.Types.Auth
        Spotify.Types.Internal.CustomJSON
        Spotify.Types.Internal.EnumJSON
    build-depends:
        base64-bytestring ^>= 1.2.1,

library spotify-servant
    import: common
    hs-source-dirs: servant
    exposed-modules:
        Spotify.Servant.Core
        Spotify.Servant.Albums
        Spotify.Servant.Artists
        Spotify.Servant.Tracks
        Spotify.Servant.Search
        Spotify.Servant.Users
        Spotify.Servant.Playlists
        Spotify.Servant.Categories
        Spotify.Servant.Player
    other-modules:
        Orphans.Servant.Lucid
    build-depends:
        spotify-types,
        http-api-data ^>= {0.4.3, 0.5},
        servant-client ^>= 0.19,
        servant-lucid ^>= 0.9,

library
    import: common
    hs-source-dirs: lib
    exposed-modules:
        Spotify
    build-depends:
        spotify-types,
        spotify-servant,
        http-client ^>= 0.7.13,
        http-client-tls ^>= 0.3.6,
        http-types ^>= 0.12.3,
        lucid ^>= 2.11,
        servant-client ^>= 0.19,
        servant-lucid ^>= 0.9,

executable examples
    import: common
    hs-source-dirs: examples
    main-is: Main.hs
    other-modules:
        Spotify.CheckPlaylistOverlap
        Spotify.CreateArtistLikedSongsPlaylist
        Spotify.CreatePlaylist
        Spotify.DeleteRecentPlaylists
        Spotify.TransferPlayback
    build-depends:
        spotify-types,
        spotify-servant,
        spotify,

test-suite tests
    import: common
    type: detailed-0.9
    test-module: Test
    hs-source-dirs: test
    build-depends:
        spotify,
        spotify-types,
        spotify-servant,
        Cabal ^>= {3.6, 3.8, 3.10},