yesod-core 1.6.27.0 → 1.6.27.1
raw patch · 70 files changed
+407/−258 lines, 70 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Yesod.Core: data family Route a
+ Yesod.Core.Json: ($dmparseJSON) :: (FromJSON a, Generic a, GFromJSON Zero (Rep a)) => Value -> Parser a
+ Yesod.Core.Json: ($dmtoJSON) :: (ToJSON a, Generic a, GToJSON' Value Zero (Rep a)) => a -> Value
- Yesod.Core: class (MonadResource m, MonadLogger m) => MonadHandler m where {
+ Yesod.Core: class (MonadResource m, MonadLogger m) => MonadHandler (m :: Type -> Type) where {
- Yesod.Core: class MonadHandler m => MonadWidget m
+ Yesod.Core: class MonadHandler m => MonadWidget (m :: Type -> Type)
- Yesod.Core: class Eq (Route a) => RenderRoute a where {
+ Yesod.Core: class Eq Route a => RenderRoute a where {
- Yesod.Core: data () => LogLevel
+ Yesod.Core: data LogLevel
- Yesod.Core: type BottomOfHeadAsync master = -- | urls to load asynchronously [Text] -> -- | widget of js to run on async completion Maybe (HtmlUrl (Route master)) -> -- | widget to insert at the bottom of <head> HtmlUrl (Route master)
+ Yesod.Core: type BottomOfHeadAsync master = [Text] -> Maybe HtmlUrl Route master -> HtmlUrl Route master
- Yesod.Core: type HandlerSite m;
+ Yesod.Core: type HandlerSite (m :: Type -> Type);
- Yesod.Core: type SubHandlerSite m;
+ Yesod.Core: type SubHandlerSite (m :: Type -> Type);
- Yesod.Core: yesodRunner :: forall res site. (ToTypedContent res, Yesod site) => HandlerFor site res -> YesodRunnerEnv site -> Maybe (Route site) -> Application
+ Yesod.Core: yesodRunner :: (ToTypedContent res, Yesod site) => HandlerFor site res -> YesodRunnerEnv site -> Maybe (Route site) -> Application
- Yesod.Core.Dispatch: class () => PathMultiPiece s
+ Yesod.Core.Dispatch: class PathMultiPiece s
- Yesod.Core.Dispatch: class () => PathPiece s
+ Yesod.Core.Dispatch: class PathPiece s
- Yesod.Core.Handler: data ProvidedRep m
+ Yesod.Core.Handler: data ProvidedRep (m :: Type -> Type)
- Yesod.Core.Handler: fileSource :: MonadResource m => FileInfo -> ConduitT () ByteString m ()
+ Yesod.Core.Handler: fileSource :: forall (m :: Type -> Type). MonadResource m => FileInfo -> ConduitT () ByteString m ()
- Yesod.Core.Handler: rawRequestBody :: MonadHandler m => ConduitT i ByteString m ()
+ Yesod.Core.Handler: rawRequestBody :: forall (m :: Type -> Type) i. MonadHandler m => ConduitT i ByteString m ()
- Yesod.Core.Handler: sendChunk :: Monad m => ToFlushBuilder a => a -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunk :: forall (m :: Type -> Type) a i. (Monad m, ToFlushBuilder a) => a -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendChunkBS :: Monad m => ByteString -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunkBS :: forall (m :: Type -> Type) i. Monad m => ByteString -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendChunkHtml :: Monad m => Html -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunkHtml :: forall (m :: Type -> Type) i. Monad m => Html -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendChunkLBS :: Monad m => ByteString -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunkLBS :: forall (m :: Type -> Type) i. Monad m => ByteString -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendChunkLazyText :: Monad m => Text -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunkLazyText :: forall (m :: Type -> Type) i. Monad m => Text -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendChunkText :: Monad m => Text -> ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendChunkText :: forall (m :: Type -> Type) i. Monad m => Text -> ConduitT i (Flush Builder) m ()
- Yesod.Core.Handler: sendFlush :: Monad m => ConduitT i (Flush Builder) m ()
+ Yesod.Core.Handler: sendFlush :: forall (m :: Type -> Type) i. Monad m => ConduitT i (Flush Builder) m ()
- Yesod.Core.Json: class () => FromJSON a
+ Yesod.Core.Json: class FromJSON a
- Yesod.Core.Json: class () => ToJSON a
+ Yesod.Core.Json: class ToJSON a
- Yesod.Core.Json: data () => Value
+ Yesod.Core.Json: data Value
- Yesod.Core.Json: provideJson :: (Monad m, ToJSON a) => a -> Writer (Endo [ProvidedRep m]) ()
+ Yesod.Core.Json: provideJson :: forall (m :: Type -> Type) a. (Monad m, ToJSON a) => a -> Writer (Endo [ProvidedRep m]) ()
- Yesod.Core.Types: RunHandlerEnv :: !Route site -> [(Text, Text)] -> Text -> !Maybe (Route child) -> !Route child -> Route site -> !site -> !child -> !RequestBodyLength -> FileUpload -> !Loc -> LogSource -> LogLevel -> LogStr -> IO () -> !ErrorResponse -> YesodApp -> !Text -> !forall a m. MonadUnliftIO m => m a -> (SomeException -> m a) -> m a -> RunHandlerEnv child site
+ Yesod.Core.Types: RunHandlerEnv :: !Route site -> [(Text, Text)] -> Text -> !Maybe (Route child) -> !Route child -> Route site -> !site -> !child -> !RequestBodyLength -> FileUpload -> !Loc -> LogSource -> LogLevel -> LogStr -> IO () -> !ErrorResponse -> YesodApp -> !Text -> !forall a (m :: Type -> Type). MonadUnliftIO m => m a -> (SomeException -> m a) -> m a -> RunHandlerEnv child site
- Yesod.Core.Types: [JSONResponse] :: ToJSON a => a -> JSONResponse a
+ Yesod.Core.Types: [JSONResponse] :: forall a. ToJSON a => a -> JSONResponse a
- Yesod.Core.Types: [rheCatchHandlerExceptions] :: RunHandlerEnv child site -> !forall a m. MonadUnliftIO m => m a -> (SomeException -> m a) -> m a
+ Yesod.Core.Types: [rheCatchHandlerExceptions] :: RunHandlerEnv child site -> !forall a (m :: Type -> Type). MonadUnliftIO m => m a -> (SomeException -> m a) -> m a
- Yesod.Core.Types: type BottomOfHeadAsync master = -- | urls to load asynchronously [Text] -> -- | widget of js to run on async completion Maybe (HtmlUrl (Route master)) -> -- | widget to insert at the bottom of <head><style type="text/css">#synopsis details:not([open]) > ul { visibility: hidden; }</style> HtmlUrl (Route master)
+ Yesod.Core.Types: type BottomOfHeadAsync master = [Text] -> Maybe HtmlUrl Route master -> HtmlUrl Route master
- Yesod.Core.Types: type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> Builder
+ Yesod.Core.Types: type CssBuilderUrl a = a -> [(Text, Text)] -> Text -> Builder
- Yesod.Core.Types: type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application
+ Yesod.Core.Types: type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe Route parent -> Application
- Yesod.Core.Types: type SaveSession = -- | The session contents after running the handler SessionMap -> IO [Header]
+ Yesod.Core.Types: type SaveSession = SessionMap -> IO [Header]
- Yesod.Core.Unsafe: runFakeHandler :: forall site m a. (Yesod site, MonadIO m) => SessionMap -> (site -> Logger) -> site -> HandlerFor site a -> m (Either ErrorResponse a)
+ Yesod.Core.Unsafe: runFakeHandler :: (Yesod site, MonadIO m) => SessionMap -> (site -> Logger) -> site -> HandlerFor site a -> m (Either ErrorResponse a)
- Yesod.Core.Widget: asWidgetT :: WidgetT site m () -> WidgetT site m ()
+ Yesod.Core.Widget: asWidgetT :: forall site (m :: Type -> Type). WidgetT site m () -> WidgetT site m ()
Files
- ChangeLog.md +4/−0
- bench/widget.hs +5/−6
- src/Yesod/Core.hs +3/−2
- src/Yesod/Core/Class/Breadcrumbs.hs +2/−1
- src/Yesod/Core/Class/Dispatch.hs +4/−3
- src/Yesod/Core/Class/Handler.hs +4/−3
- src/Yesod/Core/Class/Yesod.hs +6/−8
- src/Yesod/Core/Content.hs +3/−2
- src/Yesod/Core/Dispatch.hs +1/−0
- src/Yesod/Core/Handler.hs +25/−13
- src/Yesod/Core/Internal/LiteApp.hs +3/−7
- src/Yesod/Core/Internal/Request.hs +14/−5
- src/Yesod/Core/Internal/Response.hs +1/−2
- src/Yesod/Core/Internal/Run.hs +11/−26
- src/Yesod/Core/Internal/TH.hs +26/−22
- src/Yesod/Core/Internal/Util.hs +0/−1
- src/Yesod/Core/Json.hs +2/−2
- src/Yesod/Core/TypeCache.hs +0/−0
- src/Yesod/Core/Types.hs +9/−23
- src/Yesod/Core/Widget.hs +8/−7
- src/Yesod/Routes/Class.hs +2/−1
- src/Yesod/Routes/Parse.hs +10/−5
- src/Yesod/Routes/TH/Dispatch.hs +4/−1
- src/Yesod/Routes/TH/ParseRoute.hs +1/−0
- src/Yesod/Routes/TH/RenderRoute.hs +1/−1
- src/Yesod/Routes/TH/RouteAttrs.hs +2/−1
- src/Yesod/Routes/TH/Types.hs +1/−0
- test/Hierarchy.hs +8/−8
- test/RouteSpec.hs +14/−14
- test/YesodCoreTest.hs +4/−3
- test/YesodCoreTest/Auth.hs +6/−1
- test/YesodCoreTest/Breadcrumb.hs +1/−3
- test/YesodCoreTest/Cache.hs +6/−2
- test/YesodCoreTest/CleanPath.hs +8/−5
- test/YesodCoreTest/Csrf.hs +6/−3
- test/YesodCoreTest/ErrorHandling.hs +7/−6
- test/YesodCoreTest/ErrorHandling/CustomApp.hs +7/−5
- test/YesodCoreTest/Exceptions.hs +6/−2
- test/YesodCoreTest/Header.hs +6/−2
- test/YesodCoreTest/InternalRequest.hs +4/−4
- test/YesodCoreTest/JsAttributes.hs +6/−3
- test/YesodCoreTest/JsLoader.hs +6/−2
- test/YesodCoreTest/JsLoaderSites/Bottom.hs +6/−2
- test/YesodCoreTest/Json.hs +7/−1
- test/YesodCoreTest/Links.hs +7/−2
- test/YesodCoreTest/LiteApp.hs +1/−0
- test/YesodCoreTest/Media.hs +7/−2
- test/YesodCoreTest/MediaData.hs +6/−2
- test/YesodCoreTest/Meta.hs +1/−0
- test/YesodCoreTest/NoOverloadedStrings.hs +9/−4
- test/YesodCoreTest/NoOverloadedStringsSub.hs +6/−2
- test/YesodCoreTest/ParameterizedSite.hs +2/−1
- test/YesodCoreTest/ParameterizedSite/Compat.hs +9/−5
- test/YesodCoreTest/ParameterizedSite/PolyAny.hs +9/−5
- test/YesodCoreTest/ParameterizedSite/PolyShow.hs +9/−5
- test/YesodCoreTest/RawResponse.hs +7/−1
- test/YesodCoreTest/Redirect.hs +6/−1
- test/YesodCoreTest/Reps.hs +7/−1
- test/YesodCoreTest/RequestBodySize.hs +6/−2
- test/YesodCoreTest/Ssl.hs +7/−2
- test/YesodCoreTest/Streaming.hs +1/−0
- test/YesodCoreTest/StubLaxSameSite.hs +6/−1
- test/YesodCoreTest/StubSslOnly.hs +6/−1
- test/YesodCoreTest/StubStrictSameSite.hs +6/−1
- test/YesodCoreTest/StubUnsecured.hs +6/−1
- test/YesodCoreTest/SubSub.hs +4/−3
- test/YesodCoreTest/SubSubData.hs +1/−1
- test/YesodCoreTest/WaiSubsite.hs +7/−1
- test/YesodCoreTest/Widget.hs +7/−2
- yesod-core.cabal +4/−4
ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for yesod-core +## 1.6.27.1++* Set `base >= 4.11` for less CPP and imports [#1876](https://github.com/yesodweb/yesod/pull/1876)+ ## 1.6.27.0 * Build with `wai-extra-3.1.17` [#1861](https://github.com/yesodweb/yesod/pull/1861)
bench/widget.hs view
@@ -1,15 +1,14 @@-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-}--- | BigTable benchmark implemented using Hamlet.---+{-# LANGUAGE OverloadedStrings #-}+-- BigTable benchmark implemented using Hamlet. {-# LANGUAGE QuasiQuotes #-}+ module Main where import Gauge.Main import Text.Hamlet import qualified Data.ByteString.Lazy as L import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8-import Data.Monoid (mconcat) import Text.Blaze.Html5 (table, tr, td) import Text.Blaze.Html (toHtml) import Data.Int@@ -64,6 +63,6 @@ -} bigTableBlaze :: Show a => [[a]] -> Int64-bigTableBlaze t = L.length $ Utf8.renderHtml $ table $ Data.Monoid.mconcat $ map row t+bigTableBlaze t = L.length $ Utf8.renderHtml $ table $ concatMap row t where- row r = tr $ mconcat $ map (td . toHtml . show) r+ row r = tr $ concatMap (td . toHtml . show) r
src/Yesod/Core.hs view
@@ -1,8 +1,9 @@-{-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}+ module Yesod.Core ( -- * Type classes Yesod (..)
src/Yesod/Core/Class/Breadcrumbs.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+ module Yesod.Core.Class.Breadcrumbs where import Yesod.Core.Handler
src/Yesod/Core/Class/Dispatch.hs view
@@ -1,9 +1,10 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE RankNTypes #-}-{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE FlexibleContexts #-}+ module Yesod.Core.Class.Dispatch where import qualified Network.Wai as W
src/Yesod/Core/Class/Handler.hs view
@@ -1,10 +1,11 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-}+ module Yesod.Core.Class.Handler ( MonadHandler (..) , MonadWidget (..)
src/Yesod/Core/Class/Yesod.hs view
@@ -1,8 +1,7 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-} module Yesod.Core.Class.Yesod where @@ -26,7 +25,7 @@ import Data.List (foldl', nub) import qualified Data.Map as Map import Data.Maybe (catMaybes)-import Data.Monoid+import Data.Monoid (Last (..)) import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as TE@@ -54,7 +53,6 @@ import Yesod.Core.Internal.Session import Yesod.Core.Widget import Data.CaseInsensitive (CI)-import qualified Network.Wai.Handler.Warp as Warp import qualified Network.Wai.Request import Data.IORef import UnliftIO (SomeException, catch, MonadUnliftIO)@@ -78,7 +76,7 @@ -- allows the user to specify how exceptions are cought. -- by default all async exceptions are thrown and synchronous -- exceptions render a 500 page.- -- To catch all exceptions (even async) to render a 500 page, + -- To catch all exceptions (even async) to render a 500 page, -- set this to 'UnliftIO.Exception.catchSyncOrAsync'. Beware -- this may have negative effects with functions like 'timeout'. catchHandlerExceptions :: MonadUnliftIO m => site -> m a -> (SomeException -> m a) -> m a
src/Yesod/Core/Content.hs view
@@ -1,9 +1,10 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Rank2Types #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeSynonymInstances #-}-{-# LANGUAGE Rank2Types #-}-{-# LANGUAGE OverloadedStrings #-}+ module Yesod.Core.Content ( -- * Content Content (..)
src/Yesod/Core/Dispatch.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-}+ module Yesod.Core.Dispatch ( -- * Quasi-quoted routing parseRoutes
src/Yesod/Core/Handler.hs view
@@ -1,15 +1,18 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+ --------------------------------------------------------- -- -- Module : Yesod.Handler@@ -249,7 +252,6 @@ import Web.PathPieces (PathPiece(..)) import Yesod.Core.Class.Handler import Yesod.Core.Types-import Yesod.Routes.Class (Route) import Data.ByteString.Builder (Builder) import Data.CaseInsensitive (CI, original) import qualified Data.Conduit.List as CL@@ -415,9 +417,15 @@ where oldReq = handlerRequest oldHandlerData oldWaiReq = reqWaiRequest oldReq+#if MIN_VERSION_wai(3,2,4)+ newWaiReq =+ W.setRequestBodyChunks (return mempty) $+ oldWaiReq { W.requestBodyLength = W.KnownLength 0 }+#else newWaiReq = oldWaiReq { W.requestBody = return mempty , W.requestBodyLength = W.KnownLength 0 }+#endif oldEnv = handlerEnv oldHandlerData newState <- liftIO $ do oldState <- I.readIORef (handlerState oldHandlerData)@@ -1434,7 +1442,11 @@ rawRequestBody = do req <- lift waiRequest let loop = do+#if MIN_VERSION_wai(3,2,2)+ bs <- liftIO $ W.getRequestBodyChunk req+#else bs <- liftIO $ W.requestBody req+#endif unless (S.null bs) $ do yield bs loop
src/Yesod/Core/Internal/LiteApp.hs view
@@ -1,9 +1,8 @@-{-# LANGUAGE TypeFamilies, PatternGuards, CPP #-}+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE TypeFamilies #-}+ module Yesod.Core.Internal.LiteApp where -#if !(MIN_VERSION_base(4,11,0))-import Data.Semigroup (Semigroup(..))-#endif import Yesod.Routes.Class import Yesod.Core.Class.Yesod import Yesod.Core.Class.Dispatch@@ -47,9 +46,6 @@ instance Monoid LiteApp where mempty = LiteApp $ \_ _ -> Nothing-#if !(MIN_VERSION_base(4,11,0))- mappend = (<>)-#endif type LiteHandler = HandlerFor LiteApp type LiteWidget = WidgetFor LiteApp
src/Yesod/Core/Internal/Request.hs view
@@ -1,4 +1,6 @@-{-# LANGUAGE OverloadedStrings, CPP #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedStrings #-}+ module Yesod.Core.Internal.Request ( parseWaiRequest , RequestBodyContents@@ -49,9 +51,12 @@ limitRequestBody :: Word64 -> W.Request -> IO W.Request limitRequestBody maxLen req = do ref <- newIORef maxLen- return req- { W.requestBody = do+ let bd = do+#if MIN_VERSION_wai(3,2,2)+ bs <- W.getRequestBodyChunk req+#else bs <- W.requestBody req+#endif remaining <- readIORef ref let len = fromIntegral $ S8.length bs remaining' = remaining - len@@ -60,13 +65,17 @@ else do writeIORef ref remaining' return bs- }+#if MIN_VERSION_wai(3,2,4)+ return $ W.setRequestBodyChunks bd req+#else+ return req { W.requestBody = bd }+#endif tooLargeResponse :: Word64 -> Word64 -> W.Response tooLargeResponse maxLen bodyLen = W.responseLBS (Status 413 "Too Large") [("Content-Type", "text/plain")]- (L.concat + (L.concat [ "Request body too large to be processed. The maximum size is " , (LS8.pack (show maxLen)) , " bytes; your request body was "
src/Yesod/Core/Internal/Response.hs view
@@ -1,6 +1,5 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RankNTypes #-}+ module Yesod.Core.Internal.Response where import Data.ByteString (ByteString)
src/Yesod/Core/Internal/Run.hs view
@@ -1,11 +1,12 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE PatternGuards #-}-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+ module Yesod.Core.Internal.Run ( toErrorHandler , errFromShow@@ -22,8 +23,7 @@ ) where -import qualified Control.Exception as EUnsafe-import Yesod.Core.Internal.Response+import Yesod.Core.Internal.Response import Data.ByteString.Builder (toLazyByteString) import qualified Data.ByteString.Lazy as BL import Control.Monad.IO.Class (MonadIO, liftIO)@@ -43,7 +43,6 @@ import Language.Haskell.TH.Syntax (Loc, qLocation) import qualified Network.HTTP.Types as H import Network.Wai-import Network.Wai.Internal import System.Log.FastLogger (LogStr, toLogStr) import Yesod.Core.Content import Yesod.Core.Class.Yesod@@ -51,11 +50,9 @@ import Yesod.Core.Internal.Request (parseWaiRequest, tooLargeResponse) import Yesod.Core.Internal.Util (getCurrentMaxExpiresRFC1123)-import Yesod.Routes.Class (Route, renderRoute)+import Yesod.Routes.Class (RenderRoute (..)) import Control.DeepSeq (($!!), NFData) import UnliftIO.Exception-import UnliftIO(MonadUnliftIO, withRunInIO)-import Data.Proxy(Proxy(..)) -- | Convert a synchronous exception into an ErrorResponse toErrorHandler :: SomeException -> IO ErrorResponse@@ -288,23 +285,12 @@ typePlain (toContent ("runFakeHandler: errHandler" :: S8.ByteString)) (reqSession req)- fakeWaiRequest = Request+ fakeWaiRequest = defaultRequest { requestMethod = "POST" , httpVersion = H.http11 , rawPathInfo = "/runFakeHandler/pathInfo"- , rawQueryString = ""- , requestHeaderHost = Nothing- , requestHeaders = []- , isSecure = False , remoteHost = error "runFakeHandler-remoteHost" , pathInfo = ["runFakeHandler", "pathInfo"]- , queryString = []- , requestBody = return mempty- , vault = mempty- , requestBodyLength = KnownLength 0- , requestHeaderRange = Nothing- , requestHeaderReferer = Nothing- , requestHeaderUserAgent = Nothing } fakeRequest = YesodRequest@@ -365,7 +351,6 @@ yar <- runInternalState (runHandler rhe handler yreq') is yarToResponse yar saveSession yreq' req is sendResponse where- mmaxLen = maximumContentLength yreSite route handler = yesodMiddleware handler' yesodRender :: Yesod y
src/Yesod/Core/Internal/TH.hs view
@@ -1,10 +1,11 @@-{-# LANGUAGE TemplateHaskellQuotes #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE TemplateHaskellQuotes #-}+{-# LANGUAGE TypeFamilies #-}+ module Yesod.Core.Internal.TH ( mkYesod , mkYesodOpts@@ -32,7 +33,7 @@ , mkDispatchInstance , mkYesodSubDispatch- + , subTopDispatch , instanceD @@ -69,7 +70,7 @@ -- is used for creating sites, /not/ subsites. See 'mkYesodSubData' and 'mkYesodSubDispatch' for the latter. -- Use 'parseRoutes' to create the 'Resource's. ----- Contexts and type variables in the name of the datatype are parsed. +-- Contexts and type variables in the name of the datatype are parsed. -- For example, a datatype @App a@ with typeclass constraint @MyClass a@ can be written as @\"(MyClass a) => App a\"@. mkYesod :: String -- ^ name of the argument datatype -> [ResourceTree String]@@ -87,8 +88,8 @@ {-# DEPRECATED mkYesodWith "Contexts and type variables are now parsed from the name in `mkYesod`. <https://github.com/yesodweb/yesod/pull/1366>" #-}--- | Similar to 'mkYesod', except contexts and type variables are not parsed. --- Instead, they are explicitly provided. +-- | Similar to 'mkYesod', except contexts and type variables are not parsed.+-- Instead, they are explicitly provided. -- You can write @(MyClass a) => App a@ with @mkYesodWith [[\"MyClass\",\"a\"]] \"App\" [\"a\"] ...@. mkYesodWith :: [[String]] -- ^ list of contexts -> String -- ^ name of the argument datatype@@ -172,7 +173,7 @@ _ <- char ')' return r - parseContexts = + parseContexts = sepBy1 (many1 parseWord) (spaces >> char ',' >> return ()) @@ -218,8 +219,11 @@ -> [ResourceTree String] -> Q([Dec],[Dec]) mkYesodGeneralOpts opts appCxt' namestr mtys isSub f resS = do- let appCxt = fmap (\(c:rest) -> - foldl' (\acc v -> acc `AppT` nameToType v) (ConT $ mkName c) rest+ let appCxt = fmap (\ctxs ->+ case ctxs of+ c:rest ->+ foldl' (\acc v -> acc `AppT` nameToType v) (ConT $ mkName c) rest+ [] -> error $ "Bad context: " ++ show ctxs ) appCxt' mname <- lookupTypeName namestr arity <- case mname of@@ -289,11 +293,11 @@ -> [ResourceTree c] -- ^ The resource -> DecsQ mkDispatchInstance master cxt f res = do- clause' <- - mkDispatchClause - (mkMDS - f - [|yesodRunner|] + clause' <-+ mkDispatchClause+ (mkMDS+ f+ [|yesodRunner|] [|\parentRunner getSub toParent env -> yesodSubDispatch YesodSubRunnerEnv { ysreParentRunner = parentRunner@@ -311,12 +315,12 @@ mkYesodSubDispatch :: [ResourceTree a] -> Q Exp mkYesodSubDispatch res = do- clause' <- + clause' <- mkDispatchClause- (mkMDS - return - [|subHelper|] - [|subTopDispatch|]) + (mkMDS+ return+ [|subHelper|]+ [|subTopDispatch|]) res inner <- newName "inner" let innerFun = FunD inner [clause']@@ -330,7 +334,7 @@ return $ LetE [fun] (VarE helper) -subTopDispatch :: +subTopDispatch :: (YesodSubDispatch sub master) => (forall content. ToTypedContent content => SubHandlerFor child master content ->
src/Yesod/Core/Internal/Util.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} module Yesod.Core.Internal.Util ( putTime , getTime
src/Yesod/Core/Json.hs view
@@ -1,6 +1,6 @@-{-# LANGUAGE TypeSynonymInstances, OverloadedStrings #-}-{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-orphans #-}+ module Yesod.Core.Json ( -- * Convert from a JSON value defaultLayoutJson
src/Yesod/Core/TypeCache.hs view
src/Yesod/Core/Types.hs view
@@ -1,14 +1,14 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}+ module Yesod.Core.Types where import Data.Aeson (ToJSON)@@ -29,7 +29,6 @@ import Data.Map (Map, unionWith) import qualified Data.Map as Map import Data.Monoid (Endo (..), Last (..))-import Data.Semigroup (Semigroup(..)) import Data.Serialize (Serialize (..), putByteString) import Data.String (IsString (fromString))@@ -261,9 +260,6 @@ instance a ~ () => Monoid (WidgetFor site a) where mempty = return ()-#if !(MIN_VERSION_base(4,11,0))- mappend = (<>)-#endif instance a ~ () => Semigroup (WidgetFor site a) where x <> y = x >> y @@ -397,13 +393,9 @@ newtype Description = Description { unDescription :: Text } newtype Head url = Head (HtmlUrl url)- deriving Monoid-instance Semigroup (Head url) where- (<>) = mappend+ deriving (Semigroup, Monoid) newtype Body url = Body (HtmlUrl url)- deriving Monoid-instance Semigroup (Body url) where- (<>) = mappend+ deriving (Semigroup, Monoid) type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> TBuilder.Builder @@ -419,9 +411,6 @@ } instance Monoid (GWData a) where mempty = GWData mempty mempty mempty mempty mempty mempty mempty mempty-#if !(MIN_VERSION_base(4,11,0))- mappend = (<>)-#endif instance Semigroup (GWData a) where GWData a1 a2 a3 a4 a5 a6 a7 a8 <> GWData b1 b2 b3 b4 b5 b6 b7 b8 = GWData@@ -526,9 +515,6 @@ instance Monoid (UniqueList x) where mempty = UniqueList id-#if !(MIN_VERSION_base(4,11,0))- mappend = (<>)-#endif instance Semigroup (UniqueList x) where UniqueList x <> UniqueList y = UniqueList $ x . y
src/Yesod/Core/Widget.hs view
@@ -1,14 +1,15 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE RankNTypes #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE QuasiQuotes #-} -- | Widgets combine HTML with JS and CSS dependencies with a unique identifier -- generator, allowing you to create truly modular HTML components.@@ -57,7 +58,7 @@ , asWidgetT ) where -import Data.Monoid+import Data.Monoid (Last (..)) import qualified Text.Blaze.Html5 as H import Text.Hamlet import Text.Cassius
src/Yesod/Routes/Class.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TypeFamilies #-}+ module Yesod.Routes.Class ( RenderRoute (..) , ParseRoute (..)
src/Yesod/Routes/Parse.hs view
@@ -1,6 +1,7 @@-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE PatternGuards #-}+{-# LANGUAGE TemplateHaskell #-} {-# OPTIONS_GHC -fno-warn-missing-fields #-} -- QuasiQuoter+ module Yesod.Routes.Parse ( parseRoutes , parseRoutesFile@@ -100,7 +101,11 @@ , Just attrs <- mapM parseAttr rest -> let (children, otherLines'') = parse (length spaces + 1) otherLines children' = addAttrs attrs children- (pieces, Nothing, check) = piecesFromStringCheck pattern+ (pieces, check) =+ case piecesFromStringCheck pattern of+ (p, Nothing, c) -> (p, c)+ -- FIXME: Give better error message+ _ -> error "Invalid resource line: bad overlap" in ((ResourceParent constr check pieces children' :), otherLines'') (pattern:constr:rest) -> let (pieces, mmulti, check) = piecesFromStringCheck pattern@@ -113,11 +118,11 @@ -- | Splits a string by spaces, as long as the spaces are not enclosed by curly brackets (not recursive). splitSpaces :: String -> [String] splitSpaces "" = []-splitSpaces str = +splitSpaces str = let (rest, piece) = parse $ dropWhile isSpace str in piece:(splitSpaces rest) - where + where parse :: String -> ( String, String) parse ('{':s) = fmap ('{':) $ parseBracket s parse (c:s) | isSpace c = (s, [])@@ -302,6 +307,6 @@ lineContinuations :: String -> [String] -> [String] lineContinuations this [] = [this] lineContinuations this below@(next:rest) = case unsnoc this of- Just (this', '\\') -> (this'++next):rest+ Just (this', '\\') -> (this' ++ next):rest _ -> this:below where unsnoc s = if null s then Nothing else Just (init s, last s)
src/Yesod/Routes/TH/Dispatch.hs view
@@ -1,5 +1,8 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE RecordWildCards, TemplateHaskell, ViewPatterns #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE ViewPatterns #-}+ module Yesod.Routes.TH.Dispatch ( MkDispatchSettings (..) , mkDispatchClause
src/Yesod/Routes/TH/ParseRoute.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}+ module Yesod.Routes.TH.ParseRoute ( -- ** ParseRoute mkParseRouteInstance
src/Yesod/Routes/TH/RenderRoute.hs view
@@ -1,6 +1,6 @@-{-# LANGUAGE TupleSections #-} {-# LANGUAGE CPP #-} {-# LANGUAGE TemplateHaskellQuotes #-}+{-# LANGUAGE TupleSections #-} module Yesod.Routes.TH.RenderRoute ( -- ** RenderRoute
src/Yesod/Routes/TH/RouteAttrs.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TemplateHaskell #-}+ module Yesod.Routes.TH.RouteAttrs ( mkRouteAttrsInstance ) where
src/Yesod/Routes/TH/Types.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveLift #-}+ -- | Warning! This module is considered internal and may have breaking changes module Yesod.Routes.TH.Types ( -- * Data types
test/Hierarchy.hs view
@@ -1,13 +1,14 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeSynonymInstances #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE CPP #-}+ module Hierarchy ( hierarchy , Dispatcher (..)@@ -127,11 +128,10 @@ , mdsGetHandler = defaultGetHandler , mdsUnwrapper = return } resources- return+ return $+ InstanceD #if MIN_VERSION_template_haskell(2,11,0)- $ InstanceD Nothing-#else- $ InstanceD+ Nothing #endif [] (ConT ''Dispatcher
test/RouteSpec.hs view
@@ -1,17 +1,18 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE ViewPatterns#-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RankNTypes #-}-{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeSynonymInstances #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE OverloadedStrings #-}-{-# OPTIONS_GHC -ddump-splices #-}+{-# LANGUAGE ViewPatterns#-}+-- {-# OPTIONS_GHC -ddump-splices #-}+ import Test.Hspec import Test.HUnit ((@?=)) import Data.Text (Text, pack, unpack, singleton)@@ -86,11 +87,10 @@ , mdsGetHandler = defaultGetHandler , mdsUnwrapper = return } ress- return+ return $+ InstanceD #if MIN_VERSION_template_haskell(2,11,0)- $ InstanceD Nothing-#else- $ InstanceD+ Nothing #endif [] (ConT ''Dispatcher
test/YesodCoreTest.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP #-}+ module YesodCoreTest (specs) where import YesodCoreTest.CleanPath@@ -23,7 +24,7 @@ import qualified YesodCoreTest.Json as Json -- Skip on Windows, see https://github.com/yesodweb/yesod/issues/1523#issuecomment-398278450-#if !WINDOWS+#ifndef WINDOWS import qualified YesodCoreTest.RawResponse as RawResponse #endif @@ -56,7 +57,7 @@ JsLoader.specs RequestBodySize.specs Json.specs-#if !WINDOWS+#ifndef WINDOWS RawResponse.specs #endif Streaming.specs
test/YesodCoreTest/Auth.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.Auth ( specs , Widget
test/YesodCoreTest/Breadcrumb.hs view
@@ -5,19 +5,17 @@ {-# LANGUAGE Rank2Types #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-} module YesodCoreTest.Breadcrumb ( breadcrumbTest, ) where -import qualified Data.ByteString.Lazy.Char8 as L8 import Data.Text (Text)-import Data.Typeable (Typeable) import Network.Wai import Network.Wai.Test import Test.Hspec-import UnliftIO.IORef import Yesod.Core data A = A
test/YesodCoreTest/Cache.hs view
@@ -1,7 +1,11 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE Rank2Types #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.Cache ( cacheTest , Widget
test/YesodCoreTest/CleanPath.hs view
@@ -1,7 +1,11 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleInstances, ViewPatterns #-}-{-# LANGUAGE CPP #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.CleanPath ( cleanPathTest , Widget@@ -21,7 +25,6 @@ import qualified Data.Text.Encoding as TE import Control.Arrow ((***)) import Network.HTTP.Types (encodePath)-import Data.Monoid (mappend) import Data.Text.Encoding (encodeUtf8Builder) data Subsite = Subsite@@ -64,7 +67,7 @@ corrected = filter (not . TS.null) s joinPath Y ar pieces' qs' =- encodeUtf8Builder ar `Data.Monoid.mappend` encodePath pieces qs+ encodeUtf8Builder ar `mappend` encodePath pieces qs where pieces = if null pieces' then [""] else pieces' qs = map (TE.encodeUtf8 *** go) qs'
test/YesodCoreTest/Csrf.hs view
@@ -1,4 +1,8 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} module YesodCoreTest.Csrf (csrfSpec, Widget, resourcesApp) where @@ -10,7 +14,6 @@ import Web.Cookie import qualified Data.Map as Map import Data.ByteString.Lazy (fromStrict)-import Data.Monoid ((<>)) data App = App @@ -79,7 +82,7 @@ res <- request (defaultRequest { requestMethod = "POST", requestHeaders = [(defaultCsrfHeaderName, csrfValue <> "foo")] }) assertStatus 403 res- + it "403s write requests with the wrong CSRF param" $ runner $ do getRes <- request defaultRequest assertStatus 200 getRes
test/YesodCoreTest/ErrorHandling.hs view
@@ -1,7 +1,11 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE LambdaCase #-} module YesodCoreTest.ErrorHandling ( errorHandlingTest@@ -10,7 +14,6 @@ ) where import Data.Typeable(cast)-import qualified System.Mem as Mem import qualified Control.Concurrent.Async as Async import Control.Concurrent as Conc import Yesod.Core@@ -20,10 +23,8 @@ import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Char8 as S8 import Control.Exception (SomeException, try, AsyncException(..))-import UnliftIO.Exception(finally) import Network.HTTP.Types (Status, mkStatus) import Data.ByteString.Builder (Builder, toLazyByteString)-import Data.Monoid (mconcat) import Data.Text (Text, pack) import Control.Monad (forM_) import qualified Network.Wai.Handler.Warp as Warp@@ -121,7 +122,7 @@ getFileBadNameR = return $ TypedContent "ignored" $ ContentFile (error "filebadname") Nothing goodBuilderContent :: Builder-goodBuilderContent = Data.Monoid.mconcat $ replicate 100 $ "This is a test\n"+goodBuilderContent = mconcat $ replicate 100 $ "This is a test\n" getGoodBuilderR :: Handler TypedContent getGoodBuilderR = return $ TypedContent "text/plain" $ toContent goodBuilderContent
test/YesodCoreTest/ErrorHandling/CustomApp.hs view
@@ -1,8 +1,12 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE DeriveAnyClass #-} -- | a custom app that throws an exception module YesodCoreTest.ErrorHandling.CustomApp@@ -14,8 +18,6 @@ , resourcesCustomApp ) where --import Yesod.Core.Types import Yesod.Core import qualified UnliftIO.Exception as E
test/YesodCoreTest/Exceptions.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.Exceptions ( exceptionsTest , Widget
test/YesodCoreTest/Header.hs view
@@ -1,5 +1,9 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes,- TypeFamilies, MultiParamTypeClasses, ViewPatterns #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-} module YesodCoreTest.Header ( headerTest
test/YesodCoreTest/InternalRequest.hs view
@@ -1,20 +1,20 @@ {-# LANGUAGE OverloadedStrings #-}+ module YesodCoreTest.InternalRequest (internalRequestTest) where import Data.List (nub) import Network.Wai as W import Yesod.Core.Internal (randomString, parseWaiRequest) import Test.Hspec-import Data.Monoid (mempty) import Data.Map (singleton) import Yesod.Core import Data.Word (Word64) import System.IO.Unsafe (unsafePerformIO) import Control.Monad (replicateM)-import System.Random+import System.Random (randomIO) gen :: IO Int-gen = getStdRandom next+gen = randomIO randomStringSpecs :: Spec randomStringSpecs = describe "Yesod.Internal.Request.randomString" $ do@@ -57,7 +57,7 @@ noDisabledToken :: Bool noDisabledToken = reqToken r == Nothing where- r = parseWaiRequest' defaultRequest Data.Monoid.mempty False 1000+ r = parseWaiRequest' defaultRequest mempty False 1000 ignoreDisabledToken :: Bool ignoreDisabledToken = reqToken r == Nothing where
test/YesodCoreTest/JsAttributes.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.JsAttributes ( specs -- To avoid unused warning@@ -34,4 +38,3 @@ runner :: YesodDispatch master => master -> Session () -> IO () runner app f = toWaiApp app >>= runSession f-
test/YesodCoreTest/JsLoader.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.JsLoader ( specs , Widget
test/YesodCoreTest/JsLoaderSites/Bottom.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.JsLoaderSites.Bottom ( B(..) , Widget
test/YesodCoreTest/Json.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ViewPatterns #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.Json ( specs , Widget
test/YesodCoreTest/Links.hs view
@@ -1,6 +1,11 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleInstances, ViewPatterns #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.Links ( linksTest , Widget
test/YesodCoreTest/LiteApp.hs view
@@ -1,3 +1,4 @@+{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} module YesodCoreTest.LiteApp (specs) where import Yesod.Core
test/YesodCoreTest/Media.hs view
@@ -1,7 +1,12 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleInstances, ViewPatterns #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -fno-warn-orphans #-}+ module YesodCoreTest.Media (mediaTest, Widget) where import Test.Hspec
test/YesodCoreTest/MediaData.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.MediaData where import Yesod.Core
test/YesodCoreTest/Meta.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-} module YesodCoreTest.Meta ( metaTest
test/YesodCoreTest/NoOverloadedStrings.hs view
@@ -1,7 +1,13 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE FlexibleInstances, ViewPatterns #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} -- the module name is a lie!!!+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE TypeOperators #-}+ module YesodCoreTest.NoOverloadedStrings ( noOverloadedTest , Widget@@ -14,7 +20,6 @@ import Yesod.Core import Network.Wai import Network.Wai.Test-import Data.Monoid (mempty) import qualified Data.Text as T import qualified Data.ByteString.Lazy.Char8 as L8 @@ -65,7 +70,7 @@ case_sanity :: IO () case_sanity = runner $ do res <- request defaultRequest- assertBody Data.Monoid.mempty res+ assertBody mempty res case_subsite :: IO () case_subsite = runner $ do
test/YesodCoreTest/NoOverloadedStringsSub.hs view
@@ -1,8 +1,12 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-} -- hah, the test should be renamed...+{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE OverloadedStrings #-} -- hah, the test should be renamed...+ -- Not actually a problem, we're now requiring overloaded strings, we just need -- to make the docs more explicit about it. module YesodCoreTest.NoOverloadedStringsSub where
test/YesodCoreTest/ParameterizedSite.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+ module YesodCoreTest.ParameterizedSite ( parameterizedSiteTest ) where@@ -17,7 +18,7 @@ parameterizedSiteTest :: Spec parameterizedSiteTest = describe "Polymorphic Yesod sites" $ do it "Polymorphic unconstrained stub" $ runStub (PolyAny ())- it "Polymorphic stub with Show" $ runStub' "1337" (PolyShow 1337)+ it "Polymorphic stub with Show" $ runStub' "1337" (PolyShow (1337 :: Int)) it "Polymorphic unconstrained stub, old-style" $ runStub (Compat () ()) runStub :: YesodDispatch a => a -> IO ()
test/YesodCoreTest/ParameterizedSite/Compat.hs view
@@ -1,7 +1,12 @@-{-# LANGUAGE- TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses- , OverloadedStrings, StandaloneDeriving, FlexibleInstances- #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+ module YesodCoreTest.ParameterizedSite.Compat ( Compat (..) ) where@@ -24,4 +29,3 @@ <p> Stub |]-
test/YesodCoreTest/ParameterizedSite/PolyAny.hs view
@@ -1,7 +1,12 @@-{-# LANGUAGE- TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses- , OverloadedStrings, StandaloneDeriving, FlexibleInstances- #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+ module YesodCoreTest.ParameterizedSite.PolyAny ( PolyAny (..) ) where@@ -23,4 +28,3 @@ <p> Stub |]-
test/YesodCoreTest/ParameterizedSite/PolyShow.hs view
@@ -1,7 +1,12 @@-{-# LANGUAGE- TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses- , OverloadedStrings, StandaloneDeriving, FlexibleInstances- #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+ module YesodCoreTest.ParameterizedSite.PolyShow ( PolyShow (..) ) where@@ -25,4 +30,3 @@ <p> Stub #{show x} |]-
test/YesodCoreTest/RawResponse.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ScopedTypeVariables #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.RawResponse ( specs , Widget
test/YesodCoreTest/Redirect.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.Redirect ( specs , Widget
test/YesodCoreTest/Reps.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies, MultiParamTypeClasses, ViewPatterns #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.Reps ( specs , Widget
test/YesodCoreTest/RequestBodySize.hs view
@@ -1,6 +1,10 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.RequestBodySize ( specs , Widget
test/YesodCoreTest/Ssl.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.Ssl ( sslOnlySpec, unsecSpec, sameSiteSpec ) where import qualified YesodCoreTest.StubSslOnly as Ssl import qualified YesodCoreTest.StubLaxSameSite as LaxSameSite@@ -43,7 +48,7 @@ cookiesIn r = DL.map (Cookie.parseSetCookie . snd)- (DL.filter (("Set-Cookie"==) . fst) $ simpleHeaders r)+ (DL.filter (("Set-Cookie" ==) . fst) $ simpleHeaders r) sslOnlySpec :: Spec sslOnlySpec = describe "A Yesod application with sslOnly on" $ do
test/YesodCoreTest/Streaming.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+ module YesodCoreTest.Streaming (specs) where import Yesod.Core
test/YesodCoreTest/StubLaxSameSite.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.StubLaxSameSite ( App ( App ) , Widget
test/YesodCoreTest/StubSslOnly.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.StubSslOnly ( App ( App ) , Widget
test/YesodCoreTest/StubStrictSameSite.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.StubStrictSameSite ( App ( App ) , Widget
test/YesodCoreTest/StubUnsecured.hs view
@@ -1,4 +1,9 @@-{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module YesodCoreTest.StubUnsecured ( App ( App ) , Widget
test/YesodCoreTest/SubSub.hs view
@@ -1,9 +1,10 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -Wno-orphans #-} module YesodCoreTest.SubSub where
test/YesodCoreTest/SubSubData.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module YesodCoreTest.SubSubData where
test/YesodCoreTest/WaiSubsite.hs view
@@ -1,4 +1,10 @@-{-# LANGUAGE CPP, QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings, ViewPatterns #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.WaiSubsite ( specs , Widget
test/YesodCoreTest/Widget.hs view
@@ -1,6 +1,11 @@-{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE FlexibleInstances, ViewPatterns #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}+ module YesodCoreTest.Widget ( widgetTest , resourcesY
yesod-core.cabal view
@@ -1,5 +1,5 @@ name: yesod-core-version: 1.6.27.0+version: 1.6.27.1 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -25,7 +25,7 @@ default-language: Haskell2010 hs-source-dirs: src - build-depends: base >= 4.10 && < 5+ build-depends: base >= 4.11 && < 5 , aeson >= 1.0 , attoparsec-aeson >= 2.1 , auto-update@@ -50,7 +50,7 @@ , parsec >= 2 && < 3.2 , path-pieces >= 0.1.2 && < 0.3 , primitive >= 0.6- , random >= 1.0.0.2 && < 1.3+ , random >= 1.0.0.2 && < 1.4 , resourcet >= 1.2 , shakespeare >= 2.0 , template-haskell >= 2.11@@ -186,7 +186,7 @@ cpp-options: -DTEST if os(windows) cpp-options: -DWINDOWS- build-depends: base < 5+ build-depends: base >= 4.11 && < 5 , async , bytestring , clientsession