@observertc/observer-js 1.0.1-c3edea3.0 → 1.0.1-ea70eab.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.
Files changed (140) hide show
  1. package/lib/ObservedCall.d.ts +43 -7
  2. package/lib/ObservedCall.d.ts.map +1 -1
  3. package/lib/ObservedCall.js +129 -13
  4. package/lib/ObservedCallEventMonitor.d.ts +104 -0
  5. package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
  6. package/lib/ObservedCallEventMonitor.js +314 -0
  7. package/lib/ObservedCallSummary.d.ts +18 -0
  8. package/lib/ObservedCallSummary.d.ts.map +1 -0
  9. package/lib/ObservedClient.d.ts +70 -11
  10. package/lib/ObservedClient.d.ts.map +1 -1
  11. package/lib/ObservedClient.js +392 -72
  12. package/lib/ObservedClientEventMonitor.d.ts +89 -0
  13. package/lib/ObservedClientEventMonitor.d.ts.map +1 -0
  14. package/lib/ObservedClientEventMonitor.js +247 -0
  15. package/lib/ObservedClientSummary.d.ts +23 -0
  16. package/lib/ObservedClientSummary.d.ts.map +1 -0
  17. package/lib/ObservedClientSummary.js +2 -0
  18. package/lib/ObservedDataChannel.d.ts +6 -0
  19. package/lib/ObservedDataChannel.d.ts.map +1 -1
  20. package/lib/ObservedDataChannel.js +30 -0
  21. package/lib/ObservedIceCandidatePair.d.ts +6 -1
  22. package/lib/ObservedIceCandidatePair.d.ts.map +1 -1
  23. package/lib/ObservedIceCandidatePair.js +45 -1
  24. package/lib/ObservedIceTransport.d.ts +4 -0
  25. package/lib/ObservedIceTransport.d.ts.map +1 -1
  26. package/lib/ObservedIceTransport.js +28 -0
  27. package/lib/ObservedInboundTrack.d.ts +2 -0
  28. package/lib/ObservedInboundTrack.d.ts.map +1 -1
  29. package/lib/ObservedInboundTrack.js +2 -0
  30. package/lib/ObservedOutboundTrack.d.ts +2 -0
  31. package/lib/ObservedOutboundTrack.d.ts.map +1 -1
  32. package/lib/ObservedOutboundTrack.js +2 -0
  33. package/lib/ObservedPeerConnection.d.ts +29 -2
  34. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  35. package/lib/ObservedPeerConnection.js +181 -29
  36. package/lib/ObservedTURN.d.ts +31 -0
  37. package/lib/ObservedTURN.d.ts.map +1 -0
  38. package/lib/ObservedTURN.js +58 -0
  39. package/lib/ObservedTurnServer.d.ts +25 -0
  40. package/lib/ObservedTurnServer.d.ts.map +1 -0
  41. package/lib/ObservedTurnServer.js +59 -0
  42. package/lib/Observer.d.ts +43 -22
  43. package/lib/Observer.d.ts.map +1 -1
  44. package/lib/Observer.js +126 -40
  45. package/lib/ObserverEventMonitor.d.ts +130 -0
  46. package/lib/ObserverEventMonitor.d.ts.map +1 -0
  47. package/lib/ObserverEventMonitor.js +404 -0
  48. package/lib/ObserverSummary.d.ts +13 -0
  49. package/lib/ObserverSummary.d.ts.map +1 -0
  50. package/lib/ObserverSummary.js +2 -0
  51. package/lib/common/utils.d.ts +2 -1
  52. package/lib/common/utils.d.ts.map +1 -1
  53. package/lib/common/utils.js +11 -3
  54. package/lib/index.d.ts +6 -0
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/index.js +9 -1
  57. package/lib/schema/ClientEventTypes.d.ts +160 -0
  58. package/lib/schema/ClientEventTypes.d.ts.map +1 -0
  59. package/lib/schema/ClientEventTypes.js +38 -0
  60. package/lib/schema/{metaTypes.d.ts → ClientMetaTypes.d.ts} +2 -2
  61. package/lib/schema/ClientMetaTypes.d.ts.map +1 -0
  62. package/lib/schema/ClientMetaTypes.js +16 -0
  63. package/lib/schema/ClientSample.d.ts +1 -1
  64. package/lib/schema/ClientSample.d.ts.map +1 -1
  65. package/lib/updaters/CallUpdater.d.ts.map +1 -0
  66. package/lib/updaters/CallUpdater.js +2 -0
  67. package/lib/updaters/ObserverUpdater.d.ts +5 -0
  68. package/lib/updaters/ObserverUpdater.d.ts.map +1 -0
  69. package/lib/updaters/ObserverUpdater.js +2 -0
  70. package/lib/updaters/OnAllCallObserverUpdater.d.ts +15 -0
  71. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +1 -0
  72. package/lib/updaters/OnAllCallObserverUpdater.js +50 -0
  73. package/lib/updaters/OnAllClientCallUpdater.d.ts +15 -0
  74. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +1 -0
  75. package/lib/updaters/OnAllClientCallUpdater.js +53 -0
  76. package/lib/updaters/OnAnyCallObserverUpdater.d.ts +12 -0
  77. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +1 -0
  78. package/lib/updaters/OnAnyCallObserverUpdater.js +37 -0
  79. package/lib/updaters/OnAnyClientCallUpdater.d.ts +12 -0
  80. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +1 -0
  81. package/lib/updaters/OnAnyClientCallUpdater.js +36 -0
  82. package/lib/updaters/OnIntervalUpdater.d.ts +10 -0
  83. package/lib/updaters/OnIntervalUpdater.d.ts.map +1 -0
  84. package/lib/updaters/OnIntervalUpdater.js +17 -0
  85. package/lib/updaters/Updater.d.ts +6 -0
  86. package/lib/updaters/Updater.d.ts.map +1 -0
  87. package/lib/updaters/Updater.js +2 -0
  88. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +25 -0
  89. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +1 -0
  90. package/lib/utils/MediasoupRemoteTrackResolver.js +110 -0
  91. package/package.json +1 -1
  92. package/src/ObservedCall.ts +210 -16
  93. package/src/ObservedCallEventMonitor.ts +392 -0
  94. package/src/ObservedCallSummary.ts +22 -0
  95. package/src/ObservedClient.ts +490 -79
  96. package/src/ObservedClientEventMonitor.ts +301 -0
  97. package/src/ObservedClientSummary.ts +24 -0
  98. package/src/ObservedDataChannel.ts +32 -0
  99. package/src/ObservedIceCandidatePair.ts +44 -2
  100. package/src/ObservedIceTransport.ts +29 -0
  101. package/src/ObservedInboundTrack.ts +3 -0
  102. package/src/ObservedOutboundTrack.ts +3 -0
  103. package/src/ObservedPeerConnection.ts +210 -46
  104. package/src/ObservedTURN.ts +86 -0
  105. package/src/ObservedTurnServer.ts +72 -0
  106. package/src/Observer.ts +179 -64
  107. package/src/ObserverEventMonitor.ts +518 -0
  108. package/src/ObserverSummary.ts +15 -0
  109. package/src/common/utils.ts +12 -2
  110. package/src/index.ts +6 -0
  111. package/src/schema/ClientEventTypes.ts +176 -0
  112. package/src/schema/{metaTypes.ts → ClientMetaTypes.ts} +1 -1
  113. package/src/schema/ClientSample.ts +1 -1
  114. package/src/updaters/ObserverUpdater.ts +5 -0
  115. package/src/updaters/OnAllCallObserverUpdater.ts +59 -0
  116. package/src/updaters/OnAllClientCallUpdater.ts +61 -0
  117. package/src/updaters/OnAnyCallObserverUpdater.ts +41 -0
  118. package/src/updaters/OnAnyClientCallUpdater.ts +39 -0
  119. package/src/updaters/OnIntervalUpdater.ts +19 -0
  120. package/src/updaters/Updater.ts +5 -0
  121. package/src/utils/MediasoupRemoteTrackResolver.ts +155 -0
  122. package/tsconfig.json +1 -1
  123. package/lib/schema/eventTypes.d.ts +0 -33
  124. package/lib/schema/eventTypes.d.ts.map +0 -1
  125. package/lib/schema/eventTypes.js +0 -38
  126. package/lib/schema/metaTypes.d.ts.map +0 -1
  127. package/lib/schema/metaTypes.js +0 -16
  128. package/lib/utils/CallUpdater.d.ts.map +0 -1
  129. package/lib/utils/OnAllClientCallUpdater.d.ts +0 -16
  130. package/lib/utils/OnAllClientCallUpdater.d.ts.map +0 -1
  131. package/lib/utils/OnAllClientCallUpdater.js +0 -58
  132. package/lib/utils/onAnyClientCallUpdater.d.ts +0 -14
  133. package/lib/utils/onAnyClientCallUpdater.d.ts.map +0 -1
  134. package/lib/utils/onAnyClientCallUpdater.js +0 -51
  135. package/src/schema/eventTypes.ts +0 -36
  136. package/src/utils/OnAllClientCallUpdater.ts +0 -68
  137. package/src/utils/onAnyClientCallUpdater.ts +0 -59
  138. /package/lib/{utils/CallUpdater.js → ObservedCallSummary.js} +0 -0
  139. /package/lib/{utils → updaters}/CallUpdater.d.ts +0 -0
  140. /package/src/{utils → updaters}/CallUpdater.ts +0 -0
