@remix-run/headers
Version:
A toolkit for working with HTTP headers in JavaScript
105 lines • 3.5 kB
TypeScript
import { type HeaderValue } from './header-value.ts';
type SameSiteValue = 'Strict' | 'Lax' | 'None';
/**
* Properties for a `Set-Cookie` header value.
*/
export interface CookieProperties {
/**
* The domain of the cookie. For example, `example.com`.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#domaindomain-value)
*/
domain?: string;
/**
* The expiration date of the cookie. If not specified, the cookie is a session cookie that is
* removed when the browser is closed.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#expiresdate)
*/
expires?: Date;
/**
* Indicates this cookie should not be accessible via JavaScript.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#httponly)
*/
httpOnly?: boolean;
/**
* The maximum age of the cookie in seconds.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#max-age)
*/
maxAge?: number;
/**
* Indicates this cookie is a partitioned cookie.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#partitioned)
*/
partitioned?: boolean;
/**
* The path of the cookie. For example, `/` or `/admin`.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#pathpath-value)
*/
path?: string;
/**
* The `SameSite` attribute of the cookie. This attribute lets servers require that a cookie shouldn't be sent with
* cross-site requests, which provides some protection against cross-site request forgery attacks.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value)
*/
sameSite?: SameSiteValue;
/**
* Indicates the cookie should only be sent over HTTPS.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#secure)
*/
secure?: boolean;
}
/**
* Initializer for a `Set-Cookie` header value.
*/
export interface SetCookieInit extends CookieProperties {
/**
* The name of the cookie.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie-namecookie-value)
*/
name?: string;
/**
* The value of the cookie.
*
* [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie-namecookie-value)
*/
value?: string;
}
/**
* The value of a `Set-Cookie` HTTP header.
*
* [MDN `Set-Cookie` Reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie)
*
* [HTTP/1.1 Specification](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1)
*/
export declare class SetCookie implements HeaderValue, SetCookieInit {
domain?: string;
expires?: Date;
httpOnly?: boolean;
maxAge?: number;
name?: string;
partitioned?: boolean;
path?: string;
sameSite?: SameSiteValue;
secure?: boolean;
value?: string;
/**
* @param init A string or object to initialize the header
*/
constructor(init?: string | SetCookieInit);
/**
* Returns the string representation of the header value.
*
* @return The header value as a string
*/
toString(): string;
}
export {};
//# sourceMappingURL=set-cookie.d.ts.map