import fs from "node:fs"; import { DEFAULT_RPA_STORAGE_STATE_PATH } from "@/lib/rpa/env"; export type PlaywrightStorageState = { cookies: Array<{ name: string; value: string; domain?: string; }>; }; export function resolveStorageStatePath(): string { return process.env.RPA_STORAGE_STATE_PATH?.trim() || DEFAULT_RPA_STORAGE_STATE_PATH; } export function loadStorageState( path = resolveStorageStatePath(), ): PlaywrightStorageState { if (!fs.existsSync(path)) { throw new Error( `缺少 MotherShip 会话文件 ${path};请先运行 npm run record:mothership 录制 cookies`, ); } return JSON.parse(fs.readFileSync(path, "utf8")) as PlaywrightStorageState; } export function buildCookieHeader(state: PlaywrightStorageState): string { return state.cookies.map((c) => `${c.name}=${c.value}`).join("; "); }