@ipcom/asterisk-ari 0.0.122 → 0.0.124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1846,9 +1846,18 @@ var WebSocketClient = class extends import_events3.EventEmitter {
1846
1846
  "message"
1847
1847
  )} listener(s).`
1848
1848
  );
1849
+ this.listListeners("message");
1849
1850
  }
1850
1851
  return this;
1851
1852
  }
1853
+ listListeners(event) {
1854
+ const listeners = this.listeners(event);
1855
+ console.log(`=== Listagem de Listeners para '${event}' ===`);
1856
+ listeners.forEach((listener, index) => {
1857
+ console.log(`Listener #${index + 1}:`, listener.toString());
1858
+ });
1859
+ console.log(`Total de listeners para '${event}': ${listeners.length}`);
1860
+ }
1852
1861
  /**
1853
1862
  * Removes a specific listener from a WebSocket event.
1854
1863
  * @param event - The event type to remove the listener from.
@@ -1910,12 +1919,14 @@ var WebSocketClient = class extends import_events3.EventEmitter {
1910
1919
  */
1911
1920
  addScopedMessageListener(instanceId, app, callback) {
1912
1921
  const key = `${app}:${instanceId}`;
1913
- if (this.scopedListeners.has(key)) {
1914
- console.warn(
1915
- `Listener escopado para a inst\xE2ncia '${key}' j\xE1 existe. Ignorando duplicata.`
1916
- );
1922
+ if (key.includes("removeListener")) {
1923
+ console.warn(`Evento interno ignorado: '${key}'.`);
1917
1924
  return;
1918
1925
  }
1926
+ if (this.scopedListeners.has(key)) {
1927
+ console.warn(`Listener escopado j\xE1 existe para '${key}'. Substituindo.`);
1928
+ this.removeScopedMessageListeners(instanceId, app);
1929
+ }
1919
1930
  const scopedListener = (data) => {
1920
1931
  if (data.application === app && (data.type.startsWith("Channel") && "channel" in data && data.channel?.id === instanceId || data.type.startsWith("Playback") && "playbackId" in data && data.playbackId === instanceId)) {
1921
1932
  callback(data);
@@ -1924,10 +1935,11 @@ var WebSocketClient = class extends import_events3.EventEmitter {
1924
1935
  this.on("message", scopedListener);
1925
1936
  this.scopedListeners.set(key, scopedListener);
1926
1937
  console.log(
1927
- `Listener escopado adicionado para a inst\xE2ncia '${key}'. Total de listeners: ${this.listenerCount(
1938
+ `Listener escopado adicionado para '${key}'. Total de listeners: ${this.listenerCount(
1928
1939
  "message"
1929
1940
  )}`
1930
1941
  );
1942
+ this.listListeners("message");
1931
1943
  }
1932
1944
  /**
1933
1945
  * Remove todos os listeners associados a uma instância específica.
@@ -1942,10 +1954,11 @@ var WebSocketClient = class extends import_events3.EventEmitter {
1942
1954
  return;
1943
1955
  }
1944
1956
  if (this.listeners("message").includes(scopedListener)) {
1957
+ console.log(`Removendo listener escopado para '${key}'.`);
1945
1958
  this.off("message", scopedListener);
1946
- console.log(`Listener escopado removido para '${key}'.`);
1959
+ console.log(`Listener removido com sucesso para '${key}'.`);
1947
1960
  } else {
1948
- console.warn(`Listener j\xE1 foi removido para '${key}'.`);
1961
+ console.warn(`Listener j\xE1 foi removido ou n\xE3o encontrado para '${key}'.`);
1949
1962
  }
1950
1963
  this.scopedListeners.delete(key);
1951
1964
  console.log(
@@ -1953,6 +1966,8 @@ var WebSocketClient = class extends import_events3.EventEmitter {
1953
1966
  "message"
1954
1967
  )}`
1955
1968
  );
1969
+ console.log("Depois de remover listeners:");
1970
+ this.listListeners("message");
1956
1971
  }
1957
1972
  /**
1958
1973
  * Handles incoming WebSocket messages.