@observertc/observer-js 0.9.27-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 -49
  235. package/lib/sources/Sources.d.ts.map +0 -1
  236. package/lib/sources/Sources.js +0 -213
  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 -301
  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
@@ -22,4 +22,10 @@ export function asyncIteratorConverter<T>(generator: AsyncGenerator<T, void, und
22
22
  return generator.next();
23
23
  },
24
24
  };
25
+ }
26
+
27
+ export function isValidUuid(str: string): boolean {
28
+ const regexp = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
29
+
30
+ return regexp.test(str);
25
31
  }
package/src/index.ts CHANGED
@@ -1,29 +1,13 @@
1
1
  export type { ObserverConfig, ObserverEvents } from './Observer';
2
2
 
3
- export type { EvaluatorConfig, EvaluatorProcess } from './Evaluator';
4
-
5
- export type { SourcesConfig } from './sources/Sources';
6
-
7
3
  export { Observer } from './Observer';
8
- export type { ObserverReportsEmitter, ObserverSinkProcess } from './sinks/ObserverSink';
9
4
  export type { ObserverStorage } from './storages/ObserverStorage';
10
5
  export type { StorageProvider } from './storages/StorageProvider';
11
- export * as Models from './models/Models';
12
6
 
13
7
  export * as SampleSchema from '@observertc/sample-schemas-js';
14
8
  export * as ReportSchema from '@observertc/report-schemas-js';
15
9
 
16
- export type { CallEntry } from './entries/CallEntry';
17
- export type { ClientEntry } from './entries/ClientEntry';
18
- export type { PeerConnectionEntry } from './entries/PeerConnectionEntry';
19
- export type { InboundTrackEntry } from './entries/InboundTrackEntry';
20
- export type { OutboundTrackEntry } from './entries/OutboundTrackEntry';
21
- export type { SfuEntry } from './entries/SfuEntry';
22
- export type { SfuTransportEntry } from './entries/SfuTransportEntry';
23
- export type { SfuInboundRtpPadEntry } from './entries/SfuInboundRtpPadEntry';
24
- export type { SfuOutboundRtpPadEntry } from './entries/SfuOutboundRtpPadEntry';
25
- export type { SfuSctpChannelEntry } from './entries/SfuSctpChannelEntry';
26
- export type { GetClientCoordinate, ClientCoordinate } from './evaluators/SetClientsCoordinateEvaluator';
10
+ export type { LogLevel, Logger } from './common/logger';
27
11
 
