File size: 11,185 Bytes
5fae594 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
import type { Cookie } from './cookie/cookie';
import { Store } from './store';
import { Callback, ErrorCallback, Nullable } from './utils';
/**
* The internal structure used in {@link MemoryCookieStore}.
* @internal
*/
export type MemoryCookieStoreIndex = {
[domain: string]: {
[path: string]: {
[key: string]: Cookie;
};
};
};
/**
* An in-memory {@link Store} implementation for {@link CookieJar}. This is the default implementation used by
* {@link CookieJar} and supports both async and sync operations. Also supports serialization, getAllCookies, and removeAllCookies.
* @public
*/
export declare class MemoryCookieStore extends Store {
/**
* This value is `true` since {@link MemoryCookieStore} implements synchronous functionality.
*/
synchronous: boolean;
/**
* @internal
*/
idx: MemoryCookieStoreIndex;
/**
* Create a new {@link MemoryCookieStore}.
*/
constructor();
/**
* Retrieve a {@link Cookie} with the given `domain`, `path`, and `key` (`name`). The RFC maintains that exactly
* one of these cookies should exist in a store. If the store is using versioning, this means that the latest or
* newest such cookie should be returned.
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param key - The cookie name to match against.
*/
findCookie(domain: Nullable<string>, path: Nullable<string>, key: Nullable<string>): Promise<Cookie | undefined>;
/**
* Retrieve a {@link Cookie} with the given `domain`, `path`, and `key` (`name`). The RFC maintains that exactly
* one of these cookies should exist in a store. If the store is using versioning, this means that the latest or
* newest such cookie should be returned.
*
* Callback takes an error and the resulting Cookie object. If no cookie is found then null MUST be passed instead (that is, not an error).
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param key - The cookie name to match against.
* @param callback - A function to call with either the found cookie or an error.
*/
findCookie(domain: Nullable<string>, path: Nullable<string>, key: Nullable<string>, callback: Callback<Cookie | undefined>): void;
/**
* Locates all {@link Cookie} values matching the given `domain` and `path`.
*
* The resulting list is checked for applicability to the current request according to the RFC (`domain-match`, `path-match`,
* `http-only-flag`, `secure-flag`, `expiry`, and so on), so it's OK to use an optimistic search algorithm when implementing
* this method. However, the search algorithm used SHOULD try to find cookies that {@link domainMatch} the `domain` and
* {@link pathMatch} the `path` in order to limit the amount of checking that needs to be done.
*
* @remarks
* - As of version `0.9.12`, the `allPaths` option to cookiejar.getCookies() above causes the path here to be `null`.
*
* - If the `path` is `null`, `path-matching` MUST NOT be performed (that is, `domain-matching` only).
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param allowSpecialUseDomain - If `true` then special-use domain suffixes, will be allowed in matches. Defaults to `false`.
*/
findCookies(domain: string, path: string, allowSpecialUseDomain?: boolean): Promise<Cookie[]>;
/**
* Locates all {@link Cookie} values matching the given `domain` and `path`.
*
* The resulting list is checked for applicability to the current request according to the RFC (`domain-match`, `path-match`,
* `http-only-flag`, `secure-flag`, `expiry`, and so on), so it's OK to use an optimistic search algorithm when implementing
* this method. However, the search algorithm used SHOULD try to find cookies that {@link domainMatch} the `domain` and
* {@link pathMatch} the `path` in order to limit the amount of checking that needs to be done.
*
* @remarks
* - As of version `0.9.12`, the `allPaths` option to cookiejar.getCookies() above causes the path here to be `null`.
*
* - If the `path` is `null`, `path-matching` MUST NOT be performed (that is, `domain-matching` only).
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param allowSpecialUseDomain - If `true` then special-use domain suffixes, will be allowed in matches. Defaults to `false`.
* @param callback - A function to call with either the found cookies or an error.
*/
findCookies(domain: string, path: string, allowSpecialUseDomain?: boolean, callback?: Callback<Cookie[]>): void;
/**
* Adds a new {@link Cookie} to the store. The implementation SHOULD replace any existing cookie with the same `domain`,
* `path`, and `key` properties.
*
* @remarks
* - Depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie`
* that a duplicate `putCookie` can occur.
*
* - The {@link Cookie} object MUST NOT be modified; as the caller has already updated the `creation` and `lastAccessed` properties.
*
* @param cookie - The cookie to store.
*/
putCookie(cookie: Cookie): Promise<void>;
/**
* Adds a new {@link Cookie} to the store. The implementation SHOULD replace any existing cookie with the same `domain`,
* `path`, and `key` properties.
*
* @remarks
* - Depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie`
* that a duplicate `putCookie` can occur.
*
* - The {@link Cookie} object MUST NOT be modified; as the caller has already updated the `creation` and `lastAccessed` properties.
*
* @param cookie - The cookie to store.
* @param callback - A function to call when the cookie has been stored or an error has occurred.
*/
putCookie(cookie: Cookie, callback: ErrorCallback): void;
/**
* Update an existing {@link Cookie}. The implementation MUST update the `value` for a cookie with the same `domain`,
* `path`, and `key`. The implementation SHOULD check that the old value in the store is equivalent to oldCookie -
* how the conflict is resolved is up to the store.
*
* @remarks
* - The `lastAccessed` property is always different between the two objects (to the precision possible via JavaScript's clock).
*
* - Both `creation` and `creationIndex` are guaranteed to be the same.
*
* - Stores MAY ignore or defer the `lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion.
*
* - Stores may wish to optimize changing the `value` of the cookie in the store versus storing a new cookie.
*
* - The `newCookie` and `oldCookie` objects MUST NOT be modified.
*
* @param oldCookie - the cookie that is already present in the store.
* @param newCookie - the cookie to replace the one already present in the store.
*/
updateCookie(oldCookie: Cookie, newCookie: Cookie): Promise<void>;
/**
* Update an existing {@link Cookie}. The implementation MUST update the `value` for a cookie with the same `domain`,
* `path`, and `key`. The implementation SHOULD check that the old value in the store is equivalent to oldCookie -
* how the conflict is resolved is up to the store.
*
* @remarks
* - The `lastAccessed` property is always different between the two objects (to the precision possible via JavaScript's clock).
*
* - Both `creation` and `creationIndex` are guaranteed to be the same.
*
* - Stores MAY ignore or defer the `lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion.
*
* - Stores may wish to optimize changing the `value` of the cookie in the store versus storing a new cookie.
*
* - The `newCookie` and `oldCookie` objects MUST NOT be modified.
*
* @param oldCookie - the cookie that is already present in the store.
* @param newCookie - the cookie to replace the one already present in the store.
* @param callback - A function to call when the cookie has been updated or an error has occurred.
*/
updateCookie(oldCookie: Cookie, newCookie: Cookie, callback: ErrorCallback): void;
/**
* Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param key - The cookie name to match against.
*/
removeCookie(domain: string, path: string, key: string): Promise<void>;
/**
* Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param key - The cookie name to match against.
* @param callback - A function to call when the cookie has been removed or an error occurs.
*/
removeCookie(domain: string, path: string, key: string, callback: ErrorCallback): void;
/**
* Removes matching cookies from the store. The `path` parameter is optional and if missing,
* means all paths in a domain should be removed.
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
*/
removeCookies(domain: string, path: string): Promise<void>;
/**
* Removes matching cookies from the store. The `path` parameter is optional and if missing,
* means all paths in a domain should be removed.
*
* @param domain - The cookie domain to match against.
* @param path - The cookie path to match against.
* @param callback - A function to call when the cookies have been removed or an error occurs.
*/
removeCookies(domain: string, path: string, callback: ErrorCallback): void;
/**
* Removes all cookies from the store.
*/
removeAllCookies(): Promise<void>;
/**
* Removes all cookies from the store.
*
* @param callback - A function to call when all the cookies have been removed or an error occurs.
*/
removeAllCookies(callback: ErrorCallback): void;
/**
* Gets all the cookies in the store.
*
* @remarks
* - Cookies SHOULD be returned in creation order to preserve sorting via {@link cookieCompare}.
*/
getAllCookies(): Promise<Cookie[]>;
/**
* Gets all the cookies in the store.
*
* @remarks
* - Cookies SHOULD be returned in creation order to preserve sorting via {@link cookieCompare}.
*
* @param callback - A function to call when all the cookies have been retrieved or an error occurs.
*/
getAllCookies(callback: Callback<Cookie[]>): void;
}
|