@microsoft/live-share-media 2.0.0-internal.4 → 2.0.0-internal.6

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 (329) hide show
  1. package/.mocharc.cjs +12 -0
  2. package/.nycrc.json +1 -1
  3. package/README.md +30 -31
  4. package/bin/cjs/IMediaPlayer.d.ts.map +1 -0
  5. package/bin/cjs/IMediaPlayer.js.map +1 -0
  6. package/bin/{LiveMediaSession.d.ts → cjs/LiveMediaSession.d.ts} +16 -9
  7. package/bin/cjs/LiveMediaSession.d.ts.map +1 -0
  8. package/bin/{LiveMediaSession.js → cjs/LiveMediaSession.js} +31 -25
  9. package/bin/cjs/LiveMediaSession.js.map +1 -0
  10. package/bin/{LiveMediaSessionCoordinator.d.ts → cjs/LiveMediaSessionCoordinator.d.ts} +5 -4
  11. package/bin/cjs/LiveMediaSessionCoordinator.d.ts.map +1 -0
  12. package/bin/{LiveMediaSessionCoordinator.js → cjs/LiveMediaSessionCoordinator.js} +60 -50
  13. package/bin/cjs/LiveMediaSessionCoordinator.js.map +1 -0
  14. package/bin/{LiveMediaSessionCoordinatorSuspension.d.ts → cjs/LiveMediaSessionCoordinatorSuspension.d.ts} +1 -1
  15. package/bin/cjs/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
  16. package/bin/cjs/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
  17. package/bin/{MediaPlayerSynchronizer.d.ts → cjs/MediaPlayerSynchronizer.d.ts} +7 -6
  18. package/bin/cjs/MediaPlayerSynchronizer.d.ts.map +1 -0
  19. package/bin/{MediaPlayerSynchronizer.js → cjs/MediaPlayerSynchronizer.js} +36 -36
  20. package/bin/cjs/MediaPlayerSynchronizer.js.map +1 -0
  21. package/bin/{MediaSessionActionThrottler.d.ts → cjs/MediaSessionActionThrottler.d.ts} +1 -1
  22. package/bin/cjs/MediaSessionActionThrottler.d.ts.map +1 -0
  23. package/bin/cjs/MediaSessionActionThrottler.js.map +1 -0
  24. package/bin/cjs/MediaSessionExtensions.d.ts.map +1 -0
  25. package/bin/cjs/MediaSessionExtensions.js.map +1 -0
  26. package/bin/{RepeatedActionThrottler.d.ts → cjs/RepeatedActionThrottler.d.ts} +2 -2
  27. package/bin/cjs/RepeatedActionThrottler.d.ts.map +1 -0
  28. package/bin/{RepeatedActionThrottler.js → cjs/RepeatedActionThrottler.js} +2 -2
  29. package/bin/cjs/RepeatedActionThrottler.js.map +1 -0
  30. package/bin/{VolumeManager.d.ts → cjs/VolumeManager.d.ts} +6 -6
  31. package/bin/cjs/VolumeManager.d.ts.map +1 -0
  32. package/bin/{VolumeManager.js → cjs/VolumeManager.js} +5 -5
  33. package/bin/cjs/VolumeManager.js.map +1 -0
  34. package/bin/cjs/index.d.ts +14 -0
  35. package/bin/cjs/index.d.ts.map +1 -0
  36. package/bin/{internals → cjs}/index.js +9 -8
  37. package/bin/cjs/index.js.map +1 -0
  38. package/bin/{internals → cjs/internals}/GroupCoordinatorState.d.ts +10 -9
  39. package/bin/cjs/internals/GroupCoordinatorState.d.ts.map +1 -0
  40. package/bin/{internals → cjs/internals}/GroupCoordinatorState.js +44 -44
  41. package/bin/cjs/internals/GroupCoordinatorState.js.map +1 -0
  42. package/bin/{internals → cjs/internals}/GroupPlaybackPosition.d.ts +5 -4
  43. package/bin/cjs/internals/GroupPlaybackPosition.d.ts.map +1 -0
  44. package/bin/{internals → cjs/internals}/GroupPlaybackPosition.js +2 -2
  45. package/bin/cjs/internals/GroupPlaybackPosition.js.map +1 -0
  46. package/bin/{internals → cjs/internals}/GroupPlaybackRate.d.ts +2 -2
  47. package/bin/cjs/internals/GroupPlaybackRate.d.ts.map +1 -0
  48. package/bin/cjs/internals/GroupPlaybackRate.js.map +1 -0
  49. package/bin/{internals → cjs/internals}/GroupPlaybackTrack.d.ts +3 -3
  50. package/bin/cjs/internals/GroupPlaybackTrack.d.ts.map +1 -0
  51. package/bin/cjs/internals/GroupPlaybackTrack.js.map +1 -0
  52. package/bin/{internals → cjs/internals}/GroupPlaybackTrackData.d.ts +3 -3
  53. package/bin/cjs/internals/GroupPlaybackTrackData.d.ts.map +1 -0
  54. package/bin/{internals → cjs/internals}/GroupPlaybackTrackData.js +2 -2
  55. package/bin/cjs/internals/GroupPlaybackTrackData.js.map +1 -0
  56. package/bin/{internals → cjs/internals}/GroupTransportState.d.ts +6 -6
  57. package/bin/cjs/internals/GroupTransportState.d.ts.map +1 -0
  58. package/bin/{internals → cjs/internals}/GroupTransportState.js +2 -2
  59. package/bin/cjs/internals/GroupTransportState.js.map +1 -0
  60. package/bin/cjs/internals/consts.d.ts.map +1 -0
  61. package/bin/cjs/internals/consts.js.map +1 -0
  62. package/bin/cjs/internals/errors.d.ts.map +1 -0
  63. package/bin/cjs/internals/errors.js.map +1 -0
  64. package/bin/{internals → cjs/internals}/interfaces.d.ts +2 -2
  65. package/bin/cjs/internals/interfaces.d.ts.map +1 -0
  66. package/bin/{internals → cjs/internals}/interfaces.js.map +1 -1
  67. package/bin/cjs/package.json +1 -0
  68. package/bin/esm/IMediaPlayer.d.ts +21 -0
  69. package/bin/esm/IMediaPlayer.d.ts.map +1 -0
  70. package/bin/esm/IMediaPlayer.js +6 -0
  71. package/bin/esm/IMediaPlayer.js.map +1 -0
  72. package/bin/esm/LiveMediaSession.d.ts +97 -0
  73. package/bin/esm/LiveMediaSession.d.ts.map +1 -0
  74. package/bin/esm/LiveMediaSession.js +257 -0
  75. package/bin/esm/LiveMediaSession.js.map +1 -0
  76. package/bin/esm/LiveMediaSessionCoordinator.d.ts +273 -0
  77. package/bin/esm/LiveMediaSessionCoordinator.d.ts.map +1 -0
  78. package/bin/esm/LiveMediaSessionCoordinator.js +475 -0
  79. package/bin/esm/LiveMediaSessionCoordinator.js.map +1 -0
  80. package/bin/esm/LiveMediaSessionCoordinatorSuspension.d.ts +20 -0
  81. package/bin/esm/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
  82. package/bin/esm/LiveMediaSessionCoordinatorSuspension.js +24 -0
  83. package/bin/esm/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
  84. package/bin/esm/MediaPlayerSynchronizer.d.ts +204 -0
  85. package/bin/esm/MediaPlayerSynchronizer.d.ts.map +1 -0
  86. package/bin/esm/MediaPlayerSynchronizer.js +570 -0
  87. package/bin/esm/MediaPlayerSynchronizer.js.map +1 -0
  88. package/bin/esm/MediaSessionActionThrottler.d.ts +12 -0
  89. package/bin/esm/MediaSessionActionThrottler.d.ts.map +1 -0
  90. package/bin/esm/MediaSessionActionThrottler.js +10 -0
  91. package/bin/esm/MediaSessionActionThrottler.js.map +1 -0
  92. package/bin/esm/MediaSessionExtensions.d.ts +177 -0
  93. package/bin/esm/MediaSessionExtensions.d.ts.map +1 -0
  94. package/bin/esm/MediaSessionExtensions.js +23 -0
  95. package/bin/esm/MediaSessionExtensions.js.map +1 -0
  96. package/bin/esm/RepeatedActionThrottler.d.ts +20 -0
  97. package/bin/esm/RepeatedActionThrottler.d.ts.map +1 -0
  98. package/bin/esm/RepeatedActionThrottler.js +59 -0
  99. package/bin/esm/RepeatedActionThrottler.js.map +1 -0
  100. package/bin/esm/VolumeManager.d.ts +84 -0
  101. package/bin/esm/VolumeManager.d.ts.map +1 -0
  102. package/bin/esm/VolumeManager.js +171 -0
  103. package/bin/esm/VolumeManager.js.map +1 -0
  104. package/bin/esm/index.d.ts +14 -0
  105. package/bin/esm/index.d.ts.map +1 -0
  106. package/bin/esm/index.js +14 -0
  107. package/bin/esm/index.js.map +1 -0
  108. package/bin/esm/internals/GroupCoordinatorState.d.ts +109 -0
  109. package/bin/esm/internals/GroupCoordinatorState.d.ts.map +1 -0
  110. package/bin/esm/internals/GroupCoordinatorState.js +512 -0
  111. package/bin/esm/internals/GroupCoordinatorState.js.map +1 -0
  112. package/bin/esm/internals/GroupPlaybackPosition.d.ts +71 -0
  113. package/bin/esm/internals/GroupPlaybackPosition.d.ts.map +1 -0
  114. package/bin/esm/internals/GroupPlaybackPosition.js +166 -0
  115. package/bin/esm/internals/GroupPlaybackPosition.js.map +1 -0
  116. package/bin/esm/internals/GroupPlaybackRate.d.ts +38 -0
  117. package/bin/esm/internals/GroupPlaybackRate.d.ts.map +1 -0
  118. package/bin/esm/internals/GroupPlaybackRate.js +55 -0
  119. package/bin/esm/internals/GroupPlaybackRate.js.map +1 -0
  120. package/bin/esm/internals/GroupPlaybackTrack.d.ts +45 -0
  121. package/bin/esm/internals/GroupPlaybackTrack.d.ts.map +1 -0
  122. package/bin/esm/internals/GroupPlaybackTrack.js +118 -0
  123. package/bin/esm/internals/GroupPlaybackTrack.js.map +1 -0
  124. package/bin/esm/internals/GroupPlaybackTrackData.d.ts +40 -0
  125. package/bin/esm/internals/GroupPlaybackTrackData.d.ts.map +1 -0
  126. package/bin/esm/internals/GroupPlaybackTrackData.js +66 -0
  127. package/bin/esm/internals/GroupPlaybackTrackData.js.map +1 -0
  128. package/bin/esm/internals/GroupTransportState.d.ts +52 -0
  129. package/bin/esm/internals/GroupTransportState.d.ts.map +1 -0
  130. package/bin/esm/internals/GroupTransportState.js +116 -0
  131. package/bin/esm/internals/GroupTransportState.js.map +1 -0
  132. package/bin/esm/internals/consts.d.ts +83 -0
  133. package/bin/esm/internals/consts.d.ts.map +1 -0
  134. package/bin/esm/internals/consts.js +89 -0
  135. package/bin/esm/internals/consts.js.map +1 -0
  136. package/bin/esm/internals/errors.d.ts +17 -0
  137. package/bin/esm/internals/errors.d.ts.map +1 -0
  138. package/bin/esm/internals/errors.js +29 -0
  139. package/bin/esm/internals/errors.js.map +1 -0
  140. package/bin/esm/internals/interfaces.d.ts +23 -0
  141. package/bin/esm/internals/interfaces.d.ts.map +1 -0
  142. package/bin/esm/internals/interfaces.js +2 -0
  143. package/bin/esm/internals/interfaces.js.map +1 -0
  144. package/bin/test/IMediaPlayer.d.ts +21 -0
  145. package/bin/test/IMediaPlayer.d.ts.map +1 -0
  146. package/bin/test/IMediaPlayer.js +7 -0
  147. package/bin/test/IMediaPlayer.js.map +1 -0
  148. package/bin/test/LiveMediaSession.d.ts +97 -0
  149. package/bin/test/LiveMediaSession.d.ts.map +1 -0
  150. package/bin/test/LiveMediaSession.js +261 -0
  151. package/bin/test/LiveMediaSession.js.map +1 -0
  152. package/bin/test/LiveMediaSessionCoordinator.d.ts +273 -0
  153. package/bin/test/LiveMediaSessionCoordinator.d.ts.map +1 -0
  154. package/bin/test/LiveMediaSessionCoordinator.js +479 -0
  155. package/bin/test/LiveMediaSessionCoordinator.js.map +1 -0
  156. package/bin/test/LiveMediaSessionCoordinatorSuspension.d.ts +20 -0
  157. package/bin/test/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
  158. package/bin/test/LiveMediaSessionCoordinatorSuspension.js +28 -0
  159. package/bin/test/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
  160. package/bin/test/MediaPlayerSynchronizer.d.ts +204 -0
  161. package/bin/test/MediaPlayerSynchronizer.d.ts.map +1 -0
  162. package/bin/test/MediaPlayerSynchronizer.js +574 -0
  163. package/bin/test/MediaPlayerSynchronizer.js.map +1 -0
  164. package/bin/test/MediaSessionActionThrottler.d.ts +12 -0
  165. package/bin/test/MediaSessionActionThrottler.d.ts.map +1 -0
  166. package/bin/test/MediaSessionActionThrottler.js +14 -0
  167. package/bin/test/MediaSessionActionThrottler.js.map +1 -0
  168. package/bin/test/MediaSessionExtensions.d.ts +177 -0
  169. package/bin/test/MediaSessionExtensions.d.ts.map +1 -0
  170. package/bin/test/MediaSessionExtensions.js +26 -0
  171. package/bin/test/MediaSessionExtensions.js.map +1 -0
  172. package/bin/test/RepeatedActionThrottler.d.ts +20 -0
  173. package/bin/test/RepeatedActionThrottler.d.ts.map +1 -0
  174. package/bin/test/RepeatedActionThrottler.js +63 -0
  175. package/bin/test/RepeatedActionThrottler.js.map +1 -0
  176. package/bin/test/VolumeManager.d.ts +84 -0
  177. package/bin/test/VolumeManager.d.ts.map +1 -0
  178. package/bin/test/VolumeManager.js +175 -0
  179. package/bin/test/VolumeManager.js.map +1 -0
  180. package/bin/test/index.d.ts +14 -0
  181. package/bin/test/index.d.ts.map +1 -0
  182. package/bin/{index.js → test/index.js} +9 -9
  183. package/bin/test/index.js.map +1 -0
  184. package/bin/test/internals/GroupCoordinatorState.d.ts +109 -0
  185. package/bin/test/internals/GroupCoordinatorState.d.ts.map +1 -0
  186. package/bin/test/internals/GroupCoordinatorState.js +516 -0
  187. package/bin/test/internals/GroupCoordinatorState.js.map +1 -0
  188. package/bin/test/internals/GroupPlaybackPosition.d.ts +71 -0
  189. package/bin/test/internals/GroupPlaybackPosition.d.ts.map +1 -0
  190. package/bin/test/internals/GroupPlaybackPosition.js +170 -0
  191. package/bin/test/internals/GroupPlaybackPosition.js.map +1 -0
  192. package/bin/test/internals/GroupPlaybackRate.d.ts +38 -0
  193. package/bin/test/internals/GroupPlaybackRate.d.ts.map +1 -0
  194. package/bin/test/internals/GroupPlaybackRate.js +59 -0
  195. package/bin/test/internals/GroupPlaybackRate.js.map +1 -0
  196. package/bin/test/internals/GroupPlaybackTrack.d.ts +45 -0
  197. package/bin/test/internals/GroupPlaybackTrack.d.ts.map +1 -0
  198. package/bin/test/internals/GroupPlaybackTrack.js +122 -0
  199. package/bin/test/internals/GroupPlaybackTrack.js.map +1 -0
  200. package/bin/test/internals/GroupPlaybackTrackData.d.ts +40 -0
  201. package/bin/test/internals/GroupPlaybackTrackData.d.ts.map +1 -0
  202. package/bin/test/internals/GroupPlaybackTrackData.js +70 -0
  203. package/bin/test/internals/GroupPlaybackTrackData.js.map +1 -0
  204. package/bin/test/internals/GroupTransportState.d.ts +52 -0
  205. package/bin/test/internals/GroupTransportState.d.ts.map +1 -0
  206. package/bin/test/internals/GroupTransportState.js +120 -0
  207. package/bin/test/internals/GroupTransportState.js.map +1 -0
  208. package/bin/test/internals/consts.d.ts +83 -0
  209. package/bin/test/internals/consts.d.ts.map +1 -0
  210. package/bin/test/internals/consts.js +92 -0
  211. package/bin/test/internals/consts.js.map +1 -0
  212. package/bin/test/internals/errors.d.ts +17 -0
  213. package/bin/test/internals/errors.d.ts.map +1 -0
  214. package/bin/test/internals/errors.js +34 -0
  215. package/bin/test/internals/errors.js.map +1 -0
  216. package/bin/test/internals/interfaces.d.ts +23 -0
  217. package/bin/test/internals/interfaces.d.ts.map +1 -0
  218. package/bin/test/internals/interfaces.js +3 -0
  219. package/bin/test/internals/interfaces.js.map +1 -0
  220. package/bin/test/package.json +1 -0
  221. package/bin/test/test/GroupPlaybackPosition.spec.d.ts +6 -0
  222. package/bin/test/test/GroupPlaybackPosition.spec.d.ts.map +1 -0
  223. package/bin/test/test/GroupPlaybackPosition.spec.js +314 -0
  224. package/bin/test/test/GroupPlaybackPosition.spec.js.map +1 -0
  225. package/bin/test/test/GroupPlaybackRate.spec.d.ts +6 -0
  226. package/bin/test/test/GroupPlaybackRate.spec.d.ts.map +1 -0
  227. package/bin/test/test/GroupPlaybackRate.spec.js +47 -0
  228. package/bin/test/test/GroupPlaybackRate.spec.js.map +1 -0
  229. package/bin/test/test/GroupPlaybackTrack.spec.d.ts +6 -0
  230. package/bin/test/test/GroupPlaybackTrack.spec.d.ts.map +1 -0
  231. package/bin/test/test/GroupPlaybackTrack.spec.js +171 -0
  232. package/bin/test/test/GroupPlaybackTrack.spec.js.map +1 -0
  233. package/bin/test/test/GroupPlaybackTrackData.spec.d.ts +6 -0
  234. package/bin/test/test/GroupPlaybackTrackData.spec.d.ts.map +1 -0
  235. package/bin/test/test/GroupPlaybackTrackData.spec.js +63 -0
  236. package/bin/test/test/GroupPlaybackTrackData.spec.js.map +1 -0
  237. package/bin/test/test/LiveMediaSession_ManualActionHandler.spec.d.ts +6 -0
  238. package/bin/test/test/LiveMediaSession_ManualActionHandler.spec.d.ts.map +1 -0
  239. package/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js +324 -0
  240. package/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js.map +1 -0
  241. package/bin/test/test/LiveMediaSession_Synchronizer.spec.d.ts +6 -0
  242. package/bin/test/test/LiveMediaSession_Synchronizer.spec.d.ts.map +1 -0
  243. package/bin/test/test/LiveMediaSession_Synchronizer.spec.js +669 -0
  244. package/bin/test/test/LiveMediaSession_Synchronizer.spec.js.map +1 -0
  245. package/bin/test/test/TestUtils.d.ts +44 -0
  246. package/bin/test/test/TestUtils.d.ts.map +1 -0
  247. package/bin/test/test/TestUtils.js +116 -0
  248. package/bin/test/test/TestUtils.js.map +1 -0
  249. package/bin/test/test/VolumeManager.spec.d.ts +2 -0
  250. package/bin/test/test/VolumeManager.spec.d.ts.map +1 -0
  251. package/bin/test/test/VolumeManager.spec.js +163 -0
  252. package/bin/test/test/VolumeManager.spec.js.map +1 -0
  253. package/nyc/junit-report.json +167 -167
  254. package/nyc/junit-report.xml +53 -53
  255. package/package.json +31 -15
  256. package/src/LiveMediaSession.ts +32 -14
  257. package/src/LiveMediaSessionCoordinator.ts +39 -27
  258. package/src/LiveMediaSessionCoordinatorSuspension.ts +1 -1
  259. package/src/MediaPlayerSynchronizer.ts +10 -10
  260. package/src/MediaSessionActionThrottler.ts +1 -1
  261. package/src/RepeatedActionThrottler.ts +2 -2
  262. package/src/VolumeManager.ts +6 -6
  263. package/src/index.ts +9 -9
  264. package/src/internals/GroupCoordinatorState.ts +15 -14
  265. package/src/internals/GroupPlaybackPosition.ts +6 -6
  266. package/src/internals/GroupPlaybackRate.ts +2 -2
  267. package/src/internals/GroupPlaybackTrack.ts +3 -3
  268. package/src/internals/GroupPlaybackTrackData.ts +3 -3
  269. package/src/internals/GroupTransportState.ts +6 -6
  270. package/src/internals/interfaces.ts +2 -2
  271. package/tsconfig.cjs.json +14 -0
  272. package/tsconfig.json +65 -74
  273. package/tsconfig.test.json +9 -0
  274. package/bin/IMediaPlayer.d.ts.map +0 -1
  275. package/bin/IMediaPlayer.js.map +0 -1
  276. package/bin/LiveMediaSession.d.ts.map +0 -1
  277. package/bin/LiveMediaSession.js.map +0 -1
  278. package/bin/LiveMediaSessionCoordinator.d.ts.map +0 -1
  279. package/bin/LiveMediaSessionCoordinator.js.map +0 -1
  280. package/bin/LiveMediaSessionCoordinatorSuspension.d.ts.map +0 -1
  281. package/bin/LiveMediaSessionCoordinatorSuspension.js.map +0 -1
  282. package/bin/MediaPlayerSynchronizer.d.ts.map +0 -1
  283. package/bin/MediaPlayerSynchronizer.js.map +0 -1
  284. package/bin/MediaSessionActionThrottler.d.ts.map +0 -1
  285. package/bin/MediaSessionActionThrottler.js.map +0 -1
  286. package/bin/MediaSessionExtensions.d.ts.map +0 -1
  287. package/bin/MediaSessionExtensions.js.map +0 -1
  288. package/bin/RepeatedActionThrottler.d.ts.map +0 -1
  289. package/bin/RepeatedActionThrottler.js.map +0 -1
  290. package/bin/VolumeManager.d.ts.map +0 -1
  291. package/bin/VolumeManager.js.map +0 -1
  292. package/bin/index.d.ts +0 -14
  293. package/bin/index.d.ts.map +0 -1
  294. package/bin/index.js.map +0 -1
  295. package/bin/internals/GroupCoordinatorState.d.ts.map +0 -1
  296. package/bin/internals/GroupCoordinatorState.js.map +0 -1
  297. package/bin/internals/GroupPlaybackPosition.d.ts.map +0 -1
  298. package/bin/internals/GroupPlaybackPosition.js.map +0 -1
  299. package/bin/internals/GroupPlaybackRate.d.ts.map +0 -1
  300. package/bin/internals/GroupPlaybackRate.js.map +0 -1
  301. package/bin/internals/GroupPlaybackTrack.d.ts.map +0 -1
  302. package/bin/internals/GroupPlaybackTrack.js.map +0 -1
  303. package/bin/internals/GroupPlaybackTrackData.d.ts.map +0 -1
  304. package/bin/internals/GroupPlaybackTrackData.js.map +0 -1
  305. package/bin/internals/GroupTransportState.d.ts.map +0 -1
  306. package/bin/internals/GroupTransportState.js.map +0 -1
  307. package/bin/internals/consts.d.ts.map +0 -1
  308. package/bin/internals/consts.js.map +0 -1
  309. package/bin/internals/errors.d.ts.map +0 -1
  310. package/bin/internals/errors.js.map +0 -1
  311. package/bin/internals/index.d.ts +0 -13
  312. package/bin/internals/index.d.ts.map +0 -1
  313. package/bin/internals/index.js.map +0 -1
  314. package/bin/internals/interfaces.d.ts.map +0 -1
  315. package/src/internals/index.ts +0 -13
  316. package/tsconfig.build.json +0 -9
  317. /package/bin/{IMediaPlayer.d.ts → cjs/IMediaPlayer.d.ts} +0 -0
  318. /package/bin/{IMediaPlayer.js → cjs/IMediaPlayer.js} +0 -0
  319. /package/bin/{LiveMediaSessionCoordinatorSuspension.js → cjs/LiveMediaSessionCoordinatorSuspension.js} +0 -0
  320. /package/bin/{MediaSessionActionThrottler.js → cjs/MediaSessionActionThrottler.js} +0 -0
  321. /package/bin/{MediaSessionExtensions.d.ts → cjs/MediaSessionExtensions.d.ts} +0 -0
  322. /package/bin/{MediaSessionExtensions.js → cjs/MediaSessionExtensions.js} +0 -0
  323. /package/bin/{internals → cjs/internals}/GroupPlaybackRate.js +0 -0
  324. /package/bin/{internals → cjs/internals}/GroupPlaybackTrack.js +0 -0
  325. /package/bin/{internals → cjs/internals}/consts.d.ts +0 -0
  326. /package/bin/{internals → cjs/internals}/consts.js +0 -0
  327. /package/bin/{internals → cjs/internals}/errors.d.ts +0 -0
  328. /package/bin/{internals → cjs/internals}/errors.js +0 -0
  329. /package/bin/{internals → cjs/internals}/interfaces.js +0 -0
