@observertc/observer-js 1.0.1-9d3744d.0 → 1.0.1-a98466e.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 (69) hide show
  1. package/lib/ObservedCall.d.ts +4 -5
  2. package/lib/ObservedCall.d.ts.map +1 -1
  3. package/lib/ObservedCall.js +8 -30
  4. package/lib/ObservedCallEventMonitor.d.ts +103 -0
  5. package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
  6. package/lib/ObservedCallEventMonitor.js +312 -0
  7. package/lib/ObservedClient.d.ts +11 -1
  8. package/lib/ObservedClient.d.ts.map +1 -1
  9. package/lib/ObservedClient.js +183 -4
  10. package/lib/ObservedClientEventMonitor.d.ts +89 -0
  11. package/lib/ObservedClientEventMonitor.d.ts.map +1 -0
  12. package/lib/ObservedClientEventMonitor.js +247 -0
  13. package/lib/ObservedDataChannel.d.ts +2 -0
  14. package/lib/ObservedDataChannel.d.ts.map +1 -1
  15. package/lib/ObservedDataChannel.js +2 -0
  16. package/lib/ObservedInboundTrack.d.ts +2 -0
  17. package/lib/ObservedInboundTrack.d.ts.map +1 -1
  18. package/lib/ObservedInboundTrack.js +2 -0
  19. package/lib/ObservedOutboundTrack.d.ts +2 -0
  20. package/lib/ObservedOutboundTrack.d.ts.map +1 -1
  21. package/lib/ObservedOutboundTrack.js +2 -0
  22. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  23. package/lib/ObservedPeerConnection.js +2 -0
  24. package/lib/Observer.d.ts +9 -5
  25. package/lib/Observer.d.ts.map +1 -1
  26. package/lib/Observer.js +17 -5
  27. package/lib/ObserverEventMonitor.d.ts +106 -0
  28. package/lib/ObserverEventMonitor.d.ts.map +1 -0
  29. package/lib/ObserverEventMonitor.js +320 -0
  30. package/lib/index.d.ts +2 -0
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +5 -1
  33. package/lib/schema/ClientEventTypes.d.ts +60 -0
  34. package/lib/schema/ClientEventTypes.d.ts.map +1 -1
  35. package/lib/updaters/{OnAllCallObserverUpdater_.d.ts → OnAllCallObserverUpdater.d.ts} +3 -1
  36. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +1 -0
  37. package/lib/updaters/{OnAllCallObserverUpdater_.js → OnAllCallObserverUpdater.js} +13 -1
  38. package/lib/updaters/OnAllClientCallUpdater.d.ts +2 -0
  39. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +1 -1
  40. package/lib/updaters/OnAllClientCallUpdater.js +16 -0
  41. package/lib/updaters/{OnAnyCallObserverUpdater_.d.ts → OnAnyCallObserverUpdater.d.ts} +2 -1
  42. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +1 -0
  43. package/lib/updaters/{OnAnyCallObserverUpdater_.js → OnAnyCallObserverUpdater.js} +11 -1
  44. package/lib/updaters/OnAnyClientCallUpdater.d.ts +1 -0
  45. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +1 -1
  46. package/lib/updaters/OnAnyClientCallUpdater.js +11 -2
  47. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +25 -0
  48. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +1 -0
  49. package/lib/utils/MediasoupRemoteTrackResolver.js +110 -0
  50. package/package.json +1 -1
  51. package/src/ObservedCall.ts +9 -35
  52. package/src/ObservedCallEventMonitor.ts +389 -0
  53. package/src/ObservedClient.ts +203 -6
  54. package/src/ObservedClientEventMonitor.ts +301 -0
  55. package/src/ObservedDataChannel.ts +3 -0
  56. package/src/ObservedInboundTrack.ts +3 -0
  57. package/src/ObservedOutboundTrack.ts +3 -0
  58. package/src/ObservedPeerConnection.ts +2 -0
  59. package/src/Observer.ts +24 -9
  60. package/src/ObserverEventMonitor.ts +398 -0
  61. package/src/index.ts +2 -0
  62. package/src/schema/ClientEventTypes.ts +64 -0
  63. package/src/updaters/{OnAllCallObserverUpdater_.ts → OnAllCallObserverUpdater.ts} +14 -1
  64. package/src/updaters/OnAllClientCallUpdater.ts +15 -0
  65. package/src/updaters/{OnAnyCallObserverUpdater_.ts → OnAnyCallObserverUpdater.ts} +11 -2
  66. package/src/updaters/OnAnyClientCallUpdater.ts +9 -2
  67. package/src/utils/MediasoupRemoteTrackResolver.ts +155 -0
  68. package/lib/updaters/OnAllCallObserverUpdater_.d.ts.map +0 -1
  69. package/lib/updaters/OnAnyCallObserverUpdater_.d.ts.map +0 -1
