twilio-video 2.32.1 → 2.34.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 (327) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/LICENSE.md +1 -1
  3. package/README.md +3 -3
  4. package/dist/twilio-video.js +2783 -1136
  5. package/dist/twilio-video.min.js +24 -23
  6. package/es5/cancelableroompromise.js.map +1 -1
  7. package/es5/connect.js +18 -9
  8. package/es5/connect.js.map +1 -1
  9. package/es5/createlocaltrack.js.map +1 -1
  10. package/es5/createlocaltracks.js +24 -18
  11. package/es5/createlocaltracks.js.map +1 -1
  12. package/es5/data/receiver.js.map +1 -1
  13. package/es5/data/sender.js.map +1 -1
  14. package/es5/data/transceiver.js.map +1 -1
  15. package/es5/data/transport.js.map +1 -1
  16. package/es5/encodingparameters.js.map +1 -1
  17. package/es5/eventtarget.js +10 -6
  18. package/es5/eventtarget.js.map +1 -1
  19. package/es5/index.js.map +1 -1
  20. package/es5/insights/applicationmonitor.js +93 -0
  21. package/es5/insights/applicationmonitor.js.map +1 -0
  22. package/es5/insights/computepressuremonitor.js +185 -0
  23. package/es5/insights/computepressuremonitor.js.map +1 -0
  24. package/es5/insights/events/application.js +46 -0
  25. package/es5/insights/events/application.js.map +1 -0
  26. package/es5/insights/events/getusermedia.js +51 -0
  27. package/es5/insights/events/getusermedia.js.map +1 -0
  28. package/es5/insights/events/network.js +54 -0
  29. package/es5/insights/events/network.js.map +1 -0
  30. package/es5/insights/events/peerconnection.js +164 -0
  31. package/es5/insights/events/peerconnection.js.map +1 -0
  32. package/es5/insights/events/quality.js +56 -0
  33. package/es5/insights/events/quality.js.map +1 -0
  34. package/es5/insights/events/room.js +56 -0
  35. package/es5/insights/events/room.js.map +1 -0
  36. package/es5/insights/events/system.js +31 -0
  37. package/es5/insights/events/system.js.map +1 -0
  38. package/es5/insights/events/track.js +58 -0
  39. package/es5/insights/events/track.js.map +1 -0
  40. package/es5/insights/monitorregistry.js +43 -0
  41. package/es5/insights/monitorregistry.js.map +1 -0
  42. package/es5/insights/networkmonitor.js +73 -0
  43. package/es5/insights/networkmonitor.js.map +1 -0
  44. package/es5/insights/resourcemonitor.js +56 -0
  45. package/es5/insights/resourcemonitor.js.map +1 -0
  46. package/es5/insights/statsmonitor.js +441 -0
  47. package/es5/insights/statsmonitor.js.map +1 -0
  48. package/es5/insights/telemetry.js +164 -0
  49. package/es5/insights/telemetry.js.map +1 -0
  50. package/es5/localparticipant.js +16 -16
  51. package/es5/localparticipant.js.map +1 -1
  52. package/es5/media/track/audiotrack.js.map +1 -1
  53. package/es5/media/track/capturevideoframes.js.map +1 -1
  54. package/es5/media/track/index.js.map +1 -1
  55. package/es5/media/track/localaudiotrack.js +6 -6
  56. package/es5/media/track/localaudiotrack.js.map +1 -1
  57. package/es5/media/track/localaudiotrackpublication.js +1 -1
  58. package/es5/media/track/localaudiotrackpublication.js.map +1 -1
  59. package/es5/media/track/localdatatrack.js.map +1 -1
  60. package/es5/media/track/localdatatrackpublication.js +1 -1
  61. package/es5/media/track/localdatatrackpublication.js.map +1 -1
  62. package/es5/media/track/localmediatrack.js +4 -4
  63. package/es5/media/track/localmediatrack.js.map +1 -1
  64. package/es5/media/track/localtrackpublication.js +10 -6
  65. package/es5/media/track/localtrackpublication.js.map +1 -1
  66. package/es5/media/track/localvideotrack.js +1 -1
  67. package/es5/media/track/localvideotrack.js.map +1 -1
  68. package/es5/media/track/localvideotrackpublication.js +1 -1
  69. package/es5/media/track/localvideotrackpublication.js.map +1 -1
  70. package/es5/media/track/mediatrack.js +4 -5
  71. package/es5/media/track/mediatrack.js.map +1 -1
  72. package/es5/media/track/noisecancellationimpl.js +8 -8
  73. package/es5/media/track/noisecancellationimpl.js.map +1 -1
  74. package/es5/media/track/receiver.js.map +1 -1
  75. package/es5/media/track/remoteaudiotrack.js +1 -1
  76. package/es5/media/track/remoteaudiotrack.js.map +1 -1
  77. package/es5/media/track/remoteaudiotrackpublication.js +1 -1
  78. package/es5/media/track/remoteaudiotrackpublication.js.map +1 -1
  79. package/es5/media/track/remotedatatrack.js +9 -5
  80. package/es5/media/track/remotedatatrack.js.map +1 -1
  81. package/es5/media/track/remotedatatrackpublication.js +1 -1
  82. package/es5/media/track/remotedatatrackpublication.js.map +1 -1
  83. package/es5/media/track/remotemediatrack.js +12 -8
  84. package/es5/media/track/remotemediatrack.js.map +1 -1
  85. package/es5/media/track/remotetrackpublication.js +2 -2
  86. package/es5/media/track/remotetrackpublication.js.map +1 -1
  87. package/es5/media/track/remotevideotrack.js +1 -1
  88. package/es5/media/track/remotevideotrack.js.map +1 -1
  89. package/es5/media/track/remotevideotrackpublication.js +1 -1
  90. package/es5/media/track/remotevideotrackpublication.js.map +1 -1
  91. package/es5/media/track/sender.js +1 -1
  92. package/es5/media/track/sender.js.map +1 -1
  93. package/es5/media/track/trackpublication.js +1 -1
  94. package/es5/media/track/trackpublication.js.map +1 -1
  95. package/es5/media/track/transceiver.js.map +1 -1
  96. package/es5/media/track/videoprocessoreventobserver.js +2 -2
  97. package/es5/media/track/videoprocessoreventobserver.js.map +1 -1
  98. package/es5/media/track/videotrack.js +2 -3
  99. package/es5/media/track/videotrack.js.map +1 -1
  100. package/es5/networkqualityconfiguration.js.map +1 -1
  101. package/es5/noisecancellationadapter.js +11 -12
  102. package/es5/noisecancellationadapter.js.map +1 -1
  103. package/es5/participant.js +20 -16
  104. package/es5/participant.js.map +1 -1
  105. package/es5/preflight/getCombinedConnectionStats.js +10 -11
  106. package/es5/preflight/getCombinedConnectionStats.js.map +1 -1
  107. package/es5/preflight/getturncredentials.js +2 -3
  108. package/es5/preflight/getturncredentials.js.map +1 -1
  109. package/es5/preflight/makestat.js +11 -8
  110. package/es5/preflight/makestat.js.map +1 -1
  111. package/es5/preflight/mos.js +2 -3
  112. package/es5/preflight/mos.js.map +1 -1
  113. package/es5/preflight/preflighttest.js +16 -16
  114. package/es5/preflight/preflighttest.js.map +1 -1
  115. package/es5/preflight/syntheticaudio.js +1 -2
  116. package/es5/preflight/syntheticaudio.js.map +1 -1
  117. package/es5/preflight/syntheticvideo.js +2 -3
  118. package/es5/preflight/syntheticvideo.js.map +1 -1
  119. package/es5/queueingeventemitter.js +10 -6
  120. package/es5/queueingeventemitter.js.map +1 -1
  121. package/es5/remoteparticipant.js +11 -7
  122. package/es5/remoteparticipant.js.map +1 -1
  123. package/es5/room.js +30 -10
  124. package/es5/room.js.map +1 -1
  125. package/es5/signaling/index.js +3 -3
  126. package/es5/signaling/index.js.map +1 -1
  127. package/es5/signaling/localparticipant.js.map +1 -1
  128. package/es5/signaling/localtrackpublication.js.map +1 -1
  129. package/es5/signaling/participant.js.map +1 -1
  130. package/es5/signaling/recording.js.map +1 -1
  131. package/es5/signaling/remoteparticipant.js.map +1 -1
  132. package/es5/signaling/remotetrackpublication.js.map +1 -1
  133. package/es5/signaling/room.js +1 -1
  134. package/es5/signaling/room.js.map +1 -1
  135. package/es5/signaling/track.js.map +1 -1
  136. package/es5/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  137. package/es5/signaling/v2/cancelableroomsignalingpromise.js.map +1 -1
  138. package/es5/signaling/v2/dominantspeakersignaling.js.map +1 -1
  139. package/es5/signaling/v2/iceconnectionmonitor.js +0 -1
  140. package/es5/signaling/v2/iceconnectionmonitor.js.map +1 -1
  141. package/es5/signaling/v2/index.js.map +1 -1
  142. package/es5/signaling/v2/localparticipant.js +2 -2
  143. package/es5/signaling/v2/localparticipant.js.map +1 -1
  144. package/es5/signaling/v2/localtrackpublication.js +2 -2
  145. package/es5/signaling/v2/localtrackpublication.js.map +1 -1
  146. package/es5/signaling/v2/mediasignaling.js +2 -2
  147. package/es5/signaling/v2/mediasignaling.js.map +1 -1
  148. package/es5/signaling/v2/networkqualitymonitor.js.map +1 -1
  149. package/es5/signaling/v2/networkqualitysignaling.js.map +1 -1
  150. package/es5/signaling/v2/peerconnection.js +181 -48
  151. package/es5/signaling/v2/peerconnection.js.map +1 -1
  152. package/es5/signaling/v2/peerconnectionmanager.js +10 -6
  153. package/es5/signaling/v2/peerconnectionmanager.js.map +1 -1
  154. package/es5/signaling/v2/publisherhintsignaling.js.map +1 -1
  155. package/es5/signaling/v2/recording.js.map +1 -1
  156. package/es5/signaling/v2/remoteparticipant.js.map +1 -1
  157. package/es5/signaling/v2/remotetrackpublication.js.map +1 -1
  158. package/es5/signaling/v2/renderhintssignaling.js +0 -1
  159. package/es5/signaling/v2/renderhintssignaling.js.map +1 -1
  160. package/es5/signaling/v2/room.js +20 -176
  161. package/es5/signaling/v2/room.js.map +1 -1
  162. package/es5/signaling/v2/trackprioritysignaling.js.map +1 -1
  163. package/es5/signaling/v2/trackswitchoffsignaling.js.map +1 -1
  164. package/es5/signaling/v2/transcriptionsignaling.js.map +1 -1
  165. package/es5/signaling/v2/twilioconnectiontransport.js +2 -2
  166. package/es5/signaling/v2/twilioconnectiontransport.js.map +1 -1
  167. package/es5/statemachine.js +19 -15
  168. package/es5/statemachine.js.map +1 -1
  169. package/es5/stats/icereportfactory.js.map +1 -1
  170. package/es5/stats/localaudiotrackstats.js.map +1 -1
  171. package/es5/stats/localtrackstats.js.map +1 -1
  172. package/es5/stats/localvideotrackstats.js +5 -0
  173. package/es5/stats/localvideotrackstats.js.map +1 -1
  174. package/es5/stats/networkqualityaudiostats.js.map +1 -1
  175. package/es5/stats/networkqualityrecvstats.js.map +1 -1
  176. package/es5/stats/networkqualitysendstats.js.map +1 -1
  177. package/es5/stats/networkqualityvideostats.js.map +1 -1
  178. package/es5/stats/peerconnectionreportfactory.js +13 -9
  179. package/es5/stats/peerconnectionreportfactory.js.map +1 -1
  180. package/es5/stats/receiverreport.js.map +1 -1
  181. package/es5/stats/receiverreportfactory.js.map +1 -1
  182. package/es5/stats/remoteaudiotrackstats.js +0 -7
  183. package/es5/stats/remoteaudiotrackstats.js.map +1 -1
  184. package/es5/stats/remotetrackstats.js +7 -0
  185. package/es5/stats/remotetrackstats.js.map +1 -1
  186. package/es5/stats/remotevideotrackstats.js +7 -0
  187. package/es5/stats/remotevideotrackstats.js.map +1 -1
  188. package/es5/stats/senderreport.js.map +1 -1
  189. package/es5/stats/senderreportfactory.js.map +1 -1
  190. package/es5/stats/statsreport.js.map +1 -1
  191. package/es5/stats/trackstats.js.map +1 -1
  192. package/es5/transceiver.js.map +1 -1
  193. package/es5/twilioconnection.js +34 -30
  194. package/es5/twilioconnection.js.map +1 -1
  195. package/es5/util/asyncvar.js.map +1 -1
  196. package/es5/util/backoff.js.map +1 -1
  197. package/es5/util/browserdetection.js.map +1 -1
  198. package/es5/util/cancelablepromise.js +11 -7
  199. package/es5/util/cancelablepromise.js.map +1 -1
  200. package/es5/util/constants.js +7 -8
  201. package/es5/util/constants.js.map +1 -1
  202. package/es5/util/detectsilentaudio.js.map +1 -1
  203. package/es5/util/detectsilentvideo.js +3 -3
  204. package/es5/util/detectsilentvideo.js.map +1 -1
  205. package/es5/util/documentvisibilitymonitor.js +1 -1
  206. package/es5/util/documentvisibilitymonitor.js.map +1 -1
  207. package/es5/util/dynamicimport.js +2 -2
  208. package/es5/util/dynamicimport.js.map +1 -1
  209. package/es5/util/eventobserver.js +1 -2
  210. package/es5/util/eventobserver.js.map +1 -1
  211. package/es5/util/filter.js.map +1 -1
  212. package/es5/util/index.js +58 -27
  213. package/es5/util/index.js.map +1 -1
  214. package/es5/util/insightspublisher/index.js +5 -6
  215. package/es5/util/insightspublisher/index.js.map +1 -1
  216. package/es5/util/insightspublisher/null.js.map +1 -1
  217. package/es5/util/localmediarestartdeferreds.js.map +1 -1
  218. package/es5/util/log.js +10 -6
  219. package/es5/util/log.js.map +1 -1
  220. package/es5/util/networkmonitor.js.map +1 -1
  221. package/es5/util/nullobserver.js +0 -1
  222. package/es5/util/nullobserver.js.map +1 -1
  223. package/es5/util/sdp/index.js +83 -169
  224. package/es5/util/sdp/index.js.map +1 -1
  225. package/es5/util/sdp/issue8329.js +11 -11
  226. package/es5/util/sdp/issue8329.js.map +1 -1
  227. package/es5/util/sdp/simulcast.js +5 -5
  228. package/es5/util/sdp/simulcast.js.map +1 -1
  229. package/es5/util/sid.js +1 -1
  230. package/es5/util/sid.js.map +1 -1
  231. package/es5/util/support.js +1 -2
  232. package/es5/util/support.js.map +1 -1
  233. package/es5/util/timeout.js.map +1 -1
  234. package/es5/util/timeoutpromise.js +10 -6
  235. package/es5/util/timeoutpromise.js.map +1 -1
  236. package/es5/util/twilio-video-errors.js.map +1 -1
  237. package/es5/util/twilioerror.js +11 -7
  238. package/es5/util/twilioerror.js.map +1 -1
  239. package/es5/util/twiliowarning.js +0 -1
  240. package/es5/util/twiliowarning.js.map +1 -1
  241. package/es5/util/validate.js +4 -4
  242. package/es5/util/validate.js.map +1 -1
  243. package/es5/vendor/inherits.js.map +1 -1
  244. package/es5/vendor/loglevel.js.map +1 -1
  245. package/es5/webaudio/audiocontext.js.map +1 -1
  246. package/es5/webaudio/detectsilence.js.map +1 -1
  247. package/es5/webaudio/workaround180748.js +1 -1
  248. package/es5/webaudio/workaround180748.js.map +1 -1
  249. package/es5/webrtc/getstats.js +27 -13
  250. package/es5/webrtc/getstats.js.map +1 -1
  251. package/es5/webrtc/getusermedia.js.map +1 -1
  252. package/es5/webrtc/mediastream.js.map +1 -1
  253. package/es5/webrtc/mediastreamtrack.js.map +1 -1
  254. package/es5/webrtc/rtcicecandidate.js.map +1 -1
  255. package/es5/webrtc/rtcpeerconnection/chrome.js +32 -13
  256. package/es5/webrtc/rtcpeerconnection/chrome.js.map +1 -1
  257. package/es5/webrtc/rtcpeerconnection/firefox.js +17 -10
  258. package/es5/webrtc/rtcpeerconnection/firefox.js.map +1 -1
  259. package/es5/webrtc/rtcpeerconnection/index.js.map +1 -1
  260. package/es5/webrtc/rtcpeerconnection/safari.js +19 -14
  261. package/es5/webrtc/rtcpeerconnection/safari.js.map +1 -1
  262. package/es5/webrtc/rtcsessiondescription/index.js.map +1 -1
  263. package/es5/webrtc/util/index.js +10 -6
  264. package/es5/webrtc/util/index.js.map +1 -1
  265. package/es5/webrtc/util/latch.js +1 -1
  266. package/es5/webrtc/util/latch.js.map +1 -1
  267. package/es5/webrtc/util/sdp.js +7 -7
  268. package/es5/webrtc/util/sdp.js.map +1 -1
  269. package/eslint.config.js +308 -0
  270. package/lib/connect.js +18 -4
  271. package/lib/createlocaltracks.ts +9 -3
  272. package/lib/index.ts +1 -1
  273. package/lib/insights/applicationmonitor.js +101 -0
  274. package/lib/insights/computepressuremonitor.js +149 -0
  275. package/lib/insights/events/application.js +49 -0
  276. package/lib/insights/events/getusermedia.js +54 -0
  277. package/lib/insights/events/network.js +55 -0
  278. package/lib/insights/events/peerconnection.js +166 -0
  279. package/lib/insights/events/quality.js +59 -0
  280. package/lib/insights/events/room.js +61 -0
  281. package/lib/insights/events/system.js +32 -0
  282. package/lib/insights/events/track.js +58 -0
  283. package/lib/insights/monitorregistry.js +44 -0
  284. package/lib/insights/networkmonitor.js +82 -0
  285. package/lib/insights/resourcemonitor.js +63 -0
  286. package/lib/insights/statsmonitor.js +442 -0
  287. package/lib/insights/telemetry.js +178 -0
  288. package/lib/media/track/mediatrack.js +0 -1
  289. package/lib/media/track/videotrack.js +0 -1
  290. package/lib/noisecancellationadapter.ts +1 -1
  291. package/lib/preflight/getCombinedConnectionStats.ts +1 -2
  292. package/lib/preflight/makestat.ts +1 -1
  293. package/lib/preflight/mos.ts +1 -1
  294. package/lib/preflight/preflighttest.ts +2 -2
  295. package/lib/room.js +16 -0
  296. package/lib/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  297. package/lib/signaling/v2/iceconnectionmonitor.js +0 -1
  298. package/lib/signaling/v2/peerconnection.js +169 -27
  299. package/lib/signaling/v2/renderhintssignaling.js +0 -1
  300. package/lib/signaling/v2/room.js +23 -200
  301. package/lib/stats/localvideotrackstats.js +5 -0
  302. package/lib/stats/remoteaudiotrackstats.js +0 -7
  303. package/lib/stats/remotetrackstats.js +7 -0
  304. package/lib/stats/remotevideotrackstats.js +7 -0
  305. package/lib/util/constants.js +1 -1
  306. package/lib/util/eventobserver.js +1 -2
  307. package/lib/util/index.js +41 -13
  308. package/lib/util/insightspublisher/index.js +1 -2
  309. package/lib/util/log.js +3 -3
  310. package/lib/util/nullobserver.js +0 -1
  311. package/lib/util/sdp/index.js +77 -172
  312. package/lib/util/support.js +2 -2
  313. package/lib/util/twiliowarning.js +0 -1
  314. package/lib/webrtc/getstats.js +27 -10
  315. package/lib/webrtc/rtcpeerconnection/chrome.js +16 -1
  316. package/lib/webrtc/rtcpeerconnection/firefox.js +3 -0
  317. package/lib/webrtc/rtcpeerconnection/safari.js +6 -5
  318. package/package.json +34 -34
  319. package/tsdef/AudioProcessor.d.ts +2 -2
  320. package/tsdef/LocalTrackOptions.d.ts +4 -4
  321. package/tsdef/PreflightTypes.d.ts +3 -3
  322. package/tsdef/index.d.ts +1 -1
  323. package/tsdef/loglevel.d.ts +43 -43
  324. package/tsdef/types.d.ts +6 -6
  325. package/.babelrc +0 -3
  326. package/.eslintrc.json +0 -369
  327. package/tsdef/.eslintrc.json +0 -17
