packages feed

yesod-session-persist 0.0.0.0 → 0.0.0.1

raw patch · 5 files changed

+44/−6 lines, 5 filesdep ~base64

Dependency ranges changed: base64

Files

CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/yesod-session-persist/compare/v__...main)+## [_Unreleased_](https://github.com/freckle/yesod-session-persist/compare/v0.0.0.1...main)++## [v0.0.0.1](https://github.com/freckle/yesod-session-persist/compare/v0.0.0.0...v0.0.0.1)++Add support for `base64` version `1.0`  ## [v0.0.0.0](https://github.com/freckle/yesod-session-persist/tree/v0.0.0.0) 
+ internal/Base64.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE CPP #-}++module Base64+  ( encodeBase64+  , decodeBase64+  ) where++import Data.ByteString (ByteString)+import Data.Either (Either)+import Data.Function ((.))+import Data.Text (Text)+import Data.Text.Encoding qualified as T++#if MIN_VERSION_base64(1,0,0)+import Data.Base64.Types qualified as I (extractBase64)+import Data.ByteString.Base64.URL qualified as I (decodeBase64Untyped, encodeBase64)+#else+import Data.ByteString.Base64.URL qualified as I (decodeBase64, encodeBase64)+#endif++encodeBase64 :: ByteString -> Text+decodeBase64 :: Text -> Either Text ByteString++#if MIN_VERSION_base64(1,0,0)+encodeBase64 = I.extractBase64 . I.encodeBase64+decodeBase64 = I.decodeBase64Untyped . T.encodeUtf8+#else+encodeBase64 = I.encodeBase64+decodeBase64 = I.decodeBase64 . T.encodeUtf8+#endif
internal/Session/Key.hs view
@@ -9,7 +9,7 @@  import Internal.Prelude -import Data.ByteString.Base64.URL qualified as B64URL+import Base64 (decodeBase64, encodeBase64) import Data.ByteString.Char8 qualified as BS8 import Data.Text qualified as T import Data.Text.Encoding (decodeUtf8', encodeUtf8)@@ -34,7 +34,10 @@ makeSessionKeyManager :: Monad m => Randomization m -> SessionKeyManager m makeSessionKeyManager (Randomization generateRandomBytes) =   let-    new = SessionKey . B64URL.encodeBase64 <$> generateRandomBytes keyLengthInBytes+    new =+      SessionKey+        . encodeBase64+        <$> generateRandomBytes keyLengthInBytes      check (SessionKey text) =       T.length text@@ -42,7 +45,7 @@         && either           (const False)           ((== keyLengthInBytes) . BS8.length)-          (B64URL.decodeBase64 $ encodeUtf8 text)+          (decodeBase64 text)   in     SessionKeyManager {new, check} 
package.yaml view
@@ -1,5 +1,5 @@ name: yesod-session-persist-version: 0.0.0.0+version: 0.0.0.1 maintainer: Freckle Education category: Web github: freckle/yesod-session-persist
yesod-session-persist.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.0 name:               yesod-session-persist-version:            0.0.0.0+version:            0.0.0.1 license:            MIT license-file:       LICENSE maintainer:         Freckle Education@@ -47,6 +47,7 @@  library internal     exposed-modules:+        Base64         Comparison         Embedding         Internal.Prelude