[{"name":"Lamdera","comment":" backend\n\n@docs frontend, backend, sendToBackend, sendToFrontend, broadcast, onConnect, onDisconnect, clientConnected_, clientDisconnected_, ClientId, SessionId, Url, Document, Key, UrlRequest, log\n\n","unions":[],"aliases":[{"name":"ClientId","comment":" ","args":[],"type":"String.String"},{"name":"Document","comment":" Alias of elm/browser:Browser.Document\n","args":["msg"],"type":"Browser.Document msg"},{"name":"Key","comment":" Alias of elm/browser:Browser.Navigation.Key\n","args":[],"type":"Browser.Navigation.Key"},{"name":"SessionId","comment":" ","args":[],"type":"String.String"},{"name":"Url","comment":" Alias of elm/url:Url.Url\n","args":[],"type":"Url.Url"},{"name":"UrlRequest","comment":" Alias of elm/browser:Browser.UrlRequest\n","args":[],"type":"Browser.UrlRequest"}],"values":[{"name":"backend","comment":" Create a Lamdera backend application\n","type":"{ init : ( backendModel, Platform.Cmd.Cmd backendMsg ), update : backendMsg -> backendModel -> ( backendModel, Platform.Cmd.Cmd backendMsg ), updateFromFrontend : Lamdera.SessionId -> Lamdera.ClientId -> toBackend -> backendModel -> ( backendModel, Platform.Cmd.Cmd backendMsg ), subscriptions : backendModel -> Platform.Sub.Sub backendMsg } -> { init : ( backendModel, Platform.Cmd.Cmd backendMsg ), update : backendMsg -> backendModel -> ( backendModel, Platform.Cmd.Cmd backendMsg ), updateFromFrontend : Lamdera.SessionId -> Lamdera.ClientId -> toBackend -> backendModel -> ( backendModel, Platform.Cmd.Cmd backendMsg ), subscriptions : backendModel -> Platform.Sub.Sub backendMsg }"},{"name":"broadcast","comment":" Send a toFrontend msg to all currently connected clients\n","type":"toFrontend -> Platform.Cmd.Cmd backendMsg"},{"name":"clientConnected_","comment":" Internal only, do not use\n","type":"Lamdera.SessionId -> Lamdera.ClientId -> Platform.Cmd.Cmd msg"},{"name":"clientDisconnected_","comment":" Internal only, do not use\n","type":"Lamdera.SessionId -> Lamdera.ClientId -> Platform.Cmd.Cmd msg"},{"name":"frontend","comment":" Create a Lamdera frontend application\n","type":"{ init : Url.Url -> Browser.Navigation.Key -> ( model, Platform.Cmd.Cmd frontendMsg ), view : model -> Browser.Document frontendMsg, update : frontendMsg -> model -> ( model, Platform.Cmd.Cmd frontendMsg ), updateFromBackend : toFrontend -> model -> ( model, Platform.Cmd.Cmd frontendMsg ), subscriptions : model -> Platform.Sub.Sub frontendMsg, onUrlRequest : Browser.UrlRequest -> frontendMsg, onUrlChange : Lamdera.Url -> frontendMsg } -> { init : Lamdera.Url -> Browser.Navigation.Key -> ( model, Platform.Cmd.Cmd frontendMsg ), view : model -> Browser.Document frontendMsg, update : frontendMsg -> model -> ( model, Platform.Cmd.Cmd frontendMsg ), updateFromBackend : toFrontend -> model -> ( model, Platform.Cmd.Cmd frontendMsg ), subscriptions : model -> Platform.Sub.Sub frontendMsg, onUrlRequest : Browser.UrlRequest -> frontendMsg, onUrlChange : Url.Url -> frontendMsg }"},{"name":"log","comment":" Log a message to either the console (dev) or the application log (prod)\n","type":"String.String -> a -> a"},{"name":"onConnect","comment":" Subscribe to Frontend client connected events\n","type":"(Lamdera.SessionId -> Lamdera.ClientId -> backendMsg) -> Platform.Sub.Sub backendMsg"},{"name":"onDisconnect","comment":" Subscribe to Frontend client disconnected events\n","type":"(Lamdera.SessionId -> Lamdera.ClientId -> backendMsg) -> Platform.Sub.Sub backendMsg"},{"name":"sendToBackend","comment":" Send a toBackend msg to the Backend\n","type":"toBackend -> Platform.Cmd.Cmd frontendMsg"},{"name":"sendToFrontend","comment":" Send a toFrontend msg to the Frontend\n","type":"Lamdera.ClientId -> toFrontend -> Platform.Cmd.Cmd backendMsg"}],"binops":[]},{"name":"Lamdera.Debug","comment":" Lamdera.Debug\n\n@docs debugS, debugR, debugD\n@docs browserReload, Posix, every, now, posixToMillis\n@docs HttpError, task, Response, emptyBody, stringResolver, bytesResolver, handleJsonResponse, handleBytesResponse\n@docs urlProtocolToString\n\n","unions":[],"aliases":[{"name":"HttpError","comment":" Http.Error re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","args":[],"type":"Http.Error"},{"name":"Posix","comment":" Time.Posix re-exposure to avoid direct dep requirement on elm/time when starting out a new project\n","args":[],"type":"Time.Posix"},{"name":"Response","comment":" Http.Response re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","args":["body"],"type":"Http.Response body"}],"values":[{"name":"browserReload","comment":" Browser.Navigation.reload re-exposure to avoid direct dep requirement on elm/browser when starting out a new project\n","type":"Platform.Cmd.Cmd msg"},{"name":"bytesResolver","comment":" Http.bytesResolver re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","type":"(Http.Response Bytes.Bytes -> Result.Result x a) -> Http.Resolver x a"},{"name":"debugD","comment":" Temporary LocalDev POC support. Will be removed\n","type":"String.String -> Platform.Cmd.Cmd msg"},{"name":"debugR","comment":" Temporary LocalDev POC support. Will be removed\n","type":"String.String -> a -> Maybe.Maybe a"},{"name":"debugS","comment":" Temporary LocalDev POC support. Will be removed\n","type":"String.String -> a -> a"},{"name":"emptyBody","comment":" Http.emptyBody re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","type":"Http.Body"},{"name":"every","comment":" Time.every reload re-exposure to avoid direct dep requirement on elm/time when starting out a new project\n","type":"Basics.Float -> (Time.Posix -> msg) -> Platform.Sub.Sub msg"},{"name":"handleBytesResponse","comment":" Helper for handling a Bytes response\n","type":"Http.Response Bytes.Bytes -> Result.Result Http.Error Bytes.Bytes"},{"name":"handleJsonResponse","comment":" Helper for handling a JSON response\n","type":"Json.Decode.Decoder a -> Http.Response String.String -> Result.Result Http.Error a"},{"name":"now","comment":" Time.now reload re-exposure to avoid direct dep requirement on elm/time when starting out a new project\n","type":"Task.Task x Time.Posix"},{"name":"posixToMillis","comment":" Time.posixToMillis reload re-exposure to avoid direct dep requirement on elm/time when starting out a new project\n","type":"Time.Posix -> Basics.Int"},{"name":"stringResolver","comment":" Http.stringResolver re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","type":"(Http.Response String.String -> Result.Result x a) -> Http.Resolver x a"},{"name":"task","comment":" Http.task re-exposure to avoid direct dep requirement on elm/http when starting out a new project\n","type":"{ method : String.String, headers : List.List Http.Header, url : String.String, body : Http.Body, resolver : Http.Resolver x a, timeout : Maybe.Maybe Basics.Float } -> Task.Task x a"},{"name":"urlProtocolToString","comment":" Helper for extracting Url.Protocol to a string\n","type":"Url.Protocol -> String.String"}],"binops":[]},{"name":"Lamdera.Json","comment":" JSON re-exports for runtime to avoid requirement for explicit elm/json dependency in user apps\n\n@docs Value, int, string, list, object, null, errorToString, decodeValue, decoderInt, decoderString, decoderList, decoderValue, decoderBytes, succeed, Decoder, field, map, map2, decodeString\n\n","unions":[],"aliases":[{"name":"Decoder","comment":" ","args":["a"],"type":"Json.Decode.Decoder a"},{"name":"Value","comment":" ","args":[],"type":"Json.Encode.Value"}],"values":[{"name":"decodeString","comment":" ","type":"Json.Decode.Decoder a -> String.String -> Result.Result Json.Decode.Error a"},{"name":"decodeValue","comment":" ","type":"Json.Decode.Decoder a -> Json.Decode.Value -> Result.Result Json.Decode.Error a"},{"name":"decoderBytes","comment":" ","type":"Json.Decode.Decoder Bytes.Bytes"},{"name":"decoderInt","comment":" ","type":"Json.Decode.Decoder Basics.Int"},{"name":"decoderList","comment":" ","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (List.List a)"},{"name":"decoderString","comment":" ","type":"Json.Decode.Decoder String.String"},{"name":"decoderValue","comment":" ","type":"Json.Decode.Decoder Json.Decode.Value"},{"name":"errorToString","comment":" ","type":"Json.Decode.Error -> String.String"},{"name":"field","comment":" ","type":"String.String -> Json.Decode.Decoder a -> Json.Decode.Decoder a"},{"name":"int","comment":" ","type":"Basics.Int -> Json.Encode.Value"},{"name":"list","comment":" ","type":"(a -> Json.Encode.Value) -> List.List a -> Json.Encode.Value"},{"name":"map","comment":" ","type":"(a -> value) -> Json.Decode.Decoder a -> Json.Decode.Decoder value"},{"name":"map2","comment":" ","type":"(a -> b -> value) -> Json.Decode.Decoder a -> Json.Decode.Decoder b -> Json.Decode.Decoder value"},{"name":"null","comment":" ","type":"Json.Encode.Value"},{"name":"object","comment":" ","type":"List.List ( String.String, Json.Encode.Value ) -> Json.Encode.Value"},{"name":"string","comment":" ","type":"String.String -> Json.Encode.Value"},{"name":"succeed","comment":" ","type":"a -> Json.Decode.Decoder a"}],"binops":[]}]