const originalSend = HIDDevice.prototype.sendReport; HIDDevice.prototype.sendReport = function(id, data) { console.log("[OUT]", id, new Uint8Array(data)); return originalSend.apply(this, arguments); };

const originalAdd = HIDDevice.prototype.addEventListener; HIDDevice.prototype.addEventListener = function(type, listener, options) { if (type === "inputreport") { const wrapped = function(event) { console.log("[IN]", event.reportId, new Uint8Array(event.data.buffer)); return listener.call(this, event); }; return originalAdd.call(this, type, wrapped, options); } return originalAdd.call(this, type, listener, options); };

Object.defineProperty(HIDDevice.prototype, "oninputreport", { set(fn) { const wrapped = (event) => { console.log("[IN]", event.reportId, new Uint8Array(event.data.buffer)); return fn.call(this, event); }; this.addEventListener("inputreport", wrapped); } });