@ipcom/asterisk-ari 0.0.116 → 0.0.118
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.
package/dist/cjs/index.cjs
CHANGED
|
@@ -1463,13 +1463,13 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1463
1463
|
);
|
|
1464
1464
|
}
|
|
1465
1465
|
const scopedEvent = `${this.app}:Playback:${this.id}:${event}`;
|
|
1466
|
-
console.log({ metheod: "on", event, scopedEvent });
|
|
1467
1466
|
const existingListeners = wsClient.listeners(scopedEvent);
|
|
1468
1467
|
if (existingListeners.some((listener) => listener === callback)) {
|
|
1469
1468
|
console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
|
|
1470
1469
|
return this;
|
|
1471
1470
|
}
|
|
1472
1471
|
wsClient.on(scopedEvent, callback);
|
|
1472
|
+
console.log(`Listener registrado para '${scopedEvent}'.`);
|
|
1473
1473
|
return this;
|
|
1474
1474
|
}
|
|
1475
1475
|
/**
|
|
@@ -1482,9 +1482,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1482
1482
|
`Nenhum WebSocket conectado dispon\xEDvel para '${this.app}'.`
|
|
1483
1483
|
);
|
|
1484
1484
|
}
|
|
1485
|
-
wsClient.removeWildcardListeners(this.id, event, "Playback");
|
|
1486
1485
|
const scopedEvent = `${this.app}:Playback:${this.id}:${event}`;
|
|
1487
|
-
console.log({ metheod: "once", event, scopedEvent });
|
|
1488
1486
|
const existingListeners = wsClient.listeners(scopedEvent);
|
|
1489
1487
|
if (existingListeners.some((listener2) => listener2 === callback)) {
|
|
1490
1488
|
console.warn(`Listener j\xE1 registrado para o evento '${scopedEvent}'.`);
|
|
@@ -1493,9 +1491,10 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1493
1491
|
const listener = (data) => {
|
|
1494
1492
|
callback(data);
|
|
1495
1493
|
wsClient.off(scopedEvent, listener);
|
|
1496
|
-
|
|
1494
|
+
console.log(`Listener removido ap\xF3s execu\xE7\xE3o para '${scopedEvent}'.`);
|
|
1497
1495
|
};
|
|
1498
1496
|
wsClient.on(scopedEvent, listener);
|
|
1497
|
+
console.log(`Listener registrado para '${scopedEvent}' (apenas uma vez).`);
|
|
1499
1498
|
return this;
|
|
1500
1499
|
}
|
|
1501
1500
|
/**
|
|
@@ -1509,7 +1508,15 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1509
1508
|
);
|
|
1510
1509
|
}
|
|
1511
1510
|
const scopedEvent = `${this.app}:Playback:${this.id}:${event}`;
|
|
1511
|
+
const existingListeners = wsClient.listeners(scopedEvent);
|
|
1512
|
+
if (!existingListeners.some((listener) => listener === callback)) {
|
|
1513
|
+
console.warn(
|
|
1514
|
+
`Nenhum listener registrado para '${scopedEvent}' que corresponda.`
|
|
1515
|
+
);
|
|
1516
|
+
return this;
|
|
1517
|
+
}
|
|
1512
1518
|
wsClient.off(scopedEvent, callback);
|
|
1519
|
+
console.log(`Listener removido para '${scopedEvent}'.`);
|
|
1513
1520
|
return this;
|
|
1514
1521
|
}
|
|
1515
1522
|
/**
|
|
@@ -1767,6 +1774,7 @@ var WebSocketClient = class extends import_events3.EventEmitter {
|
|
|
1767
1774
|
async connect() {
|
|
1768
1775
|
if (this.isReconnecting) return;
|
|
1769
1776
|
return new Promise((resolve, reject) => {
|
|
1777
|
+
this.removeAllListeners();
|
|
1770
1778
|
this.ws = new import_ws.default(this.url);
|
|
1771
1779
|
this.ws.on("open", () => {
|
|
1772
1780
|
console.log("WebSocket conectado.");
|
|
@@ -1805,6 +1813,7 @@ var WebSocketClient = class extends import_events3.EventEmitter {
|
|
|
1805
1813
|
if (!this.messageListeners.includes(callback)) {
|
|
1806
1814
|
this.messageListeners.push(callback);
|
|
1807
1815
|
this.on("message", callback);
|
|
1816
|
+
console.log("Listener registrado para 'message'.");
|
|
1808
1817
|
} else {
|
|
1809
1818
|
console.warn("Tentativa de registrar listener duplicado para 'message'.");
|
|
1810
1819
|
}
|
|
@@ -1903,29 +1912,19 @@ var WebSocketClient = class extends import_events3.EventEmitter {
|
|
|
1903
1912
|
const key = `${app}:${instanceId}`;
|
|
1904
1913
|
if (this.scopedListeners.has(key)) {
|
|
1905
1914
|
console.warn(
|
|
1906
|
-
`Listener escopado para a inst\xE2ncia '${key}' j\xE1 existe. Ignorando.`
|
|
1915
|
+
`Listener escopado para a inst\xE2ncia '${key}' j\xE1 existe. Ignorando duplicata.`
|
|
1907
1916
|
);
|
|
1908
1917
|
return;
|
|
1909
1918
|
}
|
|
1910
1919
|
const scopedListener = (data) => {
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
console.log(
|
|
1914
|
-
`Listener escopado ativado para inst\xE2ncia '${instanceId}' no app '${app}'.`
|
|
1915
|
-
);
|
|
1916
|
-
callback(data);
|
|
1917
|
-
}
|
|
1918
|
-
} catch (error) {
|
|
1919
|
-
console.error(
|
|
1920
|
-
`Erro no listener escopado para inst\xE2ncia '${instanceId}' no app '${app}':`,
|
|
1921
|
-
error
|
|
1922
|
-
);
|
|
1920
|
+
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
|
+
callback(data);
|
|
1923
1922
|
}
|
|
1924
1923
|
};
|
|
1925
|
-
this.scopedListeners.set(key, scopedListener);
|
|
1926
1924
|
this.on("message", scopedListener);
|
|
1925
|
+
this.scopedListeners.set(key, scopedListener);
|
|
1927
1926
|
console.log(
|
|
1928
|
-
`Listener escopado adicionado para a inst\xE2ncia '${
|
|
1927
|
+
`Listener escopado adicionado para a inst\xE2ncia '${key}'. Total de listeners: ${this.listenerCount(
|
|
1929
1928
|
"message"
|
|
1930
1929
|
)}`
|
|
1931
1930
|
);
|
|
@@ -1937,22 +1936,23 @@ var WebSocketClient = class extends import_events3.EventEmitter {
|
|
|
1937
1936
|
*/
|
|
1938
1937
|
removeScopedMessageListeners(instanceId, app) {
|
|
1939
1938
|
const key = `${app}:${instanceId}`;
|
|
1940
|
-
|
|
1939
|
+
const scopedListener = this.scopedListeners.get(key);
|
|
1940
|
+
if (!scopedListener) {
|
|
1941
1941
|
console.warn(`Nenhum listener encontrado para a inst\xE2ncia '${key}'.`);
|
|
1942
1942
|
return;
|
|
1943
1943
|
}
|
|
1944
|
-
|
|
1945
|
-
if (scopedListener) {
|
|
1944
|
+
if (this.listeners("message").includes(scopedListener)) {
|
|
1946
1945
|
this.off("message", scopedListener);
|
|
1947
|
-
|
|
1948
|
-
console.log(
|
|
1949
|
-
`Listeners removidos para a inst\xE2ncia '${key}'. Total de listeners restantes: ${this.listenerCount(
|
|
1950
|
-
"message"
|
|
1951
|
-
)}`
|
|
1952
|
-
);
|
|
1946
|
+
console.log(`Listener escopado removido para '${key}'.`);
|
|
1953
1947
|
} else {
|
|
1954
|
-
console.warn(`Listener j\xE1 foi removido para
|
|
1948
|
+
console.warn(`Listener j\xE1 foi removido para '${key}'.`);
|
|
1955
1949
|
}
|
|
1950
|
+
this.scopedListeners.delete(key);
|
|
1951
|
+
console.log(
|
|
1952
|
+
`Listeners escopados removidos para a inst\xE2ncia '${key}'. Total de listeners restantes: ${this.listenerCount(
|
|
1953
|
+
"message"
|
|
1954
|
+
)}`
|
|
1955
|
+
);
|
|
1956
1956
|
}
|
|
1957
1957
|
/**
|
|
1958
1958
|
* Handles incoming WebSocket messages.
|
|
@@ -2004,10 +2004,14 @@ var WebSocketClient = class extends import_events3.EventEmitter {
|
|
|
2004
2004
|
this.isClosedManually = true;
|
|
2005
2005
|
this.ws.close();
|
|
2006
2006
|
this.ws = null;
|
|
2007
|
+
console.log(this.scopedListeners);
|
|
2008
|
+
this.scopedListeners.forEach((_listener, key) => {
|
|
2009
|
+
console.log(`Removendo listener escopado para '${key}' ao fechar.`);
|
|
2010
|
+
this.removeScopedMessageListeners(key.split(":")[1], key.split(":")[0]);
|
|
2011
|
+
});
|
|
2012
|
+
this.scopedListeners.clear();
|
|
2007
2013
|
this.removeAllListeners("message");
|
|
2008
|
-
console.log(
|
|
2009
|
-
"WebSocket fechado manualmente e listeners para 'message' limpos."
|
|
2010
|
-
);
|
|
2014
|
+
console.log("WebSocket fechado manualmente e todos os listeners limpos.");
|
|
2011
2015
|
}
|
|
2012
2016
|
}
|
|
2013
2017
|
};
|