@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.
package/dist/esm/index.js CHANGED
@@ -940,10 +940,36 @@ var ChannelInstance = class extends EventEmitter2 {
940
940
  super.on(event, callback);
941
941
  return this;
942
942
  }
943
+ /**
944
+ * Adiciona um listener para ser chamado apenas uma vez.
945
+ */
943
946
  /**
944
947
  * Adiciona um listener para ser chamado apenas uma vez.
945
948
  */
946
949
  once(event, callback) {
950
+ console.log({
951
+ type: "Adiciona um listener para ser chamado apenas uma vez",
952
+ event
953
+ });
954
+ const wsClients = this.client.getWebSocketClients();
955
+ const wsClient = Array.from(wsClients.values()).find(
956
+ (client) => client.isConnected()
957
+ );
958
+ if (!wsClient) {
959
+ throw new Error(
960
+ `Nenhum WebSocket conectado dispon\xEDvel para '${this.id}'.`
961
+ );
962
+ }
963
+ const globalListener = (webSocketEvent) => {
964
+ if (isChannelEvent(webSocketEvent, this.id) && webSocketEvent.type === event) {
965
+ console.log(`Recebido evento '${event}' para canal '${this.id}'`);
966
+ this.emit(event, webSocketEvent);
967
+ callback(webSocketEvent);
968
+ wsClient.off("message", globalListener);
969
+ console.log(`Listener global para canal '${this.id}' foi removido.`);
970
+ }
971
+ };
972
+ wsClient.on("message", globalListener);
947
973
  super.once(event, callback);
948
974
  return this;
949
975
  }
@@ -1399,6 +1425,50 @@ var PlaybackInstance = class extends EventEmitter3 {
1399
1425
  }
1400
1426
  playbackData = null;
1401
1427
  id;
1428
+ /**
1429
+ * Adiciona um listener para eventos de playback.
1430
+ */
1431
+ on(event, callback) {
1432
+ super.on(event, callback);
1433
+ return this;
1434
+ }
1435
+ /**
1436
+ * Adiciona um listener para ser chamado apenas uma vez.
1437
+ */
1438
+ once(event, callback) {
1439
+ console.log({
1440
+ type: "Adiciona um listener para ser chamado apenas uma vez",
1441
+ event
1442
+ });
1443
+ const wsClients = this.client.getWebSocketClients();
1444
+ const wsClient = Array.from(wsClients.values()).find(
1445
+ (client) => client.isConnected()
1446
+ );
1447
+ if (!wsClient) {
1448
+ throw new Error(
1449
+ `Nenhum WebSocket conectado dispon\xEDvel para '${this.id}'.`
1450
+ );
1451
+ }
1452
+ const globalListener = (webSocketEvent) => {
1453
+ if (isPlaybackEvent(webSocketEvent, this.id) && webSocketEvent.type === event) {
1454
+ console.log(`Recebido evento '${event}' para playback '${this.id}'`);
1455
+ this.emit(event, webSocketEvent);
1456
+ callback(webSocketEvent);
1457
+ wsClient.off("message", globalListener);
1458
+ console.log(`Listener global para playback '${this.id}' foi removido.`);
1459
+ }
1460
+ };
1461
+ wsClient.on("message", globalListener);
1462
+ super.once(event, callback);
1463
+ return this;
1464
+ }
1465
+ /**
1466
+ * Remove um listener específico.
1467
+ */
1468
+ off(event, callback) {
1469
+ super.off(event, callback);
1470
+ return this;
1471
+ }
1402
1472
  /**
1403
1473
  * Obtém os detalhes do playback.
1404
1474
  */
@@ -1435,31 +1505,6 @@ var PlaybackInstance = class extends EventEmitter3 {
1435
1505
  await this.baseClient.delete(`/playbacks/${this.id}`);
1436
1506
  this.emit("PlaybackStopped", this.playbackData);
1437
1507
  }
1438
- /**
1439
- * Adiciona um listener para eventos de playback.
1440
- */
1441
- on(event, callback) {
1442
- super.on(event, callback);
1443
- return this;
1444
- }
1445
- /**
1446
- * Adiciona um listener para ser chamado apenas uma vez.
1447
- */
1448
- once(event, callback) {
1449
- console.log({
1450
- type: "Adiciona um listener para ser chamado apenas uma vez",
1451
- event
1452
- });
1453
- super.once(event, callback);
1454
- return this;
1455
- }
1456
- /**
1457
- * Remove um listener específico.
1458
- */
1459
- off(event, callback) {
1460
- super.off(event, callback);
1461
- return this;
1462
- }
1463
1508
  };
1464
1509
  var Playbacks = class extends EventEmitter3 {
1465
1510
  constructor(baseClient, client) {