package/lib/index.d.ts CHANGED
@@ -22,5 +22,7 @@ export { ClientEventTypes } from './schema/ClientEventTypes';
22
22
  export { ClientMetaTypes } from './schema/ClientMetaTypes';
23
23
  export { ClientSample } from './schema/ClientSample';
24
24
  export { ScoreCalculator } from './scores/ScoreCalculator';
25
+ export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
26
+ export { ObserverEventMonitor } from './ObserverEventMonitor';
25
27
  export { Middleware } from './common/Middleware';
26
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClientMetaTypes = exports.ClientEventTypes = exports.ObservedPeerConnectionTransport = exports.ObservedIceTransport = exports.ObservedIceCandidate = exports.ObservedIceCandidatePair = exports.ObservedRemoteOutboundRtp = exports.ObservedRemoteInboundRtp = exports.ObservedOutboundRtp = exports.ObservedInboundRtp = exports.ObservedDataChannel = exports.ObservedCertificate = exports.ObservedCodec = exports.ObservedMediaPlayout = exports.ObservedMediaSource = exports.ObservedPeerConnection = exports.ObservedClient = exports.ObservedOutboundTrack = exports.ObservedInboundTrack = exports.ObservedCall = exports.Observer = void 0;
3
+ exports.ObserverEventMonitor = exports.ObservedClientEventMonitor = exports.ClientMetaTypes = exports.ClientEventTypes = exports.ObservedPeerConnectionTransport = exports.ObservedIceTransport = exports.ObservedIceCandidate = exports.ObservedIceCandidatePair = exports.ObservedRemoteOutboundRtp = exports.ObservedRemoteInboundRtp = exports.ObservedOutboundRtp = exports.ObservedInboundRtp = exports.ObservedDataChannel = exports.ObservedCertificate = exports.ObservedCodec = exports.ObservedMediaPlayout = exports.ObservedMediaSource = exports.ObservedPeerConnection = exports.ObservedClient = exports.ObservedOutboundTrack = exports.ObservedInboundTrack = exports.ObservedCall = exports.Observer = void 0;
4
4
  var Observer_1 = require("./Observer");
5
5
  Object.defineProperty(exports, "Observer", { enumerable: true, get: function () { return Observer_1.Observer; } });
6
6
  var ObservedCall_1 = require("./ObservedCall");
@@ -43,3 +43,7 @@ var ClientEventTypes_1 = require("./schema/ClientEventTypes");
43
43
  Object.defineProperty(exports, "ClientEventTypes", { enumerable: true, get: function () { return ClientEventTypes_1.ClientEventTypes; } });
44
44
  var ClientMetaTypes_1 = require("./schema/ClientMetaTypes");
45
45
  Object.defineProperty(exports, "ClientMetaTypes", { enumerable: true, get: function () { return ClientMetaTypes_1.ClientMetaTypes; } });
