[{"name":"Perfimmo.Cmd.ActionToCmd","comment":" Launch action in one line\n\n@docs msgToElmCmd\n","unions":[],"aliases":[],"values":[{"name":"msgToElmCmd","comment":"  Launch action in one line\n","type":"a -> Platform.Cmd.Cmd a"}],"binops":[]},{"name":"Perfimmo.Collection.List","comment":" Utils function on list\n\n@docs insertAt, splitIf, flatten, collectFirst, tail\n\n","unions":[],"aliases":[],"values":[{"name":"collectFirst","comment":" collectFirst\n","type":"(a -> Maybe.Maybe b) -> List.List a -> Maybe.Maybe b"},{"name":"flatten","comment":" flatten\n","type":"List.List (List.List b) -> List.List b"},{"name":"insertAt","comment":" insertAt\n","type":"Basics.Int -> a -> List.List a -> List.List a"},{"name":"splitIf","comment":" splitIf\n","type":"(a -> Basics.Bool) -> List.List a -> List.List (List.List a)"},{"name":"tail","comment":" tail\n    an iq tail with 'Maybe List a' is so bad\n","type":"List.List a -> List.List a"}],"binops":[]},{"name":"Perfimmo.Collection.NonEmptyList","comment":" NonEmptyList\n\n@docs NEL, nel\n\n@docs repeat, updateAt, decodeNEL, appendList, prependList\n","unions":[],"aliases":[{"name":"NEL","comment":" NEL\n","args":["a"],"type":"List.Nonempty.Nonempty a"}],"values":[{"name":"appendList","comment":" appendList\n","type":"Perfimmo.Collection.NonEmptyList.NEL a -> List.List a -> Perfimmo.Collection.NonEmptyList.NEL a"},{"name":"decodeNEL","comment":" decodeNEL\n","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (List.Nonempty.Nonempty a)"},{"name":"nel","comment":" nel\n","type":"a -> List.List a -> List.Nonempty.Nonempty a"},{"name":"prependList","comment":" prependList\n","type":"List.List a -> Perfimmo.Collection.NonEmptyList.NEL a -> Perfimmo.Collection.NonEmptyList.NEL a"},{"name":"repeat","comment":" repeat\n","type":"Basics.Int -> a -> Perfimmo.Collection.NonEmptyList.NEL a"},{"name":"updateAt","comment":" updateAt\n","type":"Basics.Int -> (a -> a) -> List.Nonempty.Nonempty a -> List.Nonempty.Nonempty a"}],"binops":[]},{"name":"Perfimmo.Html.Dom","comment":" Handle event propagation\n\n@docs onClick_stopProp, buildOptions\n","unions":[],"aliases":[],"values":[{"name":"buildOptions","comment":" buildOptions\n","type":"Maybe.Maybe String.String -> List.List ( String.String, String.String ) -> List.List (Html.Styled.Html msg)"},{"name":"onClick_stopProp","comment":" onClick_stopProp\n","type":"msg -> Html.Styled.Attribute msg"}],"binops":[]},{"name":"Perfimmo.Http.Headers","comment":" Headers\n\n@docs ContentRange, fieldFromContentRangeHeader\n","unions":[],"aliases":[{"name":"ContentRange","comment":" ContentRange\n","args":[],"type":"{ total : Basics.Int }"}],"values":[{"name":"fieldFromContentRangeHeader","comment":" fieldFromContentRangeHeader\n","type":"(Perfimmo.Http.Headers.ContentRange -> Basics.Int) -> Http.Metadata -> Basics.Int"}],"binops":[]},{"name":"Perfimmo.Http.HttpRequest","comment":" HttpRequest\n\n# Types\n@docs Request, BodyResponse, HttpError, HttpResult, ResponseDecoder\n\n# Functions\n@docs withAuthReq, request, authRequest\n\n# Helper\n@docs printHttpError\n\n# Expect\n@docs expectJsonResponse, expectWhateverResponse, expectJsonResponse2, expectWhateverOkResult\n\n# Transformations\n@docs bool2Uri\n\n","unions":[{"name":"BodyResponse","comment":" BodyResponse\n","args":["a"],"cases":[["BodyResponse",["Http.Metadata","a"]]]},{"name":"HttpError","comment":" HttpError\n","args":["e"],"cases":[["TechnicalError",["String.String"]],["DomainError",["Perfimmo.Http.HttpRequest.BodyResponse e"]]]},{"name":"Request","comment":" Request\n","args":["a"],"cases":[["Get",["String.String","Http.Expect a"]],["Delete",["String.String","Http.Expect a"]],["Post",["String.String","Http.Body","Http.Expect a"]],["Put",["String.String","Http.Body","Http.Expect a"]],["Patch",["String.String","Http.Body","Http.Expect a"]]]}],"aliases":[{"name":"HttpResult","comment":" HttpResult\n","args":["e","a"],"type":"Result.Result (Perfimmo.Http.HttpRequest.HttpError e) (Perfimmo.Http.HttpRequest.BodyResponse a)"},{"name":"ResponseDecoder","comment":" ResponseDecoder\n","args":["e","a"],"type":"{ koDecoder : Json.Decode.Decoder e, okDecoder : Json.Decode.Decoder a }"}],"values":[{"name":"authRequest","comment":" authRequest\n","type":"Perfimmo.Http.RestNavigationLink.RestNavigationLink -> Http.Body -> Http.Expect a -> Platform.Cmd.Cmd a"},{"name":"bool2Uri","comment":" bool2Uri\n","type":"Basics.Bool -> String.String"},{"name":"expectJsonResponse","comment":" expectJsonResponse\n","type":"(Result.Result Http.Error ( Http.Metadata, a ) -> msg) -> Json.Decode.Decoder a -> Http.Expect msg"},{"name":"expectJsonResponse2","comment":"expectJsonResponse2\n","type":"(Perfimmo.Http.HttpRequest.HttpResult e a -> msg) -> Perfimmo.Http.HttpRequest.ResponseDecoder e a -> Http.Expect msg"},{"name":"expectWhateverOkResult","comment":" expectWhateverOkResult\n","type":"(Perfimmo.Http.HttpRequest.HttpResult e () -> msg) -> Json.Decode.Decoder e -> Http.Expect msg"},{"name":"expectWhateverResponse","comment":" expectWhateverResponse\n","type":"(Result.Result Http.Error Http.Metadata -> msg) -> Http.Expect msg"},{"name":"printHttpError","comment":" printHttpError\n","type":"Http.Error -> String.String"},{"name":"request","comment":" request\n","type":"Perfimmo.Http.RestNavigationLink.RestNavigationLink -> Http.Body -> Http.Expect a -> Perfimmo.Http.HttpRequest.Request a"},{"name":"withAuthReq","comment":" withAuthReq\n","type":"Perfimmo.Http.HttpRequest.Request a -> Platform.Cmd.Cmd a"}],"binops":[]},{"name":"Perfimmo.Http.NavigationLinkUtils","comment":" NavigationLinkUtils\n\n@docs findNavLink\n","unions":[],"aliases":[],"values":[{"name":"findNavLink","comment":" findNavLink\n","type":"String.String -> List.List Perfimmo.Http.RestNavigationLink.RestNavigationLink -> Maybe.Maybe Perfimmo.Http.RestNavigationLink.RestNavigationLink"}],"binops":[]},{"name":"Perfimmo.Http.RestAPIUtils","comment":" RestAPIUtils\n\n@docs  SeqAPIResult, CRUDResult, seqAPIResultJsonDecoder, crudResultJsonDecoder\n","unions":[],"aliases":[{"name":"CRUDResult","comment":" CRUDResult\n","args":[],"type":"{ uid : String.String }"},{"name":"SeqAPIResult","comment":" SeqAPIResult\n","args":["a"],"type":"{ result : List.List a, links : List.List Perfimmo.Http.RestNavigationLink.RestNavigationLink }"}],"values":[{"name":"crudResultJsonDecoder","comment":" crudResultJsonDecoder\n","type":"Json.Decode.Decoder Perfimmo.Http.RestAPIUtils.CRUDResult"},{"name":"seqAPIResultJsonDecoder","comment":" seqAPIResultJsonDecoder\n","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (Perfimmo.Http.RestAPIUtils.SeqAPIResult a)"}],"binops":[]},{"name":"Perfimmo.Http.RestNavigationLink","comment":" RestNavigationLink\n\n@docs  RestNavigationLink, setHref, setQueryParams, HttpVerb\n","unions":[{"name":"HttpVerb","comment":" HttpVerb\n","args":[],"cases":[["GET",[]],["POST",[]],["PATCH",[]],["DELETE",[]],["PUT",[]]]}],"aliases":[{"name":"RestNavigationLink","comment":" RestNavigationLink\n","args":[],"type":"{ rel : String.String, href : String.String, method : Perfimmo.Http.RestNavigationLink.HttpVerb }"}],"values":[{"name":"setHref","comment":" setHref\n","type":"Perfimmo.Http.RestNavigationLink.RestNavigationLink -> String.String -> Perfimmo.Http.RestNavigationLink.RestNavigationLink"},{"name":"setQueryParams","comment":" setQueryParams\n","type":"Perfimmo.Http.RestNavigationLink.RestNavigationLink -> Perfimmo.Collection.NonEmptyList.NEL ( String.String, String.String ) -> Perfimmo.Http.RestNavigationLink.RestNavigationLink"}],"binops":[]},{"name":"Perfimmo.Http.RestNavigationLinkDecoder","comment":" RestNavigationLinkDecoder\n\n@docs restNavigationLinksDecoder, restNavigationLinkDecoder\n","unions":[],"aliases":[],"values":[{"name":"restNavigationLinkDecoder","comment":" restNavigationLinkDecoder\n","type":"Json.Decode.Decoder Perfimmo.Http.RestNavigationLink.RestNavigationLink"},{"name":"restNavigationLinksDecoder","comment":" restNavigationLinksDecoder\n","type":"Json.Decode.Decoder (List.List Perfimmo.Http.RestNavigationLink.RestNavigationLink)"}],"binops":[]},{"name":"Perfimmo.Json.Decoder","comment":" Decoder\n\n@docs subDecoderByType\n","unions":[],"aliases":[],"values":[{"name":"subDecoderByType","comment":" subDecoderByType\n","type":"String.String -> (String.String -> Json.Decode.Decoder b) -> Json.Decode.Decoder b"}],"binops":[]},{"name":"Perfimmo.Json.Json","comment":" Json\n\n@docs cleanJson\n","unions":[],"aliases":[],"values":[{"name":"cleanJson","comment":" cleanJson\n","type":"Json.Value.JsonValue -> Json.Value.JsonValue"}],"binops":[]},{"name":"Perfimmo.Primitive.BoolUtils","comment":" BoolUtils\n\n@docs bool2StringFr\n","unions":[],"aliases":[],"values":[{"name":"bool2StringFr","comment":" bool2StringFr\n","type":"Basics.Bool -> String.String"}],"binops":[]},{"name":"Perfimmo.Primitive.CharUtils","comment":" CharUtils\n\n@docs greaterChar, lowerChar, greaterOrEqChar, lowerOrEqChar\n","unions":[],"aliases":[],"values":[{"name":"greaterChar","comment":" greaterChar\n","type":"String.String"},{"name":"greaterOrEqChar","comment":" greaterOrEqChar\n","type":"String.String"},{"name":"lowerChar","comment":" lowerChar\n","type":"String.String"},{"name":"lowerOrEqChar","comment":" lowerOrEqChar\n","type":"String.String"}],"binops":[]},{"name":"Perfimmo.Primitive.ExtendString","comment":" ExtendString\n\n@docs maybeStringToMaybeNonEmptyString, stringToNonEmptyString\n","unions":[],"aliases":[],"values":[{"name":"maybeStringToMaybeNonEmptyString","comment":" maybeStringToMaybeNonEmptyString\n","type":"Maybe.Maybe String.String -> Maybe.Maybe String.String"},{"name":"stringToNonEmptyString","comment":" stringToNonEmptyString\n","type":"String.String -> Maybe.Maybe String.String"}],"binops":[]}]