@ipcom/asterisk-ari 0.0.94 → 0.0.96

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.
@@ -962,10 +962,36 @@ var ChannelInstance = class extends import_events2.EventEmitter {
962
962
  super.on(event, callback);
963
963
  return this;
964
964
  }
965
+ /**
966
+ * Adiciona um listener para ser chamado apenas uma vez.
967
+ */
965
968
  /**
966
969
  * Adiciona um listener para ser chamado apenas uma vez.
967
970
  */
968
971
  once(event, callback) {
972
+ console.log({
973
+ type: "Adiciona um listener para ser chamado apenas uma vez",
974
+ event
975
+ });
976
+ const wsClients = this.client.getWebSocketClients();
977
+ const wsClient = Array.from(wsClients.values()).find(
978
+ (client) => client.isConnected()
979
+ );
980
+ if (!wsClient) {
981
+ throw new Error(
982
+ `Nenhum WebSocket conectado dispon\xEDvel para '${this.id}'.`
983
+ );
984
+ }
985
+ const globalListener = (webSocketEvent) => {
986
+ if (isChannelEvent(webSocketEvent, this.id) && webSocketEvent.type === event) {
987
+ console.log(`Recebido evento '${event}' para canal '${this.id}'`);
988
+ this.emit(event, webSocketEvent);
989
+ callback(webSocketEvent);
990
+ wsClient.off("message", globalListener);
991
+ console.log(`Listener global para canal '${this.id}' foi removido.`);
992
+ }
993
+ };
994
+ wsClient.on("message", globalListener);
969
995
  super.once(event, callback);
970
996
  return this;
971
997
  }
@@ -1421,6 +1447,50 @@ var PlaybackInstance = class extends import_events3.EventEmitter {
1421
1447
  }
1422
1448
  playbackData = null;
1423
1449
  id;
1450
+ /**
1451
+ * Adiciona um listener para eventos de playback.
1452
+ */
1453
+ on(event, callback) {
1454
+ super.on(event, callback);
1455
+ return this;
1456
+ }
1457
+ /**
1458
+ * Adiciona um listener para ser chamado apenas uma vez.
1459
+ */
1460
+ once(event, callback) {
1461
+ console.log({
1462
+ type: "Adiciona um listener para ser chamado apenas uma vez",
1463
+ event
1464
+ });
1465
+ const wsClients = this.client.getWebSocketClients();
1466
+ const wsClient = Array.from(wsClients.values()).find(
1467
+ (client) => client.isConnected()
1468
+ );
1469
+ if (!wsClient) {
1470
+ throw new Error(
1471
+ `Nenhum WebSocket conectado dispon\xEDvel para '${this.id}'.`
1472
+ );
1473
+ }
1474
+ const globalListener = (webSocketEvent) => {
1475
+ if (isPlaybackEvent(webSocketEvent, this.id) && webSocketEvent.type === event) {
1476
+ console.log(`Recebido evento '${event}' para playback '${this.id}'`);
1477
+ this.emit(event, webSocketEvent);
1478
+ callback(webSocketEvent);
1479
+ wsClient.off("message", globalListener);
1480
+ console.log(`Listener global para playback '${this.id}' foi removido.`);
1481
+ }
1482
+ };
1483
+ wsClient.on("message", globalListener);
1484
+ super.once(event, callback);
1485
+ return this;
1486
+ }
1487
+ /**
1488
+ * Remove um listener específico.
1489
+ */
1490
+ off(event, callback) {
1491
+ super.off(event, callback);
1492
+ return this;
1493
+ }
1424
1494
  /**
1425
1495
  * Obtém os detalhes do playback.
1426
1496
  */
@@ -1457,31 +1527,6 @@ var PlaybackInstance = class extends import_events3.EventEmitter {
1457
1527
  await this.baseClient.delete(`/playbacks/${this.id}`);
1458
1528
  this.emit("PlaybackStopped", this.playbackData);
1459
1529
  }
1460
- /**
1461
- * Adiciona um listener para eventos de playback.
1462
- */
1463
- on(event, callback) {
1464
- super.on(event, callback);
1465
- return this;
1466
- }
1467
- /**
1468
- * Adiciona um listener para ser chamado apenas uma vez.
1469
- */
1470
- once(event, callback) {
1471
- console.log({
1472
- type: "Adiciona um listener para ser chamado apenas uma vez",
1473
- event
1474
- });
1475
- super.once(event, callback);
1476
- return this;
1477
- }
1478
- /**
1479
- * Remove um listener específico.
1480
- */
1481
- off(event, callback) {
1482
- super.off(event, callback);
1483
- return this;
1484
- }
1485
1530
  };
1486
1531
  var Playbacks = class extends import_events3.EventEmitter {
1487
1532
  constructor(baseClient, client) {