@observertc/observer-js 0.42.9 → 1.0.1-57a1811.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 (247) hide show
  1. package/.prettierrc +6 -6
  2. package/README.md +0 -104
  3. package/lib/ObservedCall.d.ts +38 -41
  4. package/lib/ObservedCall.d.ts.map +1 -1
  5. package/lib/ObservedCall.js +97 -109
  6. package/lib/ObservedCertificate.d.ts +19 -0
  7. package/lib/ObservedCertificate.d.ts.map +1 -0
  8. package/lib/ObservedCertificate.js +38 -0
  9. package/lib/ObservedClient.d.ts +49 -127
  10. package/lib/ObservedClient.d.ts.map +1 -1
  11. package/lib/ObservedClient.js +201 -750
  12. package/lib/ObservedCodec.d.ts +22 -0
  13. package/lib/ObservedCodec.d.ts.map +1 -0
  14. package/lib/ObservedCodec.js +45 -0
  15. package/lib/ObservedDataChannel.d.ts +23 -69
  16. package/lib/ObservedDataChannel.d.ts.map +1 -1
  17. package/lib/ObservedDataChannel.js +67 -109
  18. package/lib/ObservedIceCandidate.d.ts +29 -0
  19. package/lib/ObservedIceCandidate.d.ts.map +1 -0
  20. package/lib/ObservedIceCandidate.js +59 -0
  21. package/lib/ObservedIceCandidatePair.d.ts +44 -0
  22. package/lib/ObservedIceCandidatePair.d.ts.map +1 -0
  23. package/lib/ObservedIceCandidatePair.js +111 -0
  24. package/lib/ObservedIceTransport.d.ts +32 -0
  25. package/lib/ObservedIceTransport.d.ts.map +1 -0
  26. package/lib/ObservedIceTransport.js +65 -0
  27. package/lib/ObservedInboundRtp.d.ts +92 -0
  28. package/lib/ObservedInboundRtp.d.ts.map +1 -0
  29. package/lib/ObservedInboundRtp.js +193 -0
  30. package/lib/ObservedInboundTrack.d.ts +29 -0
  31. package/lib/ObservedInboundTrack.d.ts.map +1 -0
  32. package/lib/ObservedInboundTrack.js +57 -0
  33. package/lib/ObservedMediaPlayout.d.ts +22 -0
  34. package/lib/ObservedMediaPlayout.d.ts.map +1 -0
  35. package/lib/ObservedMediaPlayout.js +42 -0
  36. package/lib/ObservedMediaSource.d.ts +28 -0
  37. package/lib/ObservedMediaSource.d.ts.map +1 -0
  38. package/lib/ObservedMediaSource.js +55 -0
  39. package/lib/ObservedOutboundRtp.d.ts +62 -0
  40. package/lib/ObservedOutboundRtp.d.ts.map +1 -0
  41. package/lib/ObservedOutboundRtp.js +144 -0
  42. package/lib/ObservedOutboundTrack.d.ts +29 -0
  43. package/lib/ObservedOutboundTrack.d.ts.map +1 -0
  44. package/lib/ObservedOutboundTrack.js +57 -0
  45. package/lib/ObservedPeerConnection.d.ts +128 -78
  46. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  47. package/lib/ObservedPeerConnection.js +624 -357
  48. package/lib/ObservedPeerConnectionTransport.d.ts +17 -0
  49. package/lib/ObservedPeerConnectionTransport.d.ts.map +1 -0
  50. package/lib/ObservedPeerConnectionTransport.js +34 -0
  51. package/lib/ObservedRemoteInboundRtp.d.ts +30 -0
  52. package/lib/ObservedRemoteInboundRtp.d.ts.map +1 -0
  53. package/lib/ObservedRemoteInboundRtp.js +60 -0
  54. package/lib/ObservedRemoteOutboundRtp.d.ts +30 -0
  55. package/lib/ObservedRemoteOutboundRtp.d.ts.map +1 -0
  56. package/lib/ObservedRemoteOutboundRtp.js +60 -0
  57. package/lib/ObservedTURN.d.ts +31 -0
  58. package/lib/ObservedTURN.d.ts.map +1 -0
  59. package/lib/ObservedTURN.js +58 -0
  60. package/lib/ObservedTurnServer.d.ts +25 -0
  61. package/lib/ObservedTurnServer.d.ts.map +1 -0
  62. package/lib/ObservedTurnServer.js +59 -0
  63. package/lib/Observer.d.ts +31 -51
  64. package/lib/Observer.d.ts.map +1 -1
  65. package/lib/Observer.js +75 -229
  66. package/lib/common/Middleware.d.ts +10 -1
  67. package/lib/common/Middleware.d.ts.map +1 -1
  68. package/lib/common/Middleware.js +55 -36
  69. package/lib/common/logger.d.ts +8 -4
  70. package/lib/common/logger.d.ts.map +1 -1
  71. package/lib/common/logger.js +44 -68
  72. package/lib/common/types.d.ts +0 -21
  73. package/lib/common/types.d.ts.map +1 -1
  74. package/lib/common/types.js +1 -0
  75. package/lib/common/utils.d.ts +1 -0
  76. package/lib/common/utils.d.ts.map +1 -1
  77. package/lib/common/utils.js +13 -1
  78. package/lib/detectors/Detector.d.ts +5 -0
  79. package/lib/detectors/Detector.d.ts.map +1 -0
  80. package/lib/detectors/Detector.js +3 -0
  81. package/lib/detectors/Detectors.d.ts +11 -0
  82. package/lib/detectors/Detectors.d.ts.map +1 -0
  83. package/lib/detectors/Detectors.js +34 -0
  84. package/lib/index.d.ts +24 -25
  85. package/lib/index.d.ts.map +1 -1
  86. package/lib/index.js +41 -41
  87. package/lib/monitors/TurnUsageMonitor.d.ts +0 -52
  88. package/lib/monitors/TurnUsageMonitor.d.ts.map +1 -1
  89. package/lib/monitors/TurnUsageMonitor.js +145 -120
  90. package/lib/schema/ClientEventTypes.d.ts +33 -0
  91. package/lib/schema/ClientEventTypes.d.ts.map +1 -0
  92. package/lib/schema/ClientEventTypes.js +38 -0
  93. package/lib/schema/ClientMetaTypes.d.ts +34 -0
  94. package/lib/schema/ClientMetaTypes.d.ts.map +1 -0
  95. package/lib/schema/ClientMetaTypes.js +16 -0
  96. package/lib/schema/ClientSample.d.ts +1333 -0
  97. package/lib/schema/ClientSample.d.ts.map +1 -0
  98. package/lib/schema/ClientSample.js +4 -0
  99. package/lib/scores/CalculatedScore.d.ts +6 -0
  100. package/lib/scores/CalculatedScore.d.ts.map +1 -0
  101. package/lib/scores/DefaultCallScoreCalculator.d.ts +7 -0
  102. package/lib/scores/DefaultCallScoreCalculator.d.ts.map +1 -0
  103. package/lib/scores/DefaultCallScoreCalculator.js +21 -0
  104. package/lib/scores/ScoreCalculator.d.ts +4 -0
  105. package/lib/scores/ScoreCalculator.d.ts.map +1 -0
  106. package/lib/scores/ScoreCalculator.js +2 -0
  107. package/lib/utils/CallUpdater.d.ts +5 -0
  108. package/lib/utils/CallUpdater.d.ts.map +1 -0
  109. package/lib/utils/CallUpdater.js +2 -0
  110. package/lib/utils/OnAllClientCallUpdater.d.ts +16 -0
  111. package/lib/utils/OnAllClientCallUpdater.d.ts.map +1 -0
  112. package/lib/utils/OnAllClientCallUpdater.js +58 -0
  113. package/lib/utils/RemoteTrackResolver.d.ts +7 -0
  114. package/lib/utils/RemoteTrackResolver.d.ts.map +1 -0
  115. package/lib/utils/RemoteTrackResolver.js +2 -0
  116. package/lib/utils/onAnyClientCallUpdater.d.ts +14 -0
  117. package/lib/utils/onAnyClientCallUpdater.d.ts.map +1 -0
  118. package/lib/utils/onAnyClientCallUpdater.js +51 -0
  119. package/package.json +4 -4
  120. package/src/ObservedCall.ts +116 -166
  121. package/src/ObservedCertificate.ts +43 -0
  122. package/src/ObservedClient.ts +213 -1060
  123. package/src/ObservedCodec.ts +49 -0
  124. package/src/ObservedDataChannel.ts +68 -181
  125. package/src/ObservedIceCandidate.ts +64 -0
  126. package/src/ObservedIceCandidatePair.ts +118 -0
  127. package/src/ObservedIceTransport.ts +70 -0
  128. package/src/ObservedInboundRtp.ts +205 -0
  129. package/src/ObservedInboundTrack.ts +70 -0
  130. package/src/ObservedMediaPlayout.ts +49 -0
  131. package/src/ObservedMediaSource.ts +60 -0
  132. package/src/ObservedOutboundRtp.ts +156 -0
  133. package/src/ObservedOutboundTrack.ts +69 -0
  134. package/src/ObservedPeerConnection.ts +827 -405
  135. package/src/ObservedPeerConnectionTransport.ts +38 -0
  136. package/src/ObservedRemoteInboundRtp.ts +64 -0
  137. package/src/ObservedRemoteOutboundRtp.ts +65 -0
  138. package/src/ObservedTURN.ts +86 -0
  139. package/src/ObservedTurnServer.ts +72 -0
  140. package/src/Observer.ts +91 -302
  141. package/src/common/Middleware.ts +70 -42
  142. package/src/common/logger.ts +60 -69
  143. package/src/common/types.ts +0 -42
  144. package/src/common/utils.ts +12 -0
  145. package/src/detectors/Detector.ts +6 -0
  146. package/src/detectors/Detectors.ts +38 -0
  147. package/src/index.ts +24 -90
  148. package/src/monitors/TurnUsageMonitor.ts +164 -164
  149. package/src/schema/ClientEventTypes.ts +36 -0
  150. package/src/schema/ClientMetaTypes.ts +41 -0
  151. package/src/schema/ClientSample.ts +1682 -0
  152. package/src/scores/CalculatedScore.ts +6 -0
  153. package/src/scores/DefaultCallScoreCalculator.ts +23 -0
  154. package/src/scores/ScoreCalculator.ts +3 -0
  155. package/src/utils/CallUpdater.ts +5 -0
  156. package/src/utils/OnAllClientCallUpdater.ts +68 -0
  157. package/src/utils/RemoteTrackResolver.ts +12 -0
  158. package/src/utils/onAnyClientCallUpdater.ts +59 -0
  159. package/tsconfig.json +3 -3
  160. package/lib/ObservedICE.d.ts +0 -64
  161. package/lib/ObservedICE.d.ts.map +0 -1
  162. package/lib/ObservedICE.js +0 -141
  163. package/lib/ObservedInboundAudioTrack.d.ts +0 -96
  164. package/lib/ObservedInboundAudioTrack.d.ts.map +0 -1
  165. package/lib/ObservedInboundAudioTrack.js +0 -217
  166. package/lib/ObservedInboundVideoTrack.d.ts +0 -101
  167. package/lib/ObservedInboundVideoTrack.d.ts.map +0 -1
  168. package/lib/ObservedInboundVideoTrack.js +0 -232
  169. package/lib/ObservedOutboundAudioTrack.d.ts +0 -87
  170. package/lib/ObservedOutboundAudioTrack.d.ts.map +0 -1
  171. package/lib/ObservedOutboundAudioTrack.js +0 -186
  172. package/lib/ObservedOutboundVideoTrack.d.ts +0 -91
  173. package/lib/ObservedOutboundVideoTrack.d.ts.map +0 -1
  174. package/lib/ObservedOutboundVideoTrack.js +0 -193
  175. package/lib/ObservedSfu.d.ts +0 -59
  176. package/lib/ObservedSfu.d.ts.map +0 -1
  177. package/lib/ObservedSfu.js +0 -157
  178. package/lib/ObservedSfuInboundRtpPad.d.ts +0 -42
  179. package/lib/ObservedSfuInboundRtpPad.d.ts.map +0 -1
  180. package/lib/ObservedSfuInboundRtpPad.js +0 -71
  181. package/lib/ObservedSfuOutboundRtpPad.d.ts +0 -42
  182. package/lib/ObservedSfuOutboundRtpPad.d.ts.map +0 -1
  183. package/lib/ObservedSfuOutboundRtpPad.js +0 -72
  184. package/lib/ObservedSfuSctpChannel.d.ts +0 -42
  185. package/lib/ObservedSfuSctpChannel.d.ts.map +0 -1
  186. package/lib/ObservedSfuSctpChannel.js +0 -57
  187. package/lib/ObservedSfuTransport.d.ts +0 -58
  188. package/lib/ObservedSfuTransport.d.ts.map +0 -1
  189. package/lib/ObservedSfuTransport.js +0 -120
  190. package/lib/RemoteTrackAssigner.d.ts +0 -14
  191. package/lib/RemoteTrackAssigner.d.ts.map +0 -1
  192. package/lib/RemoteTrackAssigner.js +0 -52
  193. package/lib/ReportsCollector.d.ts +0 -109
  194. package/lib/ReportsCollector.d.ts.map +0 -1
  195. package/lib/ReportsCollector.js +0 -207
  196. package/lib/common/CalculatedScore.d.ts +0 -80
  197. package/lib/common/CalculatedScore.d.ts.map +0 -1
  198. package/lib/common/CalculatedScore.js +0 -162
  199. package/lib/common/CallEventType.d.ts +0 -63
  200. package/lib/common/CallEventType.d.ts.map +0 -1
  201. package/lib/common/CallEventType.js +0 -39
  202. package/lib/common/CallMetaReports.d.ts +0 -42
  203. package/lib/common/CallMetaReports.d.ts.map +0 -1
  204. package/lib/common/CallMetaReports.js +0 -36
  205. package/lib/common/QualityScoreUtils.d.ts +0 -1
  206. package/lib/common/QualityScoreUtils.d.ts.map +0 -1
  207. package/lib/common/QualityScoreUtils.js +0 -1
  208. package/lib/common/TypedEventEmitter.d.ts +0 -22
  209. package/lib/common/TypedEventEmitter.d.ts.map +0 -1
  210. package/lib/common/TypedEventEmitter.js +0 -11
  211. package/lib/common/callEventReports.d.ts +0 -10
  212. package/lib/common/callEventReports.d.ts.map +0 -1
  213. package/lib/common/callEventReports.js +0 -112
  214. package/lib/monitors/CallSummary.d.ts +0 -37
  215. package/lib/monitors/CallSummary.d.ts.map +0 -1
  216. package/lib/monitors/CallSummaryMonitor.d.ts +0 -32
  217. package/lib/monitors/CallSummaryMonitor.d.ts.map +0 -1
  218. package/lib/monitors/CallSummaryMonitor.js +0 -152
  219. package/lib/monitors/ClientIssueMonitor.d.ts +0 -32
  220. package/lib/monitors/ClientIssueMonitor.d.ts.map +0 -1
  221. package/lib/monitors/ClientIssueMonitor.js +0 -49
  222. package/lib/monitors/SfuServerMonitor.d.ts +0 -79
  223. package/lib/monitors/SfuServerMonitor.d.ts.map +0 -1
  224. package/lib/monitors/SfuServerMonitor.js +0 -198
  225. package/src/ObservedICE.ts +0 -237
  226. package/src/ObservedInboundAudioTrack.ts +0 -344
  227. package/src/ObservedInboundVideoTrack.ts +0 -361
  228. package/src/ObservedOutboundAudioTrack.ts +0 -307
  229. package/src/ObservedOutboundVideoTrack.ts +0 -319
  230. package/src/ObservedSfu.ts +0 -231
  231. package/src/ObservedSfuInboundRtpPad.ts +0 -106
  232. package/src/ObservedSfuOutboundRtpPad.ts +0 -107
  233. package/src/ObservedSfuSctpChannel.ts +0 -103
  234. package/src/ObservedSfuTransport.ts +0 -185
  235. package/src/RemoteTrackAssigner.ts +0 -68
  236. package/src/ReportsCollector.ts +0 -336
  237. package/src/common/CalculatedScore.ts +0 -188
  238. package/src/common/CallEventType.ts +0 -69
  239. package/src/common/CallMetaReports.ts +0 -82
  240. package/src/common/QualityScoreUtils.ts +0 -0
  241. package/src/common/TypedEventEmitter.ts +0 -32
  242. package/src/common/callEventReports.ts +0 -178
  243. package/src/monitors/CallSummary.ts +0 -38
  244. package/src/monitors/CallSummaryMonitor.ts +0 -192
  245. package/src/monitors/ClientIssueMonitor.ts +0 -88
  246. package/src/monitors/SfuServerMonitor.ts +0 -285
  247. /package/lib/{monitors/CallSummary.js → scores/CalculatedScore.js} +0 -0
