puppeteer-extra-plugin-session
Version:
A puppeteer plugin to dump and inject session data.
34 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CookieStorageProvider = void 0;
const zod_1 = require("zod");
const storage_provider_1 = require("../classes/storage-provider");
const schemas_1 = require("../schemas");
class CookieStorageProvider extends storage_provider_1.StorageProvider {
get name() {
return storage_provider_1.StorageProviderName.Cookie;
}
async get(page) {
const session = await page.target().createCDPSession();
const resp = await session.send('Network.getAllCookies');
await session.detach();
/**
* @see https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-getAllCookies
*/
const parsed = zod_1.z.object({ cookies: zod_1.z.array(schemas_1.CDPCookieSchema) }).parse(resp);
return JSON.stringify(parsed.cookies);
}
async set(page, data) {
const session = await page.target().createCDPSession();
const parsed = zod_1.z.array(schemas_1.CDPCookieParam).parse(JSON.parse(data));
/**
* @see https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-setCookies
*/
await session.send('Network.setCookies', {
cookies: parsed,
});
await session.detach();
}
}
exports.CookieStorageProvider = CookieStorageProvider;
//# sourceMappingURL=cookies.js.map