Class: CookieStorage
@ima/core.CookieStorage
Storage of cookies, mirroring the cookies to the current request / response
at the server side and the document.cookie
property at the client
side. The storage caches the cookies internally.
Hierarchy
Constructors
constructor
• new CookieStorage(window
, request
, response
)
Initializes the cookie storage.
Parameters
Name | Type | Description |
---|---|---|
window | Window | The window utility. |
request | Request | The current HTTP request. |
response | Response | The current HTTP response. |
Example
cookie.set('cookie', 'value', { expires: 10 }); // cookie expires
// after 10s
cookie.set('cookie'); // delete cookie
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:182
Properties
#memoParseRawCookies
• Private
#memoParseRawCookies: MemoizedFn
<(rawCookies
: undefined
| string
) => string
[]>
Memoized function of private parseRawCookies function
Defined in
packages/core/src/storage/CookieStorage.ts:93
_options
• Private
_options: CookieOptions
The overriding cookie attribute values.
Defined in
packages/core/src/storage/CookieStorage.ts:68
_request
• Private
_request: Request
The current HTTP request. This field is used at the server side.
Defined in
packages/core/src/storage/CookieStorage.ts:53
_response
• Private
_response: Response
The current HTTP response. This field is used at the server side.
Defined in
packages/core/src/storage/CookieStorage.ts:58
_storage
• Private
_storage: Map
<string
, Cookie
>
The internal storage of entries.
Defined in
packages/core/src/storage/CookieStorage.ts:63
_transformFunction
• Private
_transformFunction: Object
Transform encode and decode functions for cookie value.
Type declaration
Name | Type |
---|---|
decode | (value : string ) => string |
encode | (value : string ) => string |
Defined in
packages/core/src/storage/CookieStorage.ts:82
_window
• Private
_window: Window
The window utility used to determine whether the IMA is being run at the client or at the server.
Defined in
packages/core/src/storage/CookieStorage.ts:48
Accessors
$dependencies
• Static
get
$dependencies(): Dependencies
Returns
Defined in
packages/core/src/storage/CookieStorage.ts:95
Methods
#extractCookie
▸ Private
#extractCookie(cookieString
): Cookie
& { name?
: string
}
Extract cookie name, value and options from cookie string.
Parameters
Name | Type | Description |
---|---|---|
cookieString | string | The value of the Set-Cookie HTTP header. |
Returns
Cookie
& { name?
: string
}
Defined in
packages/core/src/storage/CookieStorage.ts:590
#extractNameAndValue
▸ Private
#extractNameAndValue(pair
, pairIndex
): [null
| string
, undefined
| null
| string
| number
| boolean
| Date
]
Extract name and value for defined pair and pair index.
Parameters
Name | Type |
---|---|
pair | string |
pairIndex | number |
Returns
[null
| string
, undefined
| null
| string
| number
| boolean
| Date
]
Defined in
packages/core/src/storage/CookieStorage.ts:620
#firstLetterToLowerCase
▸ Private
#firstLetterToLowerCase(word
): string
Creates a copy of the provided word (or text) that has its first character converted to lower case.
Parameters
Name | Type | Description |
---|---|---|
word | string | The word (or any text) that should have its first character converted to lower case. |
Returns
string
A copy of the provided string with its first character converted to lower case.
Defined in
packages/core/src/storage/CookieStorage.ts:539
#generateCookieString
▸ Private
#generateCookieString(name
, value
, options
): string
Generates a string representing the specified cookie, usable either
with the document.cookie
property or the Set-Cookie
HTTP
header.
(Note that the Cookie
HTTP header uses a slightly different
syntax.)
Parameters
Name | Type | Description |
---|---|---|
name | string | The cookie name. |
value | undefined | string | number | boolean | Date | The cookie value, will be converted to string. |
options | CookieOptions | Cookie attributes. Only the attributes listed in the type annotation of this field are supported. For documentation and full list of cookie attributes see http://tools.ietf.org/html/rfc2965#page-5 |
Returns
string
A string representing the cookie. Setting this string
to the document.cookie
property will set the cookie to
the browser's cookie storage.
Defined in
packages/core/src/storage/CookieStorage.ts:562
#parseRawCookies
▸ Private
#parseRawCookies(rawCookies
): string
[]
Parameters
Name | Type |
---|---|
rawCookies | undefined | string |
Returns
string
[]
Defined in
packages/core/src/storage/CookieStorage.ts:495
clear
▸ clear(): CookieStorage
Clears the storage of all entries.
Returns
This storage.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:280
delete
▸ delete(name
, options?
): CookieStorage
Deletes the cookie identified by the specified name.
Parameters
Name | Type | Description |
---|---|---|
name | string | Name identifying the cookie. |
options | CookieOptions | The cookie options. The domain and path specify the cookie's domain and path. The httpOnly and secure flags set the flags of the same name of the cookie. |
Returns
This storage.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:268
get
▸ get(name
): undefined
| string
| number
| boolean
| Date
Retrieves the value of the entry identified by the specified . The
method returns undefined
if the entry does not exists.
Entries set to the undefined
value can be tested for existence
using the link has
method.
Parameters
Name | Type | Description |
---|---|---|
name | string | The key identifying the storage entry. |
Returns
undefined
| string
| number
| boolean
| Date
The value of the storage entry.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:216
getCookiesStringForCookieHeader
▸ getCookiesStringForCookieHeader(url?
): string
Returns all cookies in this storage serialized to a string compatible
with the Cookie
HTTP header.
When url
is provided, the method validates the cookie security based on
the url
and the cookie's domain, path, and secure attributes.
Parameters
Name | Type |
---|---|
url? | string |
Returns
string
All cookies in this storage serialized to a string
compatible with the Cookie
HTTP header.
Defined in
packages/core/src/storage/CookieStorage.ts:318
getExpirationAsDate
▸ getExpirationAsDate(expiration
): Date
Converts the provided cookie expiration to a Date
instance.
Parameters
Name | Type | Description |
---|---|---|
expiration | string | number | Date | Cookie expiration in seconds from now, or as a string compatible with the Date constructor. |
Returns
Date
Cookie expiration as a Date
instance.
Defined in
packages/core/src/storage/CookieStorage.ts:481
has
▸ has(name
): boolean
Returns true
if the entry identified by the specified key exists
in this storage.
Parameters
Name | Type | Description |
---|---|---|
name | string | The key identifying the storage entry. |
Returns
boolean
true
if the storage entry exists.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:207
init
▸ init(options?
, transformFunction?
): CookieStorage
This method is used to finalize the initialization of the storage after the dependencies provided through the constructor have been prepared for use.
This method must be invoked only once and it must be the first method invoked on this instance.
Parameters
Name | Type |
---|---|
options | CookieOptions |
transformFunction | Object |
Returns
This storage.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:193
keys
▸ keys(): Iterable
<string
>
Returns an iterator for traversing the keys in this storage. The order in which the keys are traversed is undefined.
Returns
Iterable
<string
>
An iterator for traversing the keys in this
storage. The iterator also implements the iterable protocol,
returning itself as its own iterator, allowing it to be used in
a for..of
loop.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:293
parse
▸ parse(): void
Parses cookies from a cookie string and sets the parsed cookies to the internal storage.
The method obtains the cookie string from the request's Cookie
HTTP header when used at the server side, and the document.cookie
property at the client side.
Returns
void
Defined in
packages/core/src/storage/CookieStorage.ts:393
parseFromSetCookieHeader
▸ parseFromSetCookieHeader(cookiesString
, url?
): void
Parses cookies from the provided Set-Cookie
HTTP header value.
When url
is provided, the method validates the cookie security based on
the url
and the cookie's domain, path, and secure attributes.
The parsed cookies will be set to the internal storage, and the current
HTTP response (via the Set-Cookie
HTTP header) if at the server
side, or the browser (via the document.cookie
property).
Parameters
Name | Type | Description |
---|---|---|
cookiesString | string | string [] | The value of the Set-Cookie HTTP header. When there are multiple cookies, the value can be provided as an array of strings. |
url? | string | - |
Returns
void
Defined in
packages/core/src/storage/CookieStorage.ts:357
recomputeCookieMaxAgeAndExpires
▸ recomputeCookieMaxAgeAndExpires(options
): void
Recomputes cookie's attributes maxAge and expires between each other.
Parameters
Name | Type | Description |
---|---|---|
options | CookieOptions | Cookie attributes. Only the attributes listed in the type annotation of this field are supported. For documentation and full list of cookie attributes see http://tools.ietf.org/html/rfc2965#page-5 |
Returns
void
Defined in
packages/core/src/storage/CookieStorage.ts:459
sanitizeCookieValue
▸ sanitizeCookieValue(value
): string
Sanitize cookie value by rules in (@see http://tools.ietf.org/html/rfc6265#section-4r.1.1). Erase all invalid characters from cookie value.
Parameters
Name | Type | Description |
---|---|---|
value | undefined | string | number | boolean | Date | Cookie value |
Returns
string
Sanitized value
Defined in
packages/core/src/storage/CookieStorage.ts:417
set
▸ set(name
, value
, options?
): CookieStorage
Sets the storage entry identified by the specified key to the provided value. The method creates the entry if it does not exist already.
Parameters
Name | Type | Description |
---|---|---|
name | string | The key identifying the storage entry. |
value | undefined | string | number | boolean | Date | The storage entry value. |
options | CookieOptions | The cookie options. The maxAge is the maximum age in seconds of the cookie before it will be deleted, the expires is an alternative to that, specifying the moment at which the cookie will be discarded. The domain and path specify the cookie's domain and path. The httpOnly and secure flags set the flags of the same name of the cookie. |
Returns
This storage.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:234
size
▸ size(): number
Returns the number of entries in this storage.
Returns
number
The number of entries in this storage.
Overrides
Defined in
packages/core/src/storage/CookieStorage.ts:302
validateCookieSecurity
▸ Static
validateCookieSecurity(cookie
, url
): boolean
Filters invalid cookies based on the provided url. We try to check validity of the domain based on secure, path and domain definitions.
Parameters
Name | Type |
---|---|
cookie | Cookie |
url | string |
Returns
boolean