695 lines
27 KiB
Scheme
695 lines
27 KiB
Scheme
(define-module (datarekisteri-package)
|
|
#:use-module (guix)
|
|
#:use-module (guix build-system haskell)
|
|
#:use-module (guix download)
|
|
#:use-module (guix git-download)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (gnu packages haskell)
|
|
#:use-module (gnu packages haskell-check)
|
|
#:use-module (gnu packages haskell-crypto)
|
|
#:use-module (gnu packages haskell-web)
|
|
#:use-module (gnu packages haskell-xyz))
|
|
|
|
(define vcs-file?
|
|
(or (git-predicate (string-append (current-source-directory) "/../.."))
|
|
(const #t)))
|
|
|
|
(define-public datarekisteri
|
|
(package
|
|
(name "datarekisteri")
|
|
(version "0.0.1")
|
|
(source (local-file "../.." "datarekisteri-checkout"
|
|
#:recursive? #t
|
|
#:select? vcs-file?))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-base64
|
|
ghc-cryptonite
|
|
ghc-email-validate
|
|
ghc-esqueleto
|
|
ghc-mime-mail
|
|
ghc-morpheus-graphql
|
|
ghc-morpheus-graphql-client
|
|
ghc-persistent
|
|
ghc-persistent-postgresql
|
|
ghc-scotty
|
|
ghc-smtp-mail
|
|
ghc-wai-cors
|
|
ghc-wai-extra
|
|
ghc-yesod
|
|
ghc-yesod-static
|
|
ghc-yesod-auth))
|
|
(home-page "")
|
|
(synopsis "")
|
|
(description "")
|
|
(license license:agpl3+)))
|
|
|
|
(define ghc-authenticate
|
|
(package
|
|
(name "ghc-authenticate")
|
|
(version "1.3.5.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "authenticate" version))
|
|
(sha256
|
|
(base32
|
|
"1rhbvdgwdr68gp13p5piddfdqf3l9lmx4w7k249lc98y23780c3x"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-http-conduit
|
|
ghc-case-insensitive
|
|
ghc-http-types
|
|
ghc-xml-conduit
|
|
ghc-blaze-builder
|
|
ghc-attoparsec
|
|
ghc-unordered-containers
|
|
ghc-conduit
|
|
ghc-html-conduit
|
|
ghc-resourcet
|
|
ghc-network-uri))
|
|
(home-page "http://github.com/yesodweb/authenticate")
|
|
(synopsis "Authentication methods for Haskell web applications.")
|
|
(description "API docs and the README are available at
|
|
<http://www.stackage.org/package/authenticate>.")
|
|
(license license:expat)))
|
|
|
|
(define ghc-yesod-auth
|
|
(package
|
|
(name "ghc-yesod-auth")
|
|
(version "1.6.11")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "yesod-auth" version))
|
|
(sha256
|
|
(base32
|
|
"0fdahk5mc63g0zsafk8axry01qaxahmclpmmwygp2lhfsjy8mby2"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-authenticate
|
|
ghc-base16-bytestring
|
|
ghc-base64-bytestring
|
|
ghc-blaze-builder
|
|
ghc-blaze-html
|
|
ghc-blaze-markup
|
|
ghc-conduit
|
|
ghc-conduit-extra
|
|
ghc-cryptonite
|
|
ghc-data-default
|
|
ghc-email-validate
|
|
ghc-file-embed
|
|
ghc-http-client
|
|
ghc-http-client-tls
|
|
ghc-http-conduit
|
|
ghc-http-types
|
|
ghc-memory
|
|
ghc-nonce
|
|
ghc-persistent
|
|
ghc-random
|
|
ghc-safe
|
|
ghc-shakespeare
|
|
ghc-unliftio
|
|
ghc-unliftio-core
|
|
ghc-unordered-containers
|
|
ghc-wai
|
|
ghc-yesod-core
|
|
ghc-yesod-form
|
|
ghc-yesod-persistent
|
|
ghc-network-uri))
|
|
(home-page "http://www.yesodweb.com/")
|
|
(synopsis "Authentication for Yesod.")
|
|
(description "API docs and the README are available at
|
|
<http://www.stackage.org/package/yesod-auth>")
|
|
(license license:expat)))
|
|
|
|
(define ghc-scotty
|
|
(package
|
|
(name "ghc-scotty")
|
|
(version "0.12")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "scotty" version))
|
|
(sha256
|
|
(base32
|
|
"1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-base-compat-batteries
|
|
ghc-blaze-builder
|
|
ghc-case-insensitive
|
|
ghc-data-default-class
|
|
ghc-fail
|
|
ghc-http-types
|
|
ghc-monad-control
|
|
ghc-nats
|
|
ghc-network
|
|
ghc-regex-compat
|
|
ghc-transformers-base
|
|
ghc-transformers-compat
|
|
ghc-wai
|
|
ghc-wai-extra
|
|
ghc-warp))
|
|
(native-inputs (list ghc-async ghc-hspec ghc-hspec-wai ghc-lifted-base hspec-discover))
|
|
(arguments
|
|
`(#:cabal-revision ("7"
|
|
"1i8icc612w4dbmqmnf99drqpmjvhjnkmqgk9xr63amj8jkz5lp4m")))
|
|
(home-page "https://github.com/scotty-web/scotty")
|
|
(synopsis
|
|
"Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp")
|
|
(description
|
|
"This package provides a Haskell web framework inspired by Ruby's Sinatra, using
|
|
WAI and Warp. . @ {-# LANGUAGE OverloadedStrings #-} . import
|
|
Web.Scotty . import Data.Monoid (mconcat) . main = scotty 3000 $   get
|
|
"/:word" $ do     beam <- param "word"
|
|
    html $ mconcat ["<h1>Scotty, ", beam, "
|
|
me up!</h1>"] @ . . Scotty is the cheap and cheerful way to write
|
|
RESTful, declarative web applications. . * A page is as simple as defining the
|
|
verb, url pattern, and Text content. . * It is template-language agnostic.
|
|
Anything that returns a Text value will do. . * Conforms to WAI Application
|
|
interface. . * Uses very fast Warp webserver by default. . As for the name:
|
|
Sinatra + Warp = Scotty. . [WAI] <http://hackage.haskell.org/package/wai> .
|
|
[Warp] <http://hackage.haskell.org/package/warp>")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-hspec-wai
|
|
(package
|
|
(name "ghc-hspec-wai")
|
|
(version "0.11.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "hspec-wai" version))
|
|
(sha256
|
|
(base32
|
|
"03wiksic5y9a2g6a86nsxrnajdgdvpv17w02h5qla0zp9zs6pa1j"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-quickcheck
|
|
ghc-base-compat
|
|
ghc-case-insensitive
|
|
ghc-hspec-core
|
|
ghc-hspec-expectations
|
|
ghc-http-types
|
|
ghc-wai
|
|
ghc-wai-extra))
|
|
(native-inputs (list ghc-hspec hspec-discover))
|
|
(home-page "https://github.com/hspec/hspec-wai#readme")
|
|
(synopsis "Experimental Hspec support for testing WAI applications")
|
|
(description "Experimental Hspec support for testing WAI applications")
|
|
(license license:expat)))
|
|
|
|
(define ghc-morpheus-graphql
|
|
(package
|
|
(name "ghc-morpheus-graphql")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql" version))
|
|
(sha256
|
|
(base32
|
|
"04qah7565dzq7v4q43zjz8778pdn5jwnway5rvz4kkibcrscfagn"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-morpheus-graphql-app
|
|
ghc-morpheus-graphql-code-gen
|
|
ghc-morpheus-graphql-core
|
|
ghc-morpheus-graphql-server
|
|
ghc-relude
|
|
ghc-unordered-containers
|
|
ghc-vector))
|
|
(native-inputs (list ghc-morpheus-graphql-subscriptions
|
|
ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL")
|
|
(description "Build GraphQL APIs with your favourite functional language!")
|
|
(license license:expat)))
|
|
|
|
(define ghc-morpheus-graphql-code-gen
|
|
(package
|
|
(name "ghc-morpheus-graphql-code-gen")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-code-gen" version))
|
|
(sha256
|
|
(base32
|
|
"1rmxcr17xjx99aam048a4sqlwlnxjk41hx8fnb363ljid74vrcrb"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-file-embed
|
|
ghc-morpheus-graphql-code-gen-utils
|
|
ghc-morpheus-graphql-core
|
|
ghc-morpheus-graphql-server
|
|
ghc-prettyprinter
|
|
ghc-relude
|
|
ghc-unordered-containers
|
|
ghc-glob
|
|
ghc-morpheus-graphql-client
|
|
ghc-optparse-applicative
|
|
ghc-yaml))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL CLI")
|
|
(description "code generator for Morpheus GraphQL")
|
|
(license license:bsd-3)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-core
|
|
(package
|
|
(name "ghc-morpheus-graphql-core")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-core" version))
|
|
(sha256
|
|
(base32
|
|
"0dd8bifn6qwpss06hbb0r730fqfkbd4nhwsr2bsrgxc7hvzv9wi7"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-hashable
|
|
ghc-megaparsec
|
|
ghc-relude
|
|
ghc-scientific
|
|
ghc-th-lift-instances
|
|
ghc-unordered-containers
|
|
ghc-vector))
|
|
(native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL Core")
|
|
(description "Build GraphQL APIs with your favorite functional language!")
|
|
(license license:expat)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-app
|
|
(package
|
|
(name "ghc-morpheus-graphql-app")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-app" version))
|
|
(sha256
|
|
(base32
|
|
"0dicajcqgxpv1jhnywjjs0g4p5ryv0xlrywib1xwxrb04wy9aa3f"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-hashable
|
|
ghc-megaparsec
|
|
ghc-morpheus-graphql-core
|
|
ghc-relude
|
|
ghc-scientific
|
|
ghc-th-lift-instances
|
|
ghc-unordered-containers
|
|
ghc-vector))
|
|
(native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL App")
|
|
(description "Build GraphQL APIs with your favourite functional language!")
|
|
(license license:expat)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-subscriptions
|
|
(package
|
|
(name "ghc-morpheus-graphql-subscriptions")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-subscriptions" version))
|
|
(sha256
|
|
(base32
|
|
"0gynrshv858g36jwvmh3q2asc6ppkr7hv9w9lx1qfjqfwm7r0140"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-morpheus-graphql-app
|
|
ghc-morpheus-graphql-core
|
|
ghc-relude
|
|
ghc-unliftio-core
|
|
ghc-unordered-containers
|
|
ghc-uuid
|
|
ghc-websockets))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL Subscriptions")
|
|
(description "Build GraphQL APIs with your favourite functional language!")
|
|
(license license:expat)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-client
|
|
(package
|
|
(name "ghc-morpheus-graphql-client")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-client" version))
|
|
(sha256
|
|
(base32
|
|
"1j4r6ar6l462aq8qvxikmwyxd2f8i60gd3j0qf5pxsslgjwmjbi9"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-file-embed
|
|
ghc-modern-uri
|
|
ghc-morpheus-graphql-code-gen-utils
|
|
ghc-morpheus-graphql-core
|
|
ghc-morpheus-graphql-subscriptions
|
|
ghc-prettyprinter
|
|
ghc-relude
|
|
ghc-req
|
|
ghc-unliftio-core
|
|
ghc-unordered-containers
|
|
ghc-websockets
|
|
ghc-wuss))
|
|
(native-inputs (list ghc-tasty ghc-tasty-hunit))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL Client")
|
|
(description "Build GraphQL APIs with your favorite functional language!")
|
|
(license license:expat)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-tests
|
|
(package
|
|
(name "ghc-morpheus-graphql-tests")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-tests" version))
|
|
(sha256
|
|
(base32
|
|
"1s9x4gcqd36gqf5w2wxiqhf7k9y44b7g7zm90y2kbclxqirs9rqf"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson ghc-relude ghc-tasty ghc-tasty-hunit
|
|
ghc-unordered-containers))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL Test")
|
|
(description "")
|
|
(license license:expat)))
|
|
|
|
|
|
(define ghc-morpheus-graphql-server
|
|
(package
|
|
(name "ghc-morpheus-graphql-server")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-server" version))
|
|
(sha256
|
|
(base32
|
|
"1hl2c78pnx2rxx869p6ixvnyhzm46f1hzalqz2vbwrflshpmjv91"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-morpheus-graphql-app
|
|
ghc-morpheus-graphql-core
|
|
ghc-relude
|
|
ghc-unordered-containers
|
|
ghc-vector))
|
|
(native-inputs (list ghc-file-embed ghc-morpheus-graphql-subscriptions
|
|
ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL")
|
|
(description "Build GraphQL APIs with your favourite functional language!")
|
|
(license license:expat)))
|
|
|
|
(define ghc-relude
|
|
(package
|
|
(name "ghc-relude")
|
|
(version "1.1.0.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "relude" version))
|
|
(sha256
|
|
(base32
|
|
"02dn99v2qmykj0l1qmn15k36hyxccy71b7iqavfk24zgjf5g07dm"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-hashable ghc-unordered-containers))
|
|
(native-inputs (list ghc-hedgehog ghc-doctest ghc-glob))
|
|
(home-page "https://github.com/kowainik/relude")
|
|
(synopsis
|
|
"Safe, performant, user-friendly and lightweight Haskell Standard Library")
|
|
(description
|
|
"@__relude__@ is an alternative prelude library. If you find the default
|
|
@Prelude@ unsatisfying, despite its advantages, consider using @relude@ instead.
|
|
== Relude goals and design principles * __Productivity.__ You can be more
|
|
productive with a \"non-standard\" standard library, and @relude@ helps you with
|
|
writing safer and more efficient code faster. * __Total programming__. Usage of
|
|
[/partial
|
|
functions/](https://www.reddit.com/r/haskell/comments/5n51u3/why_are_partial_functions_as_in_head_tail_bad/)
|
|
can lead to unexpected bugs and runtime exceptions in pure code. The types of
|
|
partial functions lie about their behaviour. And even if it is not always
|
|
possible to rely only on total functions, @relude@ strives to encourage
|
|
best-practices and reduce the chances of introducing a bug.
|
|
+---------------------------------+--------------------------------------------+
|
|
| __Partial__ | __Total__ |
|
|
+=================================+============================================+
|
|
| @head :: [a] -> a@ | @head :: NonEmpty a -> a@ |
|
|
+---------------------------------+--------------------------------------------+
|
|
| @tail :: [a] -> [a]@ | @tail :: NonEmpty a -> [a]@ |
|
|
+---------------------------------+--------------------------------------------+
|
|
| @read :: Read a => String -> a@ | @readMaybe :: Read a => String -> Maybe a@ |
|
|
+---------------------------------+--------------------------------------------+
|
|
| @fromJust :: Maybe a -> a@ | @fromMaybe :: a -> Maybe a -> a@ |
|
|
+---------------------------------+--------------------------------------------+
|
|
* __Type-safety__. We use the /\"make invalid states unrepresentable\"/ motto as
|
|
one of our guiding principles. If it is possible, we express this concept
|
|
through the types. /Example:/ @ whenNotNull :: Applicative f => [a] -> (NonEmpty
|
|
a -> f ()) -> f () @ * __Performance.__ We prefer @Text@ over
|
|
@[String](https://www.reddit.com/r/haskell/comments/29jw0s/whats_wrong_with_string/)@,
|
|
use space-leaks-free functions (e.g. our custom performant @sum@ and
|
|
@product@), introduce @\\{\\-\\# INLINE \\#\\-\\}@ and @\\{\\-\\# SPECIALIZE \\#\\-\\}@
|
|
pragmas where appropriate, and make efficient container types (e.g. @Map@,
|
|
@HashMap@, @Set@) more accessible. * __Minimalism__ (low number of
|
|
dependencies). We do not force users of @relude@ to stick to any specific lens
|
|
or text formatting or logging library. Where possible, @relude@ depends only on
|
|
boot libraries. The [Dependency
|
|
graph](https://raw.githubusercontent.com/kowainik/relude/main/relude-dependency-graph.png)
|
|
of @relude@ can give you a clearer picture. * __Convenience__. Despite
|
|
minimalism, we want to bring commonly used types and functions into scope, and
|
|
make available functions easier to use. Some examples of conveniences: 1. No
|
|
need to add @containers@, @unordered-containers@, @text@ and @bytestring@ to
|
|
dependencies in your @.cabal@ file to use the main API of these libraries 2. No
|
|
need to import types like @NonEmpty@, @Text@, @Set@, @Reader[T]@, @MVar@, @STM@
|
|
3. Functions like @liftIO@, @fromMaybe@, @sortWith@ are available by default as
|
|
well 4. @IO@ actions are lifted to @MonadIO@ * __Excellent documentation.__ 1.
|
|
Tutorial 2. Migration guide from @Prelude@ 3. Haddock for every function with
|
|
examples tested by [doctest](http://hackage.haskell.org/package/doctest). 4.
|
|
Documentation regarding [internal module
|
|
structure](http://hackage.haskell.org/package/relude/docs/Relude.html) 5.
|
|
@relude@-specific [HLint](http://hackage.haskell.org/package/hlint) rules:
|
|
@[.hlint.yaml](https://github.com/kowainik/relude/blob/main/.hlint.yaml)@ *
|
|
__User-friendliness.__ Anyone should be able to quickly migrate to @relude@.
|
|
Only some basic familiarity with the common libraries like @text@ and
|
|
@containers@ should be enough (but not necessary). * __Exploration.__ We have
|
|
space to experiment with new ideas and proposals without introducing breaking
|
|
changes. @relude@ uses the approach with @Extra.*@ modules which are not
|
|
exported by default. The chosen approach makes it quite easy for us to provide
|
|
new functionality without breaking anything and let the users decide to use it
|
|
or not.")
|
|
(license license:expat)))
|
|
|
|
(define ghc-morpheus-graphql-code-gen-utils
|
|
(package
|
|
(name "ghc-morpheus-graphql-code-gen-utils")
|
|
(version "0.27.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "morpheus-graphql-code-gen-utils" version))
|
|
(sha256
|
|
(base32
|
|
"11dfnyd9wbrwjfjz1qkc188x6l4b149jsyzjwh1gqji0skzsk3f6"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-morpheus-graphql-core ghc-prettyprinter ghc-relude
|
|
ghc-unordered-containers))
|
|
(home-page "https://morpheusgraphql.com")
|
|
(synopsis "Morpheus GraphQL CLI")
|
|
(description "code generator for Morpheus GraphQL")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-wuss
|
|
(package
|
|
(name "ghc-wuss")
|
|
(version "2.0.1.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "wuss" version))
|
|
(sha256
|
|
(base32
|
|
"037dsx4mrp5mz2fif9zqlsp1n35g7v8749wmji281ing8jfiyl37"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-connection ghc-network ghc-websockets))
|
|
(home-page "http://hackage.haskell.org/package/wuss")
|
|
(synopsis "Secure WebSocket (WSS) clients")
|
|
(description
|
|
"Wuss is a library that lets you easily create secure WebSocket clients over the
|
|
WSS protocol. It is a small addition to
|
|
<https://hackage.haskell.org/package/websockets the websockets package> and is
|
|
adapted from existing solutions by <https://gist.github.com/jaspervdj/7198388
|
|
@@jaspervdj>, <https://gist.github.com/mpickering/f1b7ba3190a4bb5884f3
|
|
@@mpickering>, and <https://gist.github.com/elfenlaid/7b5c28065e67e4cf0767
|
|
@@elfenlaid>.")
|
|
(license license:expat)))
|
|
|
|
(define ghc-rsa
|
|
(package
|
|
(name "ghc-rsa")
|
|
(version "2.4.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "RSA" version))
|
|
(sha256
|
|
(base32
|
|
"0hchsqrxpfw7mqrqwscfy8ig1w2di6w3nxpzi873w0gibv2diibj"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-crypto-api ghc-crypto-pubkey-types ghc-sha))
|
|
(native-inputs (list ghc-quickcheck ghc-tagged ghc-test-framework
|
|
ghc-test-framework-quickcheck2))
|
|
(home-page "http://hackage.haskell.org/package/RSA")
|
|
(synopsis
|
|
"Implementation of RSA, using the padding schemes of PKCS#1 v2.1.")
|
|
(description
|
|
"This library implements the RSA encryption and signature algorithms for
|
|
arbitrarily-sized ByteStrings. While the implementations work, they are not
|
|
necessarily the fastest ones on the planet. Particularly key generation. The
|
|
algorithms included are based of RFC 3447, or the Public-Key Cryptography
|
|
Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-crypto-pubkey-types
|
|
(package
|
|
(name "ghc-crypto-pubkey-types")
|
|
(version "0.4.3")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "crypto-pubkey-types" version))
|
|
(sha256
|
|
(base32
|
|
"0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-asn1-types ghc-asn1-encoding))
|
|
(home-page "http://github.com/vincenthz/hs-crypto-pubkey-types")
|
|
(synopsis "Generic cryptography Public keys algorithm types")
|
|
(description "Generic cryptography public keys algorithm types")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-authenticate-oauth
|
|
(package
|
|
(name "ghc-authenticate-oauth")
|
|
(version "1.7")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "authenticate-oauth" version))
|
|
(sha256
|
|
(base32
|
|
"0y4v46rn0cvm0sr1v8qq1zgzllrlrr3ji5gij1xprgf1zsazcvvl"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-http-client
|
|
ghc-crypto-pubkey-types
|
|
ghc-rsa
|
|
ghc-data-default
|
|
ghc-sha
|
|
ghc-random
|
|
ghc-http-types
|
|
ghc-blaze-builder
|
|
ghc-transformers-compat))
|
|
(home-page "http://github.com/yesodweb/authenticate")
|
|
(synopsis
|
|
"Library to authenticate with OAuth for Haskell web applications.")
|
|
(description "API docs and the README are available at
|
|
<http://www.stackage.org/package/authenticate-oauth>.")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-req
|
|
(package
|
|
(name "ghc-req")
|
|
(version "3.13.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "req" version))
|
|
(sha256
|
|
(base32
|
|
"1igs75bj57vs1fwpxj1765l6zkqd4r3p2gbwp6cv2l37drfxjck4"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-aeson
|
|
ghc-authenticate-oauth
|
|
ghc-blaze-builder
|
|
ghc-case-insensitive
|
|
ghc-connection
|
|
ghc-http-api-data
|
|
ghc-http-client
|
|
ghc-http-client-tls
|
|
ghc-http-types
|
|
ghc-modern-uri
|
|
ghc-monad-control
|
|
ghc-retry
|
|
ghc-transformers-base
|
|
ghc-unliftio-core))
|
|
(native-inputs (list ghc-quickcheck ghc-hspec hspec-discover ghc-hspec-core
|
|
ghc-quickcheck ghc-hspec))
|
|
(arguments '(#:tests? #f))
|
|
(home-page "https://github.com/mrkkrp/req")
|
|
(synopsis "HTTP client library")
|
|
(description "HTTP client library.")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-modern-uri
|
|
(package
|
|
(name "ghc-modern-uri")
|
|
(version "0.3.6.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "modern-uri" version))
|
|
(sha256
|
|
(base32
|
|
"1lj3il9wg7v88l1hj08k07g3f76xas0gz20l2wy8z6xbpcn5ng6g"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-quickcheck
|
|
ghc-contravariant
|
|
ghc-hashable
|
|
ghc-megaparsec
|
|
ghc-profunctors
|
|
ghc-reflection
|
|
ghc-tagged))
|
|
(native-inputs (list ghc-hspec hspec-discover ghc-hspec-megaparsec))
|
|
(home-page "https://github.com/mrkkrp/modern-uri")
|
|
(synopsis "Modern library for working with URIs")
|
|
(description "Modern library for working with URIs.")
|
|
(license license:bsd-3)))
|
|
|
|
(define ghc-mime-mail
|
|
(package
|
|
(name "ghc-mime-mail")
|
|
(version "0.5.1")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "mime-mail" version))
|
|
(sha256
|
|
(base32
|
|
"1s1wp8v1xlvw3r4qk1lv9zpm99ihka7a785zjl6i3fq1maqq955g"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-base64-bytestring ghc-random ghc-blaze-builder))
|
|
(native-inputs (list ghc-hspec hspec-discover))
|
|
(home-page "http://github.com/snoyberg/mime-mail")
|
|
(synopsis "Compose MIME email messages.")
|
|
(description
|
|
"Hackage documentation generation is not reliable. For up to date documentation,
|
|
please see: <http://www.stackage.org/package/mime-mail>.")
|
|
(license license:expat)))
|
|
|
|
(define ghc-smtp-mail
|
|
(package
|
|
(name "ghc-smtp-mail")
|
|
(version "0.3.0.0")
|
|
(source (origin
|
|
(method url-fetch)
|
|
(uri (hackage-uri "smtp-mail" version))
|
|
(sha256
|
|
(base32
|
|
"0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4"))))
|
|
(build-system haskell-build-system)
|
|
(inputs (list ghc-base16-bytestring
|
|
ghc-base64-bytestring
|
|
ghc-connection
|
|
ghc-mime-mail
|
|
ghc-network
|
|
ghc-network-bsd
|
|
ghc-cryptonite
|
|
ghc-memory))
|
|
(home-page "http://github.com/jhickner/smtp-mail")
|
|
(synopsis "Simple email sending via SMTP")
|
|
(description
|
|
"This packages provides a simple interface for mail over SMTP. PLease see the
|
|
README for more information.")
|
|
(license license:bsd-3)))
|
|
|
|
datarekisteri
|