@observertc/observer-js 1.0.1-620842f.0 → 1.0.1-eb834f5.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 +0 -1
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +12 -20
- package/lib/ObservedCertificate.d.ts +0 -1
- package/lib/ObservedCertificate.d.ts.map +1 -1
- package/lib/ObservedCertificate.js +1 -8
- package/lib/ObservedClient.d.ts +5 -7
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +49 -38
- package/lib/ObservedCodec.js +1 -5
- package/lib/ObservedDataChannel.js +1 -5
- package/lib/ObservedIceCandidate.js +1 -5
- package/lib/ObservedIceCandidatePair.js +1 -5
- package/lib/ObservedIceTransport.js +1 -5
- package/lib/ObservedInboundRtp.js +1 -5
- package/lib/ObservedInboundTrack.js +3 -7
- package/lib/ObservedMediaPlayout.js +1 -5
- package/lib/ObservedMediaSource.js +1 -5
- package/lib/ObservedOutboundRtp.js +1 -5
- package/lib/ObservedOutboundTrack.js +3 -7
- package/lib/ObservedPeerConnection.js +34 -38
- package/lib/ObservedPeerConnectionTransport.js +1 -5
- package/lib/ObservedRemoteInboundRtp.js +1 -5
- package/lib/ObservedRemoteOutboundRtp.js +1 -5
- package/lib/Observer.d.ts +15 -8
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +45 -10
- package/lib/common/Middleware.js +1 -5
- package/lib/common/SingleExecutor.js +1 -5
- package/lib/common/logger.js +2 -7
- package/lib/common/types.js +1 -2
- package/lib/common/utils.js +5 -13
- package/lib/detectors/Detector.js +1 -2
- package/lib/detectors/Detectors.js +3 -7
- package/lib/index.d.ts +0 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -41
- package/lib/schema/ClientSample.js +1 -4
- package/lib/schema/{ClientEventTypes.d.ts → eventTypes.d.ts} +2 -2
- package/lib/schema/eventTypes.d.ts.map +1 -0
- package/lib/schema/eventTypes.js +35 -0
- package/lib/schema/{ClientMetaTypes.d.ts → metaTypes.d.ts} +2 -2
- package/lib/schema/metaTypes.d.ts.map +1 -0
- package/lib/schema/metaTypes.js +13 -0
- package/lib/scores/CalculatedScore.js +1 -2
- package/lib/scores/DefaultCallScoreCalculator.js +1 -5
- package/lib/scores/ScoreCalculator.js +1 -2
- package/lib/utils/CallUpdater.js +1 -2
- package/lib/utils/OnAllClientCallUpdater.js +1 -5
- package/lib/utils/RemoteTrackResolver.js +1 -2
- package/lib/utils/onAnyClientCallUpdater.js +1 -5
- package/package.json +1 -1
- package/src/ObservedCall.ts +1 -7
- package/src/ObservedCertificate.ts +0 -4
- package/src/ObservedClient.ts +37 -24
- package/src/Observer.ts +64 -9
- package/src/index.ts +0 -4
- package/src/schema/{ClientEventTypes.ts → eventTypes.ts} +1 -1
- package/src/schema/{ClientMetaTypes.ts → metaTypes.ts} +1 -1
- package/tsconfig.json +3 -3
- package/lib/schema/ClientEventTypes.d.ts.map +0 -1
- package/lib/schema/ClientEventTypes.js +0 -38
- package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
- package/lib/schema/ClientMetaTypes.js +0 -16
package/lib/ObservedCall.d.ts
CHANGED
|
@@ -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;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,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,iBAAiB,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;IACV,
|
|
1
|
+
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedCall.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const OnAllClientCallUpdater_1 = require("./utils/OnAllClientCallUpdater");
|
|
9
|
-
const onAnyClientCallUpdater_1 = require("./utils/onAnyClientCallUpdater");
|
|
10
|
-
class ObservedCall extends events_1.EventEmitter {
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { ObservedClient } from './ObservedClient';
|
|
3
|
+
import { DefaultCallScoreCalculator } from './scores/DefaultCallScoreCalculator';
|
|
4
|
+
import { Detectors } from './detectors/Detectors';
|
|
5
|
+
import { OnAllClientCallUpdater } from './utils/OnAllClientCallUpdater';
|
|
6
|
+
import { OnAnyClientCallUpdater } from './utils/onAnyClientCallUpdater';
|
|
7
|
+
export class ObservedCall extends EventEmitter {
|
|
11
8
|
observer;
|
|
12
9
|
detectors;
|
|
13
10
|
callId;
|
|
@@ -29,14 +26,14 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
29
26
|
this.setMaxListeners(Infinity);
|
|
30
27
|
this.callId = settings.callId;
|
|
31
28
|
this.appData = settings.appData;
|
|
32
|
-
this.scoreCalculator = new
|
|
33
|
-
this.detectors = new
|
|
29
|
+
this.scoreCalculator = new DefaultCallScoreCalculator(this);
|
|
30
|
+
this.detectors = new Detectors();
|
|
34
31
|
switch (settings.callUpdaterPolicy) {
|
|
35
32
|
case 'onAllClientsUpdate':
|
|
36
|
-
this.callUpdater = new
|
|
33
|
+
this.callUpdater = new OnAllClientCallUpdater(this);
|
|
37
34
|
break;
|
|
38
35
|
case 'onAnyClientUpdate':
|
|
39
|
-
this.callUpdater = new
|
|
36
|
+
this.callUpdater = new OnAnyClientCallUpdater(this);
|
|
40
37
|
break;
|
|
41
38
|
}
|
|
42
39
|
switch (settings.remoteTrackResolvePolicy) {
|
|
@@ -64,8 +61,7 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
64
61
|
throw new Error(`Call ${this.callId} is closed`);
|
|
65
62
|
if (this.observedClients.has(settings.clientId))
|
|
66
63
|
throw new Error(`Client with id ${settings.clientId} already exists`);
|
|
67
|
-
const result = new
|
|
68
|
-
const wasEmpty = this.observedClients.size === 0;
|
|
64
|
+
const result = new ObservedClient(settings, this);
|
|
69
65
|
const onUpdate = () => this.callUpdater?.onClientUpdate(result);
|
|
70
66
|
result.once('close', () => {
|
|
71
67
|
result.off('update', onUpdate);
|
|
@@ -77,9 +73,6 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
77
73
|
result.on('update', onUpdate);
|
|
78
74
|
this.observedClients.set(settings.clientId, result);
|
|
79
75
|
this.emit('newclient', result);
|
|
80
|
-
if (wasEmpty) {
|
|
81
|
-
this.emit('not-empty');
|
|
82
|
-
}
|
|
83
76
|
return result;
|
|
84
77
|
}
|
|
85
78
|
update() {
|
|
@@ -88,4 +81,3 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
88
81
|
this.emit('update');
|
|
89
82
|
}
|
|
90
83
|
}
|
|
91
|
-
exports.ObservedCall = ObservedCall;
|
|
@@ -13,7 +13,6 @@ export declare class ObservedCertificate implements CertificateStats {
|
|
|
13
13
|
attachments?: Record<string, unknown>;
|
|
14
14
|
constructor(timestamp: number, id: string, _peerConnection: ObservedPeerConnection);
|
|
15
15
|
get visited(): boolean;
|
|
16
|
-
getPeerConnection(): ObservedPeerConnection;
|
|
17
16
|
update(stats: CertificateStats): void;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=ObservedCertificate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedCertificate.d.ts","sourceRoot":"","sources":["../src/ObservedCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,mBAAoB,YAAW,gBAAgB;IAYnD,SAAS,EAAE,MAAM;IACjB,EAAE,EAAE,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAb1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAS;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG9B,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACA,eAAe,EAAE,sBAAsB;IAGzD,IAAW,OAAO,YAMjB;IAEM,
|
|
1
|
+
{"version":3,"file":"ObservedCertificate.d.ts","sourceRoot":"","sources":["../src/ObservedCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,mBAAoB,YAAW,gBAAgB;IAYnD,SAAS,EAAE,MAAM;IACjB,EAAE,EAAE,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAb1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAS;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG9B,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACA,eAAe,EAAE,sBAAsB;IAGzD,IAAW,OAAO,YAMjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB;CAUrC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedCertificate = void 0;
|
|
4
|
-
class ObservedCertificate {
|
|
1
|
+
export class ObservedCertificate {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
_peerConnection;
|
|
@@ -22,9 +19,6 @@ class ObservedCertificate {
|
|
|
22
19
|
this._visited = false;
|
|
23
20
|
return visited;
|
|
24
21
|
}
|
|
25
|
-
getPeerConnection() {
|
|
26
|
-
return this._peerConnection;
|
|
27
|
-
}
|
|
28
22
|
update(stats) {
|
|
29
23
|
this._visited = true;
|
|
30
24
|
this.timestamp = stats.timestamp;
|
|
@@ -35,4 +29,3 @@ class ObservedCertificate {
|
|
|
35
29
|
this.attachments = stats.attachments;
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
|
-
exports.ObservedCertificate = ObservedCertificate;
|
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
4
|
-
import {
|
|
5
|
-
import * as MetaData from './schema/
|
|
4
|
+
import { ClientSample, ClientIssue } from './schema/ClientSample';
|
|
5
|
+
import * as MetaData from './schema/metaTypes';
|
|
6
6
|
import { ObservedCall } from './ObservedCall';
|
|
7
7
|
import { CalculatedScore } from './scores/CalculatedScore';
|
|
8
8
|
import { Detectors } from './detectors/Detectors';
|
|
@@ -19,8 +19,6 @@ export type ObservedClientEvents = {
|
|
|
19
19
|
];
|
|
20
20
|
close: [];
|
|
21
21
|
joined: [];
|
|
22
|
-
issue: [ClientIssue];
|
|
23
|
-
metaData: [ClientMetaData];
|
|
24
22
|
rejoined: [timestamp: number];
|
|
25
23
|
left: [];
|
|
26
24
|
usingturn: [boolean];
|
|
@@ -66,9 +64,9 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
66
64
|
close(): void;
|
|
67
65
|
accept(sample: ClientSample): void;
|
|
68
66
|
private _processClientEvent;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
private _processMetaData;
|
|
68
|
+
private _processIssue;
|
|
69
|
+
private _processExtensionStats;
|
|
72
70
|
private _updatePeerConnection;
|
|
73
71
|
}
|
|
74
72
|
//# 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
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const Detectors_1 = require("./detectors/Detectors");
|
|
11
|
-
const logger = (0, logger_1.createLogger)('ObservedClient');
|
|
12
|
-
class ObservedClient extends events_1.EventEmitter {
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
3
|
+
import { createLogger } from './common/logger';
|
|
4
|
+
import { ClientEventType } from './schema/eventTypes';
|
|
5
|
+
import { ClientMetaType } from './schema/metaTypes';
|
|
6
|
+
import { parseJsonAs } from './common/utils';
|
|
7
|
+
import { Detectors } from './detectors/Detectors';
|
|
8
|
+
const logger = createLogger('ObservedClient');
|
|
9
|
+
export class ObservedClient extends EventEmitter {
|
|
13
10
|
call;
|
|
14
11
|
detectors;
|
|
15
12
|
clientId;
|
|
@@ -67,7 +64,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
67
64
|
this.setMaxListeners(Infinity);
|
|
68
65
|
this.clientId = settings.clientId;
|
|
69
66
|
this.appData = settings.appData;
|
|
70
|
-
this.detectors = new
|
|
67
|
+
this.detectors = new Detectors();
|
|
71
68
|
}
|
|
72
69
|
get score() {
|
|
73
70
|
return this.calculatedScore.value;
|
|
@@ -84,10 +81,10 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
84
81
|
throw new Error(`Client ${this.clientId} is closed`);
|
|
85
82
|
const now = Date.now();
|
|
86
83
|
sample.clientEvents?.forEach(this._processClientEvent.bind(this));
|
|
87
|
-
sample.clientMetaItems?.forEach(this.
|
|
88
|
-
sample.clientIssues?.forEach(this.
|
|
84
|
+
sample.clientMetaItems?.forEach(this._processMetaData.bind(this));
|
|
85
|
+
sample.clientIssues?.forEach(this._processIssue.bind(this));
|
|
89
86
|
sample.peerConnections?.forEach(this._updatePeerConnection.bind(this));
|
|
90
|
-
sample.extensionStats?.forEach(this.
|
|
87
|
+
sample.extensionStats?.forEach(this._processExtensionStats.bind(this));
|
|
91
88
|
// emit new attachments?
|
|
92
89
|
this.attachments = sample.attachments;
|
|
93
90
|
this.calculatedScore.value = sample.score;
|
|
@@ -101,15 +98,15 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
101
98
|
}
|
|
102
99
|
_processClientEvent(event) {
|
|
103
100
|
switch (event.type) {
|
|
104
|
-
case
|
|
101
|
+
case ClientEventType.CALL_STARTED: {
|
|
105
102
|
// update call timestamp if it's the first time
|
|
106
103
|
break;
|
|
107
104
|
}
|
|
108
|
-
case
|
|
105
|
+
case ClientEventType.CALL_ENDED: {
|
|
109
106
|
// update call timestamp if it's the first time
|
|
110
107
|
break;
|
|
111
108
|
}
|
|
112
|
-
case
|
|
109
|
+
case ClientEventType.CLIENT_JOINED: {
|
|
113
110
|
if (event.timestamp) {
|
|
114
111
|
if (!this.joinedAt) {
|
|
115
112
|
this.joinedAt = event.timestamp;
|
|
@@ -125,7 +122,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
125
122
|
}
|
|
126
123
|
break;
|
|
127
124
|
}
|
|
128
|
-
case
|
|
125
|
+
case ClientEventType.CLIENT_LEFT: {
|
|
129
126
|
if (event.timestamp) {
|
|
130
127
|
if (!this.leftAt) {
|
|
131
128
|
this.leftAt = event.timestamp;
|
|
@@ -135,35 +132,50 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
135
132
|
break;
|
|
136
133
|
}
|
|
137
134
|
}
|
|
138
|
-
this.call.observer.
|
|
135
|
+
this.call.observer.processors.events.process({
|
|
136
|
+
call: this.call,
|
|
137
|
+
client: this,
|
|
138
|
+
data: event,
|
|
139
|
+
});
|
|
139
140
|
}
|
|
140
|
-
|
|
141
|
+
_processMetaData(metadata) {
|
|
141
142
|
switch (metadata.type) {
|
|
142
|
-
case
|
|
143
|
-
this.browser =
|
|
143
|
+
case ClientMetaType.BROWSER: {
|
|
144
|
+
this.browser = parseJsonAs(metadata.payload);
|
|
144
145
|
break;
|
|
145
146
|
}
|
|
146
|
-
case
|
|
147
|
-
this.engine =
|
|
147
|
+
case ClientMetaType.ENGINE: {
|
|
148
|
+
this.engine = parseJsonAs(metadata.payload);
|
|
148
149
|
break;
|
|
149
150
|
}
|
|
150
|
-
case
|
|
151
|
-
this.platform =
|
|
151
|
+
case ClientMetaType.PLATFORM: {
|
|
152
|
+
this.platform = parseJsonAs(metadata.payload);
|
|
152
153
|
break;
|
|
153
154
|
}
|
|
154
|
-
case
|
|
155
|
-
this.operationSystem =
|
|
155
|
+
case ClientMetaType.OPERATION_SYSTEM: {
|
|
156
|
+
this.operationSystem = parseJsonAs(metadata.payload);
|
|
156
157
|
break;
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
this.call.observer.
|
|
160
|
+
this.call.observer.processors.metaData.process({
|
|
161
|
+
call: this.call,
|
|
162
|
+
client: this,
|
|
163
|
+
data: metadata,
|
|
164
|
+
});
|
|
160
165
|
}
|
|
161
|
-
|
|
162
|
-
this.
|
|
163
|
-
|
|
166
|
+
_processIssue(issue) {
|
|
167
|
+
this.call.observer.processors.issues.process({
|
|
168
|
+
call: this.call,
|
|
169
|
+
client: this,
|
|
170
|
+
data: issue,
|
|
171
|
+
});
|
|
164
172
|
}
|
|
165
|
-
|
|
166
|
-
this.call.observer.
|
|
173
|
+
_processExtensionStats(stats) {
|
|
174
|
+
this.call.observer.processors.extensionStats.process({
|
|
175
|
+
call: this.call,
|
|
176
|
+
client: this,
|
|
177
|
+
data: stats,
|
|
178
|
+
});
|
|
167
179
|
}
|
|
168
180
|
_updatePeerConnection(sample) {
|
|
169
181
|
let observedPeerConnection = this.observedPeerConnections.get(sample.peerConnectionId);
|
|
@@ -171,7 +183,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
171
183
|
if (!sample.peerConnectionId) {
|
|
172
184
|
return logger.warn(`ObservedClient received an invalid PeerConnectionSample (missing peerConnectionId field). ClientId: ${this.clientId}, CallId: ${this.call.callId}`, sample);
|
|
173
185
|
}
|
|
174
|
-
observedPeerConnection = new
|
|
186
|
+
observedPeerConnection = new ObservedPeerConnection(sample.peerConnectionId, this);
|
|
175
187
|
observedPeerConnection.once('close', () => {
|
|
176
188
|
this.observedPeerConnections.delete(sample.peerConnectionId);
|
|
177
189
|
});
|
|
@@ -180,4 +192,3 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
180
192
|
observedPeerConnection.accept(sample);
|
|
181
193
|
}
|
|
182
194
|
}
|
|
183
|
-
exports.ObservedClient = ObservedClient;
|
package/lib/ObservedCodec.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedCodec = void 0;
|
|
4
|
-
class ObservedCodec {
|
|
1
|
+
export class ObservedCodec {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
mimeType;
|
|
@@ -42,4 +39,3 @@ class ObservedCodec {
|
|
|
42
39
|
this.attachments = stats.attachments;
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
exports.ObservedCodec = ObservedCodec;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedDataChannel = void 0;
|
|
4
|
-
class ObservedDataChannel {
|
|
1
|
+
export class ObservedDataChannel {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
_peerConnection;
|
|
@@ -42,4 +39,3 @@ class ObservedDataChannel {
|
|
|
42
39
|
this.attachments = stats.attachments;
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
exports.ObservedDataChannel = ObservedDataChannel;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedIceCandidate = void 0;
|
|
4
|
-
class ObservedIceCandidate {
|
|
1
|
+
export class ObservedIceCandidate {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
_peerConnection;
|
|
@@ -56,4 +53,3 @@ class ObservedIceCandidate {
|
|
|
56
53
|
this.attachments = stats.attachments;
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
exports.ObservedIceCandidate = ObservedIceCandidate;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedIceCandidatePair = void 0;
|
|
4
|
-
class ObservedIceCandidatePair {
|
|
1
|
+
export class ObservedIceCandidatePair {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
_peerConnection;
|
|
@@ -80,4 +77,3 @@ class ObservedIceCandidatePair {
|
|
|
80
77
|
this.attachments = stats.attachments;
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
|
-
exports.ObservedIceCandidatePair = ObservedIceCandidatePair;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedIceTransport = void 0;
|
|
4
|
-
class ObservedIceTransport {
|
|
1
|
+
export class ObservedIceTransport {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
_peerConnection;
|
|
@@ -62,4 +59,3 @@ class ObservedIceTransport {
|
|
|
62
59
|
this.attachments = stats.attachments;
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
|
-
exports.ObservedIceTransport = ObservedIceTransport;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedInboundRtp = void 0;
|
|
4
|
-
class ObservedInboundRtp {
|
|
1
|
+
export class ObservedInboundRtp {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
ssrc;
|
|
@@ -190,4 +187,3 @@ class ObservedInboundRtp {
|
|
|
190
187
|
this.concealmentEvents = stats.concealmentEvents;
|
|
191
188
|
}
|
|
192
189
|
}
|
|
193
|
-
exports.ObservedInboundRtp = ObservedInboundRtp;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ObservedInboundTrack = void 0;
|
|
4
|
-
const Detectors_1 = require("./detectors/Detectors");
|
|
5
|
-
class ObservedInboundTrack {
|
|
1
|
+
import { Detectors } from './detectors/Detectors';
|
|
2
|
+
export class ObservedInboundTrack {
|
|
6
3
|
timestamp;
|
|
7
4
|
id;
|
|
8
5
|
kind;
|
|
@@ -24,7 +21,7 @@ class ObservedInboundTrack {
|
|
|
24
21
|
this._peerConnection = _peerConnection;
|
|
25
22
|
this._inboundRtp = _inboundRtp;
|
|
26
23
|
this._mediaPlayout = _mediaPlayout;
|
|
27
|
-
this.detectors = new
|
|
24
|
+
this.detectors = new Detectors();
|
|
28
25
|
}
|
|
29
26
|
get score() {
|
|
30
27
|
return this.calculatedScore.value;
|
|
@@ -54,4 +51,3 @@ class ObservedInboundTrack {
|
|
|
54
51
|
this.detectors.update();
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
|
-
exports.ObservedInboundTrack = ObservedInboundTrack;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedMediaPlayout = void 0;
|
|
4
|
-
class ObservedMediaPlayout {
|
|
1
|
+
export class ObservedMediaPlayout {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
kind;
|
|
@@ -39,4 +36,3 @@ class ObservedMediaPlayout {
|
|
|
39
36
|
this.attachments = stats.attachments;
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
|
-
exports.ObservedMediaPlayout = ObservedMediaPlayout;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedMediaSource = void 0;
|
|
4
|
-
class ObservedMediaSource {
|
|
1
|
+
export class ObservedMediaSource {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
kind;
|
|
@@ -52,4 +49,3 @@ class ObservedMediaSource {
|
|
|
52
49
|
this.attachments = stats.attachments;
|
|
53
50
|
}
|
|
54
51
|
}
|
|
55
|
-
exports.ObservedMediaSource = ObservedMediaSource;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservedOutboundRtp = void 0;
|
|
4
|
-
class ObservedOutboundRtp {
|
|
1
|
+
export class ObservedOutboundRtp {
|
|
5
2
|
timestamp;
|
|
6
3
|
id;
|
|
7
4
|
ssrc;
|
|
@@ -141,4 +138,3 @@ class ObservedOutboundRtp {
|
|
|
141
138
|
this.attachments = stats.attachments;
|
|
142
139
|
}
|
|
143
140
|
}
|
|
144
|
-
exports.ObservedOutboundRtp = ObservedOutboundRtp;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ObservedOutboundTrack = void 0;
|
|
4
|
-
const Detectors_1 = require("./detectors/Detectors");
|
|
5
|
-
class ObservedOutboundTrack {
|
|
1
|
+
import { Detectors } from './detectors/Detectors';
|
|
2
|
+
export class ObservedOutboundTrack {
|
|
6
3
|
timestamp;
|
|
7
4
|
id;
|
|
8
5
|
kind;
|
|
@@ -24,7 +21,7 @@ class ObservedOutboundTrack {
|
|
|
24
21
|
this._peerConnection = _peerConnection;
|
|
25
22
|
this._outboundRtps = _outboundRtps;
|
|
26
23
|
this._mediaSource = _mediaSource;
|
|
27
|
-
this.detectors = new
|
|
24
|
+
this.detectors = new Detectors();
|
|
28
25
|
}
|
|
29
26
|
get score() {
|
|
30
27
|
return this.calculatedScore.value;
|
|
@@ -54,4 +51,3 @@ class ObservedOutboundTrack {
|
|
|
54
51
|
this.detectors.update();
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
|
-
exports.ObservedOutboundTrack = ObservedOutboundTrack;
|