@@ -1,16 +0,0 @@
1
- "use strict";
2
- /* eslint-disable no-shadow */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ClientMetaType = void 0;
5
- var ClientMetaType;
6
- (function (ClientMetaType) {
7
- ClientMetaType["MEDIA_CONSTRAINT"] = "MEDIA_CONSTRAINT";
8
- ClientMetaType["MEDIA_DEVICE"] = "MEDIA_DEVICE";
9
- ClientMetaType["MEDIA_DEVICES_SUPPORTED_CONSTRAINTS"] = "MEDIA_DEVICES_SUPPORTED_CONSTRAINTS";
10
- ClientMetaType["USER_MEDIA_ERROR"] = "USER_MEDIA_ERROR";
11
- ClientMetaType["LOCAL_SDP"] = "LOCAL_SDP";
12
- ClientMetaType["OPERATION_SYSTEM"] = "OPERATION_SYSTEM";
13
- ClientMetaType["ENGINE"] = "ENGINE";
14
- ClientMetaType["PLATFORM"] = "PLATFORM";
15
- ClientMetaType["BROWSER"] = "BROWSER";
16
- })(ClientMetaType = exports.ClientMetaType || (exports.ClientMetaType = {}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallUpdater.d.ts","sourceRoot":"","sources":["../../src/utils/CallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC3B,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACrD"}
@@ -1,16 +0,0 @@
1
- import { ObservedCall } from '../ObservedCall';
2
- import { ObservedClient } from '../ObservedClient';
3
- import { CallUpdater } from './CallUpdater';
4
- export declare class OnAllClientCallUpdater implements CallUpdater {
5
- private _observedCall;
6
- private readonly _updatedClients;
7
- private _minClientJoinedTimestamp?;
8
- private _maxClientLeftTimestamp?;
9
- constructor(_observedCall: ObservedCall);
10
- onClientUpdate(observedClient: ObservedClient): void;
11
- private _onNewObservedClient;
12
- private _onClientJoined;
13
- private _onClientLeft;
14
- private _onCallEmpty;
15
- }
16
- //# sourceMappingURL=OnAllClientCallUpdater.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OnAllClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/utils/OnAllClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,sBAAuB,YAAW,WAAW;IAOxD,OAAO,CAAC,aAAa;IALtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,uBAAuB,CAAC,CAAS;gBAGhC,aAAa,EAAE,YAAY;IAa7B,cAAc,CAAC,cAAc,EAAE,cAAc;IAUpD,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;CAIpB"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OnAllClientCallUpdater = void 0;
4
- class OnAllClientCallUpdater {
5
- _observedCall;
6
- _updatedClients = new Set();
7
- _minClientJoinedTimestamp;
8
- _maxClientLeftTimestamp;
9
- constructor(_observedCall) {
10
- this._observedCall = _observedCall;
11
- this._onNewObservedClient = this._onNewObservedClient.bind(this);
12
- this._onCallEmpty = this._onCallEmpty.bind(this);
13
- this._observedCall.once('close', () => {
14
- this._observedCall.off('empty', this._onCallEmpty);
15
- this._observedCall.off('newclient', this._onNewObservedClient);
16
- });
17
- this._observedCall.on('newclient', this._onNewObservedClient);
18
- this._observedCall.on('empty', this._onCallEmpty);
19
- }
20
- onClientUpdate(observedClient) {
21
- this._updatedClients.add(observedClient.clientId);
22
- if (this._updatedClients.size < this._observedCall.observedClients.size) {
23
- return;
24
- }
25
- this._updatedClients.clear();
26
- this._observedCall.update();
27
- }
28
- _onNewObservedClient(observedClient) {
29
- const onJoined = () => this._onClientJoined(observedClient);
30
- const onLeft = () => this._onClientLeft(observedClient);
31
- observedClient.once('close', () => {
32
- observedClient.off('joined', onJoined);
33
- observedClient.off('left', onLeft);
34
- this._updatedClients.delete(observedClient.clientId);
35
- });
36
- observedClient.on('joined', onJoined);
37
- observedClient.on('left', onLeft);
38
- }
39
- _onClientJoined(observedClient) {
40
- if (!observedClient.joinedAt)
41
- return;
42
- if (!this._minClientJoinedTimestamp || observedClient.joinedAt < this._minClientJoinedTimestamp) {
43
- this._minClientJoinedTimestamp = observedClient.joinedAt;
44
- }
45
- }
46
- _onClientLeft(observedClient) {
47
- if (!observedClient.leftAt)
48
- return;
49
- if (!this._maxClientLeftTimestamp || observedClient.leftAt > this._maxClientLeftTimestamp) {
50
- this._maxClientLeftTimestamp = observedClient.leftAt;
51
- }
52
- }
53
- _onCallEmpty() {
54
- this._observedCall.started = this._minClientJoinedTimestamp;
55
- this._observedCall.ended = this._maxClientLeftTimestamp;
56
- }
57
- }
58
- exports.OnAllClientCallUpdater = OnAllClientCallUpdater;
@@ -1,14 +0,0 @@
1
- import { ObservedCall } from '../ObservedCall';
2
- import { CallUpdater } from './CallUpdater';
3
- export declare class OnAnyClientCallUpdater implements CallUpdater {
4
- private _observedCall;
5
- private _minClientJoinedTimestamp?;
6
- private _maxClientLeftTimestamp?;
7
- constructor(_observedCall: ObservedCall);
8
- onClientUpdate(): void;
9
- private _onNewObservedClient;
10
- private _onClientJoined;
11
- private _onClientLeft;
12
- private _onCallEmpty;
13
- }
14
- //# sourceMappingURL=onAnyClientCallUpdater.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onAnyClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/utils/onAnyClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,sBAAuB,YAAW,WAAW;IAKxD,OAAO,CAAC,aAAa;IAJtB,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,uBAAuB,CAAC,CAAS;gBAGhC,aAAa,EAAE,YAAY;IAa7B,cAAc;IAIrB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;CAIpB"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OnAnyClientCallUpdater = void 0;
4
- class OnAnyClientCallUpdater {
5
- _observedCall;
6
- _minClientJoinedTimestamp;
7
- _maxClientLeftTimestamp;
8
- constructor(_observedCall) {
9
- this._observedCall = _observedCall;
10
- this._onNewObservedClient = this._onNewObservedClient.bind(this);
11
- this._onCallEmpty = this._onCallEmpty.bind(this);
12
- this._observedCall.once('close', () => {
13
- this._observedCall.off('empty', this._onCallEmpty);
14
- this._observedCall.off('newclient', this._onNewObservedClient);
15
- });
16
- this._observedCall.on('newclient', this._onNewObservedClient);
17
- this._observedCall.on('empty', this._onCallEmpty);
18
- }
19
- onClientUpdate() {
20
- this._observedCall.update();
21
- }
22
- _onNewObservedClient(observedClient) {
23
- const onJoined = () => this._onClientJoined(observedClient);
24
- const onLeft = () => this._onClientLeft(observedClient);
25
- observedClient.once('close', () => {
26
- observedClient.off('joined', onJoined);
27
- observedClient.off('left', onLeft);
28
- });
29
- observedClient.on('joined', onJoined);
30
- observedClient.on('left', onLeft);
31
- }
32
- _onClientJoined(observedClient) {
33
- if (!observedClient.joinedAt)
34
- return;
35
- if (!this._minClientJoinedTimestamp || observedClient.joinedAt < this._minClientJoinedTimestamp) {
36
- this._minClientJoinedTimestamp = observedClient.joinedAt;
37
- }
38
- }
39
- _onClientLeft(observedClient) {
40
- if (!observedClient.leftAt)
41
- return;
42
- if (!this._maxClientLeftTimestamp || observedClient.leftAt > this._maxClientLeftTimestamp) {
43
- this._maxClientLeftTimestamp = observedClient.leftAt;
44
- }
45
- }
46
- _onCallEmpty() {
47
- this._observedCall.started = this._minClientJoinedTimestamp;
48
- this._observedCall.ended = this._maxClientLeftTimestamp;
49
- }
50
- }
51
- exports.OnAnyClientCallUpdater = OnAnyClientCallUpdater;
@@ -1,36 +0,0 @@
1
- /* eslint-disable no-shadow */
2
-
3
- export enum ClientEventType {
4
- CALL_STARTED = 'CALL_STARTED',
5
- CALL_ENDED = 'CALL_ENDED',
6
- CLIENT_JOINED = 'CLIENT_JOINED',
7
- CLIENT_LEFT = 'CLIENT_LEFT',
8
- PEER_CONNECTION_OPENED = 'PEER_CONNECTION_OPENED',
9
- PEER_CONNECTION_CLOSED = 'PEER_CONNECTION_CLOSED',
10
- MEDIA_TRACK_ADDED = 'MEDIA_TRACK_ADDED',
11
- MEDIA_TRACK_REMOVED = 'MEDIA_TRACK_REMOVED',
12
- MEDIA_TRACK_RESUMED = 'MEDIA_TRACK_RESUMED',
13
- MEDIA_TRACK_MUTED = 'MEDIA_TRACK_MUTED',
14
- MEDIA_TRACK_UNMUTED = 'MEDIA_TRACK_UNMUTED',
15
- ICE_GATHERING_STATE_CHANGED = 'ICE_GATHERING_STATE_CHANGED',
16
- PEER_CONNECTION_STATE_CHANGED = 'PEER_CONNECTION_STATE_CHANGED',
17
- ICE_CONNECTION_STATE_CHANGED = 'ICE_CONNECTION_STATE_CHANGED',
18
- DATA_CHANNEL_OPEN = 'DATA_CHANNEL_OPEN',
19
- DATA_CHANNEL_CLOSED = 'DATA_CHANNEL_CLOSED',
20
- DATA_CHANNEL_ERROR = 'DATA_CHANNEL_ERROR',
21
- NEGOTIATION_NEEDED = 'NEGOTIATION_NEEDED',
22
- SIGNALING_STATE_CHANGE = 'SIGNALING_STATE_CHANGE',
23
- ICE_GATHERING_STATE_CHANGE = 'ICE_GATHERING_STATE_CHANGE',
24
- ICE_CONNECTION_STATE_CHANGE = 'ICE_CONNECTION_STATE_CHANGE',
25
- ICE_CANDIDATE = 'ICE_CANDIDATE',
26
-
27
- // mediasoup events
28
- PRODUCER_ADDED = 'PRODUCER_ADDED',
29
- PRODUCER_REMOVED = 'PRODUCER_REMOVED',
30
- CONSUMER_ADDED = 'CONSUMER_ADDED',
31
- CONSUMER_REMOVED = 'CONSUMER_REMOVED',
32
- DATA_PRODUCER_CREATED = 'DATA_PRODUCER_CREATED',
33
- DATA_PRODUCER_CLOSED = 'DATA_PRODUCER_CLOSED',
34
- DATA_CONSUMER_CREATED = 'DATA_CONSUMER_CREATED',
35
- DATA_CONSUMER_CLOSED = 'DATA_CONSUMER_CLOSED',
36
- }
@@ -1,68 +0,0 @@
1
- import { ObservedCall } from '../ObservedCall';
2
- import { ObservedClient } from '../ObservedClient';
3
- import { CallUpdater } from './CallUpdater';
4
-
5
- export class OnAllClientCallUpdater implements CallUpdater {
6
-
7
- private readonly _updatedClients = new Set<string>();
8
- private _minClientJoinedTimestamp?: number;
9
- private _maxClientLeftTimestamp?: number;
10
-
11
- public constructor(
12
- private _observedCall: ObservedCall
13
- ) {
14
- this._onNewObservedClient = this._onNewObservedClient.bind(this);
15
- this._onCallEmpty = this._onCallEmpty.bind(this);
16
-
17
- this._observedCall.once('close', () => {
18
- this._observedCall.off('empty', this._onCallEmpty);
19
- this._observedCall.off('newclient', this._onNewObservedClient);
20
- });
21
- this._observedCall.on('newclient', this._onNewObservedClient);
22
- this._observedCall.on('empty', this._onCallEmpty);
23
- }
24
-
25
- public onClientUpdate(observedClient: ObservedClient) {
26
- this._updatedClients.add(observedClient.clientId);
27
-
28
- if (this._updatedClients.size < this._observedCall.observedClients.size) {
29
- return;
30
- }
31
- this._updatedClients.clear();
32
- this._observedCall.update();
33
- }
34
-
35
- private _onNewObservedClient(observedClient: ObservedClient) {
36
- const onJoined = () => this._onClientJoined(observedClient);
37
- const onLeft = () => this._onClientLeft(observedClient);
38
-
39
- observedClient.once('close', () => {
40
- observedClient.off('joined', onJoined);
41
- observedClient.off('left', onLeft);
42
- this._updatedClients.delete(observedClient.clientId);
43
- });
44
- observedClient.on('joined', onJoined);
45
- observedClient.on('left', onLeft);
46
- }
47
-
48
- private _onClientJoined(observedClient: ObservedClient) {
49
- if (!observedClient.joinedAt) return;
50
-
51
- if (!this._minClientJoinedTimestamp || observedClient.joinedAt < this._minClientJoinedTimestamp) {
52
- this._minClientJoinedTimestamp = observedClient.joinedAt;
53
- }
54
- }
55
-
56
- private _onClientLeft(observedClient: ObservedClient) {
57
- if (!observedClient.leftAt) return;
58
-
59
- if (!this._maxClientLeftTimestamp || observedClient.leftAt > this._maxClientLeftTimestamp) {
60
- this._maxClientLeftTimestamp = observedClient.leftAt;
61
- }
62
- }
63
-
64
- private _onCallEmpty() {
65
- this._observedCall.started = this._minClientJoinedTimestamp;
66
- this._observedCall.ended = this._maxClientLeftTimestamp;
67
- }
68
- }
@@ -1,59 +0,0 @@
1
- import { ObservedCall } from '../ObservedCall';
2
- import { ObservedClient } from '../ObservedClient';
3
- import { CallUpdater } from './CallUpdater';
4
-
5
- export class OnAnyClientCallUpdater implements CallUpdater {
6
- private _minClientJoinedTimestamp?: number;
7
- private _maxClientLeftTimestamp?: number;
8
-
9
- public constructor(
10
- private _observedCall: ObservedCall
11
- ) {
12
- this._onNewObservedClient = this._onNewObservedClient.bind(this);
13
- this._onCallEmpty = this._onCallEmpty.bind(this);
14
-
15
- this._observedCall.once('close', () => {
16
- this._observedCall.off('empty', this._onCallEmpty);
17
- this._observedCall.off('newclient', this._onNewObservedClient);
18
- });
19
- this._observedCall.on('newclient', this._onNewObservedClient);
20
- this._observedCall.on('empty', this._onCallEmpty);
21
- }
22
-
23
- public onClientUpdate() {
24
- this._observedCall.update();
25
- }
26
-
27
- private _onNewObservedClient(observedClient: ObservedClient) {
28
- const onJoined = () => this._onClientJoined(observedClient);
29
- const onLeft = () => this._onClientLeft(observedClient);
30
-
31
- observedClient.once('close', () => {
32
- observedClient.off('joined', onJoined);
33
- observedClient.off('left', onLeft);
34
- });
35
- observedClient.on('joined', onJoined);
36
- observedClient.on('left', onLeft);
37
- }
38
-
39
- private _onClientJoined(observedClient: ObservedClient) {
40
- if (!observedClient.joinedAt) return;
41
-
42
- if (!this._minClientJoinedTimestamp || observedClient.joinedAt < this._minClientJoinedTimestamp) {
43
- this._minClientJoinedTimestamp = observedClient.joinedAt;
44
- }
45
- }
46
-
47
- private _onClientLeft(observedClient: ObservedClient) {
48
- if (!observedClient.leftAt) return;
49
-
50
- if (!this._maxClientLeftTimestamp || observedClient.leftAt > this._maxClientLeftTimestamp) {
51
- this._maxClientLeftTimestamp = observedClient.leftAt;
52
- }
53
- }
54
-
55
- private _onCallEmpty() {
56
- this._observedCall.started = this._minClientJoinedTimestamp;
57
- this._observedCall.ended = this._maxClientLeftTimestamp;
58
- }
59
- }
File without changes
File without changes