packages feed

serversession-frontend-wai 1.0 → 1.0.1

raw patch · 4 files changed

+23/−9 lines, 4 filesnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Web.ServerSession.Frontend.Wai.Internal: instance KeyValue SessionMap
+ Web.ServerSession.Frontend.Wai: type family Value sess :: Type;
+ Web.ServerSession.Frontend.Wai: }
+ Web.ServerSession.Frontend.Wai.Internal: instance Web.ServerSession.Frontend.Wai.Internal.KeyValue Web.ServerSession.Core.Internal.SessionMap
+ Web.ServerSession.Frontend.Wai.Internal: type family Value sess :: Type;
+ Web.ServerSession.Frontend.Wai.Internal: }
- Web.ServerSession.Frontend.Wai: class IsSessionData sess => KeyValue sess where type family Key sess :: * type family Value sess :: *
+ Web.ServerSession.Frontend.Wai: class IsSessionData sess => KeyValue sess where {
- Web.ServerSession.Frontend.Wai: data ForceInvalidate :: *
+ Web.ServerSession.Frontend.Wai: data ForceInvalidate
- Web.ServerSession.Frontend.Wai: data State sto :: * -> *
+ Web.ServerSession.Frontend.Wai: data State sto
- Web.ServerSession.Frontend.Wai.Internal: class IsSessionData sess => KeyValue sess where type family Key sess :: * type family Value sess :: *
+ Web.ServerSession.Frontend.Wai.Internal: class IsSessionData sess => KeyValue sess where {

Files

+ changelog.md view
@@ -0,0 +1,3 @@+# 1.0.1++* support GHC 9.0
serversession-frontend-wai.cabal view
@@ -1,19 +1,25 @@+cabal-version:   >= 1.10 name:            serversession-frontend-wai-version:         1.0+version:         1.0.1 license:         MIT license-file:    LICENSE author:          Felipe Lessa <felipe.lessa@gmail.com>-maintainer:      Felipe Lessa <felipe.lessa@gmail.com>+maintainer:      Michael Xavier <michael@michaelxavier.net> synopsis:        wai-session bindings for serversession. category:        Web stability:       Stable-cabal-version:   >= 1.8 build-type:      Simple homepage:        https://github.com/yesodweb/serversession description:     API docs and the README are available at <http://www.stackage.org/package/serversession-frontend-wai> extra-source-files: README.md+                    changelog.md +flag lib-Werror+  default: False+  manual: True+ library+  default-language: Haskell2010   hs-source-dirs: src   build-depends:       base                      >= 4.6   && < 5@@ -33,11 +39,15 @@   exposed-modules:     Web.ServerSession.Frontend.Wai     Web.ServerSession.Frontend.Wai.Internal-  extensions:+  default-extensions:     FlexibleContexts     OverloadedStrings     TypeFamilies   ghc-options:     -Wall+  if flag(lib-Werror)+    ghc-options: -Werror+  if impl(ghc >= 8.0.0)+    ghc-options: -Wno-redundant-constraints  source-repository head   type:     git
src/Web/ServerSession/Frontend/Wai.hs view
@@ -6,7 +6,7 @@ --   @Max-age@ field is not supported by all browsers: some --   browsers will treat them as non-persistent cookies. -----   * Also, the @Max-age@ is fixed and does not take a given a+--   * Also, the @Max-age@ is fixed and does not take a given --   session into consideration. module Web.ServerSession.Frontend.Wai   ( -- * Simple interface
src/Web/ServerSession/Frontend/Wai/Internal.hs view
@@ -10,11 +10,12 @@   , forceInvalidate   ) where -import Control.Applicative ((<$>))+import Control.Applicative as A import Control.Monad (guard) import Control.Monad.IO.Class (MonadIO(..)) import Data.ByteString (ByteString) import Data.Default (def)+import Data.Kind (Type) import Data.Text (Text) import Web.PathPieces (toPathPiece) import Web.ServerSession.Core@@ -80,7 +81,7 @@   -- We need to use atomicModifyIORef instead of readIORef   -- because latter may be reordered (cf. "Memory Model" on   -- Data.IORef's documentation).-  ( \k   -> kvLookup k <$> liftIO (I.atomicModifyIORef' sessionRef $ \a -> (a, a))+  ( \k   -> kvLookup k A.<$> liftIO (I.atomicModifyIORef' sessionRef $ \a -> (a, a))   , \k v -> liftIO (I.atomicModifyIORef' sessionRef $ flip (,) () . kvInsert k v)   ) @@ -91,8 +92,8 @@ -- | Class for session data types that can be used as key-value -- stores. class IsSessionData sess => KeyValue sess where-  type Key   sess :: *-  type Value sess :: *+  type Key   sess :: Type+  type Value sess :: Type   kvLookup :: Key sess -> sess -> Maybe (Value sess)   kvInsert :: Key sess -> Value sess -> sess -> sess