@observertc/observer-js 1.0.0-beta.3 → 1.0.0-beta.5

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 (230) hide show
  1. package/README.md +790 -386
  2. package/dist/index.d.mts +2795 -0
  3. package/dist/index.d.ts +2795 -0
  4. package/dist/index.js +3765 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +3699 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +28 -15
  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 -70
  14. package/lib/ObservedCall.d.ts.map +0 -1
  15. package/lib/ObservedCall.js +0 -196
  16. package/lib/ObservedCallEventMonitor.d.ts +0 -107
  17. package/lib/ObservedCallEventMonitor.d.ts.map +0 -1
  18. package/lib/ObservedCallEventMonitor.js +0 -321
  19. package/lib/ObservedCallSummary.d.ts +0 -18
  20. package/lib/ObservedCallSummary.d.ts.map +0 -1
  21. package/lib/ObservedCallSummary.js +0 -2
  22. package/lib/ObservedCertificate.d.ts +0 -19
  23. package/lib/ObservedCertificate.d.ts.map +0 -1
  24. package/lib/ObservedCertificate.js +0 -38
  25. package/lib/ObservedClient.d.ts +0 -115
  26. package/lib/ObservedClient.d.ts.map +0 -1
  27. package/lib/ObservedClient.js +0 -714
  28. package/lib/ObservedClientEventMonitor.d.ts +0 -91
  29. package/lib/ObservedClientEventMonitor.d.ts.map +0 -1
  30. package/lib/ObservedClientEventMonitor.js +0 -254
  31. package/lib/ObservedClientSummary.d.ts +0 -23
  32. package/lib/ObservedClientSummary.d.ts.map +0 -1
  33. package/lib/ObservedClientSummary.js +0 -2
  34. package/lib/ObservedCodec.d.ts +0 -22
  35. package/lib/ObservedCodec.d.ts.map +0 -1
  36. package/lib/ObservedCodec.js +0 -45
  37. package/lib/ObservedDataChannel.d.ts +0 -30
  38. package/lib/ObservedDataChannel.d.ts.map +0 -1
  39. package/lib/ObservedDataChannel.js +0 -75
  40. package/lib/ObservedIceCandidate.d.ts +0 -29
  41. package/lib/ObservedIceCandidate.d.ts.map +0 -1
  42. package/lib/ObservedIceCandidate.js +0 -59
  43. package/lib/ObservedIceCandidatePair.d.ts +0 -45
  44. package/lib/ObservedIceCandidatePair.d.ts.map +0 -1
  45. package/lib/ObservedIceCandidatePair.js +0 -127
  46. package/lib/ObservedIceTransport.d.ts +0 -36
  47. package/lib/ObservedIceTransport.d.ts.map +0 -1
  48. package/lib/ObservedIceTransport.js +0 -93
  49. package/lib/ObservedInboundRtp.d.ts +0 -92
  50. package/lib/ObservedInboundRtp.d.ts.map +0 -1
  51. package/lib/ObservedInboundRtp.js +0 -193
  52. package/lib/ObservedInboundTrack.d.ts +0 -34
  53. package/lib/ObservedInboundTrack.d.ts.map +0 -1
  54. package/lib/ObservedInboundTrack.js +0 -92
  55. package/lib/ObservedMediaPlayout.d.ts +0 -22
  56. package/lib/ObservedMediaPlayout.d.ts.map +0 -1
  57. package/lib/ObservedMediaPlayout.js +0 -42
  58. package/lib/ObservedMediaSource.d.ts +0 -28
  59. package/lib/ObservedMediaSource.d.ts.map +0 -1
  60. package/lib/ObservedMediaSource.js +0 -55
  61. package/lib/ObservedOutboundRtp.d.ts +0 -62
  62. package/lib/ObservedOutboundRtp.d.ts.map +0 -1
  63. package/lib/ObservedOutboundRtp.js +0 -144
  64. package/lib/ObservedOutboundTrack.d.ts +0 -34
  65. package/lib/ObservedOutboundTrack.d.ts.map +0 -1
  66. package/lib/ObservedOutboundTrack.js +0 -65
  67. package/lib/ObservedPeerConnection.d.ts +0 -207
  68. package/lib/ObservedPeerConnection.d.ts.map +0 -1
  69. package/lib/ObservedPeerConnection.js +0 -788
  70. package/lib/ObservedPeerConnectionTransport.d.ts +0 -17
  71. package/lib/ObservedPeerConnectionTransport.d.ts.map +0 -1
  72. package/lib/ObservedPeerConnectionTransport.js +0 -34
  73. package/lib/ObservedRemoteInboundRtp.d.ts +0 -30
  74. package/lib/ObservedRemoteInboundRtp.d.ts.map +0 -1
  75. package/lib/ObservedRemoteInboundRtp.js +0 -60
  76. package/lib/ObservedRemoteOutboundRtp.d.ts +0 -30
  77. package/lib/ObservedRemoteOutboundRtp.d.ts.map +0 -1
  78. package/lib/ObservedRemoteOutboundRtp.js +0 -60
  79. package/lib/ObservedTURN.d.ts +0 -31
  80. package/lib/ObservedTURN.d.ts.map +0 -1
  81. package/lib/ObservedTURN.js +0 -58
  82. package/lib/ObservedTurnServer.d.ts +0 -25
  83. package/lib/ObservedTurnServer.d.ts.map +0 -1
  84. package/lib/ObservedTurnServer.js +0 -59
  85. package/lib/Observer.d.ts +0 -62
  86. package/lib/Observer.d.ts.map +0 -1
  87. package/lib/Observer.js +0 -160
  88. package/lib/ObserverEventMonitor.d.ts +0 -141
  89. package/lib/ObserverEventMonitor.d.ts.map +0 -1
  90. package/lib/ObserverEventMonitor.js +0 -440
  91. package/lib/ObserverSummary.d.ts +0 -13
  92. package/lib/ObserverSummary.d.ts.map +0 -1
  93. package/lib/ObserverSummary.js +0 -2
  94. package/lib/Reports.d.ts +0 -85
  95. package/lib/Reports.d.ts.map +0 -1
  96. package/lib/Reports.js +0 -2
  97. package/lib/common/Middleware.d.ts +0 -17
  98. package/lib/common/Middleware.d.ts.map +0 -1
  99. package/lib/common/Middleware.js +0 -60
  100. package/lib/common/SingleExecutor.d.ts +0 -3
  101. package/lib/common/SingleExecutor.d.ts.map +0 -1
  102. package/lib/common/SingleExecutor.js +0 -31
  103. package/lib/common/logger.d.ts +0 -17
  104. package/lib/common/logger.d.ts.map +0 -1
  105. package/lib/common/logger.js +0 -50
  106. package/lib/common/types.d.ts +0 -3
  107. package/lib/common/types.d.ts.map +0 -1
  108. package/lib/common/types.js +0 -3
  109. package/lib/common/utils.d.ts +0 -11
  110. package/lib/common/utils.d.ts.map +0 -1
  111. package/lib/common/utils.js +0 -63
  112. package/lib/detectors/Detector.d.ts +0 -5
  113. package/lib/detectors/Detector.d.ts.map +0 -1
  114. package/lib/detectors/Detector.js +0 -3
  115. package/lib/detectors/Detectors.d.ts +0 -11
  116. package/lib/detectors/Detectors.d.ts.map +0 -1
  117. package/lib/detectors/Detectors.js +0 -34
  118. package/lib/index.d.ts +0 -29
  119. package/lib/index.d.ts.map +0 -1
  120. package/lib/index.js +0 -49
  121. package/lib/mediasoup/ObservedMediaRouter.d.ts +0 -10
  122. package/lib/mediasoup/ObservedMediaRouter.d.ts.map +0 -1
  123. package/lib/mediasoup/ObservedMediaRouter.js +0 -6
  124. package/lib/monitors/TurnUsageMonitor.d.ts +0 -1
  125. package/lib/monitors/TurnUsageMonitor.d.ts.map +0 -1
  126. package/lib/monitors/TurnUsageMonitor.js +0 -146
  127. package/lib/schema/ClientEventTypes.d.ts +0 -228
  128. package/lib/schema/ClientEventTypes.d.ts.map +0 -1
  129. package/lib/schema/ClientEventTypes.js +0 -41
  130. package/lib/schema/ClientMetaTypes.d.ts +0 -34
  131. package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
  132. package/lib/schema/ClientMetaTypes.js +0 -16
  133. package/lib/schema/ClientSample.d.ts +0 -1333
  134. package/lib/schema/ClientSample.d.ts.map +0 -1
  135. package/lib/schema/ClientSample.js +0 -4
  136. package/lib/scores/CalculatedScore.d.ts +0 -6
  137. package/lib/scores/CalculatedScore.d.ts.map +0 -1
  138. package/lib/scores/CalculatedScore.js +0 -2
  139. package/lib/scores/DefaultCallScoreCalculator.d.ts +0 -7
  140. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +0 -1
  141. package/lib/scores/DefaultCallScoreCalculator.js +0 -21
  142. package/lib/scores/ScoreCalculator.d.ts +0 -4
  143. package/lib/scores/ScoreCalculator.d.ts.map +0 -1
  144. package/lib/scores/ScoreCalculator.js +0 -2
  145. package/lib/updaters/CallUpdater.d.ts +0 -5
  146. package/lib/updaters/CallUpdater.d.ts.map +0 -1
  147. package/lib/updaters/CallUpdater.js +0 -2
  148. package/lib/updaters/ObserverUpdater.d.ts +0 -5
  149. package/lib/updaters/ObserverUpdater.d.ts.map +0 -1
  150. package/lib/updaters/ObserverUpdater.js +0 -2
  151. package/lib/updaters/OnAllCallObserverUpdater.d.ts +0 -15
  152. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +0 -1
  153. package/lib/updaters/OnAllCallObserverUpdater.js +0 -50
  154. package/lib/updaters/OnAllClientCallUpdater.d.ts +0 -15
  155. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +0 -1
  156. package/lib/updaters/OnAllClientCallUpdater.js +0 -53
  157. package/lib/updaters/OnAnyCallObserverUpdater.d.ts +0 -12
  158. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +0 -1
  159. package/lib/updaters/OnAnyCallObserverUpdater.js +0 -37
  160. package/lib/updaters/OnAnyClientCallUpdater.d.ts +0 -12
  161. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +0 -1
  162. package/lib/updaters/OnAnyClientCallUpdater.js +0 -36
  163. package/lib/updaters/OnIntervalUpdater.d.ts +0 -10
  164. package/lib/updaters/OnIntervalUpdater.d.ts.map +0 -1
  165. package/lib/updaters/OnIntervalUpdater.js +0 -17
  166. package/lib/updaters/Updater.d.ts +0 -6
  167. package/lib/updaters/Updater.d.ts.map +0 -1
  168. package/lib/updaters/Updater.js +0 -2
  169. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +0 -25
  170. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +0 -1
  171. package/lib/utils/MediasoupRemoteTrackResolver.js +0 -110
  172. package/lib/utils/RemoteTrackResolver.d.ts +0 -7
  173. package/lib/utils/RemoteTrackResolver.d.ts.map +0 -1
  174. package/lib/utils/RemoteTrackResolver.js +0 -2
  175. package/src/ObservedCall.ts +0 -308
  176. package/src/ObservedCallEventMonitor.ts +0 -402
  177. package/src/ObservedCallSummary.ts +0 -22
  178. package/src/ObservedCertificate.ts +0 -43
  179. package/src/ObservedClient.ts +0 -883
  180. package/src/ObservedClientEventMonitor.ts +0 -309
  181. package/src/ObservedClientSummary.ts +0 -24
  182. package/src/ObservedCodec.ts +0 -49
  183. package/src/ObservedDataChannel.ts +0 -85
  184. package/src/ObservedIceCandidate.ts +0 -64
  185. package/src/ObservedIceCandidatePair.ts +0 -134
  186. package/src/ObservedIceTransport.ts +0 -99
  187. package/src/ObservedInboundRtp.ts +0 -205
  188. package/src/ObservedInboundTrack.ts +0 -105
  189. package/src/ObservedMediaPlayout.ts +0 -49
  190. package/src/ObservedMediaSource.ts +0 -60
  191. package/src/ObservedOutboundRtp.ts +0 -156
  192. package/src/ObservedOutboundTrack.ts +0 -82
  193. package/src/ObservedPeerConnection.ts +0 -1104
  194. package/src/ObservedPeerConnectionTransport.ts +0 -38
  195. package/src/ObservedRemoteInboundRtp.ts +0 -64
  196. package/src/ObservedRemoteOutboundRtp.ts +0 -65
  197. package/src/ObservedTURN.ts +0 -86
  198. package/src/ObservedTurnServer.ts +0 -72
  199. package/src/Observer.ts +0 -248
  200. package/src/ObserverEventMonitor.ts +0 -561
  201. package/src/ObserverSummary.ts +0 -15
  202. package/src/Reports.ts +0 -87
  203. package/src/common/Middleware.ts +0 -84
  204. package/src/common/SingleExecutor.ts +0 -36
  205. package/src/common/logger.ts +0 -82
  206. package/src/common/types.ts +0 -4
  207. package/src/common/utils.ts +0 -69
  208. package/src/detectors/Detector.ts +0 -6
  209. package/src/detectors/Detectors.ts +0 -38
  210. package/src/index.ts +0 -32
  211. package/src/mediasoup/ObservedMediaRouter.ts +0 -10
  212. package/src/monitors/TurnUsageMonitor.ts +0 -187
  213. package/src/schema/ClientEventTypes.ts +0 -280
  214. package/src/schema/ClientMetaTypes.ts +0 -41
  215. package/src/schema/ClientSample.ts +0 -1682
  216. package/src/scores/CalculatedScore.ts +0 -6
  217. package/src/scores/DefaultCallScoreCalculator.ts +0 -23
  218. package/src/scores/ScoreCalculator.ts +0 -3
  219. package/src/updaters/CallUpdater.ts +0 -5
  220. package/src/updaters/ObserverUpdater.ts +0 -5
  221. package/src/updaters/OnAllCallObserverUpdater.ts +0 -59
  222. package/src/updaters/OnAllClientCallUpdater.ts +0 -61
  223. package/src/updaters/OnAnyCallObserverUpdater.ts +0 -41
  224. package/src/updaters/OnAnyClientCallUpdater.ts +0 -39
  225. package/src/updaters/OnIntervalUpdater.ts +0 -19
  226. package/src/updaters/Updater.ts +0 -5
  227. package/src/utils/MediasoupRemoteTrackResolver.ts +0 -155
  228. package/src/utils/RemoteTrackResolver.ts +0 -12
  229. package/tsconfig.json +0 -19
  230. package/tslint.json +0 -6
