@observertc/observer-js 0.42.9 → 1.0.0-5f150eb.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 (303) hide show
  1. package/.prettierrc +6 -6
  2. package/README.md +493 -63
  3. package/lib/ObservedCall.d.ts +48 -43
  4. package/lib/ObservedCall.d.ts.map +1 -1
  5. package/lib/ObservedCall.js +164 -107
  6. package/lib/ObservedCallEventMonitor.d.ts +107 -0
  7. package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
  8. package/lib/ObservedCallEventMonitor.js +321 -0
  9. package/lib/ObservedCallSummary.d.ts +18 -0
  10. package/lib/ObservedCallSummary.d.ts.map +1 -0
  11. package/lib/ObservedCertificate.d.ts +19 -0
  12. package/lib/ObservedCertificate.d.ts.map +1 -0
  13. package/lib/ObservedCertificate.js +38 -0
  14. package/lib/ObservedClient.d.ts +78 -145
  15. package/lib/ObservedClient.d.ts.map +1 -1
  16. package/lib/ObservedClient.js +661 -746
  17. package/lib/ObservedClientEventMonitor.d.ts +91 -0
  18. package/lib/ObservedClientEventMonitor.d.ts.map +1 -0
  19. package/lib/ObservedClientEventMonitor.js +254 -0
  20. package/lib/ObservedClientSummary.d.ts +23 -0
  21. package/lib/ObservedClientSummary.d.ts.map +1 -0
  22. package/lib/ObservedClientSummary.js +2 -0
  23. package/lib/ObservedCodec.d.ts +22 -0
  24. package/lib/ObservedCodec.d.ts.map +1 -0
  25. package/lib/ObservedCodec.js +45 -0
  26. package/lib/ObservedDataChannel.d.ts +25 -69
  27. package/lib/ObservedDataChannel.d.ts.map +1 -1
  28. package/lib/ObservedDataChannel.js +69 -109
  29. package/lib/ObservedIceCandidate.d.ts +29 -0
  30. package/lib/ObservedIceCandidate.d.ts.map +1 -0
  31. package/lib/ObservedIceCandidate.js +59 -0
  32. package/lib/ObservedIceCandidatePair.d.ts +45 -0
  33. package/lib/ObservedIceCandidatePair.d.ts.map +1 -0
  34. package/lib/ObservedIceCandidatePair.js +127 -0
  35. package/lib/ObservedIceTransport.d.ts +36 -0
  36. package/lib/ObservedIceTransport.d.ts.map +1 -0
  37. package/lib/ObservedIceTransport.js +93 -0
  38. package/lib/ObservedInboundRtp.d.ts +92 -0
  39. package/lib/ObservedInboundRtp.d.ts.map +1 -0
  40. package/lib/ObservedInboundRtp.js +193 -0
  41. package/lib/ObservedInboundTrack.d.ts +34 -0
  42. package/lib/ObservedInboundTrack.d.ts.map +1 -0
  43. package/lib/ObservedInboundTrack.js +92 -0
  44. package/lib/ObservedMediaPlayout.d.ts +22 -0
  45. package/lib/ObservedMediaPlayout.d.ts.map +1 -0
  46. package/lib/ObservedMediaPlayout.js +42 -0
  47. package/lib/ObservedMediaSource.d.ts +28 -0
  48. package/lib/ObservedMediaSource.d.ts.map +1 -0
  49. package/lib/ObservedMediaSource.js +55 -0
  50. package/lib/ObservedOutboundRtp.d.ts +62 -0
  51. package/lib/ObservedOutboundRtp.d.ts.map +1 -0
  52. package/lib/ObservedOutboundRtp.js +144 -0
  53. package/lib/ObservedOutboundTrack.d.ts +34 -0
  54. package/lib/ObservedOutboundTrack.d.ts.map +1 -0
  55. package/lib/ObservedOutboundTrack.js +65 -0
  56. package/lib/ObservedPeerConnection.d.ts +154 -80
  57. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  58. package/lib/ObservedPeerConnection.js +724 -357
  59. package/lib/ObservedPeerConnectionTransport.d.ts +17 -0
  60. package/lib/ObservedPeerConnectionTransport.d.ts.map +1 -0
  61. package/lib/ObservedPeerConnectionTransport.js +34 -0
  62. package/lib/ObservedRemoteInboundRtp.d.ts +30 -0
  63. package/lib/ObservedRemoteInboundRtp.d.ts.map +1 -0
  64. package/lib/ObservedRemoteInboundRtp.js +60 -0
  65. package/lib/ObservedRemoteOutboundRtp.d.ts +30 -0
  66. package/lib/ObservedRemoteOutboundRtp.d.ts.map +1 -0
  67. package/lib/ObservedRemoteOutboundRtp.js +60 -0
  68. package/lib/ObservedTURN.d.ts +31 -0
  69. package/lib/ObservedTURN.d.ts.map +1 -0
  70. package/lib/ObservedTURN.js +58 -0
  71. package/lib/ObservedTurnServer.d.ts +25 -0
  72. package/lib/ObservedTurnServer.d.ts.map +1 -0
  73. package/lib/ObservedTurnServer.js +59 -0
  74. package/lib/Observer.d.ts +46 -54
  75. package/lib/Observer.d.ts.map +1 -1
  76. package/lib/Observer.js +131 -226
  77. package/lib/ObserverEventMonitor.d.ts +141 -0
  78. package/lib/ObserverEventMonitor.d.ts.map +1 -0
  79. package/lib/ObserverEventMonitor.js +440 -0
  80. package/lib/ObserverSummary.d.ts +13 -0
  81. package/lib/ObserverSummary.d.ts.map +1 -0
  82. package/lib/ObserverSummary.js +2 -0
  83. package/lib/Reports.d.ts +85 -0
  84. package/lib/Reports.d.ts.map +1 -0
  85. package/lib/Reports.js +2 -0
  86. package/lib/common/Middleware.d.ts +10 -1
  87. package/lib/common/Middleware.d.ts.map +1 -1
  88. package/lib/common/Middleware.js +55 -36
  89. package/lib/common/logger.d.ts +8 -4
  90. package/lib/common/logger.d.ts.map +1 -1
  91. package/lib/common/logger.js +44 -68
  92. package/lib/common/types.d.ts +0 -21
  93. package/lib/common/types.d.ts.map +1 -1
  94. package/lib/common/types.js +1 -0
  95. package/lib/common/utils.d.ts +3 -1
  96. package/lib/common/utils.d.ts.map +1 -1
  97. package/lib/common/utils.js +23 -3
  98. package/lib/detectors/Detector.d.ts +5 -0
  99. package/lib/detectors/Detector.d.ts.map +1 -0
  100. package/lib/detectors/Detector.js +3 -0
  101. package/lib/detectors/Detectors.d.ts +11 -0
  102. package/lib/detectors/Detectors.d.ts.map +1 -0
  103. package/lib/detectors/Detectors.js +34 -0
  104. package/lib/index.d.ts +27 -25
  105. package/lib/index.d.ts.map +1 -1
  106. package/lib/index.js +45 -41
  107. package/lib/mediasoup/ObservedMediaRouter.d.ts +10 -0
  108. package/lib/mediasoup/ObservedMediaRouter.d.ts.map +1 -0
  109. package/lib/mediasoup/ObservedMediaRouter.js +6 -0
  110. package/lib/monitors/TurnUsageMonitor.d.ts +0 -52
  111. package/lib/monitors/TurnUsageMonitor.d.ts.map +1 -1
  112. package/lib/monitors/TurnUsageMonitor.js +145 -120
  113. package/lib/schema/ClientEventTypes.d.ts +228 -0
  114. package/lib/schema/ClientEventTypes.d.ts.map +1 -0
  115. package/lib/schema/ClientEventTypes.js +41 -0
  116. package/lib/schema/ClientMetaTypes.d.ts +34 -0
  117. package/lib/schema/ClientMetaTypes.d.ts.map +1 -0
  118. package/lib/schema/ClientMetaTypes.js +16 -0
  119. package/lib/schema/ClientSample.d.ts +1333 -0
  120. package/lib/schema/ClientSample.d.ts.map +1 -0
  121. package/lib/schema/ClientSample.js +4 -0
  122. package/lib/scores/CalculatedScore.d.ts +6 -0
  123. package/lib/scores/CalculatedScore.d.ts.map +1 -0
  124. package/lib/scores/CalculatedScore.js +2 -0
  125. package/lib/scores/DefaultCallScoreCalculator.d.ts +7 -0
  126. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +1 -0
  127. package/lib/scores/DefaultCallScoreCalculator.js +21 -0
  128. package/lib/scores/ScoreCalculator.d.ts +4 -0
  129. package/lib/scores/ScoreCalculator.d.ts.map +1 -0
  130. package/lib/scores/ScoreCalculator.js +2 -0
  131. package/lib/updaters/CallUpdater.d.ts +5 -0
  132. package/lib/updaters/CallUpdater.d.ts.map +1 -0
  133. package/lib/updaters/CallUpdater.js +2 -0
  134. package/lib/updaters/ObserverUpdater.d.ts +5 -0
  135. package/lib/updaters/ObserverUpdater.d.ts.map +1 -0
  136. package/lib/updaters/ObserverUpdater.js +2 -0
  137. package/lib/updaters/OnAllCallObserverUpdater.d.ts +15 -0
  138. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +1 -0
  139. package/lib/updaters/OnAllCallObserverUpdater.js +50 -0
  140. package/lib/updaters/OnAllClientCallUpdater.d.ts +15 -0
  141. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +1 -0
  142. package/lib/updaters/OnAllClientCallUpdater.js +53 -0
  143. package/lib/updaters/OnAnyCallObserverUpdater.d.ts +12 -0
  144. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +1 -0
  145. package/lib/updaters/OnAnyCallObserverUpdater.js +37 -0
  146. package/lib/updaters/OnAnyClientCallUpdater.d.ts +12 -0
  147. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +1 -0
  148. package/lib/updaters/OnAnyClientCallUpdater.js +36 -0
  149. package/lib/updaters/OnIntervalUpdater.d.ts +10 -0
  150. package/lib/updaters/OnIntervalUpdater.d.ts.map +1 -0
  151. package/lib/updaters/OnIntervalUpdater.js +17 -0
  152. package/lib/updaters/Updater.d.ts +6 -0
  153. package/lib/updaters/Updater.d.ts.map +1 -0
  154. package/lib/updaters/Updater.js +2 -0
  155. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +25 -0
  156. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +1 -0
  157. package/lib/utils/MediasoupRemoteTrackResolver.js +110 -0
  158. package/lib/utils/RemoteTrackResolver.d.ts +7 -0
  159. package/lib/utils/RemoteTrackResolver.d.ts.map +1 -0
  160. package/lib/utils/RemoteTrackResolver.js +2 -0
  161. package/package.json +4 -4
  162. package/src/ObservedCall.ts +243 -161
  163. package/src/ObservedCallEventMonitor.ts +402 -0
  164. package/src/ObservedCallSummary.ts +22 -0
  165. package/src/ObservedCertificate.ts +43 -0
  166. package/src/ObservedClient.ts +715 -1003
  167. package/src/ObservedClientEventMonitor.ts +309 -0
  168. package/src/ObservedClientSummary.ts +24 -0
  169. package/src/ObservedCodec.ts +49 -0
  170. package/src/ObservedDataChannel.ts +71 -181
  171. package/src/ObservedIceCandidate.ts +64 -0
  172. package/src/ObservedIceCandidatePair.ts +134 -0
  173. package/src/ObservedIceTransport.ts +99 -0
  174. package/src/ObservedInboundRtp.ts +205 -0
  175. package/src/ObservedInboundTrack.ts +105 -0
  176. package/src/ObservedMediaPlayout.ts +49 -0
  177. package/src/ObservedMediaSource.ts +60 -0
  178. package/src/ObservedOutboundRtp.ts +156 -0
  179. package/src/ObservedOutboundTrack.ts +82 -0
  180. package/src/ObservedPeerConnection.ts +933 -402
  181. package/src/ObservedPeerConnectionTransport.ts +38 -0
  182. package/src/ObservedRemoteInboundRtp.ts +64 -0
  183. package/src/ObservedRemoteOutboundRtp.ts +65 -0
  184. package/src/ObservedTURN.ts +86 -0
  185. package/src/ObservedTurnServer.ts +72 -0
  186. package/src/Observer.ts +183 -298
  187. package/src/ObserverEventMonitor.ts +561 -0
  188. package/src/ObserverSummary.ts +15 -0
  189. package/src/Reports.ts +87 -0
  190. package/src/common/Middleware.ts +70 -42
  191. package/src/common/logger.ts +60 -69
  192. package/src/common/types.ts +0 -42
  193. package/src/common/utils.ts +24 -2
  194. package/src/detectors/Detector.ts +6 -0
  195. package/src/detectors/Detectors.ts +38 -0
  196. package/src/index.ts +30 -91
  197. package/src/mediasoup/ObservedMediaRouter.ts +10 -0
  198. package/src/monitors/TurnUsageMonitor.ts +164 -164
  199. package/src/schema/ClientEventTypes.ts +280 -0
  200. package/src/schema/ClientMetaTypes.ts +41 -0
  201. package/src/schema/ClientSample.ts +1682 -0
  202. package/src/scores/CalculatedScore.ts +6 -0
  203. package/src/scores/DefaultCallScoreCalculator.ts +23 -0
  204. package/src/scores/ScoreCalculator.ts +3 -0
  205. package/src/updaters/CallUpdater.ts +5 -0
  206. package/src/updaters/ObserverUpdater.ts +5 -0
  207. package/src/updaters/OnAllCallObserverUpdater.ts +59 -0
  208. package/src/updaters/OnAllClientCallUpdater.ts +61 -0
  209. package/src/updaters/OnAnyCallObserverUpdater.ts +41 -0
  210. package/src/updaters/OnAnyClientCallUpdater.ts +39 -0
  211. package/src/updaters/OnIntervalUpdater.ts +19 -0
  212. package/src/updaters/Updater.ts +5 -0
  213. package/src/utils/MediasoupRemoteTrackResolver.ts +155 -0
  214. package/src/utils/RemoteTrackResolver.ts +12 -0
  215. package/tsconfig.json +3 -3
  216. package/lib/ObservedICE.d.ts +0 -64
  217. package/lib/ObservedICE.d.ts.map +0 -1
  218. package/lib/ObservedICE.js +0 -141
  219. package/lib/ObservedInboundAudioTrack.d.ts +0 -96
  220. package/lib/ObservedInboundAudioTrack.d.ts.map +0 -1
  221. package/lib/ObservedInboundAudioTrack.js +0 -217
  222. package/lib/ObservedInboundVideoTrack.d.ts +0 -101
  223. package/lib/ObservedInboundVideoTrack.d.ts.map +0 -1
  224. package/lib/ObservedInboundVideoTrack.js +0 -232
  225. package/lib/ObservedOutboundAudioTrack.d.ts +0 -87
  226. package/lib/ObservedOutboundAudioTrack.d.ts.map +0 -1
  227. package/lib/ObservedOutboundAudioTrack.js +0 -186
  228. package/lib/ObservedOutboundVideoTrack.d.ts +0 -91
  229. package/lib/ObservedOutboundVideoTrack.d.ts.map +0 -1
  230. package/lib/ObservedOutboundVideoTrack.js +0 -193
  231. package/lib/ObservedSfu.d.ts +0 -59
  232. package/lib/ObservedSfu.d.ts.map +0 -1
  233. package/lib/ObservedSfu.js +0 -157
  234. package/lib/ObservedSfuInboundRtpPad.d.ts +0 -42
  235. package/lib/ObservedSfuInboundRtpPad.d.ts.map +0 -1
  236. package/lib/ObservedSfuInboundRtpPad.js +0 -71
  237. package/lib/ObservedSfuOutboundRtpPad.d.ts +0 -42
  238. package/lib/ObservedSfuOutboundRtpPad.d.ts.map +0 -1
  239. package/lib/ObservedSfuOutboundRtpPad.js +0 -72
  240. package/lib/ObservedSfuSctpChannel.d.ts +0 -42
  241. package/lib/ObservedSfuSctpChannel.d.ts.map +0 -1
  242. package/lib/ObservedSfuSctpChannel.js +0 -57
  243. package/lib/ObservedSfuTransport.d.ts +0 -58
  244. package/lib/ObservedSfuTransport.d.ts.map +0 -1
  245. package/lib/ObservedSfuTransport.js +0 -120
  246. package/lib/RemoteTrackAssigner.d.ts +0 -14
  247. package/lib/RemoteTrackAssigner.d.ts.map +0 -1
  248. package/lib/RemoteTrackAssigner.js +0 -52
  249. package/lib/ReportsCollector.d.ts +0 -109
  250. package/lib/ReportsCollector.d.ts.map +0 -1
  251. package/lib/ReportsCollector.js +0 -207
  252. package/lib/common/CalculatedScore.d.ts +0 -80
  253. package/lib/common/CalculatedScore.d.ts.map +0 -1
  254. package/lib/common/CalculatedScore.js +0 -162
  255. package/lib/common/CallEventType.d.ts +0 -63
  256. package/lib/common/CallEventType.d.ts.map +0 -1
  257. package/lib/common/CallEventType.js +0 -39
  258. package/lib/common/CallMetaReports.d.ts +0 -42
  259. package/lib/common/CallMetaReports.d.ts.map +0 -1
  260. package/lib/common/CallMetaReports.js +0 -36
  261. package/lib/common/QualityScoreUtils.d.ts +0 -1
  262. package/lib/common/QualityScoreUtils.d.ts.map +0 -1
  263. package/lib/common/QualityScoreUtils.js +0 -1
  264. package/lib/common/TypedEventEmitter.d.ts +0 -22
  265. package/lib/common/TypedEventEmitter.d.ts.map +0 -1
  266. package/lib/common/TypedEventEmitter.js +0 -11
  267. package/lib/common/callEventReports.d.ts +0 -10
  268. package/lib/common/callEventReports.d.ts.map +0 -1
  269. package/lib/common/callEventReports.js +0 -112
  270. package/lib/monitors/CallSummary.d.ts +0 -37
  271. package/lib/monitors/CallSummary.d.ts.map +0 -1
  272. package/lib/monitors/CallSummaryMonitor.d.ts +0 -32
  273. package/lib/monitors/CallSummaryMonitor.d.ts.map +0 -1
  274. package/lib/monitors/CallSummaryMonitor.js +0 -152
  275. package/lib/monitors/ClientIssueMonitor.d.ts +0 -32
  276. package/lib/monitors/ClientIssueMonitor.d.ts.map +0 -1
  277. package/lib/monitors/ClientIssueMonitor.js +0 -49
  278. package/lib/monitors/SfuServerMonitor.d.ts +0 -79
  279. package/lib/monitors/SfuServerMonitor.d.ts.map +0 -1
  280. package/lib/monitors/SfuServerMonitor.js +0 -198
  281. package/src/ObservedICE.ts +0 -237
  282. package/src/ObservedInboundAudioTrack.ts +0 -344
  283. package/src/ObservedInboundVideoTrack.ts +0 -361
  284. package/src/ObservedOutboundAudioTrack.ts +0 -307
  285. package/src/ObservedOutboundVideoTrack.ts +0 -319
  286. package/src/ObservedSfu.ts +0 -231
  287. package/src/ObservedSfuInboundRtpPad.ts +0 -106
  288. package/src/ObservedSfuOutboundRtpPad.ts +0 -107
  289. package/src/ObservedSfuSctpChannel.ts +0 -103
  290. package/src/ObservedSfuTransport.ts +0 -185
  291. package/src/RemoteTrackAssigner.ts +0 -68
  292. package/src/ReportsCollector.ts +0 -336
  293. package/src/common/CalculatedScore.ts +0 -188
  294. package/src/common/CallEventType.ts +0 -69
  295. package/src/common/CallMetaReports.ts +0 -82
  296. package/src/common/QualityScoreUtils.ts +0 -0
  297. package/src/common/TypedEventEmitter.ts +0 -32
  298. package/src/common/callEventReports.ts +0 -178
  299. package/src/monitors/CallSummary.ts +0 -38
  300. package/src/monitors/CallSummaryMonitor.ts +0 -192
  301. package/src/monitors/ClientIssueMonitor.ts +0 -88
  302. package/src/monitors/SfuServerMonitor.ts +0 -285
  303. /package/lib/{monitors/CallSummary.js → ObservedCallSummary.js} +0 -0
