@amazon/vinyl 1.2.0 → 2.0.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 (653) hide show
  1. package/dist/index.cjs +9225 -6633
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +9080 -6435
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.es5.js +266 -253
  6. package/dist/test/benchmark.js +3256 -3190
  7. package/dist/test/benchmark.js.map +4 -4
  8. package/dist/test/integ.es5.js +1404 -1093
  9. package/dist/test/integ.js +45924 -33873
  10. package/dist/test/integ.js.map +4 -4
  11. package/dist/types/current/ad/AdBreakInfo.d.ts +160 -0
  12. package/dist/types/current/ad/AdBreakInfo.d.ts.map +1 -0
  13. package/dist/types/current/ad/AdController.d.ts +229 -0
  14. package/dist/types/current/ad/AdController.d.ts.map +1 -0
  15. package/dist/types/current/ad/AdController.js +19 -0
  16. package/dist/types/current/ad/AdControllerImpl.d.ts +146 -0
  17. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -0
  18. package/dist/types/current/ad/AdControllerImpl.js +705 -0
  19. package/dist/types/current/ad/AdError.d.ts +6 -0
  20. package/dist/types/current/ad/AdError.d.ts.map +1 -0
  21. package/dist/types/current/ad/AdError.js +14 -0
  22. package/dist/types/current/ad/AdsProvider.d.ts +28 -0
  23. package/dist/types/current/ad/AdsProvider.d.ts.map +1 -0
  24. package/dist/types/current/ad/AdsProvider.js +5 -0
  25. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  26. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts.map +1 -0
  27. package/dist/types/current/ad/defaultAdLoadOptionsResolver.js +26 -0
  28. package/dist/types/current/ad/discoverHlsInterstitials.d.ts +22 -0
  29. package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -0
  30. package/dist/types/current/ad/discoverHlsInterstitials.js +246 -0
  31. package/dist/types/current/drm/DrmController.d.ts +29 -4
  32. package/dist/types/current/drm/DrmController.d.ts.map +1 -1
  33. package/dist/types/current/drm/DrmControllerImpl.d.ts +13 -4
  34. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  35. package/dist/types/current/drm/DrmControllerImpl.js +85 -14
  36. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  37. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts.map +1 -1
  38. package/dist/types/current/drm/util/unpackPlayReadyChallenge.js +5 -0
  39. package/dist/types/current/index.d.ts +151 -126
  40. package/dist/types/current/index.d.ts.map +1 -1
  41. package/dist/types/current/index.js +151 -126
  42. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +1 -0
  43. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  44. package/dist/types/current/playback/PlaybackControllerImpl.js +44 -5
  45. package/dist/types/current/playback/PlaybackSource.d.ts +1 -1
  46. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts +6 -1
  47. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  48. package/dist/types/current/playback/ReadonlyPlaybackController.js +1 -0
  49. package/dist/types/current/streaming/ContentStream.d.ts +8 -1
  50. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  51. package/dist/types/current/streaming/ContentStream.js +19 -2
  52. package/dist/types/current/streaming/LoadMetric.d.ts +58 -0
  53. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -0
  54. package/dist/types/current/streaming/LoadMetric.js +5 -0
  55. package/dist/types/current/streaming/ManifestController.d.ts +16 -1
  56. package/dist/types/current/streaming/ManifestController.d.ts.map +1 -1
  57. package/dist/types/current/streaming/ManifestControllerImpl.d.ts +43 -0
  58. package/dist/types/current/streaming/ManifestControllerImpl.d.ts.map +1 -0
  59. package/dist/types/current/streaming/ManifestControllerImpl.js +104 -0
  60. package/dist/types/current/streaming/MediaQualityMetadata.d.ts +16 -0
  61. package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
  62. package/dist/types/current/streaming/MediaQualityMetadata.js +6 -0
  63. package/dist/types/current/streaming/MediaTimeline.d.ts +6 -0
  64. package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
  65. package/dist/types/current/streaming/SegmentController.d.ts +5 -0
  66. package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
  67. package/dist/types/current/streaming/SegmentControllerImpl.d.ts +12 -0
  68. package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
  69. package/dist/types/current/streaming/SegmentControllerImpl.js +67 -10
  70. package/dist/types/current/streaming/StreamingEventMap.d.ts +38 -1
  71. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  72. package/dist/types/current/streaming/StreamingEventMap.js +4 -0
  73. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  74. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
  75. package/dist/types/current/streaming/abr/QualitySelectorImpl.js +39 -4
  76. package/dist/types/current/streaming/buffering/BufferingController.d.ts +37 -0
  77. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  78. package/dist/types/current/streaming/buffering/BufferingController.js +79 -3
  79. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +16 -11
  80. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
  81. package/dist/types/current/streaming/buffering/MediaSourceController.js +76 -51
  82. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
  83. package/dist/types/current/streaming/buffering/SourceBufferController.js +5 -2
  84. package/dist/types/current/streaming/buffering/codecDenylist.d.ts +23 -0
  85. package/dist/types/current/streaming/buffering/codecDenylist.d.ts.map +1 -0
  86. package/dist/types/current/streaming/buffering/codecDenylist.js +62 -0
  87. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts +30 -0
  88. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts.map +1 -0
  89. package/dist/types/current/streaming/createAllowedContentTypesValue.js +43 -0
  90. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  91. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  92. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +32 -1
  93. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  94. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts.map +1 -0
  95. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.js +75 -0
  96. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  97. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
  98. package/dist/types/current/streaming/mediaTimelineLanguageFilter.js +61 -16
  99. package/dist/types/current/text/SidecarTextTrackController.d.ts +91 -0
  100. package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
  101. package/dist/types/current/text/SidecarTextTrackController.js +237 -0
  102. package/dist/types/current/text/SidecarTextTrackLoader.d.ts +60 -0
  103. package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
  104. package/dist/types/current/text/SidecarTextTrackLoader.js +144 -0
  105. package/dist/types/current/text/TextTrack.d.ts +125 -0
  106. package/dist/types/current/text/TextTrack.d.ts.map +1 -0
  107. package/dist/types/current/text/TextTrack.js +9 -0
  108. package/dist/types/current/text/VttCueStyle.d.ts +41 -0
  109. package/dist/types/current/text/VttCueStyle.d.ts.map +1 -0
  110. package/dist/types/current/text/VttCueStyle.js +45 -0
  111. package/dist/types/current/text/discoverDashTextTracks.d.ts +24 -0
  112. package/dist/types/current/text/discoverDashTextTracks.d.ts.map +1 -0
  113. package/dist/types/current/text/discoverDashTextTracks.js +109 -0
  114. package/dist/types/current/text/discoverHlsTextTracks.d.ts +19 -0
  115. package/dist/types/current/text/discoverHlsTextTracks.d.ts.map +1 -0
  116. package/dist/types/current/text/discoverHlsTextTracks.js +49 -0
  117. package/dist/types/current/text/parseWebVtt.d.ts +46 -0
  118. package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
  119. package/dist/types/current/text/parseWebVtt.js +120 -0
  120. package/dist/types/current/text/pickPreferredTextTrack.d.ts +14 -0
  121. package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
  122. package/dist/types/current/text/pickPreferredTextTrack.js +68 -0
  123. package/dist/types/current/track/SeekRange.d.ts +9 -0
  124. package/dist/types/current/track/SeekRange.d.ts.map +1 -0
  125. package/dist/types/current/track/SeekRange.js +5 -0
  126. package/dist/types/current/track/Track.d.ts +50 -7
  127. package/dist/types/current/track/Track.d.ts.map +1 -1
  128. package/dist/types/current/track/TrackBase.d.ts +30 -29
  129. package/dist/types/current/track/TrackBase.d.ts.map +1 -1
  130. package/dist/types/current/track/TrackBase.js +68 -16
  131. package/dist/types/current/track/TrackController.d.ts +100 -36
  132. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  133. package/dist/types/current/track/TrackController.js +368 -115
  134. package/dist/types/current/track/TrackFactory.d.ts +23 -3
  135. package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
  136. package/dist/types/current/track/TrackFactory.js +9 -3
  137. package/dist/types/current/track/dash/DashManifestController.d.ts +1 -40
  138. package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
  139. package/dist/types/current/track/dash/DashManifestController.js +1 -79
  140. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  141. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +13 -0
  142. package/dist/types/current/track/dash/DashTrack.d.ts +4 -5
  143. package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
  144. package/dist/types/current/track/dash/DashTrack.js +3 -5
  145. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
  146. package/dist/types/current/track/dash/buildDashMediaTimeline.js +3 -2
  147. package/dist/types/current/track/dash/createDashContentTypesValue.js +2 -2
  148. package/dist/types/current/track/dash/createDashFactories.d.ts +39 -12
  149. package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
  150. package/dist/types/current/track/dash/createDashFactories.js +33 -5
  151. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts +0 -5
  152. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
  153. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  154. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +2 -1
  155. package/dist/types/current/track/dash/util/mpd.d.ts +10 -0
  156. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  157. package/dist/types/current/track/dash/util/mpd.js +16 -0
  158. package/dist/types/current/track/hls/HlsManifestController.d.ts +1 -25
  159. package/dist/types/current/track/hls/HlsManifestController.d.ts.map +1 -1
  160. package/dist/types/current/track/hls/HlsManifestController.js +1 -68
  161. package/dist/types/{ts3.7/track/hls/HlsManifestProvider.d.ts → current/track/hls/HlsManifestData.d.ts} +4 -6
  162. package/dist/types/current/track/hls/HlsManifestData.d.ts.map +1 -0
  163. package/dist/types/current/track/hls/HlsManifestData.js +5 -0
  164. package/dist/types/current/track/hls/HlsMediaQualityMetadataResolver.js +9 -6
  165. package/dist/types/current/track/hls/HlsTrack.d.ts +5 -6
  166. package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
  167. package/dist/types/current/track/hls/HlsTrack.js +3 -5
  168. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  169. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
  170. package/dist/types/current/track/hls/buildHlsMediaTimeline.js +134 -67
  171. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  172. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
  173. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts +1 -1
  174. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts.map +1 -1
  175. package/dist/types/current/track/hls/createHlsFactories.d.ts +40 -13
  176. package/dist/types/current/track/hls/createHlsFactories.d.ts.map +1 -1
  177. package/dist/types/current/track/hls/createHlsFactories.js +35 -6
  178. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts +6 -0
  179. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts.map +1 -0
  180. package/dist/types/current/track/hls/createHlsManifestProvider.js +9 -0
  181. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  182. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts.map +1 -1
  183. package/dist/types/current/track/hls/createUrlHlsManifestProvider.js +22 -3
  184. package/dist/types/current/track/hls/index.d.ts +1 -1
  185. package/dist/types/current/track/hls/index.d.ts.map +1 -1
  186. package/dist/types/current/track/hls/index.js +1 -1
  187. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts +15 -0
  188. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts.map +1 -0
  189. package/dist/types/current/track/inferLoadOptionsFromUri.js +55 -0
  190. package/dist/types/current/track/mse/MseTrack.d.ts +66 -8
  191. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  192. package/dist/types/current/track/mse/MseTrack.js +216 -52
  193. package/dist/types/current/track/source/SourceObjectTrack.d.ts +2 -2
  194. package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
  195. package/dist/types/current/track/source/SourceTrack.d.ts +2 -2
  196. package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
  197. package/dist/types/current/track/source/SourceTrack.js +1 -2
  198. package/dist/types/current/track/source/SourceTrackBase.d.ts +7 -5
  199. package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
  200. package/dist/types/current/track/source/SourceTrackBase.js +26 -9
  201. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  202. package/dist/types/current/util/media/codecOverrides.d.ts +33 -0
  203. package/dist/types/current/util/media/codecOverrides.d.ts.map +1 -0
  204. package/dist/types/current/util/media/codecOverrides.js +37 -0
  205. package/dist/types/current/util/media/codecSupport.d.ts +6 -0
  206. package/dist/types/current/util/media/codecSupport.d.ts.map +1 -0
  207. package/dist/types/current/util/media/codecSupport.js +17 -0
  208. package/dist/types/current/util/media/mediaSource.d.ts +5 -0
  209. package/dist/types/current/util/media/mediaSource.d.ts.map +1 -1
  210. package/dist/types/current/util/media/mediaSource.js +6 -1
  211. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  212. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
  213. package/dist/types/current/vinyl/VinylDeps.d.ts +5 -0
  214. package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
  215. package/dist/types/current/vinyl/VinylOptions.d.ts +68 -4
  216. package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
  217. package/dist/types/current/vinyl/VinylOptions.js +17 -2
  218. package/dist/types/current/vinyl/VinylPlayer.d.ts +63 -4
  219. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  220. package/dist/types/current/vinyl/VinylPlayer.js +216 -36
  221. package/dist/types/current/vinyl/createVinylFactories.d.ts +55 -12
  222. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  223. package/dist/types/current/vinyl/createVinylFactories.js +4 -0
  224. package/dist/types/ts3.7/ad/AdBreakInfo.d.ts +160 -0
  225. package/dist/types/ts3.7/ad/AdController.d.ts +243 -0
  226. package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +146 -0
  227. package/dist/types/ts3.7/ad/AdError.d.ts +6 -0
  228. package/dist/types/ts3.7/ad/AdsProvider.d.ts +28 -0
  229. package/dist/types/ts3.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  230. package/dist/types/ts3.7/ad/discoverHlsInterstitials.d.ts +22 -0
  231. package/dist/types/ts3.7/drm/DrmController.d.ts +29 -4
  232. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +13 -4
  233. package/dist/types/ts3.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  234. package/dist/types/ts3.7/index.d.ts +151 -126
  235. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +1 -0
  236. package/dist/types/ts3.7/playback/PlaybackSource.d.ts +1 -1
  237. package/dist/types/ts3.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  238. package/dist/types/ts3.7/streaming/ContentStream.d.ts +8 -1
  239. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
  240. package/dist/types/ts3.7/streaming/ManifestController.d.ts +16 -1
  241. package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
  242. package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +19 -0
  243. package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +6 -0
  244. package/dist/types/ts3.7/streaming/SegmentController.d.ts +5 -0
  245. package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +12 -0
  246. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +42 -1
  247. package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  248. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +37 -0
  249. package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +16 -11
  250. package/dist/types/ts3.7/streaming/buffering/codecDenylist.d.ts +23 -0
  251. package/dist/types/ts3.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  252. package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  253. package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  254. package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  255. package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +91 -0
  256. package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +60 -0
  257. package/dist/types/ts3.7/text/TextTrack.d.ts +129 -0
  258. package/dist/types/ts3.7/text/VttCueStyle.d.ts +41 -0
  259. package/dist/types/ts3.7/text/discoverDashTextTracks.d.ts +24 -0
  260. package/dist/types/ts3.7/text/discoverHlsTextTracks.d.ts +19 -0
  261. package/dist/types/ts3.7/text/parseWebVtt.d.ts +46 -0
  262. package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +14 -0
  263. package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
  264. package/dist/types/ts3.7/track/Track.d.ts +50 -7
  265. package/dist/types/ts3.7/track/TrackBase.d.ts +21 -29
  266. package/dist/types/ts3.7/track/TrackController.d.ts +102 -37
  267. package/dist/types/ts3.7/track/TrackFactory.d.ts +22 -2
  268. package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -36
  269. package/dist/types/ts3.7/track/dash/DashTrack.d.ts +4 -5
  270. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +39 -12
  271. package/dist/types/ts3.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  272. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +10 -0
  273. package/dist/types/ts3.7/track/hls/HlsManifestController.d.ts +1 -22
  274. package/dist/types/{current/track/hls/HlsManifestProvider.d.ts → ts3.7/track/hls/HlsManifestData.d.ts} +4 -6
  275. package/dist/types/ts3.7/track/hls/HlsTrack.d.ts +5 -6
  276. package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  277. package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  278. package/dist/types/ts3.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  279. package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +40 -13
  280. package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  281. package/dist/types/ts3.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  282. package/dist/types/ts3.7/track/hls/index.d.ts +1 -1
  283. package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  284. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +65 -7
  285. package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +2 -2
  286. package/dist/types/ts3.7/track/source/SourceTrack.d.ts +2 -2
  287. package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +7 -5
  288. package/dist/types/ts3.7/util/media/codecOverrides.d.ts +33 -0
  289. package/dist/types/ts3.7/util/media/codecSupport.d.ts +6 -0
  290. package/dist/types/ts3.7/util/media/mediaSource.d.ts +5 -0
  291. package/dist/types/ts3.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  292. package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +5 -0
  293. package/dist/types/ts3.7/vinyl/VinylOptions.d.ts +68 -4
  294. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +33 -4
  295. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +55 -12
  296. package/dist/types/ts4.1/ad/AdBreakInfo.d.ts +160 -0
  297. package/dist/types/ts4.1/ad/AdController.d.ts +243 -0
  298. package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +146 -0
  299. package/dist/types/ts4.1/ad/AdError.d.ts +6 -0
  300. package/dist/types/ts4.1/ad/AdsProvider.d.ts +28 -0
  301. package/dist/types/ts4.1/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  302. package/dist/types/ts4.1/ad/discoverHlsInterstitials.d.ts +22 -0
  303. package/dist/types/ts4.1/drm/DrmController.d.ts +29 -4
  304. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +13 -4
  305. package/dist/types/ts4.1/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  306. package/dist/types/ts4.1/index.d.ts +151 -126
  307. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +1 -0
  308. package/dist/types/ts4.1/playback/PlaybackSource.d.ts +1 -1
  309. package/dist/types/ts4.1/playback/ReadonlyPlaybackController.d.ts +6 -0
  310. package/dist/types/ts4.1/streaming/ContentStream.d.ts +8 -1
  311. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
  312. package/dist/types/ts4.1/streaming/ManifestController.d.ts +16 -1
  313. package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
  314. package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +19 -0
  315. package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +6 -0
  316. package/dist/types/ts4.1/streaming/SegmentController.d.ts +5 -0
  317. package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +12 -0
  318. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +42 -1
  319. package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  320. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +37 -0
  321. package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +16 -11
  322. package/dist/types/ts4.1/streaming/buffering/codecDenylist.d.ts +23 -0
  323. package/dist/types/ts4.1/streaming/createAllowedContentTypesValue.d.ts +30 -0
  324. package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  325. package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  326. package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  327. package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +92 -0
  328. package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +60 -0
  329. package/dist/types/ts4.1/text/TextTrack.d.ts +129 -0
  330. package/dist/types/ts4.1/text/VttCueStyle.d.ts +41 -0
  331. package/dist/types/ts4.1/text/discoverDashTextTracks.d.ts +24 -0
  332. package/dist/types/ts4.1/text/discoverHlsTextTracks.d.ts +19 -0
  333. package/dist/types/ts4.1/text/parseWebVtt.d.ts +46 -0
  334. package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +14 -0
  335. package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
  336. package/dist/types/ts4.1/track/Track.d.ts +50 -7
  337. package/dist/types/ts4.1/track/TrackBase.d.ts +21 -29
  338. package/dist/types/ts4.1/track/TrackController.d.ts +102 -37
  339. package/dist/types/ts4.1/track/TrackFactory.d.ts +22 -2
  340. package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -36
  341. package/dist/types/ts4.1/track/dash/DashTrack.d.ts +4 -5
  342. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +39 -12
  343. package/dist/types/ts4.1/track/dash/createSegmentControllerFactory.d.ts +0 -5
  344. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +10 -0
  345. package/dist/types/ts4.1/track/hls/HlsManifestController.d.ts +1 -22
  346. package/dist/types/ts4.1/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  347. package/dist/types/ts4.1/track/hls/HlsTrack.d.ts +5 -6
  348. package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  349. package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  350. package/dist/types/ts4.1/track/hls/createHlsContentTypesValue.d.ts +1 -1
  351. package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +41 -13
  352. package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
  353. package/dist/types/ts4.1/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  354. package/dist/types/ts4.1/track/hls/index.d.ts +1 -1
  355. package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
  356. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +65 -7
  357. package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +2 -2
  358. package/dist/types/ts4.1/track/source/SourceTrack.d.ts +2 -2
  359. package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +7 -5
  360. package/dist/types/ts4.1/util/media/codecOverrides.d.ts +33 -0
  361. package/dist/types/ts4.1/util/media/codecSupport.d.ts +6 -0
  362. package/dist/types/ts4.1/util/media/mediaSource.d.ts +5 -0
  363. package/dist/types/ts4.1/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  364. package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +5 -0
  365. package/dist/types/ts4.1/vinyl/VinylOptions.d.ts +68 -4
  366. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +33 -4
  367. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +56 -12
  368. package/dist/types/ts4.7/ad/AdBreakInfo.d.ts +160 -0
  369. package/dist/types/ts4.7/ad/AdController.d.ts +243 -0
  370. package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +146 -0
  371. package/dist/types/ts4.7/ad/AdError.d.ts +6 -0
  372. package/dist/types/ts4.7/ad/AdsProvider.d.ts +28 -0
  373. package/dist/types/ts4.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  374. package/dist/types/ts4.7/ad/discoverHlsInterstitials.d.ts +22 -0
  375. package/dist/types/ts4.7/drm/DrmController.d.ts +29 -4
  376. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +13 -4
  377. package/dist/types/ts4.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  378. package/dist/types/ts4.7/index.d.ts +151 -126
  379. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +1 -0
  380. package/dist/types/ts4.7/playback/PlaybackSource.d.ts +1 -1
  381. package/dist/types/ts4.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  382. package/dist/types/ts4.7/streaming/ContentStream.d.ts +8 -1
  383. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
  384. package/dist/types/ts4.7/streaming/ManifestController.d.ts +16 -1
  385. package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
  386. package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +19 -0
  387. package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +6 -0
  388. package/dist/types/ts4.7/streaming/SegmentController.d.ts +5 -0
  389. package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +12 -0
  390. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +42 -1
  391. package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  392. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +37 -0
  393. package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +16 -11
  394. package/dist/types/ts4.7/streaming/buffering/codecDenylist.d.ts +23 -0
  395. package/dist/types/ts4.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  396. package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  397. package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  398. package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  399. package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +91 -0
  400. package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +60 -0
  401. package/dist/types/ts4.7/text/TextTrack.d.ts +129 -0
  402. package/dist/types/ts4.7/text/VttCueStyle.d.ts +41 -0
  403. package/dist/types/ts4.7/text/discoverDashTextTracks.d.ts +24 -0
  404. package/dist/types/ts4.7/text/discoverHlsTextTracks.d.ts +19 -0
  405. package/dist/types/ts4.7/text/parseWebVtt.d.ts +46 -0
  406. package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +14 -0
  407. package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
  408. package/dist/types/ts4.7/track/Track.d.ts +50 -7
  409. package/dist/types/ts4.7/track/TrackBase.d.ts +30 -29
  410. package/dist/types/ts4.7/track/TrackController.d.ts +102 -37
  411. package/dist/types/ts4.7/track/TrackFactory.d.ts +23 -3
  412. package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -40
  413. package/dist/types/ts4.7/track/dash/DashTrack.d.ts +4 -5
  414. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +39 -12
  415. package/dist/types/ts4.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  416. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +10 -0
  417. package/dist/types/ts4.7/track/hls/HlsManifestController.d.ts +1 -25
  418. package/dist/types/ts4.7/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  419. package/dist/types/ts4.7/track/hls/HlsTrack.d.ts +5 -6
  420. package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  421. package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  422. package/dist/types/ts4.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  423. package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +40 -13
  424. package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  425. package/dist/types/ts4.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  426. package/dist/types/ts4.7/track/hls/index.d.ts +1 -1
  427. package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  428. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +66 -8
  429. package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +2 -2
  430. package/dist/types/ts4.7/track/source/SourceTrack.d.ts +2 -2
  431. package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +7 -5
  432. package/dist/types/ts4.7/util/media/codecOverrides.d.ts +33 -0
  433. package/dist/types/ts4.7/util/media/codecSupport.d.ts +6 -0
  434. package/dist/types/ts4.7/util/media/mediaSource.d.ts +5 -0
  435. package/dist/types/ts4.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  436. package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +5 -0
  437. package/dist/types/ts4.7/vinyl/VinylOptions.d.ts +68 -4
  438. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +63 -4
  439. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +55 -12
  440. package/dist/unit/types/current/ad/AdController.test.d.ts +2 -0
  441. package/dist/unit/types/current/ad/AdController.test.d.ts.map +1 -0
  442. package/dist/unit/types/current/ad/AdController.test.js +10 -0
  443. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts +2 -0
  444. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts.map +1 -0
  445. package/dist/unit/types/current/ad/AdControllerImpl.test.js +1456 -0
  446. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts +2 -0
  447. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts.map +1 -0
  448. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.js +56 -0
  449. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts +2 -0
  450. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts.map +1 -0
  451. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.js +756 -0
  452. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +205 -4
  453. package/dist/unit/types/current/index.d.ts +117 -98
  454. package/dist/unit/types/current/index.d.ts.map +1 -1
  455. package/dist/unit/types/current/index.js +117 -98
  456. package/dist/unit/types/current/playback/PlaybackControllerImpl.test.js +92 -3
  457. package/dist/unit/types/current/streaming/ContentStream.test.js +11 -0
  458. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts +2 -0
  459. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts.map +1 -0
  460. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.js +197 -0
  461. package/dist/unit/types/current/streaming/MediaTimeline.test.js +2 -0
  462. package/dist/unit/types/current/streaming/MseTrack.test.js +478 -14
  463. package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +66 -0
  464. package/dist/unit/types/current/streaming/StreamingEventMap.test.js +2 -2
  465. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +110 -0
  466. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +123 -21
  467. package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +37 -10
  468. package/dist/unit/types/current/streaming/buffering/SourceBufferController.test.js +4 -0
  469. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts +2 -0
  470. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts.map +1 -0
  471. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.js +56 -0
  472. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts +2 -0
  473. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts.map +1 -0
  474. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.js +77 -0
  475. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +144 -2
  476. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts +2 -0
  477. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts.map +1 -0
  478. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.js +99 -0
  479. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +9 -0
  480. package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +92 -3
  481. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts +2 -0
  482. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts.map +1 -0
  483. package/dist/unit/types/current/text/SidecarTextTrackController.test.js +587 -0
  484. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts +2 -0
  485. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts.map +1 -0
  486. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +336 -0
  487. package/dist/unit/types/current/text/VttCueStyle.test.d.ts +2 -0
  488. package/dist/unit/types/current/text/VttCueStyle.test.d.ts.map +1 -0
  489. package/dist/unit/types/current/text/VttCueStyle.test.js +76 -0
  490. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts +2 -0
  491. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts.map +1 -0
  492. package/dist/unit/types/current/text/discoverDashTextTracks.test.js +199 -0
  493. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts +2 -0
  494. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts.map +1 -0
  495. package/dist/unit/types/current/text/discoverHlsTextTracks.test.js +177 -0
  496. package/dist/unit/types/current/text/parseWebVtt.test.d.ts +2 -0
  497. package/dist/unit/types/current/text/parseWebVtt.test.d.ts.map +1 -0
  498. package/dist/unit/types/current/text/parseWebVtt.test.js +212 -0
  499. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts +2 -0
  500. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts.map +1 -0
  501. package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +67 -0
  502. package/dist/unit/types/current/track/TrackBase.test.js +50 -5
  503. package/dist/unit/types/current/track/TrackController.test.js +712 -109
  504. package/dist/unit/types/current/track/TrackFactory.test.js +13 -25
  505. package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +1 -0
  506. package/dist/unit/types/current/track/dash/createDashFactories.test.js +63 -2
  507. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +1 -0
  508. package/dist/unit/types/current/track/dash/util/mpd.test.js +24 -1
  509. package/dist/unit/types/current/track/hls/HlsManifestController.test.js +4 -4
  510. package/dist/unit/types/current/track/hls/HlsMediaQualityMetadataResolver.test.js +4 -2
  511. package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +260 -14
  512. package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +1 -0
  513. package/dist/unit/types/current/track/hls/createHlsFactories.test.js +182 -4
  514. package/dist/unit/types/current/track/hls/createUrlHlsManifestProvider.test.js +19 -0
  515. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts +2 -0
  516. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts.map +1 -0
  517. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.js +165 -0
  518. package/dist/unit/types/current/track/source/SourceTrack.test.js +5 -0
  519. package/dist/unit/types/current/track/source/SourceTrackBase.test.js +24 -3
  520. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  521. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts +2 -0
  522. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts.map +1 -0
  523. package/dist/unit/types/current/util/media/codecOverrides.test.js +42 -0
  524. package/dist/unit/types/current/util/media/codecSupport.test.d.ts +2 -0
  525. package/dist/unit/types/current/util/media/codecSupport.test.d.ts.map +1 -0
  526. package/dist/unit/types/current/util/media/codecSupport.test.js +26 -0
  527. package/dist/unit/types/current/util/media/mediaSource.test.js +6 -0
  528. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +177 -75
  529. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts +2 -0
  530. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts.map +1 -0
  531. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.js +142 -0
  532. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts +2 -0
  533. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts.map +1 -0
  534. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +263 -0
  535. package/dist/vinylTestUtil/index.js +2393 -2232
  536. package/dist/vinylTestUtil/index.js.map +4 -4
  537. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +14 -0
  538. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
  539. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +49 -30
  540. package/dist/vinylTestUtil/types/current/index.d.ts +53 -51
  541. package/dist/vinylTestUtil/types/current/index.d.ts.map +1 -1
  542. package/dist/vinylTestUtil/types/current/index.js +53 -51
  543. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts +15 -0
  544. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts.map +1 -0
  545. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.js +26 -0
  546. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts +8 -1
  547. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts.map +1 -1
  548. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.js +15 -0
  549. package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +12 -12
  550. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts +2 -2
  551. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts.map +1 -1
  552. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts +7 -1
  553. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts.map +1 -1
  554. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.js +12 -0
  555. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts +3 -3
  556. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts.map +1 -1
  557. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.js +1 -0
  558. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  559. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
  560. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +17 -1
  561. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts +2 -1
  562. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts.map +1 -1
  563. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.js +1 -0
  564. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  565. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts.map +1 -1
  566. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.js +1 -0
  567. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  568. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
  569. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +2 -1
  570. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +10 -0
  571. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -0
  572. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +14 -0
  573. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts +13 -4
  574. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts.map +1 -1
  575. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.js +11 -0
  576. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts +3 -2
  577. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts.map +1 -1
  578. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.js +2 -1
  579. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  580. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
  581. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +8 -1
  582. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  583. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
  584. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +6 -1
  585. package/dist/vinylTestUtil/types/current/player/createVinylSuite.d.ts.map +1 -1
  586. package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +18 -7
  587. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  588. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.d.ts.map +1 -1
  589. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.js +1 -1
  590. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.d.ts.map +1 -1
  591. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +5 -2
  592. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +3 -3
  593. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
  594. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +11 -7
  595. package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +14 -0
  596. package/dist/vinylTestUtil/types/ts3.7/index.d.ts +53 -51
  597. package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
  598. package/dist/vinylTestUtil/types/ts3.7/mock/dash/MockDashManifestController.d.ts +8 -1
  599. package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +12 -12
  600. package/dist/vinylTestUtil/types/ts3.7/mock/drm/MockDrmController.d.ts +2 -2
  601. package/dist/vinylTestUtil/types/ts3.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  602. package/dist/vinylTestUtil/types/ts3.7/mock/hls/mockHlsManifest.d.ts +3 -3
  603. package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  604. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockContentStream.d.ts +2 -1
  605. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  606. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  607. package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
  608. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrack.d.ts +13 -4
  609. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrackController.d.ts +3 -2
  610. package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  611. package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  612. package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +14 -0
  613. package/dist/vinylTestUtil/types/ts4.1/index.d.ts +53 -51
  614. package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
  615. package/dist/vinylTestUtil/types/ts4.1/mock/dash/MockDashManifestController.d.ts +8 -1
  616. package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +12 -12
  617. package/dist/vinylTestUtil/types/ts4.1/mock/drm/MockDrmController.d.ts +2 -2
  618. package/dist/vinylTestUtil/types/ts4.1/mock/hls/MockHlsManifestController.d.ts +7 -1
  619. package/dist/vinylTestUtil/types/ts4.1/mock/hls/mockHlsManifest.d.ts +3 -3
  620. package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  621. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockContentStream.d.ts +2 -1
  622. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  623. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  624. package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
  625. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrack.d.ts +13 -4
  626. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrackController.d.ts +3 -2
  627. package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  628. package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  629. package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +14 -0
  630. package/dist/vinylTestUtil/types/ts4.7/index.d.ts +53 -51
  631. package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
  632. package/dist/vinylTestUtil/types/ts4.7/mock/dash/MockDashManifestController.d.ts +8 -1
  633. package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +12 -12
  634. package/dist/vinylTestUtil/types/ts4.7/mock/drm/MockDrmController.d.ts +2 -2
  635. package/dist/vinylTestUtil/types/ts4.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  636. package/dist/vinylTestUtil/types/ts4.7/mock/hls/mockHlsManifest.d.ts +3 -3
  637. package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  638. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockContentStream.d.ts +2 -1
  639. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  640. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  641. package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
  642. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrack.d.ts +13 -4
  643. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrackController.d.ts +3 -2
  644. package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  645. package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  646. package/docs/ADS.md +264 -0
  647. package/docs/USAGE.md +142 -9
  648. package/package.json +16 -16
  649. package/dist/types/current/track/hls/HlsManifestProvider.d.ts.map +0 -1
  650. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts +0 -2
  651. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts.map +0 -1
  652. package/dist/unit/types/current/track/dash/DashManifestController.test.js +0 -186
  653. /package/dist/types/current/{track/hls/HlsManifestProvider.js → ad/AdBreakInfo.js} +0 -0
