twilio-video 2.32.1 → 2.33.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 (316) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +3 -3
  3. package/dist/twilio-video.js +2290 -931
  4. package/dist/twilio-video.min.js +23 -22
  5. package/es5/cancelableroompromise.js.map +1 -1
  6. package/es5/connect.js +18 -8
  7. package/es5/connect.js.map +1 -1
  8. package/es5/createlocaltrack.js.map +1 -1
  9. package/es5/createlocaltracks.js +24 -18
  10. package/es5/createlocaltracks.js.map +1 -1
  11. package/es5/data/receiver.js.map +1 -1
  12. package/es5/data/sender.js.map +1 -1
  13. package/es5/data/transceiver.js.map +1 -1
  14. package/es5/data/transport.js.map +1 -1
  15. package/es5/encodingparameters.js.map +1 -1
  16. package/es5/eventtarget.js +10 -6
  17. package/es5/eventtarget.js.map +1 -1
  18. package/es5/index.js.map +1 -1
  19. package/es5/insights/applicationmonitor.js +93 -0
  20. package/es5/insights/applicationmonitor.js.map +1 -0
  21. package/es5/insights/computepressuremonitor.js +185 -0
  22. package/es5/insights/computepressuremonitor.js.map +1 -0
  23. package/es5/insights/events/application.js +46 -0
  24. package/es5/insights/events/application.js.map +1 -0
  25. package/es5/insights/events/getusermedia.js +51 -0
  26. package/es5/insights/events/getusermedia.js.map +1 -0
  27. package/es5/insights/events/network.js +54 -0
  28. package/es5/insights/events/network.js.map +1 -0
  29. package/es5/insights/events/quality.js +56 -0
  30. package/es5/insights/events/quality.js.map +1 -0
  31. package/es5/insights/events/system.js +31 -0
  32. package/es5/insights/events/system.js.map +1 -0
  33. package/es5/insights/events/track.js +58 -0
  34. package/es5/insights/events/track.js.map +1 -0
  35. package/es5/insights/monitorregistry.js +43 -0
  36. package/es5/insights/monitorregistry.js.map +1 -0
  37. package/es5/insights/networkmonitor.js +73 -0
  38. package/es5/insights/networkmonitor.js.map +1 -0
  39. package/es5/insights/resourcemonitor.js +56 -0
  40. package/es5/insights/resourcemonitor.js.map +1 -0
  41. package/es5/insights/statsmonitor.js +441 -0
  42. package/es5/insights/statsmonitor.js.map +1 -0
  43. package/es5/insights/telemetry.js +160 -0
  44. package/es5/insights/telemetry.js.map +1 -0
  45. package/es5/localparticipant.js +16 -16
  46. package/es5/localparticipant.js.map +1 -1
  47. package/es5/media/track/audiotrack.js.map +1 -1
  48. package/es5/media/track/capturevideoframes.js.map +1 -1
  49. package/es5/media/track/index.js.map +1 -1
  50. package/es5/media/track/localaudiotrack.js +6 -6
  51. package/es5/media/track/localaudiotrack.js.map +1 -1
  52. package/es5/media/track/localaudiotrackpublication.js +1 -1
  53. package/es5/media/track/localaudiotrackpublication.js.map +1 -1
  54. package/es5/media/track/localdatatrack.js.map +1 -1
  55. package/es5/media/track/localdatatrackpublication.js +1 -1
  56. package/es5/media/track/localdatatrackpublication.js.map +1 -1
  57. package/es5/media/track/localmediatrack.js +4 -4
  58. package/es5/media/track/localmediatrack.js.map +1 -1
  59. package/es5/media/track/localtrackpublication.js +10 -6
  60. package/es5/media/track/localtrackpublication.js.map +1 -1
  61. package/es5/media/track/localvideotrack.js +1 -1
  62. package/es5/media/track/localvideotrack.js.map +1 -1
  63. package/es5/media/track/localvideotrackpublication.js +1 -1
  64. package/es5/media/track/localvideotrackpublication.js.map +1 -1
  65. package/es5/media/track/mediatrack.js +4 -5
  66. package/es5/media/track/mediatrack.js.map +1 -1
  67. package/es5/media/track/noisecancellationimpl.js +8 -8
  68. package/es5/media/track/noisecancellationimpl.js.map +1 -1
  69. package/es5/media/track/receiver.js.map +1 -1
  70. package/es5/media/track/remoteaudiotrack.js +1 -1
  71. package/es5/media/track/remoteaudiotrack.js.map +1 -1
  72. package/es5/media/track/remoteaudiotrackpublication.js +1 -1
  73. package/es5/media/track/remoteaudiotrackpublication.js.map +1 -1
  74. package/es5/media/track/remotedatatrack.js +9 -5
  75. package/es5/media/track/remotedatatrack.js.map +1 -1
  76. package/es5/media/track/remotedatatrackpublication.js +1 -1
  77. package/es5/media/track/remotedatatrackpublication.js.map +1 -1
  78. package/es5/media/track/remotemediatrack.js +12 -8
  79. package/es5/media/track/remotemediatrack.js.map +1 -1
  80. package/es5/media/track/remotetrackpublication.js +2 -2
  81. package/es5/media/track/remotetrackpublication.js.map +1 -1
  82. package/es5/media/track/remotevideotrack.js +1 -1
  83. package/es5/media/track/remotevideotrack.js.map +1 -1
  84. package/es5/media/track/remotevideotrackpublication.js +1 -1
  85. package/es5/media/track/remotevideotrackpublication.js.map +1 -1
  86. package/es5/media/track/sender.js +1 -1
  87. package/es5/media/track/sender.js.map +1 -1
  88. package/es5/media/track/trackpublication.js +1 -1
  89. package/es5/media/track/trackpublication.js.map +1 -1
  90. package/es5/media/track/transceiver.js.map +1 -1
  91. package/es5/media/track/videoprocessoreventobserver.js +2 -2
  92. package/es5/media/track/videoprocessoreventobserver.js.map +1 -1
  93. package/es5/media/track/videotrack.js +2 -3
  94. package/es5/media/track/videotrack.js.map +1 -1
  95. package/es5/networkqualityconfiguration.js.map +1 -1
  96. package/es5/noisecancellationadapter.js +11 -12
  97. package/es5/noisecancellationadapter.js.map +1 -1
  98. package/es5/participant.js +20 -16
  99. package/es5/participant.js.map +1 -1
  100. package/es5/preflight/getCombinedConnectionStats.js +10 -11
  101. package/es5/preflight/getCombinedConnectionStats.js.map +1 -1
  102. package/es5/preflight/getturncredentials.js +2 -3
  103. package/es5/preflight/getturncredentials.js.map +1 -1
  104. package/es5/preflight/makestat.js +11 -8
  105. package/es5/preflight/makestat.js.map +1 -1
  106. package/es5/preflight/mos.js +2 -3
  107. package/es5/preflight/mos.js.map +1 -1
  108. package/es5/preflight/preflighttest.js +16 -16
  109. package/es5/preflight/preflighttest.js.map +1 -1
  110. package/es5/preflight/syntheticaudio.js +1 -2
  111. package/es5/preflight/syntheticaudio.js.map +1 -1
  112. package/es5/preflight/syntheticvideo.js +2 -3
  113. package/es5/preflight/syntheticvideo.js.map +1 -1
  114. package/es5/queueingeventemitter.js +10 -6
  115. package/es5/queueingeventemitter.js.map +1 -1
  116. package/es5/remoteparticipant.js +11 -7
  117. package/es5/remoteparticipant.js.map +1 -1
  118. package/es5/room.js +26 -10
  119. package/es5/room.js.map +1 -1
  120. package/es5/signaling/index.js +3 -3
  121. package/es5/signaling/index.js.map +1 -1
  122. package/es5/signaling/localparticipant.js.map +1 -1
  123. package/es5/signaling/localtrackpublication.js.map +1 -1
  124. package/es5/signaling/participant.js.map +1 -1
  125. package/es5/signaling/recording.js.map +1 -1
  126. package/es5/signaling/remoteparticipant.js.map +1 -1
  127. package/es5/signaling/remotetrackpublication.js.map +1 -1
  128. package/es5/signaling/room.js +1 -1
  129. package/es5/signaling/room.js.map +1 -1
  130. package/es5/signaling/track.js.map +1 -1
  131. package/es5/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  132. package/es5/signaling/v2/cancelableroomsignalingpromise.js.map +1 -1
  133. package/es5/signaling/v2/dominantspeakersignaling.js.map +1 -1
  134. package/es5/signaling/v2/iceconnectionmonitor.js +0 -1
  135. package/es5/signaling/v2/iceconnectionmonitor.js.map +1 -1
  136. package/es5/signaling/v2/index.js.map +1 -1
  137. package/es5/signaling/v2/localparticipant.js +2 -2
  138. package/es5/signaling/v2/localparticipant.js.map +1 -1
  139. package/es5/signaling/v2/localtrackpublication.js +2 -2
  140. package/es5/signaling/v2/localtrackpublication.js.map +1 -1
  141. package/es5/signaling/v2/mediasignaling.js +2 -2
  142. package/es5/signaling/v2/mediasignaling.js.map +1 -1
  143. package/es5/signaling/v2/networkqualitymonitor.js.map +1 -1
  144. package/es5/signaling/v2/networkqualitysignaling.js.map +1 -1
  145. package/es5/signaling/v2/peerconnection.js +30 -27
  146. package/es5/signaling/v2/peerconnection.js.map +1 -1
  147. package/es5/signaling/v2/peerconnectionmanager.js +10 -6
  148. package/es5/signaling/v2/peerconnectionmanager.js.map +1 -1
  149. package/es5/signaling/v2/publisherhintsignaling.js.map +1 -1
  150. package/es5/signaling/v2/recording.js.map +1 -1
  151. package/es5/signaling/v2/remoteparticipant.js.map +1 -1
  152. package/es5/signaling/v2/remotetrackpublication.js.map +1 -1
  153. package/es5/signaling/v2/renderhintssignaling.js +0 -1
  154. package/es5/signaling/v2/renderhintssignaling.js.map +1 -1
  155. package/es5/signaling/v2/room.js +20 -176
  156. package/es5/signaling/v2/room.js.map +1 -1
  157. package/es5/signaling/v2/trackprioritysignaling.js.map +1 -1
  158. package/es5/signaling/v2/trackswitchoffsignaling.js.map +1 -1
  159. package/es5/signaling/v2/transcriptionsignaling.js.map +1 -1
  160. package/es5/signaling/v2/twilioconnectiontransport.js +2 -2
  161. package/es5/signaling/v2/twilioconnectiontransport.js.map +1 -1
  162. package/es5/statemachine.js +19 -15
  163. package/es5/statemachine.js.map +1 -1
  164. package/es5/stats/icereportfactory.js.map +1 -1
  165. package/es5/stats/localaudiotrackstats.js.map +1 -1
  166. package/es5/stats/localtrackstats.js.map +1 -1
  167. package/es5/stats/localvideotrackstats.js +5 -0
  168. package/es5/stats/localvideotrackstats.js.map +1 -1
  169. package/es5/stats/networkqualityaudiostats.js.map +1 -1
  170. package/es5/stats/networkqualityrecvstats.js.map +1 -1
  171. package/es5/stats/networkqualitysendstats.js.map +1 -1
  172. package/es5/stats/networkqualityvideostats.js.map +1 -1
  173. package/es5/stats/peerconnectionreportfactory.js +13 -9
  174. package/es5/stats/peerconnectionreportfactory.js.map +1 -1
  175. package/es5/stats/receiverreport.js.map +1 -1
  176. package/es5/stats/receiverreportfactory.js.map +1 -1
  177. package/es5/stats/remoteaudiotrackstats.js +0 -7
  178. package/es5/stats/remoteaudiotrackstats.js.map +1 -1
  179. package/es5/stats/remotetrackstats.js +7 -0
  180. package/es5/stats/remotetrackstats.js.map +1 -1
  181. package/es5/stats/remotevideotrackstats.js +7 -0
  182. package/es5/stats/remotevideotrackstats.js.map +1 -1
  183. package/es5/stats/senderreport.js.map +1 -1
  184. package/es5/stats/senderreportfactory.js.map +1 -1
  185. package/es5/stats/statsreport.js.map +1 -1
  186. package/es5/stats/trackstats.js.map +1 -1
  187. package/es5/transceiver.js.map +1 -1
  188. package/es5/twilioconnection.js +34 -30
  189. package/es5/twilioconnection.js.map +1 -1
  190. package/es5/util/asyncvar.js.map +1 -1
  191. package/es5/util/backoff.js.map +1 -1
  192. package/es5/util/browserdetection.js.map +1 -1
  193. package/es5/util/cancelablepromise.js +11 -7
  194. package/es5/util/cancelablepromise.js.map +1 -1
  195. package/es5/util/constants.js +7 -8
  196. package/es5/util/constants.js.map +1 -1
  197. package/es5/util/detectsilentaudio.js.map +1 -1
  198. package/es5/util/detectsilentvideo.js +3 -3
  199. package/es5/util/detectsilentvideo.js.map +1 -1
  200. package/es5/util/documentvisibilitymonitor.js +1 -1
  201. package/es5/util/documentvisibilitymonitor.js.map +1 -1
  202. package/es5/util/dynamicimport.js +2 -2
  203. package/es5/util/dynamicimport.js.map +1 -1
  204. package/es5/util/eventobserver.js +1 -2
  205. package/es5/util/eventobserver.js.map +1 -1
  206. package/es5/util/filter.js.map +1 -1
  207. package/es5/util/index.js +58 -27
  208. package/es5/util/index.js.map +1 -1
  209. package/es5/util/insightspublisher/index.js +5 -6
  210. package/es5/util/insightspublisher/index.js.map +1 -1
  211. package/es5/util/insightspublisher/null.js.map +1 -1
  212. package/es5/util/localmediarestartdeferreds.js.map +1 -1
  213. package/es5/util/log.js +10 -6
  214. package/es5/util/log.js.map +1 -1
  215. package/es5/util/networkmonitor.js.map +1 -1
  216. package/es5/util/nullobserver.js +0 -1
  217. package/es5/util/nullobserver.js.map +1 -1
  218. package/es5/util/sdp/index.js +19 -15
  219. package/es5/util/sdp/index.js.map +1 -1
  220. package/es5/util/sdp/issue8329.js +11 -11
  221. package/es5/util/sdp/issue8329.js.map +1 -1
  222. package/es5/util/sdp/simulcast.js +5 -5
  223. package/es5/util/sdp/simulcast.js.map +1 -1
  224. package/es5/util/sid.js +1 -1
  225. package/es5/util/sid.js.map +1 -1
  226. package/es5/util/support.js +1 -2
  227. package/es5/util/support.js.map +1 -1
  228. package/es5/util/timeout.js.map +1 -1
  229. package/es5/util/timeoutpromise.js +10 -6
  230. package/es5/util/timeoutpromise.js.map +1 -1
  231. package/es5/util/twilio-video-errors.js.map +1 -1
  232. package/es5/util/twilioerror.js +11 -7
  233. package/es5/util/twilioerror.js.map +1 -1
  234. package/es5/util/twiliowarning.js +0 -1
  235. package/es5/util/twiliowarning.js.map +1 -1
  236. package/es5/util/validate.js +4 -4
  237. package/es5/util/validate.js.map +1 -1
  238. package/es5/vendor/inherits.js.map +1 -1
  239. package/es5/vendor/loglevel.js.map +1 -1
  240. package/es5/webaudio/audiocontext.js.map +1 -1
  241. package/es5/webaudio/detectsilence.js.map +1 -1
  242. package/es5/webaudio/workaround180748.js +1 -1
  243. package/es5/webaudio/workaround180748.js.map +1 -1
  244. package/es5/webrtc/getstats.js +27 -13
  245. package/es5/webrtc/getstats.js.map +1 -1
  246. package/es5/webrtc/getusermedia.js.map +1 -1
  247. package/es5/webrtc/mediastream.js.map +1 -1
  248. package/es5/webrtc/mediastreamtrack.js.map +1 -1
  249. package/es5/webrtc/rtcicecandidate.js.map +1 -1
  250. package/es5/webrtc/rtcpeerconnection/chrome.js +16 -12
  251. package/es5/webrtc/rtcpeerconnection/chrome.js.map +1 -1
  252. package/es5/webrtc/rtcpeerconnection/firefox.js +14 -10
  253. package/es5/webrtc/rtcpeerconnection/firefox.js.map +1 -1
  254. package/es5/webrtc/rtcpeerconnection/index.js.map +1 -1
  255. package/es5/webrtc/rtcpeerconnection/safari.js +12 -8
  256. package/es5/webrtc/rtcpeerconnection/safari.js.map +1 -1
  257. package/es5/webrtc/rtcsessiondescription/index.js.map +1 -1
  258. package/es5/webrtc/util/index.js +10 -6
  259. package/es5/webrtc/util/index.js.map +1 -1
  260. package/es5/webrtc/util/latch.js +1 -1
  261. package/es5/webrtc/util/latch.js.map +1 -1
  262. package/es5/webrtc/util/sdp.js +7 -7
  263. package/es5/webrtc/util/sdp.js.map +1 -1
  264. package/eslint.config.js +308 -0
  265. package/lib/connect.js +18 -3
  266. package/lib/createlocaltracks.ts +9 -3
  267. package/lib/index.ts +1 -1
  268. package/lib/insights/applicationmonitor.js +101 -0
  269. package/lib/insights/computepressuremonitor.js +149 -0
  270. package/lib/insights/events/application.js +49 -0
  271. package/lib/insights/events/getusermedia.js +54 -0
  272. package/lib/insights/events/network.js +55 -0
  273. package/lib/insights/events/quality.js +59 -0
  274. package/lib/insights/events/system.js +32 -0
  275. package/lib/insights/events/track.js +58 -0
  276. package/lib/insights/monitorregistry.js +44 -0
  277. package/lib/insights/networkmonitor.js +82 -0
  278. package/lib/insights/resourcemonitor.js +63 -0
  279. package/lib/insights/statsmonitor.js +442 -0
  280. package/lib/insights/telemetry.js +172 -0
  281. package/lib/media/track/mediatrack.js +0 -1
  282. package/lib/media/track/videotrack.js +0 -1
  283. package/lib/noisecancellationadapter.ts +1 -1
  284. package/lib/preflight/getCombinedConnectionStats.ts +1 -2
  285. package/lib/preflight/makestat.ts +1 -1
  286. package/lib/preflight/mos.ts +1 -1
  287. package/lib/preflight/preflighttest.ts +2 -2
  288. package/lib/room.js +12 -0
  289. package/lib/signaling/v2/cancelableroomsignalingpromise.js +3 -3
  290. package/lib/signaling/v2/iceconnectionmonitor.js +0 -1
  291. package/lib/signaling/v2/peerconnection.js +1 -2
  292. package/lib/signaling/v2/renderhintssignaling.js +0 -1
  293. package/lib/signaling/v2/room.js +23 -200
  294. package/lib/stats/localvideotrackstats.js +5 -0
  295. package/lib/stats/remoteaudiotrackstats.js +0 -7
  296. package/lib/stats/remotetrackstats.js +7 -0
  297. package/lib/stats/remotevideotrackstats.js +7 -0
  298. package/lib/util/constants.js +1 -1
  299. package/lib/util/eventobserver.js +1 -2
  300. package/lib/util/index.js +41 -13
  301. package/lib/util/insightspublisher/index.js +1 -2
  302. package/lib/util/log.js +3 -3
  303. package/lib/util/nullobserver.js +0 -1
  304. package/lib/util/support.js +2 -2
  305. package/lib/util/twiliowarning.js +0 -1
  306. package/lib/webrtc/getstats.js +27 -10
  307. package/package.json +34 -34
  308. package/tsdef/AudioProcessor.d.ts +2 -2
  309. package/tsdef/LocalTrackOptions.d.ts +4 -4
  310. package/tsdef/PreflightTypes.d.ts +3 -3
  311. package/tsdef/index.d.ts +1 -1
  312. package/tsdef/loglevel.d.ts +43 -43
  313. package/tsdef/types.d.ts +6 -6
  314. package/.babelrc +0 -3
  315. package/.eslintrc.json +0 -369
  316. package/tsdef/.eslintrc.json +0 -17
