@yiero/gmlib
Version:
GM Lib for Tampermonkey/ScriptCat
83 lines (82 loc) • 2.68 kB
TypeScript
/**
* Cookie 对象接口
*
* 表示从 GM_cookie API 获取的单个 Cookie 信息
*/
export declare interface ICookie {
/** Cookie 所属的域名 */
domain: string;
/** Cookie 的名称 */
name: string;
/** Cookie 的值 */
value: string;
/** 是否为会话 Cookie(true 表示关闭浏览器后失效) */
session: boolean;
/** 是否仅限主机(true 表示仅限当前域名,不包含子域名) */
hostOnly: boolean;
/** 过期时间(Unix 时间戳,单位:秒;会话 Cookie 此属性可能不存在) */
expirationDate?: number;
/** Cookie 的路径作用域 */
path: string;
/** 是否仅允许 HTTP 协议访问(禁止 JavaScript 操作) */
httpOnly: boolean;
/** 是否仅通过 HTTPS 传输 */
secure: boolean;
/** 同站策略 */
sameSite: 'unspecified' | 'no_restriction' | 'lax' | 'strict';
}
/**
* 获取指定域名下的所有 Cookie 列表
*
* @param domain 需要获取 Cookie 的域名
* @returns Promise<ICookie[]> Cookie 列表
*
* @warn 需要授权函数 `GM_cookie` 和 `GM_info`
* @warn 只能在 ScriptCat 环境中使用
*
* @example
* ```ts
* // 获取 bilibili 下的所有 cookie
* const cookieList = await getCookie('.bilibili.com');
*
* // 查找特定 Cookie
* const userId = cookieList.find(item => item.name === 'DedeUserID')?.value;
* console.log(userId); // "1747564175"
* ```
*/
export declare function getCookie(domain: string): Promise<ICookie[]>;
/**
* 获取指定域名下某个键名对应的 Cookie 值
*
* @param domain 需要获取 Cookie 的域名
* @param key Cookie 的键名
* @returns Promise<string> Cookie 的值
*
* @warn 需要授权函数 `GM_cookie` 和 `GM_info`
* @warn 只能在 ScriptCat 环境中使用
*
* @example
* ```ts
* // 获取 bilibili 的用户 ID
* const userId = await getCookie('.bilibili.com', 'DedeUserID');
* console.log(userId); // "1747564175"
* ```
*/
export declare function getCookie(domain: string, key: string): Promise<string>;
/**
* 解析网页 Cookie 文本内容,获取指定键名对应的 Cookie 值
*
* @param documentCookieContent 网站 Cookie 文本内容,通常通过 `document.cookie` 获取
* @param key Cookie 的键名
* @returns Promise<string> Cookie 的值
*
* @warn 只能获取普通 Cookie,无法获取 http-only 等特殊 Cookie
*
* @example
* ```ts
* // 从当前页面 Cookie 中获取用户 ID
* const userId = await getCookie(document.cookie, 'DedeUserID');
* console.log(userId); // "1747564175"
* ```
*/
export declare function getCookie(documentCookieContent: string, key: string): Promise<string>;