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 +5/−1
- internal/Base64.hs +30/−0
- internal/Session/Key.hs +6/−3
- package.yaml +1/−1
- yesod-session-persist.cabal +2/−1
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