const messageId = "honey:couponResProxy"; let fetchCounter = 0, xhrCounter = 0; const handleFetch = async (e, t) => { const [o] = t; fetchCounter += 1; const n = `${fetchCounter}${o}`; window.postMessage({ messageId, type: "request", requestId: n }, window.location.origin); try { await e, window.postMessage({ messageId, type: "response", requestId: n }, window.location.origin) } catch (e) {} }; function overrideFetch() { window.fetch = new Proxy(window.fetch, { apply: async (e, t, o) => { const n = e.apply(t, o); return handleFetch(n, o), n } }) } const handleXHRSend = (e, t) => { const o = JSON.stringify(t); xhrCounter += 1; const n = `${xhrCounter}${o}`; window.postMessage({ messageId, type: "request", requestId: n }, window.location.origin), e.addEventListener("loadend", e => (window.postMessage({ messageId, type: "response", requestId: n }, window.location.origin), e)) }; function overrideXMLHttpRequestSend() { const e = new Proxy(window.XMLHttpRequest.prototype.send, { apply: async (e, t, o) => { const n = e.apply(t, o); return handleXHRSend(t, o), n } }); window.XMLHttpRequest.prototype.send = e } const isProxyAvailable = !!window.Proxy; isProxyAvailable && (overrideFetch(), overrideXMLHttpRequestSend());