import { EventEmitter } from 'events'; const emitter = globalThis._eventEmitter || new EventEmitter(); if (!globalThis._eventEmitter) { globalThis._eventEmitter = emitter; globalThis._eventQueue = []; globalThis._eventTargets = 0; const origEmit = emitter.emit.bind(emitter); emitter.emit = function(eventName, ...args) { if (eventName === 'event' && globalThis._eventTargets === 0) { globalThis._eventQueue.push(args[0]); if (globalThis._eventQueue.length > 100) { globalThis._eventQueue.shift(); } } return origEmit(eventName, ...args); }; emitter.getQueue = function() { return globalThis._eventQueue.splice(0); }; emitter.incrementTargets = function() { globalThis._eventTargets++; }; emitter.decrementTargets = function() { globalThis._eventTargets = Math.max(0, globalThis._eventTargets - 1); }; } export default emitter;