@@ -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,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAc/C;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.isValidUuid = exports.asyncIteratorConverter = exports.iteratorConverter = void 0;
4
4
  function iteratorConverter(generator) {
5
5
  return {
6
6
  [Symbol.iterator]() {
@@ -41,3 +41,15 @@ function getMedian(arr) {
41
41
  return (sortedArr[mid - 1] + sortedArr[mid]) / 2;
42
42
  }
43
43
  exports.getMedian = getMedian;
44
+ function parseJsonAs(json) {
45
+ if (!json) {
46
+ return undefined;
47
+ }
48
+ try {
49
+ return JSON.parse(json);
50
+ }
51
+ catch (error) {
52
+ return undefined;
53
+ }
54
+ }
55
+ 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,26 @@
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 } from './schema/ClientSample';
24
+ export { ScoreCalculator } from './scores/ScoreCalculator';
25
+ export { Middleware } from './common/Middleware';
27
26
  //# 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,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -1,45 +1,45 @@
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.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; } });
@@ -1,53 +1 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { ObservedPeerConnection } from '../ObservedPeerConnection';
4
- import { ObservedClient } from '../ObservedClient';
5
- export type TurnUsageMonitorEvents = {
6
- close: [];
7
- 'newturnip': [string];
8
- update: [TurnUsage];
9
- addpeerconnection: [ObservedPeerConnection];
10
- removepeerconnection: [ObservedPeerConnection];
11
- };
12
- export type TurnUsage = {
13
- turnIp: string;
14
- totalBytesSent: number;
15
- totalBytesReceived: number;
16
- totalPacketsSent: number;
17
- totalPacketsReceived: number;
18
- };
19
- export type TurnStats = {
20
- turnIp: string;
21
- totalBytesSent: number;
22
- totalBytesReceived: number;
23
- totalPacketsSent: number;
24
- totalPacketsReceived: number;
25
- deltaBytesSent: number;
26
- deltaBytesReceived: number;
27
- timestamp: number;
28
- outboundBitrate: number;
29
- inboundBitrate: number;
30
- };
31
- export declare interface TurnUsageMonitor {
32
- on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
33
- off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
34
- once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
35
- emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
36
- }
37
- export declare class TurnUsageMonitor extends EventEmitter {
38
- private readonly _connections;
39
- private readonly _turnUsage;
40
- private readonly _stats;
41
- private _closed;
42
- constructor();
43
- get stats(): TurnStats[];
44
- addPeerConnection(peerConnection: ObservedPeerConnection): void;
45
- removePeerConnection(peerConnection: ObservedPeerConnection): void;
46
- get turnIps(): string[];
47
- get peerConnections(): ObservedPeerConnection[];
48
- getUsage(turnIp: string): TurnUsage | undefined;
49
- get clients(): ReadonlyMap<string, ObservedClient>;
50
- get closed(): boolean;
51
- close(): void;
52
- }
53
1
  //# sourceMappingURL=TurnUsageMonitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TurnUsageMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/TurnUsageMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,EAAE,CAAC;IACV,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;IACpB,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC5C,oBAAoB,EAAE,CAAC,sBAAsB,CAAC,CAAC;CAC/C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC7B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAA;AAQD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACxC,EAAE,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACnH,GAAG,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACpH,IAAI,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACrH,IAAI,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACpG;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,OAAO,CAAC,OAAO,CAAS;;IAMxB,IAAW,KAAK,IAAI,SAAS,EAAE,CAiC9B;IAEM,iBAAiB,CAAC,cAAc,EAAE,sBAAsB;IA4CxD,oBAAoB,CAAC,cAAc,EAAE,sBAAsB;IAelE,IAAW,OAAO,aAEjB;IAED,IAAW,eAAe,6BAEzB;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B,IAAW,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAUxD;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;CAMZ"}
