1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
3 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
6 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
7 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
9 ;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
10 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
11 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
12 ;;; Copyright © 2020, 2022 Kyle Meyer <kyle@kyleam.com>
13 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
14 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
15 ;;; Copyright © 2022 Alice Brenon <alice.brenon@ens-lyon.fr>
17 ;;; This file is part of GNU Guix.
19 ;;; GNU Guix is free software; you can redistribute it and/or modify it
20 ;;; under the terms of the GNU General Public License as published by
21 ;;; the Free Software Foundation; either version 3 of the License, or (at
22 ;;; your option) any later version.
24 ;;; GNU Guix is distributed in the hope that it will be useful, but
25 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 ;;; GNU General Public License for more details.
29 ;;; You should have received a copy of the GNU General Public License
30 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
32 (define-module (gnu packages haskell-web)
33 #:use-module (gnu packages)
34 #:use-module (gnu packages curl)
35 #:use-module (gnu packages haskell)
36 #:use-module (gnu packages haskell-check)
37 #:use-module (gnu packages haskell-crypto)
38 #:use-module (gnu packages haskell-xyz)
39 #:use-module (guix build-system haskell)
40 #:use-module (guix download)
41 #:use-module ((guix licenses) #:prefix license:)
42 #:use-module (guix packages)
43 #:use-module (guix utils))
45 (define-public ghc-tagsoup
52 (uri (string-append "https://hackage.haskell.org/package/tagsoup/"
53 "tagsoup-" version ".tar.gz"))
56 "1m9sx6gr9y9yxvkmcap8xsks8cnhznvma1mrfl39zljkv005azms"))))
57 (build-system haskell-build-system)
59 (list ghc-quickcheck))
60 (home-page "https://github.com/ndmitchell/tagsoup")
62 "Parsing and extracting information from (possibly malformed) HTML/XML
65 "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
66 specification, and can be used to parse either well-formed XML, or
67 unstructured and malformed HTML from the web. The library also provides
68 useful functions to extract information from an HTML document, making it ideal
69 for screen-scraping.")
70 (license license:bsd-3)))
72 (define-public ghc-cookie
80 "https://hackage.haskell.org/package/cookie/cookie-"
85 "10rmdasb7mypbwxdj2mhr810vqhkakpik7hyd8fvj60hng8r8zvh"))))
86 (build-system haskell-build-system)
90 ghc-data-default-class
95 ghc-tasty-quickcheck))
96 (home-page "https://github.com/snoyberg/cookie")
97 (synopsis "HTTP cookie parsing and rendering")
98 (description "HTTP cookie parsing and rendering library for Haskell.")
99 (license license:bsd-3)))
101 (define-public ghc-curl
107 (uri (string-append "mirror://hackage/package/curl/curl-"
111 "0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
112 (build-system haskell-build-system)
115 (home-page "https://hackage.haskell.org/package/curl")
116 (synopsis "Haskell bindings for libcurl")
118 "@code{libcurl} is a versatile client-side URL transfer library.
119 This package provides a Haskell binding to libcurl.")
120 (license license:bsd-3)))
122 (define-public ghc-httpd-shed
124 (name "ghc-httpd-shed")
129 (uri (string-append "https://hackage.haskell.org/package/httpd-shed/"
130 "httpd-shed-" version ".tar.gz"))
133 "19dgdimpzr7pxk7pqvyin6j87gmvnf0rm35gzhmna8qr835wy3sr"))))
134 (build-system haskell-build-system)
136 (list ghc-network-bsd ghc-network-uri ghc-network))
137 (home-page "https://hackage.haskell.org/package/httpd-shed")
138 (synopsis "Simple web-server with an interact style API")
140 "This web server promotes a function from @code{Request} to @code{IO
141 Response} into a local web server. The user can decide how to interpret the
142 requests, and the library is intended for implementing Ajax APIs.")
143 (license license:bsd-3)))
145 (define-public ghc-http-types
147 (name "ghc-http-types")
152 (uri (string-append "https://hackage.haskell.org/package/http-types/"
153 "http-types-" version ".tar.gz"))
156 "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
157 (build-system haskell-build-system)
159 (list ghc-doctest ghc-hspec ghc-quickcheck ghc-quickcheck-instances
162 (list ghc-case-insensitive))
163 (home-page "https://github.com/aristidb/http-types")
164 (synopsis "Generic HTTP types for Haskell")
165 (description "This package provides generic HTTP types for Haskell (for
166 both client and server code).")
167 (license license:bsd-3)))
169 (define-public ghc-http
172 (version "4000.3.16")
173 (outputs '("out" "static" "doc"))
177 (uri (string-append "https://hackage.haskell.org/package/HTTP/"
178 "HTTP-" version ".tar.gz"))
181 "0bgyj3ahqlyg0jw6qsm2sncp8mklc4h0dj91s043vb3ig01iq2fn"))))
182 (build-system haskell-build-system)
184 (list ghc-httpd-shed ghc-hunit ghc-test-framework
185 ghc-test-framework-hunit))
187 (list ghc-case-insensitive
197 `(#:tests? #f ; FIXME: currently missing libraries used for tests.
199 (modify-phases %standard-phases
200 (add-after 'unpack 'create-simple-paths-module
202 (call-with-output-file "Paths_HTTP.hs"
206 {-# LANGUAGE NoRebindableSyntax #-}
207 {-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
208 module Paths_HTTP (version) where
209 import Data.Version (Version(..))
211 version = Version [~a] []
212 " (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
214 (home-page "https://github.com/haskell/HTTP")
215 (synopsis "Library for client-side HTTP")
217 "The HTTP package supports client-side web programming in Haskell. It
218 lets you set up HTTP connections, transmitting requests and processing the
219 responses coming back.")
220 (license license:bsd-3)))
222 (define-public ghc-http-client
224 (name "ghc-http-client")
228 (uri (string-append "https://hackage.haskell.org/package/"
229 "http-client/http-client-"
233 "12j7vkpkm2djws6ny7vm2324c7916d0iaf1mbvf4mfjxzy2w7imv"))))
234 (build-system haskell-build-system)
235 ;; Tests require access to the web.
236 (arguments `(#:tests? #f))
239 ghc-base64-bytestring
243 ghc-data-default-class
253 ghc-streaming-commons
257 (home-page "https://github.com/snoyberg/http-client")
258 (synopsis "HTTP client engine")
260 "This package provides an HTTP client engine, intended as a base layer
261 for more user-friendly packages.")
262 (license license:expat)))
264 (define-public ghc-http-client-tls
266 (name "ghc-http-client-tls")
270 (uri (string-append "https://hackage.haskell.org/package/"
271 "http-client-tls/http-client-tls-"
275 "03f8p9gxdzl6slyw1r6vpv2dqhsyjvbaawbjv75kaq0vlj3gz7xi"))))
276 (build-system haskell-build-system)
277 ;; Tests require Internet access
278 (arguments `(#:tests? #f))
280 (list ghc-data-default-class
288 (home-page "https://github.com/snoyberg/http-client")
289 (synopsis "Backend for http-client using the TLS library")
291 "This package provides a backend for the http-client package using the
292 connection and TLS libraries. It is intended for use by higher-level
293 libraries, such as http-conduit.")
294 (license license:expat)))
296 (define-public ghc-http-client-restricted
298 (name "ghc-http-client-restricted")
303 (uri (hackage-uri "http-client-restricted" version))
305 (base32 "1vfm9qc3zr0rmq2ddgyg13i67020cdk8xqhyzfc2zcn1km2p6r85"))))
306 (build-system haskell-build-system)
308 (list ghc-http-client
315 (home-page "http://hackage.haskell.org/package/http-client-restricted")
316 (synopsis "Restrict the servers used by http-client")
318 "This library makes it possible to restrict the HTTP servers that can be
319 used by the @code{http-client} and @code{http-client-tls} libraries. This is
320 useful when a security policy needs to, e.g., prevent connections to HTTP
321 servers on localhost or only allow connections to a specific server.")
322 (license license:expat)))
324 (define-public ghc-http-date
326 (name "ghc-http-date")
331 (uri (string-append "https://hackage.haskell.org/package/"
332 "http-date-" version "/"
333 "http-date-" version ".tar.gz"))
336 "1lzlrj2flcnz3k5kfhf11nk5n8m6kcya0lkwrsnzxgfr3an27y9j"))))
337 (build-system haskell-build-system)
339 (list ghc-attoparsec))
341 (list ghc-doctest ghc-hspec hspec-discover ghc-old-locale))
342 (home-page "https://github.com/kazu-yamamoto/http-date")
343 (synopsis "HTTP Date parser/formatter")
344 (description "Library for Parsing and formatting HTTP
346 (license license:bsd-3)))
348 (define-public ghc-http2
355 (uri (string-append "https://hackage.haskell.org/package/"
357 "http2-" version ".tar.gz"))
360 "13c2z35gdimncgpyg5dn5cpjvd83rbrigc8b40crg36678m0k0d1"))))
361 (build-system haskell-build-system)
365 ghc-base16-bytestring
369 ghc-network-byte-order
375 ghc-unordered-containers
385 (home-page "https://github.com/kazu-yamamoto/http2")
386 (synopsis "HTTP/2 library including frames, priority queues and HPACK")
387 (description "This package provides a HTTP/2.0 library including frames
388 and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
389 (license license:bsd-3)))
391 (define-public ghc-http-conduit
393 (name "ghc-http-conduit")
398 (uri (string-append "https://hackage.haskell.org/package/"
399 "http-conduit-" version "/" "http-conduit-"
403 "1bj24phbcb7s3k6v48l5gk82m3m23j8zy9l7c5ccxp3ghn9z5gng"))))
404 (build-system haskell-build-system)
405 ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
406 ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
408 (arguments `(#:tests? #f))
424 ghc-data-default-class
439 ghc-streaming-commons
443 (home-page "https://hackage.haskell.org/package/http-conduit")
444 (synopsis "HTTP/HTTPS client with conduit interface")
445 (description "This library uses attoparsec for parsing the actual
446 contents of the HTTP connection. It also provides higher-level functions
447 which allow you to avoid direct usage of conduits.")
448 (license license:bsd-3)))
450 (define-public ghc-http-reverse-proxy
452 (name "ghc-http-reverse-proxy")
458 "https://hackage.haskell.org/package/http-reverse-proxy/"
459 "http-reverse-proxy-" version ".tar.gz"))
462 "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v"))))
463 (build-system haskell-build-system)
465 (list ghc-case-insensitive
477 ghc-streaming-commons))
479 (list ghc-hspec ghc-warp ghc-http-conduit))
481 "https://github.com/fpco/http-reverse-proxy")
483 "Reverse proxy HTTP requests, either over raw sockets or with WAI")
485 "Provides a simple means of reverse-proxying HTTP requests. The raw
486 approach uses the same technique as leveraged by keter, whereas the WAI
487 approach performs full request/response parsing via WAI and http-conduit.")
488 (license license:bsd-3)))
490 (define-public ghc-wai
498 "https://hackage.haskell.org/package/wai/wai-"
503 "1y19h9v0cq1fl17ywcyyvd6419fhgyw2s0yk0ki8z60021adcx2m"))))
504 (build-system haskell-build-system)
506 (list ghc-bytestring-builder
513 (list hspec-discover ghc-quickcheck ghc-hunit ghc-hspec))
514 (home-page "https://hackage.haskell.org/package/wai")
515 (synopsis "Web application interface for Haskell")
516 (description "This package provides a Web Application Interface (WAI)
517 library for the Haskell language. It defines a common protocol for
518 communication between web applications and web servers.")
519 (license license:bsd-3)))
521 (define-public ghc-wai-logger
523 (name "ghc-wai-logger")
529 "https://hackage.haskell.org/package/wai-logger/wai-logger-"
534 "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2"))))
535 (build-system haskell-build-system)
536 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
537 ; by propagated-inputs.
539 (list ghc-auto-update
549 (home-page "https://hackage.haskell.org/package/wai-logger")
550 (synopsis "Logging system for WAI")
551 (description "This package provides the logging system for WAI.")
552 (license license:bsd-3)))
554 (define-public ghc-wai-extra
556 (name "ghc-wai-extra")
562 "https://hackage.haskell.org/package/wai-extra/wai-extra-"
567 "1avf7bjcsbs8l6klp5kkd0cd2dc5n0j0a2yf8813pnwfn5b7qyd4"))))
568 (build-system haskell-build-system)
570 (list ghc-ansi-terminal
571 ghc-base64-bytestring
575 ghc-streaming-commons
585 ghc-data-default-class
589 (list hspec-discover ghc-hspec ghc-hunit ghc-zlib))
590 (home-page "https://github.com/yesodweb/wai")
591 (synopsis "Some basic WAI handlers and middleware")
592 (description "This library provides basic WAI handlers and middleware
594 (license license:expat)))
596 (define-public ghc-wai-conduit
598 (name "ghc-wai-conduit")
603 (uri (string-append "https://hackage.haskell.org/package/"
604 "wai-conduit-" version "/"
605 "wai-conduit-" version ".tar.gz"))
608 "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417"))))
609 (build-system haskell-build-system)
611 (list ghc-conduit ghc-http-types ghc-wai ghc-blaze-builder))
612 (home-page "https://github.com/yesodweb/wai")
613 (synopsis "Conduit wrappers for Haskell's WAI")
614 (description "This package provides data streaming abstraction for
615 Haskell's Web Application Interface (WAI).")
616 (license license:expat)))
618 (define-public ghc-bsb-http-chunked
620 (name "ghc-bsb-http-chunked")
626 "https://hackage.haskell.org/package/"
627 "bsb-http-chunked/bsb-http-chunked-"
631 "0z0f18yc6zlwh29c6175ivfcin325lvi4irpvv0n3cmq7vi0k0ql"))))
632 (build-system haskell-build-system)
634 `(;; XXX: As of 0.0.4, one property test ("Identical output as Blaze")
635 ;; fails on i686-linux.
636 #:tests? ,(and (not (%current-target-system))
637 (not (string-prefix? "i686" (or (%current-target-system)
638 (%current-system)))))
640 ("3" "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd")))
649 (home-page "https://github.com/sjakobi/bsb-http-chunked")
650 (synopsis "Chunked HTTP transfer encoding for bytestring builders")
651 (description "This Haskell library contains functions for encoding
652 bytestring builders for chunked Hypertext Transfer Protocol (HTTP) 1.1
654 (license license:bsd-3)))
656 (define-public ghc-warp
663 (uri (string-append "https://hackage.haskell.org/package/"
664 "warp-" version "/" "warp-" version
667 (base32 "0v54ca3wpa79gdyiikwhbv9h8b5vr3d60piq3ndb2v7s7fi1qpm0"))))
668 (build-system haskell-build-system)
678 ghc-streaming-commons
699 (home-page "https://github.com/yesodweb/wai")
700 (synopsis "HTTP server library for Haskell's WAI")
701 (description "Warp is a server library for HTTP/1.x and HTTP/2
702 based WAI (Web Application Interface in Haskell).")
703 (license license:expat)))
705 (define-public ghc-tls-session-manager
707 (name "ghc-tls-session-manager")
713 "https://hackage.haskell.org/package/"
714 "tls-session-manager/tls-session-manager-"
718 "134kb5nz668f4xrr5g98g7fc1bwb3ri6q433a1i6asjkniwpy85s"))))
719 (build-system haskell-build-system)
721 (list ghc-auto-update ghc-clock ghc-psqueues ghc-tls))
722 (home-page "https://hackage.haskell.org/package/tls-session-manager")
723 (synopsis "In-memory TLS session manager")
724 (description "This Haskell library provides a TLS session manager with
725 limitation, automatic pruning, energy saving and replay resistance.")
726 (license license:bsd-3)))
728 (define-public ghc-warp-tls
730 (name "ghc-warp-tls")
735 (uri (string-append "https://hackage.haskell.org/package/"
736 "warp-tls-" version "/"
737 "warp-tls-" version ".tar.gz"))
740 "0b9viw26ymzq4q8snfddz3w59sqcf5ankxnw6f99iacxjhk6zs6m"))))
741 (build-system haskell-build-system)
744 ghc-data-default-class
746 ghc-streaming-commons
748 ghc-tls-session-manager
752 (home-page "https://github.com/yesodweb/wai")
753 (synopsis "SSL/TLS support for Warp")
754 (description "This package provides SSL/TLS support for Warp,
755 a WAI handler, via the native Haskell TLS implementation.")
756 (license license:expat)))
758 (define-public ghc-websockets
760 (name "ghc-websockets")
766 "https://hackage.haskell.org/package/websockets/websockets-"
771 "1b92a41l2var1ccg350mh2bjmb2plb6d79yzvmlwkd41nifmmi44"))))
772 (build-system haskell-build-system)
775 ghc-base64-bytestring
776 ghc-bytestring-builder
783 ghc-streaming-commons
786 (list ghc-hunit ghc-quickcheck ghc-test-framework
787 ghc-test-framework-hunit ghc-test-framework-quickcheck2))
788 (home-page "https://jaspervdj.be/websockets/")
790 "Write WebSocket-capable servers in Haskell")
792 "This library allows you to write WebSocket-capable servers.
795 @url{https://github.com/jaspervdj/websockets/blob/master/example/server.lhs}
797 @url{https://github.com/jaspervdj/websockets/blob/master/example/client.hs}
801 @item The specification of the WebSocket protocol:
802 @url{http://www.whatwg.org/specs/web-socket-protocol/}
803 @item The JavaScript API for dealing with WebSockets:
804 @url{http://www.w3.org/TR/websockets/}
806 (license license:bsd-3)))
808 (define-public ghc-wai-websockets
810 (name "ghc-wai-websockets")
816 "mirror://hackage/package/wai-websockets/wai-websockets-"
821 "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i"))))
822 (build-system haskell-build-system)
824 (list ghc-wai ghc-case-insensitive ghc-network ghc-websockets
827 `(#:configure-flags '("--flags=-example")))
828 (home-page "https://github.com/yesodweb/wai")
830 "Provide a bridge between WAI and the websockets package")
832 "Use websockets with WAI applications, primarily those hosted via Warp.")
833 (license license:expat)))
835 (define-public ghc-xss-sanitize
837 (name "ghc-xss-sanitize")
843 "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
847 "1d72s3a6520iwwc1wbn9v2znqgbw6a5wwzb23iq8ny9ccnjyx1dk"))))
848 (build-system haskell-build-system)
850 (list ghc-tagsoup ghc-utf8-string ghc-css-text ghc-network-uri))
852 (list ghc-attoparsec ghc-hspec ghc-hunit))
853 (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
854 (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
855 (description "This library provides @code{sanitizeXSS}. Run untrusted
856 HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
858 (license license:bsd-3)))
860 (define-public ghc-css-text
862 (name "ghc-css-text")
868 "https://hackage.haskell.org/package/css-text/css-text-"
873 "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
874 (build-system haskell-build-system)
876 (list ghc-attoparsec ghc-hspec ghc-quickcheck))
877 (home-page "https://www.yesodweb.com/")
878 (synopsis "CSS parser and renderer")
879 (description "This package provides a CSS parser and renderer for
881 (license license:bsd-3)))
883 (define-public ghc-mime-types
885 (name "ghc-mime-types")
889 (uri (string-append "https://hackage.haskell.org/package/"
890 "mime-types/mime-types-"
894 "1lkipa4v73z3l5lqs6sdhl898iq41kyxv2jb9agsajzgd58l6cha"))))
895 (build-system haskell-build-system)
896 (home-page "https://github.com/yesodweb/wai")
897 (synopsis "Basic MIME type handling types and functions")
899 "This library provides basic MIME type handling types and functions.")
900 (license license:expat)))
902 (define-public ghc-html
910 "https://hackage.haskell.org/package/html/html-"
915 "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
916 (build-system haskell-build-system)
918 "https://hackage.haskell.org/package/html")
919 (synopsis "HTML combinator library")
921 "This package contains a combinator library for constructing HTML
923 (license license:bsd-3)))
925 (define-public ghc-html-conduit
927 (name "ghc-html-conduit")
933 "https://hackage.haskell.org/package/html-conduit/"
934 "html-conduit-" version ".tar.gz"))
937 "09bwrdam3y47kqllgg6w098ghqb8jb10dp4wxirsvx5ddpx9zpi6"))))
938 (build-system haskell-build-system)
947 (list ghc-hspec ghc-hunit))
948 (home-page "https://github.com/snoyberg/xml")
949 (synopsis "Parse HTML documents using xml-conduit datatypes")
951 "This package provides a parser for HTML documents that uses
952 tagstream-conduit. It automatically balances mismatched tags, so that
953 there shouldn't be any parse failures. It does not handle a full HTML
954 document rendering, such as adding missing html and head tags. Note that,
955 since version 1.3.1, it uses an inlined copy of tagstream-conduit with
956 entity decoding bugfixes applied.")
957 (license license:expat)))
959 (define-public ghc-blaze-html
961 (name "ghc-blaze-html")
966 (uri (string-append "https://hackage.haskell.org/package/"
967 "blaze-html/blaze-html-"
971 "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30"))))
972 (build-system haskell-build-system)
974 `(#:tests? #f ; TODO: Depends on quickcheck<2.14
976 ("1" "0wvlfb3rd9cm3p894p5rl9kggrsr5da3n8x9ydrbagx91yvkxns9")))
978 (list ghc-blaze-builder ghc-blaze-markup))
980 (list ghc-hunit ghc-quickcheck ghc-test-framework
981 ghc-test-framework-hunit ghc-test-framework-quickcheck2))
982 (home-page "http://jaspervdj.be/blaze")
983 (synopsis "Fast HTML combinator library")
984 (description "This library provides HTML combinators for Haskell.")
985 (license license:bsd-3)))
987 (define-public ghc-aeson
995 "https://hackage.haskell.org/package/aeson/aeson-"
1000 "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"))))
1001 (build-system haskell-build-system)
1003 `(#:tests? #f ; FIXME: testing libraries are missing.
1005 ("2" "1zxkarvmbgc2cpcc9sx1rlqm7nfh473052898ypiwk8azawp1hbj")))
1006 (outputs '("out" "static" "doc"))
1008 (list ghc-attoparsec
1009 ghc-base-compat-batteries
1020 ghc-unordered-containers
1024 ; `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
1025 ; ("ghc-base-compat" ,ghc-base-compat)
1026 ; ("ghc-base-orphans" ,ghc-base-orphans)
1027 ; ("ghc-diff" ,ghc-diff)
1028 ; ("ghc-generic-deriving" ,ghc-generic-deriving)
1029 ; ("ghc-hashable-time" ,ghc-hashable-time)
1030 ; ("ghc-integer-logarithms" ,ghc-integer-logarithms)
1031 ; ("ghc-quickcheck" ,ghc-quickcheck)
1032 ; ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
1033 ; ("ghc-tasty" ,ghc-tasty)
1034 ; ("ghc-tasty-golden" ,ghc-tasty-golden)
1035 ; ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1036 ; ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
1037 (home-page "https://github.com/bos/aeson")
1038 (synopsis "Fast JSON parsing and encoding")
1039 (description "This package provides a JSON parsing and encoding library
1040 for Haskell, optimized for ease of use and high performance. (A note on
1041 naming: in Greek mythology, Aeson was the father of Jason.)")
1042 (license license:bsd-3)))
1044 (define-public ghc-aeson-pretty
1046 (name "ghc-aeson-pretty")
1051 "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
1055 "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x"))))
1056 (build-system haskell-build-system)
1062 ghc-unordered-containers
1065 (home-page "https://github.com/informatikr/aeson-pretty")
1066 (synopsis "JSON pretty-printing library and command-line tool")
1068 "This package provides a JSON pretty-printing library compatible with aeson
1069 as well as a command-line tool to improve readability of streams of JSON data.
1070 The library provides the function @code{encodePretty}. It is a drop-in
1071 replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
1072 human readers. The command-line tool reads JSON from stdin and writes
1073 prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
1074 essentially the opposite of pretty-printing.")
1075 (license license:bsd-3)))
1077 (define-public ghc-aeson-qq
1079 (name "ghc-aeson-qq")
1083 (uri (string-append "https://hackage.haskell.org/package/"
1084 "aeson-qq/aeson-qq-" version ".tar.gz"))
1087 "0dpklq2xdhrkg1rdc7zfdjnzm6c3qxx2i1xskrqdxpqi84ffnlyh"))))
1088 (build-system haskell-build-system)
1090 (list ghc-base-compat
1095 ghc-haskell-src-meta))
1097 (list ghc-hspec hspec-discover))
1098 (home-page "https://github.com/zalora/aeson-qq")
1099 (synopsis "JSON quasiquoter for Haskell")
1101 "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
1102 the function @code{aesonQQ} that compile-time converts a string representation
1103 of a JSON value into a @code{Data.Aeson.Value}.")
1104 (license license:expat)))
1106 (define-public ghc-aeson-better-errors
1108 (name "ghc-aeson-better-errors")
1114 "mirror://hackage/package/aeson-better-errors/aeson-better-errors-"
1119 "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38"))))
1120 (build-system haskell-build-system)
1123 ghc-unordered-containers
1127 ghc-transformers-compat
1130 "https://github.com/hdgarrood/aeson-better-errors")
1132 "Better error messages when decoding JSON values in Haskell")
1134 "Gives you the tools to build parsers to decode JSON values, and gives
1135 good error messages when parsing fails. See also
1136 @url{http://harry.garrood.me/blog/aeson-better-errors/}.")
1137 (license license:expat)))
1139 (define-public ghc-multipart
1141 (name "ghc-multipart")
1147 "https://hackage.haskell.org/package/multipart/multipart-"
1152 "0p6n4knxpjv70nbl6cmd6x7gkdjsjqp4ya7fz00bfrqp7jvhlivn"))))
1153 (build-system haskell-build-system)
1155 (list ghc-stringsearch))
1157 "http://www.github.com/silkapp/multipart")
1159 "HTTP multipart library")
1161 "HTTP multipart split out of the cgi package, for Haskell.")
1162 (license license:bsd-3)))
1164 (define-public ghc-uri-encode
1166 (name "ghc-uri-encode")
1172 "https://hackage.haskell.org/package/uri-encode/uri-encode-"
1176 "0lj2h701af12539p957rw24bxr07mfqd5r4h52i42f43ax165767"))))
1177 (build-system haskell-build-system)
1179 (list ghc-utf8-string ghc-network-uri))
1180 (home-page "https://hackage.haskell.org/package/uri-encode")
1181 (synopsis "Unicode aware uri-encoding")
1182 (description "Unicode aware uri-encoding for Haskell.")
1183 (license license:bsd-3)))
1185 (define-public ghc-path-pieces
1187 (name "ghc-path-pieces")
1192 (uri (string-append "https://hackage.haskell.org/package/"
1193 "path-pieces-" version "/"
1194 "path-pieces-" version ".tar.gz"))
1197 "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
1198 (build-system haskell-build-system)
1199 (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
1200 (home-page "https://github.com/yesodweb/path-pieces")
1201 (synopsis "Used in Yesod to automatically marshall data in the request path")
1202 (description "This Haskell package provides two typeclasses for converting
1203 Haskell data types to and from route pieces.")
1204 (license license:bsd-3)))
1206 (define-public ghc-skein
1213 (uri (string-append "https://hackage.haskell.org/package/"
1214 "skein-" version "/"
1215 "skein-" version ".tar.gz"))
1218 "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
1219 (build-system haskell-build-system)
1220 (inputs (list ghc-cereal ghc-tagged ghc-crypto-api))
1221 (native-inputs (list ghc-hspec))
1222 (home-page "https://github.com/yesodweb/path-pieces")
1223 (synopsis "Skein family of cryptographic hash functions for Haskell")
1224 (description "@uref{(http://www.skein-hash.info, Skein} is a family of
1225 fast secure cryptographic hash functions designed by Niels Ferguson, Stefan
1226 Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon
1227 Callas and Jesse Walker.
1229 This Haskell package uses bindings to the optimized C implementation of Skein.")
1230 (license license:bsd-3)))
1232 (define-public ghc-clientsession
1234 (name "ghc-clientsession")
1239 (uri (string-append "https://hackage.haskell.org/package/"
1240 "clientsession-" version "/"
1241 "clientsession-" version ".tar.gz"))
1244 "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
1245 (build-system haskell-build-system)
1246 (inputs (list ghc-cereal
1250 ghc-base64-bytestring
1256 (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
1257 (home-page "https://github.com/yesodweb/clientsession/tree/master")
1258 (synopsis "Haskell library for securely store session data in a
1259 client-side cookie")
1260 (description "This Haskell package achieves security through AES-CTR
1261 encryption and Skein-MAC-512-256 authentication. Uses Base64 encoding to
1262 avoid any issues with characters.")
1263 (license license:expat)))
1265 (define-public ghc-yesod-core
1267 (name "ghc-yesod-core")
1268 (version "1.6.21.0")
1272 (uri (string-append "https://hackage.haskell.org/package/"
1273 "yesod-core-" version "/"
1274 "yesod-core-" version ".tar.gz"))
1277 "0wmh7ip318p89lyy6k5mvxkkpq43knp41wlq9iaf3icz0ahqdmb7"))))
1278 (build-system haskell-build-system)
1279 (inputs (list ghc-wai
1288 ghc-unordered-containers
1290 ghc-transformers-base
1293 ghc-case-insensitive
1311 ghc-deepseq-generics
1318 (native-inputs (list ghc-hspec
1321 ghc-hspec-expectations
1325 ghc-streaming-commons
1327 (home-page "https://www.yesodweb.com")
1328 (synopsis "Core package for the Yesod web framework")
1329 (description "This Haskell package provides all core functionality, for
1330 Yesod, on which other packages can be built. It provides dispatch, handler
1331 functions, widgets, etc.")
1332 (license license:expat)))
1334 (define-public ghc-yesod-persistent
1336 (name "ghc-yesod-persistent")
1341 (uri (string-append "https://hackage.haskell.org/package/"
1342 "yesod-persistent-" version "/"
1343 "yesod-persistent-" version ".tar.gz"))
1346 "102xmp7n08sk1g5rv31jpln2v9kqf1zsqsnmi83mnhmgggcbj1k4"))))
1347 (build-system haskell-build-system)
1348 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
1349 (inputs (list ghc-yesod-core
1351 ghc-persistent-template
1356 (native-inputs (list ghc-hspec ghc-wai-extra ghc-yesod-core
1357 ghc-persistent-sqlite))
1358 (home-page "https://www.yesodweb.com/")
1359 (synopsis "Helpers for using Persistent from Yesod")
1360 (description "This Haskell package provides helpers for using Persistent
1362 (license license:expat)))
1364 (define-public ghc-yesod-form
1366 (name "ghc-yesod-form")
1372 "https://hackage.haskell.org/package/yesod-form/yesod-form-"
1377 "170gby381h5pg9njn908cyx2931yiv79x3rc5npg2rd74kif06vi"))))
1378 (build-system haskell-build-system)
1380 (list ghc-yesod-core
1381 ghc-yesod-persistent
1398 (home-page "https://www.yesodweb.com")
1399 (synopsis "Form handling support for Yesod Web Framework")
1400 (description "This Haskell package provides a set of basic form inputs such
1401 as text, number, time, checkbox, select, textarea, etc through the
1402 @code{Yesod.Form.Fields} module. Also, there is @code{Yesod.Form.Nic} module
1403 providing richtext field using Nic editor.")
1404 (license license:expat)))
1406 (define-public ghc-yesod
1414 "https://hackage.haskell.org/package/yesod/yesod-"
1418 "13r0ispprj41kgn2rkc7zhy1rxfmgpjbmdlnys15h0ihhh3zhw2f"))))
1419 (build-system haskell-build-system)
1421 (list ghc-yesod-core
1422 ghc-yesod-persistent
1429 ghc-data-default-class
1430 ghc-unordered-containers
1436 ghc-streaming-commons
1438 (home-page "https://www.yesodweb.com")
1439 (synopsis "Framework for creating type-safe, RESTful web applications")
1440 (description "The Haskell package package groups together the various
1441 Yesod related packages into one cohesive whole. This is the version of Yesod,
1442 whereas most of the core code lives in @code{ghc-yesod-core}.")
1443 (license license:expat)))
1445 (define-public ghc-hxt-charproperties
1447 (name "ghc-hxt-charproperties")
1452 (uri (string-append "https://hackage.haskell.org/package/"
1453 "hxt-charproperties/hxt-charproperties-"
1457 "0jm98jddbsd60jc2bz8wa71rslagbaqf00ia7fvfsaiaa54nk0r8"))))
1458 (build-system haskell-build-system)
1459 (home-page "https://github.com/UweSchmidt/hxt")
1460 (synopsis "Character properties and classes for XML and Unicode")
1462 "The modules provided by this package contain predicates for Unicode
1463 blocks and char properties and character predicates defined by XML. The
1464 supported Unicode version is 7.0.0")
1465 (license license:expat)))
1467 (define-public ghc-hxt-unicode
1469 (name "ghc-hxt-unicode")
1475 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
1480 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
1481 (build-system haskell-build-system)
1483 (list ghc-hxt-charproperties))
1485 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
1487 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
1489 "This package provides Unicode encoding and decoding functions for
1490 encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
1491 are supported. Decoding is done with lazy functions, errors may be detected or
1493 (license license:expat)))
1495 (define-public ghc-hxt-regex-xmlschema
1497 (name "ghc-hxt-regex-xmlschema")
1502 (uri (string-append "https://hackage.haskell.org/package/"
1503 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
1507 "0ynrf65m7abq2fjnarlwq6i1r99pl89npibxx05rlplcgpybrdmr"))))
1508 (build-system haskell-build-system)
1510 (list ghc-hxt-charproperties ghc-hunit))
1511 (home-page "https://wiki.haskell.org/Regular_expressions_for_XML_Schema")
1512 (synopsis "Regular expression library for W3C XML Schema regular expressions")
1514 "This library supports full W3C XML Schema regular expressions inclusive
1515 all Unicode character sets and blocks. It is implemented by the technique of
1516 derivations of regular expressions.")
1517 (license license:expat)))
1519 (define-public ghc-hxt
1522 (version "9.3.1.22")
1527 "https://hackage.haskell.org/package/hxt/hxt-"
1532 "1n9snbdl46x23ka7bbsls1vsn0plpmfmbpbl0msjfm92fkk2yq7g"))))
1533 (build-system haskell-build-system)
1534 (outputs '("out" "static" "doc"))
1536 (list ghc-hxt-charproperties ghc-hxt-unicode ghc-hxt-regex-xmlschema
1538 (home-page "https://github.com/UweSchmidt/hxt")
1539 (synopsis "Collection of tools for processing XML with Haskell")
1541 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
1542 introduces a more general approach for processing XML with Haskell.")
1543 (license license:expat)))
1545 (define-public ghc-hxt-xpath
1547 (name "ghc-hxt-xpath")
1551 (uri (hackage-uri "hxt-xpath" version))
1554 "0wlq9s01icalnvjkkilx5zaqp3ff4v5limj1xy8i18qpzjspqdsh"))))
1555 (build-system haskell-build-system)
1556 (inputs (list ghc-hxt))
1557 (home-page "https://github.com/UweSchmidt/hxt")
1558 (synopsis "The XPath modules for HXT.")
1560 "This extension for the Haskell XML Toolbox defines data types to
1561 represent XPath, navigation trees and primitives to select and edit subtrees
1562 from them. Some primitives have both a functional and an arrow interface.")
1563 (license license:expat)))
1565 (define-public ghc-http-common
1567 (name "ghc-http-common")
1572 (uri (string-append "https://hackage.haskell.org/package/"
1573 "http-common/http-common-" version ".tar.gz"))
1576 "1xpbnfac0fqa5r670ggwm4kq3cmz9jpaw9bx40j9w9qiw6xi4i28"))))
1577 (build-system haskell-build-system)
1579 (list ghc-base64-bytestring
1581 ghc-case-insensitive
1584 ghc-unordered-containers))
1585 (home-page "https://github.com/afcowie/http-streams/")
1586 (synopsis "Common types for HTTP clients and servers")
1587 (description "Base types used by a variety of HTTP clients and
1588 servers. See http-streams @code{Network.Http.Client} or pipes-http
1589 @code{Pipes.Http.Client} for full documentation. You can import
1590 @code{Network.Http.Types} if you like, but both http-streams and
1591 pipes-http re-export this package's types and functions.")
1592 (license license:bsd-3)))
1594 (define-public ghc-http-streams
1596 (name "ghc-http-streams")
1601 (uri (string-append "https://hackage.haskell.org/package/"
1602 "http-streams/http-streams-" version ".tar.gz"))
1605 "03xdcb0v735xdrkjlm1w56mskh3x08cbsjrcd7wn4li65ixc20xa"))))
1606 (build-system haskell-build-system)
1608 (list ghc-attoparsec
1609 ghc-base64-bytestring
1611 ghc-case-insensitive
1615 ghc-unordered-containers
1621 `(#:tests? #f)) ; tests rely on an outdated version of snap-server
1622 (home-page "https://github.com/afcowie/http-streams/")
1623 (synopsis "HTTP client using io-streams")
1624 (description "An HTTP client using the Snap Framework's io-streams
1625 library to handle the streaming IO. The API is optimized for ease of
1626 use for the rather common case of code needing to query web services and
1627 deal with the result.")
1628 (license license:bsd-3)))
1630 (define-public ghc-snap-core
1632 (name "ghc-snap-core")
1637 (uri (string-append "https://hackage.haskell.org/package/"
1638 "snap-core/snap-core-" version ".tar.gz"))
1641 "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs"))))
1642 (build-system haskell-build-system)
1644 `(#:tests? #f ; TODO: Fail to compile.
1646 ("1" "065v61clskzikywv0gy9n4fjaszi2fnjklal83kqbzhzzgkf83ng")))
1648 (list ghc-old-locale
1651 ghc-bytestring-builder
1652 ghc-case-insensitive
1660 ghc-transformers-base
1662 ghc-unordered-containers
1667 (list ghc-quickcheck
1670 ghc-test-framework-hunit
1671 ghc-test-framework-quickcheck2
1673 (home-page "http://snapframework.com/")
1674 (synopsis "Haskell Web Framework (core interfaces and types)")
1675 (description "Snap is a simple and fast web development framework
1676 and server written in Haskell. For more information, you can visit the
1677 Snap project website at @uref{http://snapframework.com/}. This library
1678 contains the core definitions and types for the Snap framework.")
1679 (license license:bsd-3)))
1681 (define-public ghc-snap-server
1683 (name "ghc-snap-server")
1688 (uri (string-append "https://hackage.haskell.org/package/"
1689 "snap-server/snap-server-" version ".tar.gz"))
1692 "0w4yv9a5ilpma0335ariwap2iscmdbaaif88lq3cm7px910nyc4j"))))
1693 (build-system haskell-build-system)
1695 (list ghc-attoparsec
1697 ghc-bytestring-builder
1698 ghc-case-insensitive
1701 ghc-io-streams-haproxy
1709 (list ghc-base16-bytestring
1719 ghc-test-framework-hunit
1720 ghc-test-framework-quickcheck2))
1721 (home-page "http://snapframework.com/")
1722 (synopsis "Web server for the Snap Framework")
1723 (description "Snap is a simple and fast web development framework
1724 and server written in Haskell. For more information, you can visit the
1725 Snap project website at @uref{http://snapframework.com/}. The Snap HTTP
1726 server is a high performance web server library written in Haskell.
1727 Together with the snap-core library upon which it depends, it provides a
1728 clean and efficient Haskell programming interface to the HTTP
1730 (license license:bsd-3)))
1732 (define-public ghc-js-jquery
1734 (name "ghc-js-jquery")
1741 "https://hackage.haskell.org/package/js-jquery/js-jquery-"
1745 "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
1746 (build-system haskell-build-system)
1747 (arguments `(#:tests? #f)) ; tests do network IO
1748 (home-page "https://github.com/ndmitchell/js-jquery")
1749 (synopsis "Obtain minified jQuery code")
1750 (description "This package bundles the minified
1751 @url{http://jquery.com/, jQuery} code into a Haskell package, so it can
1752 be depended upon by Cabal packages. The first three components of the
1753 version number match the upstream jQuery version. The package is
1754 designed to meet the redistribution requirements of downstream
1755 users (e.g. Debian).")
1756 (license license:expat)))
1758 (define-public ghc-js-flot
1760 (name "ghc-js-flot")
1767 "https://hackage.haskell.org/package/js-flot/js-flot-"
1771 "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
1772 (build-system haskell-build-system)
1775 (home-page "https://github.com/ndmitchell/js-flot")
1776 (synopsis "Obtain minified flot code")
1777 (description "This package bundles the minified
1778 @url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
1779 into a Haskell package, so it can be depended upon by Cabal packages.
1780 The first three components of the version number match the upstream flot
1781 version. The package is designed to meet the redistribution
1782 requirements of downstream users (e.g. Debian).")
1783 (license license:expat)))
1785 (define-public ghc-happstack-server
1787 (name "ghc-happstack-server")
1793 "https://hackage.haskell.org/package/happstack-server/happstack-server-"
1797 "0nc5rnvrzl9m3pinmdq234m80qkf4jszbdqnd567f7lh09yiqw9n"))))
1798 (build-system haskell-build-system)
1803 ghc-base64-bytestring
1806 ghc-extensible-exceptions
1816 ghc-transformers-base
1817 ghc-transformers-compat
1820 (native-inputs (list ghc-hunit))
1821 (home-page "http://happstack.com")
1822 (synopsis "Web related tools and services for Haskell")
1824 "Happstack Server provides an HTTP server and a rich set of functions for
1825 routing requests, handling query parameters, generating responses, working with
1826 cookies, serving files, and more.")
1827 (license license:bsd-3)))
1829 (define-public ghc-sendfile
1831 (name "ghc-sendfile")
1832 (version "0.7.11.1")
1837 "https://hackage.haskell.org/package/sendfile/sendfile-"
1841 "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
1842 (build-system haskell-build-system)
1843 (inputs (list ghc-network))
1845 "https://hub.darcs.net/stepcut/sendfile")
1846 (synopsis "Portable sendfile library for Haskell")
1848 "Haskell library which exposes zero-copy sendfile functionality in a portable way.")
1849 (license license:bsd-3)))
1851 (define-public ghc-scalpel-core
1853 (name "ghc-scalpel-core")
1859 "https://hackage.haskell.org/package/scalpel-core/"
1860 "scalpel-core-" version ".tar.gz"))
1863 "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf"))))
1864 (build-system haskell-build-system)
1866 (list ghc-data-default
1873 (native-inputs (list ghc-hunit))
1874 (home-page "https://github.com/fimad/scalpel")
1876 "High level web scraping library for Haskell")
1878 "Scalpel core provides a subset of the scalpel web scraping library
1879 that is intended to have lightweight dependencies and to be free of all
1880 non-Haskell dependencies.")
1881 (license license:asl2.0)))
1883 (define-public ghc-scalpel
1885 (name "ghc-scalpel")
1891 "https://hackage.haskell.org/package/scalpel/"
1892 "scalpel-" version ".tar.gz"))
1895 "04hhvk0yjxha3yg6n9fxivrz97hpjjiiblnj0bvs5myax1ggkjch"))))
1896 (build-system haskell-build-system)
1898 (list ghc-scalpel-core
1899 ghc-case-insensitive
1904 (home-page "https://github.com/fimad/scalpel")
1906 "High level web scraping library for Haskell")
1908 "Scalpel is a web scraping library inspired by libraries like Parsec
1909 and Perl's @code{Web::Scraper}. Scalpel builds on top of TagSoup to provide a
1910 declarative and monadic interface.")
1911 (license license:asl2.0)))
1913 (define-public ghc-sourcemap
1915 (name "ghc-sourcemap")
1921 "https://hackage.haskell.org/package/sourcemap/sourcemap-"
1926 "0kz8xpcd5syg5s4qa2qq8ylaxjhabj127w42may46vv6i0q1bf8a"))))
1927 (build-system haskell-build-system)
1929 (list ghc-aeson ghc-unordered-containers ghc-attoparsec
1932 `(#:tests? #f ; FIXME: Fail to compile
1934 ("1" "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax")))
1936 "http://hackage.haskell.org/package/sourcemap")
1938 "Implementation of source maps as proposed by Google and Mozilla")
1940 "Sourcemap provides an implementation of source maps, revision 3,
1941 proposed by Google and Mozilla here
1942 @url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.")
1943 (license license:bsd-3)))
1945 (define-public ghc-language-javascript
1947 (name "ghc-language-javascript")
1953 "https://hackage.haskell.org/package/language-javascript/language-javascript-"
1958 "0s6igb54cxm2jywgc3sq53f52gcsc39wd3g78yisfzvl9jm3d86i"))))
1959 (build-system haskell-build-system)
1961 (list ghc-blaze-builder ghc-utf8-string))
1963 (list ghc-alex ghc-quickcheck ghc-happy ghc-hspec ghc-utf8-light))
1965 "https://github.com/erikd/language-javascript")
1966 (synopsis "Parser for JavaScript")
1968 "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended
1969 as frontend to hjsmin.")
1970 (license license:bsd-3)))
1972 (define-public ghc-bower-json
1974 (name "ghc-bower-json")
1980 "mirror://hackage/package/bower-json/bower-json-"
1985 "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs"))))
1986 (build-system haskell-build-system)
1988 (list ghc-aeson ghc-aeson-better-errors ghc-scientific
1989 ghc-transformers ghc-unordered-containers))
1991 (list ghc-tasty ghc-tasty-hunit))
1992 (home-page "https://github.com/hdgarrood/bower-json")
1993 (synopsis "Read bower.json from Haskell")
1995 "This package provides a data type and ToJSON/FromJSON instances for
1996 Bower's package manifest file, bower.json.")
1997 (license license:expat)))
1999 (define-public ghc-dav
2006 (uri (string-append "https://hackage.haskell.org/package/DAV/DAV-"
2009 (base32 "1isvi4fahq70lzxfz23as7qzkc01g7kba568l6flrgd0j1984fsy"))))
2010 (build-system haskell-build-system)
2012 (list ghc-case-insensitive
2019 ghc-transformers-base
2020 ghc-transformers-compat
2026 ghc-optparse-applicative))
2027 (home-page "http://floss.scru.org/hDAV")
2028 (synopsis "RFC 4918 WebDAV support")
2029 (description "This package provides a library for the Web Distributed
2030 Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
2031 @command{hdav}, for command-line operation.")
2032 (license license:gpl3)))
2034 (define-public ghc-yesod-test
2036 (name "ghc-yesod-test")
2041 (uri (string-append "https://hackage.haskell.org/package/"
2042 "yesod-test/yesod-test-" version ".tar.gz"))
2045 "1xgy7dzhqjgllqcpyyxs0spdg6vlz2c1sjvni7w7qnsf0ckyw2l8"))))
2046 (build-system haskell-build-system)
2053 ghc-case-insensitive
2069 (list ghc-hspec ghc-yesod-form ghc-unliftio ghc-unliftio-core))
2070 (home-page "https://www.yesodweb.com")
2071 (synopsis "Integration testing for WAI/Yesod Applications")
2072 (description "This package's main goal is to encourage integration
2073 and system testing of web applications by making everything easy to
2074 test. Tests are like browser sessions that keep track of cookies and
2075 the last visited page. You can perform assertions on the content of
2076 HTML responses using CSS selectors.")
2077 (license license:expat)))
2079 (define-public ghc-wai-app-static
2081 (name "ghc-wai-app-static")
2086 (uri (string-append "https://hackage.haskell.org/package/"
2087 "wai-app-static/wai-app-static-"
2091 "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8"))))
2092 (build-system haskell-build-system)
2105 ghc-unordered-containers
2108 ghc-optparse-applicative
2111 (list ghc-hspec ghc-network ghc-temporary ghc-mockery))
2114 ("1" "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd")))
2115 (home-page "https://www.yesodweb.com/book/web-application-interface")
2116 (synopsis "WAI application for static serving")
2117 (description "This package provides a Web Application
2118 Interface (WAI) application for static serving. It also provides some
2119 helper functions and datatypes for use outside of WAI.")
2120 (license license:expat)))
2122 (define-public ghc-hjsmin
2129 (uri (string-append "https://hackage.haskell.org/package/"
2130 "hjsmin/hjsmin-" version ".tar.gz"))
2133 "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
2134 (build-system haskell-build-system)
2137 (modify-phases %standard-phases
2138 (add-before 'build 'fix-dist-directory-for-tests
2140 (substitute* '("test/test-cli.hs" "test/cli/core/runner")
2141 (("dist-newstyle") "dist")))))))
2143 (list ghc-language-javascript ghc-optparse-applicative))
2146 (home-page "https://github.com/erikd/hjsmin")
2147 (synopsis "Haskell implementation of a JavaScript minifier")
2148 (description "This library provides tools reduce the size of
2149 JavaScript files by stripping out extraneous whitespace and other
2150 syntactic elements, without changing the semantics.")
2151 (license license:bsd-3)))
2153 (define-public ghc-yesod-static
2155 (name "ghc-yesod-static")
2160 (uri (string-append "https://hackage.haskell.org/package/"
2161 "yesod-static/yesod-static-" version ".tar.gz"))
2164 "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p"))))
2165 (build-system haskell-build-system)
2169 ghc-base64-bytestring
2173 ghc-cryptonite-conduit
2183 ghc-unordered-containers
2188 (list ghc-hspec ghc-yesod-test ghc-wai-extra ghc-hunit ghc-rio))
2189 (home-page "https://www.yesodweb.com/")
2190 (synopsis "Static file serving subsite for Yesod")
2191 (description "This package provides a static file serving subsite
2192 for the Yesod Web Framework.")
2193 (license license:expat)))
2195 (define-public ghc-wai-handler-launch
2197 (name "ghc-wai-handler-launch")
2202 (uri (string-append "https://hackage.haskell.org/package/"
2203 "wai-handler-launch/wai-handler-launch-"
2207 "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
2208 (build-system haskell-build-system)
2210 (list ghc-wai ghc-warp ghc-http-types ghc-streaming-commons
2212 (home-page "https://hackage.haskell.org/package/wai-handler-launch")
2213 (synopsis "Launch a Web application in the default browser")
2214 (description "This package handles cross-platform Web browser
2215 launching and inserts JavaScript code to ping the server. When the
2216 server no longer receives pings, it shuts down.")
2217 (license license:expat)))
2219 (define-public ghc-wai-cors
2221 (name "ghc-wai-cors")
2226 (uri (string-append "https://hackage.haskell.org/package/"
2227 "wai-cors/wai-cors-" version ".tar.gz"))
2230 "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
2231 (build-system haskell-build-system)
2234 (modify-phases %standard-phases
2235 ;; As of version 0.2.7, there are two test suites: "unit-tests"
2236 ;; and "phantomjs". Since we do not have a PhantomJS package,
2237 ;; we only run the unit tests.
2240 (invoke "runhaskell" "Setup.hs" "test" "unit-tests"))))))
2242 (list ghc-attoparsec ghc-base-unicode-symbols ghc-case-insensitive
2243 ghc-http-types ghc-wai))
2255 (home-page "https://github.com/larskuhtz/wai-cors")
2256 (synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
2257 (description "This package provides an implementation of Cross-Origin
2258 Resource Sharing (CORS) for the Web Application Framework (WAI) that
2259 aims to be compliant with @url{https://www.w3.org/TR/cors}.")
2260 (license license:expat)))
2262 (define-public ghc-network-run
2264 (name "ghc-network-run")
2270 "https://hackage.haskell.org/package/network-run/network-run-"
2274 (base32 "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl"))))
2275 (build-system haskell-build-system)
2276 (inputs (list ghc-network))
2277 (home-page "https://hackage.haskell.org/package/network-run")
2278 (synopsis "Simple network runner library")
2280 "This package provides a simple network runner library in Haskell.")
2281 (license license:bsd-3)))