@@ -1,41 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createProcessor = void 0;
4
- function createProcessor() {
5
- const stack = [];
6
- const result = {
7
- addMiddleware: (...middlewares) => {
8
- if (middlewares && 0 < middlewares.length) {
9
- stack.push(...middlewares);
10
- }
11
- return result;
12
- },
13
- removeMiddleware: (...middlewares) => {
14
- if (middlewares && 0 < middlewares.length) {
15
- for (const process of middlewares) {
16
- const index = stack.indexOf(process);
17
- if (0 < index)
18
- stack.splice(index, 1);
3
+ exports.MiddlewareProcessor = void 0;
4
+ class Executor {
5
+ stack;
6
+ finalCallback;
7
+ done = false;
8
+ index = 0;
9
+ prevIndex = -1;
10
+ constructor(stack, finalCallback) {
11
+ this.stack = stack;
12
+ this.finalCallback = finalCallback;
13
+ }
14
+ // Executes the middleware stack
15
+ execute(input) {
16
+ if (this.index <= this.prevIndex) {
17
+ throw new Error('Middleware must call next() only once!');
18
+ }
19
+ else if (this.done) {
20
+ throw new Error('Middleware stack has already been executed!');
21
+ }
22
+ this.prevIndex = this.index;
23
+ const middleware = this.stack[this.index];
24
+ this.index++;
25
+ if (middleware) {
26
+ return middleware(input, (nextInput) => this.execute(nextInput));
27
+ }
28
+ this.done = true;
29
+ this.finalCallback?.(input);
30
+ }
31
+ }
32
+ class MiddlewareProcessor {
33
+ stack = [];
34
+ finalCallback;
35
+ addMiddleware(...middlewares) {
36
+ if (middlewares && middlewares.length > 0) {
37
+ this.stack.push(...middlewares);
38
+ }
39
+ return this;
40
+ }
41
+ removeMiddleware(...middlewares) {
42
+ if (middlewares && middlewares.length > 0) {
43
+ for (const middleware of middlewares) {
44
+ const index = this.stack.indexOf(middleware);
45
+ if (index >= 0) {
46
+ this.stack.splice(index, 1);
19
47
  }
20
48
  }
21
- return result;
22
- },
23
- process: (value) => {
24
- let prevIndex = -1;
25
- const execute = (index, input) => {
26
- if (index <= prevIndex) {
27
- throw new Error('middleware must call next() only once!');
28
- }
29
- prevIndex = index;
30
- const middleware = stack[index];
31
- if (!middleware)
32
- return;
33
- const next = (nextInput) => execute(index + 1, nextInput);
34
- return middleware(input, next);
35
- };
36
- return execute(0, value);
37
- },
38
- };
39
- return result;
49
+ }
50
+ return this;
51
+ }
52
+ process(value) {
53
+ if (this.stack.length === 0) {
54
+ return this.finalCallback?.(value);
55
+ }
56
+ const executor = new Executor(this.stack, this.finalCallback);
57
+ executor.execute(value);
58
+ }
40
59
  }
41
- exports.createProcessor = createProcessor;
60
+ exports.MiddlewareProcessor = MiddlewareProcessor;
@@ -1,4 +1,3 @@
1
- export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent';
2
1
  export interface Logger {
3
2
  trace(...args: any[]): void;
4
3
  debug(...args: any[]): void;
@@ -6,8 +5,13 @@ export interface Logger {
6
5
  warn(...args: any[]): void;
7
6
  error(...args: any[]): void;
8
7
  }
9
- export declare function setLogLevel(level: LogLevel): void;
10
- export declare const getLogLevel: () => LogLevel;
11
- export declare function forwardLogsTo(logger: Logger | null): void;
8
+ export interface ObserverLogger {
9
+ trace(module: string, ...args: any[]): void;
10
+ debug(module: string, ...args: any[]): void;
11
+ info(module: string, ...args: any[]): void;
12
+ warn(module: string, ...args: any[]): void;
13
+ error(module: string, ...args: any[]): void;
14
+ }
12
15
  export declare function createLogger(moduleName: string): Logger;
16
+ export declare function setObserverLogger(logger: ObserverLogger): void;
13
17
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,MAAM;IAEtB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,QAO1C;AAED,eAAO,MAAM,WAAW,gBAEvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,QAElD;AAcD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA+BvD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IAEtB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC5C;AA8BD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAuBvD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,QAEvD"}
@@ -1,74 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createLogger = exports.forwardLogsTo = exports.getLogLevel = exports.setLogLevel = void 0;
4
- let logLevel = 'error';
5
- const loggers = new Map();
6
- let target = {
7
- // eslint-disable-next-line no-console
8
- trace: (...args) => console.log(...args),
9
- // eslint-disable-next-line no-console
10
- debug: (...args) => console.log(...args),
11
- // eslint-disable-next-line no-console
12
- info: (...args) => console.log(...args),
13
- // eslint-disable-next-line no-console
14
- warn: (...args) => console.warn(...args),
15
- // eslint-disable-next-line no-console
16
- error: (...args) => console.error(...args),
17
- };
18
- function setLogLevel(level) {
19
- logLevel = level;
20
- const moduleNames = Array.from(loggers.keys());
21
- loggers.clear();
22
- moduleNames.forEach((moduleName) => createLogger(moduleName));
23
- }
24
- exports.setLogLevel = setLogLevel;
25
- const getLogLevel = () => {
26
- return logLevel;
27
- };
28
- exports.getLogLevel = getLogLevel;
29
- function forwardLogsTo(logger) {
30
- target = logger;
31
- }
32
- exports.forwardLogsTo = forwardLogsTo;
33
- const COLORS = {
34
- black: '\x1b[30m',
35
- red: '\x1b[31m',
36
- green: '\x1b[32m',
37
- yellow: '\x1b[33m',
38
- blue: '\x1b[34m',
39
- magenta: '\x1b[35m',
40
- cyan: '\x1b[36m',
41
- white: '\x1b[37m',
42
- default: '\x1b[39m',
43
- };
44
- function createLogger(moduleName) {
45
- if (loggers.has(moduleName)) {
3
+ exports.setObserverLogger = exports.createLogger = void 0;
4
+ let mainLogger = new class {
5
+ trace = () => void 0;
6
+ // trace(module: string, ...args: any[]) {
7
+ // // eslint-disable-next-line no-console
8
+ // console.log(`[TRACE] ${module}`, ...args);
9
+ // }
10
+ debug(module, ...args) {
46
11
  // eslint-disable-next-line no-console
47
- console.warn(`Logger for module ${moduleName} already exists`);
12
+ console.log(`[DEBUG] ${module}`, ...args);
48
13
  }
49
- const trace = logLevel === 'trace' ? (message, ...args) => {
50
- target === null || target === void 0 ? void 0 : target.trace(`${COLORS.magenta}[TRACE]${COLORS.default} ${moduleName} ${message}`, ...args);
51
- } : () => void 0;
52
- const debug = logLevel === 'trace' || logLevel === 'debug' ? (message, ...args) => {
53
- target === null || target === void 0 ? void 0 : target.debug(`${COLORS.cyan}[DEBUG]${COLORS.default} ${moduleName} ${message}`, ...args);
54
- } : () => void 0;
55
- const info = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' ? (message, ...args) => {
56
- target === null || target === void 0 ? void 0 : target.info(`${COLORS.green}[INFO]${COLORS.default} ${moduleName} ${message}`, ...args);
57
- } : () => void 0;
58
- const warn = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' || logLevel === 'warn' ? (message, ...args) => {
59
- target === null || target === void 0 ? void 0 : target.warn(`${COLORS.yellow}[WARN]${COLORS.default} ${moduleName} ${message}`, ...args);
60
- } : () => void 0;
61
- const error = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' || logLevel === 'warn' || logLevel === 'error' ? (message, ...args) => {
62
- target === null || target === void 0 ? void 0 : target.error(`${COLORS.red}[ERROR]${COLORS.default} ${moduleName} ${message}`, ...args);
63
- } : () => void 0;
64
- const logger = {
65
- trace,
66
- debug,
67
- info,
68
- warn,
69
- error,
70
- };
71
- loggers.set(moduleName, logger);
72
- return logger;
14
+ info(module, ...args) {
15
+ // eslint-disable-next-line no-console
16
+ console.info(`[INFO] ${module}`, ...args);
17
+ }
18
+ warn(module, ...args) {
19
+ // eslint-disable-next-line no-console
20
+ console.warn(`[WARN] ${module}`, ...args);
21
+ }
22
+ error(module, ...args) {
23
+ // eslint-disable-next-line no-console
24
+ console.error(`[ERROR] ${module}`, ...args);
25
+ }
26
+ }();
27
+ function createLogger(moduleName) {
28
+ return new class {
29
+ trace(...args) {
30
+ mainLogger.trace(moduleName, ...args);
31
+ }
32
+ debug(...args) {
33
+ mainLogger.debug(moduleName, ...args);
34
+ }
35
+ info(...args) {
36
+ mainLogger.info(moduleName, ...args);
37
+ }
38
+ warn(...args) {
39
+ mainLogger.warn(moduleName, ...args);
40
+ }
41
+ error(...args) {
42
+ mainLogger.error(moduleName, ...args);
43
+ }
44
+ }();
73
45
  }
74
46
  exports.createLogger = createLogger;
47
+ function setObserverLogger(logger) {
48
+ mainLogger = logger;
49
+ }
50
+ exports.setObserverLogger = setObserverLogger;
@@ -1,24 +1,3 @@
1
- import { CallEventReport, CallMetaReport, ClientDataChannelReport, ClientExtensionReport, IceCandidatePairReport, InboundAudioTrackReport, InboundVideoTrackReport, ObserverEventReport, OutboundAudioTrackReport, OutboundVideoTrackReport, PeerConnectionTransportReport, SfuEventReport, SfuExtensionReport, SfuInboundRtpPadReport, SfuMetaReport, SfuOutboundRtpPadReport, SfuSctpStreamReport, SFUTransportReport } from '@observertc/report-schemas-js';
2
1
  export type MediaKind = 'audio' | 'video';
3
2
  export type SupportedVideoCodecType = 'vp8' | 'vp9' | 'h264' | 'h265';
4
- export interface ObserverSinkContext {
5
- readonly callEventReports: CallEventReport[];
6
- readonly callMetaReports: CallMetaReport[];
7
- readonly clientDataChannelReports: ClientDataChannelReport[];
8
- readonly clientExtensionReports: ClientExtensionReport[];
9
- readonly iceCandidatePairReports: IceCandidatePairReport[];
10
- readonly inboundAudioTrackReports: InboundAudioTrackReport[];
11
- readonly inboundVideoTrackReports: InboundVideoTrackReport[];
12
- readonly peerConnectionTransportReports: PeerConnectionTransportReport[];
13
- readonly observerEventReports: ObserverEventReport[];
14
- readonly outboundAudioTrackReports: OutboundAudioTrackReport[];
15
- readonly outboundVideoTrackReports: OutboundVideoTrackReport[];
16
- readonly sfuEventReports: SfuEventReport[];
17
- readonly sfuExtensionReports: SfuExtensionReport[];
18
- readonly sfuInboundRtpPadReports: SfuInboundRtpPadReport[];
19
- readonly sfuOutboundRtpPadReports: SfuOutboundRtpPadReport[];
20
- readonly sfuSctpStreamReports: SfuSctpStreamReport[];
21
- readonly sfuTransportReports: SFUTransportReport[];
22
- readonly sfuMetaReports: SfuMetaReport[];
23
- }
24
3
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAItE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IAC7D,QAAQ,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IACzD,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;IAC3D,QAAQ,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IAC7D,QAAQ,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IAC7D,QAAQ,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,CAAC;IACzE,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,CAAC;IAC/D,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;IAC3D,QAAQ,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IAC7D,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ // export type EvaluatorMiddleware = Middleware<EvaluatorContext>;
@@ -5,5 +5,7 @@ export type Writable<T> = T extends object ? {
5
5
  export declare function iteratorConverter<T>(generator: Generator<T, void, undefined>): IterableIterator<T>;
6
6
  export declare function asyncIteratorConverter<T>(generator: AsyncGenerator<T, void, undefined>): AsyncIterableIterator<T>;
7
7
  export declare function isValidUuid(str: string): boolean;
8
- export declare function getMedian(arr: number[]): number;
8
+ export declare function getAverage(arr: number[], defaultAvgIfArrLengthIs0?: number): number;
9
+ export declare function getMedian(arr: number[], copyArrayForSorting?: boolean): number;
10
+ export declare function parseJsonAs<T>(json?: string): T | undefined;
9
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAE9F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CASlG;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CASjH;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAc/C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAE9F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CASlG;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CASjH;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,wBAAwB,SAAI,GAAG,MAAM,CAI9E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,mBAAmB,UAAO,GAAG,MAAM,CAkB3E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAU3D"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMedian = exports.isValidUuid = exports.asyncIteratorConverter = exports.iteratorConverter = void 0;
3
+ exports.parseJsonAs = exports.getMedian = exports.getAverage = exports.isValidUuid = exports.asyncIteratorConverter = exports.iteratorConverter = void 0;
4
4
  function iteratorConverter(generator) {
5
5
  return {
6
6
  [Symbol.iterator]() {
@@ -28,9 +28,17 @@ function isValidUuid(str) {
28
28
  return regexp.test(str);
29
29
  }
30
30
  exports.isValidUuid = isValidUuid;
31
- function getMedian(arr) {
31
+ function getAverage(arr, defaultAvgIfArrLengthIs0 = 0) {
32
+ if (arr.length === 0)
33
+ return defaultAvgIfArrLengthIs0;
34
+ return arr.reduce((a, b) => a + b, 0) / arr.length;
35
+ }
36
+ exports.getAverage = getAverage;
37
+ function getMedian(arr, copyArrayForSorting = true) {
32
38
  // Sort the array in ascending order
33
- const sortedArr = arr.slice().sort((a, b) => a - b);
39
+ const sortedArr = copyArrayForSorting
40
+ ? arr.slice().sort((a, b) => a - b)
41
+ : arr.sort((a, b) => a - b);
34
42
  // Calculate the middle index
35
43
  const mid = Math.floor(sortedArr.length / 2);
36
44
  // If the array length is odd, return the middle element
@@ -41,3 +49,15 @@ function getMedian(arr) {
41
49
  return (sortedArr[mid - 1] + sortedArr[mid]) / 2;
42
50
  }
43
51
  exports.getMedian = getMedian;
52
+ function parseJsonAs(json) {
53
+ if (!json) {
54
+ return undefined;
55
+ }
56
+ try {
57
+ return JSON.parse(json);
58
+ }
59
+ catch (error) {
60
+ return undefined;
61
+ }
62
+ }
63
+ exports.parseJsonAs = parseJsonAs;
@@ -0,0 +1,5 @@
1
+ export interface Detector {
2
+ readonly name: string;
3
+ update(): void;
4
+ }
5
+ //# sourceMappingURL=Detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Detector.d.ts","sourceRoot":"","sources":["../../src/detectors/Detector.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // import { AlertState } from "../ClientMonitor";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import { Detector } from './Detector';
2
+ export declare class Detectors {
3
+ private _detectors;
4
+ constructor(...detectors: Detector[]);
5
+ add(detector: Detector): void;
6
+ remove(detector: Detector): void;
7
+ get listOfNames(): string[];
8
+ update(): void;
9
+ clear(): void;
10
+ }
11
+ //# sourceMappingURL=Detectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Detectors.d.ts","sourceRoot":"","sources":["../../src/detectors/Detectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,SAAS;IACrB,OAAO,CAAC,UAAU,CAAa;gBAEZ,GAAG,SAAS,EAAE,QAAQ,EAAE;IAIpC,GAAG,CAAC,QAAQ,EAAE,QAAQ;IAItB,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAIhC,IAAI,WAAW,aAEd;IAEM,MAAM;IAUN,KAAK;CAGZ"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Detectors = void 0;
4
+ const logger_1 = require("../common/logger");
5
+ const logger = (0, logger_1.createLogger)('Detectors');
6
+ class Detectors {
7
+ _detectors;
8
+ constructor(...detectors) {
9
+ this._detectors = detectors;
10
+ }
11
+ add(detector) {
12
+ this._detectors.push(detector);
13
+ }
14
+ remove(detector) {
15
+ this._detectors = this._detectors.filter((d) => d !== detector);
16
+ }
17
+ get listOfNames() {
18
+ return this._detectors.map((d) => d.name);
19
+ }
20
+ update() {
21
+ for (const detector of this._detectors) {
22
+ try {
23
+ detector.update();
24
+ }
25
+ catch (err) {
26
+ logger.warn(`Error updating detector ${detector?.constructor?.name}`, err);
27
+ }
28
+ }
29
+ }
30
+ clear() {
31
+ this._detectors = [];
32
+ }
33
+ }
34
+ exports.Detectors = Detectors;
package/lib/index.d.ts CHANGED
@@ -1,27 +1,29 @@
1
- export type { ObserverConfig, ObserverEvents } from './Observer';
1
+ export type { ObserverEvents } from './Observer';
2
2
  export { Observer } from './Observer';
3
- export * as SampleSchema from '@observertc/sample-schemas-js';
4
- export * as ReportSchema from '@observertc/report-schemas-js';
5
- export type { LogLevel, Logger } from './common/logger';
6
- export type { Samples, ClientSample, SfuSample, ExtensionStat, PeerConnectionTransport, IceCandidatePair, MediaSourceStat, MediaCodecStats, InboundAudioTrack, InboundVideoTrack, OutboundAudioTrack, OutboundVideoTrack, IceLocalCandidate, IceRemoteCandidate, CustomCallEvent, SfuTransport, SfuInboundRtpPad, SfuOutboundRtpPad, SfuSctpChannel, SfuExtensionStats, DataChannel, MediaDevice, } from '@observertc/sample-schemas-js';
7
- export type { CallEventReport, CallMetaReport, ClientDataChannelReport, ClientExtensionReport, IceCandidatePairReport, InboundAudioTrackReport, InboundVideoTrackReport, ObserverEventReport, OutboundAudioTrackReport, OutboundVideoTrackReport, PeerConnectionTransportReport, SfuEventReport, SfuExtensionReport, SfuInboundRtpPadReport, SfuMetaReport, SfuOutboundRtpPadReport, SfuSctpStreamReport, SFUTransportReport, } from '@observertc/report-schemas-js';
8
- export type { ClientIssueMonitorConfig, ClientIssueMonitorEmittedIssueEvent, ClientIssueMonitor } from './monitors/ClientIssueMonitor';
9
- export type { CalculatedScore } from './common/CalculatedScore';
10
- export type { ObservedCall, ObservedCallModel } from './ObservedCall';
11
- export type { ObservedClient, ObservedClientModel } from './ObservedClient';
12
- export type { ObservedPeerConnection, ObservedPeerConnectionModel, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
13
- export type { ObservedInboundAudioTrack, ObservedInboundAudioTrackModel, ObservedInboundAudioTrackEvents } from './ObservedInboundAudioTrack';
14
- export type { ObservedOutboundAudioTrack, ObservedOutboundAudioTrackModel, ObservedOutboundAudioTrackEvents } from './ObservedOutboundAudioTrack';
15
- export type { ObservedInboundVideoTrack, ObservedInboundVideoTrackModel, ObservedInboundVideoTrackEvents } from './ObservedInboundVideoTrack';
16
- export type { ObservedOutboundVideoTrack, ObservedOutboundVideoTrackModel, ObservedOutboundVideoTrackEvents } from './ObservedOutboundVideoTrack';
17
- export type { CallSummary, ClientSummary, ClientIssue } from './monitors/CallSummary';
18
- export type { ObserverSinkContext } from './common/types';
19
- export type { SfuServerMonitorMetricsRecord } from './monitors/SfuServerMonitor';
20
- export type { TurnUsageMonitorEvents, TurnUsageMonitor, TurnStats, TurnUsage } from './monitors/TurnUsageMonitor';
21
- export { CallEventType, CallEventReportType, MediaTrackAddedAttachment, IceConnectionStateChangedAttachment, IceGatheringStateChangedAttachment, PeerConnectionStateChangedAttachment, } from './common/CallEventType';
22
- export { CallMetaType, CallMetaReportType, CallMetaReportPayloads } from './common/CallMetaReports';
23
- import { Observer, ObserverConfig } from './Observer';
24
- export declare function createObserver(config?: Partial<ObserverConfig>): Observer;
25
- import { LogLevel, Logger } from './common/logger';
26
- export declare function setupLogs(logLevel: LogLevel, logger: Logger): void;
3
+ export { ObservedCall } from './ObservedCall';
4
+ export { ObservedInboundTrack } from './ObservedInboundTrack';
5
+ export { ObservedOutboundTrack } from './ObservedOutboundTrack';
6
+ export { ObservedClient } from './ObservedClient';
7
+ export { ObservedPeerConnection } from './ObservedPeerConnection';
8
+ export { ObservedMediaSource } from './ObservedMediaSource';
9
+ export { ObservedMediaPlayout } from './ObservedMediaPlayout';
10
+ export { ObservedCodec } from './ObservedCodec';
11
+ export { ObservedCertificate } from './ObservedCertificate';
12
+ export { ObservedDataChannel } from './ObservedDataChannel';
13
+ export { ObservedInboundRtp } from './ObservedInboundRtp';
14
+ export { ObservedOutboundRtp } from './ObservedOutboundRtp';
15
+ export { ObservedRemoteInboundRtp } from './ObservedRemoteInboundRtp';
16
+ export { ObservedRemoteOutboundRtp } from './ObservedRemoteOutboundRtp';
17
+ export { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
18
+ export { ObservedIceCandidate } from './ObservedIceCandidate';
19
+ export { ObservedIceTransport } from './ObservedIceTransport';
20
+ export { ObservedPeerConnectionTransport } from './ObservedPeerConnectionTransport';
21
+ export { ClientEventTypes } from './schema/ClientEventTypes';
22
+ export { ClientMetaTypes } from './schema/ClientMetaTypes';
23
+ export { ClientSample, ClientIssue, ClientEvent, ClientMetaData } from './schema/ClientSample';
24
+ export { ScoreCalculator } from './scores/ScoreCalculator';
25
+ export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
26
+ export { ObserverEventMonitor } from './ObserverEventMonitor';
27
+ export { Middleware } from './common/Middleware';
28
+ export { TrackReport, ClientReport, } from './Reports';
27
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACX,wBAAwB,EACxB,mCAAmC,EACnC,kBAAkB,EAClB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACX,eAAe,EACf,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,YAAY,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9I,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAClJ,YAAY,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9I,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAClJ,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtF,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAClH,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,mCAAmC,EACnC,kCAAkC,EAClC,oCAAoC,GACpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEpG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAE9D;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA8B,MAAM,iBAAiB,CAAC;AAC/E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAG3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACN,WAAW,EACX,YAAY,GACZ,MAAM,WAAW,CAAC"}
package/lib/index.js CHANGED
@@ -1,45 +1,49 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.setupLogs = exports.createObserver = exports.CallMetaType = exports.CallEventType = exports.ReportSchema = exports.SampleSchema = exports.Observer = void 0;
3
+ exports.ObserverEventMonitor = exports.ObservedClientEventMonitor = exports.ClientMetaTypes = exports.ClientEventTypes = exports.ObservedPeerConnectionTransport = exports.ObservedIceTransport = exports.ObservedIceCandidate = exports.ObservedIceCandidatePair = exports.ObservedRemoteOutboundRtp = exports.ObservedRemoteInboundRtp = exports.ObservedOutboundRtp = exports.ObservedInboundRtp = exports.ObservedDataChannel = exports.ObservedCertificate = exports.ObservedCodec = exports.ObservedMediaPlayout = exports.ObservedMediaSource = exports.ObservedPeerConnection = exports.ObservedClient = exports.ObservedOutboundTrack = exports.ObservedInboundTrack = exports.ObservedCall = exports.Observer = void 0;
27
4
  var Observer_1 = require("./Observer");
28
5
  Object.defineProperty(exports, "Observer", { enumerable: true, get: function () { return Observer_1.Observer; } });
29
- exports.SampleSchema = __importStar(require("@observertc/sample-schemas-js"));
30
- exports.ReportSchema = __importStar(require("@observertc/report-schemas-js"));
31
- var CallEventType_1 = require("./common/CallEventType");
32
- Object.defineProperty(exports, "CallEventType", { enumerable: true, get: function () { return CallEventType_1.CallEventType; } });
33
- var CallMetaReports_1 = require("./common/CallMetaReports");
34
- Object.defineProperty(exports, "CallMetaType", { enumerable: true, get: function () { return CallMetaReports_1.CallMetaType; } });
35
- const Observer_2 = require("./Observer");
36
- function createObserver(config) {
37
- return Observer_2.Observer.create(config !== null && config !== void 0 ? config : {});
38
- }
39
- exports.createObserver = createObserver;
40
- const logger_1 = require("./common/logger");
41
- function setupLogs(logLevel, logger) {
42
- (0, logger_1.setLogLevel)(logLevel);
43
- (0, logger_1.forwardLogsTo)(logger);
44
- }
45
- exports.setupLogs = setupLogs;
6
+ var ObservedCall_1 = require("./ObservedCall");
7
+ Object.defineProperty(exports, "ObservedCall", { enumerable: true, get: function () { return ObservedCall_1.ObservedCall; } });
8
+ var ObservedInboundTrack_1 = require("./ObservedInboundTrack");
9
+ Object.defineProperty(exports, "ObservedInboundTrack", { enumerable: true, get: function () { return ObservedInboundTrack_1.ObservedInboundTrack; } });
10
+ var ObservedOutboundTrack_1 = require("./ObservedOutboundTrack");
11
+ Object.defineProperty(exports, "ObservedOutboundTrack", { enumerable: true, get: function () { return ObservedOutboundTrack_1.ObservedOutboundTrack; } });
12
+ var ObservedClient_1 = require("./ObservedClient");
13
+ Object.defineProperty(exports, "ObservedClient", { enumerable: true, get: function () { return ObservedClient_1.ObservedClient; } });
14
+ var ObservedPeerConnection_1 = require("./ObservedPeerConnection");
15
+ Object.defineProperty(exports, "ObservedPeerConnection", { enumerable: true, get: function () { return ObservedPeerConnection_1.ObservedPeerConnection; } });
16
+ var ObservedMediaSource_1 = require("./ObservedMediaSource");
17
+ Object.defineProperty(exports, "ObservedMediaSource", { enumerable: true, get: function () { return ObservedMediaSource_1.ObservedMediaSource; } });
18
+ var ObservedMediaPlayout_1 = require("./ObservedMediaPlayout");
19
+ Object.defineProperty(exports, "ObservedMediaPlayout", { enumerable: true, get: function () { return ObservedMediaPlayout_1.ObservedMediaPlayout; } });
20
+ var ObservedCodec_1 = require("./ObservedCodec");
21
+ Object.defineProperty(exports, "ObservedCodec", { enumerable: true, get: function () { return ObservedCodec_1.ObservedCodec; } });
22
+ var ObservedCertificate_1 = require("./ObservedCertificate");
23
+ Object.defineProperty(exports, "ObservedCertificate", { enumerable: true, get: function () { return ObservedCertificate_1.ObservedCertificate; } });
24
+ var ObservedDataChannel_1 = require("./ObservedDataChannel");
25
+ Object.defineProperty(exports, "ObservedDataChannel", { enumerable: true, get: function () { return ObservedDataChannel_1.ObservedDataChannel; } });
26
+ var ObservedInboundRtp_1 = require("./ObservedInboundRtp");
27
+ Object.defineProperty(exports, "ObservedInboundRtp", { enumerable: true, get: function () { return ObservedInboundRtp_1.ObservedInboundRtp; } });
28
+ var ObservedOutboundRtp_1 = require("./ObservedOutboundRtp");
29
+ Object.defineProperty(exports, "ObservedOutboundRtp", { enumerable: true, get: function () { return ObservedOutboundRtp_1.ObservedOutboundRtp; } });
30
+ var ObservedRemoteInboundRtp_1 = require("./ObservedRemoteInboundRtp");
31
+ Object.defineProperty(exports, "ObservedRemoteInboundRtp", { enumerable: true, get: function () { return ObservedRemoteInboundRtp_1.ObservedRemoteInboundRtp; } });
32
+ var ObservedRemoteOutboundRtp_1 = require("./ObservedRemoteOutboundRtp");
33
+ Object.defineProperty(exports, "ObservedRemoteOutboundRtp", { enumerable: true, get: function () { return ObservedRemoteOutboundRtp_1.ObservedRemoteOutboundRtp; } });
34
+ var ObservedIceCandidatePair_1 = require("./ObservedIceCandidatePair");
35
+ Object.defineProperty(exports, "ObservedIceCandidatePair", { enumerable: true, get: function () { return ObservedIceCandidatePair_1.ObservedIceCandidatePair; } });
36
+ var ObservedIceCandidate_1 = require("./ObservedIceCandidate");
37
+ Object.defineProperty(exports, "ObservedIceCandidate", { enumerable: true, get: function () { return ObservedIceCandidate_1.ObservedIceCandidate; } });
38
+ var ObservedIceTransport_1 = require("./ObservedIceTransport");
39
+ Object.defineProperty(exports, "ObservedIceTransport", { enumerable: true, get: function () { return ObservedIceTransport_1.ObservedIceTransport; } });
40
+ var ObservedPeerConnectionTransport_1 = require("./ObservedPeerConnectionTransport");
41
+ Object.defineProperty(exports, "ObservedPeerConnectionTransport", { enumerable: true, get: function () { return ObservedPeerConnectionTransport_1.ObservedPeerConnectionTransport; } });
42
+ var ClientEventTypes_1 = require("./schema/ClientEventTypes");
43
+ Object.defineProperty(exports, "ClientEventTypes", { enumerable: true, get: function () { return ClientEventTypes_1.ClientEventTypes; } });
44
+ var ClientMetaTypes_1 = require("./schema/ClientMetaTypes");
45
+ Object.defineProperty(exports, "ClientMetaTypes", { enumerable: true, get: function () { return ClientMetaTypes_1.ClientMetaTypes; } });
46
+ var ObservedClientEventMonitor_1 = require("./ObservedClientEventMonitor");
47
+ Object.defineProperty(exports, "ObservedClientEventMonitor", { enumerable: true, get: function () { return ObservedClientEventMonitor_1.ObservedClientEventMonitor; } });
48
+ var ObserverEventMonitor_1 = require("./ObserverEventMonitor");
49
+ Object.defineProperty(exports, "ObserverEventMonitor", { enumerable: true, get: function () { return ObserverEventMonitor_1.ObserverEventMonitor; } });
@@ -0,0 +1,10 @@
1
+ export type Item = {
2
+ callId: string;
3
+ appData?: Record<string, unknown>;
4
+ region: string;
5
+ publishers: string[];
6
+ subscribers: string[];
7
+ };
8
+ export declare class ObservedMediaRouter {
9
+ }
10
+ //# sourceMappingURL=ObservedMediaRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservedMediaRouter.d.ts","sourceRoot":"","sources":["../../src/mediasoup/ObservedMediaRouter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB,CAAA;AACD,qBAAa,mBAAmB;CAE/B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservedMediaRouter = void 0;
4
+ class ObservedMediaRouter {
5
+ }
6
+ exports.ObservedMediaRouter = ObservedMediaRouter;