@@ -1,54 +1,54 @@
1
- <testsuite name="@microsoft/live-share-media" tests="52" failures="0" errors="0" skipped="0" timestamp="Thu, 28 Mar 2024 19:12:27 GMT" time="15.076">
2
- <testcase classname="GroupPlaybackPosition" name="should start with 0 clients" time="0.001"/>
3
- <testcase classname="GroupPlaybackPosition" name="should find local position" time="0"/>
4
- <testcase classname="GroupPlaybackPosition" name="should update local position" time="0"/>
5
- <testcase classname="GroupPlaybackPosition" name="should ignore older position updates" time="0"/>
6
- <testcase classname="GroupPlaybackPosition" name="should track other client positions" time="0"/>
7
- <testcase classname="GroupPlaybackPosition" name="should enumerate client positions" time="0"/>
8
- <testcase classname="GroupPlaybackPosition" name="should ignore stale positions" time="0"/>
9
- <testcase classname="GroupPlaybackPosition" name="should project position when playing" time="0"/>
10
- <testcase classname="GroupPlaybackPosition" name="should compute max playback position relative to transport state" time="0.001"/>
11
- <testcase classname="GroupPlaybackPosition" name="should compute target position relative to other client positions" time="0"/>
12
- <testcase classname="GroupPlaybackPosition" name="should limit max and target position by media duration" time="0"/>
13
- <testcase classname="GroupPlaybackPosition" name="should count number of waiting clients" time="0.001"/>
14
- <testcase classname="GroupPlaybackPosition" name="should drop waiting count after suspension ends" time="0"/>
15
- <testcase classname="GroupPlaybackPosition" name="should drop waiting count to 0 after all clients reach wait point" time="0"/>
16
- <testcase classname="GroupPlaybackRate" name="updatePlaybackRate should return false for older events" time="0"/>
17
- <testcase classname="GroupPlaybackRate" name="updatePlaybackRate should return false for events that are the same time, but clientId is higher sort" time="0"/>
18
- <testcase classname="GroupPlaybackTrack" name="should fire &#x22;trackChange&#x22; event when no media" time="0"/>
19
- <testcase classname="GroupPlaybackTrack" name="should switch tracks" time="0"/>
20
- <testcase classname="GroupPlaybackTrack" name="should ignore track changes with older timestamps" time="0"/>
21
- <testcase classname="GroupPlaybackTrack" name="should insert waitpoint if no existing waitpoints" time="0"/>
22
- <testcase classname="GroupPlaybackTrack" name="should insert waitpoints in correct order" time="0"/>
23
- <testcase classname="GroupPlaybackTrack" name="updateTrack should return false for events that are the same time, but clientId is higher sort" time="0"/>
24
- <testcase classname="GroupPlaybackTrackData" name="updateData should return false for older events" time="0"/>
25
- <testcase classname="GroupPlaybackTrackData" name="updateData should return false for events that are the same time, but clientId is higher sort" time="0"/>
26
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event when someone joins." time="0.027"/>
27
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should not send &#x27;positionUpdate&#x27; event if object has canSendPositionUpdates set to false" time="0.008"/>
28
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event if object has canSendPositionUpdates set to false, but is suspended" time="0.01"/>
29
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event regularly." time="0.514"/>
30
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;play&#x27; transport command." time="0.022"/>
31
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;pause&#x27; transport command." time="0.008"/>
32
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;seekTo&#x27; transport command." time="0.006"/>
33
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;setTrack&#x27; transport command." time="0.006"/>
34
- <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;catchup&#x27; transport command." time="2.03"/>
35
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play and pause on both" time="0.316"/>
36
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should seek forward and play then pause" time="0.318"/>
37
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play then seek forward then pause" time="0.419"/>
38
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play then seek backwards then keep playing" time="0.317"/>
39
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should change playback rate" time="0.216"/>
40
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should only let organizer play, pause, seek" time="0.018"/>
41
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should setTrack" time="0.309"/>
42
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should beginSeek and suspend till endSeek" time="0.319"/>
43
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should not load twice" time="0.215"/>
44
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should suspend at waitpoint with DIFFERENT player for ad" time="1.516"/>
45
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should suspend at waitpoint with SAME player for ad" time="1.516"/>
46
- <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="client should catchup to leader" time="1.723"/>
47
- <testcase classname="VolumeManager" name="should ramp down volume" time="0.778"/>
48
- <testcase classname="VolumeManager" name="should ramp up volume" time="1.05"/>
49
- <testcase classname="VolumeManager" name="should ramp down halfway, then ramp up" time="0.774"/>
50
- <testcase classname="VolumeManager" name="ramp using selected volume" time="0.525"/>
51
- <testcase classname="VolumeManager" name="enable limit, change selected volume, then disable limit" time="0.776"/>
52
- <testcase classname="VolumeManager" name="ramp down with selected volume to 0.3, then up to 0.8" time="0.775"/>
53
- <testcase classname="VolumeManager" name="test 50% limiting" time="0.526"/>
1
+ <testsuite name="build" tests="52" failures="0" errors="0" skipped="0" timestamp="Fri, 30 Aug 2024 08:14:50 GMT" time="14.903">
2
+ <testcase classname="GroupPlaybackPosition" name="should start with 0 clients" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0.001"/>
3
+ <testcase classname="GroupPlaybackPosition" name="should find local position" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
4
+ <testcase classname="GroupPlaybackPosition" name="should update local position" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
5
+ <testcase classname="GroupPlaybackPosition" name="should ignore older position updates" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
6
+ <testcase classname="GroupPlaybackPosition" name="should track other client positions" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
7
+ <testcase classname="GroupPlaybackPosition" name="should enumerate client positions" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
8
+ <testcase classname="GroupPlaybackPosition" name="should ignore stale positions" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
9
+ <testcase classname="GroupPlaybackPosition" name="should project position when playing" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
10
+ <testcase classname="GroupPlaybackPosition" name="should compute max playback position relative to transport state" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
11
+ <testcase classname="GroupPlaybackPosition" name="should compute target position relative to other client positions" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
12
+ <testcase classname="GroupPlaybackPosition" name="should limit max and target position by media duration" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
13
+ <testcase classname="GroupPlaybackPosition" name="should count number of waiting clients" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
14
+ <testcase classname="GroupPlaybackPosition" name="should drop waiting count after suspension ends" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
15
+ <testcase classname="GroupPlaybackPosition" name="should drop waiting count to 0 after all clients reach wait point" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackPosition.spec.js" time="0"/>
16
+ <testcase classname="GroupPlaybackRate" name="updatePlaybackRate should return false for older events" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackRate.spec.js" time="0.001"/>
17
+ <testcase classname="GroupPlaybackRate" name="updatePlaybackRate should return false for events that are the same time, but clientId is higher sort" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackRate.spec.js" time="0"/>
18
+ <testcase classname="GroupPlaybackTrack" name="should fire &#x22;trackChange&#x22; event when no media" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
19
+ <testcase classname="GroupPlaybackTrack" name="should switch tracks" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
20
+ <testcase classname="GroupPlaybackTrack" name="should ignore track changes with older timestamps" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
21
+ <testcase classname="GroupPlaybackTrack" name="should insert waitpoint if no existing waitpoints" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
22
+ <testcase classname="GroupPlaybackTrack" name="should insert waitpoints in correct order" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
23
+ <testcase classname="GroupPlaybackTrack" name="updateTrack should return false for events that are the same time, but clientId is higher sort" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrack.spec.js" time="0"/>
24
+ <testcase classname="GroupPlaybackTrackData" name="updateData should return false for older events" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrackData.spec.js" time="0"/>
25
+ <testcase classname="GroupPlaybackTrackData" name="updateData should return false for events that are the same time, but clientId is higher sort" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/GroupPlaybackTrackData.spec.js" time="0"/>
26
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event when someone joins." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.031"/>
27
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should not send &#x27;positionUpdate&#x27; event if object has canSendPositionUpdates set to false" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.01"/>
28
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event if object has canSendPositionUpdates set to false, but is suspended" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.013"/>
29
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should send &#x27;positionUpdate&#x27; event regularly." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.512"/>
30
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;play&#x27; transport command." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.011"/>
31
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;pause&#x27; transport command." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.006"/>
32
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;seekTo&#x27; transport command." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.006"/>
33
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;setTrack&#x27; transport command." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="0.005"/>
34
+ <testcase classname="LiveMediaSession Manual Action Handlers (mostly testing coordinator) Fluid Test: LiveMediaSession Manual Action Handlers (mostly testing coordinator)" name="should broadcast &#x27;catchup&#x27; transport command." file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_ManualActionHandler.spec.js" time="2.025"/>
35
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play and pause on both" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.308"/>
36
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should seek forward and play then pause" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.304"/>
37
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play then seek forward then pause" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.403"/>
38
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should play then seek backwards then keep playing" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.305"/>
39
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should change playback rate" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.204"/>
40
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should only let organizer play, pause, seek" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.006"/>
41
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should setTrack" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.304"/>
42
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should beginSeek and suspend till endSeek" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.304"/>
43
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should not load twice" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="0.204"/>
44
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should suspend at waitpoint with DIFFERENT player for ad" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="1.505"/>
45
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="should suspend at waitpoint with SAME player for ad" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="1.505"/>
46
+ <testcase classname="LiveMediaSession Using MediaPlayerSynchronizer Fluid Test: LiveMediaSession Using MediaPlayerSynchronizer" name="client should catchup to leader" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/LiveMediaSession_Synchronizer.spec.js" time="1.708"/>
47
+ <testcase classname="VolumeManager" name="should ramp down volume" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.775"/>
48
+ <testcase classname="VolumeManager" name="should ramp up volume" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="1.051"/>
49
+ <testcase classname="VolumeManager" name="should ramp down halfway, then ramp up" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.775"/>
50
+ <testcase classname="VolumeManager" name="ramp using selected volume" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.527"/>
51
+ <testcase classname="VolumeManager" name="enable limit, change selected volume, then disable limit" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.775"/>
52
+ <testcase classname="VolumeManager" name="ramp down with selected volume to 0.3, then up to 0.8" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.776"/>
53
+ <testcase classname="VolumeManager" name="test 50% limiting" file="/Users/ryanbliss/Documents/Development-Work/live-share/live-share-sdk/packages/live-share-media/bin/test/test/VolumeManager.spec.js" time="0.525"/>
54
54
  </testsuite>
