hunk.code_window: import qualified Codec.Compression.Brotli  as BR
   import qualified Codec.Compression.GZip    as GZ
   import qualified Data.ByteString.Lazy      as BL
   import qualified Data.Text                 as T
   import qualified Network.HTTP.Types.Header as NH
  
hunk.labels: keep replace keep keep keep keep
hunk.file_path: server/src-lib/Hasura/Server/Compression.hs
hunk.type: replace
file: name:                graphql-engine
  version:             1.0.0
  synopsis:            GraphQL API over Postgres
  -- description:
  homepage:            https://www.hasura.io
  license:             Apache-2.0
  -- license-file:        LICENSE.md
  author:              Vamshi Surabhi
  maintainer:          vamshi@hasura.io
  copyright:           Hasura Inc.
  category:            Database
  build-type:          Simple
  -- extra-source-files:  README.md
  cabal-version:       >=1.10
  
  source-repository head
    type:     git
    location: https://github.com/hasura/graphql-engine
  
  flag developer
    description: operate in developer mode
    default: False
    manual: True
  
  flag profile
    description: compile with profile options set
    default: False
    manual: True
  
  library
    hs-source-dirs:      src-lib
                       , src-exec
    default-language:    Haskell2010
    build-depends:       base
                       , pg-client
                       , text
                       , text-builder >= 0.6
                       , bytestring
                       , postgresql-libpq
                       , mtl
                       , aeson
                       , aeson-casing
                       , unordered-containers
                       , template-haskell
                       , hashable
                       , transformers
                       , transformers-base
                       , http-types
                       , attoparsec
                       , attoparsec-iso8601 >= 1.0
                       , time
                       , scientific
                       , Spock-core
                       , split
                       , optparse-applicative
                       , containers
                       , monad-control
                       , monad-time
                       , monad-validate
                       , fast-logger
                       , wai
                       , postgresql-binary
                       , process
  
                       -- Encoder related
                       , uuid
                       , vector
  
                       -- Logging related
                       , network
                       , byteorder
  
                       -- for parsing RSA keys
                       , cryptonite
  
                       -- for jwt verification
                       , jose
                       , pem
                       , x509
                       , asn1-encoding
                       , asn1-types
  
                       -- Server related
                       , warp
                       , th-lift-instances
                       , lens
  
                       -- GraphQL related
                       , graphql-parser
  
                       -- URL parser related
                       , network-uri
  
                       -- String related
                       , case-insensitive
                       , string-conversions
                       , text-conversions
  
                       -- Http client
                       , wreq
                       , http-client
  
                       -- ordered map
                       , insert-ordered-containers
  
                       -- Parsing SemVer
                       , semver
  
                       -- Templating
                       , mustache
                       , ginger
                       , file-embed
  
                       --
                       , data-has
                       -- for src-exec
                       , yaml
                       , template-haskell >= 2.11
  
                       -- websockets interface related
                       , websockets
                       , wai-websockets
                       , stm
                       , stm-containers
                       , list-t
                       , async
  
                       -- logging related
                       , base64-bytestring >= 1.0
                       , auto-update
  
                       -- regex related
                       , regex-tdfa >= 1.2
  
                       -- pretty printer
                       , ansi-wl-pprint
  
                       -- for capturing various metrics
                       , ekg-core
                       , ekg-json
  
                       -- metrics for CI integration
                       , ci-info
  
                       -- serve static files
                       , filepath >= 1.4
                       , mime-types >= 0.1
  
                       -- HTTP compression
                       , zlib
                       , brotli
  
    exposed-modules:     Hasura.Prelude
                       , Hasura.Logging
                       , Hasura.EncJSON
                       , Hasura.Db
                       , Hasura.Cache
  
                       , Hasura.Server.App
                       , Hasura.Server.Auth
                       , Hasura.Server.Auth.JWT
                       , Hasura.Server.Init
                       , Hasura.Server.Context
                       , Hasura.Server.Middleware
                       , Hasura.Server.Logging
                       , Hasura.Server.Query
                       , Hasura.Server.Utils
                       , Hasura.Server.Cors
                       , Hasura.Server.Version
                       , Hasura.Server.CheckUpdates
                       , Hasura.Server.Telemetry
                       , Hasura.Server.SchemaUpdate
                       , Hasura.Server.PGDump
                       , Hasura.Server.Config
                       , Hasura.Server.Compression
  
                       , Hasura.RQL.Types
                       , Hasura.RQL.Instances
                       , Hasura.RQL.Types.SchemaCache
                       , Hasura.RQL.Types.SchemaCacheTypes
                       , Hasura.RQL.Types.BoolExp
                       , Hasura.RQL.Types.Catalog
                       , Hasura.RQL.Types.Column
                       , Hasura.RQL.Types.Common
                       , Hasura.RQL.Types.DML
                       , Hasura.RQL.Types.Error
                       , Hasura.RQL.Types.EventTrigger
                       , Hasura.RQL.Types.Metadata
                       , Hasura.RQL.Types.Permission
                       , Hasura.RQL.Types.QueryCollection
                       , Hasura.RQL.Types.RemoteSchema
                       , Hasura.RQL.DDL.Deps
                       , Hasura.RQL.DDL.Permission.Internal
                       , Hasura.RQL.DDL.Permission.Triggers
                       , Hasura.RQL.DDL.Permission
                       , Hasura.RQL.DDL.Relationship
                       , Hasura.RQL.DDL.Relationship.Rename
                       , Hasura.RQL.DDL.Relationship.Types
                       , Hasura.RQL.DDL.Schema
                       , Hasura.RQL.DDL.Schema.Cache
                       , Hasura.RQL.DDL.Schema.Catalog
                       , Hasura.RQL.DDL.Schema.Diff
                       , Hasura.RQL.DDL.Schema.Enum
                       , Hasura.RQL.DDL.Schema.Function
                       , Hasura.RQL.DDL.Schema.Rename
                       , Hasura.RQL.DDL.Schema.Table
                       , Hasura.RQL.DDL.Metadata
                       , Hasura.RQL.DDL.Utils
                       , Hasura.RQL.DDL.EventTrigger
                       , Hasura.RQL.DDL.Headers
                       , Hasura.RQL.DDL.RemoteSchema
                       , Hasura.RQL.DDL.QueryCollection
                       , Hasura.RQL.DML.Delete
                       , Hasura.RQL.DML.Internal
                       , Hasura.RQL.DML.Insert
                       , Hasura.RQL.DML.Mutation
                       , Hasura.RQL.DML.Returning
                       , Hasura.RQL.DML.Select.Internal
                       , Hasura.RQL.DML.Select.Types
                       , Hasura.RQL.DML.Select
                       , Hasura.RQL.DML.Update
                       , Hasura.RQL.DML.Count
                       , Hasura.RQL.GBoolExp
  
                       , Hasura.GraphQL.Transport.HTTP.Protocol
                       , Hasura.GraphQL.Transport.HTTP
                       , Hasura.GraphQL.Transport.WebSocket.Protocol
                       , Hasura.GraphQL.Transport.WebSocket.Server
                       , Hasura.GraphQL.Transport.WebSocket
                       , Hasura.GraphQL.Schema.BoolExp
                       , Hasura.GraphQL.Schema.Common
                       , Hasura.GraphQL.Schema.Function
                       , Hasura.GraphQL.Schema.OrderBy
                       , Hasura.GraphQL.Schema.Select
                       , Hasura.GraphQL.Schema.Merge
                       , Hasura.GraphQL.Schema.Mutation.Common
                       , Hasura.GraphQL.Schema.Mutation.Insert
                       , Hasura.GraphQL.Schema.Mutation.Update
                       , Hasura.GraphQL.Schema.Mutation.Delete
                       , Hasura.GraphQL.Schema
                       , Hasura.GraphQL.Utils
                       , Hasura.GraphQL.Validate
                       , Hasura.GraphQL.Validate.Types
                       , Hasura.GraphQL.Validate.Context
                       , Hasura.GraphQL.Validate.Field
                       , Hasura.GraphQL.Validate.InputValue
                       , Hasura.GraphQL.Explain
                       , Hasura.GraphQL.Execute
                       , Hasura.GraphQL.Execute.Plan
                       , Hasura.GraphQL.Execute.Query
                       , Hasura.GraphQL.Execute.LiveQuery
                       , Hasura.GraphQL.Execute.LiveQuery.Options
                       , Hasura.GraphQL.Execute.LiveQuery.Plan
                       , Hasura.GraphQL.Execute.LiveQuery.Poll
                       , Hasura.GraphQL.Execute.LiveQuery.State
                       , Hasura.GraphQL.Execute.LiveQuery.TMap
                       , Hasura.GraphQL.Resolve
                       , Hasura.GraphQL.Resolve.Types
                       , Hasura.GraphQL.Resolve.Context
                       , Hasura.GraphQL.Resolve.BoolExp
                       , Hasura.GraphQL.Resolve.InputValue
                       , Hasura.GraphQL.Resolve.Introspect
                       , Hasura.GraphQL.Resolve.Insert
                       , Hasura.GraphQL.Resolve.Mutation
                       , Hasura.GraphQL.Resolve.Select
                       , Hasura.GraphQL.RemoteServer
                       , Hasura.GraphQL.Context
                       , Hasura.GraphQL.Logging
  
                       , Hasura.Events.Lib
                       , Hasura.Events.HTTP
  
                       , Hasura.HTTP
  
                       , Control.Concurrent.Extended
                       , Control.Lens.Extended
                       , Data.Aeson.Extended
                       , Data.HashMap.Strict.InsOrd.Extended
                       , Data.Parser.JSONPath
                       , Data.Sequence.NonEmpty
                       , Data.TByteString
                       , Data.Text.Extended
                       , Data.Time.Clock.Units
  
                       , Hasura.SQL.DML
                       , Hasura.SQL.Error
                       , Hasura.SQL.GeoJSON
                       , Hasura.SQL.Rewrite
                       , Hasura.SQL.Time
                       , Hasura.SQL.Types
                       , Hasura.SQL.Value
                       , Network.URI.Extended
                       , Ops
                       , Migrate
  
    other-modules:       Hasura.Server.Auth.JWT.Internal
                       , Hasura.Server.Auth.JWT.Logging
  
    default-extensions: ApplicativeDo
                        BangPatterns
                        ConstraintKinds
                        DeriveDataTypeable
                        DeriveFoldable
                        DeriveFunctor
                        DeriveGeneric
                        DeriveLift
                        DeriveTraversable
                        EmptyCase
                        FlexibleContexts
                        FlexibleInstances
                        FunctionalDependencies
                        GeneralizedNewtypeDeriving
                        InstanceSigs
                        LambdaCase
                        MultiParamTypeClasses
                        MultiWayIf
                        NoImplicitPrelude
                        OverloadedStrings
                        QuasiQuotes
                        RankNTypes
                        ScopedTypeVariables
                        StandaloneDeriving
                        TemplateHaskell
                        TupleSections
                        TypeApplications
                        TypeFamilies
  
  
    if flag(profile)
      ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
    if flag(developer)
      cpp-options: -DDeveloperAPIs
  
    ghc-options: -O2
                 -foptimal-applicative-do
                 -fdefer-typed-holes
                 -Wall
                 -Wcompat
                 -Wincomplete-record-updates
                 -Wincomplete-uni-patterns
                 -Wredundant-constraints
  
  executable graphql-engine
    default-extensions: ApplicativeDo
                        BangPatterns
                        ConstraintKinds
                        DeriveDataTypeable
                        DeriveFoldable
                        DeriveFunctor
                        DeriveGeneric
                        DeriveLift
                        DeriveTraversable
                        EmptyCase
                        FlexibleContexts
                        FlexibleInstances
                        FunctionalDependencies
                        GeneralizedNewtypeDeriving
                        InstanceSigs
                        LambdaCase
                        MultiParamTypeClasses
                        MultiWayIf
                        NoImplicitPrelude
                        OverloadedStrings
                        QuasiQuotes
                        RankNTypes
                        ScopedTypeVariables
                        StandaloneDeriving
                        TemplateHaskell
                        TupleSections
                        TypeApplications
                        TypeFamilies
  
    main-is:           Main.hs
    default-language:  Haskell2010
    hs-source-dirs:    src-exec
    build-depends:       base
                       , warp >= 3.2
                       , graphql-engine
                       , aeson >= 1.0
                       , bytestring >= 0.10
                       , mtl
                       , optparse-applicative >= 0.12
                       , yaml
                       , template-haskell >= 2.11 , time >= 1.6
                       , text
                       , lens
                       , unordered-containers >= 0.2
                       , pg-client
                       , http-client
                       , http-client-tls
                       , stm
                       , wreq
                       , string-conversions
                       , uuid
                       , unix
  
    other-modules:       Ops
                       , Migrate
  
    if flag(developer)
      ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries
  
    ghc-options: -O2
                 -foptimal-applicative-do
                 -fdefer-typed-holes
                 -Wall
                 -Wcompat
                 -Wincomplete-record-updates
                 -Wincomplete-uni-patterns
                 -Wredundant-constraints
                 -threaded -rtsopts
                 -- Re. `-I2` see #2565
                 "-with-rtsopts=-N -I2"
  