@observertc/observer-js 0.9.26-beta → 0.30.0-beta

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 (298) hide show
  1. package/lib/ObservedCall.d.ts +54 -0
  2. package/lib/ObservedCall.d.ts.map +1 -0
  3. package/lib/ObservedCall.js +166 -0
  4. package/lib/ObservedClient.d.ts +73 -0
  5. package/lib/ObservedClient.d.ts.map +1 -0
  6. package/lib/ObservedClient.js +487 -0
  7. package/lib/ObservedInboundTrack.d.ts +65 -0
  8. package/lib/ObservedInboundTrack.d.ts.map +1 -0
  9. package/lib/ObservedInboundTrack.js +192 -0
  10. package/lib/ObservedOutboundTrack.d.ts +55 -0
  11. package/lib/ObservedOutboundTrack.d.ts.map +1 -0
  12. package/lib/ObservedOutboundTrack.js +166 -0
  13. package/lib/ObservedPeerConnection.d.ts +57 -0
  14. package/lib/ObservedPeerConnection.d.ts.map +1 -0
  15. package/lib/ObservedPeerConnection.js +217 -0
  16. package/lib/Observer.d.ts +26 -1465
  17. package/lib/Observer.d.ts.map +1 -1
  18. package/lib/Observer.js +53 -605
  19. package/lib/{sinks/ObserverSink.d.ts → ReportsCollector.d.ts} +7 -23
  20. package/lib/ReportsCollector.d.ts.map +1 -0
  21. package/lib/{sinks/ObserverSink.js → ReportsCollector.js} +27 -85
  22. package/lib/common/ReportsCollector.d.ts +21 -24
  23. package/lib/common/ReportsCollector.d.ts.map +1 -1
  24. package/lib/common/ReportsCollector.js +24 -0
  25. package/lib/common/SingleExecutor.d.ts +3 -0
  26. package/lib/common/SingleExecutor.d.ts.map +1 -0
  27. package/lib/common/SingleExecutor.js +31 -0
  28. package/lib/common/TypedEventEmitter.d.ts +22 -0
  29. package/lib/common/TypedEventEmitter.d.ts.map +1 -0
  30. package/lib/common/TypedEventEmitter.js +11 -0
  31. package/lib/common/callEventReports.d.ts.map +1 -0
  32. package/lib/common/logger.d.ts +3 -9
  33. package/lib/common/logger.d.ts.map +1 -1
  34. package/lib/common/logger.js +58 -141
  35. package/lib/common/types.d.ts +2 -14
  36. package/lib/common/types.d.ts.map +1 -1
  37. package/lib/common/utils.d.ts +1 -0
  38. package/lib/common/utils.d.ts.map +1 -1
  39. package/lib/common/utils.js +6 -1
  40. package/lib/index.d.ts +8 -19
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +7 -2
  43. package/package.json +1 -1
  44. package/src/ObservedCall.ts +201 -0
  45. package/src/ObservedClient.ts +681 -0
  46. package/src/ObservedInboundTrack.ts +238 -0
  47. package/src/ObservedOutboundTrack.ts +205 -0
  48. package/src/ObservedPeerConnection.ts +249 -0
  49. package/src/Observer.ts +86 -442
  50. package/src/{sinks/ObserverSink.ts → ReportsCollector.ts} +29 -94
  51. package/src/common/ReportsCollector.ts +48 -23
  52. package/src/common/SingleExecutor.ts +36 -0
  53. package/src/common/TypedEventEmitter.ts +32 -0
  54. package/src/common/logger.ts +58 -161
  55. package/src/common/types.ts +4 -24
  56. package/src/common/utils.ts +6 -0
  57. package/src/index.ts +12 -23
  58. package/lib/Evaluator.d.ts +0 -43
  59. package/lib/Evaluator.d.ts.map +0 -1
  60. package/lib/Evaluator.js +0 -171
  61. package/lib/common/Semaphore.d.ts +0 -31
  62. package/lib/common/Semaphore.d.ts.map +0 -1
  63. package/lib/common/Semaphore.js +0 -16
  64. package/lib/entries/CallEntry.d.ts +0 -619
  65. package/lib/entries/CallEntry.d.ts.map +0 -1
  66. package/lib/entries/CallEntry.js +0 -75
  67. package/lib/entries/ClientEntry.d.ts +0 -478
  68. package/lib/entries/ClientEntry.d.ts.map +0 -1
  69. package/lib/entries/ClientEntry.js +0 -114
  70. package/lib/entries/InboundTrackEntry.d.ts +0 -682
  71. package/lib/entries/InboundTrackEntry.d.ts.map +0 -1
  72. package/lib/entries/InboundTrackEntry.js +0 -76
  73. package/lib/entries/OutboundTrackEntry.d.ts +0 -682
  74. package/lib/entries/OutboundTrackEntry.d.ts.map +0 -1
  75. package/lib/entries/OutboundTrackEntry.js +0 -73
  76. package/lib/entries/PeerConnectionEntry.d.ts +0 -505
  77. package/lib/entries/PeerConnectionEntry.d.ts.map +0 -1
  78. package/lib/entries/PeerConnectionEntry.js +0 -144
  79. package/lib/entries/SfuEntry.d.ts +0 -150
  80. package/lib/entries/SfuEntry.d.ts.map +0 -1
  81. package/lib/entries/SfuEntry.js +0 -77
  82. package/lib/entries/SfuInboundRtpPadEntry.d.ts +0 -14
  83. package/lib/entries/SfuInboundRtpPadEntry.d.ts.map +0 -1
  84. package/lib/entries/SfuInboundRtpPadEntry.js +0 -49
  85. package/lib/entries/SfuOutboundRtpPadEntry.d.ts +0 -14
  86. package/lib/entries/SfuOutboundRtpPadEntry.d.ts.map +0 -1
  87. package/lib/entries/SfuOutboundRtpPadEntry.js +0 -47
  88. package/lib/entries/SfuSctpChannelEntry.d.ts +0 -12
  89. package/lib/entries/SfuSctpChannelEntry.d.ts.map +0 -1
  90. package/lib/entries/SfuSctpChannelEntry.js +0 -43
  91. package/lib/entries/SfuTransportEntry.d.ts +0 -82
  92. package/lib/entries/SfuTransportEntry.d.ts.map +0 -1
  93. package/lib/entries/SfuTransportEntry.js +0 -122
  94. package/lib/evaluators/SetClientsCoordinateEvaluator.d.ts +0 -9
  95. package/lib/evaluators/SetClientsCoordinateEvaluator.d.ts.map +0 -1
  96. package/lib/evaluators/SetClientsCoordinateEvaluator.js +0 -95
  97. package/lib/middlewares/CallOperationsContext.d.ts +0 -18
  98. package/lib/middlewares/CallOperationsContext.d.ts.map +0 -1
  99. package/lib/middlewares/CallOperationsContext.js +0 -27
  100. package/lib/middlewares/CallProcessor.d.ts +0 -6
  101. package/lib/middlewares/CallProcessor.d.ts.map +0 -1
  102. package/lib/middlewares/CallProcessor.js +0 -36
  103. package/lib/middlewares/CommitTransactionMiddleware.d.ts +0 -6
  104. package/lib/middlewares/CommitTransactionMiddleware.d.ts.map +0 -1
  105. package/lib/middlewares/CommitTransactionMiddleware.js +0 -179
  106. package/lib/middlewares/DeleteOutdatedCallEntries.d.ts +0 -6
  107. package/lib/middlewares/DeleteOutdatedCallEntries.d.ts.map +0 -1
  108. package/lib/middlewares/DeleteOutdatedCallEntries.js +0 -121
  109. package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts +0 -6
  110. package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts.map +0 -1
  111. package/lib/middlewares/DeleteOutdatedSfuEntries.js +0 -127
  112. package/lib/middlewares/Middleware.d.ts +0 -3
  113. package/lib/middlewares/Middleware.d.ts.map +0 -1
  114. package/lib/middlewares/Middleware.js +0 -21
  115. package/lib/middlewares/Processor.d.ts +0 -9
  116. package/lib/middlewares/Processor.d.ts.map +0 -1
  117. package/lib/middlewares/Processor.js +0 -54
  118. package/lib/middlewares/TransactionContext.d.ts +0 -35
  119. package/lib/middlewares/TransactionContext.d.ts.map +0 -1
  120. package/lib/middlewares/TransactionContext.js +0 -90
  121. package/lib/middlewares/TransactoinProcessor.d.ts +0 -6
  122. package/lib/middlewares/TransactoinProcessor.d.ts.map +0 -1
  123. package/lib/middlewares/TransactoinProcessor.js +0 -17
  124. package/lib/middlewares/VisitObservedCallsMiddleware.d.ts +0 -7
  125. package/lib/middlewares/VisitObservedCallsMiddleware.d.ts.map +0 -1
  126. package/lib/middlewares/VisitObservedCallsMiddleware.js +0 -96
  127. package/lib/middlewares/VisitObservedSfusMiddleware.d.ts +0 -6
  128. package/lib/middlewares/VisitObservedSfusMiddleware.d.ts.map +0 -1
  129. package/lib/middlewares/VisitObservedSfusMiddleware.js +0 -151
  130. package/lib/middlewares/visitors/visitClient.d.ts +0 -5
  131. package/lib/middlewares/visitors/visitClient.d.ts.map +0 -1
  132. package/lib/middlewares/visitors/visitClient.js +0 -174
  133. package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts +0 -5
  134. package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts.map +0 -1
  135. package/lib/middlewares/visitors/visitInboundAudioTrack.js +0 -93
  136. package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts +0 -5
  137. package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts.map +0 -1
  138. package/lib/middlewares/visitors/visitInboundVideoTrack.js +0 -94
  139. package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts +0 -5
  140. package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts.map +0 -1
  141. package/lib/middlewares/visitors/visitOutboundAudioTrack.js +0 -90
  142. package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts +0 -5
  143. package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts.map +0 -1
  144. package/lib/middlewares/visitors/visitOutboundVideoTarck.js +0 -90
  145. package/lib/middlewares/visitors/visitPeerConnection.d.ts +0 -5
  146. package/lib/middlewares/visitors/visitPeerConnection.d.ts.map +0 -1
  147. package/lib/middlewares/visitors/visitPeerConnection.js +0 -111
  148. package/lib/middlewares/visitors/visitSfu.d.ts +0 -5
  149. package/lib/middlewares/visitors/visitSfu.d.ts.map +0 -1
  150. package/lib/middlewares/visitors/visitSfu.js +0 -78
  151. package/lib/middlewares/visitors/visitSfuInboundRtpPad.d.ts +0 -5
  152. package/lib/middlewares/visitors/visitSfuInboundRtpPad.d.ts.map +0 -1
  153. package/lib/middlewares/visitors/visitSfuInboundRtpPad.js +0 -56
  154. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.d.ts +0 -5
  155. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.d.ts.map +0 -1
  156. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.js +0 -56
  157. package/lib/middlewares/visitors/visitSfuSctpChannel.d.ts +0 -5
  158. package/lib/middlewares/visitors/visitSfuSctpChannel.d.ts.map +0 -1
  159. package/lib/middlewares/visitors/visitSfuSctpChannel.js +0 -55
  160. package/lib/middlewares/visitors/visitSfuTransport.d.ts +0 -5
  161. package/lib/middlewares/visitors/visitSfuTransport.d.ts.map +0 -1
  162. package/lib/middlewares/visitors/visitSfuTransport.js +0 -56
  163. package/lib/processes/closePeerConnectionProcess.d.ts +0 -10
  164. package/lib/processes/closePeerConnectionProcess.d.ts.map +0 -1
  165. package/lib/processes/closePeerConnectionProcess.js +0 -51
  166. package/lib/processes/detachClientProcess.d.ts +0 -14
  167. package/lib/processes/detachClientProcess.d.ts.map +0 -1
  168. package/lib/processes/detachClientProcess.js +0 -106
  169. package/lib/processes/findRemoteMatches.d.ts +0 -9
  170. package/lib/processes/findRemoteMatches.d.ts.map +0 -1
  171. package/lib/processes/findRemoteMatches.js +0 -96
  172. package/lib/processes/inboundTrackRemoved.d.ts +0 -9
  173. package/lib/processes/inboundTrackRemoved.d.ts.map +0 -1
  174. package/lib/processes/inboundTrackRemoved.js +0 -22
  175. package/lib/processes/joinClientProcess.d.ts +0 -11
  176. package/lib/processes/joinClientProcess.d.ts.map +0 -1
  177. package/lib/processes/joinClientProcess.js +0 -120
  178. package/lib/processes/outboundTrackRemoved.d.ts +0 -9
  179. package/lib/processes/outboundTrackRemoved.d.ts.map +0 -1
  180. package/lib/processes/outboundTrackRemoved.js +0 -22
  181. package/lib/samples/ObservedCall.d.ts +0 -17
  182. package/lib/samples/ObservedCall.d.ts.map +0 -1
  183. package/lib/samples/ObservedCall.js +0 -29
  184. package/lib/samples/ObservedCalls.d.ts +0 -19
  185. package/lib/samples/ObservedCalls.d.ts.map +0 -1
  186. package/lib/samples/ObservedCalls.js +0 -113
  187. package/lib/samples/ObservedClient.d.ts +0 -28
  188. package/lib/samples/ObservedClient.d.ts.map +0 -1
  189. package/lib/samples/ObservedClient.js +0 -110
  190. package/lib/samples/ObservedInboundAudioTrack.d.ts +0 -17
  191. package/lib/samples/ObservedInboundAudioTrack.d.ts.map +0 -1
  192. package/lib/samples/ObservedInboundAudioTrack.js +0 -17
  193. package/lib/samples/ObservedInboundVideoTrack.d.ts +0 -17
  194. package/lib/samples/ObservedInboundVideoTrack.d.ts.map +0 -1
  195. package/lib/samples/ObservedInboundVideoTrack.js +0 -17
  196. package/lib/samples/ObservedOutboundAudioTrack.d.ts +0 -16
  197. package/lib/samples/ObservedOutboundAudioTrack.d.ts.map +0 -1
  198. package/lib/samples/ObservedOutboundAudioTrack.js +0 -17
  199. package/lib/samples/ObservedOutboundVideoTrack.d.ts +0 -16
  200. package/lib/samples/ObservedOutboundVideoTrack.d.ts.map +0 -1
  201. package/lib/samples/ObservedOutboundVideoTrack.js +0 -17
  202. package/lib/samples/ObservedPeerConnection.d.ts +0 -47
  203. package/lib/samples/ObservedPeerConnection.d.ts.map +0 -1
  204. package/lib/samples/ObservedPeerConnection.js +0 -130
  205. package/lib/samples/ObservedSfu.d.ts +0 -27
  206. package/lib/samples/ObservedSfu.d.ts.map +0 -1
  207. package/lib/samples/ObservedSfu.js +0 -65
  208. package/lib/samples/ObservedSfuInboundRtpPad.d.ts +0 -15
  209. package/lib/samples/ObservedSfuInboundRtpPad.d.ts.map +0 -1
  210. package/lib/samples/ObservedSfuInboundRtpPad.js +0 -17
  211. package/lib/samples/ObservedSfuOutboundRtpPad.d.ts +0 -15
  212. package/lib/samples/ObservedSfuOutboundRtpPad.d.ts.map +0 -1
  213. package/lib/samples/ObservedSfuOutboundRtpPad.js +0 -17
  214. package/lib/samples/ObservedSfuSctpChannel.d.ts +0 -15
  215. package/lib/samples/ObservedSfuSctpChannel.d.ts.map +0 -1
  216. package/lib/samples/ObservedSfuSctpChannel.js +0 -17
  217. package/lib/samples/ObservedSfuTransport.d.ts +0 -30
  218. package/lib/samples/ObservedSfuTransport.d.ts.map +0 -1
  219. package/lib/samples/ObservedSfuTransport.js +0 -86
  220. package/lib/samples/ObservedSfus.d.ts +0 -16
  221. package/lib/samples/ObservedSfus.d.ts.map +0 -1
  222. package/lib/samples/ObservedSfus.js +0 -72
  223. package/lib/sinks/ObserverSink.d.ts.map +0 -1
  224. package/lib/sinks/callEventReports.d.ts.map +0 -1
  225. package/lib/sources/ObservedCallSource.d.ts +0 -18
  226. package/lib/sources/ObservedCallSource.d.ts.map +0 -1
  227. package/lib/sources/ObservedCallSource.js +0 -2
  228. package/lib/sources/ObservedClientSource.d.ts +0 -19
  229. package/lib/sources/ObservedClientSource.d.ts.map +0 -1
  230. package/lib/sources/ObservedClientSource.js +0 -2
  231. package/lib/sources/ObservedSfuSource.d.ts +0 -15
  232. package/lib/sources/ObservedSfuSource.d.ts.map +0 -1
  233. package/lib/sources/ObservedSfuSource.js +0 -2
  234. package/lib/sources/Sources.d.ts +0 -47
  235. package/lib/sources/Sources.d.ts.map +0 -1
  236. package/lib/sources/Sources.js +0 -211
  237. package/src/Evaluator.ts +0 -229
  238. package/src/common/Semaphore.ts +0 -45
  239. package/src/entries/CallEntry.ts +0 -62
  240. package/src/entries/ClientEntry.ts +0 -106
  241. package/src/entries/InboundTrackEntry.ts +0 -74
  242. package/src/entries/OutboundTrackEntry.ts +0 -72
  243. package/src/entries/PeerConnectionEntry.ts +0 -133
  244. package/src/entries/SfuEntry.ts +0 -62
  245. package/src/entries/SfuInboundRtpPadEntry.ts +0 -46
  246. package/src/entries/SfuOutboundRtpPadEntry.ts +0 -44
  247. package/src/entries/SfuSctpChannelEntry.ts +0 -39
  248. package/src/entries/SfuTransportEntry.ts +0 -109
  249. package/src/evaluators/SetClientsCoordinateEvaluator.ts +0 -78
  250. package/src/middlewares/CallOperationsContext.ts +0 -56
  251. package/src/middlewares/CallProcessor.ts +0 -38
  252. package/src/middlewares/CommitTransactionMiddleware.ts +0 -328
  253. package/src/middlewares/DeleteOutdatedCallEntries.ts +0 -159
  254. package/src/middlewares/DeleteOutdatedSfuEntries.ts +0 -168
  255. package/src/middlewares/Middleware.ts +0 -10
  256. package/src/middlewares/Processor.ts +0 -59
  257. package/src/middlewares/TransactionContext.ts +0 -176
  258. package/src/middlewares/TransactoinProcessor.ts +0 -28
  259. package/src/middlewares/VisitObservedCallsMiddleware.ts +0 -172
  260. package/src/middlewares/VisitObservedSfusMiddleware.ts +0 -203
  261. package/src/middlewares/visitors/visitClient.ts +0 -239
  262. package/src/middlewares/visitors/visitInboundAudioTrack.ts +0 -113
  263. package/src/middlewares/visitors/visitInboundVideoTrack.ts +0 -117
  264. package/src/middlewares/visitors/visitOutboundAudioTrack.ts +0 -100
  265. package/src/middlewares/visitors/visitOutboundVideoTarck.ts +0 -102
  266. package/src/middlewares/visitors/visitPeerConnection.ts +0 -151
  267. package/src/middlewares/visitors/visitSfu.ts +0 -70
  268. package/src/middlewares/visitors/visitSfuInboundRtpPad.ts +0 -52
  269. package/src/middlewares/visitors/visitSfuOutboundRtpPad.ts +0 -53
  270. package/src/middlewares/visitors/visitSfuSctpChannel.ts +0 -50
  271. package/src/middlewares/visitors/visitSfuTransport.ts +0 -50
  272. package/src/processes/closePeerConnectionProcess.ts +0 -54
  273. package/src/processes/detachClientProcess.ts +0 -136
  274. package/src/processes/findRemoteMatches.ts +0 -104
  275. package/src/processes/inboundTrackRemoved.ts +0 -22
  276. package/src/processes/joinClientProcess.ts +0 -138
  277. package/src/processes/outboundTrackRemoved.ts +0 -22
  278. package/src/samples/ObservedCall.ts +0 -49
  279. package/src/samples/ObservedCalls.ts +0 -143
  280. package/src/samples/ObservedClient.ts +0 -172
  281. package/src/samples/ObservedInboundAudioTrack.ts +0 -35
  282. package/src/samples/ObservedInboundVideoTrack.ts +0 -36
  283. package/src/samples/ObservedOutboundAudioTrack.ts +0 -35
  284. package/src/samples/ObservedOutboundVideoTrack.ts +0 -35
  285. package/src/samples/ObservedPeerConnection.ts +0 -227
  286. package/src/samples/ObservedSfu.ts +0 -115
  287. package/src/samples/ObservedSfuInboundRtpPad.ts +0 -35
  288. package/src/samples/ObservedSfuOutboundRtpPad.ts +0 -35
  289. package/src/samples/ObservedSfuSctpChannel.ts +0 -35
  290. package/src/samples/ObservedSfuTransport.ts +0 -142
  291. package/src/samples/ObservedSfus.ts +0 -95
  292. package/src/sources/ObservedCallSource.ts +0 -26
  293. package/src/sources/ObservedClientSource.ts +0 -28
  294. package/src/sources/ObservedSfuSource.ts +0 -19
  295. package/src/sources/Sources.ts +0 -294
  296. /package/lib/{sinks → common}/callEventReports.d.ts +0 -0
  297. /package/lib/{sinks → common}/callEventReports.js +0 -0
  298. /package/src/{sinks → common}/callEventReports.ts +0 -0
