summaryrefslogtreecommitdiff
path: root/wai-extra.cabal
blob: a1870b0bbd21d0303b820a364767e684f0e0d676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
Name:                wai-extra
Version:             3.1.13.0
x-revision: 1
Synopsis:            Provides some basic WAI handlers and middleware.
description:
  Provides basic WAI handler and middleware functionality:
  .
  * WAI Testing Framework
  .
  Hspec testing facilities and helpers for WAI.
  .
  * Event Source/Event Stream
  .
  Send server events to the client. Compatible with the JavaScript
  EventSource API.
  .
  * Accept Override
  .
  Override the Accept header in a request. Special handling for the
  _accept query parameter (which is used throughout WAI override the
  Accept header).
  .
  * Add Headers
  .
  WAI Middleware for adding arbitrary headers to an HTTP request.
  .
  * Clean Path
  .
  Clean a request path to a canonical form.
  .
  * Combine Headers
  .
  Combine duplicate headers into one.
  .
  * GZip Compression
  .
  Negotiate HTTP payload gzip compression.
  .
  * Health check endpoint
  .
  Add an empty health check endpoint.
  .
  * HTTP Basic Authentication
  .
  WAI Basic Authentication Middleware which uses Authorization header.
  .
  * JSONP
  .
  \"JSON with Padding\" middleware. Automatic wrapping of JSON
  responses to convert into JSONP.
  .
  * Method Override / Post
  .
  Allows overriding of the HTTP request method via the _method query string
  parameter.
  .
  * Request Logging
  .
  Request logging middleware for development and production environments
  .
  * Request Rewrite
  .
  Rewrite request path info based on a custom conversion rules.
  .
  * Select
  .
  Dynamically choose between Middlewares.
  .
  * Stream Files
  .
  Convert ResponseFile type responses into ResponseStream type.
  .
  * Virtual Host
  .
  Redirect incoming requests to a new host based on custom rules.
  .
  .
  API docs and the README are available at <http://www.stackage.org/package/wai-extra>.

License:             MIT
License-file:        LICENSE
Author:              Michael Snoyman
Maintainer:          michael@snoyman.com
Homepage:            http://github.com/yesodweb/wai
Category:            Web
Build-Type:          Simple
Cabal-Version:       >=1.10
Stability:           Stable
extra-source-files:
  test/requests/dalvik-request
  test/json
  test/json.gz
  test/noprecompress
  test/test.html
  test/sample.hs
  ChangeLog.md
  README.md

flag build-example
  description:        Build example executable.
  manual:             True
  default:            False

Library
  Build-Depends:     base                      >= 4.12 && < 5
                   , aeson
                   , ansi-terminal             >= 0.4
                   , base64-bytestring
                   , bytestring                >= 0.10.4
                   , call-stack
                   , case-insensitive          >= 0.2
                   , containers
                   , cookie
                   , data-default-class
                   , directory                 >= 1.2.7.0
                   , fast-logger               >= 2.4.5
                   , http-types                >= 0.7
                   , HUnit
                   , iproute                   >= 1.7.8
                   , network                   >= 2.6.1.0
                   , resourcet                 >= 0.4.6    && < 1.4
                   , streaming-commons         >= 0.2
                   , text                      >= 0.7
                   , time                      >= 1.1.4
                   , transformers              >= 0.2.2
                   , vault
                   , wai                       >= 3.2.2.1  && < 3.3
                   , wai-logger                >= 2.3.7
                   , warp                      >= 3.3.22
                   , word8

  if os(windows)
      cpp-options:   -DWINDOWS
  else
      build-depends: unix

  default-extensions:        OverloadedStrings

  Exposed-modules:   Network.Wai.EventSource
                     Network.Wai.EventSource.EventStream
                     Network.Wai.Handler.CGI
                     Network.Wai.Handler.SCGI
                     Network.Wai.Header
                     Network.Wai.Middleware.AcceptOverride
                     Network.Wai.Middleware.AddHeaders
                     Network.Wai.Middleware.Approot
                     Network.Wai.Middleware.Autohead
                     Network.Wai.Middleware.CleanPath
                     Network.Wai.Middleware.CombineHeaders
                     Network.Wai.Middleware.ForceDomain
                     Network.Wai.Middleware.ForceSSL
                     Network.Wai.Middleware.Gzip
                     Network.Wai.Middleware.HealthCheckEndpoint
                     Network.Wai.Middleware.HttpAuth
                     Network.Wai.Middleware.Jsonp
                     Network.Wai.Middleware.Local
                     Network.Wai.Middleware.MethodOverride
                     Network.Wai.Middleware.MethodOverridePost
                     Network.Wai.Middleware.RealIp
                     Network.Wai.Middleware.RequestLogger
                     Network.Wai.Middleware.RequestLogger.JSON
                     Network.Wai.Middleware.RequestSizeLimit
                     Network.Wai.Middleware.RequestSizeLimit.Internal
                     Network.Wai.Middleware.Rewrite
                     Network.Wai.Middleware.Routed
                     Network.Wai.Middleware.Select
                     Network.Wai.Middleware.StreamFile
                     Network.Wai.Middleware.StripHeaders
                     Network.Wai.Middleware.Timeout
                     Network.Wai.Middleware.Vhost
                     Network.Wai.Parse
                     Network.Wai.Request
                     Network.Wai.Test
                     Network.Wai.Test.Internal
                     Network.Wai.UrlMap
  other-modules:     Network.Wai.Middleware.RequestLogger.Internal
                     Network.Wai.Util
  default-language:          Haskell2010
  ghc-options:       -Wall

executable example
  hs-source-dirs:      example
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
  if flag(build-example)
    build-depends:     base
                     , bytestring
                     , http-types
                     , time
                     , wai
                     , wai-extra
                     , warp
  else
    buildable: False
  default-language:    Haskell2010

test-suite spec
    type:            exitcode-stdio-1.0
    hs-source-dirs:  test
    main-is:         Spec.hs
    other-modules:   Network.Wai.Middleware.ApprootSpec
                     Network.Wai.Middleware.CombineHeadersSpec
                     Network.Wai.Middleware.ForceSSLSpec
                     Network.Wai.Middleware.RealIpSpec
                     Network.Wai.Middleware.RequestSizeLimitSpec
                     Network.Wai.Middleware.RoutedSpec
                     Network.Wai.Middleware.SelectSpec
                     Network.Wai.Middleware.StripHeadersSpec
                     Network.Wai.Middleware.TimeoutSpec
                     Network.Wai.ParseSpec
                     Network.Wai.RequestSpec
                     Network.Wai.TestSpec
                     WaiExtraSpec
    build-tool-depends: hspec-discover:hspec-discover
    build-depends:   base                      >= 4        && < 5
                   , aeson
                   , bytestring
                   , cookie
                   , case-insensitive
                   , directory
                   , fast-logger
                   , hspec >= 1.3
                   , http-types
                   , HUnit
                   , iproute
                   , resourcet
                   , temporary
                   , text
                   , time
                   , wai-extra
                   , wai
                   , warp
                   , zlib
    ghc-options:     -Wall
    default-language:          Haskell2010

    if os(windows)
        cpp-options:   -DWINDOWS

source-repository head
  type:     git
  location: git://github.com/yesodweb/wai.git