@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,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 } from './schema/ClientSample';
25
- export { ScoreCalculator } from './scores/ScoreCalculator';
26
- export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
27
-
28
- export { Middleware } from './common/Middleware';
@@ -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
- // }
@@ -1,112 +0,0 @@
1
- /* eslint-disable no-shadow */
2
-
3
- export enum ClientEventTypes {
4
- CLIENT_JOINED = 'CLIENT_JOINED',
5
- CLIENT_LEFT = 'CLIENT_LEFT',
6
- PEER_CONNECTION_OPENED = 'PEER_CONNECTION_OPENED',
7
- PEER_CONNECTION_CLOSED = 'PEER_CONNECTION_CLOSED',
8
- MEDIA_TRACK_ADDED = 'MEDIA_TRACK_ADDED',
9
- MEDIA_TRACK_REMOVED = 'MEDIA_TRACK_REMOVED',
10
- MEDIA_TRACK_RESUMED = 'MEDIA_TRACK_RESUMED',
11
- MEDIA_TRACK_MUTED = 'MEDIA_TRACK_MUTED',
12
- MEDIA_TRACK_UNMUTED = 'MEDIA_TRACK_UNMUTED',
13
- ICE_GATHERING_STATE_CHANGED = 'ICE_GATHERING_STATE_CHANGED',
14
- PEER_CONNECTION_STATE_CHANGED = 'PEER_CONNECTION_STATE_CHANGED',
15
- ICE_CONNECTION_STATE_CHANGED = 'ICE_CONNECTION_STATE_CHANGED',
16
- DATA_CHANNEL_OPEN = 'DATA_CHANNEL_OPEN',
17
- DATA_CHANNEL_CLOSED = 'DATA_CHANNEL_CLOSED',
18
- DATA_CHANNEL_ERROR = 'DATA_CHANNEL_ERROR',
19
- NEGOTIATION_NEEDED = 'NEGOTIATION_NEEDED',
20
- SIGNALING_STATE_CHANGE = 'SIGNALING_STATE_CHANGE',
21
- ICE_GATHERING_STATE_CHANGE = 'ICE_GATHERING_STATE_CHANGE',
22
- ICE_CONNECTION_STATE_CHANGE = 'ICE_CONNECTION_STATE_CHANGE',
23
- ICE_CANDIDATE = 'ICE_CANDIDATE',
24
-
25
- // mediasoup events
26
- PRODUCER_ADDED = 'PRODUCER_ADDED',
27
- PRODUCER_REMOVED = 'PRODUCER_REMOVED',
28
- PRODUCER_PAUSED = 'PRODUCER_PAUSED',
29
- PRODUCER_RESUMED = 'PRODUCER_RESUMED',
30
- CONSUMER_ADDED = 'CONSUMER_ADDED',
31
- CONSUMER_REMOVED = 'CONSUMER_REMOVED',
32
- DATA_PRODUCER_CREATED = 'DATA_PRODUCER_CREATED',
33
- DATA_PRODUCER_CLOSED = 'DATA_PRODUCER_CLOSED',
34
- DATA_CONSUMER_CREATED = 'DATA_CONSUMER_CREATED',
35
- DATA_CONSUMER_CLOSED = 'DATA_CONSUMER_CLOSED',
36
- }
37
-
38
- export interface PeerConnectionOpenedEventPayload extends Record<string, unknown> {
39
- peerConnectionId: string;
40
- iceConnectionState: string;
41
- iceGatheringState: string;
42
- signalingState: string;
43
- }
44
-
45
- export interface PeerConnectionClosedEventPayload extends Record<string, unknown> {
46
- peerConnectionId: string;
47
- iceConnectionState: string;
48
- iceGatheringState: string;
49
- signalingState: string;
50
- }
51
-
52
- export interface MediaTrackMutedEventPayload extends Record<string, unknown> {
53
- trackId: string;
54
- kind: 'audio' | 'video';
55
- label?: string;
56
- muted: boolean;
57
- enabled: boolean;
58
- readyState: string;
59
- contentHint?: string;
60
- }
61
-
62
- export interface MediaTrackUnmutedEventPayload extends Record<string, unknown> {
63
- trackId: string;
64
- kind: 'audio' | 'video';
65
- label?: string;
66
- muted: boolean;
67
- enabled: boolean;
68
- readyState: string;
69
- contentHint?: string;
70
- }
71
-
72
- export interface MediaTrackAddedEventPayload extends Record<string, unknown> {
73
- trackId: string;
74
- kind: 'audio' | 'video';
75
- label?: string;
76
- muted: boolean;
77
- enabled: boolean;
78
- readyState: string;
79
- contentHint?: string;
80
- constraints: MediaTrackConstraints,
81
- capabilities: MediaTrackCapabilities,
82
- settings: MediaTrackSettings,
83
- }
84
-
85
- export interface MediaTrackRemovedEventPayload extends Record<string, unknown> {
86
- trackId: string;
87
- kind: 'audio' | 'video';
88
- label?: string;
89
- muted: boolean;
90
- enabled: boolean;
91
- readyState: string;
92
- contentHint?: string;
93
- }
94
-
95
- export interface DataChannelErrorEventPayload extends Record<string, unknown> {
96
- label: string;
97
- readyState: string;
98
- dataChannelId: string,
99
- error: string,
100
- }
101
-
102
- export interface DataChannelOpenEventPayload extends Record<string, unknown> {
103
- label: string;
104
- readyState: string;
105
- dataChannelId: string,
106
- }
107
-
108
- export interface DataChannelClosedEventPayload extends Record<string, unknown> {
109
- label: string;
110
- readyState: string;
111
- dataChannelId: string,
112
- }
@@ -1,41 +0,0 @@
1
- /* eslint-disable no-shadow */
2
-
3
- export enum ClientMetaTypes {
4
- MEDIA_CONSTRAINT = 'MEDIA_CONSTRAINT',
5
- MEDIA_DEVICE = 'MEDIA_DEVICE',
6
- MEDIA_DEVICES_SUPPORTED_CONSTRAINTS = 'MEDIA_DEVICES_SUPPORTED_CONSTRAINTS',
7
- USER_MEDIA_ERROR = 'USER_MEDIA_ERROR',
8
- LOCAL_SDP = 'LOCAL_SDP',
9
-
10
- OPERATION_SYSTEM = 'OPERATION_SYSTEM',
11
- ENGINE = 'ENGINE',
12
- PLATFORM = 'PLATFORM',
13
- BROWSER = 'BROWSER',
14
- }
15
-
16
- export type MediaDeviceInfo = {
17
- deviceId: string;
18
- label: string;
19
- kind: string;
20
- groupId: string;
21
- }
22
-
23
- export type Browser = {
24
- name: string;
25
- version: string;
26
- }
27
-
28
- export type Platform = {
29
- name: string;
30
- version: string;
31
- }
32
-
33
- export type Engine = {
34
- name: string;
35
- version: string;
36
- }
37
-
38
- export type OperationSystem = {
39
- name: string;
40
- version: string;
41
- }