package/CHANGELOG.md CHANGED
@@ -1,7 +1,33 @@
1
- The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.org/). Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 2.x is the lastest Video JavaScript SDK.
1
+ The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.org/). Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 2.x is the latest Video JavaScript SDK.
2
2
 
3
3
  **Version 1.x reached End of Life on September 8th, 2021.** See the changelog entry [here](https://www.twilio.com/changelog/end-of-life-complete-for-unsupported-versions-of-the-programmable-video-sdk). Support for the 1.x version ended on December 4th, 2020.
4
4
 
5
+ 2.33.0 (November 6, 2025)
6
+ ====================
7
+
8
+ New Features
9
+ ------------
10
+
11
+ ### Enhanced Telemetry
12
+
13
+ Added new telemetry events for enhanced monitoring and diagnostics when `insights` is enabled:
14
+
15
+ - **Application Lifecycle** - Monitor application visibility changes (backgrounded/resumed) and termination
16
+ events.
17
+ - **Network Information** - Track connection type, bandwidth, RTT, and data saver mode changes.
18
+ - **Quality Limitation** - Report video quality limitation reasons (cpu, bandwidth, or other constraints).
19
+ - **CPU Pressure** - Monitor system CPU pressure states using the `Compute Pressure API`.
20
+ - **getUserMedia** - Track media acquisition success, permission denials, and failures.
21
+ - **Track Warning** - Report freeze counts for video tracks.
22
+
23
+ These events are automatically collected and reported through the existing insights pipeline when connecting to a
24
+ Room.
25
+
26
+ Changes
27
+ ------------
28
+
29
+ - `isSupported` now returns `true` for Microsoft Edge on iOS.
30
+
5
31
  2.32.1 (August 1, 2025)
6
32
  ====================
7
33
 
package/README.md CHANGED
@@ -24,7 +24,7 @@ Browser Support
24
24
  | | Chrome | Edge (Chromium) | Firefox | Safari | WebView |
25
25
  | ------------|--------|-----------------|---------|--------|---------|
26
26
  | **Android** | ✓ | - | ✓ | - | - |
27
- | **iOS** | ✓ | - | * | ✓ | ✓ |
27
+ | **iOS** | ✓ | | * | ✓ | ✓ |
28
28
  | **Linux** | ✓ | - | ✓ | - | - |
29
29
  | **macOS** | ✓ | ✓ ** | ✓ | ✓ | - |
30
30
  | **Windows** | ✓ | ✓ ** | ✓ | - | - |
@@ -60,7 +60,7 @@ function participantDisconnected(participant: Video.RemoteParticipant) {
60
60
  Alternatively, you can import just the definitions you need like so:
61
61
 
62
62
  ```ts
63
- import { RemoteParticiant } from 'twilio-video';
63
+ import { RemoteParticipant } from 'twilio-video';
64
64
 
65
65
  function participantDisconnected(participant: RemoteParticipant) {
66
66
  console.log('Participant "%s" disconnected', participant.identity);
@@ -74,7 +74,7 @@ Releases of twilio-video.js are hosted on a CDN, and you can include these
74
74
  directly in your web app using a <script> tag.
75
75
 
76
76
  ```html
77
- <script src="//sdk.twilio.com/js/video/releases/2.32.1/twilio-video.min.js"></script>
77
+ <script src="//sdk.twilio.com/js/video/releases/2.33.0/twilio-video.min.js"></script>
78
78
  ```
79
79
 
80
80
  Using this method, twilio-video.js will set a browser global: