@observertc/observer-js 1.0.1-9d3744d.0 → 1.0.1-b52220e.0
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/lib/ObservedCall.d.ts +2 -5
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +4 -30
- package/lib/ObservedClient.d.ts +11 -1
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +185 -4
- package/lib/ObservedClientEventMonitor.d.ts +89 -0
- package/lib/ObservedClientEventMonitor.d.ts.map +1 -0
- package/lib/ObservedClientEventMonitor.js +247 -0
- package/lib/ObservedDataChannel.d.ts +2 -0
- package/lib/ObservedDataChannel.d.ts.map +1 -1
- package/lib/ObservedDataChannel.js +2 -0
- package/lib/ObservedInboundTrack.d.ts +2 -0
- package/lib/ObservedInboundTrack.d.ts.map +1 -1
- package/lib/ObservedInboundTrack.js +2 -0
- package/lib/ObservedOutboundTrack.d.ts +2 -0
- package/lib/ObservedOutboundTrack.d.ts.map +1 -1
- package/lib/ObservedOutboundTrack.js +2 -0
- package/lib/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/ObservedPeerConnection.js +2 -0
- package/lib/Observer.d.ts +1 -1
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +3 -3
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/schema/ClientEventTypes.d.ts +60 -0
- package/lib/schema/ClientEventTypes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ObservedCall.ts +4 -35
- package/src/ObservedClient.ts +205 -5
- package/src/ObservedClientEventMonitor.ts +301 -0
- package/src/ObservedDataChannel.ts +3 -0
- package/src/ObservedInboundTrack.ts +3 -0
- package/src/ObservedOutboundTrack.ts +3 -0
- package/src/ObservedPeerConnection.ts +2 -0
- package/src/Observer.ts +3 -3
- package/src/index.ts +1 -0
- package/src/schema/ClientEventTypes.ts +64 -0
package/lib/ObservedCall.d.ts
CHANGED
|
@@ -20,8 +20,6 @@ export type ObservedCallEvents = {
|
|
|
20
20
|
empty: [];
|
|
21
21
|
'not-empty': [];
|
|
22
22
|
close: [];
|
|
23
|
-
started: [];
|
|
24
|
-
ended: [];
|
|
25
23
|
};
|
|
26
24
|
export declare interface ObservedCall {
|
|
27
25
|
on<U extends keyof ObservedCallEvents>(event: U, listener: (...args: ObservedCallEvents[U]) => void): this;
|
|
@@ -67,7 +65,8 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
|
|
|
67
65
|
appData: AppData;
|
|
68
66
|
closed: boolean;
|
|
69
67
|
startedAt?: number;
|
|
70
|
-
|
|
68
|
+
endedAt?: number;
|
|
69
|
+
closedAt?: number;
|
|
71
70
|
private _callStartedEvent;
|
|
72
71
|
private _callEndedEvent;
|
|
73
72
|
constructor(settings: ObservedCallSettings<AppData>, observer: Observer);
|
|
@@ -80,7 +79,5 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
|
|
|
80
79
|
private _onClientUpdate;
|
|
81
80
|
private _clientJoined;
|
|
82
81
|
private _clientLeft;
|
|
83
|
-
emitCallStartedEvent(): void;
|
|
84
|
-
emitCallEndedEvent(): void;
|
|
85
82
|
}
|
|
86
83
|
//# sourceMappingURL=ObservedCall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACrG,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;IACnD,YAAY,CAAC,EAAE,8BAA8B,GAAG,gCAAgC,GAAG,oBAAoB,CAAC;IACxG,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;IACV,WAAW,EAAE,EAAE,CAAC;IAChB,KAAK,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedCall.js
CHANGED
|
@@ -49,7 +49,8 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
49
49
|
appData;
|
|
50
50
|
closed = false;
|
|
51
51
|
startedAt;
|
|
52
|
-
|
|
52
|
+
endedAt;
|
|
53
|
+
closedAt;
|
|
53
54
|
_callStartedEvent;
|
|
54
55
|
_callEndedEvent;
|
|
55
56
|
constructor(settings, observer) {
|
|
@@ -103,9 +104,7 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
103
104
|
this.closed = true;
|
|
104
105
|
this.updater?.close();
|
|
105
106
|
[...this.observedClients.values()].forEach((client) => client.close());
|
|
106
|
-
|
|
107
|
-
this.emitCallStartedEvent();
|
|
108
|
-
this.emitCallEndedEvent();
|
|
107
|
+
this.closedAt = Date.now();
|
|
109
108
|
this.emit('close');
|
|
110
109
|
}
|
|
111
110
|
getObservedClient(clientId) {
|
|
@@ -194,36 +193,11 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
194
193
|
if (!client.joinedAt)
|
|
195
194
|
return;
|
|
196
195
|
this.startedAt = Math.min(this.startedAt ?? client.joinedAt, client.joinedAt);
|
|
197
|
-
if (this._callStartedEvent.emitted)
|
|
198
|
-
return;
|
|
199
|
-
if (this._callStartedEvent.timer) {
|
|
200
|
-
if (1 < this.observedClients.size) {
|
|
201
|
-
this.emitCallStartedEvent();
|
|
202
|
-
}
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
this._callStartedEvent.timer = setTimeout(() => {
|
|
206
|
-
this.emitCallStartedEvent();
|
|
207
|
-
}, 5000);
|
|
208
196
|
}
|
|
209
197
|
_clientLeft(client) {
|
|
210
198
|
if (!client.leftAt)
|
|
211
199
|
return;
|
|
212
|
-
this.
|
|
213
|
-
}
|
|
214
|
-
emitCallStartedEvent() {
|
|
215
|
-
if (this._callStartedEvent.emitted)
|
|
216
|
-
return;
|
|
217
|
-
this._callStartedEvent.emitted = true;
|
|
218
|
-
clearTimeout(this._callStartedEvent.timer);
|
|
219
|
-
this._callStartedEvent.timer = undefined;
|
|
220
|
-
this.emit('started');
|
|
221
|
-
}
|
|
222
|
-
emitCallEndedEvent() {
|
|
223
|
-
if (this._callEndedEvent.emitted)
|
|
224
|
-
return;
|
|
225
|
-
this._callEndedEvent.emitted = true;
|
|
226
|
-
this.emit('ended');
|
|
200
|
+
this.endedAt = Math.max(this.endedAt ?? client.leftAt, client.leftAt);
|
|
227
201
|
}
|
|
228
202
|
}
|
|
229
203
|
exports.ObservedCall = ObservedCall;
|
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
4
|
-
import { ClientMetaData, ClientSample, ClientIssue, ExtensionStat } from './schema/ClientSample';
|
|
4
|
+
import { ClientEvent, ClientMetaData, ClientSample, ClientIssue, ExtensionStat } from './schema/ClientSample';
|
|
5
5
|
import * as MetaData from './schema/ClientMetaTypes';
|
|
6
6
|
import { ObservedCall } from './ObservedCall';
|
|
7
7
|
import { CalculatedScore } from './scores/CalculatedScore';
|
|
8
8
|
import { Detectors } from './detectors/Detectors';
|
|
9
|
+
import { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
|
|
9
10
|
export type ObservedClientSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
|
|
10
11
|
clientId: string;
|
|
11
12
|
appData?: AppData;
|
|
@@ -46,6 +47,7 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
46
47
|
closed: boolean;
|
|
47
48
|
joinedAt?: number;
|
|
48
49
|
leftAt?: number;
|
|
50
|
+
closedAt?: number;
|
|
49
51
|
operationSystem?: MetaData.OperationSystem;
|
|
50
52
|
engine?: MetaData.Engine;
|
|
51
53
|
platform?: MetaData.Platform;
|
|
@@ -107,15 +109,23 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
107
109
|
totalNumberOfIssues: number;
|
|
108
110
|
readonly mediaDevices: MetaData.MediaDeviceInfo[];
|
|
109
111
|
issues: ClientIssue[];
|
|
112
|
+
private _injections;
|
|
110
113
|
constructor(settings: ObservedClientSettings<AppData>, call: ObservedCall);
|
|
111
114
|
get numberOfPeerConnections(): number;
|
|
112
115
|
get score(): number | undefined;
|
|
113
116
|
close(): void;
|
|
114
117
|
accept(sample: ClientSample): void;
|
|
115
118
|
private _processClientEvent;
|
|
119
|
+
injectMetaData(metaData: ClientMetaData): void;
|
|
120
|
+
injectEvent(event: ClientEvent): void;
|
|
121
|
+
injectIssue(issue: ClientIssue): void;
|
|
122
|
+
injectExtensionStat(stat: ExtensionStat): void;
|
|
123
|
+
injectAttachment(key: string, value: unknown): void;
|
|
116
124
|
addMetadata(metadata: ClientMetaData): void;
|
|
117
125
|
addIssue(issue: ClientIssue): void;
|
|
118
126
|
addExtensionStats(stats: ExtensionStat): void;
|
|
119
127
|
private _updatePeerConnection;
|
|
128
|
+
createEventMonitor<CTX = unknown>(ctx?: CTX): ObservedClientEventMonitor<CTX>;
|
|
129
|
+
private _mergeInjections;
|
|
120
130
|
}
|
|
121
131
|
//# sourceMappingURL=ObservedClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedClient.js
CHANGED
|
@@ -8,6 +8,7 @@ const ClientEventTypes_1 = require("./schema/ClientEventTypes");
|
|
|
8
8
|
const ClientMetaTypes_1 = require("./schema/ClientMetaTypes");
|
|
9
9
|
const utils_1 = require("./common/utils");
|
|
10
10
|
const Detectors_1 = require("./detectors/Detectors");
|
|
11
|
+
const ObservedClientEventMonitor_1 = require("./ObservedClientEventMonitor");
|
|
11
12
|
const logger = (0, logger_1.createLogger)('ObservedClient');
|
|
12
13
|
class ObservedClient extends events_1.EventEmitter {
|
|
13
14
|
call;
|
|
@@ -25,6 +26,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
25
26
|
closed = false;
|
|
26
27
|
joinedAt;
|
|
27
28
|
leftAt;
|
|
29
|
+
closedAt;
|
|
28
30
|
// the timestamp of the CLIENT_JOINED event
|
|
29
31
|
operationSystem;
|
|
30
32
|
engine;
|
|
@@ -87,6 +89,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
87
89
|
totalNumberOfIssues = 0;
|
|
88
90
|
mediaDevices = [];
|
|
89
91
|
issues = [];
|
|
92
|
+
_injections = {};
|
|
90
93
|
constructor(settings, call) {
|
|
91
94
|
super();
|
|
92
95
|
this.call = call;
|
|
@@ -106,6 +109,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
106
109
|
return;
|
|
107
110
|
this.closed = true;
|
|
108
111
|
Array.from(this.observedPeerConnections.values()).forEach((peerConnection) => peerConnection.close());
|
|
112
|
+
this.closedAt = Date.now();
|
|
109
113
|
this.emit('close');
|
|
110
114
|
}
|
|
111
115
|
accept(sample) {
|
|
@@ -146,8 +150,11 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
146
150
|
this.usingTCP = false;
|
|
147
151
|
this.currentMinRttInMs = undefined;
|
|
148
152
|
this.currentMaxRttInMs = undefined;
|
|
153
|
+
this._mergeInjections(sample);
|
|
154
|
+
const clientEventsPostBuffer = [];
|
|
149
155
|
for (const clientEvent of sample.clientEvents ?? []) {
|
|
150
|
-
this._processClientEvent(clientEvent);
|
|
156
|
+
this._processClientEvent(clientEvent, clientEventsPostBuffer);
|
|
157
|
+
this.call.observer.emit('client-event', this, clientEvent);
|
|
151
158
|
}
|
|
152
159
|
for (const metaData of sample.clientMetaItems ?? []) {
|
|
153
160
|
this.addMetadata(metaData);
|
|
@@ -212,7 +219,9 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
212
219
|
++numberOfRttMeasurements;
|
|
213
220
|
}
|
|
214
221
|
}
|
|
215
|
-
|
|
222
|
+
for (const clientEvent of clientEventsPostBuffer) {
|
|
223
|
+
this._processClientEvent(clientEvent);
|
|
224
|
+
}
|
|
216
225
|
// emit new attachments?
|
|
217
226
|
this.attachments = sample.attachments;
|
|
218
227
|
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
@@ -252,7 +261,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
252
261
|
++this.numberOfScoreMeasurements;
|
|
253
262
|
}
|
|
254
263
|
}
|
|
255
|
-
_processClientEvent(event) {
|
|
264
|
+
_processClientEvent(event, postBuffer) {
|
|
256
265
|
// eslint-disable-next-line no-console
|
|
257
266
|
// console.warn('ClientEvent', event);
|
|
258
267
|
switch (event.type) {
|
|
@@ -284,8 +293,142 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
284
293
|
}
|
|
285
294
|
break;
|
|
286
295
|
}
|
|
296
|
+
case ClientEventTypes_1.ClientEventTypes.PEER_CONNECTION_OPENED: {
|
|
297
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
298
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string') {
|
|
299
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
300
|
+
if (observedPeerConnection) {
|
|
301
|
+
observedPeerConnection.openedAt = event.timestamp;
|
|
302
|
+
}
|
|
303
|
+
else if (postBuffer) {
|
|
304
|
+
postBuffer.push(event);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
logger.warn('Received PEER_CONNECTION_OPENED event without a corresponding observedPeerConnection', event);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
case ClientEventTypes_1.ClientEventTypes.PEER_CONNECTION_CLOSED: {
|
|
313
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
314
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string') {
|
|
315
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
316
|
+
if (observedPeerConnection) {
|
|
317
|
+
observedPeerConnection.closedAt = event.timestamp;
|
|
318
|
+
}
|
|
319
|
+
else if (postBuffer) {
|
|
320
|
+
postBuffer.push(event);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
logger.warn('Received PEER_CONNECTION_CLOSED event without a corresponding observedPeerConnection', event);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
case ClientEventTypes_1.ClientEventTypes.MEDIA_TRACK_ADDED: {
|
|
329
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
330
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string' && payload?.trackId && typeof payload.trackId === 'string') {
|
|
331
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
332
|
+
const observedTrack = observedPeerConnection?.observedInboundTracks.get(payload.trackId) ?? observedPeerConnection?.observedOutboundTracks.get(payload.trackId);
|
|
333
|
+
if (observedTrack) {
|
|
334
|
+
observedTrack.addedAt = event.timestamp;
|
|
335
|
+
}
|
|
336
|
+
else if (postBuffer) {
|
|
337
|
+
postBuffer.push(event);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
logger.warn('Received MEDIA_TRACK_ADDED event without a corresponding observedPeerConnection or observedTrack', event);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
case ClientEventTypes_1.ClientEventTypes.MEDIA_TRACK_REMOVED: {
|
|
346
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
347
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string' && payload?.trackId && typeof payload.trackId === 'string') {
|
|
348
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
349
|
+
const observedTrack = observedPeerConnection?.observedInboundTracks.get(payload.trackId) ?? observedPeerConnection?.observedOutboundTracks.get(payload.trackId);
|
|
350
|
+
if (observedTrack) {
|
|
351
|
+
observedTrack.removedAt = event.timestamp;
|
|
352
|
+
}
|
|
353
|
+
else if (postBuffer) {
|
|
354
|
+
postBuffer.push(event);
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
logger.warn('Received MEDIA_TRACK_REMOVED event without a corresponding observedPeerConnection or observedTrack', event);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
case ClientEventTypes_1.ClientEventTypes.DATA_CHANNEL_OPEN: {
|
|
363
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
364
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string' && payload?.dataChannelId && typeof payload.dataChannelId === 'string') {
|
|
365
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
366
|
+
const observedDataChannel = observedPeerConnection?.observedDataChannels.get(payload.dataChannelId);
|
|
367
|
+
if (observedDataChannel) {
|
|
368
|
+
observedDataChannel.addedAt = event.timestamp;
|
|
369
|
+
}
|
|
370
|
+
else if (postBuffer) {
|
|
371
|
+
postBuffer.push(event);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
logger.warn('Received DATA_CHANNEL_OPENED event without a corresponding observedPeerConnection or observedDataChannel', event);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
case ClientEventTypes_1.ClientEventTypes.DATA_CHANNEL_CLOSED: {
|
|
380
|
+
const payload = (0, utils_1.parseJsonAs)(event.payload);
|
|
381
|
+
if (payload?.peerConnectionId && typeof payload.peerConnectionId === 'string' && payload?.dataChannelId && typeof payload.dataChannelId === 'string') {
|
|
382
|
+
const observedPeerConnection = this.observedPeerConnections.get(payload.peerConnectionId);
|
|
383
|
+
const observedDataChannel = observedPeerConnection?.observedDataChannels.get(payload.dataChannelId);
|
|
384
|
+
if (observedDataChannel) {
|
|
385
|
+
observedDataChannel.removedAt = event.timestamp;
|
|
386
|
+
}
|
|
387
|
+
else if (postBuffer) {
|
|
388
|
+
postBuffer.push(event);
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
logger.warn('Received DATA_CHANNEL_CLOSE event without a corresponding observedPeerConnection or observedDataChannel', event);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
break;
|
|
395
|
+
}
|
|
287
396
|
}
|
|
288
|
-
|
|
397
|
+
}
|
|
398
|
+
injectMetaData(metaData) {
|
|
399
|
+
if (this.closed)
|
|
400
|
+
return;
|
|
401
|
+
if (!this._injections.clientMetaItems)
|
|
402
|
+
this._injections.clientMetaItems = [];
|
|
403
|
+
this._injections.clientMetaItems.push(metaData);
|
|
404
|
+
}
|
|
405
|
+
injectEvent(event) {
|
|
406
|
+
if (this.closed)
|
|
407
|
+
return;
|
|
408
|
+
if (!this._injections.clientEvents)
|
|
409
|
+
this._injections.clientEvents = [];
|
|
410
|
+
this._injections.clientEvents.push(event);
|
|
411
|
+
}
|
|
412
|
+
injectIssue(issue) {
|
|
413
|
+
if (this.closed)
|
|
414
|
+
return;
|
|
415
|
+
if (!this._injections.clientIssues)
|
|
416
|
+
this._injections.clientIssues = [];
|
|
417
|
+
this._injections.clientIssues.push(issue);
|
|
418
|
+
}
|
|
419
|
+
injectExtensionStat(stat) {
|
|
420
|
+
if (this.closed)
|
|
421
|
+
return;
|
|
422
|
+
if (!this._injections.extensionStats)
|
|
423
|
+
this._injections.extensionStats = [];
|
|
424
|
+
this._injections.extensionStats.push(stat);
|
|
425
|
+
}
|
|
426
|
+
injectAttachment(key, value) {
|
|
427
|
+
if (this.closed)
|
|
428
|
+
return;
|
|
429
|
+
if (!this._injections.attachments)
|
|
430
|
+
this._injections.attachments = {};
|
|
431
|
+
this._injections.attachments[key] = value;
|
|
289
432
|
}
|
|
290
433
|
addMetadata(metadata) {
|
|
291
434
|
if (this.closed)
|
|
@@ -335,5 +478,43 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
335
478
|
observedPeerConnection.accept(sample);
|
|
336
479
|
return observedPeerConnection;
|
|
337
480
|
}
|
|
481
|
+
createEventMonitor(ctx) {
|
|
482
|
+
return new ObservedClientEventMonitor_1.ObservedClientEventMonitor(this, ctx ?? {});
|
|
483
|
+
}
|
|
484
|
+
_mergeInjections(sample) {
|
|
485
|
+
if (this.closed)
|
|
486
|
+
return sample;
|
|
487
|
+
if (this._injections.clientEvents) {
|
|
488
|
+
if (!sample.clientEvents)
|
|
489
|
+
sample.clientEvents = [];
|
|
490
|
+
sample.clientEvents.push(...this._injections.clientEvents);
|
|
491
|
+
this._injections.clientEvents = undefined;
|
|
492
|
+
}
|
|
493
|
+
if (this._injections.clientIssues) {
|
|
494
|
+
if (!sample.clientIssues)
|
|
495
|
+
sample.clientIssues = [];
|
|
496
|
+
sample.clientIssues.push(...this._injections.clientIssues);
|
|
497
|
+
this._injections.clientIssues = undefined;
|
|
498
|
+
}
|
|
499
|
+
if (this._injections.extensionStats) {
|
|
500
|
+
if (!sample.extensionStats)
|
|
501
|
+
sample.extensionStats = [];
|
|
502
|
+
sample.extensionStats.push(...this._injections.extensionStats);
|
|
503
|
+
this._injections.extensionStats = undefined;
|
|
504
|
+
}
|
|
505
|
+
if (this._injections.attachments) {
|
|
506
|
+
if (!sample.attachments)
|
|
507
|
+
sample.attachments = {};
|
|
508
|
+
Object.assign(sample.attachments, this._injections.attachments);
|
|
509
|
+
this._injections.attachments = undefined;
|
|
510
|
+
}
|
|
511
|
+
if (this._injections.clientMetaItems) {
|
|
512
|
+
if (!sample.clientMetaItems)
|
|
513
|
+
sample.clientMetaItems = [];
|
|
514
|
+
sample.clientMetaItems.push(...this._injections.clientMetaItems);
|
|
515
|
+
this._injections.clientMetaItems = undefined;
|
|
516
|
+
}
|
|
517
|
+
return sample;
|
|
518
|
+
}
|
|
338
519
|
}
|
|
339
520
|
exports.ObservedClient = ObservedClient;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ObservedCertificate } from './ObservedCertificate';
|
|
2
|
+
import { ObservedClient } from './ObservedClient';
|
|
3
|
+
import { ObservedCodec } from './ObservedCodec';
|
|
4
|
+
import { ObservedDataChannel } from './ObservedDataChannel';
|
|
5
|
+
import { ObservedIceCandidate } from './ObservedIceCandidate';
|
|
6
|
+
import { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
|
|
7
|
+
import { ObservedIceTransport } from './ObservedIceTransport';
|
|
8
|
+
import { ObservedInboundRtp } from './ObservedInboundRtp';
|
|
9
|
+
import { ObservedInboundTrack } from './ObservedInboundTrack';
|
|
10
|
+
import { ObservedMediaPlayout } from './ObservedMediaPlayout';
|
|
11
|
+
import { ObservedMediaSource } from './ObservedMediaSource';
|
|
12
|
+
import { ObservedOutboundRtp } from './ObservedOutboundRtp';
|
|
13
|
+
import { ObservedOutboundTrack } from './ObservedOutboundTrack';
|
|
14
|
+
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
15
|
+
import { ClientIssue, ClientMetaData, ExtensionStat } from './schema/ClientSample';
|
|
16
|
+
export declare class ObservedClientEventMonitor<Context> {
|
|
17
|
+
readonly observedClient: ObservedClient;
|
|
18
|
+
readonly context: Context;
|
|
19
|
+
constructor(observedClient: ObservedClient, context: Context);
|
|
20
|
+
onClientClosed?: (client: ObservedClient, ctx: Context) => void;
|
|
21
|
+
private _onClientClosed;
|
|
22
|
+
onPeerConnectionAdded?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
|
|
23
|
+
private _onPeerConnconnectionAdded;
|
|
24
|
+
onPeerConnectionRemoved?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
|
|
25
|
+
private _onPeerConnectionRemoved;
|
|
26
|
+
onCertificateAdded?: (certificate: ObservedCertificate, ctx: Context) => void;
|
|
27
|
+
private _onCertificateAdded;
|
|
28
|
+
onCertificateRemoved?: (certificate: ObservedCertificate, ctx: Context) => void;
|
|
29
|
+
private _onCertificateRemoved;
|
|
30
|
+
onInboundTrackAdded?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
|
|
31
|
+
private _onInboundTrackAdded;
|
|
32
|
+
onInboundTrackRemoved?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
|
|
33
|
+
private _onInboundTrackRemoved;
|
|
34
|
+
onOutboundTrackAdded?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
|
|
35
|
+
private _onOutboundTrackAdded;
|
|
36
|
+
onOutboundTrackRemoved?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
|
|
37
|
+
private _onOutboundTrackRemoved;
|
|
38
|
+
onInboundRtpAdded?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
|
|
39
|
+
private _onInboundRtpAdded;
|
|
40
|
+
onInboundRtpRemoved?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
|
|
41
|
+
private _onInboundRtpRemoved;
|
|
42
|
+
onOutboundRtpAdded?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
|
|
43
|
+
private _onOutboundRtpAdded;
|
|
44
|
+
onOutboundRtpRemoved?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
|
|
45
|
+
private _onOutboundRtpRemoved;
|
|
46
|
+
onDataChannelAdded?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
|
|
47
|
+
private _onDataChannelAdded;
|
|
48
|
+
onDataChannelRemoved?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
|
|
49
|
+
private _onDataChannelRemoved;
|
|
50
|
+
onAddedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
|
|
51
|
+
private _onAddedIceTransport;
|
|
52
|
+
onRemovedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
|
|
53
|
+
private _onRemovedIceTransport;
|
|
54
|
+
onIceCandidateAdded?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
|
|
55
|
+
private _onIceCandidateAdded;
|
|
56
|
+
onIceCandidateRemoved?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
|
|
57
|
+
private _onIceCandidateRemoved;
|
|
58
|
+
onAddedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
|
|
59
|
+
private _onAddedIceCandidatePair;
|
|
60
|
+
onRemovedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
|
|
61
|
+
private _onRemovedIceCandidatePair;
|
|
62
|
+
onAddedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
|
|
63
|
+
private _onAddedMediaCodec;
|
|
64
|
+
onRemovedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
|
|
65
|
+
private _onRemovedMediaCodec;
|
|
66
|
+
onAddedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
|
|
67
|
+
private _onAddedMediaPlayout;
|
|
68
|
+
onRemovedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
|
|
69
|
+
private _onRemovedMediaPlayout;
|
|
70
|
+
onMediaSourceAdded?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
71
|
+
private _onMediaSourceAdded;
|
|
72
|
+
onMediaSourceRemoved?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
73
|
+
private _onMediaSourceRemoved;
|
|
74
|
+
onClientIssue?: (issue: ClientIssue, ctx: Context) => void;
|
|
75
|
+
private _onClientIssue;
|
|
76
|
+
onClientMetadata?: (metadata: ClientMetaData, ctx: Context) => void;
|
|
77
|
+
private _onClientMetadata;
|
|
78
|
+
onClientExtensionStats?: (extensionStats: ExtensionStat, ctx: Context) => void;
|
|
79
|
+
private _onClientExtensionStats;
|
|
80
|
+
onClientJoined?: (client: ObservedClient, ctx: Context) => void;
|
|
81
|
+
private _onClientJoined;
|
|
82
|
+
onClientLeft?: (client: ObservedClient, ctx: Context) => void;
|
|
83
|
+
private _onClientLeft;
|
|
84
|
+
onUserMediaError?: (error: string, observedClient: ObservedClient, ctx: Context) => void;
|
|
85
|
+
private _onUserMediaError;
|
|
86
|
+
onUsingTurn?: (client: ObservedClient, ctx: Context) => void;
|
|
87
|
+
private _onUsingTurn;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=ObservedClientEventMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObservedClientEventMonitor.d.ts","sourceRoot":"","sources":["../src/ObservedClientEventMonitor.ts"],"names":[],"mappings":"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"}
|