h$6*      !"#$%&'()None  <>*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None  <>None  <> 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 '   None  <>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 handlerwebby6Send a binary stream in the response body. Also sets  Content-Type header to application/octet-streamwebby1Send 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.comNone  <>B*  !"#$%&'()* %&'()! "#$       !"#$%&'()*+,-./01234567839:39;3<=3<>34?34@34A67B3CD3CE3FG3HI3HJ3HK34L3MN3MO3MP3MQ3MR3MS3MT3MU3MV3MW3MX3MY6Z[6Z\6Z]3^_3^`3^a3^b3^c3^d3^e3^f3^g3^h3^i3^j3^k3^l3^m3^n3^o3^p3Cq3Cr3Cs3Ct3Cu3Cv3Cw3Cx3Cy3Cz3C{3C|34}34~3434343434333333336Z6Z6Z6Z6Z6Z6Z6Z33C3C3^3^3^3^3^3^3^3^3^3^3^3^3C3C3C3C3C3C33333334343434343433333333333333333334343434343434346666666663333333366663C3C6633333336663633433434343333333343434343434343433333333333333333333333333333333H3333333333333333333333333333333333F3F3F3F3F3F3F3F3F3F3F3F333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333C3C3C3C3C3C3C3C3M3M33939393939393939393939393939393939393939393333333333333333<3<3<333343434343434343434343434333336Z6Z6Z            %                                                                    "webby-1.0.2-A8UGSo5iKLkGF2OcOVS03UWebbyPrelude Paths_webby Webby.Types Webby.Server Network.WaiRequest wai-3.2.3-BLrwfdFdeMQ1KnKjrnSyUl ApplicationWebbyServerConfig WebbyErrorWebbyJSONParseErrorWebbyParamParseErrorWebbyMissingCapture wppeParamName wppeErrMsgCapturesRoute RoutePatternWebbyMdefaultWebbyServerConfig setRoutessetExceptionHandlercaptures getCapture setStatus addHeader setHeaderparamsflagparamparam_headerrequestgetRequestBodyChunkActionheadersrequestBodyLengthfinishblobtextrequestBodyLBSjsonDatajsonstream mkWebbyAppmkRoutepostgetputdeletebaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumpredsucctoEnumfromEnum enumFromToenumFromThenToenumFrom enumFromThen GHC.ClassesEq==/= GHC.FloatFloatingatanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtpiexp Fractionalrecip fromRational/IntegraldivModquotRemmoddivrem toIntegerquotMonadreturn>>=>>Functorfmap<$GHC.NumNumsignumabs fromIntegernegate-+*Ord<<=>maxmin>=compareGHC.ReadReadReal toRational RealFloatatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN encodeFloat decodeFloat floatRange floatRadix floatDigitsRealFracfloorceilingroundproperFractiontruncateGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString ApplicativeliftA2<**>pure<*> Data.FoldableFoldablefoldMap'foldfoldMaplengthfoldl'nulltoListfoldrData.Traversable Traversablesequence sequenceAtraversemapM GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel fromLabel Semigroupstimes<>sconcatMonoidmconcatmemptymappend GHC.TypesBoolFalseTrueCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64integer-wired-inGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeNothingJustOrderingGTLTEQRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackStringbytestring-0.10.10.0Data.ByteString.Internal ByteString'hashable-1.4.0.2-IlhYX8oPry6K1Nkk5KloojData.Hashable.ClassHashable hashWithSalt Data.Functor<$>const.id text-1.2.3.2Data.Text.InternalTextcontainers-0.6.2.1Data.Map.InternalMap4unordered-containers-0.2.19.1-Coo1fx0gtgEKIpnSqKdDOsData.HashMap.InternalHashMapGHC.IO.Handle.TypesHandleData.Bifunctor BifunctorsecondfirstbimapforM_mapM_ Alternativesomemanyempty<|> MonadPlusmzeromplusData.Functor.ContravariantcomparisonEquivalencedefaultEquivalencedefaultComparison>$$<>$<$<phantom Contravariant contramap>$ Predicate getPredicate Comparison getComparison EquivalencegetEquivalenceOpgetOpData.Functor.ComposeCompose getCompose Data.VoidvacuousabsurdVoidData.Semigroup mtimesDefaultcycle1 WrappedMonoidsortWithData.BitraversablebifoldMapDefault bimapDefaultbifor bisequence Bitraversable bitraverseData.BifoldablebifindbiallbianybiorbiandbielembilengthbinullbiListbiasum bisequence_bifor_ bitraverse_bifoldlMbifoldl'bifoldrMbifoldr' Bifoldablebifoldlbifoldrbifold bifoldMapData.List.NonEmptynonEmptyGHC.ExecutionStackshowStackTrace getStackTraceControl.Monad.IO.ClassMonadIOliftIOmfilter<$!>unless replicateM_ replicateM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM mapAccumR mapAccumLforMControl.ApplicativeoptionalZipList getZipList Control.Arrow&&&Data.Functor.IdentityIdentity runIdentity System.IOwithFileGHC.IO.Handle.FDstderrstdin GHC.StackwithFrozenCallStack callStack GHC.Conc.Sync writeTVarreadTVarnewTVarcatchSTMthrowSTMSTMTVarstdout BufferModeBlockBuffering NoBuffering LineBuffering GHC.IORefIORefGHC.IOFilePath GHC.ExceptionprettyCallStack prettySrcLocGHC.Exception.Type ExceptiondisplayException toException fromExceptionData.Functor.ConstConstgetConstfindallanyorand concatMapconcatasum sequence_ sequenceA_for_ traverse_foldlM Data.MonoidFirstgetFirstLastgetLastApgetApData.Semigroup.Internal stimesMonoidstimesIdempotentDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt someNatValnatValSomeNat Data.OldListunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupgenericReplicategenericSplitAt genericDrop genericTake genericLength transpose intercalate intersperse isPrefixOf Text.Read readMaybereads fromRightfromLeftisRightisLeftpartitionEithersrightsleftseitherData.Ord comparingDowngetDown Data.ProxyProxyControl.Category>>><<< GHC.IO.IOModeIOMode ReadWriteMode AppendModeReadMode WriteMode byteSwap64 byteSwap32 byteSwap16 Data.BitstoIntegralSizedxorlcmgcd^^^oddeven denominator numeratorboundedEnumFromThenboundedEnumFromGHC.Charchrunzip3unzipzipWithzip3reversebreakspansplitAtdroptake dropWhile takeWhile replicaterepeatiteratescanr1scanrscanl'scanl1scanluncons Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybe isNothingisJustmaybe Data.Boolbool Data.Function&onfixvoid$><&>swapuncurrycurryGHC.MVarMVarsubtract GHC.Stack.CCScurrentCallStackasTypeOf$!flipmaxIntminIntordwhen=<<liftA3<**>NonEmpty:| getCallStack HasCallStackstimesIdempotentMonoid SomeException&&||notData.ByteString.Short.Internal fromShortShortByteStringtoShorttransformers-0.5.6.2Control.Monad.Trans.Identity IdentityT runIdentityTData.IntMap.InternalIntMapData.IntSet.InternalIntSetData.Sequence.InternalSeqData.Set.InternalSetdeepseq-1.4.4.0Control.DeepSeqforce$!!deepseqNFDatarnfControl.Monad.Trans.MaybeMaybeT runMaybeTControl.Monad.Trans.ExceptExceptT'formatting-7.1.3-AG2zOpd61zq1Iuw1ClByItFormatting.ShortFormattersshstdtFormatting.Internalsformatformat%'http-types-0.12.3-XEQjpts9GnAkrn83W7LXBNetwork.HTTP.Types.URIencodePathSegmentsRelativeNetwork.HTTP.Types.Versionhttp20http11http10http09 HttpVersion httpMajor httpMinorNetwork.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 statusCode statusMessageNetwork.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.Classgetsmodify'modify MonadStatestateControl.Monad.Reader.Classasks MonadReaderreaderasklocal runExceptTControl.Monad.Trans.ReaderReaderT runReaderTReader runReader withReader withReaderT Control.Monad.Trans.State.StrictStateT runStateTStaterunState evalState execState withState evalStateT execStateT%relude-1.1.0.0-C4Ifgx5VjPrF7hvzbaqKEVRelude.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 writeFilereadFile 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.InternalHashSetmaybeToExceptTexceptToMaybeTData.Text.Encoding.ErrorUnicodeException OnDecodeErrorOnError strictDecode lenientDecodeData.Text.EncodingdecodeUtf8With decodeUtf8' stm-2.5.0.0Control.Concurrent.STM.TMVarTMVarnewTMVar newEmptyTMVar takeTMVar tryTakeTMVarputTMVar tryPutTMVar readTMVar tryReadTMVar swapTMVar isEmptyTMVar mkWeakTMVarControl.Concurrent.STM.TVar modifyTVar'&resourcet-1.2.5-KDDBB3WNr6iKVoeyrcBSr7Control.Monad.Trans.Resource runResourceT%Control.Monad.Trans.Resource.Internal liftResourceT ResourceT(unliftio-0.2.22.0-8XX2qytUiYHJDqmPuk7olCUnliftIO.ExceptionthrowIOconsumeRequestBodyLazylazyRequestBodyconsumeRequestBodyStrictstrictRequestBody ifRequestmodifyResponsedefaultRequestmapResponseStatusmapResponseHeadersresponseToStreamresponseHeadersresponseStatus responseRawresponseStream responseLBSresponseBuilder responseFile MiddlewareNetwork.Wai.InternalgetRequestBodyChunkrequestHeaderUserAgentrequestHeaderRefererrequestHeaderRangerequestHeaderHost requestBody queryStringpathInfo remoteHostisSecurerequestHeadersrawQueryString rawPathInfo httpVersionvault requestMethodResponse StreamingBodyRequestBodyLength ChunkedBody KnownLengthFilePartfilePartFileSizefilePartOffsetfilePartByteCountResponseReceivedparseIntheadMayversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName FinishThrownWEnvWyRespwscExceptionHandler wscRoutesunWebbyMweExceptionHandlerweAppEnv weRequest weCapturesweRespWebbyExceptionHandler wrResponded wrRespData wrHeaderswrStatus defaultWyResp runWebbyMasksWEnvresp400 matchRequesterrorResponse404invalidRoutesErr