@observertc/observer-js 1.0.1-ec27289.0 → 1.1.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 (210) hide show
  1. package/README.md +2184 -1
  2. package/dist/index.d.mts +6842 -0
  3. package/dist/index.d.ts +6842 -0
  4. package/dist/index.js +7736 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +7608 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +44 -18
  9. package/.eslintrc.json +0 -143
  10. package/.prettierignore +0 -5
  11. package/.prettierrc +0 -7
  12. package/jest.config.js +0 -9
  13. package/lib/ObservedCall.d.ts +0 -83
  14. package/lib/ObservedCall.d.ts.map +0 -1
  15. package/lib/ObservedCall.js +0 -203
  16. package/lib/ObservedCallSummary.d.ts +0 -18
  17. package/lib/ObservedCallSummary.d.ts.map +0 -1
  18. package/lib/ObservedCallSummary.js +0 -2
  19. package/lib/ObservedCertificate.d.ts +0 -19
  20. package/lib/ObservedCertificate.d.ts.map +0 -1
  21. package/lib/ObservedCertificate.js +0 -38
  22. package/lib/ObservedClient.d.ts +0 -131
  23. package/lib/ObservedClient.d.ts.map +0 -1
  24. package/lib/ObservedClient.js +0 -520
  25. package/lib/ObservedClientEventMonitor.d.ts +0 -89
  26. package/lib/ObservedClientEventMonitor.d.ts.map +0 -1
  27. package/lib/ObservedClientEventMonitor.js +0 -247
  28. package/lib/ObservedClientSummary.d.ts +0 -23
  29. package/lib/ObservedClientSummary.d.ts.map +0 -1
  30. package/lib/ObservedClientSummary.js +0 -2
  31. package/lib/ObservedCodec.d.ts +0 -22
  32. package/lib/ObservedCodec.d.ts.map +0 -1
  33. package/lib/ObservedCodec.js +0 -45
  34. package/lib/ObservedDataChannel.d.ts +0 -30
  35. package/lib/ObservedDataChannel.d.ts.map +0 -1
  36. package/lib/ObservedDataChannel.js +0 -75
  37. package/lib/ObservedIceCandidate.d.ts +0 -29
  38. package/lib/ObservedIceCandidate.d.ts.map +0 -1
  39. package/lib/ObservedIceCandidate.js +0 -59
  40. package/lib/ObservedIceCandidatePair.d.ts +0 -44
  41. package/lib/ObservedIceCandidatePair.d.ts.map +0 -1
  42. package/lib/ObservedIceCandidatePair.js +0 -111
  43. package/lib/ObservedIceTransport.d.ts +0 -36
  44. package/lib/ObservedIceTransport.d.ts.map +0 -1
  45. package/lib/ObservedIceTransport.js +0 -93
  46. package/lib/ObservedInboundRtp.d.ts +0 -92
  47. package/lib/ObservedInboundRtp.d.ts.map +0 -1
  48. package/lib/ObservedInboundRtp.js +0 -193
  49. package/lib/ObservedInboundTrack.d.ts +0 -31
  50. package/lib/ObservedInboundTrack.d.ts.map +0 -1
  51. package/lib/ObservedInboundTrack.js +0 -59
  52. package/lib/ObservedMediaPlayout.d.ts +0 -22
  53. package/lib/ObservedMediaPlayout.d.ts.map +0 -1
  54. package/lib/ObservedMediaPlayout.js +0 -42
  55. package/lib/ObservedMediaSource.d.ts +0 -28
  56. package/lib/ObservedMediaSource.d.ts.map +0 -1
  57. package/lib/ObservedMediaSource.js +0 -55
  58. package/lib/ObservedOutboundRtp.d.ts +0 -62
  59. package/lib/ObservedOutboundRtp.d.ts.map +0 -1
  60. package/lib/ObservedOutboundRtp.js +0 -144
  61. package/lib/ObservedOutboundTrack.d.ts +0 -31
  62. package/lib/ObservedOutboundTrack.d.ts.map +0 -1
  63. package/lib/ObservedOutboundTrack.js +0 -59
  64. package/lib/ObservedPeerConnection.d.ts +0 -185
  65. package/lib/ObservedPeerConnection.d.ts.map +0 -1
  66. package/lib/ObservedPeerConnection.js +0 -710
  67. package/lib/ObservedPeerConnectionTransport.d.ts +0 -17
  68. package/lib/ObservedPeerConnectionTransport.d.ts.map +0 -1
  69. package/lib/ObservedPeerConnectionTransport.js +0 -34
  70. package/lib/ObservedRemoteInboundRtp.d.ts +0 -30
  71. package/lib/ObservedRemoteInboundRtp.d.ts.map +0 -1
  72. package/lib/ObservedRemoteInboundRtp.js +0 -60
  73. package/lib/ObservedRemoteOutboundRtp.d.ts +0 -30
  74. package/lib/ObservedRemoteOutboundRtp.d.ts.map +0 -1
  75. package/lib/ObservedRemoteOutboundRtp.js +0 -60
  76. package/lib/ObservedTURN.d.ts +0 -31
  77. package/lib/ObservedTURN.d.ts.map +0 -1
  78. package/lib/ObservedTURN.js +0 -58
  79. package/lib/ObservedTurnServer.d.ts +0 -25
  80. package/lib/ObservedTurnServer.d.ts.map +0 -1
  81. package/lib/ObservedTurnServer.js +0 -59
  82. package/lib/Observer.d.ts +0 -61
  83. package/lib/Observer.d.ts.map +0 -1
  84. package/lib/Observer.js +0 -156
  85. package/lib/ObserverSummary.d.ts +0 -13
  86. package/lib/ObserverSummary.d.ts.map +0 -1
  87. package/lib/ObserverSummary.js +0 -2
  88. package/lib/common/Middleware.d.ts +0 -17
  89. package/lib/common/Middleware.d.ts.map +0 -1
  90. package/lib/common/Middleware.js +0 -60
  91. package/lib/common/SingleExecutor.d.ts +0 -3
  92. package/lib/common/SingleExecutor.d.ts.map +0 -1
  93. package/lib/common/SingleExecutor.js +0 -31
  94. package/lib/common/logger.d.ts +0 -17
  95. package/lib/common/logger.d.ts.map +0 -1
  96. package/lib/common/logger.js +0 -50
  97. package/lib/common/types.d.ts +0 -3
  98. package/lib/common/types.d.ts.map +0 -1
  99. package/lib/common/types.js +0 -3
  100. package/lib/common/utils.d.ts +0 -11
  101. package/lib/common/utils.d.ts.map +0 -1
  102. package/lib/common/utils.js +0 -63
  103. package/lib/detectors/Detector.d.ts +0 -5
  104. package/lib/detectors/Detector.d.ts.map +0 -1
  105. package/lib/detectors/Detector.js +0 -3
  106. package/lib/detectors/Detectors.d.ts +0 -11
  107. package/lib/detectors/Detectors.d.ts.map +0 -1
  108. package/lib/detectors/Detectors.js +0 -34
  109. package/lib/index.d.ts +0 -27
  110. package/lib/index.d.ts.map +0 -1
  111. package/lib/index.js +0 -47
  112. package/lib/monitors/TurnUsageMonitor.d.ts +0 -1
  113. package/lib/monitors/TurnUsageMonitor.d.ts.map +0 -1
  114. package/lib/monitors/TurnUsageMonitor.js +0 -146
  115. package/lib/schema/ClientEventTypes.d.ts +0 -100
  116. package/lib/schema/ClientEventTypes.d.ts.map +0 -1
  117. package/lib/schema/ClientEventTypes.js +0 -38
  118. package/lib/schema/ClientMetaTypes.d.ts +0 -34
  119. package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
  120. package/lib/schema/ClientMetaTypes.js +0 -16
  121. package/lib/schema/ClientSample.d.ts +0 -1333
  122. package/lib/schema/ClientSample.d.ts.map +0 -1
  123. package/lib/schema/ClientSample.js +0 -4
  124. package/lib/scores/CalculatedScore.d.ts +0 -6
  125. package/lib/scores/CalculatedScore.d.ts.map +0 -1
  126. package/lib/scores/CalculatedScore.js +0 -2
  127. package/lib/scores/DefaultCallScoreCalculator.d.ts +0 -7
  128. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +0 -1
  129. package/lib/scores/DefaultCallScoreCalculator.js +0 -21
  130. package/lib/scores/ScoreCalculator.d.ts +0 -4
  131. package/lib/scores/ScoreCalculator.d.ts.map +0 -1
  132. package/lib/scores/ScoreCalculator.js +0 -2
  133. package/lib/updaters/CallUpdater.d.ts +0 -5
  134. package/lib/updaters/CallUpdater.d.ts.map +0 -1
  135. package/lib/updaters/CallUpdater.js +0 -2
  136. package/lib/updaters/ObserverUpdater.d.ts +0 -5
  137. package/lib/updaters/ObserverUpdater.d.ts.map +0 -1
  138. package/lib/updaters/ObserverUpdater.js +0 -2
  139. package/lib/updaters/OnAllCallObserverUpdater_.d.ts +0 -13
  140. package/lib/updaters/OnAllCallObserverUpdater_.d.ts.map +0 -1
  141. package/lib/updaters/OnAllCallObserverUpdater_.js +0 -38
  142. package/lib/updaters/OnAllClientCallUpdater.d.ts +0 -13
  143. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +0 -1
  144. package/lib/updaters/OnAllClientCallUpdater.js +0 -37
  145. package/lib/updaters/OnAnyCallObserverUpdater_.d.ts +0 -11
  146. package/lib/updaters/OnAnyCallObserverUpdater_.d.ts.map +0 -1
  147. package/lib/updaters/OnAnyCallObserverUpdater_.js +0 -27
  148. package/lib/updaters/OnAnyClientCallUpdater.d.ts +0 -11
  149. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +0 -1
  150. package/lib/updaters/OnAnyClientCallUpdater.js +0 -27
  151. package/lib/updaters/OnIntervalUpdater.d.ts +0 -10
  152. package/lib/updaters/OnIntervalUpdater.d.ts.map +0 -1
  153. package/lib/updaters/OnIntervalUpdater.js +0 -17
  154. package/lib/updaters/Updater.d.ts +0 -6
  155. package/lib/updaters/Updater.d.ts.map +0 -1
  156. package/lib/updaters/Updater.js +0 -2
  157. package/lib/utils/RemoteTrackResolver.d.ts +0 -7
  158. package/lib/utils/RemoteTrackResolver.d.ts.map +0 -1
  159. package/lib/utils/RemoteTrackResolver.js +0 -2
  160. package/src/ObservedCall.ts +0 -322
  161. package/src/ObservedCallSummary.ts +0 -22
  162. package/src/ObservedCertificate.ts +0 -43
  163. package/src/ObservedClient.ts +0 -673
  164. package/src/ObservedClientEventMonitor.ts +0 -301
  165. package/src/ObservedClientSummary.ts +0 -24
  166. package/src/ObservedCodec.ts +0 -49
  167. package/src/ObservedDataChannel.ts +0 -85
  168. package/src/ObservedIceCandidate.ts +0 -64
  169. package/src/ObservedIceCandidatePair.ts +0 -118
  170. package/src/ObservedIceTransport.ts +0 -99
  171. package/src/ObservedInboundRtp.ts +0 -205
  172. package/src/ObservedInboundTrack.ts +0 -73
  173. package/src/ObservedMediaPlayout.ts +0 -49
  174. package/src/ObservedMediaSource.ts +0 -60
  175. package/src/ObservedOutboundRtp.ts +0 -156
  176. package/src/ObservedOutboundTrack.ts +0 -72
  177. package/src/ObservedPeerConnection.ts +0 -1019
  178. package/src/ObservedPeerConnectionTransport.ts +0 -38
  179. package/src/ObservedRemoteInboundRtp.ts +0 -64
  180. package/src/ObservedRemoteOutboundRtp.ts +0 -65
  181. package/src/ObservedTURN.ts +0 -86
  182. package/src/ObservedTurnServer.ts +0 -72
  183. package/src/Observer.ts +0 -239
  184. package/src/ObserverSummary.ts +0 -15
  185. package/src/common/Middleware.ts +0 -84
  186. package/src/common/SingleExecutor.ts +0 -36
  187. package/src/common/logger.ts +0 -82
  188. package/src/common/types.ts +0 -4
  189. package/src/common/utils.ts +0 -69
  190. package/src/detectors/Detector.ts +0 -6
  191. package/src/detectors/Detectors.ts +0 -38
  192. package/src/index.ts +0 -28
  193. package/src/monitors/TurnUsageMonitor.ts +0 -187
  194. package/src/schema/ClientEventTypes.ts +0 -112
  195. package/src/schema/ClientMetaTypes.ts +0 -41
  196. package/src/schema/ClientSample.ts +0 -1682
  197. package/src/scores/CalculatedScore.ts +0 -6
  198. package/src/scores/DefaultCallScoreCalculator.ts +0 -23
  199. package/src/scores/ScoreCalculator.ts +0 -3
  200. package/src/updaters/CallUpdater.ts +0 -5
  201. package/src/updaters/ObserverUpdater.ts +0 -5
  202. package/src/updaters/OnAllCallObserverUpdater_.ts +0 -46
  203. package/src/updaters/OnAllClientCallUpdater.ts +0 -46
  204. package/src/updaters/OnAnyCallObserverUpdater_.ts +0 -32
  205. package/src/updaters/OnAnyClientCallUpdater.ts +0 -32
  206. package/src/updaters/OnIntervalUpdater.ts +0 -19
  207. package/src/updaters/Updater.ts +0 -5
  208. package/src/utils/RemoteTrackResolver.ts +0 -12
  209. package/tsconfig.json +0 -19
  210. package/tslint.json +0 -6