package/package.json CHANGED
@@ -1,37 +1,53 @@
1
1
  {
2
2
  "name": "@microsoft/live-share-media",
3
- "version": "2.0.0-internal.4",
3
+ "version": "2.0.0-internal.6",
4
4
  "description": "Live Share classes that synchronize media playback across clients.",
5
5
  "author": "Microsoft",
6
6
  "license": "SEE LICENSE IN LICENSE",
7
- "main": "./bin/index.js",
8
- "types": "./bin/index.d.ts",
7
+ "main": "./bin/cjs/index.js",
8
+ "module": "./bin/esm/index.js",
9
+ "types": "./bin/esm/index.d.ts",
10
+ "type": "module",
9
11
  "scripts": {
10
12
  "clean": "npx shx rm -rf bin",
11
- "build": "tsc -p tsconfig.build.json",
12
- "test": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --timeout 10000",
13
- "test:debug": "ts-mocha --config ./src/test/.mocharc.js src/**/*.spec.ts --inspect-brk",
13
+ "build": "node ../../internal/build-tools/build-package.js --cjs --esm",
14
+ "build:test": "node ../../internal/build-tools/build-package.js --test",
15
+ "test": "npm run build:test && ts-mocha -p tsconfig.test.json --config .mocharc.cjs --recursive \"./bin/test/**/*.spec.js\" --timeout 10000",
16
+ "test:debug": "npm run build:test && ts-mocha -p tsconfig.test.json --config .mocharc.cjs --recursive \"./bin/test/**/LiveMediaSession_Synchronizer.spec.js\" --inspect-brk",
14
17
  "test:coverage": "nyc --reporter=html --reporter=text --reporter=text-summary npm test",
15
18
  "test:race": "node ./../live-share/test-for-race-conditions.js"
16
19
  },
20
+ "exports": {
21
+ "./package.json": "./package.json",
22
+ ".": {
23
+ "require": {
24
+ "types": "./bin/cjs/index.d.ts",
25
+ "default": "./bin/cjs/index.js"
26
+ },
27
+ "import": {
28
+ "types": "./bin/esm/index.d.ts",
29
+ "default": "./bin/esm/index.js"
30
+ }
31
+ }
32
+ },
17
33
  "devDependencies": {
18
- "@microsoft/live-share": "2.0.0-internal.4",
19
- "@fluidframework/mocha-test-setup": "^2.0.0-rc.1",
20
- "@fluidframework/test-runtime-utils": "^2.0.0-rc.1",
21
- "@fluidframework/test-utils": "^2.0.0-rc.1",
22
- "@live-share-private/test-utils": "^2.0.0-internal.2",
34
+ "@microsoft/live-share": "2.0.0-internal.6",
35
+ "@fluidframework/mocha-test-setup": "^2.0.0-rc.1.0.9",
36
+ "@fluidframework/test-runtime-utils": "^2.0.0",
37
+ "@fluidframework/test-utils": "^2.0.0",
38
+ "@live-share-private/test-utils": "^1.0.0",
23
39
  "@types/assert": "^1.5.6",
24
40
  "@types/mocha": "^10.0.1",
25
41
  "@types/node": "^20.2.3",
26
- "fluid-framework": "^2.0.0-rc.1",
42
+ "fluid-framework": "^2.0.0",
27
43
  "mocha": "^10.2.0",
28
44
  "nyc": "^15.1.0",
29
45
  "ts-mocha": "^10.0.0",
30
- "typescript": "^5.0.4"
46
+ "typescript": "~5.5.3"
31
47
  },
32
48
  "peerDependencies": {
33
- "@microsoft/live-share": "2.0.0-internal.4",
34
- "fluid-framework": "^2.0.0-rc || ^2.0.0-internal"
49
+ "@microsoft/live-share": "2.0.0-internal.6",
50
+ "fluid-framework": "^2.0.0"
35
51
  },
36
52
  "repository": {
37
53
  "directory": "packages/live-share-media",
@@ -3,35 +3,42 @@
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
 
6
- import { DataObjectFactory } from "@fluidframework/aqueduct";
7
6
  import {
8
- DynamicObjectRegistry,
9
- LiveDataObject,
7
+ DataObjectFactory,
8
+ createDataObjectKind,
9
+ } from "@fluidframework/aqueduct/internal";
10
+ import {
10
11
  LiveDataObjectInitializeNotNeededError,
11
12
  LiveDataObjectInitializeState,
12
13
  LiveTelemetryLogger,
13
14
  UserMeetingRole,
14
15
  } from "@microsoft/live-share";
15
- import { MediaPlayerSynchronizer } from "./MediaPlayerSynchronizer";
16
- import { ITriggerActionEvent, TelemetryEvents } from "./internals";
16
+ import {
17
+ DynamicObjectRegistry,
18
+ LiveDataObject,
19
+ } from "@microsoft/live-share/internal";
20
+ import { MediaPlayerSynchronizer } from "./MediaPlayerSynchronizer.js";
21
+ import { ITriggerActionEvent } from "./internals/GroupCoordinatorState.js";
17
22
  import {
18
23
  MediaSessionCoordinatorEvents,
19
24
  ExtendedMediaSessionAction,
20
25
  ExtendedMediaSessionActionDetails,
21
26
  ExtendedMediaSessionActionHandler,
22
- } from "./MediaSessionExtensions";
27
+ } from "./MediaSessionExtensions.js";
23
28
  import {
24
29
  LiveMediaSessionCoordinator,
25
30
  IMediaPlayerState,
26
- } from "./LiveMediaSessionCoordinator";
27
- import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler";
28
- import { RepeatedActionThrottler } from "./RepeatedActionThrottler";
29
- import { IMediaPlayer } from "./IMediaPlayer";
31
+ } from "./LiveMediaSessionCoordinator.js";
32
+ import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler.js";
33
+ import { RepeatedActionThrottler } from "./RepeatedActionThrottler.js";
34
+ import { IMediaPlayer } from "./IMediaPlayer.js";
35
+ import { SharedObjectKind } from "fluid-framework";
36
+ import { TelemetryEvents } from "./internals/consts.js";
30
37
 