@@ -19,11 +19,7 @@ import {
19
19
  SFUTransportReport,
20
20
  } from '@observertc/report-schemas-js';
21
21
  import { EventEmitter } from 'events';
22
- import { ReportsCollector } from '../common/ReportsCollector';
23
- import { ObserverSinkContext } from '../common/types';
24
- import { Middleware } from '../middlewares/Middleware';
25
- import { createProcessor, Processor } from '../middlewares/Processor';
26
- import { logger } from '../middlewares/VisitObservedCallsMiddleware';
22
+ import { ObserverSinkContext } from './common/types';
27
23
 
28
24
  export type SinkEventsMap = {
29
25
  'call-event': {
@@ -80,23 +76,14 @@ export type SinkEventsMap = {
80
76
  'sfu-meta': {
81
77
  reports: SfuMetaReport[];
82
78
  };
79
+ 'reports': ObserverSinkContext;
80
+ 'newreport': number;
83
81
  };
84
82
 
85
- export type SinkConfig = Record<string, unknown>;
86
83
  export type ObserverSinkProcess = (observerSinkContext: ObserverSinkContext) => Promise<void>;
87
84
 
88
- export interface ObserverReportsEmitter {
89
- on<K extends keyof SinkEventsMap>(event: K, listener: (reports: SinkEventsMap[K]) => void): this;
90
- off<K extends keyof SinkEventsMap>(event: K, listener: (reports: SinkEventsMap[K]) => void): this;
91
- once<K extends keyof SinkEventsMap>(event: K, listener: (reports: SinkEventsMap[K]) => void): this;
92
- }
93
-
94
- export class SinkImpl implements ReportsCollector, ObserverReportsEmitter {
95
- private _index = 0;
96
- private _processes = new Map<number, Promise<void>>();
97
- private _customProcesses = new Map<ObserverSinkProcess, Middleware<ObserverSinkContext>>();
98
- private readonly _processor: Processor<ObserverSinkContext>;
99
-
85
+ export class ReportsCollector {
86
+ private _collectedReports = 0;
100
87
  private _emitter = new EventEmitter();
101
88
  private _callEventReports: CallEventReport[] = [];
102
89
  private _callMetaReports: CallMetaReport[] = [];
@@ -117,8 +104,8 @@ export class SinkImpl implements ReportsCollector, ObserverReportsEmitter {
117
104
  private _sfuTransportReports: SFUTransportReport[] = [];
118
105
  private _sfuMetaReports: SfuMetaReport[] = [];
119
106
 
120
- public constructor(public readonly config: SinkConfig) {
121
- this._processor = createProcessor();
107
+ public constructor() {
108
+ // empty
122
109
  }
123
110
 
124
111
  public on<K extends keyof SinkEventsMap>(event: K, listener: (reports: SinkEventsMap[K]) => void): this {
@@ -141,150 +128,99 @@ export class SinkImpl implements ReportsCollector, ObserverReportsEmitter {
141
128
 
142
129
  public addCallEventReport(report: CallEventReport) {
143
130
  this._callEventReports.push(report);
131
+ this._emit('newreport', ++this._collectedReports);
144
132
  }
145
133
 
146
134
  public addCallMetaReport(report: CallMetaReport) {
147
135
  this._callMetaReports.push(report);
136
+ this._emit('newreport', ++this._collectedReports);
148
137
  }
149
138
 
150
139
  public addClientDataChannelReport(report: ClientDataChannelReport) {
151
140
  this._clientDataChannelReports.push(report);
141
+ this._emit('newreport', ++this._collectedReports);
152
142
  }
153
143
 
154
144
  public addClientExtensionReport(report: ClientExtensionReport) {
155
145
  this._clientExtensionReports.push(report);
146
+ this._emit('newreport', ++this._collectedReports);
156
147
  }
157
148
 
158
149
  public addIceCandidatePairReport(report: IceCandidatePairReport) {
159
150
  this._iceCandidatePairReports.push(report);
151
+ this._emit('newreport', ++this._collectedReports);
160
152
  }
161
153
 
162
154
  public addInboundAudioTrackReport(report: InboundAudioTrackReport) {
163
155
  this._inboundAudioTrackReports.push(report);
156
+ this._emit('newreport', ++this._collectedReports);
164
157
  }
165
158
 
166
159
  public addInboundVideoTrackReport(report: InboundVideoTrackReport) {
167
160
  this._inboundVideoTrackReports.push(report);
161
+ this._emit('newreport', ++this._collectedReports);
168
162
  }
169
163
 
170
164
  public addPeerConnectionTransportReports(report: PeerConnectionTransportReport) {
171
165
  this._peerConnectionTransportReports.push(report);
166
+ this._emit('newreport', ++this._collectedReports);
172
167
  }
173
168
 
174
169
  public addObserverEventReport(report: ObserverEventReport) {
175
170
  this._observerEventReports.push(report);
171
+ this._emit('newreport', ++this._collectedReports);
176
172
  }
177
173
 
178
174
  public addOutboundAudioTrackReport(report: OutboundAudioTrackReport) {
179
175
  this._outboundAudioTrackReports.push(report);
176
+ this._emit('newreport', ++this._collectedReports);
180
177
  }
181
178
 
182
179
  public addOutboundVideoTrackReport(report: OutboundVideoTrackReport) {
183
180
  this._outboundVideoTrackReports.push(report);
181
+ this._emit('newreport', ++this._collectedReports);
184
182
  }
185
183
 
186
184
  public addSfuEventReport(report: SfuEventReport) {
187
185
  this._sfuEventReports.push(report);
186
+ this._emit('newreport', ++this._collectedReports);
188
187
  }
189
188
 
190
189
  public addSfuExtensionReport(report: SfuExtensionReport) {
191
190
  this._sfuExtensionReports.push(report);
191
+ this._emit('newreport', ++this._collectedReports);
192
192
  }
193
193
 
194
194
  public addSfuInboundRtpPadReport(report: SfuInboundRtpPadReport) {
195
195
  this._sfuInboundRtpPadReports.push(report);
196
+ this._emit('newreport', ++this._collectedReports);
196
197
  }
197
198
 
198
199
  public addSfuOutboundRtpPadReport(report: SfuOutboundRtpPadReport) {
199
200
  this._sfuOutboundRtpPadReports.push(report);
201
+ this._emit('newreport', ++this._collectedReports);
200
202
  }
201
203
 
202
204
  public addSfuSctpStreamReport(report: SfuSctpStreamReport) {
203
205
  this._sfuSctpStreamReports.push(report);
206
+ this._emit('newreport', ++this._collectedReports);
204
207
  }
205
208
 
206
209
  public addSfuTransportReport(report: SFUTransportReport) {
207
210
  this._sfuTransportReports.push(report);
211
+ this._emit('newreport', ++this._collectedReports);
208
212
  }
209
213
 
210
214
  public addSfuMetaReport(report: SfuMetaReport) {
211
215
  this._sfuMetaReports.push(report);
212
- }
213
-
214
- public getCallEventReports(): CallEventReport[] {
215
- return this._callEventReports;
216
- }
217
-
218
- public getClientExtensionReports(): ClientExtensionReport[] {
219
- return this._clientExtensionReports;
220
- }
221
-
222
- public getSfuEventReports(): SfuEventReport[] {
223
- return this._sfuEventReports;
224
- }
225
-
226
- public getSfuExtensionReports(): SfuExtensionReport[] {
227
- return this._sfuExtensionReports;
228
- }
229
-
230
- public addProcess(process: ObserverSinkProcess) {
231
- const middleware: Middleware<ObserverSinkContext> = async (context, next) => {
232
- await process(context);
233
- if (next) await next(context);
234
- };
235
-
236
- this._customProcesses.set(process, middleware);
237
- this._processor.addMiddleware(middleware);
238
- }
239
-
240
- public removeProcess(process: ObserverSinkProcess) {
241
- const middleware = this._customProcesses.get(process);
242
-
243
- if (!middleware) {
244
- return;
245
- }
246
- this._customProcesses.delete(process);
247
- this._processor.removeMiddleware(middleware);
248
- }
249
-
250
- private async _process(context: ObserverSinkContext): Promise<void> {
251
- if (this._processor.getSize() < 1) {
252
- // no process to execute
253
- return;
254
- }
255
- if (this._processes.has(this._index)) {
256
- logger.warn('The sink process has been called while the previous process has not yet completed. This may indicate that the observer is attempting to process more reports than it can handle.');
257
- }
258
-
259
- const actualBlockingPoint = this._processes.get(this._index) ?? Promise.resolve();
260
- const index = ++this._index;
261
- const result = new Promise<void>((resolve, reject) => {
262
- actualBlockingPoint.then(() => {
263
- this._processor.use(context)
264
- .then(() => resolve())
265
- .catch((err) => reject(err));
266
- });
267
- });
268
- const nextBlockingPoint = new Promise<void>((resolve) => {
269
- result.then(() => {
270
- this._processes.delete(index);
271
- resolve();
272
- }).catch(() => {
273
- this._processes.delete(index);
274
- resolve();
275
- });
276
- });
277
-
278
- this._processes.set(index, nextBlockingPoint);
279
-
280
- return result;
216
+ this._emit('newreport', ++this._collectedReports);
281
217
  }
282
218
 
283
219
  public emit(): number {
284
220
  let result = 0;
285
221
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
286
222
  const checkAndEmit = (eventName: keyof SinkEventsMap, reports: any[]) => {
287
- if (reports.length > 0) {
223
+ if (0 < reports.length) {
288
224
  this._emit(eventName, { reports });
289
225
  result += reports.length;
290
226
  }
@@ -292,10 +228,6 @@ export class SinkImpl implements ReportsCollector, ObserverReportsEmitter {
292
228
 
293
229
  const context = this._createObserverSinkContext();
294
230
 
295
- this._process(context).catch((err) => {
296
- logger.error('Error occurred while processing reports', err);
297
- });
298
-
299
231
  checkAndEmit('call-event', this._callEventReports);
300
232
  this._callEventReports = [];
301
233
 
@@ -350,6 +282,9 @@ export class SinkImpl implements ReportsCollector, ObserverReportsEmitter {
350
282
  checkAndEmit('sfu-meta', this._sfuMetaReports);
351
283
  this._sfuMetaReports = [];
352
284
 
285
+ this._emit('reports', context);
286
+ this._collectedReports = 0;
287
+
353
288
  return result;
354
289
  }
355
290
 
@@ -19,28 +19,53 @@ import {
19
19
  SFUTransportReport,
20
20
  } from '@observertc/report-schemas-js';
21
21
 
22
- export interface ReportsCollector {
23
- addCallEventReport(report: CallEventReport): void;
24
- addCallMetaReport(report: CallMetaReport): void;
25
- addClientDataChannelReport(report: ClientDataChannelReport): void;
26
- addClientExtensionReport(report: ClientExtensionReport): void;
27
- addIceCandidatePairReport(report: IceCandidatePairReport): void;
28
- addInboundAudioTrackReport(report: InboundAudioTrackReport): void;
29
- addInboundVideoTrackReport(report: InboundVideoTrackReport): void;
30
- addPeerConnectionTransportReports(report: PeerConnectionTransportReport): void;
31
- addObserverEventReport(report: ObserverEventReport): void;
32
- addOutboundAudioTrackReport(report: OutboundAudioTrackReport): void;
33
- addOutboundVideoTrackReport(report: OutboundVideoTrackReport): void;
34
- addSfuEventReport(report: SfuEventReport): void;
35
- addSfuExtensionReport(report: SfuExtensionReport): void;
36
- addSfuInboundRtpPadReport(report: SfuInboundRtpPadReport): void;
37
- addSfuOutboundRtpPadReport(report: SfuOutboundRtpPadReport): void;
38
- addSfuSctpStreamReport(report: SfuSctpStreamReport): void;
39
- addSfuTransportReport(report: SFUTransportReport): void;
40
- addSfuMetaReport(report: SfuMetaReport): void;
22
+ // export interface ReportsCollector {
23
+ // addCallEventReport(report: CallEventReport): void;
24
+ // addCallMetaReport(report: CallMetaReport): void;
25
+ // addClientDataChannelReport(report: ClientDataChannelReport): void;
26
+ // addClientExtensionReport(report: ClientExtensionReport): void;
27
+ // addIceCandidatePairReport(report: IceCandidatePairReport): void;
28
+ // addInboundAudioTrackReport(report: InboundAudioTrackReport): void;
29
+ // addInboundVideoTrackReport(report: InboundVideoTrackReport): void;
30
+ // addPeerConnectionTransportReports(report: PeerConnectionTransportReport): void;
31
+ // addObserverEventReport(report: ObserverEventReport): void;
32
+ // addOutboundAudioTrackReport(report: OutboundAudioTrackReport): void;
33
+ // addOutboundVideoTrackReport(report: OutboundVideoTrackReport): void;
34
+ // addSfuEventReport(report: SfuEventReport): void;
35
+ // addSfuExtensionReport(report: SfuExtensionReport): void;
36
+ // addSfuInboundRtpPadReport(report: SfuInboundRtpPadReport): void;
37
+ // addSfuOutboundRtpPadReport(report: SfuOutboundRtpPadReport): void;
38
+ // addSfuSctpStreamReport(report: SfuSctpStreamReport): void;
39
+ // addSfuTransportReport(report: SFUTransportReport): void;
40
+ // addSfuMetaReport(report: SfuMetaReport): void;
41
41
 
42
- getCallEventReports(): CallEventReport[];
43
- getClientExtensionReports(): ClientExtensionReport[];
44
- getSfuEventReports(): SfuEventReport[];
45
- getSfuExtensionReports(): SfuExtensionReport[];
42
+ // getCallEventReports(): CallEventReport[];
43
+ // getClientExtensionReports(): ClientExtensionReport[];
44
+ // getSfuEventReports(): SfuEventReport[];
45
+ // getSfuExtensionReports(): SfuExtensionReport[];
46
+ // }
47
+
48
+ export type ObservedReports = ReturnType<typeof createObservedReports>;
49
+
50
+ export function createObservedReports() {
51
+ return {
52
+ callEventReports: [] as CallEventReport[],
53
+ callMetaReports: [] as CallMetaReport[],
54
+ clientDataChannelReports: [] as ClientDataChannelReport[],
55
+ clientExtensionReports: [] as ClientExtensionReport[],
56
+ iceCandidatePairReports: [] as IceCandidatePairReport[],
57
+ inboundAudioTrackReports: [] as InboundAudioTrackReport[],
58
+ inboundVideoTrackReports: [] as InboundVideoTrackReport[],
59
+ observerEventReports: [] as ObserverEventReport[],
60
+ outboundAudioTrackReports: [] as OutboundAudioTrackReport[],
61
+ outboundVideoTrackReports: [] as OutboundVideoTrackReport[],
62
+ peerConnectionTransportReports: [] as PeerConnectionTransportReport[],
63
+ sfuEventReports: [] as SfuEventReport[],
64
+ sfuExtensionReports: [] as SfuExtensionReport[],
65
+ sfuInboundRtpPadReports: [] as SfuInboundRtpPadReport[],
66
+ sfuMetaReports: [] as SfuMetaReport[],
67
+ sfuOutboundRtpPadReports: [] as SfuOutboundRtpPadReport[],
68
+ sfuSctpStreamReports: [] as SfuSctpStreamReport[],
69
+ sfuTransportReports: [] as SFUTransportReport[],
70
+ };
46
71
  }
@@ -0,0 +1,36 @@
1
+ export type SingleExecutor = ReturnType<typeof createSingleExecutor>;
2
+
3
+ export function createSingleExecutor() {
4
+ let semaphore = 1;
5
+ const tasks: (() => Promise<unknown>)[] = [];
6
+
7
+ const execute = <T = unknown>(task: () => Promise<T>) => {
8
+ return new Promise<T>((resolve, reject) => {
9
+ tasks.push(() => task().then(resolve)
10
+ .catch(reject));
11
+ run();
12
+ });
13
+ };
14
+
15
+ const run = () => {
16
+ if (semaphore < 1) return;
17
+
18
+ const task = tasks.shift();
19
+
20
+ if (!task) return;
21
+
22
+ const postProcess = () => {
23
+ ++semaphore;
24
+ run();
25
+ };
26
+
27
+ --semaphore;
28
+
29
+ task()
30
+ .then(postProcess)
31
+ .catch(postProcess);
32
+
33
+ };
34
+
35
+ return execute;
36
+ }
@@ -0,0 +1,32 @@
1
+ import EventEmitter from 'events';
2
+
3
+ export type EventMap = {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ [key: string]: [...unknown[]]
6
+ }
7
+
8
+ export function createTypedEventEmitter<Events extends EventMap>() {
9
+ return new EventEmitter() as TypedEventEmitter<Events>;
10
+ }
11
+
12
+ export interface TypedEventEmitter<Events extends EventMap> {
13
+ addListener<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
14
+ on<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
15
+ once<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
16
+ prependListener<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
17
+ prependOnceListener<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
18
+
19
+ off<E extends keyof Events>(event: E, listener: (...data: Events[E]) => void): this
20
+ removeAllListeners<E extends keyof Events> (event?: E): this
21
+ removeListener<E extends keyof Events> (event: E, listener: (...data: Events[E]) => void): this
22
+
23
+ emit<E extends keyof Events> (event: E, ...args: Events[E]): boolean
24
+ // The sloppy `eventNames()` return type is to mitigate type incompatibilities - see #5
25
+ eventNames(): (keyof Events | string | symbol)[]
26
+ rawListeners<E extends keyof Events> (event: E): ((...data: Events[E]) => void)[]
27
+ listeners<E extends keyof Events> (event: E): ((...data: Events[E]) => void)[]
28
+ listenerCount<E extends keyof Events> (event: E): number
29
+
30
+ getMaxListeners (): number
31
+ setMaxListeners (maxListeners: number): this
32
+ }
@@ -13,13 +13,37 @@ export interface Logger {
13
13
  error(...args: any[]): void;
14
14
  }
15
15
 
16
- export interface WrappedLogger extends Logger {
17
- init(): void;
18
- level: LogLevel | undefined,
19
- logger: Logger;
16
+ let logLevel: LogLevel = 'error';
17
+ const loggers = new Map<string, Logger>();
18
+ let target: Logger | null = {
19
+ // eslint-disable-next-line no-console
20
+ trace: (...args: any[]) => console.log(...args),
21
+ // eslint-disable-next-line no-console
22
+ debug: (...args: any[]) => console.log(...args),
23
+ // eslint-disable-next-line no-console
24
+ info: (...args: any[]) => console.log(...args),
25
+ // eslint-disable-next-line no-console
26
+ warn: (...args: any[]) => console.warn(...args),
27
+ // eslint-disable-next-line no-console
28
+ error: (...args: any[]) => console.error(...args),
29
+ };
30
+
31
+ export function setLogLevel(level: LogLevel) {
32
+ logLevel = level;
33
+ const moduleNames = Array.from(loggers.keys());
34
+
35
+ loggers.clear();
36
+
37
+ moduleNames.forEach((moduleName) => createLogger(moduleName));
20
38
  }
21
39
 
22
- export type LoggerFactory = () => Logger;
40
+ export const getLogLevel = () => {
41
+ return logLevel;
42
+ };
43
+
44
+ export function forwardLogsTo(logger: Logger | null) {
45
+ target = logger;
46
+ }
23
47
 
24
48
  const COLORS = {
25
49
  black: '\x1b[30m',
@@ -33,162 +57,35 @@ const COLORS = {
33
57
  default: '\x1b[39m',
34
58
  };
35
59
 
36
- let defaultLevel: LogLevel = 'error';
37
- const created = Date.now();
38
-
39
- function createDefaultLoggerFactory(): LoggerFactory {
40
- return () => {
41
- /* eslint-disable @typescript-eslint/no-explicit-any */
42
- const trace = (...args: any[]) => {
43
- /* eslint-disable no-debugger, no-console */
44
- console.trace(...args);
45
- };
46
- /* eslint-disable @typescript-eslint/no-explicit-any */
47
- const debug = (...args: any[]) => {
48
- /* eslint-disable no-debugger, no-console */
49
- console.debug(...args);
50
- };
51
- /* eslint-disable @typescript-eslint/no-explicit-any */
52
- const info = (...args: any[]) => {
53
- /* eslint-disable no-debugger, no-console */
54
- console.info(...args);
55
- };
56
- /* eslint-disable @typescript-eslint/no-explicit-any */
57
- const warn = (...args: any[]) => {
58
- /* eslint-disable no-debugger, no-console */
59
- console.warn(...args);
60
- };
61
- /* eslint-disable @typescript-eslint/no-explicit-any */
62
- const error = (...args: any[]) => {
63
- /* eslint-disable no-debugger, no-console */
64
- console.error(...args);
65
- };
66
-
67
- return {
68
- trace,
69
- debug,
70
- info,
71
- warn,
72
- error,
73
- };
74
- };
75
- }
76
-
77
- const wrapLogger = (logger: Logger, moduleName: string, logLevel?: LogLevel) => {
78
-
79
- let isTrace = false;
80
- let isDebug = false;
81
- let isInfo = false;
82
- let isWarning = false;
83
- let isError = false;
84
-
85
- let _level = logLevel;
86
- let _logger = logger;
87
- const tracePrefix = `${COLORS.magenta}[TRACE]${COLORS.default} ${moduleName}`;
88
- const debugPrefix = `${COLORS.cyan}[DEBUG]${COLORS.default} ${moduleName}`;
89
- const infoPrefix = `${COLORS.green}[INFO]${COLORS.default} ${moduleName}`;
90
- const warnPrefix = `${COLORS.yellow}[WARN]${COLORS.default} ${moduleName}`;
91
- const errorPrefix = `${COLORS.red}[ERROR]${COLORS.default} ${moduleName}`;
92
-
93
- const result = new class implements WrappedLogger {
94
- public init() {
95
- isTrace = [ 'trace' ].includes(_level ?? defaultLevel);
96
- isDebug = [ 'trace', 'debug' ].includes(_level ?? defaultLevel);
97
- isInfo = [ 'trace', 'debug', 'info' ].includes(_level ?? defaultLevel);
98
- isWarning = [ 'trace', 'debug', 'info', 'warn' ].includes(_level ?? defaultLevel);
99
- isError = [ 'trace', 'debug', 'info', 'warn', 'error' ].includes(_level ?? defaultLevel);
100
- }
101
- public get logger() {
102
- return _logger;
103
- }
104
- public set logger(value: Logger) {
105
- _logger = value;
106
- }
107
- public get level(): LogLevel | undefined {
108
- return _level;
109
- }
110
- public set level(value: LogLevel | undefined) {
111
- _level = value;
112
- }
113
- /* eslint-disable @typescript-eslint/no-explicit-any */
114
- trace(...args: any[]): void {
115
- if (isTrace) {
116
- const elapsedInMs = `${COLORS.magenta}+${Date.now() - created}ms${COLORS.default}`;
117
-
118
- logger.trace(tracePrefix, ...args, elapsedInMs);
119
- }
120
- }
121
- /* eslint-disable @typescript-eslint/no-explicit-any */
122
- debug(...args: any[]): void {
123
- if (isDebug) {
124
- const elapsedInMs = `${COLORS.magenta}+${Date.now() - created}ms${COLORS.default}`;
125
-
126
- logger.debug(debugPrefix, ...args, elapsedInMs);
127
- }
128
- }
129
- /* eslint-disable @typescript-eslint/no-explicit-any */
130
- info(...args: any[]): void {
131
- if (isInfo) {
132
- const elapsedInMs = `${COLORS.magenta}+${Date.now() - created}ms${COLORS.default}`;
133
-
134
- logger.info(infoPrefix, ...args, elapsedInMs);
135
- }
136
- }
137
- /* eslint-disable @typescript-eslint/no-explicit-any */
138
- warn(...args: any[]): void {
139
- if (isWarning) {
140
- const elapsedInMs = `${COLORS.magenta}+${Date.now() - created}ms${COLORS.default}`;
141
-
142
- logger.warn(warnPrefix, ...args, elapsedInMs);
143
- }
144
- }
145
- /* eslint-disable @typescript-eslint/no-explicit-any */
146
- error(...args: any[]): void {
147
- if (isError) {
148
- const elapsedInMs = `${COLORS.magenta}+${Date.now() - created}ms${COLORS.default}`;
149
-
150
- logger.error(errorPrefix, ...args, elapsedInMs);
151
- }
152
-
153
- }
60
+ export function createLogger(moduleName: string): Logger {
61
+ if (loggers.has(moduleName)) {
62
+ // eslint-disable-next-line no-console
63
+ console.warn(`Logger for module ${moduleName} already exists`);
64
+ }
65
+ const trace = logLevel === 'trace' ? (message: string, ...args: any[]) => {
66
+ target?.trace(`${COLORS.magenta}[TRACE]${COLORS.default} ${moduleName} ${message}`, ...args);
67
+ } : () => void 0;
68
+ const debug = logLevel === 'trace' || logLevel === 'debug' ? (message: string, ...args: any[]) => {
69
+ target?.debug(`${COLORS.cyan}[DEBUG]${COLORS.default} ${moduleName} ${message}`, ...args);
70
+ } : () => void 0;
71
+ const info = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' ? (message: string, ...args: any[]) => {
72
+ target?.info(`${COLORS.green}[INFO]${COLORS.default} ${moduleName} ${message}`, ...args);
73
+ } : () => void 0;
74
+ const warn = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' || logLevel === 'warn' ? (message: string, ...args: any[]) => {
75
+ target?.warn(`${COLORS.yellow}[WARN]${COLORS.default} ${moduleName} ${message}`, ...args);
76
+ } : () => void 0;
77
+ const error = logLevel === 'trace' || logLevel === 'debug' || logLevel === 'info' || logLevel === 'warn' || logLevel === 'error' ? (message: string, ...args: any[]) => {
78
+ target?.error(`${COLORS.red}[ERROR]${COLORS.default} ${moduleName} ${message}`, ...args);
79
+ } : () => void 0;
80
+ const logger = {
81
+ trace,
82
+ debug,
83
+ info,
84
+ warn,
85
+ error,
154
86
  };
155
-
156
- return result;
157
- };
158
-
159
- let actualLoggerFactory: LoggerFactory = createDefaultLoggerFactory();
160
- const loggers = new Map<string, WrappedLogger>();
161
87
 
162
- export const createLogger = (moduleName: string, logLevel?: LogLevel) => {
163
- let wrappedLogger = loggers.get(moduleName);
164
-
165
- if (!wrappedLogger) {
166
- const logger = actualLoggerFactory();
167
-
168
- wrappedLogger = wrapLogger(logger, moduleName, logLevel ?? defaultLevel);
169
- loggers.set(moduleName, wrappedLogger);
170
- } else {
171
- wrappedLogger.level = logLevel ?? defaultLevel;
172
- }
173
- wrappedLogger.init();
88
+ loggers.set(moduleName, logger);
174
89
 
175
- return wrappedLogger;
176
- };
177
-
178
- export const setLogLevel = (level: LogLevel) => {
179
- defaultLevel = level;
180
- for (const [ moduleName ] of Array.from(loggers.entries())) {
181
- loggers.set(moduleName, createLogger(moduleName, level));
182
- }
183
- };
184
-
185
- export const setLoggerFactory = (loggerFactory: LoggerFactory) => {
186
- actualLoggerFactory = loggerFactory;
187
- for (const [ moduleName, logger ] of Array.from(loggers.entries())) {
188
- loggers.set(moduleName, createLogger(moduleName, logger.level));
189
- }
190
- };
191
-
192
- export const getLogLevel = () => {
193
- return defaultLevel;
194
- };
90
+ return logger;
91
+ }
@@ -18,23 +18,11 @@ import {
18
18
  SfuSctpStreamReport,
19
19
  SFUTransportReport,
20
20
  } from '@observertc/report-schemas-js';
21
- import { ObservedCalls } from '../samples/ObservedCalls';
22
- import { ReportsCollector } from './ReportsCollector';
23
21
  import * as Models from '../models/Models';
24
22
  import { StorageProvider } from '../storages/StorageProvider';
25
23
  import { Message } from '@bufbuild/protobuf';
26
- import { Middleware } from '../middlewares/Middleware';
27
- import { ObservedSfus } from '../samples/ObservedSfus';
28
-
29
- export type ObserverReport =
30
- | CallEventReport
31
- | CallMetaReport
32
- | ClientExtensionReport
33
- | PeerConnectionTransportReport
34
- | InboundAudioTrackReport
35
- | InboundVideoTrackReport
36
- | OutboundAudioTrackReport
37
- | OutboundVideoTrackReport;
24
+
25
+ export type MediaKind = 'audio' | 'video';
38
26
 
39
27
  export interface EvaluatorContext {
40
28
  readonly startedCallIds: string[];
@@ -97,18 +85,12 @@ export interface EvaluatorContext {
97
85
  closed: number;
98
86
  })[];
99
87
 
100
- readonly observedCalls: ObservedCalls;
101
- readonly observedSfus: ObservedSfus;
102
88
  readonly storages: StorageProvider;
103
- readonly reports: ReportsCollector;
89
+ readonly reports: ObserverSinkContext;
104
90
 
105
- readonly clientExtensionStats: ClientExtensionReport[],
106
- readonly callEvents: CallEventReport[],
107
- readonly sfuEvents: SfuEventReport[],
108
- readonly sfuExtensionStats: SfuExtensionReport[],
109
91
  }
110
92
 
111
- export type EvaluatorMiddleware = Middleware<EvaluatorContext>;
93
+ // export type EvaluatorMiddleware = Middleware<EvaluatorContext>;
112
94
 
113
95
  export interface ObserverSinkContext {
114
96
  readonly callEventReports: CallEventReport[];
@@ -130,5 +112,3 @@ export interface ObserverSinkContext {
130
112
  readonly sfuTransportReports: SFUTransportReport[];
131
113
  readonly sfuMetaReports: SfuMetaReport[];
132
114
  }
133
-
134
- export type ObserverSinkMiddleware = Middleware<ObserverSinkContext>;