@@ -46,6 +46,7 @@ data Cookie = Cookie
4646 , secure :: Bool
4747 , httpOnly :: Bool
4848 , sameSite :: SameSite
49+ , partitioned :: Bool
4950 } deriving (Show ,Eq ,Read ,Typeable ,Data )
5051
5152-- | Specify the lifetime of a cookie.
@@ -102,13 +103,13 @@ calcLife Expired =
102103
103104-- | Creates a cookie with a default version of 1, empty domain, a
104105-- path of "/", secure == False, httpOnly == False and
105- -- sameSite == SameSiteNoValue
106+ -- sameSite == SameSiteNoValue and partitioned = False
106107--
107108-- see also: 'addCookie'
108109mkCookie :: String -- ^ cookie name
109110 -> String -- ^ cookie value
110111 -> Cookie
111- mkCookie key val = Cookie " 1" " /" " " key val False False SameSiteNoValue
112+ mkCookie key val = Cookie " 1" " /" " " key val False False SameSiteNoValue False
112113
113114-- | Set a Cookie in the Result.
114115-- The values are escaped as per RFC 2109, but some browsers may
@@ -147,6 +148,7 @@ mkCookieHeader mLife cookie =
147148 ++ (if httpOnly cookie then [" HttpOnly" ] else [] )
148149 ++ (if sameSite cookie /= SameSiteNoValue
149150 then [displaySameSite . sameSite $ cookie] else [] )
151+ ++ (if partitioned cookie then [" Partitioned" ] else [] )
150152
151153-- | Not an supported api. Takes a cookie header and returns
152154-- either a String error message or an array of parsed cookies
@@ -170,7 +172,7 @@ cookiesParser = cookies
170172 val<- value
171173 path<- option " " $ try (cookieSep >> cookie_path)
172174 domain<- option " " $ try (cookieSep >> cookie_domain)
173- return $ Cookie ver path domain (low name) val False False SameSiteNoValue
175+ return $ Cookie ver path domain (low name) val False False SameSiteNoValue False
174176 cookie_version = cookie_special " $Version"
175177 cookie_path = cookie_special " $Path"
176178 cookie_domain = cookie_special " $Domain"
0 commit comments