@ipcom/asterisk-ari 0.0.50 → 0.0.52
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 +53 -12
- package/dist/cjs/index.cjs.map +3 -3
- package/dist/esm/index.js +53 -12
- package/dist/esm/index.js.map +3 -3
- package/dist/types/ari-client/baseClient.d.ts +10 -0
- package/dist/types/ari-client/baseClient.d.ts.map +1 -1
- package/dist/types/ari-client/resources/playbacks.d.ts +8 -0
- package/dist/types/ari-client/resources/playbacks.d.ts.map +1 -1
- package/package.json +2 -1
package/dist/esm/index.js
CHANGED
|
@@ -574,9 +574,11 @@ var require_backoff = __commonJS({
|
|
|
574
574
|
var import_exponential_backoff = __toESM(require_backoff(), 1);
|
|
575
575
|
|
|
576
576
|
// src/ari-client/baseClient.ts
|
|
577
|
+
import { EventEmitter } from "events";
|
|
577
578
|
import axios from "axios";
|
|
578
579
|
var BaseClient = class {
|
|
579
580
|
client;
|
|
581
|
+
eventEmitter = new EventEmitter();
|
|
580
582
|
constructor(baseUrl, username, password) {
|
|
581
583
|
this.client = axios.create({
|
|
582
584
|
baseURL: baseUrl,
|
|
@@ -617,6 +619,18 @@ var BaseClient = class {
|
|
|
617
619
|
const response = await this.client.delete(path);
|
|
618
620
|
return response.data;
|
|
619
621
|
}
|
|
622
|
+
/**
|
|
623
|
+
* Escuta eventos do WebSocket.
|
|
624
|
+
*/
|
|
625
|
+
onWebSocketEvent(callback) {
|
|
626
|
+
this.eventEmitter.on("websocketEvent", callback);
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* Emite eventos do WebSocket.
|
|
630
|
+
*/
|
|
631
|
+
emitWebSocketEvent(event) {
|
|
632
|
+
this.eventEmitter.emit("websocketEvent", event);
|
|
633
|
+
}
|
|
620
634
|
};
|
|
621
635
|
|
|
622
636
|
// src/ari-client/resources/applications.ts
|
|
@@ -835,7 +849,7 @@ var Bridges = class {
|
|
|
835
849
|
};
|
|
836
850
|
|
|
837
851
|
// src/ari-client/resources/channels.ts
|
|
838
|
-
import { EventEmitter } from "events";
|
|
852
|
+
import { EventEmitter as EventEmitter2 } from "events";
|
|
839
853
|
|
|
840
854
|
// src/ari-client/utils.ts
|
|
841
855
|
function toQueryParams2(options) {
|
|
@@ -865,7 +879,7 @@ var channelEvents = [
|
|
|
865
879
|
];
|
|
866
880
|
|
|
867
881
|
// src/ari-client/resources/channels.ts
|
|
868
|
-
var ChannelInstance = class extends
|
|
882
|
+
var ChannelInstance = class extends EventEmitter2 {
|
|
869
883
|
constructor(client, baseClient, channelId = `channel-${Date.now()}`) {
|
|
870
884
|
super();
|
|
871
885
|
this.client = client;
|
|
@@ -1064,7 +1078,7 @@ var ChannelInstance = class extends EventEmitter {
|
|
|
1064
1078
|
await this.baseClient.delete(`/channels/${this.channelData.id}/hold`);
|
|
1065
1079
|
}
|
|
1066
1080
|
};
|
|
1067
|
-
var Channels = class extends
|
|
1081
|
+
var Channels = class extends EventEmitter2 {
|
|
1068
1082
|
constructor(baseClient, client) {
|
|
1069
1083
|
super();
|
|
1070
1084
|
this.baseClient = baseClient;
|
|
@@ -1280,17 +1294,28 @@ var Endpoints = class {
|
|
|
1280
1294
|
};
|
|
1281
1295
|
|
|
1282
1296
|
// src/ari-client/resources/playbacks.ts
|
|
1283
|
-
import { EventEmitter as
|
|
1284
|
-
var PlaybackInstance = class extends
|
|
1297
|
+
import { EventEmitter as EventEmitter3 } from "events";
|
|
1298
|
+
var PlaybackInstance = class extends EventEmitter3 {
|
|
1285
1299
|
// Garantimos que o ID esteja disponível
|
|
1286
1300
|
constructor(baseClient, playbackId) {
|
|
1287
1301
|
super();
|
|
1288
1302
|
this.baseClient = baseClient;
|
|
1289
1303
|
this.playbackId = playbackId;
|
|
1290
1304
|
this.id = playbackId || `playback-${Date.now()}`;
|
|
1305
|
+
this.baseClient.onWebSocketEvent((event) => {
|
|
1306
|
+
if (this.isPlaybackEvent(event) && event.playbackId === this.playbackId) {
|
|
1307
|
+
this.emit(event.type, event);
|
|
1308
|
+
}
|
|
1309
|
+
});
|
|
1291
1310
|
}
|
|
1292
1311
|
playbackData = null;
|
|
1293
1312
|
id;
|
|
1313
|
+
/**
|
|
1314
|
+
* Verifica se o evento é relacionado a um playback.
|
|
1315
|
+
*/
|
|
1316
|
+
isPlaybackEvent(event) {
|
|
1317
|
+
return event && typeof event === "object" && "playbackId" in event;
|
|
1318
|
+
}
|
|
1294
1319
|
/**
|
|
1295
1320
|
* Obtém os detalhes do playback.
|
|
1296
1321
|
*/
|
|
@@ -1298,8 +1323,9 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1298
1323
|
if (!this.playbackId && !this.playbackData) {
|
|
1299
1324
|
throw new Error("Nenhum playback associado a esta inst\xE2ncia.");
|
|
1300
1325
|
}
|
|
1301
|
-
const
|
|
1302
|
-
|
|
1326
|
+
const details = await this.baseClient.get(
|
|
1327
|
+
`/playbacks/${this.id}`
|
|
1328
|
+
);
|
|
1303
1329
|
this.playbackData = details;
|
|
1304
1330
|
return details;
|
|
1305
1331
|
}
|
|
@@ -1310,7 +1336,7 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1310
1336
|
if (!this.playbackId) {
|
|
1311
1337
|
throw new Error("Nenhum playback associado para controlar.");
|
|
1312
1338
|
}
|
|
1313
|
-
await this.baseClient.post(`/playbacks/${this.
|
|
1339
|
+
await this.baseClient.post(`/playbacks/${this.id}/control`, {
|
|
1314
1340
|
operation
|
|
1315
1341
|
});
|
|
1316
1342
|
}
|
|
@@ -1321,7 +1347,7 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1321
1347
|
if (!this.playbackId) {
|
|
1322
1348
|
throw new Error("Nenhum playback associado para encerrar.");
|
|
1323
1349
|
}
|
|
1324
|
-
await this.baseClient.post(`/playbacks/${this.
|
|
1350
|
+
await this.baseClient.post(`/playbacks/${this.id}/stop`);
|
|
1325
1351
|
this.emit("PlaybackStopped", this.playbackData);
|
|
1326
1352
|
}
|
|
1327
1353
|
/**
|
|
@@ -1346,10 +1372,25 @@ var PlaybackInstance = class extends EventEmitter2 {
|
|
|
1346
1372
|
return this;
|
|
1347
1373
|
}
|
|
1348
1374
|
};
|
|
1349
|
-
var Playbacks = class extends
|
|
1375
|
+
var Playbacks = class extends EventEmitter3 {
|
|
1350
1376
|
constructor(client) {
|
|
1351
1377
|
super();
|
|
1352
1378
|
this.client = client;
|
|
1379
|
+
this.client.onWebSocketEvent((event) => {
|
|
1380
|
+
if (this.isPlaybackEvent(event)) {
|
|
1381
|
+
const playbackId = event.playbackId;
|
|
1382
|
+
if (playbackId) {
|
|
1383
|
+
this.emit(`${event.type}:${playbackId}`, event);
|
|
1384
|
+
}
|
|
1385
|
+
this.emit(event.type, event);
|
|
1386
|
+
}
|
|
1387
|
+
});
|
|
1388
|
+
}
|
|
1389
|
+
/**
|
|
1390
|
+
* Verifica se o evento é relacionado a um playback.
|
|
1391
|
+
*/
|
|
1392
|
+
isPlaybackEvent(event) {
|
|
1393
|
+
return event && typeof event === "object" && "playbackId" in event;
|
|
1353
1394
|
}
|
|
1354
1395
|
/**
|
|
1355
1396
|
* Inicializa uma nova instância de `PlaybackInstance`.
|
|
@@ -1472,9 +1513,9 @@ var Sounds = class {
|
|
|
1472
1513
|
};
|
|
1473
1514
|
|
|
1474
1515
|
// src/ari-client/websocketClient.ts
|
|
1475
|
-
import { EventEmitter as
|
|
1516
|
+
import { EventEmitter as EventEmitter4 } from "events";
|
|
1476
1517
|
import WebSocket from "ws";
|
|
1477
|
-
var WebSocketClient = class extends
|
|
1518
|
+
var WebSocketClient = class extends EventEmitter4 {
|
|
1478
1519
|
/**
|
|
1479
1520
|
* Creates a new WebSocketClient instance.
|
|
1480
1521
|
* @param url - The WebSocket server URL to connect to.
|