46
+ var ObservedClientEventMonitor_1 = require("./ObservedClientEventMonitor");
47
+ Object.defineProperty(exports, "ObservedClientEventMonitor", { enumerable: true, get: function () { return ObservedClientEventMonitor_1.ObservedClientEventMonitor; } });
48
+ var ObserverEventMonitor_1 = require("./ObserverEventMonitor");
49
+ Object.defineProperty(exports, "ObserverEventMonitor", { enumerable: true, get: function () { return ObserverEventMonitor_1.ObserverEventMonitor; } });
@@ -1,3 +1,62 @@
1
+ interface DoubleRange {
2
+ max?: number;
3
+ min?: number;
4
+ }
5
+ interface ULongRange {
6
+ max?: number;
7
+ min?: number;
8
+ }
9
+ interface MediaTrackConstraints {
10
+ aspectRatio?: DoubleRange;
11
+ autoGainControl?: boolean[];
12
+ backgroundBlur?: boolean[];
13
+ channelCount?: ULongRange;
14
+ deviceId?: string;
15
+ displaySurface?: string;
16
+ echoCancellation?: boolean[];
17
+ facingMode?: string[];
18
+ frameRate?: DoubleRange;
19
+ groupId?: string;
20
+ height?: ULongRange;
21
+ noiseSuppression?: boolean[];
22
+ sampleRate?: ULongRange;
23
+ sampleSize?: ULongRange;
24
+ width?: ULongRange;
25
+ }
26
+ interface MediaTrackCapabilities {
27
+ aspectRatio?: DoubleRange;
28
+ autoGainControl?: boolean[];
29
+ backgroundBlur?: boolean[];
30
+ channelCount?: ULongRange;
31
+ deviceId?: string;
32
+ displaySurface?: string;
33
+ echoCancellation?: boolean[];
34
+ facingMode?: string[];
35
+ frameRate?: DoubleRange;
36
+ groupId?: string;
37
+ height?: ULongRange;
38
+ noiseSuppression?: boolean[];
39
+ sampleRate?: ULongRange;
40
+ sampleSize?: ULongRange;
41
+ width?: ULongRange;
42
+ }
43
+ interface MediaTrackSettings {
44
+ aspectRatio?: number;
45
+ autoGainControl?: boolean;
46
+ backgroundBlur?: boolean;
47
+ channelCount?: number;
48
+ deviceId?: string;
49
+ displaySurface?: string;
50
+ echoCancellation?: boolean;
51
+ facingMode?: string;
52
+ frameRate?: number;
53
+ groupId?: string;
54
+ height?: number;
55
+ noiseSuppression?: boolean;
56
+ sampleRate?: number;
57
+ sampleSize?: number;
58
+ width?: number;
59
+ }
1
60
  export declare enum ClientEventTypes {
2
61
  CLIENT_JOINED = "CLIENT_JOINED",
3
62
  CLIENT_LEFT = "CLIENT_LEFT",
@@ -97,4 +156,5 @@ export interface DataChannelClosedEventPayload extends Record<string, unknown> {
97
156
  readyState: string;
98
157
  dataChannelId: string;
99
158
  }
159
+ export {};
100
160
  //# sourceMappingURL=ClientEventTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEventTypes.d.ts","sourceRoot":"","sources":["../../src/schema/ClientEventTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientEventTypes.d.ts","sourceRoot":"","sources":["../../src/schema/ClientEventTypes.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@ export declare class OnAllCallObserverUpdater implements Updater {
5
5
  readonly name = "OnAllCallObserverUpdater";
6
6
  readonly description = "Call Observer's update() method when all of the ObservedCalls are updated";
7
7
  private readonly _updatedCalls;
8
+ closed: boolean;
8
9
  constructor(observer: Observer);
9
10
  close(): void;
10
11
  private _onNewObservedCall;
11
12
  private _onObservedCallUpdated;
13
+ private _updateIfEveryCallUpdated;
12
14
  }