28
12
  export type {
29
13
  Samples,
@@ -70,15 +54,20 @@ export type {
70
54
  SFUTransportReport,
71
55
  } from '@observertc/report-schemas-js';
72
56
 
73
- export type { ObservedClientSource, ObservedClientSourceConfig } from './sources/ObservedClientSource';
74
-
75
- export type { ObservedSfuSource, ObservedSfuSourceConfig } from './sources/ObservedSfuSource';
57
+ export type { ObservedClient, ObservedClientConfig } from './ObservedClient';
58
+ export type { ObservedPeerConnection, ObservedPeerConnectionConfig, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
59
+ export type { ObservedInboundTrack, ObservedInboundTrackConfig, ObservedInboundTrackEvents } from './ObservedInboundTrack';
60
+ export type { ObservedOutboundTrack, ObservedOutboundTrackConfig, ObservedOutboundTrackEvents } from './ObservedOutboundTrack';
76
61
 
77
- export type { ObservedCallSource, ObservedCallSourceConfig as ObservedCallConfig } from './sources/ObservedCallSource';
78
-
79
- export type { EvaluatorContext, EvaluatorMiddleware, ObserverSinkContext, ObserverSinkMiddleware } from './common/types';
62
+ export type { EvaluatorContext, ObserverSinkContext } from './common/types';
80
63
 
81
64
  import { Observer, ObserverConfig } from './Observer';
82
65
  export function createObserver(config?: Partial<ObserverConfig>) {
83
66
  return Observer.create(config ?? {});
84
67
  }
68
+
69
+ import { LogLevel, Logger, forwardLogsTo, setLogLevel } from './common/logger';
70
+ export function setupLogs(logLevel: LogLevel, logger: Logger) {
71
+ setLogLevel(logLevel);
72
+ forwardLogsTo(logger);
73
+ }
@@ -1,43 +0,0 @@
1
- import { Semaphore } from './common/Semaphore';
2
- import { EvaluatorContext } from './common/types';
3
- import { ReportsCollector } from './common/ReportsCollector';
4
- import { ObservedClientSourceConfig } from './sources/ObservedClientSource';
5
- import { SourcesEvents } from './sources/Sources';
6
- import { StorageProvider } from './storages/StorageProvider';
7
- export type EvaluatorEvents = {
8
- ready: Error | undefined;
9
- };
10
- export type EvaluatorConfig = {
11
- fetchSamples: boolean;
12
- maxIdleTimeInMs?: number;
13
- findRemoteMatches?: boolean;
14
- };
15
- export type EvaluatorProcess = (evaluatorContext: EvaluatorContext) => Promise<void>;
16
- export declare class Evaluator {
17
- readonly config: EvaluatorConfig;
18
- private readonly _callSemaphore;
19
- private readonly _storageProvider;
20
- private readonly _reportsCollector;
21
- private _index;
22
- private _evaluations;
23
- private _clientOperations;
24
- private _emitter;
25
- private _evaluatorProcesses;
26
- private _callProcessor;
27
- private _transactionProcessor;
28
- private _customProcessor;
29
- constructor(config: EvaluatorConfig, _callSemaphore: Semaphore, _storageProvider: StorageProvider, _reportsCollector: ReportsCollector);
30
- addProcess(process: EvaluatorProcess): void;
31
- removeProcess(process: EvaluatorProcess): void;
32
- addClosedClientSource(clientSource: ObservedClientSourceConfig): void;
33
- addCreatedClientSource(clientSource: ObservedClientSourceConfig): void;
34
- on<K extends keyof EvaluatorEvents>(event: K, listener: (data: EvaluatorEvents[K]) => void): this;
35
- once<K extends keyof EvaluatorEvents>(event: K, listener: (data: EvaluatorEvents[K]) => void): this;
36
- off<K extends keyof EvaluatorEvents>(event: K, listener: (data: EvaluatorEvents[K]) => void): this;
37
- private _emit;
38
- addObservedSamples(samples: SourcesEvents['observed-samples']): void;
39
- private _eval;
40
- get ongoingProcess(): number;
41
- private _process;
42
- }
43
- //# sourceMappingURL=Evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Evaluator.d.ts","sourceRoot":"","sources":["../src/Evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAW7D,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF,qBAAa,SAAS;aAaJ,MAAM,EAAE,eAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAfnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,qBAAqB,CAAgC;IAC7D,OAAO,CAAC,gBAAgB,CAA8B;gBAGrC,MAAM,EAAE,eAAe,EACtB,cAAc,EAAE,SAAS,EACzB,gBAAgB,EAAE,eAAe,EACjC,iBAAiB,EAAE,gBAAgB;IAe9C,UAAU,CAAC,OAAO,EAAE,gBAAgB;IAUpC,aAAa,CAAC,OAAO,EAAE,gBAAgB;IAUvC,qBAAqB,CAAC,YAAY,EAAE,0BAA0B;IAQ9D,sBAAsB,CAAC,YAAY,EAAE,0BAA0B;IAO/D,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAMjG,IAAI,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAMnG,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAMzG,OAAO,CAAC,KAAK;IAIN,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI;YAqD7D,KAAK;IAyBnB,IAAW,cAAc,IAAI,MAAM,CAElC;YAEa,QAAQ;CA6BtB"}
package/lib/Evaluator.js DELETED
@@ -1,171 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Evaluator = void 0;
13
- const logger_1 = require("./common/logger");
14
- const Processor_1 = require("./middlewares/Processor");
15
- const TransactionContext_1 = require("./middlewares/TransactionContext");
16
- const CallOperationsContext_1 = require("./middlewares/CallOperationsContext");
17
- const CallProcessor_1 = require("./middlewares/CallProcessor");
18
- const TransactoinProcessor_1 = require("./middlewares/TransactoinProcessor");
19
- const events_1 = require("events");
20
- const logger = (0, logger_1.createLogger)('Evaluator');
21
- class Evaluator {
22
- constructor(config, _callSemaphore, _storageProvider, _reportsCollector) {
23
- var _a;
24
- this.config = config;
25
- this._callSemaphore = _callSemaphore;
26
- this._storageProvider = _storageProvider;
27
- this._reportsCollector = _reportsCollector;
28
- this._index = 0;
29
- this._evaluations = new Map();
30
- this._clientOperations = new Map();
31
- this._emitter = new events_1.EventEmitter();
32
- this._evaluatorProcesses = new Map();
33
- this._callProcessor = (0, CallProcessor_1.createCallProcessor)(_storageProvider, _reportsCollector);
34
- this._transactionProcessor = (0, TransactoinProcessor_1.createTransactionProcessor)(_storageProvider, _reportsCollector, this.config.fetchSamples, BigInt((_a = this.config.maxIdleTimeInMs) !== null && _a !== void 0 ? _a : 10000), this.config.findRemoteMatches);
35
- this._customProcessor = (0, Processor_1.createProcessor)();
36
- }
37
- addProcess(process) {
38
- const middleware = (context, next) => __awaiter(this, void 0, void 0, function* () {
39
- yield process(context);
40
- if (next)
41
- yield next(context);
42
- });
43
- this._evaluatorProcesses.set(process, middleware);
44
- this._customProcessor.addMiddleware(middleware);
45
- }
46
- removeProcess(process) {
47
- const middleware = this._evaluatorProcesses.get(process);
48
- if (!middleware) {
49
- return;
50
- }
51
- this._evaluatorProcesses.delete(process);
52
- this._customProcessor.removeMiddleware(middleware);
53
- }
54
- addClosedClientSource(clientSource) {
55
- this._clientOperations.set(clientSource.clientId, Object.assign(Object.assign({ type: 'detach' }, clientSource), { detached: Date.now() }));
56
- }
57
- addCreatedClientSource(clientSource) {
58
- this._clientOperations.set(clientSource.clientId, Object.assign({ type: 'join' }, clientSource));
59
- }
60
- on(event, listener) {
61
- this._emitter.addListener(event, listener);
62
- return this;
63
- }
64
- once(event, listener) {
65
- this._emitter.once(event, listener);
66
- return this;
67
- }
68
- off(event, listener) {
69
- this._emitter.removeListener(event, listener);
70
- return this;
71
- }
72
- _emit(event, data) {
73
- return this._emitter.emit(event, data);
74
- }
75
- addObservedSamples(samples) {
76
- // this triggers the evaluation
77
- const { observedCalls, observedSfus } = samples;
78
- const evaluatorContext = {
79
- observedCalls,
80
- observedSfus,
81
- reports: this._reportsCollector,
82
- storages: this._storageProvider,
83
- joinedClientIds: [],
84
- detachedClients: [],
85
- startedCallIds: [],
86
- endedCalls: [],
87
- openedPeerConnectionIds: [],
88
- closedPeerConnections: [],
89
- addedInboundAudioTrackIds: [],
90
- removedInboundAudioTracks: [],
91
- addedInboundVideoTrackIds: [],
92
- removedInboundVideoTracks: [],
93
- addedOutboundAudioTrackIds: [],
94
- removedOutboundAudioTracks: [],
95
- addedOutboundVideoTrackIds: [],
96
- removedOutboundVideoTracks: [],
97
- joinedSfuIds: [],
98
- detachedSfus: [],
99
- openedSfuTransportIds: [],
100
- closedSfuTransports: [],
101
- addedSfuInbounRtpPadIds: [],
102
- removedSfuInbounRtpPadIds: [],
103
- addedSfuOutbounRtpPadIds: [],
104
- removedSfuOutbounRtpPadIds: [],
105
- openedSfuSctpChannelIds: [],
106
- closedSfuSctpChannels: [],
107
- clientExtensionStats: [],
108
- callEvents: [],
109
- sfuEvents: [],
110
- sfuExtensionStats: [],
111
- };
112
- const callOperations = (0, CallOperationsContext_1.createCallOperationContext)(this._clientOperations, evaluatorContext);
113
- this._clientOperations.clear();
114
- this._eval(callOperations, evaluatorContext)
115
- .then(() => {
116
- logger.debug('Evaluator is successfully performed eval process');
117
- })
118
- .catch((err) => {
119
- logger.warn('Error occurred while evaluating', err);
120
- });
121
- }
122
- _eval(callOperationsContext, evaluatorContext) {
123
- var _a;
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const actualBlockingPoint = (_a = this._evaluations.get(this._index)) !== null && _a !== void 0 ? _a : Promise.resolve();
126
- const index = ++this._index;
127
- const result = new Promise((resolve, reject) => {
128
- actualBlockingPoint.then(() => {
129
- this._process(callOperationsContext, evaluatorContext)
130
- .then(() => resolve())
131
- .catch((err) => reject(err));
132
- });
133
- });
134
- const nextBlockingPoint = new Promise((resolve) => {
135
- result.then(() => {
136
- this._evaluations.delete(index);
137
- resolve();
138
- }).catch(() => {
139
- this._evaluations.delete(index);
140
- resolve();
141
- });
142
- });
143
- this._evaluations.set(index, nextBlockingPoint);
144
- return result;
145
- });
146
- }
147
- get ongoingProcess() {
148
- return this._evaluations.size;
149
- }
150
- _process(callOperationsContext, evaluatorContext) {
151
- return __awaiter(this, void 0, void 0, function* () {
152
- const process = () => __awaiter(this, void 0, void 0, function* () {
153
- yield this._callSemaphore.acquire();
154
- yield this._callProcessor.use(callOperationsContext).finally(() => {
155
- this._callSemaphore.release();
156
- });
157
- const transactionContext = yield (0, TransactionContext_1.createTransactionContext)(evaluatorContext, this._storageProvider, evaluatorContext.observedCalls, evaluatorContext.observedSfus);
158
- yield this._transactionProcessor.use(transactionContext);
159
- yield this._customProcessor.use(evaluatorContext);
160
- });
161
- yield process().then(() => {
162
- this._emit('ready', undefined);
163
- })
164
- .catch((err) => {
165
- logger.warn('Error occurred while evaluating samples', err);
166
- this._emit('ready', err);
167
- });
168
- });
169
- }
170
- }
171
- exports.Evaluator = Evaluator;
@@ -1,31 +0,0 @@
1
- /**
2
- * Interface for a Semaphore, a synchronization primitive that provides exclusive access to a shared resource.
3
- * Semaphores are used to ensure that only one process can access the shared resource at a time.
4
- */
5
- export interface Semaphore {
6
- /**
7
- * Acquires the semaphore, blocking until the semaphore is available.
8
- * When the semaphore is acquired, it prevents other processes from acquiring it.
9
- * @returns A Promise that resolves when the semaphore is successfully acquired.
10
- */
11
- acquire(): Promise<void>;
12
- /**
13
- * Releases the semaphore, allowing other processes to acquire it.
14
- * @returns A Promise that resolves when the semaphore is successfully released.
15
- */
16
- release(): Promise<void>;
17
- }
18
- export declare function createDummySemaphore(): Semaphore;
19
- /**
20
- * Interface for a SemaphoreProvider, an object that provides semaphore instances for different shared resources.
21
- * SemaphoreProviders are used to manage access to shared resources across multiple processes.
22
- */
23
- export interface SemaphoreProvider {
24
- /**
25
- * A Semaphore instance that manages access to the 'call' shared resource.
26
- * This semaphore ensures that only one process can access the 'call' resource at a time.
27
- */
28
- readonly callSemaphore: Semaphore;
29
- }
30
- export declare function createSimpleSemaphoreProvider(): SemaphoreProvider;
31
- //# sourceMappingURL=Semaphore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/common/Semaphore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEzB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,wBAAgB,oBAAoB,IAAI,SAAS,CAKhD;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAEjC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;CAClC;AAED,wBAAgB,6BAA6B,IAAI,iBAAiB,CAIjE"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSimpleSemaphoreProvider = exports.createDummySemaphore = void 0;
4
- function createDummySemaphore() {
5
- return {
6
- acquire: () => Promise.resolve(),
7
- release: () => Promise.resolve(),
8
- };
9
- }
10
- exports.createDummySemaphore = createDummySemaphore;
11
- function createSimpleSemaphoreProvider() {
12
- return {
13
- callSemaphore: createDummySemaphore(),
14
- };
15
- }
16
- exports.createSimpleSemaphoreProvider = createSimpleSemaphoreProvider;