@observertc/observer-js 1.0.0-b276103.0 → 1.0.0-beta.10

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 (231) hide show
  1. package/README.md +972 -383
  2. package/dist/index.d.mts +2952 -0
  3. package/dist/index.d.ts +2952 -0
  4. package/dist/index.js +4040 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +3970 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/llms-full.txt +1536 -0
  9. package/package.json +32 -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 -70
  15. package/lib/ObservedCall.d.ts.map +0 -1
  16. package/lib/ObservedCall.js +0 -196
  17. package/lib/ObservedCallEventMonitor.d.ts +0 -107
  18. package/lib/ObservedCallEventMonitor.d.ts.map +0 -1
  19. package/lib/ObservedCallEventMonitor.js +0 -321
  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 -115
  27. package/lib/ObservedClient.d.ts.map +0 -1
  28. package/lib/ObservedClient.js +0 -714
  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 -34
  54. package/lib/ObservedInboundTrack.d.ts.map +0 -1
  55. package/lib/ObservedInboundTrack.js +0 -92
  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 -34
  66. package/lib/ObservedOutboundTrack.d.ts.map +0 -1
  67. package/lib/ObservedOutboundTrack.js +0 -65
  68. package/lib/ObservedPeerConnection.d.ts +0 -207
  69. package/lib/ObservedPeerConnection.d.ts.map +0 -1
  70. package/lib/ObservedPeerConnection.js +0 -788
  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 -62
  87. package/lib/Observer.d.ts.map +0 -1
  88. package/lib/Observer.js +0 -160
  89. package/lib/ObserverEventMonitor.d.ts +0 -141
  90. package/lib/ObserverEventMonitor.d.ts.map +0 -1
  91. package/lib/ObserverEventMonitor.js +0 -440
  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/Reports.d.ts +0 -85
  96. package/lib/Reports.d.ts.map +0 -1
  97. package/lib/Reports.js +0 -2
  98. package/lib/common/Middleware.d.ts +0 -17
  99. package/lib/common/Middleware.d.ts.map +0 -1
  100. package/lib/common/Middleware.js +0 -60
  101. package/lib/common/SingleExecutor.d.ts +0 -3
  102. package/lib/common/SingleExecutor.d.ts.map +0 -1
  103. package/lib/common/SingleExecutor.js +0 -31
  104. package/lib/common/logger.d.ts +0 -17
  105. package/lib/common/logger.d.ts.map +0 -1
  106. package/lib/common/logger.js +0 -50
  107. package/lib/common/types.d.ts +0 -3
  108. package/lib/common/types.d.ts.map +0 -1
  109. package/lib/common/types.js +0 -3
  110. package/lib/common/utils.d.ts +0 -11
  111. package/lib/common/utils.d.ts.map +0 -1
  112. package/lib/common/utils.js +0 -63
  113. package/lib/detectors/Detector.d.ts +0 -5
  114. package/lib/detectors/Detector.d.ts.map +0 -1
  115. package/lib/detectors/Detector.js +0 -3
  116. package/lib/detectors/Detectors.d.ts +0 -11
  117. package/lib/detectors/Detectors.d.ts.map +0 -1
  118. package/lib/detectors/Detectors.js +0 -34
  119. package/lib/index.d.ts +0 -29
  120. package/lib/index.d.ts.map +0 -1
  121. package/lib/index.js +0 -49
  122. package/lib/mediasoup/ObservedMediaRouter.d.ts +0 -10
  123. package/lib/mediasoup/ObservedMediaRouter.d.ts.map +0 -1
  124. package/lib/mediasoup/ObservedMediaRouter.js +0 -6
  125. package/lib/monitors/TurnUsageMonitor.d.ts +0 -1
  126. package/lib/monitors/TurnUsageMonitor.d.ts.map +0 -1
  127. package/lib/monitors/TurnUsageMonitor.js +0 -146
  128. package/lib/schema/ClientEventTypes.d.ts +0 -228
  129. package/lib/schema/ClientEventTypes.d.ts.map +0 -1
  130. package/lib/schema/ClientEventTypes.js +0 -41
  131. package/lib/schema/ClientMetaTypes.d.ts +0 -34
  132. package/lib/schema/ClientMetaTypes.d.ts.map +0 -1
  133. package/lib/schema/ClientMetaTypes.js +0 -16
  134. package/lib/schema/ClientSample.d.ts +0 -1333
  135. package/lib/schema/ClientSample.d.ts.map +0 -1
  136. package/lib/schema/ClientSample.js +0 -4
  137. package/lib/scores/CalculatedScore.d.ts +0 -6
  138. package/lib/scores/CalculatedScore.d.ts.map +0 -1
  139. package/lib/scores/CalculatedScore.js +0 -2
  140. package/lib/scores/DefaultCallScoreCalculator.d.ts +0 -7
  141. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +0 -1
  142. package/lib/scores/DefaultCallScoreCalculator.js +0 -21
  143. package/lib/scores/ScoreCalculator.d.ts +0 -4
  144. package/lib/scores/ScoreCalculator.d.ts.map +0 -1
  145. package/lib/scores/ScoreCalculator.js +0 -2
  146. package/lib/updaters/CallUpdater.d.ts +0 -5
  147. package/lib/updaters/CallUpdater.d.ts.map +0 -1
  148. package/lib/updaters/CallUpdater.js +0 -2
  149. package/lib/updaters/ObserverUpdater.d.ts +0 -5
  150. package/lib/updaters/ObserverUpdater.d.ts.map +0 -1
  151. package/lib/updaters/ObserverUpdater.js +0 -2
  152. package/lib/updaters/OnAllCallObserverUpdater.d.ts +0 -15
  153. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +0 -1
  154. package/lib/updaters/OnAllCallObserverUpdater.js +0 -50
  155. package/lib/updaters/OnAllClientCallUpdater.d.ts +0 -15
  156. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +0 -1
  157. package/lib/updaters/OnAllClientCallUpdater.js +0 -53
  158. package/lib/updaters/OnAnyCallObserverUpdater.d.ts +0 -12
  159. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +0 -1
  160. package/lib/updaters/OnAnyCallObserverUpdater.js +0 -37
  161. package/lib/updaters/OnAnyClientCallUpdater.d.ts +0 -12
  162. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +0 -1
  163. package/lib/updaters/OnAnyClientCallUpdater.js +0 -36
  164. package/lib/updaters/OnIntervalUpdater.d.ts +0 -10
  165. package/lib/updaters/OnIntervalUpdater.d.ts.map +0 -1
  166. package/lib/updaters/OnIntervalUpdater.js +0 -17
  167. package/lib/updaters/Updater.d.ts +0 -6
  168. package/lib/updaters/Updater.d.ts.map +0 -1
  169. package/lib/updaters/Updater.js +0 -2
  170. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +0 -25
  171. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +0 -1
  172. package/lib/utils/MediasoupRemoteTrackResolver.js +0 -110
  173. package/lib/utils/RemoteTrackResolver.d.ts +0 -7
  174. package/lib/utils/RemoteTrackResolver.d.ts.map +0 -1
  175. package/lib/utils/RemoteTrackResolver.js +0 -2
  176. package/src/ObservedCall.ts +0 -308
  177. package/src/ObservedCallEventMonitor.ts +0 -402
  178. package/src/ObservedCallSummary.ts +0 -22
  179. package/src/ObservedCertificate.ts +0 -43
  180. package/src/ObservedClient.ts +0 -883
  181. package/src/ObservedClientEventMonitor.ts +0 -309
  182. package/src/ObservedClientSummary.ts +0 -24
  183. package/src/ObservedCodec.ts +0 -49
  184. package/src/ObservedDataChannel.ts +0 -85
  185. package/src/ObservedIceCandidate.ts +0 -64
  186. package/src/ObservedIceCandidatePair.ts +0 -134
  187. package/src/ObservedIceTransport.ts +0 -99
  188. package/src/ObservedInboundRtp.ts +0 -205
  189. package/src/ObservedInboundTrack.ts +0 -105
  190. package/src/ObservedMediaPlayout.ts +0 -49
  191. package/src/ObservedMediaSource.ts +0 -60
  192. package/src/ObservedOutboundRtp.ts +0 -156
  193. package/src/ObservedOutboundTrack.ts +0 -82
  194. package/src/ObservedPeerConnection.ts +0 -1104
  195. package/src/ObservedPeerConnectionTransport.ts +0 -38
  196. package/src/ObservedRemoteInboundRtp.ts +0 -64
  197. package/src/ObservedRemoteOutboundRtp.ts +0 -65
  198. package/src/ObservedTURN.ts +0 -86
  199. package/src/ObservedTurnServer.ts +0 -72
  200. package/src/Observer.ts +0 -248
  201. package/src/ObserverEventMonitor.ts +0 -561
  202. package/src/ObserverSummary.ts +0 -15
  203. package/src/Reports.ts +0 -87
  204. package/src/common/Middleware.ts +0 -84
  205. package/src/common/SingleExecutor.ts +0 -36
  206. package/src/common/logger.ts +0 -82
  207. package/src/common/types.ts +0 -4
  208. package/src/common/utils.ts +0 -69
  209. package/src/detectors/Detector.ts +0 -6
  210. package/src/detectors/Detectors.ts +0 -38
  211. package/src/index.ts +0 -32
  212. package/src/mediasoup/ObservedMediaRouter.ts +0 -10
  213. package/src/monitors/TurnUsageMonitor.ts +0 -187
  214. package/src/schema/ClientEventTypes.ts +0 -280
  215. package/src/schema/ClientMetaTypes.ts +0 -41
  216. package/src/schema/ClientSample.ts +0 -1682
  217. package/src/scores/CalculatedScore.ts +0 -6
  218. package/src/scores/DefaultCallScoreCalculator.ts +0 -23
  219. package/src/scores/ScoreCalculator.ts +0 -3
  220. package/src/updaters/CallUpdater.ts +0 -5
  221. package/src/updaters/ObserverUpdater.ts +0 -5
  222. package/src/updaters/OnAllCallObserverUpdater.ts +0 -59
  223. package/src/updaters/OnAllClientCallUpdater.ts +0 -61
  224. package/src/updaters/OnAnyCallObserverUpdater.ts +0 -41
  225. package/src/updaters/OnAnyClientCallUpdater.ts +0 -39
  226. package/src/updaters/OnIntervalUpdater.ts +0 -19
  227. package/src/updaters/Updater.ts +0 -5
  228. package/src/utils/MediasoupRemoteTrackResolver.ts +0 -155
  229. package/src/utils/RemoteTrackResolver.ts +0 -12
  230. package/tsconfig.json +0 -19
  231. 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
- // }