cabal-version:       3.0

name:                wai-secure-cookies
version:             0.1.0.7
synopsis:            WAI middleware to automatically encrypt and sign cookies
description:         wai-secure-cookies is a WAI middleware to automatically encrypt and sign cookies w/ specified keys, and a command line tool to generate those keys
homepage:            https://github.com/habibalamin/wai-secure-cookies
license:             MIT
license-file:        LICENSE
author:              Habib Alamin
maintainer:          ha.alamin@gmail.com
copyright:           © حبيب الأمين ‪2023
category:            Web
build-type:          Simple
extra-source-files:  README.md

library
  hs-source-dirs:      src
  default-language:    Haskell2010
  exposed-modules:     Cookie.Secure.Middleware
  other-modules:       Cookie.Secure
                     , Crypto.Encryption
                     , Crypto.Verification
                     , Extension.Either
                     , Extension.ByteString
  build-depends:       base >= 4.7 && < 5
                     , wai >= 3.2 && < 4
                     , cryptonite >= 0.24 && < 0.31
                     , bytestring >= 0.10 && < 0.12
                     , memory >= 0.14 && < 0.19
                     , random >= 1.1 && < 1.3
                     , split >= 0.2 && < 0.3
                     , http-types >= 0.12.1 && < 0.13

test-suite wai-secure-cookies-test
  hs-source-dirs:      spec
  default-language:    Haskell2010
  other-modules:       MiddlewareSpec
  type:                exitcode-stdio-1.0
  main-is:             Main.hs
  build-tool-depends:  hspec-discover:hspec-discover
  build-depends:       base
                     , bytestring
                     , wai
                     , wai-extra >= 3 && < 4
                     , http-types
                     , wai-secure-cookies
                     , hspec >= 2.6 && < 2.12
                     , hspec-expectations >= 0.8.2 && < 0.9
                     , hspec-wai >= 0.9.1 && < 0.12
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N

executable waicookie-genkey
  hs-source-dirs:      keygensrc
  default-language:    Haskell2010
  main-is:             Main.hs
  build-depends:       base
                     , cryptonite
                     , bytestring
                     , memory

source-repository head
  type:              git
  location:          https://github.com/habibalamin/wai-secure-cookies