packages feed

openid-connect-0.2.0: openid-connect.cabal

cabal-version:      2.2
name:               openid-connect
version:            0.2.0
license:            BSD-2-Clause
license-file:       LICENSE
author:             Peter Jones <pjones@devalot.com>
maintainer:         Peter Jones <pjones@devalot.com>
copyright:          Copyright (c) 2020-2023 Peter Jones
homepage:           https://github.com/pjones/openid-connect
bug-reports:        https://github.com/pjones/openid-connect/issues
category:           Network
tested-with:        GHC ==8.10.7 || ==9.0.2 || ==9.2.5 || ==9.4.4
synopsis:
  An OpenID Connect library that does all the heavy lifting for you

description:
  This package provides an OpenID Connect 1.0 compliant interface for clients and
  some useful types and functions for providers.
  .
  The primary goals of this package are security and usability.
  .
  To get started, take a look at the "OpenID.Connect.Client.Flow.AuthorizationCode"
  module.

--------------------------------------------------------------------------------
extra-source-files:
  CHANGES.md
  example/*.sh

--------------------------------------------------------------------------------
source-repository head
  type:     git
  location: https://github.com/pjones/openid-connect.git

--------------------------------------------------------------------------------
flag example
  description: Build the example application
  manual:      True
  default:     False

--------------------------------------------------------------------------------
common options
  default-language: Haskell2010
  ghc-options:
    -Wall -Werror=incomplete-record-updates
    -Werror=incomplete-uni-patterns -Werror=missing-home-modules
    -Widentities -Wmissing-export-lists -Wredundant-constraints

--------------------------------------------------------------------------------
common extensions
  default-extensions:
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveAnyClass
    DeriveFunctor
    DeriveGeneric
    DerivingVia
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GeneralizedNewtypeDeriving
    LambdaCase
    MultiParamTypeClasses
    MultiWayIf
    NamedFieldPuns
    OverloadedStrings
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators

--------------------------------------------------------------------------------
common dependencies
  build-depends:
    , aeson                 >=1.3   && <2.2
    , base                  >=4.9   && <5.0
    , bytestring            >=0.10  && <0.12
    , case-insensitive      ^>=1.2
    , containers            ^>=0.6
    , cookie                ^>=0.4
    , cryptonite            >=0.25  && <1.0
    , http-client           >=0.6   && <0.8
    , http-types            ^>=0.12
    , jose                  >=0.10  && <0.11
    , lens                  >=4.0   && <5.3
    , memory                >=0.14  && <1.0
    , mtl                   >=2.2   && <2.4
    , network-uri           >=2.6   && <2.8
    , text                  >=1.2   && <2.1
    , time                  >=1.8   && <2.0
    , unordered-containers  ^>=0.2

--------------------------------------------------------------------------------
library
  import:          options, extensions, dependencies
  hs-source-dirs:  src
  exposed-modules:
    OpenID.Connect.Authentication
    OpenID.Connect.Client.DynamicRegistration
    OpenID.Connect.Client.Flow.AuthorizationCode
    OpenID.Connect.Client.Provider
    OpenID.Connect.Provider.Key
    OpenID.Connect.Scope
    OpenID.Connect.TokenResponse

  other-modules:
    OpenID.Connect.Client.Authentication
    OpenID.Connect.Client.HTTP
    OpenID.Connect.Client.TokenResponse
    OpenID.Connect.Discovery
    OpenID.Connect.JSON
    OpenID.Connect.Registration

--------------------------------------------------------------------------------
executable example
  import:         options, extensions, dependencies
  hs-source-dirs: example
  main-is:        Main.hs
  other-modules:
    Auth
    Discover
    Options
    Util

  if !flag(example)
    buildable: False

  build-depends:
    , blaze-html            ^>=0.9
    , http-client-tls       ^>=0.3
    , openid-connect
    , optparse-applicative  >=0.14 && <0.18
    , servant               >=0.16 && <0.20
    , servant-blaze         ^>=0.9
    , servant-server        >=0.16 && <0.20
    , warp                  >=3.2  && <3.4
    , warp-tls              >=3.2  && <3.4

--------------------------------------------------------------------------------
test-suite test
  import:         options, extensions, dependencies
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  build-depends:
    , openid-connect
    , tasty           >=1.1   && <1.5
    , tasty-hunit     ^>=0.10

  other-modules:
    Client
    Client.AuthorizationCodeTest
    Client.ProviderTest
    DiscoveryTest
    HttpHelper