13
- //# sourceMappingURL=OnAllCallObserverUpdater_.d.ts.map
15
+ //# sourceMappingURL=OnAllCallObserverUpdater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnAllCallObserverUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllCallObserverUpdater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,wBAAyB,YAAW,OAAO;IAQtD,OAAO,CAAC,QAAQ;IAPjB,SAAgB,IAAI,8BAA8B;IAClD,SAAgB,WAAW,+EAAgF;IAE3G,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAC5C,MAAM,UAAS;gBAGb,QAAQ,EAAE,QAAQ;IAU3B,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;CAOjC"}
@@ -6,6 +6,7 @@ class OnAllCallObserverUpdater {
6
6
  name = 'OnAllCallObserverUpdater';
7
7
  description = 'Call Observer\'s update() method when all of the ObservedCalls are updated';
8
8
  _updatedCalls = new Set();
9
+ closed = false;
9
10
  constructor(observer) {
10
11
  this.observer = observer;
11
12
  this._onNewObservedCall = this._onNewObservedCall.bind(this);
@@ -15,13 +16,19 @@ class OnAllCallObserverUpdater {
15
16
  this.observer.on('newcall', this._onNewObservedCall);
16
17
  }
17
18
  close() {
18
- // do nothing, because we unsubscribe once close is emitted from observer
19
+ if (this.closed)
20
+ return;
21
+ this.closed = true;
22
+ this._updatedCalls.clear();
19
23
  }
20
24
  _onNewObservedCall(observedCall) {
25
+ if (this.closed)
26
+ return;
21
27
  const onUpdate = () => this._onObservedCallUpdated(observedCall);
22
28
  observedCall.once('close', () => {
23
29
  observedCall.off('update', onUpdate);
24
30
  this._updatedCalls.delete(observedCall.callId);
31
+ this._updateIfEveryCallUpdated();
25
32
  });
26
33
  observedCall.on('update', onUpdate);
27
34
  }
@@ -29,8 +36,13 @@ class OnAllCallObserverUpdater {
29
36
  if (observedCall.closed)
30
37
  return;
31
38
  this._updatedCalls.add(observedCall.callId);
39
+ this._updateIfEveryCallUpdated();
40
+ }
41
+ _updateIfEveryCallUpdated() {
32
42
  if (this._updatedCalls.size < this.observer.observedCalls.size)
33
43
  return;
44
+ else if (this.closed)
45
+ return;
34
46
  this._updatedCalls.clear();
35
47
  this.observer.update();
36
48
  }
@@ -5,9 +5,11 @@ export declare class OnAllClientCallUpdater implements Updater {
5
5
  readonly name = "OnAllClientCallUpdater";
6
6
  readonly description = "Call the update() method of the ObservedCall once all client has been updated";
7
7
  private readonly _updatedClients;
8
+ closed: boolean;
8
9
  constructor(_observedCall: ObservedCall);
9
10
  close(): void;
10
11
  private _onNewObservedClient;
11
12
  private _onClientUpdate;
13
+ private _updateIfEveryClientUpdated;
12
14
  }
13
15
  //# sourceMappingURL=OnAllClientCallUpdater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnAllClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAOpD,OAAO,CAAC,aAAa;IANtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,mFAAmF;IAEvG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAG5C,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAIpB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;CAUvB"}
1
+ {"version":3,"file":"OnAllClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAQpD,OAAO,CAAC,aAAa;IAPtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,mFAAmF;IAEvG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAC9C,MAAM,UAAS;gBAGb,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAOpB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,2BAA2B;CAWnC"}
@@ -6,6 +6,7 @@ class OnAllClientCallUpdater {
6
6
  name = 'OnAllClientCallUpdater';
7
7
  description = 'Call the update() method of the ObservedCall once all client has been updated';
8
8
  _updatedClients = new Set();
9
+ closed = false;
9
10
  constructor(_observedCall) {
10
11
  this._observedCall = _observedCall;
11
12
  this._onNewObservedClient = this._onNewObservedClient.bind(this);
@@ -15,21 +16,36 @@ class OnAllClientCallUpdater {
15
16
  this._observedCall.on('newclient', this._onNewObservedClient);
16
17
  }
17
18
  close() {
19
+ if (this.closed)
20
+ return;
21
+ this.closed = true;
18
22
  // do nothing, as close once emitted unsubscription happened
23
+ this._updatedClients.clear();
19
24
  }
20
25
  _onNewObservedClient(observedClient) {
26
+ if (this.closed)
27
+ return;
21
28
  const onUpdate = () => this._onClientUpdate(observedClient);
22
29
  observedClient.once('close', () => {
23
30
  observedClient.off('update', onUpdate);
24
31
  this._updatedClients.delete(observedClient.clientId);
32
+ this._updateIfEveryClientUpdated();
25
33
  });
26
34
  observedClient.on('update', onUpdate);
27
35
  }
28
36
  _onClientUpdate(observedClient) {
37
+ if (observedClient.closed)
38
+ return;
29
39
  this._updatedClients.add(observedClient.clientId);
40
+ this._updateIfEveryClientUpdated();
41
+ }
42
+ _updateIfEveryClientUpdated() {
30
43
  if (this._updatedClients.size < this._observedCall.observedClients.size) {
31
44
  return;
32
45
  }
46
+ else if (this.closed) {
47
+ return;
48
+ }
33
49
  this._updatedClients.clear();
34
50
  this._observedCall.update();
35
51
  }
@@ -4,8 +4,9 @@ export declare class OnAnyCallObserverUpdater implements Updater {
4
4
  private observver;
5
5
  readonly name = "OnAnyCallObserverUpdater";
6
6
  readonly description = "Call Observer's update() method on any of the ObservedCall is updated";
7
+ closed: boolean;
7
8
  constructor(observver: Observer);
8
9
  close(): void;
9
10
  private _onNewObservedCall;
10
11
  }
11
- //# sourceMappingURL=OnAnyCallObserverUpdater_.d.ts.map
12
+ //# sourceMappingURL=OnAnyCallObserverUpdater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnAnyCallObserverUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyCallObserverUpdater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,wBAAyB,YAAW,OAAO;IAMtD,OAAO,CAAC,SAAS;IALlB,SAAgB,IAAI,8BAA8B;IAClD,SAAgB,WAAW,2EAA4E;IAChG,MAAM,UAAS;gBAGb,SAAS,EAAE,QAAQ;IAU5B,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,kBAAkB;CAc1B"}
@@ -5,6 +5,7 @@ class OnAnyCallObserverUpdater {
5
5
  observver;
6
6
  name = 'OnAnyCallObserverUpdater';
7
7
  description = 'Call Observer\'s update() method on any of the ObservedCall is updated';
8
+ closed = false;
8
9
  constructor(observver) {
9
10
  this.observver = observver;
10
11
  this._onNewObservedCall = this._onNewObservedCall.bind(this);
@@ -14,10 +15,19 @@ class OnAnyCallObserverUpdater {
14
15
  this.observver.on('newcall', this._onNewObservedCall);
15
16
  }
16
17
  close() {
18
+ if (this.closed)
19
+ return;
20
+ this.closed = true;
17
21
  // do nothing, because we unsubscribe once close is emitted from observer
18
22
  }
19
23
  _onNewObservedCall(observedCall) {
20
- const onUpdate = () => this.observver.update();
24
+ if (this.closed)
25
+ return;
26
+ const onUpdate = () => {
27
+ if (this.closed)
28
+ return;
29
+ this.observver.update();
30
+ };
21
31
  observedCall.once('close', () => {
22
32
  observedCall.off('update', onUpdate);
23
33
  });
@@ -4,6 +4,7 @@ export declare class OnAnyClientCallUpdater implements Updater {
4
4
  private _observedCall;
5
5
  readonly name = "OnAnyClientCallUpdater";
6
6
  readonly description = "Call the update() method of the ObservedCall when any of the client has been updated";
7
+ closed: boolean;
7
8
  constructor(_observedCall: ObservedCall);
8
9
  close(): void;
9
10
  private _onNewObservedClient;
@@ -1 +1 @@
1
- {"version":3,"file":"OnAnyClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAKpD,OAAO,CAAC,aAAa;IAJtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,0FAA0F;gBAGrG,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAIpB,OAAO,CAAC,oBAAoB;CAQ5B"}
1
+ {"version":3,"file":"OnAnyClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAMpD,OAAO,CAAC,aAAa;IALtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,0FAA0F;IACvG,MAAM,UAAS;gBAGb,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAKpB,OAAO,CAAC,oBAAoB;CAa5B"}
@@ -5,6 +5,7 @@ class OnAnyClientCallUpdater {
5
5
  _observedCall;
6
6
  name = 'OnAnyClientCallUpdater';
7
7
  description = 'Call the update() method of the ObservedCall when any of the client has been updated';
8
+ closed = false;
8
9
  constructor(_observedCall) {
9
10
  this._observedCall = _observedCall;
10
11
  this._onNewObservedClient = this._onNewObservedClient.bind(this);
@@ -14,10 +15,18 @@ class OnAnyClientCallUpdater {
14
15
  this._observedCall.on('newclient', this._onNewObservedClient);
15
16
  }
16
17
  close() {
17
- // do nothing, as close once emitted unsubscription happened
18
+ if (this.closed)
19
+ return;
20
+ this.closed = true;
18
21
  }
19
22
  _onNewObservedClient(observedClient) {
20
- const onUpdate = () => this._observedCall.update();
23
+ if (this.closed)
24
+ return;
25
+ const onUpdate = () => {
26
+ if (this.closed)
27
+ return;
28
+ this._observedCall.update();
29
+ };
21
30
  observedClient.once('close', () => {
22
31
  observedClient.off('update', onUpdate);
23
32
  });
@@ -0,0 +1,25 @@
1
+ import { ObservedCall } from '../ObservedCall';
2
+ import { ObservedCallEventMonitor } from '../ObservedCallEventMonitor';
3
+ import { ObservedInboundTrack } from '../ObservedInboundTrack';
4
+ import { ObservedOutboundTrack } from '../ObservedOutboundTrack';
5
+ import { RemoteTrackResolver } from './RemoteTrackResolver';
6
+ export declare class MediasoupRemoteTrackResolver implements RemoteTrackResolver {
7
+ readonly observedCall: ObservedCall;
8
+ readonly eventMonitor: ObservedCallEventMonitor<{}>;
9
+ private _consumerIdToProducerId;
10
+ private _producerIdToOutboundTrack;
11
+ private _consumerIdToInboundTrack;
12
+ private _inboundTrackToConsumerId;
13
+ private _producerIdToConsumerIds;
14
+ private _outboundTrackToProducerId;
15
+ constructor(observedCall: ObservedCall);
16
+ resolveRemoteOutboundTrack(inboundTrack: ObservedInboundTrack): ObservedOutboundTrack | undefined;
17
+ resolveRemoteInboundTracks(outboundTrack: ObservedOutboundTrack): ObservedInboundTrack[] | undefined;
18
+ private _addInboundTrack;
19
+ private _removeInboundTrack;
20
+ private _addOutboundTrack;
21
+ private _removeOutboundTrack;
22
+ private _getInboundTrackAttachments;
23
+ private _getOutboundTrackAttachments;
24
+ }
25
+ //# sourceMappingURL=MediasoupRemoteTrackResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediasoupRemoteTrackResolver.d.ts","sourceRoot":"","sources":["../../src/utils/MediasoupRemoteTrackResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,4BAA6B,YAAW,mBAAmB;aAetD,YAAY,EAAE,YAAY;IAd3C,SAAgB,YAAY,EAAE,wBAAwB,CAAC,EAEtD,CAAC,CAAC;IAEH,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,0BAA0B,CAA4C;IAC9E,OAAO,CAAC,yBAAyB,CAA2C;IAG5E,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,wBAAwB,CAA+B;IAC/D,OAAO,CAAC,0BAA0B,CAA6B;gBAG9C,YAAY,EAAE,YAAY;IAcpC,0BAA0B,CAAC,YAAY,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,SAAS;IAYjG,0BAA0B,CAAC,aAAa,EAAE,qBAAqB,GAAG,oBAAoB,EAAE,GAAG,SAAS;IAe3G,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,4BAA4B;CAWpC"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediasoupRemoteTrackResolver = void 0;
4
+ class MediasoupRemoteTrackResolver {
5
+ observedCall;
6
+ eventMonitor;
7
+ _consumerIdToProducerId = new Map();
8
+ _producerIdToOutboundTrack = new Map();
9
+ _consumerIdToInboundTrack = new Map();
10
+ // private _producerIdToOutboundTrack = new Map<string, ObservedOutboundTrack>();
11
+ _inboundTrackToConsumerId = new Map();
12
+ _producerIdToConsumerIds = new Map();
13
+ _outboundTrackToProducerId = new Map();
14
+ constructor(observedCall) {
15
+ this.observedCall = observedCall;
16
+ this.eventMonitor = this.observedCall.createEventMonitor({});
17
+ this.eventMonitor.onInboundTrackAdded = this._addInboundTrack.bind(this);
18
+ this.eventMonitor.onInboundTrackRemoved = this._removeInboundTrack.bind(this);
19
+ this.eventMonitor.onOutboundTrackAdded = this._addOutboundTrack.bind(this);
20
+ this.eventMonitor.onOutboundTrackRemoved = this._removeOutboundTrack.bind(this);
21
+ // this.eventMonitor.onClientEvent = (client, event) => {
22
+ // };
23
+ }
24
+ resolveRemoteOutboundTrack(inboundTrack) {
25
+ const consumerId = this._inboundTrackToConsumerId.get(inboundTrack.id);
26
+ if (!consumerId)
27
+ return;
28
+ const producerId = this._consumerIdToProducerId.get(consumerId);
29
+ if (!producerId)
30
+ return;
31
+ return this._producerIdToOutboundTrack.get(producerId);
32
+ }
33
+ resolveRemoteInboundTracks(outboundTrack) {
34
+ const producerId = this._outboundTrackToProducerId.get(outboundTrack.id);
35
+ if (!producerId)
36
+ return;
37
+ const consumerIds = this._producerIdToConsumerIds.get(producerId);
38
+ if (!consumerIds)
39
+ return;
40
+ return consumerIds
41
+ .map((consumerId) => this._consumerIdToInboundTrack.get(consumerId))
42
+ .filter((inboundTrack) => Boolean(inboundTrack));
43
+ }
44
+ _addInboundTrack(inboundTrack) {
45
+ const attachments = this._getInboundTrackAttachments(inboundTrack);
46
+ if (!attachments)
47
+ return;
48
+ const { producerId, consumerId } = attachments;
49
+ this._inboundTrackToConsumerId.set(inboundTrack.id, consumerId);
50
+ this._consumerIdToProducerId.set(consumerId, producerId);
51
+ this._consumerIdToInboundTrack.set(consumerId, inboundTrack);
52
+ let producerConsumers = this._producerIdToConsumerIds.get(producerId);
53
+ if (!producerConsumers) {
54
+ producerConsumers = [];
55
+ this._producerIdToConsumerIds.set(producerId, producerConsumers);
56
+ }
57
+ producerConsumers.push(consumerId);
58
+ }
59
+ _removeInboundTrack(inboundTrack) {
60
+ const consumerId = this._inboundTrackToConsumerId.get(inboundTrack.id);
61
+ if (!consumerId)
62
+ return;
63
+ this._inboundTrackToConsumerId.delete(inboundTrack.id);
64
+ this._consumerIdToProducerId.delete(consumerId);
65
+ this._consumerIdToInboundTrack.delete(consumerId);
66
+ const producerConsumers = this._producerIdToConsumerIds.get(consumerId);
67
+ if (!producerConsumers)
68
+ return;
69
+ const filteredProducerConsumers = producerConsumers.filter((id) => id !== consumerId);
70
+ if (filteredProducerConsumers.length === 0) {
71
+ this._producerIdToConsumerIds.delete(consumerId);
72
+ }
73
+ else {
74
+ this._producerIdToConsumerIds.set(consumerId, filteredProducerConsumers);
75
+ }
76
+ }
77
+ _addOutboundTrack(outboundTrack) {
78
+ const attachments = this._getOutboundTrackAttachments(outboundTrack);
79
+ if (!attachments)
80
+ return;
81
+ const { producerId, } = attachments;
82
+ this._producerIdToOutboundTrack.set(producerId, outboundTrack);
83
+ this._outboundTrackToProducerId.set(outboundTrack.id, producerId);
84
+ }
85
+ _removeOutboundTrack(outboundTrack) {
86
+ const producerId = this._outboundTrackToProducerId.get(outboundTrack.id);
87
+ if (!producerId)
88
+ return;
89
+ this._producerIdToOutboundTrack.delete(producerId);
90
+ this._outboundTrackToProducerId.delete(outboundTrack.id);
91
+ }
92
+ _getInboundTrackAttachments(inboundTrack) {
93
+ const { producerId, consumerId } = inboundTrack.attachments ?? {};
94
+ if (!producerId || !consumerId || typeof producerId !== 'string' || typeof consumerId !== 'string')
95
+ return;
96
+ return {
97
+ producerId,
98
+ consumerId
99
+ };
100
+ }
101
+ _getOutboundTrackAttachments(outboundTrack) {
102
+ const { producerId, } = outboundTrack.attachments ?? {};
103
+ if (!producerId || typeof producerId !== 'string')
104
+ return;
105
+ return {
106
+ producerId,
107
+ };
108
+ }
109
+ }
110
+ exports.MediasoupRemoteTrackResolver = MediasoupRemoteTrackResolver;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@observertc/observer-js",
3
- "version": "1.0.1-9d3744d.0",
3
+ "version": "1.0.1-a98466e.0",
4
4
  "description": "Server Side NodeJS Library for processing ObserveRTC Samples",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -10,6 +10,7 @@ import { OnAllClientCallUpdater } from './updaters/OnAllClientCallUpdater';
10
10
  import { Updater } from './updaters/Updater';
11
11
  import { OnIntervalUpdater } from './updaters/OnIntervalUpdater';
12
12
  import { OnAnyClientCallUpdater } from './updaters/OnAnyClientCallUpdater';
13
+ import { ObservedCallEventMonitor } from './ObservedCallEventMonitor';
13
14
 
14
15
  export type ObservedCallSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
15
16
  callId: string;
@@ -25,8 +26,6 @@ export type ObservedCallEvents = {
25
26
  empty: [],
26
27
  'not-empty': [],
27
28
  close: [],
28
- started: [],
29
- ended: [],
30
29
  }
31
30
 
32
31
  export declare interface ObservedCall {
@@ -84,7 +83,8 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
84
83
  public appData: AppData;
85
84
  public closed = false;
86
85
  public startedAt?: number;
87
- public ended?: number;
86
+ public endedAt?: number;
87
+ public closedAt?: number;
88
88
 
89
89
  private _callStartedEvent: {
90
90
  emitted: boolean,
@@ -158,10 +158,8 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
158
158
  this.updater?.close();
159
159
 
160
160
  [ ...this.observedClients.values() ].forEach((client) => client.close());
161
- // make sure to emit the events
162
- this.emitCallStartedEvent();
163
- this.emitCallEndedEvent();
164
161
 
162
+ this.closedAt = Date.now();
165
163
  this.emit('close');
166
164
  }
167
165
 
@@ -209,6 +207,10 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
209
207
  return result;
210
208
  }
211
209
 
210
+ public createEventMonitor<CTX>(context: CTX): ObservedCallEventMonitor<CTX> {
211
+ return new ObservedCallEventMonitor(this, context);
212
+ }
213
+
212
214
  public update() {
213
215
  if (this.closed) return;
214
216
 
@@ -268,40 +270,12 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
268
270
  if (!client.joinedAt) return;
269
271
 
270
272
  this.startedAt = Math.min(this.startedAt ?? client.joinedAt, client.joinedAt);
271
-
272
- if (this._callStartedEvent.emitted) return;
273
- if (this._callStartedEvent.timer) {
274
- if (1 < this.observedClients.size) {
275
- this.emitCallStartedEvent();
276
- }
277
-
278
- return;
279
- }
280
- this._callStartedEvent.timer = setTimeout(() => {
281
- this.emitCallStartedEvent();
282
- }, 5000);
283
273
  }
284
274
 
285
275
  private _clientLeft(client: ObservedClient) {
286
276
  if (!client.leftAt) return;
287
277
 
288
- this.ended = Math.max(this.ended ?? client.leftAt, client.leftAt);
289
- }
290
-
291
- public emitCallStartedEvent() {
292
- if (this._callStartedEvent.emitted) return;
293
- this._callStartedEvent.emitted = true;
294
- clearTimeout(this._callStartedEvent.timer);
295
- this._callStartedEvent.timer = undefined;
296
-
297
- this.emit('started');
298
- }
299
-
300
- public emitCallEndedEvent() {
301
- if (this._callEndedEvent.emitted) return;
302
- this._callEndedEvent.emitted = true;
303
-
304
- this.emit('ended');
278
+ this.endedAt = Math.max(this.endedAt ?? client.leftAt, client.leftAt);
305
279
  }
306
280
 
307
281
  // public resetSummaryMetrics() {