@@ -1,84 +0,0 @@
1
- export type Middleware<T> = (
2
- input: T,
3
- next: (nextInput: T) => void
4
- ) => void;
5
-
6
- export interface Processor<T> {
7
- finalCallback?: Callback<T>;
8
- process(value: T): void;
9
- addMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
10
- removeMiddleware(...middlewares: Middleware<T>[]): Processor<T>;
11
- }
12
-
13
- type Callback<T> = (input: T) => void;
14
-
15
- class Executor<T> {
16
- public done = false;
17
- private index = 0;
18
- private prevIndex = -1;
19
-
20
- constructor(
21
- private readonly stack: Middleware<T>[],
22
- private readonly finalCallback?: Callback<T>
23
- ) {
24
- }
25
-
26
- // Executes the middleware stack
27
- public execute(input: T): void {
28
- if (this.index <= this.prevIndex) {
29
- throw new Error('Middleware must call next() only once!');
30
- } else if (this.done) {
31
- throw new Error('Middleware stack has already been executed!');
32
- }
33
-
34
- this.prevIndex = this.index;
35
-
36
- const middleware = this.stack[this.index];
37
-
38
- this.index++;
39
-
40
- if (middleware) {
41
- return middleware(input, (nextInput: T) => this.execute(nextInput));
42
- }
43
-
44
- this.done = true;
45
- this.finalCallback?.(input);
46
- }
47
- }
48
-
49
- export class MiddlewareProcessor<T> implements Processor<T> {
50
- private stack: Middleware<T>[] = [];
51
- public finalCallback?: Callback<T>;
52
-
53
- public addMiddleware(...middlewares: Middleware<T>[]): Processor<T> {
54
- if (middlewares && middlewares.length > 0) {
55
- this.stack.push(...middlewares);
56
- }
57
-
58
- return this;
59
- }
60
-
61
- public removeMiddleware(...middlewares: Middleware<T>[]): Processor<T> {
62
- if (middlewares && middlewares.length > 0) {
63
- for (const middleware of middlewares) {
64
- const index = this.stack.indexOf(middleware);
65
-
66
- if (index >= 0) {
67
- this.stack.splice(index, 1);
68
- }
69
- }
70
- }
71
-
72
- return this;
73
- }
74
-
75
- public process(value: T): void {
76
- if (this.stack.length === 0) {
77
- return this.finalCallback?.(value);
78
- }
79
-
80
- const executor = new Executor(this.stack, this.finalCallback);
81
-
82
- executor.execute(value);
83
- }
84
- }
@@ -1,36 +0,0 @@
1
- export type SingleExecutor = ReturnType<typeof createSingleExecutor>;
2
-
3
- export function createSingleExecutor() {
4
- let semaphore = 1;
5
- const tasks: (() => Promise<unknown>)[] = [];
6
-
7
- const execute = <T = unknown>(task: () => Promise<T>) => {
8
- return new Promise<T>((resolve, reject) => {
9
- tasks.push(() => task().then(resolve)
10
- .catch(reject));
11
- run();
12
- });
13
- };
14
-
15
- const run = () => {
16
- if (semaphore < 1) return;
17
-
18
- const task = tasks.shift();
19
-
20
- if (!task) return;
21
-
22
- const postProcess = () => {
23
- ++semaphore;
24
- run();
25
- };
26
-
27
- --semaphore;
28
-
29
- task()
30
- .then(postProcess)
31
- .catch(postProcess);
32
-
33
- };
34
-
35
- return execute;
36
- }
@@ -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,32 +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';
29
- export type {
30
- TrackReport,
31
- ClientReport,
32
- } from './Reports';
@@ -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
- // }