import { generateSuite, getSuite, planSuite } from '../src/api/client'; // Background Service Worker —— 唯一出网口(生成 / 规划 / 轮询任务,绕 CORS) export default defineBackground(() => { console.log('[电商套图工作台] background started'); // 点击扩展图标 → 打开 Side Panel chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true }); chrome.runtime.onMessage.addListener((msg, _sender, sendResponse) => { if (msg?.action === 'generateSuite') { generateSuite(msg.baseUrl, msg.token, msg.payload) .then((data) => sendResponse({ ok: true, data })) .catch((err) => sendResponse({ ok: false, error: err instanceof Error ? err.message : String(err) })); return true; } if (msg?.action === 'planSuite') { planSuite(msg.baseUrl, msg.token, msg.payload) .then((data) => sendResponse({ ok: true, data })) .catch((err) => sendResponse({ ok: false, error: err instanceof Error ? err.message : String(err) })); return true; } if (msg?.action === 'getSuite') { getSuite(msg.baseUrl, msg.token, msg.suiteId) .then((data) => sendResponse({ ok: true, data })) .catch((err) => sendResponse({ ok: false, error: err instanceof Error ? err.message : String(err) })); return true; } // 通用文本代理:采集引擎拉跨域资源(1688 详情 CDN / mtop API) if (msg?.action === 'fetchText') { const headers: Record = {}; if (msg.referer) headers['Referer'] = msg.referer; fetch(msg.url, { headers, credentials: msg.credentials ? 'include' : 'omit', }) .then(async (res) => { if (!res.ok) throw new Error(`HTTP ${res.status}`); sendResponse({ ok: true, text: await res.text() }); }) .catch((err) => sendResponse({ ok: false, error: err instanceof Error ? err.message : String(err) })); return true; } return false; }); });