Bring packages up to date (#722)
* Bring packages up to date * New LTS includes deps now Use stack to select most versions * Alphabetize packages * Strip down packages Switch tests to protolude * Appease cabal check with base version constraint
This commit is contained in:
+31
-89
@@ -23,119 +23,83 @@ Flag CI
|
||||
|
||||
executable postgrest
|
||||
main-is: Main.hs
|
||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
|
||||
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||
ghc-options:
|
||||
-threaded
|
||||
-rtsopts
|
||||
"-with-rtsopts=-N -I2"
|
||||
default-language: Haskell2010
|
||||
build-depends: aeson (>= 0.8 && < 0.10) || (>= 0.11 && < 0.12)
|
||||
, auto-update
|
||||
, base >= 4.8 && < 6
|
||||
, bytestring
|
||||
, bytestring-tree-builder == 0.2.7
|
||||
, case-insensitive
|
||||
, cassava
|
||||
, containers
|
||||
, contravariant
|
||||
, errors
|
||||
, hasql == 0.19.12
|
||||
, hasql-pool == 0.4.1
|
||||
, hasql-transaction == 0.4.5.1
|
||||
, http-types >= 0.9 && < 0.10
|
||||
, interpolatedstring-perl6
|
||||
, jwt
|
||||
, lens >=3.8 && < 5.0
|
||||
, lens-aeson >= 1.0.0.0 && < 1.1.0.0
|
||||
, mtl
|
||||
, optparse-applicative >= 0.11 && < 0.13
|
||||
, parsec
|
||||
, postgresql-binary == 0.9.0.1
|
||||
build-depends: auto-update
|
||||
, base
|
||||
, hasql
|
||||
, hasql-pool
|
||||
, postgrest
|
||||
, regex-tdfa
|
||||
, safe >= 0.3 && < 0.4
|
||||
, scientific
|
||||
, protolude
|
||||
, text
|
||||
, time
|
||||
, transformers
|
||||
, unordered-containers
|
||||
, vector
|
||||
, wai >= 3.0.1
|
||||
, wai-cors
|
||||
, wai-extra
|
||||
, wai-middleware-static >= 0.6.0
|
||||
, warp >= 3.1.0
|
||||
, insert-ordered-containers >= 0.1.0.1
|
||||
, swagger2 >= 2.1
|
||||
, network-uri >= 2.6.1.0
|
||||
, HTTP
|
||||
, Ranged-sets
|
||||
, protolude >= 0.1.5 && < 0.2.0
|
||||
, warp
|
||||
if !os(windows)
|
||||
build-depends: unix >= 2.7 && < 3
|
||||
build-depends: unix
|
||||
|
||||
hs-source-dirs: main
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes, NoImplicitPrelude
|
||||
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||
build-depends: aeson
|
||||
, base
|
||||
, base >= 4.8 && < 6
|
||||
, bytestring
|
||||
, case-insensitive
|
||||
, cassava
|
||||
, containers
|
||||
, contravariant
|
||||
, errors
|
||||
, hasql
|
||||
, hasql-transaction
|
||||
, hasql-pool
|
||||
, hasql-pool == 0.4.1
|
||||
, hasql-transaction == 0.4.5.1
|
||||
, HTTP
|
||||
, http-types
|
||||
, insert-ordered-containers
|
||||
, interpolatedstring-perl6
|
||||
, jwt
|
||||
, lens
|
||||
, lens-aeson
|
||||
, mtl
|
||||
, network-uri
|
||||
, optparse-applicative
|
||||
, parsec
|
||||
, protolude
|
||||
, Ranged-sets == 0.3.0
|
||||
, regex-tdfa
|
||||
, safe
|
||||
, scientific
|
||||
, swagger2
|
||||
, text
|
||||
, time
|
||||
, unordered-containers
|
||||
, vector
|
||||
, HTTP
|
||||
, Ranged-sets
|
||||
, wai >= 3.0.1
|
||||
, wai
|
||||
, wai-cors
|
||||
, wai-extra
|
||||
, wai-middleware-static >= 0.6.0
|
||||
, warp >= 3.1.0
|
||||
, insert-ordered-containers >= 0.1.0.1
|
||||
, swagger2 >= 2.1
|
||||
, protolude >= 0.1.5 && < 0.2.0
|
||||
, network-uri >= 2.6.1.0
|
||||
, wai-middleware-static
|
||||
|
||||
Other-Modules: Paths_postgrest
|
||||
Exposed-Modules: PostgREST.App
|
||||
Exposed-Modules: PostgREST.ApiRequest
|
||||
, PostgREST.App
|
||||
, PostgREST.Auth
|
||||
, PostgREST.Config
|
||||
, PostgREST.DbStructure
|
||||
, PostgREST.Error
|
||||
, PostgREST.Middleware
|
||||
, PostgREST.OpenAPI
|
||||
, PostgREST.Parsers
|
||||
, PostgREST.DbStructure
|
||||
, PostgREST.QueryBuilder
|
||||
, PostgREST.RangeQuery
|
||||
, PostgREST.ApiRequest
|
||||
, PostgREST.Types
|
||||
, PostgREST.OpenAPI
|
||||
hs-source-dirs: src
|
||||
|
||||
Test-Suite spec
|
||||
Type: exitcode-stdio-1.0
|
||||
Default-Language: Haskell2010
|
||||
default-extensions: OverloadedStrings, ScopedTypeVariables, QuasiQuotes
|
||||
default-extensions: OverloadedStrings, QuasiQuotes, NoImplicitPrelude
|
||||
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
||||
Hs-Source-Dirs: test
|
||||
Main-Is: Main.hs
|
||||
@@ -145,63 +109,41 @@ Test-Suite spec
|
||||
, Feature.DeleteSpec
|
||||
, Feature.InsertSpec
|
||||
, Feature.NoJwtSpec
|
||||
, Feature.QuerySpec
|
||||
, Feature.ProxySpec
|
||||
, Feature.QueryLimitedSpec
|
||||
, Feature.QuerySpec
|
||||
, Feature.RangeSpec
|
||||
, Feature.StructureSpec
|
||||
, Feature.UnicodeSpec
|
||||
, SpecHelper
|
||||
, TestTypes
|
||||
Build-Depends: aeson
|
||||
, auto-update
|
||||
, aeson-qq
|
||||
, async
|
||||
, auto-update
|
||||
, base
|
||||
, protolude
|
||||
, base64-string
|
||||
, bytestring
|
||||
, case-insensitive
|
||||
, cassava
|
||||
, containers
|
||||
, contravariant
|
||||
, errors
|
||||
, hasql
|
||||
, hasql-pool
|
||||
, hasql-transaction
|
||||
, heredoc
|
||||
, hjsonpointer
|
||||
, hjsonschema
|
||||
, hspec
|
||||
, hspec-wai
|
||||
, hspec-wai-json
|
||||
, http-types
|
||||
, interpolatedstring-perl6
|
||||
, jwt
|
||||
, lens
|
||||
, lens-aeson
|
||||
, monad-control
|
||||
, mtl
|
||||
, optparse-applicative
|
||||
, parsec
|
||||
, postgrest
|
||||
, process
|
||||
, protolude
|
||||
, regex-tdfa
|
||||
, safe
|
||||
, scientific
|
||||
, string-conversions
|
||||
, text
|
||||
, time
|
||||
, transformers
|
||||
, transformers-base
|
||||
, unordered-containers
|
||||
, vector
|
||||
, wai
|
||||
, wai-cors
|
||||
, wai-extra
|
||||
, wai-middleware-static
|
||||
, warp
|
||||
, insert-ordered-containers
|
||||
, hjsonpointer
|
||||
, hjsonschema
|
||||
, swagger2
|
||||
, network-uri
|
||||
, HTTP
|
||||
, Ranged-sets
|
||||
|
||||
@@ -19,7 +19,6 @@ module PostgREST.Config ( prettyVersion
|
||||
)
|
||||
where
|
||||
|
||||
import Control.Applicative
|
||||
import qualified Data.ByteString.Char8 as BS
|
||||
import qualified Data.CaseInsensitive as CI
|
||||
import Data.List (lookup)
|
||||
@@ -29,7 +28,8 @@ import Network.Wai
|
||||
import Network.Wai.Middleware.Cors (CorsResourcePolicy (..))
|
||||
import Options.Applicative
|
||||
import Paths_postgrest (version)
|
||||
import Protolude hiding (intercalate)
|
||||
import Protolude hiding (intercalate
|
||||
, (<>))
|
||||
import Safe (readMay)
|
||||
|
||||
-- | Data type to store all command line options
|
||||
|
||||
@@ -15,7 +15,6 @@ import qualified Hasql.Query as H
|
||||
import Control.Applicative
|
||||
import Data.List (elemIndex)
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Monoid
|
||||
import Data.Text (split, strip,
|
||||
breakOn, dropAround)
|
||||
import qualified Data.Text as T
|
||||
|
||||
@@ -35,7 +35,6 @@ import qualified Hasql.Decoders as HD
|
||||
import qualified Data.Aeson as JSON
|
||||
|
||||
import PostgREST.RangeQuery (NonnegRange, rangeLimit, rangeOffset, allRange)
|
||||
import Control.Error (note, hush)
|
||||
import Data.Functor.Contravariant (contramap)
|
||||
import qualified Data.HashMap.Strict as HM
|
||||
import Data.Text (intercalate, unwords, replace, isInfixOf, toLower, split)
|
||||
@@ -361,7 +360,7 @@ requestToQuery schema isParent (DbRead (Node (Select colSelects tbls conditions
|
||||
<> "FROM (" <> subquery <> ") " <> pgFmtIdent table
|
||||
<> "), '[]') AS " <> pgFmtIdent (fromMaybe name alias)
|
||||
where subquery = requestToQuery schema False (DbRead (Node n forst))
|
||||
|
||||
|
||||
getQueryParts (Node n@(_, (name, Just r@Relation{relType=Parent,relTable=Table{tableName=table}}, alias)) forst) (j,s) = (joi:j,sel:s)
|
||||
where
|
||||
node_name = fromMaybe name alias
|
||||
|
||||
+1
-18
@@ -1,24 +1,7 @@
|
||||
resolver: lts-6.7
|
||||
resolver: lts-7.4
|
||||
extra-deps:
|
||||
- Ranged-sets-0.3.0
|
||||
- bytestring-tree-builder-0.2.7
|
||||
- hasql-0.19.12
|
||||
- hasql-pool-0.4.1
|
||||
- hasql-transaction-0.4.5.1
|
||||
- jwt-0.7.2
|
||||
- postgresql-binary-0.9.0.1
|
||||
- binary-parser-0.5.2
|
||||
- contravariant-extras-0.3.2
|
||||
- placeholders-0.1
|
||||
- postgresql-error-codes-1
|
||||
- success-0.2.6
|
||||
- tuple-th-0.2.5
|
||||
- wai-cors-0.2.5
|
||||
- cryptohash-sha256-0.11.100.0
|
||||
- hackage-security-0.5.2.1
|
||||
- swagger2-2.1
|
||||
- hjsonpointer-0.3.0.1
|
||||
- hjsonschema-1.0.0.0
|
||||
- network-uri-2.6.1.0
|
||||
ghc-options:
|
||||
postgrest: -O2 -Werror -Wall -fwarn-identities
|
||||
|
||||
@@ -9,6 +9,8 @@ import Network.HTTP.Types
|
||||
|
||||
import SpecHelper
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
-- }}}
|
||||
|
||||
spec :: SpecWith Application
|
||||
|
||||
@@ -16,6 +16,8 @@ import Network.Wai.Test (Session)
|
||||
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "Queryiny in parallel" $
|
||||
|
||||
@@ -10,6 +10,8 @@ import SpecHelper
|
||||
|
||||
import Network.HTTP.Types
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
-- }}}
|
||||
|
||||
spec :: SpecWith Application
|
||||
|
||||
@@ -7,6 +7,8 @@ import Text.Heredoc
|
||||
import Network.HTTP.Types
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "Deleting" $ do
|
||||
|
||||
@@ -8,8 +8,8 @@ import Network.Wai.Test (SResponse(simpleBody,simpleHeaders,simpleStatus))
|
||||
import SpecHelper
|
||||
|
||||
import qualified Data.Aeson as JSON
|
||||
import Data.List (lookup)
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Monoid ((<>))
|
||||
import Text.Heredoc
|
||||
import Network.HTTP.Types.Header
|
||||
import Network.HTTP.Types
|
||||
@@ -18,6 +18,8 @@ import Control.Monad (replicateM_, void)
|
||||
import TestTypes(IncPK(..), CompoundPK(..))
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec = do
|
||||
describe "Posting new record" $ do
|
||||
|
||||
@@ -7,6 +7,8 @@ import Network.HTTP.Types
|
||||
|
||||
import SpecHelper
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
-- }}}
|
||||
|
||||
spec :: SpecWith Application
|
||||
|
||||
@@ -6,6 +6,8 @@ import SpecHelper
|
||||
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "GET / with proxy" $
|
||||
|
||||
@@ -9,6 +9,8 @@ import Text.Heredoc
|
||||
import SpecHelper
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "Requesting many items with server limits enabled" $ do
|
||||
|
||||
@@ -10,6 +10,8 @@ import SpecHelper
|
||||
import Text.Heredoc
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec = do
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import SpecHelper
|
||||
import Text.Heredoc
|
||||
import Network.Wai (Application)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
defaultRange :: BL.ByteString
|
||||
defaultRange = [json| { "min": 0, "max": 15 } |]
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ import SpecHelper
|
||||
import Network.Wai (Application)
|
||||
import Network.Wai.Test (SResponse(..))
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec = do
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ import Test.Hspec.Wai.JSON
|
||||
import Network.Wai (Application)
|
||||
import Control.Monad (void)
|
||||
|
||||
import Protolude hiding (get)
|
||||
|
||||
spec :: SpecWith Application
|
||||
spec =
|
||||
describe "Reading and writing to unicode schema and table names" $
|
||||
|
||||
+5
-3
@@ -8,8 +8,8 @@ import qualified Hasql.Pool as P
|
||||
import PostgREST.DbStructure (getDbStructure)
|
||||
import PostgREST.App (postgrest)
|
||||
import Control.AutoUpdate
|
||||
import Data.Function (id)
|
||||
import Data.IORef
|
||||
import Data.String.Conversions (cs)
|
||||
import Data.Time.Clock.POSIX (getPOSIXTime)
|
||||
|
||||
import qualified Feature.AuthSpec
|
||||
@@ -25,18 +25,20 @@ import qualified Feature.StructureSpec
|
||||
import qualified Feature.UnicodeSpec
|
||||
import qualified Feature.ProxySpec
|
||||
|
||||
import Protolude
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
setupDb
|
||||
|
||||
pool <- P.acquire (3, 10, cs testDbConn)
|
||||
pool <- P.acquire (3, 10, toS testDbConn)
|
||||
-- ask for the OS time at most once per second
|
||||
getTime <- mkAutoUpdate
|
||||
defaultUpdateSettings { updateAction = getPOSIXTime }
|
||||
|
||||
|
||||
result <- P.use pool $ getDbStructure "test"
|
||||
refDbStructure <- newIORef $ either (error.show) id result
|
||||
refDbStructure <- newIORef $ either (panic.show) id result
|
||||
let withApp = return $ postgrest testCfg refDbStructure pool getTime
|
||||
ltdApp = return $ postgrest testLtdRowsCfg refDbStructure pool getTime
|
||||
unicodeApp = return $ postgrest testUnicodeCfg refDbStructure pool getTime
|
||||
|
||||
+7
-7
@@ -1,10 +1,10 @@
|
||||
module SpecHelper where
|
||||
|
||||
import Data.String.Conversions (cs)
|
||||
import Control.Monad (void)
|
||||
|
||||
import Codec.Binary.Base64.String (encode)
|
||||
import Data.CaseInsensitive (CI(..))
|
||||
import Data.List (lookup)
|
||||
import Text.Regex.TDFA ((=~))
|
||||
import qualified Data.ByteString.Char8 as BS
|
||||
import System.Process (readProcess)
|
||||
@@ -21,7 +21,7 @@ import Data.Maybe (fromJust)
|
||||
import Data.Aeson (decode)
|
||||
import qualified Data.JsonSchema.Draft4 as D4
|
||||
|
||||
import Data.Text
|
||||
import Protolude
|
||||
|
||||
validateOpenApiResponse :: [Header] -> WaiSession ()
|
||||
validateOpenApiResponse headers = do
|
||||
@@ -98,14 +98,14 @@ acceptHdrs mime = [(hAccept, mime)]
|
||||
rangeUnit :: Header
|
||||
rangeUnit = ("Range-Unit" :: CI BS.ByteString, "items")
|
||||
|
||||
matchHeader :: CI BS.ByteString -> String -> [Header] -> Bool
|
||||
matchHeader :: CI BS.ByteString -> BS.ByteString -> [Header] -> Bool
|
||||
matchHeader name valRegex headers =
|
||||
maybe False (=~ valRegex) $ lookup name headers
|
||||
|
||||
authHeaderBasic :: String -> String -> Header
|
||||
authHeaderBasic :: BS.ByteString -> BS.ByteString -> Header
|
||||
authHeaderBasic u p =
|
||||
(hAuthorization, cs $ "Basic " ++ encode (u ++ ":" ++ p))
|
||||
(hAuthorization, "Basic " <> (toS . encode . toS $ u <> ":" <> p))
|
||||
|
||||
authHeaderJWT :: String -> Header
|
||||
authHeaderJWT :: BS.ByteString -> Header
|
||||
authHeaderJWT token =
|
||||
(hAuthorization, cs $ "Bearer " ++ token)
|
||||
(hAuthorization, "Bearer " <> token)
|
||||
|
||||
Reference in New Issue
Block a user