@@ -0,0 +1,185 @@
1
+ /**
2
+ * @fileOverview
3
+ * Custom Compute Pressure monitor using the Compute Pressure API.
4
+ * @internal
5
+ */
6
+ 'use strict';
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ var __generator = (this && this.__generator) || function (thisArg, body) {
17
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
18
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
19
+ function verb(n) { return function (v) { return step([n, v]); }; }
20
+ function step(op) {
21
+ if (f) throw new TypeError("Generator is already executing.");
22
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
23
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
24
+ if (y = 0, t) op = [op[0] & 2, t.value];
25
+ switch (op[0]) {
26
+ case 0: case 1: t = op; break;
27
+ case 4: _.label++; return { value: op[1], done: false };
28
+ case 5: _.label++; y = op[1]; op = [0]; continue;
29
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
30
+ default:
31
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
32
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
33
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
34
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
35
+ if (t[2]) _.ops.pop();
36
+ _.trys.pop(); continue;
37
+ }
38
+ op = body.call(thisArg, _);
39
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
41
+ }
42
+ };
43
+ /**
44
+ * @typedef {'cpu' | 'gpu'} PressureSource
45
+ * @typedef {'nominal' | 'fair' | 'serious' | 'critical'} PressureState
46
+ *
47
+ * NOTE(lrivas): Remove once we update to a TypeScript version with definitions for the Compute Pressure API types.
48
+ */
49
+ /**
50
+ * @typedef {{
51
+ * source: PressureSource,
52
+ * state: PressureState,
53
+ * time: DOMHighResTimeStamp
54
+ * }} PressureRecord
55
+ */
56
+ /**
57
+ * @typedef {{ sampleInterval?: number }} PressureObserverOptions
58
+ */
59
+ /**
60
+ * @callback PressureObserverCallback
61
+ * @param {PressureRecord[]} records
62
+ * @param {PressureObserver} observer
63
+ */
64
+ /**
65
+ * @typedef {{
66
+ * disconnect(): void,
67
+ * observe(source: PressureSource, options?: PressureObserverOptions): Promise<void>,
68
+ * unobserve(source: PressureSource): void,
69
+ * takeRecords(): PressureRecord[]
70
+ * }} PressureObserver
71
+ */
72
+ /**
73
+ * @typedef {new (callback: PressureObserverCallback) => PressureObserver} PressureObserverConstructor
74
+ */
75
+ /**
76
+ * @callback PressureChangeCallback
77
+ * @param {PressureRecord} record
78
+ * @returns {void}
79
+ */
80
+ /**
81
+ * Helper to get the PressureObserver constructor from the global scope.
82
+ * @returns {PressureObserverConstructor | null}
83
+ */
84
+ function getPressureObserver() {
85
+ if (typeof globalThis !== 'undefined' && typeof globalThis.PressureObserver === 'function') {
86
+ return /** @type {PressureObserverConstructor} */ (globalThis.PressureObserver);
87
+ }
88
+ return null;
89
+ }
90
+ var ComputePressureMonitor = /** @class */ (function () {
91
+ function ComputePressureMonitor() {
92
+ /** @type {PressureState | null} */
93
+ this._lastCpuPressure = null;
94
+ /** @type {PressureObserver | null} */
95
+ this._cpuPressureObserver = null;
96
+ /** @type {number} */
97
+ this._sampleInterval = 2000; // 2 seconds
98
+ /** @type {PressureChangeCallback[]} */
99
+ this._cpuPressureChangeListeners = [];
100
+ /** @type {PressureObserverConstructor | null} */
101
+ }
102
+ /**
103
+ * Start watching CPU pressure changes. This is an asynchronous operation.
104
+ * @param {PressureChangeCallback} callback - The callback function to call when the pressure changes.
105
+ * @returns {Promise<void>}
106
+ */
107
+ ComputePressureMonitor.prototype.watchCpuPressure = function (callback) {
108
+ return __awaiter(this, void 0, void 0, function () {
109
+ var PressureObserver;
110
+ var _this = this;
111
+ return __generator(this, function (_a) {
112
+ switch (_a.label) {
113
+ case 0:
114
+ if (typeof callback !== 'function') {
115
+ throw new Error('The CPU pressure change callback must be a function');
116
+ }
117
+ PressureObserver = getPressureObserver();
118
+ if (!PressureObserver) {
119
+ throw new Error('PressureObserver is not supported in this environment');
120
+ }
121
+ this._cpuPressureChangeListeners.push(callback);
122
+ if (!!this._cpuPressureObserver) return [3 /*break*/, 2];
123
+ this._cpuPressureObserver = new PressureObserver(function (records) { return _this._handleCpuPressureRecords(records); });
124
+ return [4 /*yield*/, this._cpuPressureObserver.observe('cpu', {
125
+ sampleInterval: this._sampleInterval,
126
+ })];
127
+ case 1:
128
+ _a.sent();
129
+ _a.label = 2;
130
+ case 2: return [2 /*return*/];
131
+ }
132
+ });
133
+ });
134
+ };
135
+ /**
136
+ * @returns {boolean}
137
+ */
138
+ ComputePressureMonitor.prototype.isSupported = function () {
139
+ return !!getPressureObserver();
140
+ };
141
+ /**
142
+ * Stop watching CPU pressure changes for the given callback.
143
+ * @param {PressureChangeCallback} callback - The callback function to stop listening to.
144
+ * @returns {void}
145
+ */
146
+ ComputePressureMonitor.prototype.unwatchCpuPressure = function (callback) {
147
+ this._cpuPressureChangeListeners = this._cpuPressureChangeListeners.filter(function (cb) { return cb !== callback; });
148
+ if (this._cpuPressureChangeListeners.length === 0) {
149
+ this.cleanup();
150
+ }
151
+ };
152
+ /**
153
+ * @param {PressureRecord[]} records - An array containing all the PressureRecords observed since the last callback.
154
+ * @returns {void}
155
+ */
156
+ ComputePressureMonitor.prototype._handleCpuPressureRecords = function (records) {
157
+ if (!Array.isArray(records) || records.length === 0) {
158
+ return;
159
+ }
160
+ var lastRecord = records[records.length - 1];
161
+ if (!lastRecord) {
162
+ return;
163
+ }
164
+ var hasChanged = lastRecord.state !== this._lastCpuPressure;
165
+ if (hasChanged) {
166
+ this._lastCpuPressure = lastRecord.state;
167
+ this._cpuPressureChangeListeners.forEach(function (callback) { return callback(lastRecord); });
168
+ }
169
+ };
170
+ /**
171
+ * Clean up all the resources created by the monitor.
172
+ * @returns {void}
173
+ */
174
+ ComputePressureMonitor.prototype.cleanup = function () {
175
+ if (this._cpuPressureObserver) {
176
+ this._cpuPressureObserver.disconnect();
177
+ this._cpuPressureObserver = null;
178
+ }
179
+ this._cpuPressureChangeListeners = [];
180
+ this._lastCpuPressure = null;
181
+ };
182
+ return ComputePressureMonitor;
183
+ }());
184
+ module.exports = new ComputePressureMonitor();
185
+ //# sourceMappingURL=computepressuremonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computepressuremonitor.js","sourceRoot":"","sources":["../../lib/insights/computepressuremonitor.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+ /**
3
+ * Application lifecycle telemetry events
4
+ * @internal
5
+ */
6
+ var ApplicationEvents = /** @class */ (function () {
7
+ /**
8
+ * @param {import('../telemetry')} telemetry - The telemetry instance
9
+ */
10
+ function ApplicationEvents(telemetry) {
11
+ this._telemetry = telemetry;
12
+ }
13
+ /**
14
+ * Emit when application becomes visible (resumed from background)
15
+ * @returns {void}
16
+ */
17
+ ApplicationEvents.prototype.resumed = function () {
18
+ this._telemetry.info({
19
+ group: 'application',
20
+ name: 'resumed'
21
+ });
22
+ };
23
+ /**
24
+ * Emit when application becomes hidden (sent to background)
25
+ * @returns {void}
26
+ */
27
+ ApplicationEvents.prototype.backgrounded = function () {
28
+ this._telemetry.info({
29
+ group: 'application',
30
+ name: 'backgrounded'
31
+ });
32
+ };
33
+ /**
34
+ * Emit when application is about to be terminated (beforeunload)
35
+ * @returns {void}
36
+ */
37
+ ApplicationEvents.prototype.terminated = function () {
38
+ this._telemetry.info({
39
+ group: 'application',
40
+ name: 'terminated'
41
+ });
42
+ };
43
+ return ApplicationEvents;
44
+ }());
45
+ module.exports = ApplicationEvents;
46
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../lib/insights/events/application.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;GAGG;AACH;IACE;;OAEG;IACH,2BAAY,SAAS;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,mCAAO,GAAP;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,wCAAY,GAAZ;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,sCAAU,GAAV;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IACH,wBAAC;AAAD,CAAC,AAxCD,IAwCC;AAED,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+ /**
3
+ * GetUserMedia telemetry events
4
+ * @internal
5
+ */
6
+ var GetUserMediaEvents = /** @class */ (function () {
7
+ /**
8
+ * @param {import('../telemetry')} telemetry - The telemetry instance
9
+ */
10
+ function GetUserMediaEvents(telemetry) {
11
+ this._telemetry = telemetry;
12
+ }
13
+ /**
14
+ * Emit when getUserMedia succeeds
15
+ * @returns {void}
16
+ */
17
+ GetUserMediaEvents.prototype.succeeded = function () {
18
+ this._telemetry.info({
19
+ group: 'get-user-media',
20
+ name: 'succeeded'
21
+ });
22
+ };
23
+ /**
24
+ * Emit when getUserMedia is denied by user
25
+ * @returns {void}
26
+ */
27
+ GetUserMediaEvents.prototype.denied = function () {
28
+ this._telemetry.info({
29
+ group: 'get-user-media',
30
+ name: 'denied'
31
+ });
32
+ };
33
+ /**
34
+ * Emit when getUserMedia fails (non-permission error)
35
+ * @param {Error} error - The error from getUserMedia
36
+ * @returns {void}
37
+ */
38
+ GetUserMediaEvents.prototype.failed = function (error) {
39
+ this._telemetry.info({
40
+ group: 'get-user-media',
41
+ name: 'failed',
42
+ payload: {
43
+ name: error.name,
44
+ message: error.message
45
+ }
46
+ });
47
+ };
48
+ return GetUserMediaEvents;
49
+ }());
50
+ module.exports = GetUserMediaEvents;
51
+ //# sourceMappingURL=getusermedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getusermedia.js","sourceRoot":"","sources":["../../../lib/insights/events/getusermedia.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;GAGG;AACH;IACE;;OAEG;IACH,4BAAY,SAAS;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,sCAAS,GAAT;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,mCAAM,GAAN;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,mCAAM,GAAN,UAAO,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB;SACF,CAAC,CAAC;IACL,CAAC;IACH,yBAAC;AAAD,CAAC,AA7CD,IA6CC;AAED,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+ /**
3
+ * Network telemetry events
4
+ * @internal
5
+ */
6
+ var NetworkEvents = /** @class */ (function () {
7
+ /**
8
+ * @param {import('../telemetry')} telemetry - The telemetry instance
9
+ */
10
+ function NetworkEvents(telemetry) {
11
+ this._telemetry = telemetry;
12
+ }
13
+ /**
14
+ * Emit when network type changes (from ICE candidate)
15
+ * @param {string} networkType - Network type: 'wifi', 'cellular', 'ethernet', 'vpn', etc.
16
+ * @returns {void}
17
+ */
18
+ NetworkEvents.prototype.typeChanged = function (networkType) {
19
+ this._telemetry.info({
20
+ group: 'network',
21
+ name: 'network-type-changed',
22
+ payload: { networkType: networkType }
23
+ });
24
+ };
25
+ /**
26
+ * Emit when network information changes (from Network Information API)
27
+ * @param {Object} info - Network information
28
+ * @param {number} [info.downlink] - Downlink speed in Mbps
29
+ * @param {number} [info.downlinkMax] - Maximum downlink speed in Mbps
30
+ * @param {('slow-2g'|'2g'|'3g'|'4g')} [info.effectiveType] - Effective connection type
31
+ * @param {number} [info.rtt] - Round-trip time in milliseconds
32
+ * @param {string} [info.saveData] - Data saver mode: 'true' or 'false'
33
+ * @param {('bluetooth'|'cellular'|'ethernet'|'none'|'wifi'|'wimax'|'other'|'unknown')} [info.type] - Connection type
34
+ * @returns {void}
35
+ */
36
+ NetworkEvents.prototype.informationChanged = function (_a) {
37
+ var downlink = _a.downlink, downlinkMax = _a.downlinkMax, effectiveType = _a.effectiveType, rtt = _a.rtt, saveData = _a.saveData, type = _a.type;
38
+ this._telemetry.info({
39
+ group: 'network',
40
+ name: 'network-information-changed',
41
+ payload: {
42
+ downlink: downlink,
43
+ downlinkMax: downlinkMax,
44
+ effectiveType: effectiveType,
45
+ rtt: rtt,
46
+ saveData: saveData,
47
+ type: type
48
+ }
49
+ });
50
+ };
51
+ return NetworkEvents;
52
+ }());
53
+ module.exports = NetworkEvents;
54
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../lib/insights/events/network.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;GAGG;AACH;IACE;;OAEG;IACH,uBAAY,SAAS;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,mCAAW,GAAX,UAAY,WAAW;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,EAAE,WAAW,aAAA,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,0CAAkB,GAAlB,UAAmB,EAA6D;YAA3D,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,aAAa,mBAAA,EAAE,GAAG,SAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAAA;QAC5E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,WAAW,aAAA;gBACX,aAAa,eAAA;gBACb,GAAG,KAAA;gBACH,QAAQ,UAAA;gBACR,IAAI,MAAA;aACL;SACF,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC,AA9CD,IA8CC;AAED,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC"}
@@ -0,0 +1,164 @@
1
+ // @ts-check
2
+ 'use strict';
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ var filterObject = require('../../util').filterObject;
15
+ /** @typedef {Object} IceCandidatePayload
16
+ * Definition for local and remote ICE candidate telemetry payloads
17
+ * @property {string} [candidateType] - Alias for RTCIceCandidate.type
18
+ * @property {string} [ip] - Alias for RTCIceCandidate.address
19
+ * @property {number} [port]
20
+ * @property {number} [priority]
21
+ * @property {string} [protocol]
22
+ * @property {string} [relatedAddress]
23
+ * @property {number} [relatedPort]
24
+ * @property {string} [tcpType]
25
+ * @property {string} [transportId] - Alias for RTCIceCandidate.sdpMid
26
+ * @property {number} [networkCost]
27
+ */
28
+ /**
29
+ * PeerConnection telemetry events
30
+ * @internal
31
+ */
32
+ var PeerConnectionEvents = /** @class */ (function () {
33
+ /**
34
+ * @param {import('../telemetry')} telemetry - The telemetry instance
35
+ */
36
+ function PeerConnectionEvents(telemetry) {
37
+ this._telemetry = telemetry;
38
+ }
39
+ /**
40
+ * Emit connection state change event
41
+ * @param {string} peerConnectionId - Peer connection identifier
42
+ * @param {('new'|'connecting'|'connected'|'disconnected'|'failed'|'closed')} state - Connection state
43
+ * @returns {void}
44
+ */
45
+ PeerConnectionEvents.prototype.connectionState = function (peerConnectionId, state) {
46
+ this._telemetry.debug({
47
+ group: 'pc-connection-state',
48
+ name: state,
49
+ payload: { peerConnectionId: peerConnectionId }
50
+ });
51
+ };
52
+ /**
53
+ * Emit signaling state change event
54
+ * @param {string} peerConnectionId - Peer connection identifier
55
+ * @param {('stable'|'have-local-offer'|'have-remote-offer'|'have-local-pranswer'|'have-remote-pranswer'|'closed')} state - Signaling state
56
+ * @returns {void}
57
+ */
58
+ PeerConnectionEvents.prototype.signalingState = function (peerConnectionId, state) {
59
+ this._telemetry.debug({
60
+ group: 'pc-signaling-state',
61
+ name: state,
62
+ payload: { peerConnectionId: peerConnectionId }
63
+ });
64
+ };
65
+ /**
66
+ * Emit ice gathering state change event
67
+ * @param {string} peerConnectionId - Peer connection identifier
68
+ * @param {('new'|'gathering'|'complete')} state - Ice gathering state
69
+ * @returns {void}
70
+ */
71
+ PeerConnectionEvents.prototype.iceGatheringState = function (peerConnectionId, state) {
72
+ this._telemetry.debug({
73
+ group: 'ice-gathering-state',
74
+ name: state,
75
+ payload: { peerConnectionId: peerConnectionId }
76
+ });
77
+ };
78
+ /**
79
+ * Emit ice connection state change event
80
+ * @param {string} peerConnectionId - Peer connection identifier
81
+ * @param {('new'|'checking'|'connected'|'completed'|'disconnected'|'failed'|'closed')} state - Ice connection state
82
+ * @returns {void}
83
+ */
84
+ PeerConnectionEvents.prototype.iceConnectionState = function (peerConnectionId, state) {
85
+ var level = state === 'failed' ? 'error' : 'debug';
86
+ this._telemetry[level]({
87
+ group: 'ice-connection-state',
88
+ name: state,
89
+ payload: { peerConnectionId: peerConnectionId }
90
+ });
91
+ };
92
+ /**
93
+ * Emit DTLS transport state change event
94
+ * @param {string} peerConnectionId - Peer connection identifier
95
+ * @param {('new'|'connecting'|'connected'|'closed'|'failed')} state - DTLS transport state
96
+ * @returns {void}
97
+ */
98
+ PeerConnectionEvents.prototype.dtlsTransportState = function (peerConnectionId, state) {
99
+ var level = state === 'failed' ? 'error' : 'debug';
100
+ this._telemetry[level]({
101
+ group: 'dtls-transport-state',
102
+ name: state,
103
+ payload: { peerConnectionId: peerConnectionId }
104
+ });
105
+ };
106
+ /**
107
+ * Emit a telemetry event when a new ICE candidate is added
108
+ * @param {string} peerConnectionId - The peer connection identifier
109
+ * @param {RTCIceCandidate} iceCandidate - The native RTCIceCandidate object
110
+ * @param {boolean} [isRemote = false] - Whether the candidate is remote
111
+ * @returns {void}
112
+ */
113
+ PeerConnectionEvents.prototype.iceCandidate = function (peerConnectionId, iceCandidate, isRemote) {
114
+ if (isRemote === void 0) { isRemote = false; }
115
+ this._telemetry.debug({
116
+ group: 'ice-candidate',
117
+ name: 'ice-candidate',
118
+ payload: __assign({ peerConnectionId: peerConnectionId, isRemote: isRemote ? 'true' : 'false' }, this._toIceCandidatePayload(iceCandidate))
119
+ });
120
+ };
121
+ /**
122
+ * Emit a telemetry event when the selected ICE candidate pair changes
123
+ * @param {string} peerConnectionId - The peer connection identifier
124
+ * @param {RTCIceCandidatePair} pair - The selected candidate pair
125
+ * @returns {void}
126
+ */
127
+ PeerConnectionEvents.prototype.selectedCandidatePair = function (peerConnectionId, pair) {
128
+ this._telemetry.debug({
129
+ group: 'ice-candidate',
130
+ name: 'selected-ice-candidate-pair',
131
+ payload: filterObject({
132
+ peerConnectionId: peerConnectionId,
133
+ localCandidate: pair.local ? this._toIceCandidatePayload(pair.local) : null,
134
+ remoteCandidate: pair.remote ? this._toIceCandidatePayload(pair.remote) : null
135
+ }, null)
136
+ });
137
+ };
138
+ /**
139
+ * Convert RTCIceCandidate to telemetry payload format
140
+ * @private
141
+ * @param {RTCIceCandidate} iceCandidate - The RTCIceCandidate object
142
+ * @returns {IceCandidatePayload} The telemetry payload format
143
+ */
144
+ PeerConnectionEvents.prototype._toIceCandidatePayload = function (iceCandidate) {
145
+ var _a;
146
+ var match = (_a = iceCandidate.candidate) === null || _a === void 0 ? void 0 : _a.match(/network-cost\s+(\d+)/);
147
+ var networkCost = match ? parseInt(match[1], 10) : null;
148
+ return filterObject({
149
+ 'candidateType': iceCandidate.type,
150
+ 'ip': iceCandidate.address,
151
+ 'port': iceCandidate.port,
152
+ 'priority': iceCandidate.priority,
153
+ 'protocol': iceCandidate.protocol,
154
+ 'relatedAddress': iceCandidate.relatedAddress,
155
+ 'relatedPort': iceCandidate.relatedPort,
156
+ 'tcpType': iceCandidate.tcpType,
157
+ 'transportId': iceCandidate.sdpMid,
158
+ 'networkCost': networkCost
159
+ }, null);
160
+ };
161
+ return PeerConnectionEvents;
162
+ }());
163
+ module.exports = PeerConnectionEvents;
164
+ //# sourceMappingURL=peerconnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peerconnection.js","sourceRoot":"","sources":["../../../lib/insights/events/peerconnection.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+ /**
3
+ * Quality telemetry events
4
+ * @internal
5
+ */
6
+ var QualityEvents = /** @class */ (function () {
7
+ /**
8
+ * @param {import('../telemetry')} telemetry - The telemetry instance
9
+ */
10
+ function QualityEvents(telemetry) {
11
+ this._telemetry = telemetry;
12
+ }
13
+ /**
14
+ * Emit when quality limitation reason changes for a track
15
+ * @param {string} trackSid - Track SID
16
+ * @param {('none'|'cpu'|'bandwidth'|'other')} qualityLimitationReason - Limitation reason
17
+ * @returns {void}
18
+ */
19
+ QualityEvents.prototype.limitationChanged = function (trackSid, qualityLimitationReason) {
20
+ this._telemetry.info({
21
+ group: 'quality',
22
+ name: 'quality-limitation-state-changed',
23
+ payload: {
24
+ trackSid: trackSid,
25
+ qualityLimitationReason: qualityLimitationReason
26
+ }
27
+ });
28
+ };
29
+ /**
30
+ * Emit stats report
31
+ * @param {Record<string, any>} payload - Stats report payload
32
+ * @returns {void}
33
+ */
34
+ QualityEvents.prototype.statsReport = function (payload) {
35
+ this._telemetry.info({
36
+ group: 'quality',
37
+ name: 'stats-report',
38
+ payload: payload
39
+ });
40
+ };
41
+ /**
42
+ * Emit active ICE candidate pair
43
+ * @param {Record<string, any>} payload - ICE candidate pair payload
44
+ * @returns {void}
45
+ */
46
+ QualityEvents.prototype.iceCandidatePair = function (payload) {
47
+ this._telemetry.info({
48
+ group: 'quality',
49
+ name: 'active-ice-candidate-pair',
50
+ payload: payload
51
+ });
52
+ };
53
+ return QualityEvents;
54
+ }());
55
+ module.exports = QualityEvents;
56
+ //# sourceMappingURL=quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../lib/insights/events/quality.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;GAGG;AACH;IACE;;OAEG;IACH,uBAAY,SAAS;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,yCAAiB,GAAjB,UAAkB,QAAQ,EAAE,uBAAuB;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,uBAAuB,yBAAA;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,mCAAW,GAAX,UAAY,OAAO;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,cAAc;YACpB,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,wCAAgB,GAAhB,UAAiB,OAAO;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,2BAA2B;YACjC,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC,AAlDD,IAkDC;AAED,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+ var MediaConnectionError = require('../../util/twilio-video-errors').MediaConnectionError;
3
+ /**
4
+ * @typedef {import('../../util/twilio-video-errors').MediaConnectionError} MediaConnectionError
5
+ * @typedef {import('../../util/twilio-video-errors').SignalingConnectionDisconnectedError} SignalingConnectionDisconnectedError
6
+ */
7
+ /**
8
+ * Room telemetry events
9
+ * @internal
10
+ */
11
+ var RoomEvents = /** @class */ (function () {
12
+ /**
13
+ * @param {import('../telemetry')} telemetry - The telemetry instance
14
+ */
15
+ function RoomEvents(telemetry) {
16
+ this._telemetry = telemetry;
17
+ }
18
+ /**
19
+ * Emit when room enters reconnecting state
20
+ * @param {MediaConnectionError|SignalingConnectionDisconnectedError} error - The error that caused reconnection
21
+ * @returns {void}
22
+ */
23
+ RoomEvents.prototype.reconnecting = function (error) {
24
+ var reason = error instanceof MediaConnectionError ? 'media' : 'signaling';
25
+ this._telemetry.info({
26
+ group: 'room',
27
+ name: 'reconnecting',
28
+ payload: {
29
+ reason: reason
30
+ }
31
+ });
32
+ };
33
+ /**
34
+ * Emit when room successfully reconnected
35
+ * @returns {void}
36
+ */
37
+ RoomEvents.prototype.reconnected = function () {
38
+ this._telemetry.info({
39
+ group: 'room',
40
+ name: 'reconnected'
41
+ });
42
+ };
43
+ /**
44
+ * Emit when room disconnected
45
+ * @returns {void}
46
+ */
47
+ RoomEvents.prototype.disconnected = function () {
48
+ this._telemetry.info({
49
+ group: 'room',
50
+ name: 'disconnected'
51
+ });
52
+ };
53
+ return RoomEvents;
54
+ }());
55
+ module.exports = RoomEvents;
56
+ //# sourceMappingURL=room.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../lib/insights/events/room.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEL,IAAA,oBAAoB,GAAK,OAAO,CAAC,gCAAgC,CAAC,qBAA9C,CAA+C;AAE3E;;;GAGG;AAEH;;;GAGG;AACH;IACE;;OAEG;IACH,oBAAY,SAAS;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,iCAAY,GAAZ,UAAa,KAAK;QAChB,IAAM,MAAM,GAAG,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,MAAM,QAAA;aACP;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gCAAW,GAAX;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,iCAAY,GAAZ;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IACH,iBAAC;AAAD,CAAC,AA7CD,IA6CC;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC"}