git.iko.soy/typeable/random-token
on master help sign in
2 files changed+112−102
since splitsnapshots
unifiedsplit
random-token.cabal+106−99 src/Random/Token.hs+6−3
random-token.cabal+106−99
@@ -1,104 +1,111 @@
1−cabal-version: 2.4
2−name: random-token
3−version: 0.1.0.0
4−synopsis: Implementation of random token generation and parsing
5−author: typeable.io
6−maintainer: s9gf4ult@gmail.com
7−license-file: LICENSE
8−category: Web
9−build-type: Simple
1+cabal-version: 2.4
2+name: random-token
3+version: 0.1.0.0
4+synopsis: Implementation of random token generation and parsing
5+author: typeable.io
6+maintainer: s9gf4ult@gmail.com
7+license-file: LICENSE
8+category: Web
9+build-type: Simple
1010
1111library
12− hs-source-dirs: src
13− ghc-options: -Wall
14− exposed-modules: Random.Token
15− build-depends: base >= 4.7 && < 5
16− , QuickCheck
17− , aeson
18− , base64-bytestring
19− , bytestring
20− , cryptonite
21− , deepseq
22− , http-api-data
23− , text
24− if !(impl(ghcjs) || arch(javascript))
25− build-depends: postgresql-simple
26− default-language: Haskell2010
27− default-extensions: CPP
28− , ConstraintKinds
29− , DataKinds
30− , DeriveFoldable
31− , DeriveFunctor
32− , DeriveGeneric
33− , DeriveTraversable
34− , DuplicateRecordFields
35− , FlexibleContexts
36− , FlexibleInstances
37− , FunctionalDependencies
38− , GADTs
39− , GeneralizedNewtypeDeriving
40− , LambdaCase
41− , MultiParamTypeClasses
42− , MultiWayIf
43− , NumDecimals
44− , OverloadedStrings
45− , PolyKinds
46− , QuasiQuotes
47− , RankNTypes
48− , RecordWildCards
49− , RoleAnnotations
50− , ScopedTypeVariables
51− , StandaloneDeriving
52− , TemplateHaskell
53− , TupleSections
54− , TypeApplications
55− , TypeFamilies
56− , TypeOperators
57− , UndecidableInstances
58− , ViewPatterns
12+ hs-source-dirs: src
13+ ghc-options: -Wall
14+ exposed-modules: Random.Token
15+ build-depends:
16+ , aeson
17+ , base >=4.9 && <5
18+ , base64-bytestring
19+ , bytestring >=0.10
20+ , deepseq
21+ , http-api-data
22+ , QuickCheck
23+ , text
24+
25+ if !(impl(ghcjs) || arch(javascript) || arch(wasm32))
26+ build-depends:
27+ , cryptonite
28+ , postgresql-simple
29+
30+ default-language: Haskell2010
31+ default-extensions:
32+ CPP
33+ ConstraintKinds
34+ DataKinds
35+ DeriveFoldable
36+ DeriveFunctor
37+ DeriveGeneric
38+ DeriveTraversable
39+ DuplicateRecordFields
40+ FlexibleContexts
41+ FlexibleInstances
42+ FunctionalDependencies
43+ GADTs
44+ GeneralizedNewtypeDeriving
45+ LambdaCase
46+ MultiParamTypeClasses
47+ MultiWayIf
48+ NumDecimals
49+ OverloadedStrings
50+ PolyKinds
51+ QuasiQuotes
52+ RankNTypes
53+ RecordWildCards
54+ RoleAnnotations
55+ ScopedTypeVariables
56+ StandaloneDeriving
57+ TemplateHaskell
58+ TupleSections
59+ TypeApplications
60+ TypeFamilies
61+ TypeOperators
62+ UndecidableInstances
63+ ViewPatterns
5964
6065test-suite spec
61− type: exitcode-stdio-1.0
62− hs-source-dirs: spec
63− main-is: Test.hs
64− other-modules: TokenSpec
65− default-language: Haskell2010
66− build-depends: base >= 4.10 && < 5
67− , hspec
68− , random-token
66+ type: exitcode-stdio-1.0
67+ hs-source-dirs: spec
68+ main-is: Test.hs
69+ other-modules: TokenSpec
70+ default-language: Haskell2010
71+ build-depends:
72+ , base >=4.10 && <5
73+ , hspec
74+ , random-token
75+
6976 build-tool-depends: hspec-discover:hspec-discover
70− ghc-options: -Wall
71− -threaded
72− -rtsopts
73− "-with-rtsopts=-N -A64m -qb0 -n4m -T -I1"
74− ghc-prof-options: -fprof-auto
75− default-extensions: ConstraintKinds
76− , DataKinds
77− , DeriveFoldable
78− , DeriveFunctor
79− , DeriveGeneric
80− , DeriveTraversable
81− , DuplicateRecordFields
82− , FlexibleContexts
83− , FlexibleInstances
84− , FunctionalDependencies
85− , GADTs
86− , GeneralizedNewtypeDeriving
87− , LambdaCase
88− , MultiParamTypeClasses
89− , MultiWayIf
90− , NumDecimals
91− , OverloadedStrings
92− , PolyKinds
93− , QuasiQuotes
94− , RankNTypes
95− , RecordWildCards
96− , ScopedTypeVariables
97− , StandaloneDeriving
98− , TemplateHaskell
99− , TupleSections
100− , TypeApplications
101− , TypeFamilies
102− , TypeOperators
103− , UndecidableInstances
104− , ViewPatterns
77+ ghc-options:
78+ -Wall -threaded -rtsopts "-with-rtsopts=-N -A64m -qb0 -n4m -T -I1"
79+
80+ ghc-prof-options: -fprof-auto
81+ default-extensions:
82+ ConstraintKinds
83+ DataKinds
84+ DeriveFoldable
85+ DeriveFunctor
86+ DeriveGeneric
87+ DeriveTraversable
88+ DuplicateRecordFields
89+ FlexibleContexts
90+ FlexibleInstances
91+ FunctionalDependencies
92+ GADTs
93+ GeneralizedNewtypeDeriving
94+ LambdaCase
95+ MultiParamTypeClasses
96+ MultiWayIf
97+ NumDecimals
98+ OverloadedStrings
99+ PolyKinds
100+ QuasiQuotes
101+ RankNTypes
102+ RecordWildCards
103+ ScopedTypeVariables
104+ StandaloneDeriving
105+ TemplateHaskell
106+ TupleSections
107+ TypeApplications
108+ TypeFamilies
109+ TypeOperators
110+ UndecidableInstances
111+ ViewPatterns
src/Random/Token.hs+6−3
@@ -5,9 +5,11 @@ module Random.Token
55 , tokenToText
66 , asciiToToken
77 , textToToken
8− , generateToken
98 , unsafeCoerceToken
109 , tokenWithContents
10+#ifndef ghcjs_HOST_OS
11+ , generateToken
12+#endif
1113 ) where
1214
1315import Control.DeepSeq
@@ -22,9 +24,9 @@ import Data.Typeable
2224import Test.QuickCheck.Arbitrary
2325import Web.HttpApiData
2426
25−import Crypto.Random as R
2627
2728#ifndef ghcjs_HOST_OS
29+import Crypto.Random as R
2830import Database.PostgreSQL.Simple.FromField
2931import Database.PostgreSQL.Simple.ToField
3032#endif
@@ -54,11 +56,12 @@ instance forall a. (Typeable (Token a), Typeable a) => FromField (Token a) where
5456
5557instance ToField (Token a) where
5658 toField = toField . tokenToText
57−#endif
5859
5960generateToken :: (MonadRandom m) => m (Token a)
6061generateToken = Token <$> R.getRandomBytes 16
6162
63+#endif
64+
6265instance FromHttpApiData (Token a) where
6366 parseQueryParam = first T.pack . textToToken
6467