[{"name":"Firestore","comment":" A library to have your app interact with Firestore in Elm\n\n@docs Firestore, init\n\n@docs withCollection, withConfig\n\n\n# CRUDs\n\n@docs Document, get, list, Draft, draft, create, patch, delete\n\n\n# Error\n\n@docs Error, FirestoreError\n\n\n# Transaction\n\n@docs Transaction, CommitTime, begin, commit, update\n\n","unions":[{"name":"Draft","comment":" A type for a document before persisted on Firestore.\n","args":[],"cases":[]},{"name":"Error","comment":" An error type\n\nThis type is available in order to disregard type of errors between protocol related errors as Http\\_ or backend related errors as Response.\n\n","args":[],"cases":[["Http_",["Http.Error"]],["Response",["Firestore.FirestoreError"]]]},{"name":"Firestore","comment":" Data type for Firestore\n","args":[],"cases":[]},{"name":"Transaction","comment":" Data type for Transaction\n","args":[],"cases":[]}],"aliases":[{"name":"CommitTime","comment":" A time transaction commited at\n","args":[],"type":"Time.Posix"},{"name":"Document","comment":" A record structure for a document fetched from Firestore.\n","args":["a"],"type":"{ name : String.String, fields : a, createTime : Time.Posix, updateTime : Time.Posix }"},{"name":"FirestoreError","comment":" Data structure for errors from Firestore\n","args":[],"type":"{ code : Basics.Int, message : String.String, status : String.String }"}],"values":[{"name":"begin","comment":" Starts a new transaction.\n","type":"Firestore.Firestore -> Task.Task Firestore.Error Firestore.Transaction"},{"name":"commit","comment":" Commits a transaction, while optionally updating documents.\n\nOnly `readWrite` transaction is supported.\n\n","type":"Firestore.Transaction -> Firestore.Firestore -> Task.Task Firestore.Error Firestore.CommitTime"},{"name":"create","comment":" Creates a new document.\n","type":"Json.Decode.Decoder a -> Firestore.Draft -> Firestore.Firestore -> Task.Task Firestore.Error (Firestore.Document a)"},{"name":"delete","comment":" Deletes a document.\n","type":"Firestore.Firestore -> Task.Task Firestore.Error ()"},{"name":"draft","comment":" Creates a new document for `create` or `patch`.\n","type":"List.List ( String.String, Firestore.Internals.Field.Field ) -> Firestore.Draft"},{"name":"get","comment":" Gets a single document.\n","type":"Json.Decode.Decoder a -> Firestore.Firestore -> Task.Task Firestore.Error (Firestore.Document a)"},{"name":"init","comment":" Builds a new Firestore connection with Config\n","type":"Firestore.Config.Config -> Firestore.Firestore"},{"name":"list","comment":" Lists documents.\n","type":"Json.Decode.Decoder a -> Firestore.Firestore -> Task.Task Firestore.Error (List.List (Firestore.Document a))"},{"name":"patch","comment":" Updates or inserts a document.\n","type":"Json.Decode.Decoder a -> Firestore.Draft -> Firestore.Firestore -> Task.Task Firestore.Error (Firestore.Document a)"},{"name":"update","comment":" Adds a new update into the transaction\n","type":"Firestore.Draft -> Firestore.Transaction -> Firestore.Transaction"},{"name":"withCollection","comment":" Drills down document paths with a specific path name.\n\nThis function is aimed to be chanind with pipeline operators in order to build up document path.\n\n    firestore\n        |> Firestore.collection \"users\"\n        |> Firestore.collection \"items\"\n        |> Firestore.collection \"tags\"\n        |> Firestore.get\n        |> Task.attempt GotUserItemTags\n\nOf course, you can make it a single string as well\n\n    firestore\n        |> Firestore.collection \"users/items/tags\"\n        |> Firestore.get\n        |> Task.attempt GotUserItemTags\n\n","type":"String.String -> Firestore.Firestore -> Firestore.Firestore"},{"name":"withConfig","comment":" Updates configuration\n","type":"Firestore.Config.Config -> Firestore.Firestore -> Firestore.Firestore"}],"binops":[]},{"name":"Firestore.Config","comment":" Configuration types for Firestore\n\n@docs Config, new, endpoint, httpHeader\n\n@docs withAuthorization, withDatabase\n\n","unions":[{"name":"Config","comment":" Data type for Firestore configuration\n\nThis type internally has all information which is required to send requests to Firestore through REST API.\n\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"endpoint","comment":" Builds an endpoint string without path\n","type":"String.String -> Firestore.Config.Config -> String.String"},{"name":"httpHeader","comment":" Extracts authorization with bearer prefix as `Http.Header`.\n","type":"Firestore.Config.Config -> List.List Http.Header"},{"name":"new","comment":" Creates a new Config\n","type":"{ apiKey : String.String, project : String.String } -> Firestore.Config.Config"},{"name":"withAuthorization","comment":" Specifies authorization header.\n","type":"String.String -> Firestore.Config.Config -> Firestore.Config.Config"},{"name":"withDatabase","comment":" Specifies database ID to connect to.\n","type":"String.String -> Firestore.Config.Config -> Firestore.Config.Config"}],"binops":[]},{"name":"Firestore.Decode","comment":" Decoders for Firestore\n\n@docs bool, bytes, int, string, list, dict, maybe, timestamp\n\n","unions":[],"aliases":[],"values":[{"name":"bool","comment":" ","type":"Json.Decode.Decoder Basics.Bool"},{"name":"bytes","comment":" ","type":"Json.Decode.Decoder String.String"},{"name":"dict","comment":" ","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (Dict.Dict String.String a)"},{"name":"int","comment":" ","type":"Json.Decode.Decoder Basics.Int"},{"name":"list","comment":" ","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (List.List a)"},{"name":"maybe","comment":" ","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (Maybe.Maybe a)"},{"name":"string","comment":" ","type":"Json.Decode.Decoder String.String"},{"name":"timestamp","comment":" ","type":"Json.Decode.Decoder Time.Posix"}],"binops":[]},{"name":"Firestore.Encode","comment":" Encoders for Firestore\n\n@docs bool, bytes, int, string, list, dict, maybe, timestamp\n\n","unions":[],"aliases":[],"values":[{"name":"bool","comment":" ","type":"Basics.Bool -> Firestore.Internals.Field.Field"},{"name":"bytes","comment":" ","type":"String.String -> Firestore.Internals.Field.Field"},{"name":"dict","comment":" ","type":"Dict.Dict String.String a -> (a -> Firestore.Internals.Field.Field) -> Firestore.Internals.Field.Field"},{"name":"int","comment":" ","type":"Basics.Int -> Firestore.Internals.Field.Field"},{"name":"list","comment":" ","type":"List.List a -> (a -> Firestore.Internals.Field.Field) -> Firestore.Internals.Field.Field"},{"name":"maybe","comment":" ","type":"Maybe.Maybe ( a, a -> Json.Encode.Value ) -> Firestore.Internals.Field.Field"},{"name":"string","comment":" ","type":"String.String -> Firestore.Internals.Field.Field"},{"name":"timestamp","comment":" ","type":"Time.Posix -> Firestore.Internals.Field.Field"}],"binops":[]},{"name":"Firestore.Types.Geopoint","comment":" Geopoint data type for Firestore\n\n@docs Geopoint, new, latitude, longitude\n\n@docs encode, decode\n\n","unions":[{"name":"Geopoint","comment":" ","args":[],"cases":[]}],"aliases":[],"values":[{"name":"decode","comment":" ","type":"Json.Decode.Decoder Firestore.Types.Geopoint.Geopoint"},{"name":"encode","comment":" ","type":"Firestore.Types.Geopoint.Geopoint -> Firestore.Internals.Field.Field"},{"name":"latitude","comment":" ","type":"Firestore.Types.Geopoint.Geopoint -> Basics.Int"},{"name":"longitude","comment":" ","type":"Firestore.Types.Geopoint.Geopoint -> Basics.Int"},{"name":"new","comment":" ","type":"{ latitude : Basics.Int, longitude : Basics.Int } -> Firestore.Types.Geopoint.Geopoint"}],"binops":[]},{"name":"Firestore.Types.Reference","comment":" Reference data type for Firestore\n\n@docs Reference, new\n\n@docs encode, decode\n\n","unions":[{"name":"Reference","comment":" ","args":[],"cases":[]}],"aliases":[],"values":[{"name":"decode","comment":" ","type":"Json.Decode.Decoder Firestore.Types.Reference.Reference"},{"name":"encode","comment":" ","type":"Firestore.Types.Reference.Reference -> Firestore.Internals.Field.Field"},{"name":"new","comment":" ","type":"String.String -> Firestore.Types.Reference.Reference"}],"binops":[]}]