@@ -1,13 +1,19 @@
1
- import { type ContentType, type MediaQualityMetadata, type Track, type TrackEventMap } from '@amazon/vinyl';
1
+ import { type AdController, type ContentType, type MediaQualityMetadata, type SeekRange, type TextTrackController, type Track, type TrackAds, type TrackEventMap } from '@amazon/vinyl';
2
2
  import { RangesImpl } from '@amazon/vinyl-util';
3
3
  import { MockEventHost } from '@amazon/vinyl-util/testUtil';
4
4
  export declare class MockTrack extends MockEventHost<TrackEventMap> implements Track {
5
5
  get [Symbol.toStringTag](): string;
6
+ ads: TrackAds | null;
7
+ /**
8
+ * Resolves the track's ads. Mirrors the real async `getAds()` contract; the
9
+ * `ads` field is the backing value (defaulting to an empty break list).
10
+ */
11
+ getAds(): Promise<TrackAds>;
6
12
  uri: string;
7
13
  type: string;
8
14
  active: boolean;
9
15
  fetchedRanges: RangesImpl;
10
- preload: import("@amazon/vinyl-util/browserTestUtil").Spy2<(trackOptions: import("@amazon/vinyl").TrackPreloadOptions, loadOptions: import("@amazon/vinyl-util").AnyRecord) => void>;
16
+ preload: import("@amazon/vinyl-util/browserTestUtil").Spy2<(trackOptions: import("@amazon/vinyl").TrackPreloadOptions, loadOptions: import("@amazon/vinyl-util").Maybe<import("@amazon/vinyl").TrackConfigOptions>) => void>;
11
17
  contentTypes: Set<ContentType>;
12
18
  qualities: readonly MediaQualityMetadata[] | null;
13
19
  qualitiesUnfiltered: readonly MediaQualityMetadata[] | null;
@@ -16,10 +22,13 @@ export declare class MockTrack extends MockEventHost<TrackEventMap> implements T
16
22
  getPlaybackQuality: import("@amazon/vinyl-util/browserTestUtil").Spy2<(contentType: ContentType) => MediaQualityMetadata | null>;
17
23
  extra: any;
18
24
  error: Error | null;
19
- activate: import("@amazon/vinyl-util/browserTestUtil").Spy2<(loadOptions: import("@amazon/vinyl-util").AnyRecord) => void>;
25
+ textTrackController: TextTrackController | null;
26
+ adController: AdController | null;
27
+ seekRange: SeekRange | null;
28
+ activate: import("@amazon/vinyl-util/browserTestUtil").Spy2<(loadOptions: import("@amazon/vinyl-util").Maybe<import("@amazon/vinyl").TrackConfigOptions>) => void>;
20
29
  deactivate: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
21
30
  clearPrefetch: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
22
- reset: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
31
+ reset: import("@amazon/vinyl-util/browserTestUtil").Spy2<(hard?: boolean) => void>;
23
32
  disposed: boolean;
24
33
  /**
25
34
  * Installs fakes for activate and deactivate to set active status.
@@ -1,7 +1,8 @@
1
1
  import type { Track, TrackController, TrackControllerEventMap, TrackLoadOptions } from '@amazon/vinyl';
2
2
  import { MockEventHost } from '@amazon/vinyl-util/testUtil';
3
3
  export declare class MockTrackController<TrackLoadOptionsType extends TrackLoadOptions = TrackLoadOptions> extends MockEventHost<TrackControllerEventMap<TrackLoadOptionsType>> implements TrackController<TrackLoadOptionsType> {
4
- currentTrack: Track | null;
4
+ activeTrack: Track | null;
5
+ currentAdTrack: Track | null;
5
6
  queue: any[];
6
7
  clearPrefetch: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
7
8
  clearQueue: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
@@ -15,6 +16,6 @@ export declare class MockTrackController<TrackLoadOptionsType extends TrackLoadO
15
16
  next: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
16
17
  preload: import("@amazon/vinyl-util/browserTestUtil").Spy2<(...loadOptionsList: readonly any[]) => void>;
17
18
  unload: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
18
- reset: import("@amazon/vinyl-util/browserTestUtil").Spy2<() => void>;
19
+ reset: import("@amazon/vinyl-util/browserTestUtil").Spy2<(hard?: boolean) => void>;
19
20
  }
20
21
  //# sourceMappingURL=MockTrackController.d.ts.map
@@ -4,7 +4,9 @@ import { MockMediaSourceController } from '../../streaming/buffering/MockMediaSo
4
4
  import { MockPlaybackSource } from '../../playback/MockPlaybackSource';
5
5
  import { MockPlaybackController } from '../../playback/MockPlaybackController';
6
6
  import { MockDrmController } from '../../drm/MockDrmController';
7
+ import { MockTextTrackController } from '../../text/MockTextTrackController';
7
8
  export declare function createMockDashDependencies(): {
9
+ readonly textTrackController: MockTextTrackController;
8
10
  readonly contentTypesValue: import("@amazon/vinyl-observable").MutableValueImpl<Promise<Set<ContentType>>>;
9
11
  readonly contentStreamFactory: jasmine.Spy<((contentType: ContentType) => import("@amazon/vinyl").ContentStream) & ((contentType: ContentType) => any)>;
10
12
  readonly manifestController: MockDashManifestController;
@@ -16,6 +18,10 @@ export declare function createMockDashDependencies(): {
16
18
  readonly playbackController: MockPlaybackController;
17
19
  readonly drmController: MockDrmController;
18
20
  readonly mediaQualityMetadataResolver: jasmine.Spy<DashMediaQualityMetadataResolver>;
21
+ readonly preferredAudioLanguage: import("@amazon/vinyl-observable").MutableValueImpl<string | readonly string[] | null>;
22
+ readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
23
+ readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
24
+ readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
19
25
  };
20
26
  export type MockDashDependencies = ReturnType<typeof createMockDashDependencies>;
21
27
  //# sourceMappingURL=createMockDashDependencies.d.ts.map
@@ -16,6 +16,10 @@ export declare function createMockHlsDependencies(): {
16
16
  readonly playbackController: MockPlaybackController;
17
17
  readonly drmController: MockDrmController;
18
18
  readonly mediaQualityMetadataResolver: jasmine.Spy<HlsMediaQualityMetadataResolver>;
19
+ readonly preferredAudioLanguage: import("@amazon/vinyl-observable").MutableValueImpl<string | readonly string[] | null>;
20
+ readonly allowedContentTypes: import("@amazon/vinyl-observable").MutableValueImpl<readonly import("@amazon/vinyl").RestrictableContentType[] | null>;
21
+ readonly preferDescriptiveAudio: import("@amazon/vinyl-observable").MutableValueImpl<boolean>;
22
+ readonly abr: import("@amazon/vinyl-observable").MutableValueImpl<import("@amazon/vinyl").QualitySelectorImplOptions>;
19
23
  };
20
24
  export type MockHlsDependencies = ReturnType<typeof createMockHlsDependencies>;
21
25
  //# sourceMappingURL=createMockHlsDependencies.d.ts.map
package/docs/ADS.md ADDED
@@ -0,0 +1,264 @@
1
+ # Ad Interstitials
2
+
3
+ The Amazon Vinyl player supports server-guided ad insertion (SGAI) via HLS
4
+ Interstitials (`EXT-X-DATERANGE` with `CLASS="com.apple.hls.interstitial"`). Ad
5
+ breaks are discovered from the manifest, exposed through a provider-agnostic
6
+ model, and played back transparently on the same media element as content.
7
+
8
+ DASH SCTE-35 ad support is planned as a fast follow and will surface through the
9
+ same `AdController` model, so application code written against this API will not
10
+ need to change.
11
+
12
+ ## The model
13
+
14
+ Ads are described by a small, provider-agnostic model. Applications observe it
15
+ through the player; they never deal with HLS- or DASH-specific tags.
16
+
17
+ - **`AdBreakInfo`** — a span of the timeline that carries advertising instead of
18
+ primary content. It has an `id`, a `startTime` and `duration` (in seconds on
19
+ the media timeline), a `placement` (`preroll` | `midroll` | `postroll`), a
20
+ `restrict` rule set (each of `skip`/`jump` optional), and an `ads` resolver.
21
+ It also carries fields that govern replay and resumption: `once` (play the
22
+ break at most once, never replaying it when the playhead re-crosses),
23
+ `resumeOffset` (where primary content resumes relative to the break start;
24
+ `null` advances by the break's actual playout duration, `0` resumes in place),
25
+ `playoutLimit` (a cap on the break's total playout, or `null` when uncapped),
26
+ `resolutionTimeOffset` (how far ahead of the break its assets should be
27
+ resolved and preloaded; `null` falls back to the controller's
28
+ `preloadAheadTime` option — see [Preloading](#preloading)), and a
29
+ `skipControl` resolver (resolving to the window — `{ offset, duration }` —
30
+ during which the ad may be skipped, or `null` when the break carries none).
31
+ These are provider-agnostic; an HLS interstitial, for example, populates them
32
+ from its `CUE=ONCE`, `X-RESUME-OFFSET`, `X-PLAYOUT-LIMIT`,
33
+ `X-RESOLUTION-TIME-OFFSET`, and `X-ASSET-LIST` `SKIP-CONTROL` signals.
34
+ - **`AdInfo`** — a single ad within a break, with its own `id`, `startTime`,
35
+ `duration`, and asset `uri` (or `null`). Playback of an ad is capped at its
36
+ `duration` when that is known.
37
+ - **`ads`** — a `ValueProvider<AdList>`; resolve it (via `resolveValueProvider`)
38
+ to the break's `readonly AdInfo[]`. Asset lists fetched lazily (e.g. an HLS
39
+ `X-ASSET-LIST`) resolve on first call and cache; breaks whose assets are known
40
+ up front resolve immediately.
41
+
42
+ Ad assets are full tracks. An ad can be another HLS manifest, an MP4, or any
43
+ source the player can otherwise play. The track type is inferred from the asset
44
+ URL's extension today; MIME-type probing for extension-less URLs is a planned
45
+ follow-up.
46
+
47
+ ## Player API
48
+
49
+ ```typescript
50
+ // The ad breaks discovered for the current media (a TrackAds carrying the
51
+ // break list), or null before any are known.
52
+ player.currentTrackAds // TrackAds | null
53
+
54
+ // The break currently containing the playhead, or null in primary content.
55
+ player.currentAdBreak // AdBreakInfo | null
56
+
57
+ // The ad currently playing within the active break, or null.
58
+ player.currentAd // AdInfo | null
59
+
60
+ // While an ad plays it is the active track, so `activeTrack` refers to the ad
61
+ // track (not content) during a break. `currentAdBreak != null` likewise tells
62
+ // you an ad is currently playing.
63
+ player.activeTrack // ReadonlyTrack | null
64
+
65
+ // Skip the current ad. If more ads remain in the break the next one begins;
66
+ // otherwise the break ends and content resumes. No-op with no active break.
67
+ player.skipAd()
68
+
69
+ // Skip the entire active break and resume content. No-op with no active break.
70
+ player.skipAdBreak()
71
+ ```
72
+
73
+ ### Events
74
+
75
+ All of these are dispatched by the `AdController` and redispatched on the
76
+ player, so you can listen on `player` directly.
77
+
78
+ ```typescript
79
+ // The set of known ad breaks changed (e.g. a live manifest revealed one).
80
+ player.on('currentTrackAdsChange', ({ previous, current }) => {
81
+ /* current: TrackAds | null */
82
+ })
83
+
84
+ // The playhead is approaching a midroll/postroll break (within its
85
+ // resolution/preload window) and its assets are being warmed. Not emitted for
86
+ // prerolls (they are warmed up front). See Preloading.
87
+ player.on('adPreload', ({ adBreak }) => {
88
+ /* … */
89
+ })
90
+
91
+ // An ad break was entered — its ads may still be resolving.
92
+ player.on('adBreakEntered', ({ adBreak }) => {
93
+ /* … */
94
+ })
95
+
96
+ // The active ad break completed (all ads played, were skipped, it hit its
97
+ // playout limit, or it had no ads). `resumePosition` is the absolute
98
+ // media-timeline position where content resumes; `reason` is one of
99
+ // 'ended' | 'skipped' | 'contentChange' | 'error'.
100
+ player.on('adBreakCompleted', ({ adBreak, resumePosition, reason }) => {
101
+ /* … */
102
+ })
103
+
104
+ // An individual ad within the break became active / started playing. Each
105
+ // carries { adBreak, ad, index, totalAds }.
106
+ player.on('adEntered', (e) => {
107
+ /* … */
108
+ })
109
+ player.on('adPlaying', (e) => {
110
+ /* … */
111
+ })
112
+
113
+ // Per-tick ad timing while a break plays. Carries elapsed and remaining time
114
+ // for the current ad and for the whole break, plus the skip state — `canSkip`
115
+ // (whether the ad may be skipped right now) and `skipIn` (seconds until it can
116
+ // be, or null). Prefer this over deriving ad timing from the media element.
117
+ player.on('adTimeUpdate', (e) => {
118
+ /* e.adCurrentTime, e.adTimeRemaining, e.breakCurrentTime,
119
+ e.breakTimeRemaining, e.canSkip, e.skipIn */
120
+ })
121
+
122
+ // Ad progress milestones. `adEnded` fires at 100%, just before `adCompleted`.
123
+ // Each carries { adBreak, ad, index, totalAds, playbackRateAvg }.
124
+ player.on('adFirstQuartile', (e) => {})
125
+ player.on('adMidpoint', (e) => {})
126
+ player.on('adThirdQuartile', (e) => {})
127
+ player.on('adEnded', (e) => {})
128
+
129
+ // An ad stopped playing for any reason (ended, skipped, error). Carries
130
+ // { adBreak, ad, index, totalAds, reason }.
131
+ player.on('adCompleted', ({ ad, reason }) => {
132
+ /* … */
133
+ })
134
+
135
+ // An ad list failed to load, or an individual ad failed. `currentAd` is set
136
+ // only when a specific ad failed (null when the list itself failed to load).
137
+ player.on('adError', ({ adBreak, currentAd, error }) => {
138
+ /* … */
139
+ })
140
+ ```
141
+
142
+ Gate a Skip control on `canSkip` and show a countdown from `skipIn` until the
143
+ skip window opens.
144
+
145
+ ## How playback works
146
+
147
+ Ad breaks are played on the **same media element** as content — there is no
148
+ second video element. When the playhead enters a break, the `TrackController`:
149
+
150
+ 1. Suspends the content track, remembering the resume position.
151
+ 2. Creates (or reuses a preloaded) ad track and activates it.
152
+ 3. Sequences through the break's ads. Each ad plays to its end (or is skipped),
153
+ then the next ad activates.
154
+ 4. When the break ends, reactivates the content track at the resume position the
155
+ break dictates (ads either replace embedded content or resume from the prior
156
+ position).
157
+
158
+ ### Preloading
159
+
160
+ Ad tracks are preloaded so they start promptly on entry:
161
+
162
+ - **Prerolls** are warmed up front — when their parent content track is
163
+ preloaded (on `load`, prefetch, or `preload`) — since they play immediately.
164
+ - **Midrolls and postrolls** are warmed as the playhead approaches them. The
165
+ `AdController` emits an **`adPreload`** event once the playhead comes within a
166
+ break's lead time: its own `resolutionTimeOffset` (from an HLS
167
+ `X-RESOLUTION-TIME-OFFSET`) when present, otherwise the
168
+ `AdControllerImplOptions.preloadAheadTime` (default 10 seconds). The
169
+ `TrackController` handles that event by resolving and warming the break's ad
170
+ tracks. Seeking back before a break re-arms its preload, so it warms again on
171
+ the next approach; a played-once (or spent) break is not re-warmed.
172
+
173
+ Preloaded ad tracks are pegged to their parent content track — they carry a
174
+ prefetch priority just above it and are disposed when that parent is evicted
175
+ from the track cache (or the cache is cleared), so the ad-track store cannot
176
+ grow without bound.
177
+
178
+ ### Placement notes
179
+
180
+ - **Preroll** ads play before content begins.
181
+ - **Midroll** ads play when the playhead crosses into the break.
182
+ - **Postroll** ads play at the end of content. Because a postroll's start sits
183
+ at (or just past) the content's end, the playhead rarely reports a time inside
184
+ it before the content's `ended` fires — so the player treats a content `ended`
185
+ as the trigger to play a pending postroll before finishing the queue.
186
+
187
+ ## Restrictions
188
+
189
+ A break may carry restrictions (from an HLS `X-RESTRICT`) describing what the
190
+ **application** should allow. The player itself never blocks `skipAd`,
191
+ `skipAdBreak`, or seeking — it always honors the API — but it surfaces the
192
+ break's rules so applications can decide whether to expose those controls:
193
+
194
+ ```typescript
195
+ const activeBreak = player.currentAdBreak
196
+ const canSkip = !activeBreak?.restrict.skip // hide the Skip button when true
197
+ const canSeek = !activeBreak?.restrict.jump // disable seeking past the ad
198
+ ```
199
+
200
+ ## Detecting track completion
201
+
202
+ > **This is the most important integration note.** Read it if you act on track
203
+ > completion yourself.
204
+
205
+ If you rely on Vinyl's queue (`load`, `enqueue`, `next`), you do not need to do
206
+ anything — the player suppresses queue advancement during ads, plays the ad, and
207
+ resumes content automatically.
208
+
209
+ If your application drives its own logic off completion — advancing your own
210
+ queue, logging a play, updating UI — do **not** listen to the raw media `ended`
211
+ event. It fires for every ad as well as for content, and a track's content
212
+ `ended` fires _before_ its postroll plays, so even a content `ended` does not
213
+ mean the track is done. **Treating either as track completion is the classic
214
+ bug.**
215
+
216
+ Use the **`trackEnded`** event instead. It fires once, when the current track
217
+ has fully finished — after its postroll if any — and never for an ad or for
218
+ content ending ahead of a postroll:
219
+
220
+ ```typescript
221
+ player.on('trackEnded', () => {
222
+ // The track (including any postroll) finished. Safe to log a completed play
223
+ // or advance your own queue. Fires for every track as the queue advances;
224
+ // `queueEnded` additionally fires only after the final track.
225
+ })
226
+ ```
227
+
228
+ ## Manifest variable substitution
229
+
230
+ HLS ad manifests (e.g. AWS MediaTailor) frequently rely on `EXT-X-DEFINE`
231
+ variable substitution, including:
232
+
233
+ - `NAME` / `VALUE` — a literal definition.
234
+ - `IMPORT` — inherit a value defined in the parent multivariant playlist.
235
+ - `QUERYPARAM` — take a value from a named query parameter on the playlist's own
236
+ URL (common for session tokens on ad manifests).
237
+
238
+ Vinyl resolves all three when parsing, so `{$token}` references in ad segment
239
+ and rendition URIs are substituted before the ad track fetches them. No
240
+ application configuration is required.
241
+
242
+ ## Example
243
+
244
+ ```typescript
245
+ import { createVinylPlayer } from '@amazon/vinyl'
246
+
247
+ const player = createVinylPlayer({ media: videoElement })
248
+
249
+ // Reflect ad state in your UI.
250
+ player.on('adBreakEntered', ({ adBreak }) => {
251
+ showAdOverlay({ canSkip: !adBreak.restrict.skip })
252
+ })
253
+ player.on('adBreakCompleted', () => {
254
+ hideAdOverlay()
255
+ })
256
+
257
+ // Advance your own queue only on true track completion (handles ads + postroll).
258
+ player.on('trackEnded', () => {
259
+ playNextInMyQueue()
260
+ })
261
+
262
+ player.load({ type: 'hls', uri: 'https://example.com/episode.m3u8' })
263
+ await player.play()
264
+ ```
package/docs/USAGE.md CHANGED
@@ -198,7 +198,7 @@ To append tracks to the current queue without affecting playback, use `enqueue`.
198
198
  Usage example:
199
199
 
200
200
  ```typescript