1
+ {"version":3,"file":"TurnUsageMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/TurnUsageMonitor.ts"],"names":[],"mappings":""}
@@ -1,121 +1,146 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TurnUsageMonitor = void 0;
4
- const events_1 = require("events");
5
- class TurnUsageMonitor extends events_1.EventEmitter {
6
- constructor() {
7
- super();
8
- this._connections = new Map();
9
- this._turnUsage = new Map();
10
- this._stats = new Map();
11
- this._closed = false;
12
- this.setMaxListeners(Infinity);
13
- }
14
- get stats() {
15
- var _a;
16
- const result = [];
17
- for (const [turnIp, usage] of this._turnUsage) {
18
- const stats = (_a = this._stats.get(turnIp)) !== null && _a !== void 0 ? _a : {
19
- turnIp,
20
- totalBytesSent: 0,
21
- totalBytesReceived: 0,
22
- totalPacketsSent: 0,
23
- totalPacketsReceived: 0,
24
- deltaBytesSent: 0,
25
- deltaBytesReceived: 0,
26
- timestamp: Date.now(),
27
- outboundBitrate: 0,
28
- inboundBitrate: 0,
29
- };
30
- stats.deltaBytesSent = usage.totalBytesSent - stats.totalBytesSent;
31
- stats.deltaBytesReceived = usage.totalBytesReceived - stats.totalBytesReceived;
32
- stats.timestamp = Date.now();
33
- stats.outboundBitrate = (stats.deltaBytesSent * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
34
- stats.inboundBitrate = (stats.deltaBytesReceived * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
35
- stats.totalBytesSent = usage.totalBytesSent;
36
- stats.totalBytesReceived = usage.totalBytesReceived;
37
- stats.totalPacketsSent = usage.totalPacketsSent;
38
- stats.totalPacketsReceived = usage.totalPacketsReceived;
39
- this._stats.set(turnIp, stats);
40
- result.push(stats);
41
- }
42
- return result;
43
- }
44
- addPeerConnection(peerConnection) {
45
- if (this.closed)
46
- return;
47
- if (this._connections.has(peerConnection.peerConnectionId))
48
- return;
49
- const ice = peerConnection.ICE;
50
- const onUpdate = () => {
51
- var _a;
52
- const turnIp = (_a = ice === null || ice === void 0 ? void 0 : ice.selectedRemoteCandidate) === null || _a === void 0 ? void 0 : _a.address;
53
- if (!peerConnection.usingTURN || !turnIp)
54
- return;
55
- let usage = this._turnUsage.get(turnIp);
56
- if (!usage) {
57
- usage = {
58
- turnIp,
59
- totalBytesSent: 0,
60
- totalBytesReceived: 0,
61
- totalPacketsSent: 0,
62
- totalPacketsReceived: 0,
63
- };
64
- this._turnUsage.set(turnIp, usage);
65
- this.emit('newturnip', turnIp);
66
- }
67
- usage.totalBytesSent += ice.deltaBytesSent;
68
- usage.totalBytesReceived += ice.deltaBytesReceived;
69
- usage.totalPacketsSent += ice.deltaPacketsSent;
70
- usage.totalPacketsReceived += ice.deltaPacketsReceived;
71
- this.emit('update', usage);
72
- };
73
- peerConnection.ICE.on('update', onUpdate);
74
- this._connections.set(peerConnection.peerConnectionId, {
75
- peerConnection,
76
- onUpdate
77
- });
78
- this.emit('addpeerconnection', peerConnection);
79
- }
80
- removePeerConnection(peerConnection) {
81
- var _a;
82
- if (this.closed)
83
- return;
84
- if (!this._connections.has(peerConnection.peerConnectionId))
85
- return;
86
- const { onUpdate } = (_a = this._connections.get(peerConnection.peerConnectionId)) !== null && _a !== void 0 ? _a : {};
87
- if (!onUpdate)
88
- return;
89
- peerConnection.ICE.off('update', onUpdate);
90
- this._connections.delete(peerConnection.peerConnectionId);
91
- this.emit('removepeerconnection', peerConnection);
92
- }
93
- get turnIps() {
94
- return Array.from(this._turnUsage.keys());
95
- }
96
- get peerConnections() {
97
- return Array.from(this._connections.values()).map(({ peerConnection }) => peerConnection);
98
- }
99
- getUsage(turnIp) {
100
- return this._turnUsage.get(turnIp);
101
- }
102
- get clients() {
103
- const result = new Map();
104
- for (const pc of this.peerConnections) {
105
- if (result.has(pc.clientId))
106
- continue;
107
- result.set(pc.clientId, pc.client);
108
- }
109
- return result;
110
- }
111
- get closed() {
112
- return this._closed;
113
- }
114
- close() {
115
- if (this._closed)
116
- return;
117
- this._closed = true;
118
- this.emit('close');
119
- }
120
- }
121
- exports.TurnUsageMonitor = TurnUsageMonitor;
2
+ // import { EventEmitter } from 'events';
3
+ // import { ObservedPeerConnection } from '../ObservedPeerConnection';
4
+ // import { ObservedICEEvents } from '../ObservedICE';
5
+ // import { ObservedClient } from '../ObservedClient';
6
+ // export type TurnUsageMonitorEvents = {
7
+ // close: [],
8
+ // 'newturnip': [string],
9
+ // update: [TurnUsage],
10
+ // addpeerconnection: [ObservedPeerConnection],
11
+ // removepeerconnection: [ObservedPeerConnection],
12
+ // }
13
+ // export type TurnUsage = {
14
+ // turnIp: string;
15
+ // totalBytesSent: number;
16
+ // totalBytesReceived: number;
17
+ // totalPacketsSent: number;
18
+ // totalPacketsReceived: number;
19
+ // }
20
+ // export type TurnStats = {
21
+ // turnIp: string;
22
+ // totalBytesSent: number;
23
+ // totalBytesReceived: number;
24
+ // totalPacketsSent: number;
25
+ // totalPacketsReceived: number;
26
+ // deltaBytesSent: number;
27
+ // deltaBytesReceived: number;
28
+ // timestamp: number;
29
+ // outboundBitrate: number;
30
+ // inboundBitrate: number;
31
+ // }
32
+ // type ObservedConnection = {
33
+ // peerConnection: ObservedPeerConnection,
34
+ // onUpdate: (...e: ObservedICEEvents['update']) => void;
35
+ // }
36
+ // export declare interface TurnUsageMonitor {
37
+ // on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
38
+ // off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
39
+ // once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
40
+ // emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
41
+ // }
42
+ // export class TurnUsageMonitor extends EventEmitter {
43
+ // private readonly _connections = new Map<string, ObservedConnection>();
44
+ // private readonly _turnUsage = new Map<string, TurnUsage>();
45
+ // private readonly _stats = new Map<string, TurnStats>();
46
+ // private _closed = false;
47
+ // public constructor() {
48
+ // super();
49
+ // this.setMaxListeners(Infinity);
50
+ // }
51
+ // public get stats(): TurnStats[] {
52
+ // const result: TurnStats[] = [];
53
+ // for (const [ turnIp, usage ] of this._turnUsage) {
54
+ // const stats = this._stats.get(turnIp) ?? {
55
+ // turnIp,
56
+ // totalBytesSent: 0,
57
+ // totalBytesReceived: 0,
58
+ // totalPacketsSent: 0,
59
+ // totalPacketsReceived: 0,
60
+ // deltaBytesSent: 0,
61
+ // deltaBytesReceived: 0,
62
+ // timestamp: Date.now(),
63
+ // outboundBitrate: 0,
64
+ // inboundBitrate: 0,
65
+ // };
66
+ // stats.deltaBytesSent = usage.totalBytesSent - stats.totalBytesSent;
67
+ // stats.deltaBytesReceived = usage.totalBytesReceived - stats.totalBytesReceived;
68
+ // stats.timestamp = Date.now();
69
+ // stats.outboundBitrate = (stats.deltaBytesSent * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
70
+ // stats.inboundBitrate = (stats.deltaBytesReceived * 8) / ((stats.timestamp - stats.timestamp) / 1000.0);
71
+ // stats.totalBytesSent = usage.totalBytesSent;
72
+ // stats.totalBytesReceived = usage.totalBytesReceived;
73
+ // stats.totalPacketsSent = usage.totalPacketsSent;
74
+ // stats.totalPacketsReceived = usage.totalPacketsReceived;
75
+ // this._stats.set(turnIp, stats);
76
+ // result.push(stats);
77
+ // }
78
+ // return result;
79
+ // }
80
+ // public addPeerConnection(peerConnection: ObservedPeerConnection) {
81
+ // if (this.closed) return;
82
+ // if (this._connections.has(peerConnection.peerConnectionId)) return;
83
+ // const ice = peerConnection.ICE;
84
+ // const onUpdate = () => {
85
+ // const turnIp = ice?.selectedRemoteCandidate?.address;
86
+ // if (!peerConnection.usingTURN || !turnIp) return;
87
+ // let usage = this._turnUsage.get(turnIp);
88
+ // if (!usage) {
89
+ // usage = {
90
+ // turnIp,
91
+ // totalBytesSent: 0,
92
+ // totalBytesReceived: 0,
93
+ // totalPacketsSent: 0,
94
+ // totalPacketsReceived: 0,
95
+ // };
96
+ // this._turnUsage.set(turnIp, usage);
97
+ // this.emit('newturnip', turnIp);
98
+ // }
99
+ // usage.totalBytesSent += ice.deltaBytesSent;
100
+ // usage.totalBytesReceived += ice.deltaBytesReceived;
101
+ // usage.totalPacketsSent += ice.deltaPacketsSent;
102
+ // usage.totalPacketsReceived += ice.deltaPacketsReceived;
103
+ // this.emit('update', usage);
104
+ // };
105
+ // peerConnection.ICE.on('update', onUpdate);
106
+ // this._connections.set(peerConnection.peerConnectionId, {
107
+ // peerConnection,
108
+ // onUpdate
109
+ // });
110
+ // this.emit('addpeerconnection', peerConnection);
111
+ // }
112
+ // public removePeerConnection(peerConnection: ObservedPeerConnection) {
113
+ // if (this.closed) return;
114
+ // if (!this._connections.has(peerConnection.peerConnectionId)) return;
115
+ // const { onUpdate } = this._connections.get(peerConnection.peerConnectionId) ?? {};
116
+ // if (!onUpdate) return;
117
+ // peerConnection.ICE.off('update', onUpdate);
118
+ // this._connections.delete(peerConnection.peerConnectionId);
119
+ // this.emit('removepeerconnection', peerConnection);
120
+ // }
121
+ // public get turnIps() {
122
+ // return Array.from(this._turnUsage.keys());
123
+ // }
124
+ // public get peerConnections() {
125
+ // return Array.from(this._connections.values()).map(({ peerConnection }) => peerConnection);
126
+ // }
127
+ // public getUsage(turnIp: string) {
128
+ // return this._turnUsage.get(turnIp);
129
+ // }
130
+ // public get clients(): ReadonlyMap<string, ObservedClient> {
131
+ // const result = new Map<string, ObservedClient>();
132
+ // for (const pc of this.peerConnections) {
133
+ // if (result.has(pc.clientId)) continue;
134
+ // result.set(pc.clientId, pc.client);
135
+ // }
136
+ // return result;
137
+ // }
138
+ // public get closed() {
139
+ // return this._closed;
140
+ // }
141
+ // public close() {
142
+ // if (this._closed) return;
143
+ // this._closed = true;
144
+ // this.emit('close');
145
+ // }
146
+ // }