-- Initial wai-enforce-https.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

name:                wai-enforce-https
version:             0.0.1
synopsis:            Enforce HTTPS in Wai server app safely.
description:         Wai middleware enforcing HTTPS protocol on any incomming request. In case of non-encrypted HTTP, traffic is redirected using 301 Permanent Redirect or optionally 307 Temporary Redirect. Middleware has compatibility modes for various reverse proxies (load balancers) and therefore can be used with Heroku, Google Cloud (Ingress), Azure or any other type of PAS or Cloud provider.
homepage:            https://github.com/turboMaCk/wai-enforce-https
license:             BSD3
license-file:        LICENSE
author:              Marek Fajkus
maintainer:          marek.faj@gmail.com
-- copyright:
category:            Web
build-type:          Simple
extra-source-files:  CHANGELOG.md
cabal-version:       >=1.10
source-repository head
  type:              git
  location:          https://github.com/turboMaCk/wai-enforce-https.git

library
  exposed-modules:     Network.Wai.Middleware.EnforceHTTPS
                     , Network.HTTP.Forwarded
  -- other-modules:
  -- other-extensions:
  build-depends:       base                      >= 4 && < 5
                     , wai
                     , network
                     , http-types
                     , bytestring
                     , text
                     , case-insensitive
  default-language:    Haskell2010

test-suite spec
    type:              exitcode-stdio-1.0
    hs-source-dirs:    test
    main-is:           Spec.hs
    other-modules:     EnforceHTTPSSpec
                     , ForwardedSpec
    build-depends:     base
                     , hspec
                     , wai-enforce-https
                     , wai
                     , wai-extra
                     , http-types
                     , bytestring
                     , case-insensitive
    ghc-options:       -Wall
    default-language:  Haskell2010

executable example-tls
    hs-source-dirs:    examples
    main-is:           TLSApp.hs
    build-depends:     base
                     , wai-enforce-https
                     , wai
                     , warp
                     , warp-tls
                     , http-types
    ghc-options:       -Wall
    default-language:  Haskell2010

executable example-proxy
    hs-source-dirs:    examples
    main-is:           Proxy.hs
    build-depends:     base
                     , wai-enforce-https
                     , wai
                     , warp
                     , http-types
    ghc-options:       -Wall
    default-language:  Haskell2010