@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/cjs/index.cjs
CHANGED
|
@@ -596,9 +596,11 @@ module.exports = __toCommonJS(src_exports);
|
|
|
596
596
|
var import_exponential_backoff = __toESM(require_backoff(), 1);
|
|
597
597
|
|
|
598
598
|
// src/ari-client/baseClient.ts
|
|
599
|
+
var import_events = require("events");
|
|
599
600
|
var import_axios = __toESM(require("axios"), 1);
|
|
600
601
|
var BaseClient = class {
|
|
601
602
|
client;
|
|
603
|
+
eventEmitter = new import_events.EventEmitter();
|
|
602
604
|
constructor(baseUrl, username, password) {
|
|
603
605
|
this.client = import_axios.default.create({
|
|
604
606
|
baseURL: baseUrl,
|
|
@@ -639,6 +641,18 @@ var BaseClient = class {
|
|
|
639
641
|
const response = await this.client.delete(path);
|
|
640
642
|
return response.data;
|
|
641
643
|
}
|
|
644
|
+
/**
|
|
645
|
+
* Escuta eventos do WebSocket.
|
|
646
|
+
*/
|
|
647
|
+
onWebSocketEvent(callback) {
|
|
648
|
+
this.eventEmitter.on("websocketEvent", callback);
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Emite eventos do WebSocket.
|
|
652
|
+
*/
|
|
653
|
+
emitWebSocketEvent(event) {
|
|
654
|
+
this.eventEmitter.emit("websocketEvent", event);
|
|
655
|
+
}
|
|
642
656
|
};
|
|
643
657
|
|
|
644
658
|
// src/ari-client/resources/applications.ts
|
|
@@ -857,7 +871,7 @@ var Bridges = class {
|
|
|
857
871
|
};
|
|
858
872
|
|
|
859
873
|
// src/ari-client/resources/channels.ts
|
|
860
|
-
var
|
|
874
|
+
var import_events2 = require("events");
|
|
861
875
|
|
|
862
876
|
// src/ari-client/utils.ts
|
|
863
877
|
function toQueryParams2(options) {
|
|
@@ -887,7 +901,7 @@ var channelEvents = [
|
|
|
887
901
|
];
|
|
888
902
|
|
|
889
903
|
// src/ari-client/resources/channels.ts
|
|
890
|
-
var ChannelInstance = class extends
|
|
904
|
+
var ChannelInstance = class extends import_events2.EventEmitter {
|
|
891
905
|
constructor(client, baseClient, channelId = `channel-${Date.now()}`) {
|
|
892
906
|
super();
|
|
893
907
|
this.client = client;
|
|
@@ -1086,7 +1100,7 @@ var ChannelInstance = class extends import_events.EventEmitter {
|
|
|
1086
1100
|
await this.baseClient.delete(`/channels/${this.channelData.id}/hold`);
|
|
1087
1101
|
}
|
|
1088
1102
|
};
|
|
1089
|
-
var Channels = class extends
|
|
1103
|
+
var Channels = class extends import_events2.EventEmitter {
|
|
1090
1104
|
constructor(baseClient, client) {
|
|
1091
1105
|
super();
|
|
1092
1106
|
this.baseClient = baseClient;
|
|
@@ -1302,17 +1316,28 @@ var Endpoints = class {
|
|
|
1302
1316
|
};
|
|
1303
1317
|
|
|
1304
1318
|
// src/ari-client/resources/playbacks.ts
|
|
1305
|
-
var
|
|
1306
|
-
var PlaybackInstance = class extends
|
|
1319
|
+
var import_events3 = require("events");
|
|
1320
|
+
var PlaybackInstance = class extends import_events3.EventEmitter {
|
|
1307
1321
|
// Garantimos que o ID esteja disponível
|
|
1308
1322
|
constructor(baseClient, playbackId) {
|
|
1309
1323
|
super();
|
|
1310
1324
|
this.baseClient = baseClient;
|
|
1311
1325
|
this.playbackId = playbackId;
|
|
1312
1326
|
this.id = playbackId || `playback-${Date.now()}`;
|
|
1327
|
+
this.baseClient.onWebSocketEvent((event) => {
|
|
1328
|
+
if (this.isPlaybackEvent(event) && event.playbackId === this.playbackId) {
|
|
1329
|
+
this.emit(event.type, event);
|
|
1330
|
+
}
|
|
1331
|
+
});
|
|
1313
1332
|
}
|
|
1314
1333
|
playbackData = null;
|
|
1315
1334
|
id;
|
|
1335
|
+
/**
|
|
1336
|
+
* Verifica se o evento é relacionado a um playback.
|
|
1337
|
+
*/
|
|
1338
|
+
isPlaybackEvent(event) {
|
|
1339
|
+
return event && typeof event === "object" && "playbackId" in event;
|
|
1340
|
+
}
|
|
1316
1341
|
/**
|
|
1317
1342
|
* Obtém os detalhes do playback.
|
|
1318
1343
|
*/
|
|
@@ -1320,8 +1345,9 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1320
1345
|
if (!this.playbackId && !this.playbackData) {
|
|
1321
1346
|
throw new Error("Nenhum playback associado a esta inst\xE2ncia.");
|
|
1322
1347
|
}
|
|
1323
|
-
const
|
|
1324
|
-
|
|
1348
|
+
const details = await this.baseClient.get(
|
|
1349
|
+
`/playbacks/${this.id}`
|
|
1350
|
+
);
|
|
1325
1351
|
this.playbackData = details;
|
|
1326
1352
|
return details;
|
|
1327
1353
|
}
|
|
@@ -1332,7 +1358,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1332
1358
|
if (!this.playbackId) {
|
|
1333
1359
|
throw new Error("Nenhum playback associado para controlar.");
|
|
1334
1360
|
}
|
|
1335
|
-
await this.baseClient.post(`/playbacks/${this.
|
|
1361
|
+
await this.baseClient.post(`/playbacks/${this.id}/control`, {
|
|
1336
1362
|
operation
|
|
1337
1363
|
});
|
|
1338
1364
|
}
|
|
@@ -1343,7 +1369,7 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1343
1369
|
if (!this.playbackId) {
|
|
1344
1370
|
throw new Error("Nenhum playback associado para encerrar.");
|
|
1345
1371
|
}
|
|
1346
|
-
await this.baseClient.post(`/playbacks/${this.
|
|
1372
|
+
await this.baseClient.post(`/playbacks/${this.id}/stop`);
|
|
1347
1373
|
this.emit("PlaybackStopped", this.playbackData);
|
|
1348
1374
|
}
|
|
1349
1375
|
/**
|
|
@@ -1368,10 +1394,25 @@ var PlaybackInstance = class extends import_events2.EventEmitter {
|
|
|
1368
1394
|
return this;
|
|
1369
1395
|
}
|
|
1370
1396
|
};
|
|
1371
|
-
var Playbacks = class extends
|
|
1397
|
+
var Playbacks = class extends import_events3.EventEmitter {
|
|
1372
1398
|
constructor(client) {
|
|
1373
1399
|
super();
|
|
1374
1400
|
this.client = client;
|
|
1401
|
+
this.client.onWebSocketEvent((event) => {
|
|
1402
|
+
if (this.isPlaybackEvent(event)) {
|
|
1403
|
+
const playbackId = event.playbackId;
|
|
1404
|
+
if (playbackId) {
|
|
1405
|
+
this.emit(`${event.type}:${playbackId}`, event);
|
|
1406
|
+
}
|
|
1407
|
+
this.emit(event.type, event);
|
|
1408
|
+
}
|
|
1409
|
+
});
|
|
1410
|
+
}
|
|
1411
|
+
/**
|
|
1412
|
+
* Verifica se o evento é relacionado a um playback.
|
|
1413
|
+
*/
|
|
1414
|
+
isPlaybackEvent(event) {
|
|
1415
|
+
return event && typeof event === "object" && "playbackId" in event;
|
|
1375
1416
|
}
|
|
1376
1417
|
/**
|
|
1377
1418
|
* Inicializa uma nova instância de `PlaybackInstance`.
|
|
@@ -1494,9 +1535,9 @@ var Sounds = class {
|
|
|
1494
1535
|
};
|
|
1495
1536
|
|
|
1496
1537
|
// src/ari-client/websocketClient.ts
|
|
1497
|
-
var
|
|
1538
|
+
var import_events4 = require("events");
|
|
1498
1539
|
var import_ws = __toESM(require("ws"), 1);
|
|
1499
|
-
var WebSocketClient = class extends
|
|
1540
|
+
var WebSocketClient = class extends import_events4.EventEmitter {
|
|
1500
1541
|
/**
|
|
1501
1542
|
* Creates a new WebSocketClient instance.
|
|
1502
1543
|
* @param url - The WebSocket server URL to connect to.
|