@@ -1,13 +0,0 @@
1
- export type ObserverSummary = {
2
- currentActiveCalls: number;
3
- currentNumberOfClientsUsingTURN: number;
4
- currentNumberOfClients: number;
5
- totalAddedCall: number;
6
- totalRemovedCall: number;
7
- totalRttLt50Measurements: number;
8
- totalRttLt150Measurements: number;
9
- totalRttLt300Measurements: number;
10
- totalRttGtOrEq300Measurements: number;
11
- totalClientIssues: number;
12
- };
13
- //# sourceMappingURL=ObserverSummary.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ObserverSummary.d.ts","sourceRoot":"","sources":["../src/ObserverSummary.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+BAA+B,EAAE,MAAM,CAAC;IACxC,sBAAsB,EAAE,MAAM,CAAC;IAE/B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,MAAM,CAAC;IAEtC,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- export type Middleware<T> = (input: T, next: (nextInput: T) => void) => void;
2
- export interface Processor<T> {
3
- finalCallback?: Callback<T>;
4
- process(value: T): void;
5
- addMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
6
- removeMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
7
- }
8
- type Callback<T> = (input: T) => void;
9
- export declare class MiddlewareProcessor<T> implements Processor<T> {
10
- private stack;
11
- finalCallback?: Callback<T>;
12
- addMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
13
- removeMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
14
- process(value: T): void;
15
- }
16
- export {};
17
- //# sourceMappingURL=Middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../src/common/Middleware.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAC3B,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,KACxB,IAAI,CAAC;AAEV,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7D,gBAAgB,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;CAChE;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAoCtC,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAuB;IAC7B,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5B,aAAa,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAQ5D,gBAAgB,CAAC,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAc/D,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAS9B"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MiddlewareProcessor = void 0;
4
- class Executor {
5
- stack;
6
- finalCallback;
7
- done = false;
8
- index = 0;
9
- prevIndex = -1;
10
- constructor(stack, finalCallback) {
11
- this.stack = stack;
12
- this.finalCallback = finalCallback;
13
- }
14
- // Executes the middleware stack
15
- execute(input) {
16
- if (this.index <= this.prevIndex) {
17
- throw new Error('Middleware must call next() only once!');
18
- }
19
- else if (this.done) {
20
- throw new Error('Middleware stack has already been executed!');
21
- }
22
- this.prevIndex = this.index;
23
- const middleware = this.stack[this.index];
24
- this.index++;
25
- if (middleware) {
26
- return middleware(input, (nextInput) => this.execute(nextInput));
27
- }
28
- this.done = true;
29
- this.finalCallback?.(input);
30
- }
31
- }
32
- class MiddlewareProcessor {
33
- stack = [];
34
- finalCallback;
35
- addMiddleware(...middlewares) {
36
- if (middlewares && middlewares.length > 0) {
37
- this.stack.push(...middlewares);
38
- }
39
- return this;
40
- }
41
- removeMiddleware(...middlewares) {
42
- if (middlewares && middlewares.length > 0) {
43
- for (const middleware of middlewares) {
44
- const index = this.stack.indexOf(middleware);
45
- if (index >= 0) {
46
- this.stack.splice(index, 1);
47
- }
48
- }
49
- }
50
- return this;
51
- }
52
- process(value) {
53
- if (this.stack.length === 0) {
54
- return this.finalCallback?.(value);
55
- }
56
- const executor = new Executor(this.stack, this.finalCallback);
57
- executor.execute(value);
58
- }
59
- }
60
- exports.MiddlewareProcessor = MiddlewareProcessor;
@@ -1,3 +0,0 @@
1
- export type SingleExecutor = ReturnType<typeof createSingleExecutor>;
2
- export declare function createSingleExecutor(): <T = unknown>(task: () => Promise<T>) => Promise<T>;
3
- //# sourceMappingURL=SingleExecutor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SingleExecutor.d.ts","sourceRoot":"","sources":["../../src/common/SingleExecutor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAErE,wBAAgB,oBAAoB,wDAiCnC"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSingleExecutor = void 0;
4
- function createSingleExecutor() {
5
- let semaphore = 1;
6
- const tasks = [];
7
- const execute = (task) => {
8
- return new Promise((resolve, reject) => {
9
- tasks.push(() => task().then(resolve)
10
- .catch(reject));
11
- run();
12
- });
13
- };
14
- const run = () => {
15
- if (semaphore < 1)
16
- return;
17
- const task = tasks.shift();
18
- if (!task)
19
- return;
20
- const postProcess = () => {
21
- ++semaphore;
22
- run();
23
- };
24
- --semaphore;
25
- task()
26
- .then(postProcess)
27
- .catch(postProcess);
28
- };
29
- return execute;
30
- }
31
- exports.createSingleExecutor = createSingleExecutor;
@@ -1,17 +0,0 @@
1
- export interface Logger {
2
- trace(...args: any[]): void;
3
- debug(...args: any[]): void;
4
- info(...args: any[]): void;
5
- warn(...args: any[]): void;
6
- error(...args: any[]): void;
7
- }
8
- export interface ObserverLogger {
9
- trace(module: string, ...args: any[]): void;
10
- debug(module: string, ...args: any[]): void;
11
- info(module: string, ...args: any[]): void;
12
- warn(module: string, ...args: any[]): void;
13
- error(module: string, ...args: any[]): void;
14
- }
15
- export declare function createLogger(moduleName: string): Logger;
16
- export declare function setObserverLogger(logger: ObserverLogger): void;
17
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IAEtB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5C;AA8BD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAuBvD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,QAEvD"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setObserverLogger = exports.createLogger = void 0;
4
- let mainLogger = new class {
5
- trace = () => void 0;
6
- // trace(module: string, ...args: any[]) {
7
- // // eslint-disable-next-line no-console
8
- // console.log(`[TRACE] ${module}`, ...args);
9
- // }
10
- debug(module, ...args) {
11
- // eslint-disable-next-line no-console
12
- console.log(`[DEBUG] ${module}`, ...args);
13
- }
14
- info(module, ...args) {
15
- // eslint-disable-next-line no-console
16
- console.info(`[INFO] ${module}`, ...args);
17
- }
18
- warn(module, ...args) {
19
- // eslint-disable-next-line no-console
20
- console.warn(`[WARN] ${module}`, ...args);
21
- }
22
- error(module, ...args) {
23
- // eslint-disable-next-line no-console
24
- console.error(`[ERROR] ${module}`, ...args);
25
- }
26
- }();
27
- function createLogger(moduleName) {
28
- return new class {
29
- trace(...args) {
30
- mainLogger.trace(moduleName, ...args);
31
- }
32
- debug(...args) {
33
- mainLogger.debug(moduleName, ...args);
34
- }
35
- info(...args) {
36
- mainLogger.info(moduleName, ...args);
37
- }
38
- warn(...args) {
39
- mainLogger.warn(moduleName, ...args);
40
- }
41
- error(...args) {
42
- mainLogger.error(moduleName, ...args);
43
- }
44
- }();
45
- }
46
- exports.createLogger = createLogger;
47
- function setObserverLogger(logger) {
48
- mainLogger = logger;
49
- }
50
- exports.setObserverLogger = setObserverLogger;
@@ -1,3 +0,0 @@
1
- export type MediaKind = 'audio' | 'video';
2
- export type SupportedVideoCodecType = 'vp8' | 'vp9' | 'h264' | 'h265';
3
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // export type EvaluatorMiddleware = Middleware<EvaluatorContext>;
@@ -1,11 +0,0 @@
1
- export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
2
- export type Writable<T> = T extends object ? {
3
- -readonly [K in keyof T]: Writable<T[K]>;
4
- } : T;
5
- export declare function iteratorConverter<T>(generator: Generator<T, void, undefined>): IterableIterator<T>;
6
- export declare function asyncIteratorConverter<T>(generator: AsyncGenerator<T, void, undefined>): AsyncIterableIterator<T>;
7
- export declare function isValidUuid(str: string): boolean;
8
- export declare function getAverage(arr: number[], defaultAvgIfArrLengthIs0?: number): number;
9
- export declare function getMedian(arr: number[], copyArrayForSorting?: boolean): number;
10
- export declare function parseJsonAs<T>(json?: string): T | undefined;
11
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAE9F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CASlG;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CASjH;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,wBAAwB,SAAI,GAAG,MAAM,CAI9E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,mBAAmB,UAAO,GAAG,MAAM,CAkB3E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAU3D"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseJsonAs = exports.getMedian = exports.getAverage = exports.isValidUuid = exports.asyncIteratorConverter = exports.iteratorConverter = void 0;
4
- function iteratorConverter(generator) {
5
- return {
6
- [Symbol.iterator]() {
7
- return this;
8
- },
9
- next() {
10
- return generator.next();
11
- },
12
- };
13
- }
14
- exports.iteratorConverter = iteratorConverter;
15
- function asyncIteratorConverter(generator) {
16
- return {
17
- [Symbol.asyncIterator]() {
18
- return this;
19
- },
20
- next() {
21
- return generator.next();
22
- },
23
- };
24
- }
25
- exports.asyncIteratorConverter = asyncIteratorConverter;
26
- function isValidUuid(str) {
27
- const regexp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
28
- return regexp.test(str);
29
- }
30
- exports.isValidUuid = isValidUuid;
31
- function getAverage(arr, defaultAvgIfArrLengthIs0 = 0) {
32
- if (arr.length === 0)
33
- return defaultAvgIfArrLengthIs0;
34
- return arr.reduce((a, b) => a + b, 0) / arr.length;
35
- }
36
- exports.getAverage = getAverage;
37
- function getMedian(arr, copyArrayForSorting = true) {
38
- // Sort the array in ascending order
39
- const sortedArr = copyArrayForSorting
40
- ? arr.slice().sort((a, b) => a - b)
41
- : arr.sort((a, b) => a - b);
42
- // Calculate the middle index
43
- const mid = Math.floor(sortedArr.length / 2);
44
- // If the array length is odd, return the middle element
45
- if (sortedArr.length % 2 !== 0) {
46
- return sortedArr[mid];
47
- }
48
- // If the array length is even, return the average of the two middle elements
49
- return (sortedArr[mid - 1] + sortedArr[mid]) / 2;
50
- }
51
- exports.getMedian = getMedian;
52
- function parseJsonAs(json) {
53
- if (!json) {
54
- return undefined;
55
- }
56
- try {
57
- return JSON.parse(json);
58
- }
59
- catch (error) {
60
- return undefined;
61
- }
62
- }
63
- exports.parseJsonAs = parseJsonAs;
@@ -1,5 +0,0 @@
1
- export interface Detector {
2
- readonly name: string;
3
- update(): void;
4
- }
5
- //# sourceMappingURL=Detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Detector.d.ts","sourceRoot":"","sources":["../../src/detectors/Detector.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,IAAI,CAAC;CACf"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- // import { AlertState } from "../ClientMonitor";
3
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,11 +0,0 @@
1
- import { Detector } from './Detector';
2
- export declare class Detectors {
3
- private _detectors;
4
- constructor(...detectors: Detector[]);
5
- add(detector: Detector): void;
6
- remove(detector: Detector): void;
7
- get listOfNames(): string[];
8
- update(): void;
9
- clear(): void;
10
- }
11
- //# sourceMappingURL=Detectors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Detectors.d.ts","sourceRoot":"","sources":["../../src/detectors/Detectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,SAAS;IACrB,OAAO,CAAC,UAAU,CAAa;gBAEZ,GAAG,SAAS,EAAE,QAAQ,EAAE;IAIpC,GAAG,CAAC,QAAQ,EAAE,QAAQ;IAItB,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAIhC,IAAI,WAAW,aAEd;IAEM,MAAM;IAUN,KAAK;CAGZ"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Detectors = void 0;
4
- const logger_1 = require("../common/logger");
5
- const logger = (0, logger_1.createLogger)('Detectors');
6
- class Detectors {
7
- _detectors;
8
- constructor(...detectors) {
9
- this._detectors = detectors;
10
- }
11
- add(detector) {
12
- this._detectors.push(detector);
13
- }
14
- remove(detector) {
15
- this._detectors = this._detectors.filter((d) => d !== detector);
16
- }
17
- get listOfNames() {
18
- return this._detectors.map((d) => d.name);
19
- }
20
- update() {
21
- for (const detector of this._detectors) {
22
- try {
23
- detector.update();
24
- }
25
- catch (err) {
26
- logger.warn(`Error updating detector ${detector?.constructor?.name}`, err);
27
- }
28
- }
29
- }
30
- clear() {
31
- this._detectors = [];
32
- }
33
- }
34
- exports.Detectors = Detectors;
package/lib/index.d.ts DELETED
@@ -1,27 +0,0 @@
1
- export type { ObserverEvents } from './Observer';
2
- export { Observer } from './Observer';
3
- export { ObservedCall } from './ObservedCall';
4
- export { ObservedInboundTrack } from './ObservedInboundTrack';
5
- export { ObservedOutboundTrack } from './ObservedOutboundTrack';
6
- export { ObservedClient } from './ObservedClient';
7
- export { ObservedPeerConnection } from './ObservedPeerConnection';
8
- export { ObservedMediaSource } from './ObservedMediaSource';
9
- export { ObservedMediaPlayout } from './ObservedMediaPlayout';
10
- export { ObservedCodec } from './ObservedCodec';
11
- export { ObservedCertificate } from './ObservedCertificate';
12
- export { ObservedDataChannel } from './ObservedDataChannel';
13
- export { ObservedInboundRtp } from './ObservedInboundRtp';
14
- export { ObservedOutboundRtp } from './ObservedOutboundRtp';
15
- export { ObservedRemoteInboundRtp } from './ObservedRemoteInboundRtp';
16
- export { ObservedRemoteOutboundRtp } from './ObservedRemoteOutboundRtp';
17
- export { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
18
- export { ObservedIceCandidate } from './ObservedIceCandidate';
19
- export { ObservedIceTransport } from './ObservedIceTransport';
20
- export { ObservedPeerConnectionTransport } from './ObservedPeerConnectionTransport';
21
- export { ClientEventTypes } from './schema/ClientEventTypes';
22
- export { ClientMetaTypes } from './schema/ClientMetaTypes';
23
- export { ClientSample } from './schema/ClientSample';
24
- export { ScoreCalculator } from './scores/ScoreCalculator';
25
- export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
26
- export { Middleware } from './common/Middleware';
27
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
package/lib/index.js DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- 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
- var Observer_1 = require("./Observer");
5
- Object.defineProperty(exports, "Observer", { enumerable: true, get: function () { return Observer_1.Observer; } });
6
- var ObservedCall_1 = require("./ObservedCall");
7
- Object.defineProperty(exports, "ObservedCall", { enumerable: true, get: function () { return ObservedCall_1.ObservedCall; } });
8
- var ObservedInboundTrack_1 = require("./ObservedInboundTrack");
9
- Object.defineProperty(exports, "ObservedInboundTrack", { enumerable: true, get: function () { return ObservedInboundTrack_1.ObservedInboundTrack; } });
10
- var ObservedOutboundTrack_1 = require("./ObservedOutboundTrack");
11
- Object.defineProperty(exports, "ObservedOutboundTrack", { enumerable: true, get: function () { return ObservedOutboundTrack_1.ObservedOutboundTrack; } });
12
- var ObservedClient_1 = require("./ObservedClient");
13
- Object.defineProperty(exports, "ObservedClient", { enumerable: true, get: function () { return ObservedClient_1.ObservedClient; } });
14
- var ObservedPeerConnection_1 = require("./ObservedPeerConnection");
15
- Object.defineProperty(exports, "ObservedPeerConnection", { enumerable: true, get: function () { return ObservedPeerConnection_1.ObservedPeerConnection; } });
16
- var ObservedMediaSource_1 = require("./ObservedMediaSource");
17
- Object.defineProperty(exports, "ObservedMediaSource", { enumerable: true, get: function () { return ObservedMediaSource_1.ObservedMediaSource; } });
18
- var ObservedMediaPlayout_1 = require("./ObservedMediaPlayout");
19
- Object.defineProperty(exports, "ObservedMediaPlayout", { enumerable: true, get: function () { return ObservedMediaPlayout_1.ObservedMediaPlayout; } });
20
- var ObservedCodec_1 = require("./ObservedCodec");
21
- Object.defineProperty(exports, "ObservedCodec", { enumerable: true, get: function () { return ObservedCodec_1.ObservedCodec; } });
22
- var ObservedCertificate_1 = require("./ObservedCertificate");
23
- Object.defineProperty(exports, "ObservedCertificate", { enumerable: true, get: function () { return ObservedCertificate_1.ObservedCertificate; } });
24
- var ObservedDataChannel_1 = require("./ObservedDataChannel");
25
- Object.defineProperty(exports, "ObservedDataChannel", { enumerable: true, get: function () { return ObservedDataChannel_1.ObservedDataChannel; } });
26
- var ObservedInboundRtp_1 = require("./ObservedInboundRtp");
27
- Object.defineProperty(exports, "ObservedInboundRtp", { enumerable: true, get: function () { return ObservedInboundRtp_1.ObservedInboundRtp; } });
28
- var ObservedOutboundRtp_1 = require("./ObservedOutboundRtp");
29
- Object.defineProperty(exports, "ObservedOutboundRtp", { enumerable: true, get: function () { return ObservedOutboundRtp_1.ObservedOutboundRtp; } });
30
- var ObservedRemoteInboundRtp_1 = require("./ObservedRemoteInboundRtp");
31
- Object.defineProperty(exports, "ObservedRemoteInboundRtp", { enumerable: true, get: function () { return ObservedRemoteInboundRtp_1.ObservedRemoteInboundRtp; } });
32
- var ObservedRemoteOutboundRtp_1 = require("./ObservedRemoteOutboundRtp");
33
- Object.defineProperty(exports, "ObservedRemoteOutboundRtp", { enumerable: true, get: function () { return ObservedRemoteOutboundRtp_1.ObservedRemoteOutboundRtp; } });
34
- var ObservedIceCandidatePair_1 = require("./ObservedIceCandidatePair");
35
- Object.defineProperty(exports, "ObservedIceCandidatePair", { enumerable: true, get: function () { return ObservedIceCandidatePair_1.ObservedIceCandidatePair; } });
36
- var ObservedIceCandidate_1 = require("./ObservedIceCandidate");
37
- Object.defineProperty(exports, "ObservedIceCandidate", { enumerable: true, get: function () { return ObservedIceCandidate_1.ObservedIceCandidate; } });
38
- var ObservedIceTransport_1 = require("./ObservedIceTransport");
39
- Object.defineProperty(exports, "ObservedIceTransport", { enumerable: true, get: function () { return ObservedIceTransport_1.ObservedIceTransport; } });
40
- var ObservedPeerConnectionTransport_1 = require("./ObservedPeerConnectionTransport");
41
- Object.defineProperty(exports, "ObservedPeerConnectionTransport", { enumerable: true, get: function () { return ObservedPeerConnectionTransport_1.ObservedPeerConnectionTransport; } });
42
- var ClientEventTypes_1 = require("./schema/ClientEventTypes");
43
- Object.defineProperty(exports, "ClientEventTypes", { enumerable: true, get: function () { return ClientEventTypes_1.ClientEventTypes; } });
44
- var ClientMetaTypes_1 = require("./schema/ClientMetaTypes");
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; } });
@@ -1 +0,0 @@
1
- //# sourceMappingURL=TurnUsageMonitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TurnUsageMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/TurnUsageMonitor.ts"],"names":[],"mappings":""}
@@ -1,146 +0,0 @@
1
- "use strict";
2
- // import { EventEmitter } from 'events';
3
- // import { ObservedPeerConnection } from '../ObservedPeerConnection';
4
- // import { ObservedICEEvents } from '../ObservedICE';
5
- // import { ObservedClient } from '../ObservedClient';
6
- // export type TurnUsageMonitorEvents = {
7
- // close: [],
8
- // 'newturnip': [string],
9
- // update: [TurnUsage],
10
- // addpeerconnection: [ObservedPeerConnection],
11
- // removepeerconnection: [ObservedPeerConnection],
12
- // }
13
- // export type TurnUsage = {
14
- // turnIp: string;
15
- // totalBytesSent: number;
16
- // totalBytesReceived: number;
17
- // totalPacketsSent: number;
18
- // totalPacketsReceived: number;
19
- // }
20
- // export type TurnStats = {
21
- // turnIp: string;
22
- // totalBytesSent: number;
23
- // totalBytesReceived: number;
24
- // totalPacketsSent: number;
25
- // totalPacketsReceived: number;
26
- // deltaBytesSent: number;
27
- // deltaBytesReceived: number;
28
- // timestamp: number;
29
- // outboundBitrate: number;
30
- // inboundBitrate: number;
31
- // }
32
- // type ObservedConnection = {
33
- // peerConnection: ObservedPeerConnection,
34
- // onUpdate: (...e: ObservedICEEvents['update']) => void;
35
- // }
36
- // export declare interface TurnUsageMonitor {
37
- // on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
38
- // off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
39
- // once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
40
- // emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
41
- // }
42
- // export class TurnUsageMonitor extends EventEmitter {
43
- // private readonly _connections = new Map<string, ObservedConnection>();
44
- // private readonly _turnUsage = new Map<string, TurnUsage>();
45
- // private readonly _stats = new Map<string, TurnStats>();
46
- // private _closed = false;
47
- // public constructor() {
48
- // super();
49
- // this.setMaxListeners(Infinity);
50
- // }
51
- // public get stats(): TurnStats[] {
52
- // const result: TurnStats[] = [];
53
- // for (const [ turnIp, usage ] of this._turnUsage) {
54
- // const stats = this._stats.get(turnIp) ?? {
55
- // turnIp,
56
- // totalBytesSent: 0,
57
- // totalBytesReceived: 0,
58
- // totalPacketsSent: 0,
59
- // totalPacketsReceived: 0,
60
- // deltaBytesSent: 0,
61
- // deltaBytesReceived: 0,
62
- // timestamp: Date.now(),
63
- // outboundBitrate: 0,
64
- // inboundBitrate: 0,
65
- // };
66
- // stats.deltaBytesSent = usage.totalBytesSent - stats.totalBytesSent;
67
- // stats.deltaBytesReceived = usage.totalBytesReceived - stats.totalBytesReceived;
68
- // stats.timestamp = Date.now();
69
- // stats.outboundBitrate = (stats.deltaBytesSent * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
70
- // stats.inboundBitrate = (stats.deltaBytesReceived * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
71
- // stats.totalBytesSent = usage.totalBytesSent;
72
- // stats.totalBytesReceived = usage.totalBytesReceived;
73
- // stats.totalPacketsSent = usage.totalPacketsSent;
74
- // stats.totalPacketsReceived = usage.totalPacketsReceived;
75
- // this._stats.set(turnIp, stats);
76
- // result.push(stats);
77
- // }
78
- // return result;
79
- // }
80
- // public addPeerConnection(peerConnection: ObservedPeerConnection) {
81
- // if (this.closed) return;
82
- // if (this._connections.has(peerConnection.peerConnectionId)) return;
83
- // const ice = peerConnection.ICE;
84
- // const onUpdate = () => {
85
- // const turnIp = ice?.selectedRemoteCandidate?.address;
86
- // if (!peerConnection.usingTURN || !turnIp) return;
87
- // let usage = this._turnUsage.get(turnIp);
88
- // if (!usage) {
89
- // usage = {
90
- // turnIp,
91
- // totalBytesSent: 0,
92
- // totalBytesReceived: 0,
93
- // totalPacketsSent: 0,
94
- // totalPacketsReceived: 0,
95
- // };
96
- // this._turnUsage.set(turnIp, usage);
97
- // this.emit('newturnip', turnIp);
98
- // }
99
- // usage.totalBytesSent += ice.deltaBytesSent;
100
- // usage.totalBytesReceived += ice.deltaBytesReceived;
101
- // usage.totalPacketsSent += ice.deltaPacketsSent;
102
- // usage.totalPacketsReceived += ice.deltaPacketsReceived;
103
- // this.emit('update', usage);
104
- // };
105
- // peerConnection.ICE.on('update', onUpdate);
106
- // this._connections.set(peerConnection.peerConnectionId, {
107
- // peerConnection,
108
- // onUpdate
109
- // });
110
- // this.emit('addpeerconnection', peerConnection);
111
- // }
112
- // public removePeerConnection(peerConnection: ObservedPeerConnection) {
113
- // if (this.closed) return;
114
- // if (!this._connections.has(peerConnection.peerConnectionId)) return;
115
- // const { onUpdate } = this._connections.get(peerConnection.peerConnectionId) ?? {};
116
- // if (!onUpdate) return;
117
- // peerConnection.ICE.off('update', onUpdate);
118
- // this._connections.delete(peerConnection.peerConnectionId);
119
- // this.emit('removepeerconnection', peerConnection);
120
- // }
121
- // public get turnIps() {
122
- // return Array.from(this._turnUsage.keys());
123
- // }
124
- // public get peerConnections() {
125
- // return Array.from(this._connections.values()).map(({ peerConnection }) => peerConnection);
126
- // }
127
- // public getUsage(turnIp: string) {
128
- // return this._turnUsage.get(turnIp);
129
- // }
130
- // public get clients(): ReadonlyMap<string, ObservedClient> {
131
- // const result = new Map<string, ObservedClient>();
132
- // for (const pc of this.peerConnections) {
133
- // if (result.has(pc.clientId)) continue;
134
- // result.set(pc.clientId, pc.client);
135
- // }
136
- // return result;
137
- // }
138
- // public get closed() {
139
- // return this._closed;
140
- // }
141
- // public close() {
142
- // if (this._closed) return;
143
- // this._closed = true;
144
- // this.emit('close');
145
- // }
146
- // }