201
- player.on('currentTrackChange', () => {
201
+ player.on('trackActivated', () => {
202
202
  if (player.queue.length < 2) {
203
203
  // Queue is nearing exhaustion, append more tracks
204
204
  player.enqueue(
@@ -221,22 +221,25 @@ player.on('currentTrackChange', () => {
221
221
 
222
222
  ### Track Events
223
223
 
224
- There are two events related to track queues.
225
-
226
224
  See `TrackControllerEventMap` in API Docs for full documentation.
227
225
 
228
- `queueEnded` - Emitted when the last track of the playback queue has ended.
229
-
230
- `currentTrackChange` - Emitted when the current track has changed.
226
+ - `trackActivated` - Emitted when a track becomes active (carries the track).
227
+ - `trackDeactivated` - Emitted when the active track is torn down, because it
228
+ was superseded by another track or unloaded.
229
+ - `trackEnded` - Emitted once a track has fully finished, _after_ its postroll
230
+ ad if any. Prefer this over `ended` to detect true track completion.
231
+ - `queueEnded` - Emitted when the last track of the playback queue has ended.
231
232
 
232
233
  When the last track in the queue has ended, it will not automatically be
233
234
  unloaded. To automatically unload when the queue ends, one could write:
234
235
 
235
236
  `player.on('queueEnded', () => player.unload())`
236
237
 
237
- When a track ends, an `ended` event is emitted. This event is emitted before the
238
- queue moves to the next track. If an `ended` handler changes the queue, the
239
- automatic track transition will be canceled.
238
+ When a track ends, a low-level `ended` event is emitted before the queue moves
239
+ to the next track; if an `ended` handler changes the queue, the automatic track
240
+ transition is canceled. Note that `ended` also fires for each ad (ads share the
241
+ media element) and, for a track with a postroll, fires _before_ the postroll
242
+ plays — so use `trackEnded` (above) to detect that a track is actually done.
240
243
 
241
244
  For example, to interrupt an automatic queue transition, one could write:
242
245
 
@@ -430,3 +433,133 @@ player.configure({ abr: { maxBandwidth: 0 } })
430
433
  // Remove the cap.
431
434
  player.configure({ abr: { maxBandwidth: null } })
432
435
  ```
436
+
437
+ ## Sidecar Text Tracks
438
+
439
+ Vinyl discovers WebVTT subtitle tracks delivered alongside HLS or DASH content
440
+ ("sidecar" subtitles) and exposes them through `VinylPlayer`.
441
+
442
+ ### Discovery
443
+
444
+ For HLS, the player reads `EXT-X-MEDIA:TYPE=SUBTITLES` renditions from the
445
+ multivariant playlist. The rendition's `URI` may point at a `.vtt` file directly
446
+ or at a media playlist (`.m3u8`) whose segments are individual `.vtt` files;
447
+ both forms are supported.
448
+
449
+ For DASH, the player reads `<AdaptationSet contentType="text">` (or any
450
+ `<AdaptationSet>` with a `text/*` `mimeType`). Each `<Representation>`'s
451
+ `BaseURL` chain is resolved against the manifest URL to produce the absolute
452
+ text track URL. Segmented text codecs (`stpp`, `wvtt`) are not surfaced in v1.
453
+
454
+ Discovery happens automatically when a track loads — applications need only
455
+ listen for the `textTracksChange` event or read `player.textTracks`.
456
+
457
+ ### Forced subtitles
458
+
459
+ A track flagged `forced` carries essential text (e.g. translations of
460
+ foreign-language dialogue) that is meant to display even when the user has not
461
+ enabled subtitles. A `forced` track shares its `language` with the full track,
462
+ so selection distinguishes them by the `forced` flag rather than language alone.
463
+ Media characteristics / accessibility roles are surfaced in `characteristics`
464
+ (HLS `CHARACTERISTICS`, DASH `Role`/`Accessibility`).
465
+
466
+ Until the application makes an explicit selection, the player auto-selects a
467
+ forced track when one is discovered (preferring the default track's language).
468
+ Any `setActiveTextTrack` call — including `setActiveTextTrack(null)` to turn
469
+ captions off — is treated as an explicit choice and disables the auto-select.
470
+
471
+ ### API
472
+
473
+ ```typescript
474
+ // Inspect available text tracks for the current media.
475
+ console.log(player.textTracks)
476
+ // → [{ id, kind: 'subtitles', language: 'en', label: 'English', default: true,
477
+ // forced: false, characteristics: [], uri: 'https://.../subs/en.vtt',
478
+ // mimeType: 'text/vtt' }, ...]
479
+
480
+ // Activate a track.
481
+ player.setActiveTextTrack(player.textTracks[0].id)
482
+
483
+ // Inspect or clear the active track.
484
+ console.log(player.activeTextTrack)
485
+ player.setActiveTextTrack(null)
486
+
487
+ // React to changes.
488
+ player.on('textTracksChange', (event) => {
489
+ console.log('Text tracks updated:', event.current)
490
+ })
491
+ player.on('activeTextTrackChange', (event) => {
492
+ console.log('Active text track:', event.current)
493
+ })
494
+ player.on('textTrackError', (event) => {
495
+ console.warn('Failed to load track', event.track.label, event.error)
496
+ })
497
+ ```
498
+
499
+ When a track is activated, Vinyl fetches the WebVTT, parses it, and adds the
500
+ resulting cues to a `TextTrack` on the underlying `<video>` / `<audio>` element
501
+ via `HTMLMediaElement.addTextTrack`. The browser handles cue rendering according
502
+ to the `default` controls or any custom UI you build on top of the DOM
503
+ `TextTrack` API.
504
+
505
+ ### Generating Test Content
506
+
507
+ `DMTestAssetBuilder` generates English / Spanish / Japanese sidecar VTT files
508
+ for every produced HLS and DASH asset. The text-track wiring lives in
509
+ `src/addTextTracks.ts`; running `npm run generate` produces VTT files in
510
+ `subs/<lang>.vtt` next to each manifest, with the manifest patched to reference
511
+ them.
512
+
513
+ ## Ad Breaks (Server-Guided Ad Insertion)
514
+
515
+ Vinyl surfaces server-guided ad breaks through a single, provider-agnostic API
516
+ on `VinylPlayer`. Today this is driven by HLS Interstitials (SGAI); the same API
517
+ is intended to also carry DASH SCTE-35 splices, so applications observe one
518
+ interface regardless of the streaming protocol.
519
+
520
+ ### Discovery
521
+
522
+ For HLS, the player reads `EXT-X-DATERANGE` tags with
523
+ `CLASS="com.apple.hls.interstitial"` from the media playlist. Each interstitial
524
+ is mapped to an abstract `AdBreakInfo`:
525
+
526
+ - Its wall-clock `START-DATE` is converted to a media-timeline start time by
527
+ correlating it with the playlist's `EXT-X-PROGRAM-DATE-TIME` anchor.
528
+ - Its duration is resolved from `DURATION`, else the `START-DATE`/`END-DATE`
529
+ span, else `PLANNED-DURATION`.
530
+ - An `X-ASSET-URI` yields a single resolved ad; an `X-ASSET-LIST` yields a break
531
+ whose assets are resolved asynchronously (empty `ads` up front).
532
+ - The break is classified as `preroll`, `midroll`, or `postroll`.
533
+
534
+ Discovery happens automatically when a track loads — applications need only
535
+ listen for the `currentTrackAdsChange` event or read `player.currentTrackAds`.
536
+
537
+ ### API
538
+
539
+ ```typescript
540
+ // Inspect the ad breaks known for the current media (ordered by start time).
541
+ console.log(player.currentTrackAds)
542
+ // → { trackUri, adBreaks: [{ id, startTime: 12, duration: 15,
543
+ // placement: 'midroll', restrict, once, resumeOffset,
544
+ // ads /* resolver → AdInfo[] */ }, ...] }
545
+
546
+ // Inspect the break currently containing the playhead, if any.
547
+ console.log(player.currentAdBreak)
548
+
549
+ // React to changes and boundary crossings.
550
+ player.on('currentTrackAdsChange', (event) => {
551
+ console.log('Ad breaks updated:', event.current)
552
+ })
553
+ player.on('adBreakEntered', ({ adBreak }) => {
554
+ console.log('Entered ad break', adBreak.id)
555
+ })
556
+ player.on('adBreakCompleted', ({ adBreak, resumePosition }) => {
557
+ console.log('Completed ad break', adBreak.id, '→ resume at', resumePosition)
558
+ })
559
+ ```
560
+
561
+ `adBreakEntered` fires when the playhead enters a break; `adBreakCompleted`
562
+ fires when it finishes (all ads played, were skipped, or it had none), carrying
563
+ the `resumePosition` at which content resumes. Breaks with an unknown duration
564
+ surface in `currentTrackAds` but never mark the playhead as inside a break until
565
+ their span resolves. See [ADS.md](./ADS.md) for the full ad event set.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amazon/vinyl",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "An HTML5 streaming media player",
5
5
  "repository": {
6
6
  "type": "git",
@@ -71,17 +71,15 @@
71
71
  "scripts": {
72
72
  "analyzeExports": "tsx buildSrc/analyzeExports.ts",
73
73
  "analyzeExports:write": "tsx buildSrc/analyzeExports.ts --write",
74
- "clean": "rimraf --glob dist .eslintcache \"**/*.tsbuildinfo\"",
74
+ "clean": "rimraf --glob dist \"**/*.tsbuildinfo\"",
75
75
  "indexFiles:check": "tsx buildSrc/writeIndexFiles.ts --check",
76
76
  "indexFiles:write": "tsx buildSrc/writeIndexFiles.ts",
77
77
  "build": "tsx buildSrc/build.ts",
78
78
  "build:release": "tsx buildSrc/build.ts --release",
79
79
  "prettier:check": "prettier . --ignore-path ../../.prettierignore --cache --check",
80
80
  "prettier:write": "prettier . --ignore-path ../../.prettierignore --cache --write",
81
- "eslint:check": "eslint . --cache --max-warnings=0",
82
- "eslint:write": "eslint . --cache --fix",
83
- "lint": "npm run indexFiles:check && npm run eslint:check && npm run prettier:check",
84
- "lint:write": "npm run indexFiles:write && npm run eslint:write && npm run prettier:write",
81
+ "lint": "npm run indexFiles:check && npm run oxlint:check && npm run prettier:check",
82
+ "lint:write": "npm run indexFiles:write && npm run oxlint:write && npm run prettier:write",
85
83
  "test": "tsx ../../node_modules/jasmine/bin/jasmine --config=test/unit/jasmine.config.json",
86
84
  "test:coverage": "c8 npm run test",
87
85
  "test:browserstack": "npm run build:release && tsx buildSrc/runBrowserStack.ts",
@@ -89,20 +87,22 @@
89
87
  "start": "tsx buildSrc/build.ts --serve",
90
88
  "start:release": "tsx buildSrc/build.ts --serve --release",
91
89
  "watch": "tsx buildSrc/build.ts --watch",
92
- "watch:release": "tsx buildSrc/build.ts --watch --release"
90
+ "watch:release": "tsx buildSrc/build.ts --watch --release",
91
+ "oxlint:check": "oxlint --type-aware --deny-warnings",
92
+ "oxlint:write": "oxlint --type-aware --fix"
93
93
  },
94
94
  "devDependencies": {
95
- "@amazon/vinyl-build-utils": "^1.2.0",
95
+ "@amazon/vinyl-build-utils": "^2.0.0",
96
96
  "commander": "^9.5.0"
97
97
  },
98
98
  "dependencies": {
99
- "@amazon/vinyl-di": "^1.2.0",
100
- "@amazon/vinyl-hls-parser": "^1.2.0",
101
- "@amazon/vinyl-mpd-parser": "^1.2.0",
102
- "@amazon/vinyl-observable": "^1.2.0",
103
- "@amazon/vinyl-transmux": "^1.2.0",
104
- "@amazon/vinyl-util": "^1.2.0",
105
- "@amazon/vinyl-validation": "^1.2.0"
99
+ "@amazon/vinyl-di": "^2.0.0",
100
+ "@amazon/vinyl-hls-parser": "^2.0.0",
101
+ "@amazon/vinyl-mpd-parser": "^2.0.0",
102
+ "@amazon/vinyl-observable": "^2.0.0",
103
+ "@amazon/vinyl-transmux": "^2.0.0",
104
+ "@amazon/vinyl-util": "^2.0.0",
105
+ "@amazon/vinyl-validation": "^2.0.0"
106
106
  },
107
- "gitHead": "fbb8f1c60c5ada4a11f13954bb6bcb52f3cb0c5a"
107
+ "gitHead": "88ece0504b080347bbea6f240cf587ee863b7ff3"
108
108
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"HlsManifestProvider.d.ts","sourceRoot":"","sources":["../../../../../src/track/hls/HlsManifestProvider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE3E,MAAM,MAAM,mBAAmB,GAAG,CAC9B,KAAK,CAAC,EAAE,aAAa,KACpB,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7B,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CACrE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=DashManifestController.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashManifestController.test.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/track/dash/DashManifestController.test.ts"],"names":[],"mappings":""}