@ipcom/asterisk-ari 0.0.109 → 0.0.111

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.
@@ -984,6 +984,12 @@ var ChannelInstance = class extends import_events2.EventEmitter {
984
984
  );
985
985
  }
986
986
  const scopedEvent = `${this.app}:Channel:${this.id}:${event}`;
987
+ console.log({ metheod: "on", event, scopedEvent });
988
+ const existingListeners = wsClient.listeners(scopedEvent);
989
+ if (existingListeners.includes(callback)) {
990
+ console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
991
+ return this;
992
+ }
987
993
  wsClient.on(scopedEvent, callback);
988
994
  return this;
989
995
  }
@@ -999,7 +1005,12 @@ var ChannelInstance = class extends import_events2.EventEmitter {
999
1005
  }
1000
1006
  wsClient.removeWildcardListeners(this.id, event, "Channel");
1001
1007
  const scopedEvent = `${this.app}:Channel:${this.id}:${event}`;
1002
- console.log({ scopedEvent });
1008
+ console.log({ metheod: "once", event, scopedEvent });
1009
+ const existingListeners = wsClient.listeners(scopedEvent);
1010
+ if (existingListeners.some((listener2) => listener2 === callback)) {
1011
+ console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
1012
+ return this;
1013
+ }
1003
1014
  const listener = (data) => {
1004
1015
  callback(data);
1005
1016
  wsClient.off(scopedEvent, listener);
@@ -1506,6 +1517,12 @@ var PlaybackInstance = class extends import_events3.EventEmitter {
1506
1517
  );
1507
1518
  }
1508
1519
  const scopedEvent = `${this.app}:Playback:${this.id}:${event}`;
1520
+ console.log({ metheod: "on", event, scopedEvent });
1521
+ const existingListeners = wsClient.listeners(scopedEvent);
1522
+ if (existingListeners.some((listener) => listener === callback)) {
1523
+ console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
1524
+ return this;
1525
+ }
1509
1526
  wsClient.on(scopedEvent, callback);
1510
1527
  return this;
1511
1528
  }
@@ -1521,6 +1538,12 @@ var PlaybackInstance = class extends import_events3.EventEmitter {
1521
1538
  }
1522
1539
  wsClient.removeWildcardListeners(this.id, event, "Playback");
1523
1540
  const scopedEvent = `${this.app}:Playback:${this.id}:${event}`;
1541
+ console.log({ metheod: "once", event, scopedEvent });
1542
+ const existingListeners = wsClient.listeners(scopedEvent);
1543
+ if (existingListeners.some((listener2) => listener2 === callback)) {
1544
+ console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
1545
+ return this;
1546
+ }
1524
1547
  const listener = (data) => {
1525
1548
  callback(data);
1526
1549
  wsClient.off(scopedEvent, listener);
@@ -1847,10 +1870,29 @@ var WebSocketClient = class extends import_events4.EventEmitter {
1847
1870
  * @returns The WebSocketClient instance for chaining.
1848
1871
  */
1849
1872
  on(event, callback) {
1850
- console.log({ eventoChamante: event });
1873
+ const existingListeners = this.listeners(event);
1874
+ if (existingListeners.includes(callback)) {
1875
+ console.warn(
1876
+ `Listener duplicado detectado para o evento '${event}'. Ignorando.`
1877
+ );
1878
+ return this;
1879
+ }
1880
+ console.log(`Registrando listener para o evento '${event}'.`);
1881
+ console.log(
1882
+ `Antes: ${this.listenerCount(event)} listener(s) para o evento '${event}'.`
1883
+ );
1851
1884
  super.on(event, callback);
1885
+ console.log(
1886
+ `Depois: ${this.listenerCount(event)} listener(s) para o evento '${event}'.`
1887
+ );
1852
1888
  return this;
1853
1889
  }
1890
+ /**
1891
+ * Removes a specific listener from a WebSocket event.
1892
+ * @param event - The event type to remove the listener from.
1893
+ * @param callback - The function to remove from the event listeners.
1894
+ * @returns The WebSocketClient instance for chaining.
1895
+ */
1854
1896
  /**
1855
1897
  * Removes a specific listener from a WebSocket event.
1856
1898
  * @param event - The event type to remove the listener from.
@@ -1858,7 +1900,19 @@ var WebSocketClient = class extends import_events4.EventEmitter {
1858
1900
  * @returns The WebSocketClient instance for chaining.
1859
1901
  */
1860
1902
  off(event, callback) {
1903
+ const existingListeners = this.listeners(event);
1904
+ if (existingListeners.length > 0) {
1905
+ console.log(
1906
+ `Removendo listener para o evento '${event}'. Total antes: ${existingListeners.length}`
1907
+ );
1908
+ } else {
1909
+ console.warn(`Nenhum listener encontrado para o evento '${event}'`);
1910
+ }
1861
1911
  super.off(event, callback);
1912
+ const remainingListeners = this.listeners(event);
1913
+ console.log(
1914
+ `Listener para o evento '${event}' removido. Total agora: ${remainingListeners.length}`
1915
+ );
1862
1916
  return this;
1863
1917
  }
1864
1918
  removeWildcardListeners(id, event, type) {
@@ -1956,11 +2010,9 @@ var WebSocketClient = class extends import_events4.EventEmitter {
1956
2010
  const scopedEvent = `${decodedData.application}:${decodedData.type}`;
1957
2011
  if ("channel" in decodedData && decodedData.channel?.id) {
1958
2012
  const channelScopedEvent = `${decodedData.application}:Channel:${decodedData.channel.id}:${decodedData.type}`;
1959
- console.log({ handleMessage: decodedData });
1960
2013
  this.emit(channelScopedEvent, decodedData);
1961
2014
  } else if ("playback" in decodedData && decodedData.playback?.id) {
1962
2015
  const playbackScopedEvent = `${decodedData.application}:Playback:${decodedData.playback.id}:${decodedData.type}`;
1963
- console.log({ handleMessage: decodedData });
1964
2016
  this.emit(playbackScopedEvent, decodedData);
1965
2017
  }
1966
2018
  this.emit(scopedEvent, decodedData);
@@ -1997,10 +2049,7 @@ var WebSocketClient = class extends import_events4.EventEmitter {
1997
2049
  this.isClosedManually = true;
1998
2050
  this.ws.close();
1999
2051
  this.ws = null;
2000
- this.messageListeners.forEach(
2001
- (callback) => this.off("message", callback)
2002
- );
2003
- this.messageListeners = [];
2052
+ this.removeAllListeners("message");
2004
2053
  console.log(
2005
2054
  "WebSocket fechado manualmente e listeners para 'message' limpos."
2006
2055
  );