@observertc/observer-js 1.0.0-beta.1 → 1.0.0-beta.11

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 (227) hide show
  1. package/README.md +1032 -381
  2. package/dist/index.d.mts +2956 -0
  3. package/dist/index.d.ts +2956 -0
  4. package/dist/index.js +4095 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +4025 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/llms-full.txt +1598 -0
  9. package/package.json +33 -16
  10. package/.eslintrc.json +0 -143
  11. package/.prettierignore +0 -5
  12. package/.prettierrc +0 -7
  13. package/jest.config.js +0 -9
  14. package/lib/ObservedCall.d.ts +0 -85
  15. package/lib/ObservedCall.d.ts.map +0 -1
  16. package/lib/ObservedCall.js +0 -219
  17. package/lib/ObservedCallEventMonitor.d.ts +0 -104
  18. package/lib/ObservedCallEventMonitor.d.ts.map +0 -1
  19. package/lib/ObservedCallEventMonitor.js +0 -314
  20. package/lib/ObservedCallSummary.d.ts +0 -18
  21. package/lib/ObservedCallSummary.d.ts.map +0 -1
  22. package/lib/ObservedCallSummary.js +0 -2
  23. package/lib/ObservedCertificate.d.ts +0 -19
  24. package/lib/ObservedCertificate.d.ts.map +0 -1
  25. package/lib/ObservedCertificate.js +0 -38
  26. package/lib/ObservedClient.d.ts +0 -127
  27. package/lib/ObservedClient.d.ts.map +0 -1
  28. package/lib/ObservedClient.js +0 -636
  29. package/lib/ObservedClientEventMonitor.d.ts +0 -91
  30. package/lib/ObservedClientEventMonitor.d.ts.map +0 -1
  31. package/lib/ObservedClientEventMonitor.js +0 -254
  32. package/lib/ObservedClientSummary.d.ts +0 -23
  33. package/lib/ObservedClientSummary.d.ts.map +0 -1
  34. package/lib/ObservedClientSummary.js +0 -2
  35. package/lib/ObservedCodec.d.ts +0 -22
  36. package/lib/ObservedCodec.d.ts.map +0 -1
  37. package/lib/ObservedCodec.js +0 -45
  38. package/lib/ObservedDataChannel.d.ts +0 -30
  39. package/lib/ObservedDataChannel.d.ts.map +0 -1
  40. package/lib/ObservedDataChannel.js +0 -75
  41. package/lib/ObservedIceCandidate.d.ts +0 -29
  42. package/lib/ObservedIceCandidate.d.ts.map +0 -1
  43. package/lib/ObservedIceCandidate.js +0 -59
  44. package/lib/ObservedIceCandidatePair.d.ts +0 -45
  45. package/lib/ObservedIceCandidatePair.d.ts.map +0 -1
  46. package/lib/ObservedIceCandidatePair.js +0 -127
  47. package/lib/ObservedIceTransport.d.ts +0 -36
  48. package/lib/ObservedIceTransport.d.ts.map +0 -1
  49. package/lib/ObservedIceTransport.js +0 -93
  50. package/lib/ObservedInboundRtp.d.ts +0 -92
  51. package/lib/ObservedInboundRtp.d.ts.map +0 -1
  52. package/lib/ObservedInboundRtp.js +0 -193
  53. package/lib/ObservedInboundTrack.d.ts +0 -32
  54. package/lib/ObservedInboundTrack.d.ts.map +0 -1
  55. package/lib/ObservedInboundTrack.js +0 -60
  56. package/lib/ObservedMediaPlayout.d.ts +0 -22
  57. package/lib/ObservedMediaPlayout.d.ts.map +0 -1
  58. package/lib/ObservedMediaPlayout.js +0 -42
  59. package/lib/ObservedMediaSource.d.ts +0 -28
  60. package/lib/ObservedMediaSource.d.ts.map +0 -1
  61. package/lib/ObservedMediaSource.js +0 -55
  62. package/lib/ObservedOutboundRtp.d.ts +0 -62
  63. package/lib/ObservedOutboundRtp.d.ts.map +0 -1
  64. package/lib/ObservedOutboundRtp.js +0 -144
  65. package/lib/ObservedOutboundTrack.d.ts +0 -32
  66. package/lib/ObservedOutboundTrack.d.ts.map +0 -1
  67. package/lib/ObservedOutboundTrack.js +0 -60
  68. package/lib/ObservedPeerConnection.d.ts +0 -207
  69. package/lib/ObservedPeerConnection.d.ts.map +0 -1
  70. package/lib/ObservedPeerConnection.js +0 -773
  71. package/lib/ObservedPeerConnectionTransport.d.ts +0 -17
  72. package/lib/ObservedPeerConnectionTransport.d.ts.map +0 -1
  73. package/lib/ObservedPeerConnectionTransport.js +0 -34
  74. package/lib/ObservedRemoteInboundRtp.d.ts +0 -30
  75. package/lib/ObservedRemoteInboundRtp.d.ts.map +0 -1
  76. package/lib/ObservedRemoteInboundRtp.js +0 -60
  77. package/lib/ObservedRemoteOutboundRtp.d.ts +0 -30
  78. package/lib/ObservedRemoteOutboundRtp.d.ts.map +0 -1
  79. package/lib/ObservedRemoteOutboundRtp.js +0 -60
  80. package/lib/ObservedTURN.d.ts +0 -31
  81. package/lib/ObservedTURN.d.ts.map +0 -1
  82. package/lib/ObservedTURN.js +0 -58
  83. package/lib/ObservedTurnServer.d.ts +0 -25
  84. package/lib/ObservedTurnServer.d.ts.map +0 -1
  85. package/lib/ObservedTurnServer.js +0 -59
  86. package/lib/Observer.d.ts +0 -65
  87. package/lib/Observer.d.ts.map +0 -1
  88. package/lib/Observer.js +0 -160
  89. package/lib/ObserverEventMonitor.d.ts +0 -138
  90. package/lib/ObserverEventMonitor.d.ts.map +0 -1
  91. package/lib/ObserverEventMonitor.js +0 -433
  92. package/lib/ObserverSummary.d.ts +0 -13
  93. package/lib/ObserverSummary.d.ts.map +0 -1
  94. package/lib/ObserverSummary.js +0 -2
  95. package/lib/common/Middleware.d.ts +0 -17
  96. package/lib/common/Middleware.d.ts.map +0 -1
  97. package/lib/common/Middleware.js +0 -60
  98. package/lib/common/SingleExecutor.d.ts +0 -3
  99. package/lib/common/SingleExecutor.d.ts.map +0 -1
  100. package/lib/common/SingleExecutor.js +0 -31
  101. package/lib/common/logger.d.ts +0 -17
  102. package/lib/common/logger.d.ts.map +0 -1
  103. package/lib/common/logger.js +0 -50
  104. package/lib/common/types.d.ts +0 -3
  105. package/lib/common/types.d.ts.map +0 -1
  106. package/lib/common/types.js +0 -3
  107. package/lib/common/utils.d.ts +0 -11
  108. package/lib/common/utils.d.ts.map +0 -1
  109. package/lib/common/utils.js +0 -63
  110. package/lib/detectors/Detector.d.ts +0 -5
  111. package/lib/detectors/Detector.d.ts.map +0 -1
  112. package/lib/detectors/Detector.js +0 -3
  113. package/lib/detectors/Detectors.d.ts +0 -11
  114. package/lib/detectors/Detectors.d.ts.map +0 -1
  115. package/lib/detectors/Detectors.js +0 -34
  116. package/lib/index.d.ts +0 -28
  117. package/lib/index.d.ts.map +0 -1
  118. package/lib/index.js +0 -49
  119. package/lib/mediasoup/ObservedMediaRouter.d.ts +0 -10
  120. package/lib/mediasoup/ObservedMediaRouter.d.ts.map +0 -1
  121. package/lib/mediasoup/ObservedMediaRouter.js +0 -6
  122. package/lib/monitors/TurnUsageMonitor.d.ts +0 -1
  123. package/lib/monitors/TurnUsageMonitor.d.ts.map +0 -1
  124. package/lib/monitors/TurnUsageMonitor.js +0 -146
  125. package/lib/schema/ClientEventTypes.d.ts +0 -228
  126. package/lib/schema/ClientEventTypes.d.ts.map +0 -1
  127. package/lib/schema/ClientEventTypes.js +0 -41
  128. package/lib/schema/ClientMetaTypes.d.ts +0 -34
  129. package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
  130. package/lib/schema/ClientMetaTypes.js +0 -16
  131. package/lib/schema/ClientSample.d.ts +0 -1333
  132. package/lib/schema/ClientSample.d.ts.map +0 -1
  133. package/lib/schema/ClientSample.js +0 -4
  134. package/lib/scores/CalculatedScore.d.ts +0 -6
  135. package/lib/scores/CalculatedScore.d.ts.map +0 -1
  136. package/lib/scores/CalculatedScore.js +0 -2
  137. package/lib/scores/DefaultCallScoreCalculator.d.ts +0 -7
  138. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +0 -1
  139. package/lib/scores/DefaultCallScoreCalculator.js +0 -21
  140. package/lib/scores/ScoreCalculator.d.ts +0 -4
  141. package/lib/scores/ScoreCalculator.d.ts.map +0 -1
  142. package/lib/scores/ScoreCalculator.js +0 -2
  143. package/lib/updaters/CallUpdater.d.ts +0 -5
  144. package/lib/updaters/CallUpdater.d.ts.map +0 -1
  145. package/lib/updaters/CallUpdater.js +0 -2
  146. package/lib/updaters/ObserverUpdater.d.ts +0 -5
  147. package/lib/updaters/ObserverUpdater.d.ts.map +0 -1
  148. package/lib/updaters/ObserverUpdater.js +0 -2
  149. package/lib/updaters/OnAllCallObserverUpdater.d.ts +0 -15
  150. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +0 -1
  151. package/lib/updaters/OnAllCallObserverUpdater.js +0 -50
  152. package/lib/updaters/OnAllClientCallUpdater.d.ts +0 -15
  153. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +0 -1
  154. package/lib/updaters/OnAllClientCallUpdater.js +0 -53
  155. package/lib/updaters/OnAnyCallObserverUpdater.d.ts +0 -12
  156. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +0 -1
  157. package/lib/updaters/OnAnyCallObserverUpdater.js +0 -37
  158. package/lib/updaters/OnAnyClientCallUpdater.d.ts +0 -12
  159. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +0 -1
  160. package/lib/updaters/OnAnyClientCallUpdater.js +0 -36
  161. package/lib/updaters/OnIntervalUpdater.d.ts +0 -10
  162. package/lib/updaters/OnIntervalUpdater.d.ts.map +0 -1
  163. package/lib/updaters/OnIntervalUpdater.js +0 -17
  164. package/lib/updaters/Updater.d.ts +0 -6
  165. package/lib/updaters/Updater.d.ts.map +0 -1
  166. package/lib/updaters/Updater.js +0 -2
  167. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +0 -25
  168. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +0 -1
  169. package/lib/utils/MediasoupRemoteTrackResolver.js +0 -110
  170. package/lib/utils/RemoteTrackResolver.d.ts +0 -7
  171. package/lib/utils/RemoteTrackResolver.d.ts.map +0 -1
  172. package/lib/utils/RemoteTrackResolver.js +0 -2
  173. package/src/ObservedCall.ts +0 -338
  174. package/src/ObservedCallEventMonitor.ts +0 -392
  175. package/src/ObservedCallSummary.ts +0 -22
  176. package/src/ObservedCertificate.ts +0 -43
  177. package/src/ObservedClient.ts +0 -788
  178. package/src/ObservedClientEventMonitor.ts +0 -309
  179. package/src/ObservedClientSummary.ts +0 -24
  180. package/src/ObservedCodec.ts +0 -49
  181. package/src/ObservedDataChannel.ts +0 -85
  182. package/src/ObservedIceCandidate.ts +0 -64
  183. package/src/ObservedIceCandidatePair.ts +0 -134
  184. package/src/ObservedIceTransport.ts +0 -99
  185. package/src/ObservedInboundRtp.ts +0 -205
  186. package/src/ObservedInboundTrack.ts +0 -75
  187. package/src/ObservedMediaPlayout.ts +0 -49
  188. package/src/ObservedMediaSource.ts +0 -60
  189. package/src/ObservedOutboundRtp.ts +0 -156
  190. package/src/ObservedOutboundTrack.ts +0 -74
  191. package/src/ObservedPeerConnection.ts +0 -1088
  192. package/src/ObservedPeerConnectionTransport.ts +0 -38
  193. package/src/ObservedRemoteInboundRtp.ts +0 -64
  194. package/src/ObservedRemoteOutboundRtp.ts +0 -65
  195. package/src/ObservedTURN.ts +0 -86
  196. package/src/ObservedTurnServer.ts +0 -72
  197. package/src/Observer.ts +0 -247
  198. package/src/ObserverEventMonitor.ts +0 -551
  199. package/src/ObserverSummary.ts +0 -15
  200. package/src/common/Middleware.ts +0 -84
  201. package/src/common/SingleExecutor.ts +0 -36
  202. package/src/common/logger.ts +0 -82
  203. package/src/common/types.ts +0 -4
  204. package/src/common/utils.ts +0 -69
  205. package/src/detectors/Detector.ts +0 -6
  206. package/src/detectors/Detectors.ts +0 -38
  207. package/src/index.ts +0 -28
  208. package/src/mediasoup/ObservedMediaRouter.ts +0 -10
  209. package/src/monitors/TurnUsageMonitor.ts +0 -187
  210. package/src/schema/ClientEventTypes.ts +0 -280
  211. package/src/schema/ClientMetaTypes.ts +0 -41
  212. package/src/schema/ClientSample.ts +0 -1682
  213. package/src/scores/CalculatedScore.ts +0 -6
  214. package/src/scores/DefaultCallScoreCalculator.ts +0 -23
  215. package/src/scores/ScoreCalculator.ts +0 -3
  216. package/src/updaters/CallUpdater.ts +0 -5
  217. package/src/updaters/ObserverUpdater.ts +0 -5
  218. package/src/updaters/OnAllCallObserverUpdater.ts +0 -59
  219. package/src/updaters/OnAllClientCallUpdater.ts +0 -61
  220. package/src/updaters/OnAnyCallObserverUpdater.ts +0 -41
  221. package/src/updaters/OnAnyClientCallUpdater.ts +0 -39
  222. package/src/updaters/OnIntervalUpdater.ts +0 -19
  223. package/src/updaters/Updater.ts +0 -5
  224. package/src/utils/MediasoupRemoteTrackResolver.ts +0 -155
  225. package/src/utils/RemoteTrackResolver.ts +0 -12
  226. package/tsconfig.json +0 -19
  227. package/tslint.json +0 -6