31
38
  /**
32
39
  * Live fluid object that synchronizes media playback across multiple clients.
33
40
  */
34
- export class LiveMediaSession extends LiveDataObject {
41
+ export class LiveMediaSessionClass extends LiveDataObject {
35
42
  private _actionThrottler: MediaSessionActionThrottler =
36
43
  new RepeatedActionThrottler();
37
44
  private _logger?: LiveTelemetryLogger;
@@ -56,8 +63,8 @@ export class LiveMediaSession extends LiveDataObject {
56
63
  * The objects fluid type factory.
57
64
  */
58
65
  public static readonly factory = new DataObjectFactory(
59
- LiveMediaSession.TypeName,
60
- LiveMediaSession,
66
+ LiveMediaSessionClass.TypeName,
67
+ LiveMediaSessionClass,
61
68
  [],
62
69
  {}
63
70
  );
@@ -341,7 +348,18 @@ export class LiveMediaSession extends LiveDataObject {
341
348
  }
342
349
 
343
350
  /**
344
- * Register `LiveMediaSession` as an available `LoadableObjectClass` for use in packages that support dynamic object loading, such as `@microsoft/live-share-turbo`.
351
+ * Live fluid object that synchronizes media playback across multiple clients.
352
+ */
353
+ export type LiveMediaSession = LiveMediaSessionClass;
354
+
355
+ // eslint-disable-next-line no-redeclare
356
+ export const LiveMediaSession = (() => {
357
+ const kind = createDataObjectKind(LiveMediaSessionClass);
358
+ return kind as typeof kind & SharedObjectKind<LiveMediaSessionClass>;
359
+ })();
360
+
361
+ /**
362
+ * Register `LiveMediaSession` as an available `SharedObjectKind` for use in dynamic object loading.
345
363
  */
346
364
  DynamicObjectRegistry.registerObjectClass(
347
365
  LiveMediaSession,
@@ -4,41 +4,46 @@
4
4
  */
5
5
 
6
6
  import {
7
- LiveEventScope,
8
7
  LiveTelemetryLogger,
9
- LiveEventTarget,
10
- IRuntimeSignaler,
11
8
  TimeInterval,
12
9
  UserMeetingRole,
13
- LiveShareRuntime,
14
10
  LiveDataObjectInitializeState,
15
11
  LiveDataObjectInitializeNotNeededError,
16
12
  LiveDataObjectNotInitializedError,
17
- LiveObjectSynchronizer,
18
13
  ILiveEvent,
19
14
  } from "@microsoft/live-share";
15
+ import {
16
+ IRuntimeSignaler,
17
+ LiveEventScope,
18
+ LiveEventTarget,
19
+ LiveObjectSynchronizer,
20
+ LiveShareRuntime,
21
+ isErrorLike,
22
+ } from "@microsoft/live-share/internal";
20
23
  import {
21
24
  CoordinationWaitPoint,
22
25
  ExtendedMediaMetadata,
23
26
  ExtendedMediaSessionPlaybackState,
24
27
  MediaSessionCoordinatorSuspension,
25
- } from "./MediaSessionExtensions";
28
+ } from "./MediaSessionExtensions.js";
26
29
  import {
27
- TelemetryEvents,
28
30
  ITransportCommandEvent,
29
31
  ISetTrackEvent,
30
32
  IPositionUpdateEvent,
31
33
  GroupCoordinatorState,
32
34
  GroupCoordinatorStateEvents,
33
35
  ISetTrackDataEvent,
36
+ IRateChangeCommandEvent,
37
+ } from "./internals/GroupCoordinatorState.js";
38
+ import { TelemetryEvents } from "./internals/consts.js";
39
+ import {
34
40
  TrackMetadataNotSetError,
35
41
  ActionBlockedError,
36
- IRateChangeCommandEvent,
37
- } from "./internals";
38
- import { LiveMediaSessionCoordinatorSuspension } from "./LiveMediaSessionCoordinatorSuspension";
39
- import { isErrorLike } from "@microsoft/live-share/bin/internals";
42
+ } from "./internals/errors.js";
43
+
44
+ import { LiveMediaSessionCoordinatorSuspension } from "./LiveMediaSessionCoordinatorSuspension.js";
40
45
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
41
- import { IEvent } from "@fluidframework/common-definitions";
46
+ import { IEvent } from "@fluidframework/core-interfaces";
42
47
 
43
48
  /**
44
49
  * Most recent state of the media session.
@@ -584,13 +589,12 @@ export class LiveMediaSessionCoordinator extends TypedEventEmitter<ILiveMediaSes
584
589
 
585
590
  try {
586
591
  // start needs to happen after setting initializedState to "succeeded"
587
- await this._synchronizer?.start(
588
- undefined,
589
- async (evt, sender, local) => false,
590
- async (connecting) => true,
591
- false,
592
- false
593
- );
592
+ await this._synchronizer?.start({
593
+ initialState: undefined,
594
+ updateState: async (evt, sender, local) => false,
595
+ getLocalUserCanSend: async (connecting) => true,
596
+ enableBackgroundUpdates: false,
597
+ });
594
598
  } catch (error: unknown) {
595
599
  // not a fatal error for LiveMediaSession, only used for "connect" event to send new clients position updates.
596
600
  this._logger.sendErrorEvent(
@@ -617,7 +621,10 @@ export class LiveMediaSessionCoordinator extends TypedEventEmitter<ILiveMediaSes
617
621
  * @hidden
618
622
  * Called by MediaSession to trigger the sending of a position update.
619
623
  */
620
- public sendPositionUpdate(state: IMediaPlayerState): void {
624
+ public sendPositionUpdate(
625
+ state: IMediaPlayerState,
626
+ targetClientId?: string
627
+ ): void {
621
628
  LiveDataObjectNotInitializedError.assert(
622
629
  "LiveMediaSessionCoordinator:sendPositionUpdate",
623
630
  "sendPositionUpdate",
@@ -627,12 +634,15 @@ export class LiveMediaSessionCoordinator extends TypedEventEmitter<ILiveMediaSes
627
634
  if (this.canSendPositionUpdates) {
628
635
  // Send position update event
629
636
  const evt = this._groupState!.createPositionUpdateEvent(state);
630
- this._positionUpdateEvent?.sendEvent(evt).catch((err) => {
631
- this._logger.sendErrorEvent(
632
- TelemetryEvents.SessionCoordinator.PositionUpdateEventError,
633
- err
634
- );
635
- });
637
+ this._positionUpdateEvent
638
+ ?.sendEvent(evt, targetClientId)
639
+ .catch((err) => {
640
+ this._logger.sendErrorEvent(
641
+ TelemetryEvents.SessionCoordinator
642
+ .PositionUpdateEventError,
643
+ err
644
+ );
645
+ });
636
646
  } else if (this.isSuspended) {
637
647
  // send a local only position update event that was not sent as a signal, and use to handle local
638
648
  // position update for clients that have canSendPositionUpdates==false, but are suspending
@@ -744,7 +754,9 @@ export class LiveMediaSessionCoordinator extends TypedEventEmitter<ILiveMediaSes
744
754
  // Immediately send a position update
745
755
  try {
746
756
  const state = this._getPlayerState();
747
- this.sendPositionUpdate(state);
757
+ // Send only to the user that joined the session using the targetClientId prop.
758
+ // This ensures that only the user that connected receives this one-time position update, minimizing costs.
759
+ this.sendPositionUpdate(state, clientId);
748
760
  } catch (err: any) {
749
761
  // if player is not setup yet, local client might have also just joined and can't send its position.
750
762
  const playerNotSetup =
@@ -6,7 +6,7 @@
6
6
  import {
7
7
  MediaSessionCoordinatorSuspension,
8
8
  CoordinationWaitPoint,
9
- } from "./MediaSessionExtensions";
9
+ } from "./MediaSessionExtensions.js";
10
10
 
11
11
  export class LiveMediaSessionCoordinatorSuspension
12
12
  implements MediaSessionCoordinatorSuspension
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
+ import { LiveTelemetryLogger, ILiveEvent } from "@microsoft/live-share";
5
6
  import {
6
- LiveTelemetryLogger,
7
- ILiveEvent,
8
7
  IRuntimeSignaler,
9
- } from "@microsoft/live-share";
8
+ waitUntilConnected,
9
+ } from "@microsoft/live-share/internal";
10
10
  import {
11
11
  ExtendedMediaSessionAction,
12
12
  ExtendedMediaSessionPlaybackState,
@@ -15,14 +15,14 @@ import {
15
15
  ExtendedMediaSessionActionDetails,
16
16
  MediaSessionCoordinatorEvents,
17
17
  MediaSessionCoordinatorSuspension,
18
- } from "./MediaSessionExtensions";
19
- import { VolumeManager } from "./VolumeManager";
20
- import { LiveMediaSession } from "./LiveMediaSession";
21
- import { IMediaPlayer } from "./IMediaPlayer";
22
- import { ITriggerActionEvent, TelemetryEvents } from "./internals";
23
- import { waitUntilConnected } from "@microsoft/live-share/bin/internals";
18
+ } from "./MediaSessionExtensions.js";
19
+ import { VolumeManager } from "./VolumeManager.js";
20
+ import { LiveMediaSession } from "./LiveMediaSession.js";
21
+ import { IMediaPlayer } from "./IMediaPlayer.js";
22
+ import { TelemetryEvents } from "./internals/consts.js";
23
+ import { ITriggerActionEvent } from "./internals/GroupCoordinatorState.js";
24
24
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
25
- import { IEvent } from "@fluidframework/common-definitions";
25
+ import { IEvent } from "@fluidframework/core-interfaces";
26
26
 
27
27
  /**
28
28
  * Event data returned by `MediaPlayerSynchronizer` object.
@@ -6,7 +6,7 @@
6
6
  import {
7
7
  ExtendedMediaSessionActionDetails,
8
8
  ExtendedMediaSessionActionHandler,
9
- } from "./MediaSessionExtensions";
9
+ } from "./MediaSessionExtensions.js";
10
10
 
11
11
  /**
12
12
  * Base class for action throttlers.
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  import { TimeInterval } from "@microsoft/live-share";
7
- import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler";
7
+ import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler.js";
8
8
  import {
9
9
  ExtendedMediaSessionActionDetails,
10
10
  ExtendedMediaSessionAction,
11
- } from "./MediaSessionExtensions";
11
+ } from "./MediaSessionExtensions.js";
12
12
 
13
13
  /**
14
14
  * A Throttler that passes through all actions but will only let an action be repeated once every 2 seconds.
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { TimeInterval } from "@microsoft/live-share";
7
- import { IMediaPlayer } from "./IMediaPlayer";
7
+ import { IMediaPlayer } from "./IMediaPlayer.js";
8
8
 
9
9
  export enum LimitLevelType {
10
10
  fixed,
@@ -61,12 +61,12 @@ export class VolumeManager {
61
61
  *
62
62
  * @remarks
63
63
  * Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
64
- * `levelType`. The default value is 0.1.
64
+ * @see LimitLevelType. The default value is 0.1.
65
65
  *
66
- * For a level type of `LevelType.fixed` the value is the exact level the volume will be
66
+ * For a level type of @see LimitLevelType.fixed the value is the exact level the volume will be
67
67
  * lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
68
68
  *
69
- * For a level type of `LevelType.percentage` the value is the percentage by which the volume
69
+ * For a level type of @see LimitLevelType.percentage the value is the percentage by which the volume
70
70
  * level should be lowered to. The default value of 0.1 would cause the volume to be lowered
71
71
  * to 10% of its starting value.
72
72
  */
@@ -118,8 +118,8 @@ export class VolumeManager {
118
118
 
119
119
  /**
120
120
  * Limits volume based on `limitLevel` and `limitLevelType` properties.
121
- * @see `limitLevel`
122
- * @see `limitLevelType`
121
+ * @see limitLevel
122
+ * @see limitLevelType
123
123
  */
124
124
  public startLimiting(): void {
125
125
  this._isLimiting = true;
package/src/index.ts CHANGED
@@ -3,12 +3,12 @@
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
5
 
6
- export * from "./LiveMediaSession";
7
- export * from "./LiveMediaSessionCoordinator";
8
- export * from "./LiveMediaSessionCoordinatorSuspension";
9
- export * from "./IMediaPlayer";
10
- export * from "./MediaPlayerSynchronizer";
11
- export * from "./MediaSessionActionThrottler";
12
- export * from "./MediaSessionExtensions";
13
- export * from "./RepeatedActionThrottler";
14
- export * from "./VolumeManager";
6
+ export * from "./LiveMediaSession.js";
7
+ export * from "./LiveMediaSessionCoordinator.js";
8
+ export * from "./LiveMediaSessionCoordinatorSuspension.js";
9
+ export * from "./IMediaPlayer.js";
10
+ export * from "./MediaPlayerSynchronizer.js";
11
+ export * from "./MediaSessionActionThrottler.js";
12
+ export * from "./MediaSessionExtensions.js";
13
+ export * from "./RepeatedActionThrottler.js";
14
+ export * from "./VolumeManager.js";
@@ -6,52 +6,53 @@
6
6
  import {
7
7
  ILiveEvent,
8
8
  TimeInterval,
9
- IRuntimeSignaler,
10
9
  LiveTelemetryLogger,
11
- LiveShareRuntime,
12
10
  IEvent,
13
11
  } from "@microsoft/live-share";
12
+ import {
13
+ IRuntimeSignaler,
14
+ LiveShareRuntime,
15
+ waitUntilConnected,
16
+ } from "@microsoft/live-share/internal";
14
17
  import {
15
18
  ExtendedMediaMetadata,
16
19
  CoordinationWaitPoint,
17
20
  ExtendedMediaSessionPlaybackState,
18
21
  ExtendedMediaSessionActionDetails,
19
22
  ExtendedMediaSessionActionSource,
20
- } from "../MediaSessionExtensions";
23
+ } from "../MediaSessionExtensions.js";
21
24
  import {
22
25
  GroupPlaybackTrack,
23
26
  GroupPlaybackTrackEvents,
24
27
  IPlaybackTrack,
25
28
  IPlaybackTrackChangeEvent,
26
- } from "./GroupPlaybackTrack";
29
+ } from "./GroupPlaybackTrack.js";
27
30
  import {
28
31
  GroupTransportState,
29
32
  ITransportState,
30
33
  ITransportStateChangeEvent,
31
- } from "./GroupTransportState";
34
+ } from "./GroupTransportState.js";
32
35
  import {
33
36
  GroupPlaybackPosition,
34
37
  ICurrentPlaybackPosition,
35
- } from "./GroupPlaybackPosition";
36
- import { IMediaPlayerState } from "../LiveMediaSessionCoordinator";
37
- import { GroupTransportStateEvents } from "./GroupTransportState";
38
+ } from "./GroupPlaybackPosition.js";
39
+ import { IMediaPlayerState } from "../LiveMediaSessionCoordinator.js";
40
+ import { GroupTransportStateEvents } from "./GroupTransportState.js";
38
41
  import {
39
42
  GroupPlaybackTrackData,
40
43
  PlaybackTrackDataEvents,
41
44
  IPlaybackTrackData,
42
45
  IPlaybackTrackDataChangeEvent,
43
- } from "./GroupPlaybackTrackData";
44
- import { TelemetryEvents } from "./consts";
45
- import { waitUntilConnected } from "@microsoft/live-share/bin/internals";
46
+ } from "./GroupPlaybackTrackData.js";
47
+ import { TelemetryEvents } from "./consts.js";
46
48
  import {
47
49
  GroupPlaybackRate,
48
50
  IPlaybackRate,
49
51
  IPlaybackRateChangeEvent,
50
52
  PlaybackRateEvents,
51
- } from "./GroupPlaybackRate";
53
+ } from "./GroupPlaybackRate.js";
52
54
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
53
- import { IEvent as FluidIEvent } from "@fluidframework/common-definitions";
54
- import { IGenericTypedEvents } from "./interfaces";
55
+ import { IGenericTypedEvents } from "./interfaces.js";
55
56
 
56
57
  /**
57
58
  * @hidden