h&8,      !"#$%&'()*+ Safe-Inferred "?,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred "? Safe-Inferred "? webbyHolds web server configuration like API routes, handlers and an optional exception handlerwebbyVarious kinds of errors thrown by this library - these can be caught by handler code.webbyInternal type used to terminate handler processing by throwing and catching an exception.webby8Captures are simply extracted path elements in a HashMap webby3A route is a pair of a route pattern and a handler. webbyA route pattern represents logic to match a request to a handler. webby;The main monad transformer stack used in the web-framework.'The type of a handler for a request is WebbyM appEnv (). The appEnv parameter is used by the web application to store an (read-only) environment. For e.g. it can be used to store a database connection pool.webbyThe reader environment used by the web framework. It is parameterized by the application's environment data type.webbyA data type to represent parts of the response constructed in the handler when servicing a request. webbyDefault WebbyServerConfig$ typically used in conjunction with   and  webby(Sets API routes and their handlers of a webby Sets the exception handler of a '    Safe-Inferred "?webbyRetrieve all path captureswebbyRetrieve a particular capturewebbySet response statuswebby+Append given header to the response headerswebby Similar to  but replaces a headerwebby9Get all request query params as a list of key-value pairswebby4Checks if the request contains the given query paramwebby"Gets the given query param's valuewebby Similar to  except that it returns the handler with a '400 BadRequest' if the query param is missing.webbyGet the given header valuewebbyGet the  of the handlerwebbyReturns an action that returns successive chunks of the rquest body. It returns an empty bytestring after the request body is consumed.webbyGet all the request headerswebby"Returns request body size in byteswebby(Used to return early from an API handlerwebby/Send an image in the response body. Also sets  Content-Type( header to @mimeType e.g. image/svg+xmlwebby6Send a binary stream in the response body. Also sets  Content-Type header to application/octet-stream webby8Send a binary stream in the response body. Doesn't set  Content-Type header!webby1Send plain-text in the response body. Also sets  Content-Type header to text/plain; charset=utf-8"webby0Return the raw request body as a lazy bytestring#webby?Parse the request body as a JSON object and return it. Raises & exception if parsing is unsuccessful.$webbySet the body of the response to the JSON encoding of the given value. Also sets  Content-Type header to application/json; charset=utf-8%webbySet the body of the response to a StreamingBody. Doesn't set the  Content-Type; header, so you probably want to do that on your own with .&webbyUse this function to create a WAI application. It takes a user/application defined appEnv data type and a list of routes. Routes are matched in the given order. If none of the requests match a request, a default 404 response is returned.'webbyCreate a route for a user-provided HTTP request method, pattern and handler function.(webbyCreate a route for a POST5 request method, given the path pattern and handler.)webbyCreate a route for a GET5 request method, given the path pattern and handler.*webbyCreate a route for a PUT5 request method, given the path pattern and handler.+webbyCreate a route for a DELETE0 request method, given path pattern and handler." !"#$%&'()*+5An easy to use Haskell web-server inspired by Scotty.Apache License 2.0aditya.mmy@gmail.com Safe-Inferred "?V,  !"#$%&'()*+, '()*+#"$!% &       !"#$%&'()*+,-./0123456789:5;<5;=5>?5>@56A56B56C89D5EF5EG5HI5JK5JL5JM56N5OP5OQ5OR5OS5OT5OU5OV5OW5OX5OY5OZ5O[8\]8\^8\_5`a5`b5`c5`d5`e5`f5`g5`h5`i5`j5`k5`l5`m5`n5`o5`p5`q5`r5Es5Et5Eu5Ev5Ew5Ex5Ey5Ez5E{5E|5E}5E~56565656565656555555558\8\8\8\8\8\8\8\55E5E5`5`5`5`5`5`5`5`5`5`5`5`5E5E5E5E5E5E5555555656565656565555555555555555565656565656565688856888888555555588885E5E88555555556568885555656565555555565656565656565655555555555555555555555555555555J555555555555555555555555555555555555H5H5H5H5H5H5H5H5H5H5H5H5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555E5E5E5E5E5E5E5E5O5O55;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5;5555555555555555>5>5>55556565656565656565656555558\8\8\               %                                                                    "webby-1.1.0-2IibB2WNYoM7ds4OYbHCcDWebbyPrelude Paths_webby Webby.Types Webby.Server Network.WaiRequest wai-3.2.3-GJ93JXcVtKMJ4Od8PN5oi0 ApplicationWebbyServerConfig WebbyErrorWebbyJSONParseErrorWebbyParamParseErrorWebbyMissingCapture wppeParamName wppeErrMsgCapturesRoute RoutePatternWebbyMdefaultWebbyServerConfig setRoutessetExceptionHandlercaptures getCapture setStatus addHeader setHeaderparamsflagparamparam_headerrequestgetRequestBodyChunkActionheadersrequestBodyLengthfinishimageblobrawtextrequestBodyLBSjsonDatajsonstream mkWebbyAppmkRoutepostgetputdeletebaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumsuccpredtoEnumfromEnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.ClassesEq==/= GHC.FloatFloatingtanhtansqrtsinhsinpilogBaseexpcoshcosatanhatanasinhasinacosh**acos Fractionalrecip fromRational/IntegralremquotRemquotmoddivMod toIntegerdivMonad>>=return>>Functorfmap<$GHC.NumNumsignumabs*+negate fromInteger-Ord<<=>maxmin>=compareGHC.ReadReadReal toRational RealFloatisNegativeZeroisNaN isInfiniteisIEEEisDenormalized floatRange floatRadix floatDigits encodeFloatatan2 decodeFloatRealFractruncateroundproperFractionceilingfloorGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString ApplicativeliftA2<*pure*><*> Data.FoldableFoldablefoldMap'foldMapfoldlengthfoldl'nulltoListfoldrData.Traversable Traversablesequence sequenceAtraversemapM GHC.GenericsGeneric GHC.TypeNatsKnownNat Semigroupstimes<>sconcatMonoidmemptymconcatmappend GHC.TypesBoolFalseTrueStringCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64 ghc-bignumGHC.Num.IntegerIntegerGHC.Num.NaturalNatural GHC.MaybeMaybeNothingJustOrderingGTLTEQRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightNonEmpty:|Type Constraint CoercibleGHC.Stack.Types CallStackGHC.TypeNats.InternalCmpNatbytestring-0.11.3.1Data.ByteString.Internal ByteString'hashable-1.4.1.0-DD9dAnwBSDfIvorTHQpz48Data.Hashable.ClassHashable hashWithSalt Data.Functor<$>const.id text-1.2.5.0Data.Text.InternalTextcontainers-0.6.5.1Data.Map.InternalMap4unordered-containers-0.2.19.1-3MGG7b01IYxFpF6Tpk5LG1Data.HashMap.InternalHashMapGHC.IO.Handle.TypesHandleData.Bifunctor BifunctorsecondbimapfirstforM_mapM_ Alternativesomemanyempty<|> MonadPlusmzeromplusData.Functor.Contravariant Predicate getPredicateOpgetOp EquivalencegetEquivalence Contravariant>$ contramap Comparison getComparisonphantomdefaultEquivalencedefaultComparisoncomparisonEquivalence>$<>$$<$<Data.Functor.ComposeCompose getCompose Data.VoidVoidvacuousabsurdData.Semigroup WrappedMonoid mtimesDefaultcycle1sortWithData.Bitraversable Bitraversable bitraverse bisequence bimapDefaultbiforbifoldMapDefaultData.Bifoldable Bifoldablebifoldrbifoldlbifold bifoldMap bitraverse_ bisequence_biorbinullbilengthbifor_bifoldrMbifoldr'bifoldlMbifoldl'bifindbielembiasumbianybiandbiallbiListData.List.NonEmptynonEmptyGHC.ExecutionStackshowStackTrace getStackTraceControl.Monad.IO.ClassMonadIOliftIOGHC.OverloadedLabelsIsLabel fromLabel zipWithM_zipWithMunless replicateM_ replicateMmfilter mapAndUnzipMforeverfilterM>=><=<<$!> mapAccumR mapAccumLforMControl.ApplicativeZipList getZipListoptional Control.Arrow&&&Data.Functor.IdentityIdentity runIdentityGHC.IO.StdHandleswithFilestdinstderr GHC.StackwithFrozenCallStack callStack GHC.Conc.SyncTVarSTM writeTVarthrowSTMreadTVarnewTVarcatchSTMstdout BufferMode NoBufferingBlockBuffering LineBuffering GHC.IORefIORefGHC.IOFilePath GHC.Exception prettySrcLocprettyCallStackGHC.Exception.Type Exception toExceptiondisplayException fromExceptionData.Functor.ConstConstgetConst traverse_ sequence_ sequenceA_orfor_foldlMfind concatMapconcatasumanyandall Data.OldListunfoldr transposetails subsequencessortOnsortBysort permutations isPrefixOf intersperse intercalateinitsgroup genericTakegenericSplitAtgenericReplicate genericLength genericDrop Data.MonoidLastgetLastFirstgetFirstApgetApData.Semigroup.InternalSumgetSumProduct getProductEndoappEndoDualgetDualAnygetAnyAltgetAltAllgetAll stimesMonoidstimesIdempotentSomeNatNat someNatValnatValData.OrdDowngetDown comparing Text.Readreads readMayberightspartitionEithersleftsisRightisLeft fromRightfromLefteither Data.ProxyProxyControl.Category>>><<< GHC.IO.IOModeIOMode WriteMode ReadWriteMode AppendModeReadMode byteSwap64 byteSwap32 byteSwap16GHC.BitsxortoIntegralSizedodd numeratorlcmgcdeven denominator^^^boundedEnumFromThenboundedEnumFromGHC.CharchrzipWithzip3unzip3unzipuncons takeWhiletakesplitAtspanscanr1scanrscanl1scanl'scanlreverse replicaterepeatiterate dropWhiledropbreak Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybe catMaybes Data.Boolbool Data.Functiononfix&void<&>$>uncurryswapcurryGHC.MVarMVarsubtract GHC.Stack.CCScurrentCallStackwhenordminIntmaxIntliftA3flipasTypeOf=<<<**>$! HasCallStack getCallStackstimesIdempotentMonoid SomeException&&not||Data.ByteString.Short.Internal fromShortShortByteStringtoShorttransformers-0.5.6.2Control.Monad.Trans.Identity IdentityT runIdentityTData.IntMap.InternalIntMapData.IntSet.InternalIntSetData.Sequence.InternalSeqData.Set.InternalSetdeepseq-1.4.6.1Control.DeepSeqNFDatarnfforcedeepseq$!!Control.Monad.Trans.MaybeMaybeT runMaybeTControl.Monad.Trans.ExceptExceptT'formatting-7.1.3-BpVmD1vJbWuKYxhQ97ZPrPFormatting.ShortFormattersshstdtFormatting.Internalsformatformat%(http-types-0.12.3-15jKboqV1ys4s9csJGbrJMNetwork.HTTP.Types.URIencodePathSegmentsRelativeNetwork.HTTP.Types.Versionhttp20http11http10http09 HttpVersion httpMinor httpMajorNetwork.HTTP.Types.QueryLike QueryLiketoQueryrenderQueryBuilderPartialEscaperenderQueryPartialEscape decodePath encodePath extractPathdecodePathSegmentsencodePathSegments urlDecode urlEncodeurlEncodeBuilderparseSimpleQuery parseQueryrenderSimpleQuery renderQueryrenderQueryBuildersimpleQueryToQueryparseQueryTextqueryToQueryTextrenderQueryTextqueryTextToQuery QueryItemQuery QueryTextSimpleQueryItem SimpleQuery EscapeItemQEQNPartialEscapeQueryItemPartialEscapeQueryNetwork.HTTP.Types.StatusstatusIsServerErrorstatusIsClientErrorstatusIsRedirectionstatusIsSuccessfulstatusIsInformational networkAuthenticationRequired511 status511httpVersionNotSupported505 status505gatewayTimeout504 status504serviceUnavailable503 status503 badGateway502 status502notImplemented501 status501internalServerError500 status500requestHeaderFieldsTooLarge431 status431tooManyRequests429 status429preconditionRequired428 status428unprocessableEntity422 status422 imATeapot418 status418expectationFailed417 status417requestedRangeNotSatisfiable416 status416unsupportedMediaType415 status415requestURITooLong414 status414requestEntityTooLarge413 status413preconditionFailed412 status412lengthRequired411 status411gone410 status410 conflict409 status409requestTimeout408 status408proxyAuthenticationRequired407 status407notAcceptable406 status406methodNotAllowed405 status405 notFound404 status404 forbidden403 status403paymentRequired402 status402unauthorized401 status401 badRequest400 status400permanentRedirect308 status308temporaryRedirect307 status307 useProxy305 status305notModified304 status304 seeOther303 status303found302 status302movedPermanently301 status301multipleChoices300 status300partialContent206 status206resetContent205 status205 noContent204 status204nonAuthoritative203 status203 accepted202 status202 created201 status201ok200 status200switchingProtocols101 status101 continue100 status100mkStatusStatus statusMessage statusCodeNetwork.HTTP.Types.MethodrenderStdMethod renderMethod parseMethod methodPatch methodOptions methodConnect methodTrace methodDelete methodPut methodHead methodPost methodGetMethod StdMethodPATCHOPTIONSCONNECTTRACEDELETEPUTHEADGETPOSTNetwork.HTTP.Types.HeaderparseByteRangesrenderByteRangesrenderByteRangesBuilderrenderByteRangerenderByteRangeBuilderhCookie hUserAgenthServerhRefererhRange hLocation hLastModifiedhIfRangehIfModifiedSincehDate hContentType hContentMD5hContentLengthhContentEncoding hConnection hCacheControlhAuthorizationhAcceptLanguagehAcceptHeader HeaderNameRequestHeadersResponseHeaders ByteRangeByteRangeSuffix ByteRangeFromByteRangeFromTo ByteRangesControl.Monad.Trans.Class MonadTranslift mtl-2.2.2Control.Monad.State.Class MonadStatestatemodify'modifygetsControl.Monad.Reader.Class MonadReaderreaderasklocalasks runExceptTControl.Monad.Trans.Reader runReader withReader withReaderTReaderReaderT runReaderT Control.Monad.Trans.State.Strict evalState evalStateT execState execStateTrunState withStateStateStateT runStateT%relude-1.1.0.0-9RBCyD8mYTpG9ju4YIRfGYRelude.Lifted.Env lookupEnvgetArgsRelude.Lifted.TerminalputStrLnputStrprintgetLineRelude.Foldable.FoldanyMallMorMandMnotElemelemproductsumfoldMapMfoldMapAasumMap flipfoldl'Relude.Lifted.ConcurrentnewEmptyTMVarIO newTMVarIO readTVarIO newTVarIO atomically tryTakeMVar tryReadMVar tryPutMVartakeMVarswapMVarreadMVarputMVarnewMVar newEmptyMVarRelude.Lifted.Handle hGetBuffering hSetBufferinghIsEOFhFlush Relude.List partitionWithmaybeAt!!?Relude.Container.OneOneItemOneoneRelude.NumericintegerToNaturalintegerToBoundedRelude.Bool.Guard||^&&^guardedguardMifMunlessMwhenMRelude.DeepSeq evaluateNF_ evaluateNF evaluateWHNF_ evaluateWHNFRelude.ExceptionbugExcBugRelude.List.NonEmptytaillastinithead whenNotNullM whenNotNull viaNonEmpty Relude.Monad infinitely chainedToRelude.Monad.Either whenRightM_ whenRightM whenRight_ whenRight whenLeftM_ whenLeftM whenLeft_whenLeft maybeToLeft maybeToRight rightToMaybe leftToMaybe Relude.Debug undefinederrortraceId traceShowMtraceM traceShowWith traceShowId traceShowtrace Undefined Relude.File appendFileLBS writeFileLBS readFileLBS appendFileBS writeFileBS readFileBSappendFileLTextwriteFileLText readFileLTextappendFileText writeFileText readFileTextRelude.Lifted.File appendFile writeFile readFile'readFile Relude.PrintputLBSLnputLBSputBSLnputBS putLTextLnputLText putTextLnputTextRelude.String.Conversion fromStrictfromLazyshow readEitherLText LByteString ConvertUtf8decodeUtf8Strict encodeUtf8 decodeUtf8ToTexttoTextToLTexttoLTextToStringtoString LazyStricttoStricttoLazyRelude.String.Reexportunwordswordsunlineslines Relude.NubintNubOnintNub unstableNubsortNubhashNubordNubOnordNub Relude.Monoid memptyIfTrue memptyIfFalse maybeToMonoidRelude.Monad.Trans hoistEither hoistMaybeexecutingStateexecutingStateTevaluatingStateevaluatingStateT usingState usingStateT etaReaderT usingReader usingReaderTRelude.Monad.Maybe mapMaybeM whenNothingM_ whenNothingM whenNothing_ whenNothing whenJustMwhenJust?:Relude.List.ReexportcycleRelude.Lifted.IORefatomicWriteIORefatomicModifyIORef'_atomicModifyIORef_atomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef writeIORef readIORefnewIORefRelude.Lifted.Exitdie exitSuccess exitFailureexitWith Relude.Enum inverseMapuniverseNonEmptyuniverseRelude.Functor.Fmap??flap<<$>>Relude.FunctionidentityRelude.Applicative appliedTopassData.HashSet.InternalHashSetexceptToMaybeTmaybeToExceptTData.Text.Encoding.Error lenientDecode strictDecode OnDecodeErrorOnErrorUnicodeExceptionData.Text.Encoding decodeUtf8'decodeUtf8With stm-2.5.0.2Control.Concurrent.STM.TMVar isEmptyTMVar mkWeakTMVar newEmptyTMVarnewTMVarputTMVar readTMVar swapTMVar takeTMVar tryPutTMVar tryReadTMVar tryTakeTMVarTMVarControl.Concurrent.STM.TVar modifyTVar'&resourcet-1.2.6-GWjIf3wAZMg9oMhlsIPjxHControl.Monad.Trans.Resource runResourceT%Control.Monad.Trans.Resource.Internal liftResourceT ResourceT(unliftio-0.2.22.0-B7yEMINQ8N11T7cndnjCmcUnliftIO.ExceptionthrowIOconsumeRequestBodyLazylazyRequestBodyconsumeRequestBodyStrictstrictRequestBody ifRequestmodifyResponsedefaultRequestmapResponseStatusmapResponseHeadersresponseToStreamresponseHeadersresponseStatus responseRawresponseStream responseLBSresponseBuilder responseFile MiddlewareNetwork.Wai.InternalgetRequestBodyChunkrequestHeaderUserAgentrequestHeaderRefererrequestHeaderRangerequestHeaderHost requestBody queryStringpathInfo remoteHostisSecurerequestHeadersrawQueryString rawPathInfo httpVersionvault requestMethodResponse StreamingBodyRequestBodyLength ChunkedBody KnownLengthFilePartfilePartFileSizefilePartByteCountfilePartOffsetResponseReceivedparseIntheadMayversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir FinishThrownWEnvWyRespwscExceptionHandler wscRoutesunWebbyMweExceptionHandlerweAppEnv weRequest weCapturesweRespWebbyExceptionHandler wrResponded wrRespData wrHeaderswrStatus defaultWyResp runWebbyMasksWEnvresp400 matchRequesterrorResponse404invalidRoutesErr