packages feed

wai-cors 0.2.1 → 0.2.2

raw patch · 4 files changed

+79/−67 lines, 4 filesdep +mtldep +transformers-compatdep −errorsdep ~transformersdep ~wainew-uploader

Dependencies added: mtl, transformers-compat

Dependencies removed: errors

Dependency ranges changed: transformers, wai

Files

CHANGELOG.md view
@@ -1,3 +1,10 @@+0.2.2+=====++*   Support GHC-7.10/base-4.8 without compiler warnings.++*   Drop dependency on errors package.+ 0.2.1 ===== 
constraints view
@@ -1,55 +1,29 @@-constraints: MonadRandom ==0.3,-             array ==0.5.0.0,-             attoparsec ==0.12.1.2,-             base ==4.7.0.1,+constraints: array ==0.5.1.0,+             attoparsec ==0.12.1.5,+             base ==4.8.0.0,              base-unicode-symbols ==0.2.2.4,-             bifunctors ==4.1.1.1,-             blaze-builder ==0.3.3.4,-             bytestring ==0.10.4.0,-             case-insensitive ==1.2.0.3,+             blaze-builder ==0.4.0.1,+             bytestring ==0.10.6.0,+             case-insensitive ==1.2.0.4,              charset ==0.3.7,-             comonad ==4.2.2,-             containers ==0.5.5.1,-             contravariant ==1.2.0.1,-             deepseq ==1.3.0.2,-             distributive ==0.4.4,-             either ==4.3.2.1,-             errors ==1.4.7,-             exceptions ==0.6.1,-             free ==4.10.0.1,-             ghc-prim ==0.3.1.0,-             hashable ==1.2.3.1,-             http-types ==0.8.5,-             integer-gmp ==0.5.1.0,-             lifted-base ==0.2.3.3,-             mmorph ==1.0.4,-             monad-control ==1.0.0.1,+             containers ==0.5.6.2,+             deepseq ==1.4.1.1,+             ghc-prim ==0.4.0.0,+             hashable ==1.2.3.2,+             http-types ==0.8.6,+             integer-gmp ==1.0.0.0,              mtl ==2.2.1,              nats ==1,              network ==2.6.0.2,-             old-locale ==1.0.0.6,-             parsec ==3.1.7,+             parsec ==3.1.9,              parsers ==0.12.1.1,-             prelude-extras ==0.4,-             pretty ==1.1.1.1,-             profunctors ==4.3.2,-             random ==1.0.1.1,-             resourcet ==1.1.3.3,              rts ==1.0,-             safe ==0.3.6,-             scientific ==0.3.3.5,-             semigroupoids ==4.2,-             semigroups ==0.16.0.1,-             stm ==2.4.3,-             tagged ==0.7.2,-             template-haskell ==2.9.0.0,-             text ==1.2.0.3,-             time ==1.4.2,-             transformers ==0.4.1.0,-             transformers-base ==0.4.3,-             transformers-compat ==0.3.3.4,-             unix ==2.7.0.1,+             scientific ==0.3.3.8,+             semigroups ==0.16.2.2,+             text ==1.2.0.4,+             time ==1.5.0.1,+             transformers ==0.4.2.0,+             unix ==2.7.1.0,              unordered-containers ==0.2.5.1,              vault ==0.3.0.4,-             void ==0.7,-             wai ==3.0.2.1+             wai ==3.0.2.3
src/Network/Wai/Middleware/Cors.hs view
@@ -54,19 +54,26 @@ , simpleMethods ) where +#ifndef MIN_VESION_base+#define MIN_VESION_base(x,y,z) 1+#endif++#if ! MIN_VERSION_base(4,8,0) import Control.Applicative-import Control.Error-import Control.Monad-import Control.Monad.IO.Class-import Control.Monad.Trans.Class+#endif+import Control.Monad.Error.Class+import Control.Monad.Trans.Except+#if ! MIN_VERSION_wai(2,0,0) import Control.Monad.Trans.Resource+#endif -import qualified Data.Attoparsec as AttoParsec+import qualified Data.Attoparsec.ByteString as AttoParsec import qualified Data.ByteString.Char8 as B8 import qualified Data.ByteString.Lazy.Char8 as LB8 import qualified Data.CaseInsensitive as CI import qualified Data.CharSet as CS import Data.List (intersect, (\\), union)+import Data.Maybe (catMaybes) import Data.Monoid.Unicode import Data.String @@ -317,7 +324,7 @@                 case WAI.requestMethod r of                      -- Preflight CORS request-                    "OPTIONS" → runEitherT (preflightHeaders policy) >>= \case+                    "OPTIONS" → runExceptT (preflightHeaders policy) >>= \case                         Left e → err e                         Right headers → res $ WAI.responseLBS HTTP.ok200 (ch ⊕ headers) "" @@ -330,24 +337,24 @@      -- Compute HTTP response headers for a preflight request     ---    preflightHeaders ∷ Monad μ ⇒ CorsResourcePolicy → EitherT String μ HTTP.ResponseHeaders+    preflightHeaders ∷ (Functor μ, Monad μ) ⇒ CorsResourcePolicy → ExceptT String μ HTTP.ResponseHeaders     preflightHeaders policy = concat <$> sequence         [ hdrReqMethod policy         , hdrRequestHeader policy         , hdrMaxAge policy         ] -    hdrMaxAge ∷ Monad μ ⇒ CorsResourcePolicy → EitherT String μ HTTP.ResponseHeaders+    hdrMaxAge ∷ Monad μ ⇒ CorsResourcePolicy → ExceptT String μ HTTP.ResponseHeaders     hdrMaxAge policy = case corsMaxAge policy of         Nothing → return []         Just secs → return [("Access-Control-Max-Age", sshow secs)] -    hdrReqMethod ∷ Monad μ ⇒ CorsResourcePolicy → EitherT String μ HTTP.ResponseHeaders+    hdrReqMethod ∷ Monad μ ⇒ CorsResourcePolicy → ExceptT String μ HTTP.ResponseHeaders     hdrReqMethod policy = case lookup "Access-Control-Request-Method" (WAI.requestHeaders r) of-        Nothing → left "Access-Control-Request-Method header is missing in CORS preflight request"+        Nothing → throwError "Access-Control-Request-Method header is missing in CORS preflight request"         Just x → if  x `elem` supportedMethods             then return [("Access-Control-Allow-Methods", hdrL supportedMethods)]-            else left+            else throwError                 $ "Method requested in Access-Control-Request-Method of CORS request is not supported; requested: "                 ⊕ B8.unpack x                 ⊕ "; supported are "@@ -356,14 +363,14 @@       where          supportedMethods = corsMethods policy `union` simpleMethods -    hdrRequestHeader ∷ Monad μ ⇒ CorsResourcePolicy → EitherT String μ HTTP.ResponseHeaders+    hdrRequestHeader ∷ Monad μ ⇒ CorsResourcePolicy → ExceptT String μ HTTP.ResponseHeaders     hdrRequestHeader policy = case lookup "Access-Control-Request-Headers" (WAI.requestHeaders r) of         Nothing → return []         Just hdrsBytes → do-            hdrs ← hoistEither $ AttoParsec.parseOnly httpHeaderNameListParser hdrsBytes+            hdrs ← either throwError return $ AttoParsec.parseOnly httpHeaderNameListParser hdrsBytes             if hdrs `isSubsetOf` supportedHeaders                 then return [("Access-Control-Allow-Headers", hdrLI supportedHeaders)]-                else left+                else throwError                     $ "HTTP header requested in Access-Control-Request-Headers of CORS request is not supported; requested: "                     ⊕ B8.unpack (hdrLI hdrs)                     ⊕ "; supported are "
wai-cors.cabal view
@@ -3,7 +3,7 @@ -- ------------------------------------------------------ --  Name: wai-cors-Version: 0.2.1+Version: 0.2.2 Synopsis: CORS for WAI  Description:@@ -37,8 +37,18 @@ source-repository this     type: git     location: https://github.com/alephcloud/wai-cors-    tag: 0.2.1+    tag: 0.2.2 +flag transformers-3+    description: use transformers<0.3 (this is set automatically)+    default: False+    manual: False++flag wai-1+    description: use version wai<2 (this is set automatically)+    default: False+    manual: False+ Library     default-language: Haskell2010     hs-source-dirs: src@@ -53,10 +63,24 @@         bytestring >= 0.10.0.2,         case-insensitive >= 1.0.0.1,         charset >= 0.3.7,-        errors >= 1.4.1,         http-types >= 0.8.0,-        parsers >= 0.11,-        resourcet >= 0.4,-        transformers >= 0.3,-        wai >= 1.4.0+        parsers >= 0.11++    if flag (wai-1)+        build-depends:+            wai < 2.0,+            resourcet >= 0.4+    else+        build-depends:+            wai >= 2.0++    if flag(transformers-3)+        build-depends:+            mtl >= 2.1,+            transformers >= 0.3 && < 0.4,+            transformers-compat >= 0.3+    else+        build-depends:+            mtl >= 2.2,+            transformers >= 0.4