@@ -1,82 +0,0 @@
1
- export interface Logger {
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- trace(...args: any[]): void;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- debug(...args: any[]): void;
6
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- info(...args: any[]): void;
8
- /* eslint-disable @typescript-eslint/no-explicit-any */
9
- warn(...args: any[]): void;
10
- /* eslint-disable @typescript-eslint/no-explicit-any */
11
- error(...args: any[]): void;
12
- }
13
-
14
- export interface ObserverLogger {
15
- /* eslint-disable @typescript-eslint/no-explicit-any */
16
- trace(module: string, ...args: any[]): void;
17
- /* eslint-disable @typescript-eslint/no-explicit-any */
18
- debug(module: string, ...args: any[]): void;
19
- /* eslint-disable @typescript-eslint/no-explicit-any */
20
- info(module: string, ...args: any[]): void;
21
- /* eslint-disable @typescript-eslint/no-explicit-any */
22
- warn(module: string, ...args: any[]): void;
23
- /* eslint-disable @typescript-eslint/no-explicit-any */
24
- error(module: string, ...args: any[]): void;
25
- }
26
-
27
- let mainLogger: ObserverLogger = new class implements ObserverLogger {
28
- trace = () => void 0;
29
- // trace(module: string, ...args: any[]) {
30
- // // eslint-disable-next-line no-console
31
- // console.log(`[TRACE] ${module}`, ...args);
32
- // }
33
-
34
- debug(module: string, ...args: any[]) {
35
- // eslint-disable-next-line no-console
36
- console.log(`[DEBUG] ${module}`, ...args);
37
- }
38
-
39
- info(module: string, ...args: any[]) {
40
- // eslint-disable-next-line no-console
41
- console.info(`[INFO] ${module}`, ...args);
42
- }
43
-
44
- warn(module: string, ...args: any[]) {
45
- // eslint-disable-next-line no-console
46
- console.warn(`[WARN] ${module}`, ...args);
47
- }
48
-
49
- error(module: string, ...args: any[]) {
50
- // eslint-disable-next-line no-console
51
- console.error(`[ERROR] ${module}`, ...args);
52
- }
53
- }();
54
-
55
- export function createLogger(moduleName: string): Logger {
56
- return new class implements Logger {
57
- trace(...args: any[]) {
58
- mainLogger.trace(moduleName, ...args);
59
- }
60
-
61
- debug(...args: any[]) {
62
- mainLogger.debug(moduleName, ...args);
63
- }
64
-
65
- info(...args: any[]) {
66
- mainLogger.info(moduleName, ...args);
67
- }
68
-
69
- warn(...args: any[]) {
70
- mainLogger.warn(moduleName, ...args);
71
- }
72
-
73
- error(...args: any[]) {
74
- mainLogger.error(moduleName, ...args);
75
- }
76
-
77
- }();
78
- }
79
-
80
- export function setObserverLogger(logger: ObserverLogger) {
81
- mainLogger = logger;
82
- }
@@ -1,4 +0,0 @@
1
- export type MediaKind = 'audio' | 'video';
2
- export type SupportedVideoCodecType = 'vp8' | 'vp9' | 'h264' | 'h265';
3
-
4
- // export type EvaluatorMiddleware = Middleware<EvaluatorContext>;
@@ -1,69 +0,0 @@
1
- export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
2
-
3
- export type Writable<T> = T extends object ? { -readonly [K in keyof T]: Writable<T[K]> } : T;
4
-
5
- export function iteratorConverter<T>(generator: Generator<T, void, undefined>): IterableIterator<T> {
6
- return {
7
- [Symbol.iterator](): IterableIterator<T> {
8
- return this;
9
- },
10
- next(): IteratorResult<T> {
11
- return generator.next();
12
- },
13
- };
14
- }
15
-
16
- export function asyncIteratorConverter<T>(generator: AsyncGenerator<T, void, undefined>): AsyncIterableIterator<T> {
17
- return {
18
- [Symbol.asyncIterator](): AsyncIterableIterator<T> {
19
- return this;
20
- },
21
- next(): Promise<IteratorResult<T>> {
22
- return generator.next();
23
- },
24
- };
25
- }
26
-
27
- export function isValidUuid(str: string): boolean {
28
- 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;
29
-
30
- return regexp.test(str);
31
- }
32
-
33
- export function getAverage(arr: number[], defaultAvgIfArrLengthIs0 = 0): number {
34
- if (arr.length === 0) return defaultAvgIfArrLengthIs0;
35
-
36
- return arr.reduce((a, b) => a + b, 0) / arr.length;
37
- }
38
-
39
- export function getMedian(arr: number[], copyArrayForSorting = true): number {
40
- // Sort the array in ascending order
41
- const sortedArr = copyArrayForSorting
42
- ? arr.slice().sort((a, b) => a - b)
43
- : arr.sort((a, b) => a-b)
44
-
45
- ;
46
-
47
- // Calculate the middle index
48
- const mid = Math.floor(sortedArr.length / 2);
49
-
50
- // If the array length is odd, return the middle element
51
- if (sortedArr.length % 2 !== 0) {
52
- return sortedArr[mid];
53
- }
54
-
55
- // If the array length is even, return the average of the two middle elements
56
- return (sortedArr[mid - 1] + sortedArr[mid]) / 2;
57
- }
58
-
59
- export function parseJsonAs<T>(json?: string): T | undefined {
60
- if (!json) {
61
- return undefined;
62
- }
63
-
64
- try {
65
- return JSON.parse(json) as T;
66
- } catch (error) {
67
- return undefined;
68
- }
69
- }
@@ -1,6 +0,0 @@
1
- // import { AlertState } from "../ClientMonitor";
2
-
3
- export interface Detector {
4
- readonly name: string;
5
- update(): void;
6
- }
@@ -1,38 +0,0 @@
1
- import { createLogger } from '../common/logger';
2
- import { Detector } from './Detector';
3
-
4
- const logger = createLogger('Detectors');
5
-
6
- export class Detectors {
7
- private _detectors: Detector[];
8
-
9
- public constructor(...detectors: Detector[]) {
10
- this._detectors = detectors;
11
- }
12
-
13
- public add(detector: Detector) {
14
- this._detectors.push(detector);
15
- }
16
-
17
- public remove(detector: Detector) {
18
- this._detectors = this._detectors.filter((d) => d !== detector);
19
- }
20
-
21
- get listOfNames() {
22
- return this._detectors.map((d) => d.name);
23
- }
24
-
25
- public update() {
26
- for (const detector of this._detectors) {
27
- try {
28
- detector.update();
29
- } catch (err) {
30
- logger.warn(`Error updating detector ${detector?.constructor?.name}`, err);
31
- }
32
- }
33
- }
34
-
35
- public clear() {
36
- this._detectors = [];
37
- }
38
- }
package/src/index.ts DELETED
@@ -1,28 +0,0 @@
1
- export type { ObserverEvents } from './Observer';
2
-
3
- export { Observer } from './Observer';
4
- export { ObservedCall } from './ObservedCall';
5
- export { ObservedInboundTrack } from './ObservedInboundTrack';
6
- export { ObservedOutboundTrack } from './ObservedOutboundTrack';
7
- export { ObservedClient } from './ObservedClient';
8
- export { ObservedPeerConnection } from './ObservedPeerConnection';
9
- export { ObservedMediaSource } from './ObservedMediaSource';
10
- export { ObservedMediaPlayout } from './ObservedMediaPlayout';
11
- export { ObservedCodec } from './ObservedCodec';
12
- export { ObservedCertificate } from './ObservedCertificate';
13
- export { ObservedDataChannel } from './ObservedDataChannel';
14
- export { ObservedInboundRtp } from './ObservedInboundRtp';
15
- export { ObservedOutboundRtp } from './ObservedOutboundRtp';
16
- export { ObservedRemoteInboundRtp } from './ObservedRemoteInboundRtp';
17
- export { ObservedRemoteOutboundRtp } from './ObservedRemoteOutboundRtp';
18
- export { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
19
- export { ObservedIceCandidate } from './ObservedIceCandidate';
20
- export { ObservedIceTransport } from './ObservedIceTransport';
21
- export { ObservedPeerConnectionTransport } from './ObservedPeerConnectionTransport';
22
- export { ClientEventTypes } from './schema/ClientEventTypes';
23
- export { ClientMetaTypes } from './schema/ClientMetaTypes';
24
- export { ClientSample, ClientIssue, ClientEvent, ClientMetaData } from './schema/ClientSample';
25
- export { ScoreCalculator } from './scores/ScoreCalculator';
26
- export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
27
- export { ObserverEventMonitor } from './ObserverEventMonitor';
28
- export { Middleware } from './common/Middleware';
@@ -1,10 +0,0 @@
1
- export type Item = {
2
- callId: string;
3
- appData?: Record<string, unknown>;
4
- region: string;
5
- publishers: string[];
6
- subscribers: string[];
7
- }
8
- export class ObservedMediaRouter {
9
-
10
- }
@@ -1,187 +0,0 @@
1
- // import { EventEmitter } from 'events';
2
- // import { ObservedPeerConnection } from '../ObservedPeerConnection';
3
- // import { ObservedICEEvents } from '../ObservedICE';
4
- // import { ObservedClient } from '../ObservedClient';
5
-
6
- // export type TurnUsageMonitorEvents = {
7
- // close: [],
8
- // 'newturnip': [string],
9
- // update: [TurnUsage],
10
- // addpeerconnection: [ObservedPeerConnection],
11
- // removepeerconnection: [ObservedPeerConnection],
12
- // }
13
-
14
- // export type TurnUsage = {
15
- // turnIp: string;
16
- // totalBytesSent: number;
17
- // totalBytesReceived: number;
18
- // totalPacketsSent: number;
19
- // totalPacketsReceived: number;
20
- // }
21
-
22
- // export type TurnStats = {
23
- // turnIp: string;
24
- // totalBytesSent: number;
25
- // totalBytesReceived: number;
26
- // totalPacketsSent: number;
27
- // totalPacketsReceived: number;
28
- // deltaBytesSent: number;
29
- // deltaBytesReceived: number;
30
- // timestamp: number;
31
- // outboundBitrate: number;
32
- // inboundBitrate: number;
33
- // }
34
-
35
- // type ObservedConnection = {
36
- // peerConnection: ObservedPeerConnection,
37
- // onUpdate: (...e: ObservedICEEvents['update']) => void;
38
-
39
- // }
40
-
41
- // export declare interface TurnUsageMonitor {
42
- // on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
43
- // off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
44
- // once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
45
- // emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
46
- // }
47
-
48
- // export class TurnUsageMonitor extends EventEmitter {
49
- // private readonly _connections = new Map<string, ObservedConnection>();
50
- // private readonly _turnUsage = new Map<string, TurnUsage>();
51
- // private readonly _stats = new Map<string, TurnStats>();
52
-
53
- // private _closed = false;
54
- // public constructor() {
55
- // super();
56
- // this.setMaxListeners(Infinity);
57
- // }
58
-
59
- // public get stats(): TurnStats[] {
60
- // const result: TurnStats[] = [];
61
-
62
- // for (const [ turnIp, usage ] of this._turnUsage) {
63
- // const stats = this._stats.get(turnIp) ?? {
64
- // turnIp,
65
- // totalBytesSent: 0,
66
- // totalBytesReceived: 0,
67
- // totalPacketsSent: 0,
68
- // totalPacketsReceived: 0,
69
- // deltaBytesSent: 0,
70
- // deltaBytesReceived: 0,
71
- // timestamp: Date.now(),
72
- // outboundBitrate: 0,
73
- // inboundBitrate: 0,
74
- // };
75
-
76
- // stats.deltaBytesSent = usage.totalBytesSent - stats.totalBytesSent;
77
- // stats.deltaBytesReceived = usage.totalBytesReceived - stats.totalBytesReceived;
78
- // stats.timestamp = Date.now();
79
- // stats.outboundBitrate = (stats.deltaBytesSent * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
80
- // stats.inboundBitrate = (stats.deltaBytesReceived * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
81
- // stats.totalBytesSent = usage.totalBytesSent;
82
- // stats.totalBytesReceived = usage.totalBytesReceived;
83
- // stats.totalPacketsSent = usage.totalPacketsSent;
84
- // stats.totalPacketsReceived = usage.totalPacketsReceived;
85
-
86
- // this._stats.set(turnIp, stats);
87
-
88
- // result.push(stats);
89
- // }
90
-
91
- // return result;
92
- // }
93
-
94
- // public addPeerConnection(peerConnection: ObservedPeerConnection) {
95
- // if (this.closed) return;
96
- // if (this._connections.has(peerConnection.peerConnectionId)) return;
97
-
98
- // const ice = peerConnection.ICE;
99
-
100
- // const onUpdate = () => {
101
- // const turnIp = ice?.selectedRemoteCandidate?.address;
102
-
103
- // if (!peerConnection.usingTURN || !turnIp) return;
104
-
105
- // let usage = this._turnUsage.get(turnIp);
106
-
107
- // if (!usage) {
108
- // usage = {
109
- // turnIp,
110
- // totalBytesSent: 0,
111
- // totalBytesReceived: 0,
112
- // totalPacketsSent: 0,
113
- // totalPacketsReceived: 0,
114
- // };
115
- // this._turnUsage.set(turnIp, usage);
116
-
117
- // this.emit('newturnip', turnIp);
118
- // }
119
-
120
- // usage.totalBytesSent += ice.deltaBytesSent;
121
- // usage.totalBytesReceived += ice.deltaBytesReceived;
122
- // usage.totalPacketsSent += ice.deltaPacketsSent;
123
- // usage.totalPacketsReceived += ice.deltaPacketsReceived;
124
-
125
- // this.emit('update', usage);
126
- // };
127
-
128
- // peerConnection.ICE.on('update', onUpdate);
129
-
130
- // this._connections.set(peerConnection.peerConnectionId, {
131
- // peerConnection,
132
- // onUpdate
133
- // });
134
-
135
- // this.emit('addpeerconnection', peerConnection);
136
- // }
137
-
138
- // public removePeerConnection(peerConnection: ObservedPeerConnection) {
139
- // if (this.closed) return;
140
- // if (!this._connections.has(peerConnection.peerConnectionId)) return;
141
-
142
- // const { onUpdate } = this._connections.get(peerConnection.peerConnectionId) ?? {};
143
-
144
- // if (!onUpdate) return;
145
-
146
- // peerConnection.ICE.off('update', onUpdate);
147
-
148
- // this._connections.delete(peerConnection.peerConnectionId);
149
-
150
- // this.emit('removepeerconnection', peerConnection);
151
- // }
152
-
153
- // public get turnIps() {
154
- // return Array.from(this._turnUsage.keys());
155
- // }
156
-
157
- // public get peerConnections() {
158
- // return Array.from(this._connections.values()).map(({ peerConnection }) => peerConnection);
159
- // }
160
-
161
- // public getUsage(turnIp: string) {
162
- // return this._turnUsage.get(turnIp);
163
- // }
164
-
165
- // public get clients(): ReadonlyMap<string, ObservedClient> {
166
- // const result = new Map<string, ObservedClient>();
167
-
168
- // for (const pc of this.peerConnections) {
169
- // if (result.has(pc.clientId)) continue;
170
-
171
- // result.set(pc.clientId, pc.client);
172
- // }
173
-
174
- // return result;
175
- // }
176
-
177
- // public get closed() {
178
- // return this._closed;
179
- // }
180
-
181
- // public close() {
182
- // if (this._closed) return;
183
- // this._closed = true;
184
-
185
- // this.emit('close');
186
- // }
187
- // }