[{"name":"Webnative","comment":"\n\n@docs Foundation, program, attemptTask\n\n","unions":[],"aliases":[{"name":"Foundation","comment":" ","args":[],"type":"{ fileSystem : Maybe.Maybe Webnative.FileSystem.FileSystem, program : Webnative.Program.Program, session : Maybe.Maybe Webnative.Session.Session }"}],"values":[{"name":"attemptTask","comment":" Alias for `Webnative.Task.attempt`.\n","type":"{ error : Webnative.Error.Error -> msg, ok : value -> msg } -> Webnative.Task.Task value -> Platform.Cmd.Cmd msg"},{"name":"program","comment":" ","type":"Webnative.Configuration.Configuration -> Webnative.Task.Task Webnative.Foundation"}],"binops":[]},{"name":"Webnative.AppInfo","comment":"\n\n@docs AppInfo, appId, encode\n\n","unions":[],"aliases":[{"name":"AppInfo","comment":" ","args":[],"type":"{ creator : String.String, name : String.String }"}],"values":[{"name":"appId","comment":" ","type":"Webnative.AppInfo.AppInfo -> String.String"},{"name":"encode","comment":" ","type":"Webnative.AppInfo.AppInfo -> Json.Encode.Value"}],"binops":[]},{"name":"Webnative.Auth","comment":"\n\n@docs isUsernameAvailable, isUsernameValid, register, session, sessionWithFileSystem\n\n","unions":[],"aliases":[],"values":[{"name":"isUsernameAvailable","comment":" ","type":"Webnative.Program.Program -> String.String -> Webnative.Task.Task Basics.Bool"},{"name":"isUsernameValid","comment":" ","type":"Webnative.Program.Program -> String.String -> Webnative.Task.Task Basics.Bool"},{"name":"register","comment":" ","type":"Webnative.Program.Program -> { email : Maybe.Maybe String.String, username : String.String } -> Webnative.Task.Task { success : Basics.Bool }"},{"name":"session","comment":" ","type":"Webnative.Program.Program -> Webnative.Task.Task (Maybe.Maybe Webnative.Session.Session)"},{"name":"sessionWithFileSystem","comment":" ","type":"Webnative.Program.Program -> Webnative.Task.Task (Maybe.Maybe { fileSystem : Webnative.FileSystem.FileSystem, session : Webnative.Session.Session })"}],"binops":[]},{"name":"Webnative.CID","comment":"\n\n@docs CID, decoder, fromString, toString\n\n","unions":[{"name":"CID","comment":" ","args":[],"cases":[]}],"aliases":[],"values":[{"name":"decoder","comment":" ","type":"Json.Decode.Decoder Webnative.CID.CID"},{"name":"fromString","comment":" ","type":"String.String -> Webnative.CID.CID"},{"name":"toString","comment":" ","type":"Webnative.CID.CID -> String.String"}],"binops":[]},{"name":"Webnative.Capabilities","comment":"\n\n@docs collect, request, session\n\n","unions":[],"aliases":[],"values":[{"name":"collect","comment":" ","type":"Webnative.Program.Program -> Webnative.Task.Task { username : Maybe.Maybe String.String }"},{"name":"request","comment":" ","type":"Webnative.Program.Program -> Webnative.Task.Task ()"},{"name":"session","comment":" ","type":"Webnative.Program.Program -> Webnative.Task.Task (Maybe.Maybe Webnative.Session.Session)"}],"binops":[]},{"name":"Webnative.Configuration","comment":"\n\n@docs Configuration, FileSystemConfiguration, encode, encodeFileSystemConfiguration, fromNamespace\n\n","unions":[],"aliases":[{"name":"Configuration","comment":" ","args":[],"type":"{ namespace : Webnative.Namespace.Namespace, debug : Maybe.Maybe Basics.Bool, fileSystem : Maybe.Maybe Webnative.Configuration.FileSystemConfiguration, permissions : Maybe.Maybe Webnative.Permissions.Permissions }"},{"name":"FileSystemConfiguration","comment":" ","args":[],"type":"{ loadImmediately : Maybe.Maybe Basics.Bool, version : Maybe.Maybe String.String }"}],"values":[{"name":"encode","comment":" ","type":"Webnative.Configuration.Configuration -> Json.Encode.Value"},{"name":"encodeFileSystemConfiguration","comment":" ","type":"Webnative.Configuration.FileSystemConfiguration -> Json.Encode.Value"},{"name":"fromNamespace","comment":" ","type":"Webnative.Namespace.Namespace -> Webnative.Configuration.Configuration"}],"binops":[]},{"name":"Webnative.Error","comment":"\n\n@docs Error, decoder, fromString, fromTaskPort\n\n","unions":[{"name":"Error","comment":" ","args":[],"cases":[["InsecureContext",[]],["JavascriptError",["String.String"]],["UnsupportedBrowser",[]]]}],"aliases":[],"values":[{"name":"decoder","comment":" ","type":"Json.Decode.Decoder Webnative.Error.Error"},{"name":"fromString","comment":" ","type":"String.String -> Webnative.Error.Error"},{"name":"fromTaskPort","comment":" ","type":"TaskPort.Error -> Webnative.Error.Error"}],"binops":[]},{"name":"Webnative.FileSystem","comment":"\n\n@docs AssociatedIdentity, Base, Entry, FileSystem, acceptShare, account, add, cat, deactivate, decoder, directoryEntriesDecoder, encode, exists, historyStep, load, ls, mkdir, mv, publish, read, readUtf8, ref, rm, sharePrivate, symlink, withRef, withRefSplat, write, writeUtf8\n\n","unions":[{"name":"Base","comment":" Base of the WNFS action.\n","args":[],"cases":[["AppData",["Webnative.AppInfo.AppInfo"]],["Private",[]],["Public",[]]]},{"name":"FileSystem","comment":" ","args":[],"cases":[]}],"aliases":[{"name":"AssociatedIdentity","comment":" ","args":[],"type":"{ rootDID : String.String, username : Maybe.Maybe String.String }"},{"name":"Entry","comment":" Directory `Entry`.\n","args":[],"type":"{ cid : Webnative.CID.CID, name : String.String, kind : Webnative.Path.Kind, size : Basics.Int }"}],"values":[{"name":"acceptShare","comment":" ","type":"Webnative.FileSystem.FileSystem -> { shareId : String.String, sharedBy : String.String } -> Webnative.Task.Task ()"},{"name":"account","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.Task.Task Webnative.FileSystem.AssociatedIdentity"},{"name":"add","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Bytes.Bytes -> Webnative.Task.Task ()"},{"name":"cat","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Webnative.Task.Task Bytes.Bytes"},{"name":"deactivate","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.Task.Task ()"},{"name":"decoder","comment":" ","type":"Json.Decode.Decoder Webnative.FileSystem.FileSystem"},{"name":"directoryEntriesDecoder","comment":" ","type":"Json.Decode.Decoder (List.List Webnative.FileSystem.Entry)"},{"name":"encode","comment":" ","type":"Webnative.FileSystem.FileSystem -> Json.Encode.Value"},{"name":"exists","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Webnative.Task.Task Basics.Bool"},{"name":"historyStep","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.Task.Task ()"},{"name":"load","comment":" ","type":"Webnative.Program.Program -> { username : String.String } -> Webnative.Task.Task Webnative.FileSystem.FileSystem"},{"name":"ls","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.Directory -> Webnative.Task.Task (List.List Webnative.FileSystem.Entry)"},{"name":"mkdir","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.Directory -> Webnative.Task.Task ()"},{"name":"mv","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> { from : Webnative.Path.Path k, to : Webnative.Path.Path k } -> Webnative.Task.Task ()"},{"name":"publish","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.Task.Task Webnative.CID.CID"},{"name":"read","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Webnative.Task.Task Bytes.Bytes"},{"name":"readUtf8","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Webnative.Task.Task String.String"},{"name":"ref","comment":" ","type":"Webnative.FileSystem.FileSystem -> Json.Encode.Value"},{"name":"rm","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path k -> Webnative.Task.Task ()"},{"name":"sharePrivate","comment":" ","type":"Webnative.FileSystem.FileSystem -> List.List (Webnative.Path.Path k) -> { shareWith : List.List String.String } -> Webnative.Task.Task ()"},{"name":"symlink","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> { at : Webnative.Path.Path Webnative.Path.Directory, name : String.String, referringTo : Webnative.Path.Path k } -> Webnative.Task.Task ()"},{"name":"withRef","comment":" ","type":"Webnative.FileSystem.FileSystem -> Json.Encode.Value -> Json.Encode.Value"},{"name":"withRefSplat","comment":" ","type":"Webnative.FileSystem.FileSystem -> Json.Encode.Value -> Json.Encode.Value"},{"name":"write","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> Bytes.Bytes -> Webnative.Task.Task ()"},{"name":"writeUtf8","comment":" ","type":"Webnative.FileSystem.FileSystem -> Webnative.FileSystem.Base -> Webnative.Path.Path Webnative.Path.File -> String.String -> Webnative.Task.Task ()"}],"binops":[]},{"name":"Webnative.Namespace","comment":"\n\n@docs Namespace, fromAppInfo, fromString, toString\n\n","unions":[{"name":"Namespace","comment":" ","args":[],"cases":[]}],"aliases":[],"values":[{"name":"fromAppInfo","comment":" ","type":"Webnative.AppInfo.AppInfo -> Webnative.Namespace.Namespace"},{"name":"fromString","comment":" ","type":"String.String -> Webnative.Namespace.Namespace"},{"name":"toString","comment":" ","type":"Webnative.Namespace.Namespace -> String.String"}],"binops":[]},{"name":"Webnative.Path","comment":"\n\n\n# Paths\n\n@docs Path, Directory, File, Encapsulated, Kind\n\n\n# Creation\n\n@docs directory, file, root\n\n\n# POSIX\n\n@docs fromPosix, toPosix\n\n\n# Encapsulation\n\n@docs encapsulate\n\n\n# Functions\n\n@docs kind, map, unwrap\n\n\n# Miscellaneous\n\n@docs encode\n\n","unions":[{"name":"Directory","comment":" 👻 Directory\n","args":[],"cases":[]},{"name":"Encapsulated","comment":" 👻 Encapsulated\n","args":[],"cases":[]},{"name":"File","comment":" 👻 File\n","args":[],"cases":[]},{"name":"Kind","comment":" ","args":[],"cases":[["Directory",[]],["File",[]]]},{"name":"Path","comment":" Path type.\n\nThis is used with the [phantom 👻 types](#phantom-types).\n\n    directoryPath : Path Directory\n\n    filePath : Path File\n\n    encapsulatedPath : Path Encapsulated\n\n","args":["t"],"cases":[]}],"aliases":[],"values":[{"name":"directory","comment":" Create a directory path.\n\n    directory [ \"Audio\", \"Playlists\" ]\n\n","type":"List.List String.String -> Webnative.Path.Path Webnative.Path.Directory"},{"name":"encapsulate","comment":" Encapsulate a path.\n","type":"Webnative.Path.Path t -> Webnative.Path.Path Webnative.Path.Encapsulated"},{"name":"encode","comment":" Encode to JSON.\n\n    >>> import Json.Encode\n\n    >>> [ \"foo\" ]\n    ..>   |> directory\n    ..>   |> encode\n    ..>   |> Json.Encode.encode 0\n    \"{\\\"directory\\\":[\\\"foo\\\"]}\"\n\n    >>> [ \"bar\" ]\n    ..>   |> file\n    ..>   |> encode\n    ..>   |> Json.Encode.encode 0\n    \"{\\\"file\\\":[\\\"bar\\\"]}\"\n\n","type":"Webnative.Path.Path t -> Json.Encode.Value"},{"name":"file","comment":" Create a file path.\n\n    file [ \"Document\", \"invoice.pdf\" ]\n\n","type":"List.List String.String -> Webnative.Path.Path Webnative.Path.File"},{"name":"fromPosix","comment":" Convert a POSIX formatted string to a path.\n\nThis will return a `Encapsulated` path. To get a path of the type `Path Directory` or `Path File`, use the functions in the `Webnative.Path.Encapsulated` module.\n\n    >>> import Webnative.Path.Encapsulated\n\n    >>> \"foo/bar/\"\n    ..>   |> fromPosix\n    ..>   |> Webnative.Path.Encapsulated.toDirectory\n    Just (directory [ \"foo\", \"bar\" ])\n\n    >>> \"foo/bar\"\n    ..>   |> fromPosix\n    ..>   |> Webnative.Path.Encapsulated.toFile\n    Just (file [ \"foo\", \"bar\" ])\n\n","type":"String.String -> Webnative.Path.Path Webnative.Path.Encapsulated"},{"name":"kind","comment":" Get the path kind.\n\n    >>> kind (directory [])\n    Directory\n\n    >>> kind (file [])\n    File\n\n    Even if a path is encapsulated,\n    you can still check the kind of path it is.\n\n    >>> kind (encapsulate <| directory [])\n    Directory\n\n    >>> kind (encapsulate <| file [])\n    File\n\n","type":"Webnative.Path.Path t -> Webnative.Path.Kind"},{"name":"map","comment":" Map.\n","type":"(List.List String.String -> List.List String.String) -> Webnative.Path.Path t -> Webnative.Path.Path t"},{"name":"root","comment":" Root directory.\n","type":"Webnative.Path.Path Webnative.Path.Directory"},{"name":"toPosix","comment":" Convert a path to the POSIX format.\n\n    >>> toPosix (directory [ \"foo\", \"bar\"])\n    \"foo/bar/\"\n\n    >>> toPosix (file [ \"foo\", \"bar\"])\n    \"foo/bar\"\n\n","type":"Webnative.Path.Path t -> String.String"},{"name":"unwrap","comment":" Get the path parts.\n\n    >>> unwrap (directory [ \"foo\", \"bar\" ])\n    [ \"foo\", \"bar\" ]\n\n    >>> unwrap (file [ \"foo\", \"bar\" ])\n    [ \"foo\", \"bar\" ]\n\n","type":"Webnative.Path.Path t -> List.List String.String"}],"binops":[]},{"name":"Webnative.Path.Encapsulated","comment":"\n\n\n# Encapsulated Paths\n\n@docs toDirectory, toFile\n\n","unions":[],"aliases":[],"values":[{"name":"toDirectory","comment":" Remove the membrane and extract a `Path Directory`.\n","type":"Webnative.Path.Path Webnative.Path.Encapsulated -> Maybe.Maybe (Webnative.Path.Path Webnative.Path.Directory)"},{"name":"toFile","comment":" Remove the membrane and extract a `Path File`.\n","type":"Webnative.Path.Path Webnative.Path.Encapsulated -> Maybe.Maybe (Webnative.Path.Path Webnative.Path.File)"}],"binops":[]},{"name":"Webnative.Permissions","comment":"\n\n@docs BranchFileSystemPermissions, FileSystemPermissions, Permissions, encode, encodeFileSystemPermissions, flattenPermissions\n\n","unions":[],"aliases":[{"name":"BranchFileSystemPermissions","comment":" Filesystem permissions for a branch.\n\nThis is reused for the private and public permissions.\n\n","args":[],"type":"{ directories : List.List (Webnative.Path.Path Webnative.Path.Directory), files : List.List (Webnative.Path.Path Webnative.Path.File) }"},{"name":"FileSystemPermissions","comment":" Filesystem permissions.\n\n    ```elm\n    import Webnative.Path as Path\n\n    { private =\n        { directories = [ Path.directory [ \"Audio\", \"Mixtapes\" ] ]\n        , files = [ Path.file [ \"Audio\", \"Playlists\", \"Jazz.json\" ] ]\n        }\n    , public =\n        { directories = []\n        , files = []\n        }\n    }\n    ```\n\n","args":[],"type":"{ private : Webnative.Permissions.BranchFileSystemPermissions, public : Webnative.Permissions.BranchFileSystemPermissions }"},{"name":"Permissions","comment":" Permissions to ask the user.\nSee [`AppPermissions`](#AppPermissions) and [`FileSystemPermissions`](#FileSystemPermissions) on how to use these.\n","args":[],"type":"{ app : Maybe.Maybe Webnative.AppInfo.AppInfo, fs : Maybe.Maybe Webnative.Permissions.FileSystemPermissions }"}],"values":[{"name":"encode","comment":" ","type":"Webnative.Permissions.Permissions -> Json.Encode.Value"},{"name":"encodeFileSystemPermissions","comment":" ","type":"Webnative.Permissions.FileSystemPermissions -> Json.Encode.Value"},{"name":"flattenPermissions","comment":" ","type":"Webnative.Permissions.Permissions -> Maybe.Maybe Webnative.Permissions.Permissions"}],"binops":[]},{"name":"Webnative.Program","comment":"\n\n@docs Program, decoder, encode, ref, withRef, withRefSplat\n\n","unions":[{"name":"Program","comment":" ","args":[],"cases":[]}],"aliases":[],"values":[{"name":"decoder","comment":" ","type":"Json.Decode.Decoder Webnative.Program.Program"},{"name":"encode","comment":" ","type":"Webnative.Program.Program -> Json.Encode.Value"},{"name":"ref","comment":" ","type":"Webnative.Program.Program -> Json.Encode.Value"},{"name":"withRef","comment":" ","type":"Webnative.Program.Program -> Json.Encode.Value -> Json.Encode.Value"},{"name":"withRefSplat","comment":" ","type":"Webnative.Program.Program -> Json.Encode.Value -> Json.Encode.Value"}],"binops":[]},{"name":"Webnative.Session","comment":"\n\n@docs Session, decoder\n\n","unions":[],"aliases":[{"name":"Session","comment":" ","args":[],"type":"{ kind : String.String, username : String.String }"}],"values":[{"name":"decoder","comment":" ","type":"Json.Decode.Decoder Webnative.Session.Session"}],"binops":[]},{"name":"Webnative.Task","comment":"\n\n@docs Task, attempt\n\n","unions":[],"aliases":[{"name":"Task","comment":" ","args":["a"],"type":"Task.Task Webnative.Error.Error a"}],"values":[{"name":"attempt","comment":" ","type":"{ error : Webnative.Error.Error -> msg, ok : value -> msg } -> Webnative.Task.Task value -> Platform.Cmd.Cmd msg"}],"binops":[]}]