-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | HTTP cookie parsing and rendering
--
-- Hackage documentation generation is not reliable. For up to date
-- documentation, please see:
-- https://www.stackage.org/package/cookie.
@package cookie
@version 0.4.4
module Web.Cookie
-- | Data type representing the key-value pair to use for a cookie, as well
-- as configuration options for it.
--
--
Creating a SetCookie
--
-- SetCookie does not export a constructor; instead, use
-- defaultSetCookie and override values (see
-- http://www.yesodweb.com/book/settings-types for details):
--
--
-- import Web.Cookie
-- :set -XOverloadedStrings
-- let cookie = defaultSetCookie { setCookieName = "cookieName", setCookieValue = "cookieValue" }
--
--
-- Cookie Configuration
--
-- Cookies have several configuration options; a brief summary of each
-- option is given below. For more information, see RFC 6265 or
-- Wikipedia.
data SetCookie
-- | The name of the cookie. Default value: "name"
setCookieName :: SetCookie -> ByteString
-- | The value of the cookie. Default value: "value"
setCookieValue :: SetCookie -> ByteString
-- | The URL path for which the cookie should be sent. Default value:
-- Nothing (The browser defaults to the path of the request that
-- sets the cookie).
setCookiePath :: SetCookie -> Maybe ByteString
-- | The time at which to expire the cookie. Default value:
-- Nothing (The browser will default to expiring a cookie when
-- the browser is closed).
setCookieExpires :: SetCookie -> Maybe UTCTime
-- | The maximum time to keep the cookie, in seconds. Default value:
-- Nothing (The browser defaults to expiring a cookie when the
-- browser is closed).
setCookieMaxAge :: SetCookie -> Maybe DiffTime
-- | The domain for which the cookie should be sent. Default value:
-- Nothing (The browser defaults to the current domain).
setCookieDomain :: SetCookie -> Maybe ByteString
-- | Marks the cookie as "HTTP only", i.e. not accessible from Javascript.
-- Default value: False
setCookieHttpOnly :: SetCookie -> Bool
-- | Instructs the browser to only send the cookie over HTTPS. Default
-- value: False
setCookieSecure :: SetCookie -> Bool
-- | Marks the cookie as "same site", i.e. should not be sent with
-- cross-site requests. Default value: Nothing
setCookieSameSite :: SetCookie -> Maybe SameSiteOption
-- | Data type representing the options for a SameSite cookie
data SameSiteOption
-- | Directs the browser to send the cookie for safe requests (e.g.
-- GET), but not for unsafe ones (e.g. POST)
sameSiteLax :: SameSiteOption
-- | Directs the browser to not send the cookie for any cross-site
-- request, including e.g. a user clicking a link in their email to open
-- a page on your site.
sameSiteStrict :: SameSiteOption
parseSetCookie :: ByteString -> SetCookie
renderSetCookie :: SetCookie -> Builder
-- | A minimal SetCookie. All fields are Nothing or
-- False except setCookieName = "name" and
-- setCookieValue = "value". You need this to construct a
-- SetCookie, because it does not export a constructor.
-- Equivalently, you may use def.
defaultSetCookie :: SetCookie
-- | The default value for this type.
def :: Default a => a
type Cookies = [(ByteString, ByteString)]
-- | Decode the value of a "Cookie" request header into key/value pairs.
parseCookies :: ByteString -> Cookies
renderCookies :: Cookies -> Builder
-- | Textual cookies. Functions assume UTF8 encoding.
type CookiesText = [(Text, Text)]
parseCookiesText :: ByteString -> CookiesText
renderCookiesText :: CookiesText -> Builder
expiresFormat :: String
-- | Format a UTCTime for a cookie.
formatCookieExpires :: UTCTime -> ByteString
parseCookieExpires :: ByteString -> Maybe UTCTime
instance GHC.Show.Show Web.Cookie.SetCookie
instance GHC.Classes.Eq Web.Cookie.SetCookie
instance GHC.Classes.Eq Web.Cookie.SameSiteOption
instance GHC.Show.Show Web.Cookie.SameSiteOption
instance Control.DeepSeq.NFData Web.Cookie.SetCookie
instance Data.Default.Class.Default Web.Cookie.SetCookie
instance Control.DeepSeq.NFData Web.Cookie.SameSiteOption