web-rep 0.10.1 → 0.10.2.0
raw patch · 13 files changed
+104/−93 lines, 13 filesdep ~asyncdep ~bifunctorsdep ~box
Dependency ranges changed: async, bifunctors, box, lucid, optics-core, optparse-applicative, profunctors, text
Files
- ChangeLog.md +5/−0
- app/rep-example.hs +2/−12
- src/Web/Rep.hs +1/−1
- src/Web/Rep/Bootstrap.hs +0/−4
- src/Web/Rep/Examples.hs +1/−5
- src/Web/Rep/Html.hs +1/−5
- src/Web/Rep/Html/Input.hs +0/−4
- src/Web/Rep/Page.hs +1/−7
- src/Web/Rep/Server.hs +0/−2
- src/Web/Rep/Shared.hs +2/−7
- src/Web/Rep/SharedReps.hs +3/−7
- src/Web/Rep/Socket.hs +4/−13
- web-rep.cabal +84/−26
ChangeLog.md view
@@ -1,3 +1,8 @@+0.10.2+===++GHC 9.6.2 upgrade+ 0.8.0 ===
app/rep-example.hs view
@@ -1,23 +1,13 @@ {-# LANGUAGE ApplicativeDo #-} {-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# HLINT ignore "Eta reduce" #-}-{-# LANGUAGE TupleSections #-}-{-# OPTIONS_GHC -Wall #-}-{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}-{-# OPTIONS_GHC -Wno-unused-top-binds #-} -{-# HLINT ignore "Use newtype instead of data" #-}- import Box import Control.Monad import Data.Bifunctor import Data.Text (pack)-import qualified Lucid as L+import Lucid qualified as L import Optics.Core import Options.Applicative import Web.Rep@@ -31,7 +21,7 @@ | ClosureBug deriving (Eq, Show) -data Options = Options+newtype Options = Options { optionAppType :: AppType } deriving (Eq, Show)
src/Web/Rep.hs view
@@ -57,7 +57,7 @@ ) where -import qualified Data.HashMap.Strict as HashMap+import Data.HashMap.Strict qualified as HashMap import Web.Rep.Bootstrap import Web.Rep.Html import Web.Rep.Html.Input
src/Web/Rep/Bootstrap.hs view
@@ -1,8 +1,4 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE StrictData #-}-{-# OPTIONS_GHC -Wall #-} -- | Some <https://getbootstrap.com/ bootstrap> assets and functionality. module Web.Rep.Bootstrap
src/Web/Rep/Examples.hs view
@@ -1,11 +1,7 @@ {-# LANGUAGE ApplicativeDo #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE StrictData #-}-{-# OPTIONS_GHC -Wall #-} module Web.Rep.Examples ( page1,@@ -26,7 +22,7 @@ ) where -import qualified Clay+import Clay qualified import Data.Attoparsec.Text import Data.Biapplicative import Data.Bool
src/Web/Rep/Html.hs view
@@ -1,8 +1,4 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE IncoherentInstances #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE StrictData #-}-{-# OPTIONS_GHC -Wall #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | Key generators and miscellaneous html utilities.@@ -21,7 +17,7 @@ import Data.Bool import Data.List (intersperse) import Data.Text (Text, pack)-import qualified Data.Text.Lazy as Lazy+import Data.Text.Lazy qualified as Lazy import Lucid -- $setup
src/Web/Rep/Html/Input.hs view
@@ -1,7 +1,4 @@-{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE StrictData #-}-{-# OPTIONS_GHC -Wall #-} -- | Common web page input elements, often with bootstrap scaffolding. module Web.Rep.Html.Input@@ -245,7 +242,6 @@ <$> opts ) )- -- FIXME: How can you refactor to eliminate this polymorphic wart? toHtml (Input _ l i (Checkbox checked)) = with div_
src/Web/Rep/Page.hs view
@@ -1,13 +1,7 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE StrictData #-}-{-# LANGUAGE TupleSections #-} {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}-{-# OPTIONS_HADDOCK hide, not-home #-} module Web.Rep.Page ( -- $page@@ -36,7 +30,7 @@ where import Clay (Css)-import qualified Clay+import Clay qualified import Data.Text (Text, unpack) import Data.Text.Lazy (toStrict) import GHC.Generics
src/Web/Rep/Server.hs view
@@ -1,6 +1,4 @@-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedLabels #-}-{-# OPTIONS_GHC -Wall #-} -- | Serve pages via 'ScottyM' module Web.Rep.Server
@@ -1,10 +1,4 @@-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE StrictData #-}-{-# LANGUAGE TupleSections #-}-{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}-{-# OPTIONS_HADDOCK hide, not-home #-} module Web.Rep.Shared ( RepF (..),@@ -22,10 +16,11 @@ where import Control.Applicative+import Control.Monad import Control.Monad.State.Lazy import Data.Biapplicative import Data.HashMap.Strict (HashMap)-import qualified Data.HashMap.Strict as HashMap+import Data.HashMap.Strict qualified as HashMap import Data.Text (Text, pack) import Lucid import Optics.Core
@@ -1,11 +1,7 @@ {-# LANGUAGE ApplicativeDo #-}-{-# LANGUAGE IncoherentInstances #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE StrictData #-}-{-# LANGUAGE TupleSections #-}-{-# OPTIONS_GHC -Wall #-} -- | Various SharedRep instances for common html input elements. module Web.Rep.SharedReps@@ -46,11 +42,11 @@ import Control.Monad import Control.Monad.State.Lazy import Data.Attoparsec.Text hiding (take)-import qualified Data.Attoparsec.Text as A+import Data.Attoparsec.Text qualified as A import Data.Biapplicative import Data.Bool-import qualified Data.HashMap.Strict as HashMap-import qualified Data.List as List+import Data.HashMap.Strict qualified as HashMap+import Data.List qualified as List import Data.Text (Text, intercalate, pack, unpack) import Lucid import Optics.Core
src/Web/Rep/Socket.hs view
@@ -1,16 +1,7 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE StrictData #-}-{-# OPTIONS_GHC -Wall #-}-{-# HLINT ignore "Eta reduce" #-}-{-# OPTIONS_GHC -Wno-type-defaults #-}-{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} -{-# HLINT ignore "Redundant <$>" #-}- -- | A socket between a web page and haskell, based on the box library. module Web.Rep.Socket (socketPage, defaultSocketPage, SocketConfig (..), defaultSocketConfig, serveSocketBox, CodeBox, CoCodeBox, CodeBoxConfig (..), defaultCodeBoxConfig, codeBox, codeBoxWith, serveRep, serveRepWithBox, replaceInput, replaceOutput, replaceOutput_, sharedStream, PlayConfig (..), defaultPlayConfig, repPlayConfig, servePlayStream, servePlayStreamWithBox, parserJ, Code (..), code, console, val, replace, append, clean, webSocket, refreshJsbJs, preventEnter, runScriptJs) where @@ -19,18 +10,18 @@ import Control.Concurrent.Async import Control.Monad import Control.Monad.State.Lazy-import qualified Data.Attoparsec.Text as A+import Data.Attoparsec.Text qualified as A import Data.Bifunctor import Data.Bool import Data.Functor.Contravariant import Data.HashMap.Strict as HashMap import Data.Profunctor import Data.Text (Text, pack)-import qualified Data.Text as Text+import Data.Text qualified as Text import GHC.Generics import Lucid as L import Network.Wai.Handler.WebSockets-import qualified Network.WebSockets as WS+import Network.WebSockets qualified as WS import Optics.Core import Text.InterpolatedString.Perl6 import Web.Rep.Bootstrap@@ -220,7 +211,7 @@ (playBox, _) <- toBoxM (Latest (False, pcfg)) race_ (sharedStream ((,) <$> repReset <*> repPlayConfig pcfg) (contramap (\h -> [Replace "input" (toText h)]) c) (witherC (either (const (pure Nothing)) (pure . Just)) (committer playBox)) e)- (restart (fst <$> emitter playBox) (glue c <$|> speedSkipEffect ((\x -> (playFrame (snd x), playSpeed (snd x))) <$> emitter playBox) =<< pauser (playPause . snd <$> emitter playBox) <$> pipe))+ (restart (fst <$> emitter playBox) (glue c <$|> speedSkipEffect ((\x -> (playFrame (snd x), playSpeed (snd x))) <$> emitter playBox) . pauser (playPause . snd <$> emitter playBox) =<< pipe)) pure () -- | Serve an emitter controlled by a PlayConfig representation.
web-rep.cabal view
@@ -1,6 +1,6 @@-cabal-version: 2.4+cabal-version: 3.0 name: web-rep-version: 0.10.1+version: 0.10.2.0 synopsis: representations of a web page category: web description:@@ -11,15 +11,81 @@ license: MIT license-file: LICENSE.md build-type: Simple-extra-source-files: ChangeLog.md-tested-with:- GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.2.5 || ==9.4.4+extra-doc-files: ChangeLog.md+tested-with: GHC == 8.10.7 || ==9.2.8 || ==9.4.5 || ==9.6.2 source-repository head type: git location: https://github.com/tonyday567/web-rep+common ghc2021-stanza+ if impl(ghc >=9.2)+ default-language:+ GHC2021+ if impl(ghc <9.2)+ default-language:+ Haskell2010+ default-extensions:+ BangPatterns+ BinaryLiterals+ ConstrainedClassMethods+ ConstraintKinds+ DeriveDataTypeable+ DeriveFoldable+ DeriveFunctor+ DeriveGeneric+ DeriveLift+ DeriveTraversable+ DoAndIfThenElse+ EmptyCase+ EmptyDataDecls+ EmptyDataDeriving+ ExistentialQuantification+ ExplicitForAll+ FlexibleContexts+ FlexibleInstances+ ForeignFunctionInterface+ GADTSyntax+ GeneralisedNewtypeDeriving+ HexFloatLiterals+ ImplicitPrelude+ InstanceSigs+ KindSignatures+ MonomorphismRestriction+ MultiParamTypeClasses+ NamedFieldPuns+ NamedWildCards+ NumericUnderscores+ PatternGuards+ PolyKinds+ PostfixOperators+ RankNTypes+ RelaxedPolyRec+ ScopedTypeVariables+ StandaloneDeriving+ StarIsType+ TraditionalRecordSyntax+ TupleSections+ TypeApplications+ TypeOperators+ TypeSynonymInstances+ if impl(ghc <9.2) && impl(ghc >=8.10)+ default-extensions:+ ImportQualifiedPost+ StandaloneKindSignatures +common ghc-options-stanza+ ghc-options:+ -Wall+ -Wcompat+ -Wincomplete-record-updates+ -Wincomplete-uni-patterns+ -Wredundant-constraints+ -Widentities+ -Wpartial-fields+ library+ import: ghc2021-stanza+ import: ghc-options-stanza exposed-modules: Web.Rep Web.Rep.Bootstrap@@ -36,9 +102,9 @@ hs-source-dirs: src build-depends: , attoparsec ^>=0.14- , base >=4.12 && <5- , bifunctors ^>=5.5.11- , box >=0.9+ , base >=4.12 && <5+ , bifunctors >=5.5.11 && <5.7+ , box >=0.9 && < 0.10 , box-socket ^>=0.4 , clay >=0.13 && <0.15 , interpolatedstring-perl6 ^>=1.0@@ -47,7 +113,7 @@ , mtl >=2.2.2 && <2.4 , optics-core ^>=0.4 , optics-extra ^>=0.4- , profunctors+ , profunctors ^>=5.6.2 , scotty >=0.11.5 && <0.13 , text >=1.2.3 && <2.1 , transformers >=0.5.6 && <0.6.2@@ -55,30 +121,22 @@ , wai-middleware-static ^>=0.9 , wai-websockets ^>=3.0.1.2 , websockets ^>=0.12- , async-- default-language: Haskell2010- default-extensions:- ghc-options:- -Wall -Wcompat -Wincomplete-record-updates- -Wincomplete-uni-patterns -Wredundant-constraints+ , async ^>=2.2.4 executable web-rep-example+ import: ghc2021-stanza+ import: ghc-options-stanza main-is: rep-example.hs hs-source-dirs: app build-depends:- , base >=4.12 && <5- , optparse-applicative+ , base >=4.12 && <5+ , optparse-applicative >=0.17 && <0.19 , web-rep- , box- , text- , lucid- , optics-core+ , box >=0.9 && < 0.10+ , text >=1.2.3 && <2.1+ , lucid >=2.9 && <2.12+ , optics-core ^>=0.4 - default-language: Haskell2010- default-extensions: ghc-options:- -Wall -Wcompat -Wincomplete-record-updates- -Wincomplete-uni-patterns -Wredundant-constraints -funbox-strict-fields -fforce-recomp -threaded -rtsopts -with-rtsopts=-N