[
    {
        "name": "Auth0",
        "comment": " This library provides data types and helper functions for [Auth0](https://auth0.com)\n\n\n# Auth0 Basis\n\n@docs Endpoint, IdToken, UserID, Auth0Config\n\n\n# User Profile\n\n@docs Profile, OAuth2Identity, profileDecoder\n\n\n# Helpers\n\n@docs auth0AuthorizeURL, getAuthedUserProfile, updateUserMetaData\n\n",
        "unions": [],
        "aliases": [
            {
                "name": "Auth0Config",
                "comment": " A config record of Auth0\n",
                "args": [],
                "type": "{ endpoint : Endpoint, clientId : String }"
            },
            {
                "name": "Endpoint",
                "comment": " Auth0 Endpoint of Authentication API and Management API\n\ne.g. <https://your-auth0-app.auth0.com>\n\n",
                "args": [],
                "type": "String"
            },
            {
                "name": "IdToken",
                "comment": " The idToken returns from Auth0 authenticated result, it is usually in JSON\nWeb Token ([JWT](https://jwt.io)) format.\n",
                "args": [],
                "type": "String"
            },
            {
                "name": "OAuth2Identity",
                "comment": " The OAuth2 identity of the unified user profile. This usually tell the\nsocial account or database account linked with the unified user profile.\n",
                "args": [],
                "type": "{ connection : String, isSocial : Bool, provider : String, user_id : String }"
            },
            {
                "name": "Profile",
                "comment": " Auth0 unified user profile\n\nThe `user_metatdata` and `app_metadata` varies in different application.\nYou should define your own `user_metadata` and `app_metadata` records.\n\n",
                "args": [
                    "userMetaData",
                    "appMetaData"
                ],
                "type": "{ email : String, email_verified : Bool, created_at : Date, family_name : Maybe String, given_name : Maybe String, global_client_id : Maybe String, identities : List OAuth2Identity, locale : Maybe String, name : String, nickname : String, picture : String, user_id : UserID, user_metadata : Maybe userMetaData, app_metadata : Maybe appMetaData }"
            },
            {
                "name": "UserID",
                "comment": " Represent the Auth0 unified user ID\n",
                "args": [],
                "type": "String"
            }
        ],
        "values": [
            {
                "name": "auth0AuthorizeURL",
                "comment": " Create the URL to the login page\n\n    auth0AuthorizeURL :\n        Auth0Config\n        -> String -- responseType\n        -> String -- redirectURL\n        -> List String -- scopes\n        -> Maybe String -- connection\n        -> String\n\ne.g.\n\n    auth0AuthorizeURL\n        (Auth0Config \"https://my-app.auth0.com\" \"aBcD1234\")\n        \"token\"\n        \"https://my-app/\"\n        [ \"openid\", \"name\", \"email\" ]\n        (Just \"google-oauth2\")\n\n",
                "type": "Auth0Config -> String -> String -> List String -> Maybe String -> String"
            },
            {
                "name": "getAuthedUserProfile",
                "comment": " Get the Auth0 unified user profile which is represented by the `IdToken`\n",
                "type": "Endpoint -> IdToken -> Decoder profile -> Request profile"
            },
            {
                "name": "profileDecoder",
                "comment": " Auth0 unified user profile decoder\n\nThe `user_metatdata` and `app_metadata` varies in different application.\nYou should define your own `user_metadata` and `app_metadata` decoders.\n\n",
                "type": "Decoder a -> Decoder b -> Decoder (Profile a b)"
            },
            {
                "name": "updateUserMetaData",
                "comment": " Update the `user_metadata` in the Auth0 unified user profile\n",
                "type": "Endpoint -> IdToken -> UserID -> Value -> Decoder profile -> Request profile"
            }
        ],
        "binops": []
    }
]