@amazon/vinyl 1.1.1 → 1.2.1

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 (714) hide show
  1. package/dist/index.cjs +286 -201
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +294 -206
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.es5.js +169 -232
  6. package/dist/test/benchmark.js +1475 -1933
  7. package/dist/test/benchmark.js.map +4 -4
  8. package/dist/test/integ.es5.js +771 -394
  9. package/dist/test/integ.js +5996 -5138
  10. package/dist/test/integ.js.map +4 -4
  11. package/dist/test/jasmineHtml.es5.js +8 -8
  12. package/dist/test/jasmineHtml.js +8 -4
  13. package/dist/test/jasmineHtml.js.map +3 -3
  14. package/dist/types/current/ad/AdBreakInfo.d.ts +160 -0
  15. package/dist/types/current/ad/AdBreakInfo.d.ts.map +1 -0
  16. package/dist/types/current/ad/AdBreakInfo.js +5 -0
  17. package/dist/types/current/ad/AdController.d.ts +229 -0
  18. package/dist/types/current/ad/AdController.d.ts.map +1 -0
  19. package/dist/types/current/ad/AdController.js +19 -0
  20. package/dist/types/current/ad/AdControllerImpl.d.ts +146 -0
  21. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -0
  22. package/dist/types/current/ad/AdControllerImpl.js +705 -0
  23. package/dist/types/current/ad/AdError.d.ts +6 -0
  24. package/dist/types/current/ad/AdError.d.ts.map +1 -0
  25. package/dist/types/current/ad/AdError.js +14 -0
  26. package/dist/types/current/ad/AdsProvider.d.ts +28 -0
  27. package/dist/types/current/ad/AdsProvider.d.ts.map +1 -0
  28. package/dist/types/current/ad/AdsProvider.js +5 -0
  29. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  30. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts.map +1 -0
  31. package/dist/types/current/ad/defaultAdLoadOptionsResolver.js +26 -0
  32. package/dist/types/current/ad/discoverHlsInterstitials.d.ts +22 -0
  33. package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -0
  34. package/dist/types/current/ad/discoverHlsInterstitials.js +246 -0
  35. package/dist/types/current/client/Capabilities.d.ts.map +1 -1
  36. package/dist/types/current/client/CapabilitiesImpl.d.ts.map +1 -1
  37. package/dist/types/current/drm/DrmController.d.ts +2 -2
  38. package/dist/types/current/drm/DrmController.d.ts.map +1 -1
  39. package/dist/types/current/drm/DrmControllerImpl.d.ts +3 -3
  40. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  41. package/dist/types/current/drm/DrmControllerImpl.js +18 -8
  42. package/dist/types/current/drm/DrmKeySystemResolver.d.ts +1 -1
  43. package/dist/types/current/drm/DrmKeySystemResolver.d.ts.map +1 -1
  44. package/dist/types/current/drm/DrmKeySystemResolver.js +1 -1
  45. package/dist/types/current/drm/DrmOptions.d.ts +1 -1
  46. package/dist/types/current/drm/DrmOptions.d.ts.map +1 -1
  47. package/dist/types/current/drm/DrmOptions.js +1 -1
  48. package/dist/types/current/drm/commonEme/CommonEme.d.ts +2 -2
  49. package/dist/types/current/drm/commonEme/CommonEme.d.ts.map +1 -1
  50. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  51. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts.map +1 -1
  52. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts +1 -1
  53. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts.map +1 -1
  54. package/dist/types/current/drm/commonEme/MsCommonEme.js +1 -1
  55. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts +1 -1
  56. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts.map +1 -1
  57. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  58. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts.map +1 -1
  59. package/dist/types/current/drm/commonEme/WebKitCommonEme.js +1 -1
  60. package/dist/types/current/drm/commonEme/createDrmErrorHandler.js +1 -1
  61. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  62. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts.map +1 -1
  63. package/dist/types/current/global/environment.d.ts +6 -2
  64. package/dist/types/current/global/environment.d.ts.map +1 -1
  65. package/dist/types/current/global/environment.js +4 -3
  66. package/dist/types/current/global/initializeVinylGlobal.js +1 -1
  67. package/dist/types/current/patch/media/MediaElementPatchOptions.js +1 -1
  68. package/dist/types/current/patch/media/patchMediaElement.js +1 -1
  69. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  70. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts.map +1 -1
  71. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  72. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts.map +1 -1
  73. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +2 -2
  74. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  75. package/dist/types/current/playback/PlaybackControllerImpl.js +4 -4
  76. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  77. package/dist/types/current/playback/error/ReportableMediaError.js +1 -1
  78. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  79. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts.map +1 -1
  80. package/dist/types/current/playback/logging/playbackStateLoggingHandler.js +1 -1
  81. package/dist/types/current/playback/nextHasMetadata.d.ts +1 -1
  82. package/dist/types/current/playback/nextHasMetadata.d.ts.map +1 -1
  83. package/dist/types/current/streaming/AudioOptions.d.ts +39 -0
  84. package/dist/types/current/streaming/AudioOptions.d.ts.map +1 -0
  85. package/dist/types/current/streaming/AudioOptions.js +15 -0
  86. package/dist/types/current/streaming/ContentStream.d.ts +4 -4
  87. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  88. package/dist/types/current/streaming/ContentStreamingOptions.d.ts +2 -2
  89. package/dist/types/current/streaming/ContentStreamingOptions.d.ts.map +1 -1
  90. package/dist/types/current/streaming/LoadMetric.d.ts +58 -0
  91. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -0
  92. package/dist/types/current/streaming/LoadMetric.js +5 -0
  93. package/dist/types/current/streaming/ManifestControllerImpl.d.ts +43 -0
  94. package/dist/types/current/streaming/ManifestControllerImpl.d.ts.map +1 -0
  95. package/dist/types/current/streaming/ManifestControllerImpl.js +104 -0
  96. package/dist/types/current/streaming/MediaQualityMetadata.d.ts +2 -2
  97. package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
  98. package/dist/types/current/streaming/MediaQualityMetadata.js +1 -1
  99. package/dist/types/current/streaming/MediaTimeline.d.ts +6 -5
  100. package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
  101. package/dist/types/current/streaming/SegmentController.d.ts +2 -7
  102. package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
  103. package/dist/types/current/streaming/SegmentControllerImpl.d.ts +5 -6
  104. package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
  105. package/dist/types/current/streaming/SegmentControllerImpl.js +5 -15
  106. package/dist/types/current/streaming/SegmentReference.d.ts +1 -1
  107. package/dist/types/current/streaming/SegmentReference.d.ts.map +1 -1
  108. package/dist/types/current/streaming/StreamingEventMap.d.ts +1 -1
  109. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  110. package/dist/types/current/streaming/abr/QualitySelector.d.ts +1 -1
  111. package/dist/types/current/streaming/abr/QualitySelector.d.ts.map +1 -1
  112. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  113. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
  114. package/dist/types/current/streaming/abr/QualitySelectorImpl.js +8 -2
  115. package/dist/types/current/streaming/buffering/BufferingController.d.ts +3 -13
  116. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  117. package/dist/types/current/streaming/buffering/BufferingController.js +1 -24
  118. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +41 -15
  119. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
  120. package/dist/types/current/streaming/buffering/MediaSourceController.js +74 -17
  121. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts +1 -1
  122. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
  123. package/dist/types/current/streaming/buffering/codecDenylist.d.ts +23 -0
  124. package/dist/types/current/streaming/buffering/codecDenylist.d.ts.map +1 -0
  125. package/dist/types/current/streaming/buffering/codecDenylist.js +62 -0
  126. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts +30 -0
  127. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts.map +1 -0
  128. package/dist/types/current/streaming/createAllowedContentTypesValue.js +43 -0
  129. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  130. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  131. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +2 -2
  132. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  133. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts.map +1 -0
  134. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.js +75 -0
  135. package/dist/types/current/streaming/mediaTimelineFilter.d.ts +3 -3
  136. package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
  137. package/dist/types/current/streaming/mediaTimelineFilter.js +1 -1
  138. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  139. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
  140. package/dist/types/current/streaming/util/segment.d.ts +1 -1
  141. package/dist/types/current/streaming/util/segment.d.ts.map +1 -1
  142. package/dist/types/current/text/HtmlTextTrackRenderer.d.ts +60 -0
  143. package/dist/types/current/text/HtmlTextTrackRenderer.d.ts.map +1 -0
  144. package/dist/types/current/text/HtmlTextTrackRenderer.js +231 -0
  145. package/dist/types/current/text/SidecarTextTrackController.d.ts +103 -0
  146. package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
  147. package/dist/types/current/text/SidecarTextTrackController.js +250 -0
  148. package/dist/types/current/text/SidecarTextTrackLoader.d.ts +65 -0
  149. package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
  150. package/dist/types/current/text/SidecarTextTrackLoader.js +150 -0
  151. package/dist/types/current/text/TextTrack.d.ts +179 -0
  152. package/dist/types/current/text/TextTrack.d.ts.map +1 -0
  153. package/dist/types/current/text/TextTrack.js +29 -0
  154. package/dist/types/current/text/TextTrackRenderer.d.ts +24 -0
  155. package/dist/types/current/text/TextTrackRenderer.d.ts.map +1 -0
  156. package/dist/types/current/text/TextTrackRenderer.js +5 -0
  157. package/dist/types/current/text/VttCueStyle.d.ts +41 -0
  158. package/dist/types/current/text/VttCueStyle.d.ts.map +1 -0
  159. package/dist/types/current/text/VttCueStyle.js +45 -0
  160. package/dist/types/current/text/discoverDashTextTracks.d.ts +24 -0
  161. package/dist/types/current/text/discoverDashTextTracks.d.ts.map +1 -0
  162. package/dist/types/current/text/discoverDashTextTracks.js +109 -0
  163. package/dist/types/current/text/discoverHlsTextTracks.d.ts +19 -0
  164. package/dist/types/current/text/discoverHlsTextTracks.d.ts.map +1 -0
  165. package/dist/types/current/text/discoverHlsTextTracks.js +49 -0
  166. package/dist/types/current/text/mediaTextTrackProvider.d.ts +34 -0
  167. package/dist/types/current/text/mediaTextTrackProvider.d.ts.map +1 -0
  168. package/dist/types/current/text/mediaTextTrackProvider.js +42 -0
  169. package/dist/types/current/text/parseWebVtt.d.ts +60 -0
  170. package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
  171. package/dist/types/current/text/parseWebVtt.js +248 -0
  172. package/dist/types/current/text/pickPreferredTextTrack.d.ts +15 -0
  173. package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
  174. package/dist/types/current/text/pickPreferredTextTrack.js +71 -0
  175. package/dist/types/current/track/AutoResetController.d.ts +37 -12
  176. package/dist/types/current/track/AutoResetController.d.ts.map +1 -1
  177. package/dist/types/current/track/AutoResetController.js +38 -28
  178. package/dist/types/current/track/SeekRange.d.ts +9 -0
  179. package/dist/types/current/track/SeekRange.d.ts.map +1 -0
  180. package/dist/types/current/track/SeekRange.js +5 -0
  181. package/dist/types/current/track/Track.d.ts.map +1 -1
  182. package/dist/types/current/track/TrackBase.d.ts.map +1 -1
  183. package/dist/types/current/track/TrackController.d.ts +2 -2
  184. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  185. package/dist/types/current/track/TrackFactory.d.ts +1 -1
  186. package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
  187. package/dist/types/current/track/createSegmentDataProvider.d.ts.map +1 -1
  188. package/dist/types/current/track/createVinylTrackFactories.d.ts +5 -5
  189. package/dist/types/current/track/createVinylTrackFactories.d.ts.map +1 -1
  190. package/dist/types/current/track/createVinylTrackFactories.js +4 -4
  191. package/dist/types/current/track/dash/DashManifestController.d.ts +1 -1
  192. package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
  193. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  194. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +1 -1
  195. package/dist/types/current/track/dash/DashTrack.d.ts +4 -4
  196. package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
  197. package/dist/types/current/track/dash/DashTrack.js +2 -2
  198. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts +2 -2
  199. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
  200. package/dist/types/current/track/dash/buildDashMediaTimeline.js +2 -2
  201. package/dist/types/current/track/dash/createDashContentStreamFactories.d.ts.map +1 -1
  202. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts +2 -2
  203. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts.map +1 -1
  204. package/dist/types/current/track/dash/createDashContentTypesValue.js +1 -1
  205. package/dist/types/current/track/dash/createDashFactories.d.ts +12 -12
  206. package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
  207. package/dist/types/current/track/dash/createDashFactories.js +8 -8
  208. package/dist/types/current/track/dash/createDashManifestProvider.d.ts +1 -1
  209. package/dist/types/current/track/dash/createDashManifestProvider.d.ts.map +1 -1
  210. package/dist/types/current/track/dash/createDashManifestProvider.js +1 -1
  211. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  212. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts.map +1 -1
  213. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.js +1 -1
  214. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
  215. package/dist/types/current/track/dash/manifestTransformUtils.d.ts +1 -1
  216. package/dist/types/current/track/dash/manifestTransformUtils.d.ts.map +1 -1
  217. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  218. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  219. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +3 -3
  220. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts +1 -1
  221. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts.map +1 -1
  222. package/dist/types/current/track/dash/util/mimeType.d.ts.map +1 -1
  223. package/dist/types/current/track/dash/util/mimeType.js +1 -1
  224. package/dist/types/current/track/dash/util/mpd.d.ts +3 -2
  225. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  226. package/dist/types/current/track/dash/util/mpd.js +13 -3
  227. package/dist/types/current/track/dash/util/uriResolution.js +1 -1
  228. package/dist/types/current/track/filters/keySystemFilter.d.ts.map +1 -1
  229. package/dist/types/current/track/filters/resourceTypeFilter.d.ts.map +1 -1
  230. package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
  231. package/dist/types/current/track/hls/HlsManifestData.d.ts +19 -0
  232. package/dist/types/current/track/hls/HlsManifestData.d.ts.map +1 -0
  233. package/dist/types/current/track/hls/HlsManifestData.js +5 -0
  234. package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
  235. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  236. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
  237. package/dist/types/current/track/hls/buildHlsMediaTimeline.js +16 -14
  238. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  239. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
  240. package/dist/types/current/track/hls/createHlsContentStreamFactories.d.ts.map +1 -1
  241. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts +6 -0
  242. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts.map +1 -0
  243. package/dist/types/current/track/hls/createHlsManifestProvider.js +9 -0
  244. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts +1 -1
  245. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts.map +1 -1
  246. package/dist/types/current/track/hls/util/hlsSegmentTime.js +1 -1
  247. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts +15 -0
  248. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts.map +1 -0
  249. package/dist/types/current/track/inferLoadOptionsFromUri.js +55 -0
  250. package/dist/types/current/track/mse/MseTrack.d.ts +2 -2
  251. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  252. package/dist/types/current/track/mse/MseTrack.js +2 -1
  253. package/dist/types/current/track/mse/codec.d.ts.map +1 -1
  254. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts +1 -1
  255. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts.map +1 -1
  256. package/dist/types/current/track/source/SourceObjectTrack.d.ts +4 -4
  257. package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
  258. package/dist/types/current/track/source/SourceObjectTrack.js +2 -2
  259. package/dist/types/current/track/source/SourceTrack.d.ts +4 -4
  260. package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
  261. package/dist/types/current/track/source/SourceTrack.js +2 -2
  262. package/dist/types/current/track/source/SourceTrackBase.d.ts +2 -2
  263. package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
  264. package/dist/types/current/track/source/SourceTrackBase.js +2 -2
  265. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  266. package/dist/types/current/util/media/codecOverrides.d.ts +33 -0
  267. package/dist/types/current/util/media/codecOverrides.d.ts.map +1 -0
  268. package/dist/types/current/util/media/codecOverrides.js +37 -0
  269. package/dist/types/current/util/media/codecSupport.d.ts +6 -0
  270. package/dist/types/current/util/media/codecSupport.d.ts.map +1 -0
  271. package/dist/types/current/util/media/codecSupport.js +17 -0
  272. package/dist/types/current/util/media/mimeType.d.ts +8 -0
  273. package/dist/types/current/util/media/mimeType.d.ts.map +1 -0
  274. package/dist/types/current/util/media/mimeType.js +13 -0
  275. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
  276. package/dist/types/current/vinyl/VinylDeps.d.ts +1 -1
  277. package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
  278. package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
  279. package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +1 -1
  280. package/dist/types/current/vinyl/VinylPlayer.d.ts +26 -2
  281. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  282. package/dist/types/current/vinyl/VinylPlayer.js +18 -3
  283. package/dist/types/current/vinyl/createVinylFactories.d.ts +9 -11
  284. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  285. package/dist/types/current/vinyl/createVinylFactories.js +2 -2
  286. package/dist/types/ts3.7/ad/AdBreakInfo.d.ts +160 -0
  287. package/dist/types/ts3.7/ad/AdController.d.ts +243 -0
  288. package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +146 -0
  289. package/dist/types/ts3.7/ad/AdError.d.ts +6 -0
  290. package/dist/types/ts3.7/ad/AdsProvider.d.ts +28 -0
  291. package/dist/types/ts3.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  292. package/dist/types/ts3.7/ad/discoverHlsInterstitials.d.ts +22 -0
  293. package/dist/types/ts3.7/drm/DrmController.d.ts +2 -2
  294. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +3 -3
  295. package/dist/types/ts3.7/drm/DrmKeySystemResolver.d.ts +1 -1
  296. package/dist/types/ts3.7/drm/DrmOptions.d.ts +1 -1
  297. package/dist/types/ts3.7/drm/commonEme/CommonEme.d.ts +2 -2
  298. package/dist/types/ts3.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  299. package/dist/types/ts3.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  300. package/dist/types/ts3.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  301. package/dist/types/ts3.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  302. package/dist/types/ts3.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  303. package/dist/types/ts3.7/global/environment.d.ts +6 -2
  304. package/dist/types/ts3.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  305. package/dist/types/ts3.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  306. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +2 -2
  307. package/dist/types/ts3.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  308. package/dist/types/ts3.7/playback/nextHasMetadata.d.ts +1 -1
  309. package/dist/types/ts3.7/streaming/AudioOptions.d.ts +39 -0
  310. package/dist/types/ts3.7/streaming/ContentStream.d.ts +4 -4
  311. package/dist/types/ts3.7/streaming/ContentStreamingOptions.d.ts +2 -2
  312. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
  313. package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
  314. package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +2 -2
  315. package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +6 -5
  316. package/dist/types/ts3.7/streaming/SegmentController.d.ts +2 -7
  317. package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +5 -6
  318. package/dist/types/ts3.7/streaming/SegmentReference.d.ts +1 -1
  319. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +1 -1
  320. package/dist/types/ts3.7/streaming/abr/QualitySelector.d.ts +1 -1
  321. package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  322. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +3 -13
  323. package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +41 -15
  324. package/dist/types/ts3.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  325. package/dist/types/ts3.7/streaming/buffering/codecDenylist.d.ts +23 -0
  326. package/dist/types/ts3.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  327. package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  328. package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  329. package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +3 -3
  330. package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  331. package/dist/types/ts3.7/streaming/util/segment.d.ts +1 -1
  332. package/dist/types/ts3.7/text/HtmlTextTrackRenderer.d.ts +60 -0
  333. package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +103 -0
  334. package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +65 -0
  335. package/dist/types/ts3.7/text/TextTrack.d.ts +183 -0
  336. package/dist/types/ts3.7/text/TextTrackRenderer.d.ts +24 -0
  337. package/dist/types/ts3.7/text/VttCueStyle.d.ts +41 -0
  338. package/dist/types/ts3.7/text/discoverDashTextTracks.d.ts +24 -0
  339. package/dist/types/ts3.7/text/discoverHlsTextTracks.d.ts +19 -0
  340. package/dist/types/ts3.7/text/mediaTextTrackProvider.d.ts +34 -0
  341. package/dist/types/ts3.7/text/parseWebVtt.d.ts +60 -0
  342. package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +15 -0
  343. package/dist/types/ts3.7/track/AutoResetController.d.ts +37 -12
  344. package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
  345. package/dist/types/ts3.7/track/TrackController.d.ts +2 -2
  346. package/dist/types/ts3.7/track/TrackFactory.d.ts +1 -1
  347. package/dist/types/ts3.7/track/createVinylTrackFactories.d.ts +5 -5
  348. package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -1
  349. package/dist/types/ts3.7/track/dash/DashTrack.d.ts +4 -4
  350. package/dist/types/ts3.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  351. package/dist/types/ts3.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  352. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +12 -12
  353. package/dist/types/ts3.7/track/dash/createDashManifestProvider.d.ts +1 -1
  354. package/dist/types/ts3.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  355. package/dist/types/ts3.7/track/dash/manifestTransformUtils.d.ts +1 -1
  356. package/dist/types/ts3.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  357. package/dist/types/ts3.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  358. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +3 -2
  359. package/dist/types/ts3.7/track/hls/HlsManifestData.d.ts +19 -0
  360. package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  361. package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  362. package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  363. package/dist/types/ts3.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  364. package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  365. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +2 -2
  366. package/dist/types/ts3.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  367. package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +4 -4
  368. package/dist/types/ts3.7/track/source/SourceTrack.d.ts +4 -4
  369. package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +2 -2
  370. package/dist/types/ts3.7/util/media/codecOverrides.d.ts +33 -0
  371. package/dist/types/ts3.7/util/media/codecSupport.d.ts +6 -0
  372. package/dist/types/ts3.7/util/media/mimeType.d.ts +8 -0
  373. package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +1 -1
  374. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +18 -2
  375. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +9 -11
  376. package/dist/types/ts4.1/ad/AdBreakInfo.d.ts +160 -0
  377. package/dist/types/ts4.1/ad/AdController.d.ts +243 -0
  378. package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +146 -0
  379. package/dist/types/ts4.1/ad/AdError.d.ts +6 -0
  380. package/dist/types/ts4.1/ad/AdsProvider.d.ts +28 -0
  381. package/dist/types/ts4.1/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  382. package/dist/types/ts4.1/ad/discoverHlsInterstitials.d.ts +22 -0
  383. package/dist/types/ts4.1/drm/DrmController.d.ts +2 -2
  384. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +3 -3
  385. package/dist/types/ts4.1/drm/DrmKeySystemResolver.d.ts +1 -1
  386. package/dist/types/ts4.1/drm/DrmOptions.d.ts +1 -1
  387. package/dist/types/ts4.1/drm/commonEme/CommonEme.d.ts +2 -2
  388. package/dist/types/ts4.1/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  389. package/dist/types/ts4.1/drm/commonEme/MsCommonEme.d.ts +1 -1
  390. package/dist/types/ts4.1/drm/commonEme/StandardCommonEme.d.ts +1 -1
  391. package/dist/types/ts4.1/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  392. package/dist/types/ts4.1/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  393. package/dist/types/ts4.1/global/environment.d.ts +6 -2
  394. package/dist/types/ts4.1/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  395. package/dist/types/ts4.1/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  396. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +2 -2
  397. package/dist/types/ts4.1/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  398. package/dist/types/ts4.1/playback/nextHasMetadata.d.ts +1 -1
  399. package/dist/types/ts4.1/streaming/AudioOptions.d.ts +39 -0
  400. package/dist/types/ts4.1/streaming/ContentStream.d.ts +4 -4
  401. package/dist/types/ts4.1/streaming/ContentStreamingOptions.d.ts +2 -2
  402. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
  403. package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
  404. package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +2 -2
  405. package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +6 -5
  406. package/dist/types/ts4.1/streaming/SegmentController.d.ts +2 -7
  407. package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +5 -6
  408. package/dist/types/ts4.1/streaming/SegmentReference.d.ts +1 -1
  409. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +1 -1
  410. package/dist/types/ts4.1/streaming/abr/QualitySelector.d.ts +1 -1
  411. package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  412. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +3 -13
  413. package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +41 -15
  414. package/dist/types/ts4.1/streaming/buffering/SourceBufferController.d.ts +1 -1
  415. package/dist/types/ts4.1/streaming/buffering/codecDenylist.d.ts +23 -0
  416. package/dist/types/ts4.1/streaming/createAllowedContentTypesValue.d.ts +30 -0
  417. package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  418. package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  419. package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +3 -3
  420. package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  421. package/dist/types/ts4.1/streaming/util/segment.d.ts +1 -1
  422. package/dist/types/ts4.1/text/HtmlTextTrackRenderer.d.ts +60 -0
  423. package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +104 -0
  424. package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +65 -0
  425. package/dist/types/ts4.1/text/TextTrack.d.ts +183 -0
  426. package/dist/types/ts4.1/text/TextTrackRenderer.d.ts +24 -0
  427. package/dist/types/ts4.1/text/VttCueStyle.d.ts +41 -0
  428. package/dist/types/ts4.1/text/discoverDashTextTracks.d.ts +24 -0
  429. package/dist/types/ts4.1/text/discoverHlsTextTracks.d.ts +19 -0
  430. package/dist/types/ts4.1/text/mediaTextTrackProvider.d.ts +34 -0
  431. package/dist/types/ts4.1/text/parseWebVtt.d.ts +60 -0
  432. package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +15 -0
  433. package/dist/types/ts4.1/track/AutoResetController.d.ts +37 -12
  434. package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
  435. package/dist/types/ts4.1/track/TrackController.d.ts +2 -2
  436. package/dist/types/ts4.1/track/TrackFactory.d.ts +1 -1
  437. package/dist/types/ts4.1/track/createVinylTrackFactories.d.ts +5 -5
  438. package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -1
  439. package/dist/types/ts4.1/track/dash/DashTrack.d.ts +4 -4
  440. package/dist/types/ts4.1/track/dash/buildDashMediaTimeline.d.ts +2 -2
  441. package/dist/types/ts4.1/track/dash/createDashContentTypesValue.d.ts +2 -2
  442. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +12 -12
  443. package/dist/types/ts4.1/track/dash/createDashManifestProvider.d.ts +1 -1
  444. package/dist/types/ts4.1/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  445. package/dist/types/ts4.1/track/dash/manifestTransformUtils.d.ts +1 -1
  446. package/dist/types/ts4.1/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  447. package/dist/types/ts4.1/track/dash/urlDashManifestProvider.d.ts +1 -1
  448. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +3 -2
  449. package/dist/types/ts4.1/track/hls/HlsManifestData.d.ts +19 -0
  450. package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  451. package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  452. package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
  453. package/dist/types/ts4.1/track/hls/util/hlsSegmentTime.d.ts +1 -1
  454. package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
  455. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +3 -3
  456. package/dist/types/ts4.1/track/source/FixedPlaybackQuality.d.ts +1 -1
  457. package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +5 -5
  458. package/dist/types/ts4.1/track/source/SourceTrack.d.ts +5 -5
  459. package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +3 -3
  460. package/dist/types/ts4.1/util/media/codecOverrides.d.ts +33 -0
  461. package/dist/types/ts4.1/util/media/codecSupport.d.ts +6 -0
  462. package/dist/types/ts4.1/util/media/mimeType.d.ts +8 -0
  463. package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +1 -1
  464. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +18 -2
  465. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +9 -11
  466. package/dist/types/ts4.7/ad/AdBreakInfo.d.ts +160 -0
  467. package/dist/types/ts4.7/ad/AdController.d.ts +243 -0
  468. package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +146 -0
  469. package/dist/types/ts4.7/ad/AdError.d.ts +6 -0
  470. package/dist/types/ts4.7/ad/AdsProvider.d.ts +28 -0
  471. package/dist/types/ts4.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  472. package/dist/types/ts4.7/ad/discoverHlsInterstitials.d.ts +22 -0
  473. package/dist/types/ts4.7/drm/DrmController.d.ts +2 -2
  474. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +3 -3
  475. package/dist/types/ts4.7/drm/DrmKeySystemResolver.d.ts +1 -1
  476. package/dist/types/ts4.7/drm/DrmOptions.d.ts +1 -1
  477. package/dist/types/ts4.7/drm/commonEme/CommonEme.d.ts +2 -2
  478. package/dist/types/ts4.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  479. package/dist/types/ts4.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  480. package/dist/types/ts4.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  481. package/dist/types/ts4.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  482. package/dist/types/ts4.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  483. package/dist/types/ts4.7/global/environment.d.ts +6 -2
  484. package/dist/types/ts4.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  485. package/dist/types/ts4.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  486. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +2 -2
  487. package/dist/types/ts4.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  488. package/dist/types/ts4.7/playback/nextHasMetadata.d.ts +1 -1
  489. package/dist/types/ts4.7/streaming/AudioOptions.d.ts +39 -0
  490. package/dist/types/ts4.7/streaming/ContentStream.d.ts +4 -4
  491. package/dist/types/ts4.7/streaming/ContentStreamingOptions.d.ts +2 -2
  492. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
  493. package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
  494. package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +2 -2
  495. package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +6 -5
  496. package/dist/types/ts4.7/streaming/SegmentController.d.ts +2 -7
  497. package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +5 -6
  498. package/dist/types/ts4.7/streaming/SegmentReference.d.ts +1 -1
  499. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +1 -1
  500. package/dist/types/ts4.7/streaming/abr/QualitySelector.d.ts +1 -1
  501. package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  502. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +3 -13
  503. package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +41 -15
  504. package/dist/types/ts4.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  505. package/dist/types/ts4.7/streaming/buffering/codecDenylist.d.ts +23 -0
  506. package/dist/types/ts4.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  507. package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  508. package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  509. package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +3 -3
  510. package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  511. package/dist/types/ts4.7/streaming/util/segment.d.ts +1 -1
  512. package/dist/types/ts4.7/text/HtmlTextTrackRenderer.d.ts +60 -0
  513. package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +103 -0
  514. package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +65 -0
  515. package/dist/types/ts4.7/text/TextTrack.d.ts +183 -0
  516. package/dist/types/ts4.7/text/TextTrackRenderer.d.ts +24 -0
  517. package/dist/types/ts4.7/text/VttCueStyle.d.ts +41 -0
  518. package/dist/types/ts4.7/text/discoverDashTextTracks.d.ts +24 -0
  519. package/dist/types/ts4.7/text/discoverHlsTextTracks.d.ts +19 -0
  520. package/dist/types/ts4.7/text/mediaTextTrackProvider.d.ts +34 -0
  521. package/dist/types/ts4.7/text/parseWebVtt.d.ts +60 -0
  522. package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +15 -0
  523. package/dist/types/ts4.7/track/AutoResetController.d.ts +37 -12
  524. package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
  525. package/dist/types/ts4.7/track/TrackController.d.ts +2 -2
  526. package/dist/types/ts4.7/track/TrackFactory.d.ts +1 -1
  527. package/dist/types/ts4.7/track/createVinylTrackFactories.d.ts +5 -5
  528. package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -1
  529. package/dist/types/ts4.7/track/dash/DashTrack.d.ts +4 -4
  530. package/dist/types/ts4.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  531. package/dist/types/ts4.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  532. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +12 -12
  533. package/dist/types/ts4.7/track/dash/createDashManifestProvider.d.ts +1 -1
  534. package/dist/types/ts4.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  535. package/dist/types/ts4.7/track/dash/manifestTransformUtils.d.ts +1 -1
  536. package/dist/types/ts4.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  537. package/dist/types/ts4.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  538. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +3 -2
  539. package/dist/types/ts4.7/track/hls/HlsManifestData.d.ts +19 -0
  540. package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  541. package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  542. package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  543. package/dist/types/ts4.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  544. package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  545. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +2 -2
  546. package/dist/types/ts4.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  547. package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +4 -4
  548. package/dist/types/ts4.7/track/source/SourceTrack.d.ts +4 -4
  549. package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +2 -2
  550. package/dist/types/ts4.7/util/media/codecOverrides.d.ts +33 -0
  551. package/dist/types/ts4.7/util/media/codecSupport.d.ts +6 -0
  552. package/dist/types/ts4.7/util/media/mimeType.d.ts +8 -0
  553. package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +1 -1
  554. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +26 -2
  555. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +9 -11
  556. package/dist/unit/types/current/ad/AdController.test.d.ts +2 -0
  557. package/dist/unit/types/current/ad/AdController.test.d.ts.map +1 -0
  558. package/dist/unit/types/current/ad/AdController.test.js +10 -0
  559. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts +2 -0
  560. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts.map +1 -0
  561. package/dist/unit/types/current/ad/AdControllerImpl.test.js +1456 -0
  562. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts +2 -0
  563. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts.map +1 -0
  564. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.js +56 -0
  565. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts +2 -0
  566. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts.map +1 -0
  567. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.js +756 -0
  568. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +66 -1
  569. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts +2 -0
  570. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts.map +1 -0
  571. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.js +197 -0
  572. package/dist/unit/types/current/streaming/MediaTimeline.test.js +6 -1
  573. package/dist/unit/types/current/streaming/MseTrack.test.js +4 -0
  574. package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +3 -33
  575. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +73 -0
  576. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +1 -41
  577. package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +97 -17
  578. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts +2 -0
  579. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts.map +1 -0
  580. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.js +56 -0
  581. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts +2 -0
  582. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts.map +1 -0
  583. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.js +77 -0
  584. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +6 -0
  585. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts +2 -0
  586. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts.map +1 -0
  587. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.js +99 -0
  588. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +2 -0
  589. package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +7 -0
  590. package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts +2 -0
  591. package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.d.ts.map +1 -0
  592. package/dist/unit/types/current/text/HtmlTextTrackRenderer.test.js +231 -0
  593. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts +2 -0
  594. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts.map +1 -0
  595. package/dist/unit/types/current/text/SidecarTextTrackController.test.js +686 -0
  596. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts +2 -0
  597. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts.map +1 -0
  598. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +365 -0
  599. package/dist/unit/types/current/text/VttCueStyle.test.d.ts +2 -0
  600. package/dist/unit/types/current/text/VttCueStyle.test.d.ts.map +1 -0
  601. package/dist/unit/types/current/text/VttCueStyle.test.js +76 -0
  602. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts +2 -0
  603. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts.map +1 -0
  604. package/dist/unit/types/current/text/discoverDashTextTracks.test.js +199 -0
  605. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts +2 -0
  606. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts.map +1 -0
  607. package/dist/unit/types/current/text/discoverHlsTextTracks.test.js +177 -0
  608. package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts +2 -0
  609. package/dist/unit/types/current/text/mediaTextTrackProvider.test.d.ts.map +1 -0
  610. package/dist/unit/types/current/text/mediaTextTrackProvider.test.js +86 -0
  611. package/dist/unit/types/current/text/parseWebVtt.test.d.ts +2 -0
  612. package/dist/unit/types/current/text/parseWebVtt.test.d.ts.map +1 -0
  613. package/dist/unit/types/current/text/parseWebVtt.test.js +393 -0
  614. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts +2 -0
  615. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts.map +1 -0
  616. package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +78 -0
  617. package/dist/unit/types/current/track/AutoResetController.test.js +134 -22
  618. package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +5 -1
  619. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +5 -1
  620. package/dist/unit/types/current/track/dash/util/mpd.test.js +29 -0
  621. package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +16 -8
  622. package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +5 -1
  623. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts +2 -0
  624. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts.map +1 -0
  625. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.js +165 -0
  626. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  627. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts +2 -0
  628. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts.map +1 -0
  629. package/dist/unit/types/current/util/media/codecOverrides.test.js +42 -0
  630. package/dist/unit/types/current/util/media/codecSupport.test.d.ts +2 -0
  631. package/dist/unit/types/current/util/media/codecSupport.test.d.ts.map +1 -0
  632. package/dist/unit/types/current/util/media/codecSupport.test.js +26 -0
  633. package/dist/unit/types/current/util/media/mimeType.test.d.ts +2 -0
  634. package/dist/unit/types/current/util/media/mimeType.test.d.ts.map +1 -0
  635. package/dist/unit/types/current/util/media/mimeType.test.js +22 -0
  636. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +35 -0
  637. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts +2 -0
  638. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts.map +1 -0
  639. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.js +142 -0
  640. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts +2 -0
  641. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts.map +1 -0
  642. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +188 -0
  643. package/dist/vinylTestUtil/index.js +20 -14
  644. package/dist/vinylTestUtil/index.js.map +2 -2
  645. package/dist/vinylTestUtil/types/current/media/FrequencyAnalyzer.js +1 -1
  646. package/dist/vinylTestUtil/types/current/mediaSource/ControlledMediaSource.d.ts.map +1 -1
  647. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts +15 -0
  648. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts.map +1 -0
  649. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.js +26 -0
  650. package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +72 -72
  651. package/dist/vinylTestUtil/types/current/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  652. package/dist/vinylTestUtil/types/current/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  653. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  654. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
  655. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +7 -7
  656. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts +0 -1
  657. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts.map +1 -1
  658. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.js +0 -1
  659. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  660. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
  661. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +0 -1
  662. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +10 -0
  663. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -0
  664. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +14 -0
  665. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts +1 -0
  666. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts.map +1 -1
  667. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.js +1 -0
  668. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  669. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
  670. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +11 -7
  671. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  672. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
  673. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +11 -7
  674. package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +1 -1
  675. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  676. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +1 -1
  677. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +2 -2
  678. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
  679. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +1 -2
  680. package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
  681. package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +72 -72
  682. package/dist/vinylTestUtil/types/ts3.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  683. package/dist/vinylTestUtil/types/ts3.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  684. package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  685. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockSegmentController.d.ts +0 -1
  686. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  687. package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
  688. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockAutoResetController.d.ts +1 -0
  689. package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  690. package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  691. package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
  692. package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +72 -72
  693. package/dist/vinylTestUtil/types/ts4.1/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  694. package/dist/vinylTestUtil/types/ts4.1/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  695. package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  696. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockSegmentController.d.ts +0 -1
  697. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  698. package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
  699. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockAutoResetController.d.ts +1 -0
  700. package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  701. package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  702. package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
  703. package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +72 -72
  704. package/dist/vinylTestUtil/types/ts4.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  705. package/dist/vinylTestUtil/types/ts4.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  706. package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  707. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockSegmentController.d.ts +0 -1
  708. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  709. package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
  710. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockAutoResetController.d.ts +1 -0
  711. package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  712. package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  713. package/docs/USAGE.md +33 -0
  714. package/package.json +13 -16
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { pickPreferredTextTrack } from '@amazon/vinyl';
6
+ import { setMockNavigator, spyOnPropertySafe, } from '@amazon/vinyl-util/testUtil';
7
+ let nextId = 0;
8
+ function track(overrides = {}) {
9
+ return {
10
+ id: `t${nextId++}`,
11
+ kind: 'subtitles',
12
+ language: 'en',
13
+ label: '',
14
+ default: false,
15
+ forced: false,
16
+ characteristics: [],
17
+ uri: 'x.vtt',
18
+ mimeType: null,
19
+ ...overrides,
20
+ };
21
+ }
22
+ describe('pickPreferredTextTrack', () => {
23
+ it('falls back to navigator.languages when the preference is null', () => {
24
+ setMockNavigator().languages = ['en'];
25
+ const en = track({ id: 'en', language: 'en' });
26
+ expect(pickPreferredTextTrack([en], null)).toBe(en);
27
+ });
28
+ it('returns null when no track relates to navigator.languages', () => {
29
+ setMockNavigator().languages = ['en'];
30
+ expect(pickPreferredTextTrack([track({ language: 'ja' })], null)).toBeNull();
31
+ });
32
+ it('returns null for a null preference when navigator is unavailable', () => {
33
+ spyOnPropertySafe(global, 'navigator').and.returnValue(undefined);
34
+ expect(pickPreferredTextTrack([track()], null)).toBeNull();
35
+ });
36
+ it('returns null when there are no tracks', () => {
37
+ expect(pickPreferredTextTrack([], 'en')).toBeNull();
38
+ });
39
+ it('selects the track matching the preferred language', () => {
40
+ const en = track({ id: 'en', language: 'en' });
41
+ const es = track({ id: 'es', language: 'es' });
42
+ expect(pickPreferredTextTrack([es, en], 'en')).toBe(en);
43
+ });
44
+ it('returns null when no track relates to the preference', () => {
45
+ expect(pickPreferredTextTrack([track({ language: 'es' })], 'ja')).toBeNull();
46
+ });
47
+ it('ignores tracks without a language tag', () => {
48
+ expect(pickPreferredTextTrack([track({ language: null })], 'en')).toBeNull();
49
+ });
50
+ it('prefers a full track over a forced-only track of the same language', () => {
51
+ const forced = track({ id: 'forced', language: 'en', forced: true });
52
+ const full = track({ id: 'full', language: 'en', forced: false });
53
+ expect(pickPreferredTextTrack([forced, full], 'en')).toBe(full);
54
+ });
55
+ it('breaks a remaining tie by the manifest-default flag', () => {
56
+ const a = track({ id: 'a', language: 'en', default: false });
57
+ const b = track({ id: 'b', language: 'en', default: true });
58
+ expect(pickPreferredTextTrack([a, b], 'en')).toBe(b);
59
+ });
60
+ it('honors preference order, earlier entries winning', () => {
61
+ const en = track({ id: 'en', language: 'en' });
62
+ const fr = track({ id: 'fr', language: 'fr' });
63
+ expect(pickPreferredTextTrack([en, fr], ['fr', 'en'])).toBe(fr);
64
+ expect(pickPreferredTextTrack([en, fr], ['en', 'fr'])).toBe(en);
65
+ });
66
+ it('matches a related language when no exact match exists', () => {
67
+ const enUs = track({ id: 'en-US', language: 'en-US' });
68
+ const es = track({ id: 'es', language: 'es' });
69
+ // 'en' is the parent of 'en-US' — related, so it should be chosen.
70
+ expect(pickPreferredTextTrack([es, enUs], 'en')).toBe(enUs);
71
+ });
72
+ it('prefers a closer language match over a more distant one', () => {
73
+ const enUs = track({ id: 'en-US', language: 'en-US' });
74
+ const enGb = track({ id: 'en-GB', language: 'en-GB' });
75
+ // Exact 'en-US' (relatedness 4) beats sibling 'en-GB' (relatedness 2).
76
+ expect(pickPreferredTextTrack([enGb, enUs], 'en-US')).toBe(enUs);
77
+ });
78
+ });
@@ -3,10 +3,25 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { AutoResetControllerImpl, } from '@amazon/vinyl';
6
- import { ErrorOrigin, ReportableError, networkState, DisposedError, } from '@amazon/vinyl-util';
6
+ import { networkState, DisposedError, RequestError } from '@amazon/vinyl-util';
7
7
  import { MockPlaybackController } from '@amazon/vinyl/vinylTestUtil';
8
- import { createEventSpy, MockNetworkState, overrideGlobalInit, } from '@amazon/vinyl-util/testUtil';
8
+ import { createEventSpy, emptyInternalError, emptyResponseError, MockNetworkState, overrideGlobalInit, } from '@amazon/vinyl-util/testUtil';
9
9
  import { mockEvent, useMockTime } from '@amazon/vinyl-util/browserTestUtil';
10
+ /**
11
+ * Creates a RequestError representing a transient network failure (no response received).
12
+ * These are the only errors that AutoResetController watches for retry opportunities.
13
+ */
14
+ function createNetworkRequestError() {
15
+ return new RequestError(null, emptyInternalError);
16
+ }
17
+ /**
18
+ * Creates a RequestError that received an HTTP response. These should be ignored by
19
+ * the AutoResetController, since a service that responded is unlikely to recover
20
+ * on its own.
21
+ */
22
+ function createResponseRequestError() {
23
+ return new RequestError(new Response(null, { status: 500 }), emptyResponseError);
24
+ }
10
25
  describe('AutoResetControllerImpl', () => {
11
26
  let deps;
12
27
  let controller;
@@ -47,32 +62,35 @@ describe('AutoResetControllerImpl', () => {
47
62
  expect(playbackController.on).toHaveBeenCalledWith('seeking', jasmine.any(Function));
48
63
  expect(playbackController.on).toHaveBeenCalledWith('playing', jasmine.any(Function));
49
64
  });
65
+ it('starts with resetPending false', () => {
66
+ controller = new AutoResetControllerImpl(deps);
67
+ expect(controller.resetPending).toBeFalse();
68
+ });
50
69
  });
51
70
  describe('setError', () => {
52
71
  beforeEach(() => {
53
72
  controller = new AutoResetControllerImpl(deps);
54
73
  });
55
- it('ignores non-ReportableError', () => {
74
+ it('ignores non-RequestError', () => {
56
75
  const error = new Error('test error');
57
76
  controller.setError(error);
58
77
  expect(mockNetworkState.on).not.toHaveBeenCalled();
78
+ expect(controller.resetPending).toBeFalse();
59
79
  });
60
- it('ignores ReportableError with non-SERVICE_INTERNAL origin', () => {
61
- const error = new ReportableError('test', ErrorOrigin.SERVICE_EXTERNAL);
62
- controller.setError(error);
80
+ it('ignores RequestError with a response (HTTP failure)', () => {
81
+ controller.setError(createResponseRequestError());
63
82
  expect(mockNetworkState.on).not.toHaveBeenCalled();
83
+ expect(controller.resetPending).toBeFalse();
64
84
  });
65
- it('sets error and starts watching for SERVICE_INTERNAL ReportableError', () => {
66
- const error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
67
- controller.setError(error);
85
+ it('sets error and starts watching for transient network RequestError', () => {
86
+ controller.setError(createNetworkRequestError());
68
87
  expect(mockNetworkState.on).toHaveBeenCalledWith('online', jasmine.any(Function));
88
+ expect(controller.resetPending).toBeTrue();
69
89
  });
70
90
  it('ignores subsequent errors when already in error state', () => {
71
- const error1 = new ReportableError('test1', ErrorOrigin.SERVICE_INTERNAL);
72
- const error2 = new ReportableError('test2', ErrorOrigin.SERVICE_INTERNAL);
73
- controller.setError(error1);
91
+ controller.setError(createNetworkRequestError());
74
92
  mockNetworkState.on.calls.reset();
75
- controller.setError(error2);
93
+ controller.setError(createNetworkRequestError());
76
94
  expect(mockNetworkState.on).not.toHaveBeenCalled();
77
95
  });
78
96
  });
@@ -82,7 +100,7 @@ describe('AutoResetControllerImpl', () => {
82
100
  beforeEach(() => {
83
101
  controller = new AutoResetControllerImpl(deps);
84
102
  resetSpy = createEventSpy(controller, 'reset');
85
- error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
103
+ error = createNetworkRequestError();
86
104
  });
87
105
  it('emits reset event when network comes online', () => {
88
106
  controller.setError(error);
@@ -160,7 +178,7 @@ describe('AutoResetControllerImpl', () => {
160
178
  let resetSpy;
161
179
  let error;
162
180
  beforeEach(() => {
163
- error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
181
+ error = createNetworkRequestError();
164
182
  });
165
183
  it('retries at specified interval when online', async () => {
166
184
  controller = new AutoResetControllerImpl(deps, { retryInterval: 5 });
@@ -197,12 +215,109 @@ describe('AutoResetControllerImpl', () => {
197
215
  expect(resetSpy).toHaveBeenCalledTimes(3);
198
216
  }
199
217
  });
218
+ it('clears resetPending when max retries are exhausted', async () => {
219
+ controller = new AutoResetControllerImpl(deps, {
220
+ retryInterval: 1,
221
+ maxRetries: 1,
222
+ });
223
+ controller.setError(error);
224
+ expect(controller.resetPending).toBeTrue();
225
+ // First retry succeeds (resets) and re-arms on next setError
226
+ await clock.tick(1);
227
+ controller.setError(error);
228
+ expect(controller.resetPending).toBeTrue();
229
+ // Second retry exhausts the budget — interval fires but no reset emitted,
230
+ // and resetPending should transition to false.
231
+ await clock.tick(1);
232
+ expect(controller.resetPending).toBeFalse();
233
+ });
234
+ });
235
+ describe('resetPending', () => {
236
+ let error;
237
+ beforeEach(() => {
238
+ controller = new AutoResetControllerImpl(deps);
239
+ error = createNetworkRequestError();
240
+ });
241
+ it('is false initially', () => {
242
+ expect(controller.resetPending).toBeFalse();
243
+ });
244
+ it('becomes true when an eligible error is set', () => {
245
+ controller.setError(error);
246
+ expect(controller.resetPending).toBeTrue();
247
+ });
248
+ it('remains false when a non-eligible error is set', () => {
249
+ controller.setError(new Error('not eligible'));
250
+ expect(controller.resetPending).toBeFalse();
251
+ });
252
+ it('becomes false after a reset is emitted', () => {
253
+ controller.setError(error);
254
+ playbackController.dispatch('play', {});
255
+ expect(controller.resetPending).toBeFalse();
256
+ });
257
+ it('becomes false when cleared', () => {
258
+ controller.setError(error);
259
+ controller.clear();
260
+ expect(controller.resetPending).toBeFalse();
261
+ });
262
+ it('is false when the controller is disabled', () => {
263
+ controller = new AutoResetControllerImpl(deps, { enabled: false });
264
+ controller.setError(error);
265
+ expect(controller.resetPending).toBeFalse();
266
+ });
267
+ });
268
+ describe('resetPendingChange event', () => {
269
+ let resetPendingChangeSpy;
270
+ let error;
271
+ beforeEach(() => {
272
+ controller = new AutoResetControllerImpl(deps);
273
+ resetPendingChangeSpy = createEventSpy(controller, 'resetPendingChange');
274
+ error = createNetworkRequestError();
275
+ });
276
+ it('dispatches when resetPending becomes true', () => {
277
+ controller.setError(error);
278
+ expect(resetPendingChangeSpy).toHaveBeenCalledOnceWith({
279
+ previous: false,
280
+ current: true,
281
+ });
282
+ });
283
+ it('dispatches when resetPending becomes false via reset', () => {
284
+ controller.setError(error);
285
+ resetPendingChangeSpy.calls.reset();
286
+ playbackController.dispatch('play', {});
287
+ expect(resetPendingChangeSpy).toHaveBeenCalledOnceWith({
288
+ previous: true,
289
+ current: false,
290
+ });
291
+ });
292
+ it('dispatches when resetPending becomes false via clear', () => {
293
+ controller.setError(error);
294
+ resetPendingChangeSpy.calls.reset();
295
+ controller.clear();
296
+ expect(resetPendingChangeSpy).toHaveBeenCalledOnceWith({
297
+ previous: true,
298
+ current: false,
299
+ });
300
+ });
301
+ it('does not dispatch when setError is called with an in-progress error', () => {
302
+ controller.setError(error);
303
+ resetPendingChangeSpy.calls.reset();
304
+ controller.setError(error);
305
+ expect(resetPendingChangeSpy).not.toHaveBeenCalled();
306
+ });
307
+ it('does not dispatch when clear is called with no error', () => {
308
+ controller.clear();
309
+ expect(resetPendingChangeSpy).not.toHaveBeenCalled();
310
+ });
311
+ it('does not dispatch when an ineligible error is set', () => {
312
+ controller.setError(new Error('not eligible'));
313
+ expect(resetPendingChangeSpy).not.toHaveBeenCalled();
314
+ });
200
315
  });
201
316
  describe('clear', () => {
202
317
  let error;
203
318
  beforeEach(() => {
204
319
  controller = new AutoResetControllerImpl(deps);
205
- error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
320
+ error = createNetworkRequestError();
206
321
  });
207
322
  it('clears error state and stops watching', () => {
208
323
  controller.setError(error);
@@ -229,8 +344,7 @@ describe('AutoResetControllerImpl', () => {
229
344
  describe('dispose', () => {
230
345
  it('clears error state and disposes resources', () => {
231
346
  controller = new AutoResetControllerImpl(deps);
232
- const error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
233
- controller.setError(error);
347
+ controller.setError(createNetworkRequestError());
234
348
  controller.dispose();
235
349
  // Should not emit reset after disposing
236
350
  const resetSpy = createEventSpy(controller, 'reset');
@@ -250,15 +364,13 @@ describe('AutoResetControllerImpl', () => {
250
364
  describe('disabled behavior', () => {
251
365
  it('does not watch for errors when disabled', () => {
252
366
  controller = new AutoResetControllerImpl(deps, { enabled: false });
253
- const error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
254
- controller.setError(error);
367
+ controller.setError(createNetworkRequestError());
255
368
  expect(mockNetworkState.on).not.toHaveBeenCalled();
256
369
  });
257
370
  it('does not emit reset events when disabled', () => {
258
371
  controller = new AutoResetControllerImpl(deps, { enabled: false });
259
372
  const resetSpy = createEventSpy(controller, 'reset');
260
- const error = new ReportableError('test', ErrorOrigin.SERVICE_INTERNAL);
261
- controller.setError(error);
373
+ controller.setError(createNetworkRequestError());
262
374
  playbackController.dispatch('play', {});
263
375
  expect(resetSpy).not.toHaveBeenCalled();
264
376
  });
@@ -12,7 +12,11 @@ describe('createDashContentStreamFactories', () => {
12
12
  let mediaSourceController;
13
13
  let playbackController;
14
14
  let qualitySelector;
15
- const emptyTimeline = { periods: [], minBufferTime: 0 };
15
+ const emptyTimeline = {
16
+ periods: [],
17
+ minBufferTime: 0,
18
+ getDuration: () => Promise.resolve(Infinity),
19
+ };
16
20
  beforeEach(() => {
17
21
  mediaSourceController = new MockMediaSourceController();
18
22
  playbackController = new MockPlaybackController();
@@ -9,7 +9,11 @@ var objectContaining = jasmine.objectContaining;
9
9
  describe('createSegmentControllerFactory', () => {
10
10
  it('creates SegmentControllerImpl with merged dependencies', () => {
11
11
  const playbackController = new MockPlaybackController();
12
- const emptyTimeline = { periods: [], minBufferTime: 0 };
12
+ const emptyTimeline = {
13
+ periods: [],
14
+ minBufferTime: 0,
15
+ getDuration: () => Promise.resolve(Infinity),
16
+ };
13
17
  const factory = createSegmentControllerFactory({ playbackController }, 'audio', { prefetchActive: 100 });
14
18
  const controller = factory({
15
19
  mediaTimelineTransformed: data(Promise.resolve(emptyTimeline)),
@@ -308,5 +308,34 @@ describe('mpd utils', () => {
308
308
  expect(calculateDuration(manifest)).toBe(50);
309
309
  });
310
310
  });
311
+ describe('when MPD type is dynamic', () => {
312
+ it('returns Infinity for live presentations', () => {
313
+ // language=XML
314
+ const manifest = parseDashManifest(`<?xml version="1.0" ?>
315
+ <MPD type="dynamic" minBufferTime="PT0.0S" profiles="urn:mpeg:dash:profile:isoff-live:2011" xmlns="urn:mpeg:dash:schema:mpd:2011">
316
+ <Period/>
317
+ </MPD>`);
318
+ expect(calculateDuration(manifest)).toBe(Infinity);
319
+ });
320
+ });
321
+ describe('when there are no periods', () => {
322
+ it('throws', () => {
323
+ const manifest = clone(mockDashManifest);
324
+ delete manifest.MPD
325
+ .mediaPresentationDuration;
326
+ manifest.MPD.Period = [];
327
+ expect(() => calculateDuration(manifest)).toThrowError(/no periods/i);
328
+ });
329
+ });
330
+ describe('when the last period has no determinable end', () => {
331
+ it('throws', () => {
332
+ // language=XML
333
+ const manifest = parseDashManifest(`<?xml version="1.0" ?>
334
+ <MPD minBufferTime="PT0.0S" profiles="urn:mpeg:dash:profile:isoff-live:2011" xmlns="urn:mpeg:dash:schema:mpd:2011">
335
+ <Period/>
336
+ </MPD>`);
337
+ expect(() => calculateDuration(manifest)).toThrowError(/Unable to determine/);
338
+ });
339
+ });
311
340
  });
312
341
  });
@@ -12,9 +12,10 @@ describe('buildHlsMediaTimeline', () => {
12
12
  codecs: 'mp4a.40.2',
13
13
  };
14
14
  }
15
- function createMediaPlaylist(durations) {
15
+ function createMediaPlaylist(durations, ended = true) {
16
16
  return {
17
- targetDuration: Math.max(...durations),
17
+ targetDuration: durations.length ? Math.max(...durations) : 0,
18
+ ended,
18
19
  segments: durations.map((d, i) => ({
19
20
  duration: d,
20
21
  uri: `seg${i}.m4s`,
@@ -57,6 +58,13 @@ describe('buildHlsMediaTimeline', () => {
57
58
  const timeline = buildHlsMediaTimeline(deps, data);
58
59
  expect(await timeline.getDuration()).toBe(12);
59
60
  });
61
+ it('returns Infinity for live playlists (no EXT-X-ENDLIST)', async () => {
62
+ const variant = createVariant('v1.m3u8', 128000);
63
+ const playlist = createMediaPlaylist([4, 4], false);
64
+ const data = createManifestData([variant], playlist);
65
+ const timeline = buildHlsMediaTimeline(deps, data);
66
+ expect(await timeline.getDuration()).toBe(Infinity);
67
+ });
60
68
  it('creates one quality per variant', () => {
61
69
  const v1 = createVariant('v1.m3u8', 128000);
62
70
  const v2 = createVariant('v2.m3u8', 256000);
@@ -209,7 +217,7 @@ describe('buildHlsMediaTimeline', () => {
209
217
  // codecs should fall back to metadata.codecs
210
218
  expect(segment.quality.codecs).toBeNull();
211
219
  });
212
- it('getDuration returns null when getMediaPlaylist fails', async () => {
220
+ it('getDuration rejects when getMediaPlaylist fails', async () => {
213
221
  const variant = createVariant('v1.m3u8', 128000);
214
222
  const manifestData = {
215
223
  mainPlaylist: {
@@ -220,7 +228,7 @@ describe('buildHlsMediaTimeline', () => {
220
228
  getMediaPlaylist: () => Promise.reject(new Error('disposed')),
221
229
  };
222
230
  const timeline = buildHlsMediaTimeline(deps, manifestData);
223
- expect(await timeline.getDuration()).toBeNull();
231
+ await expectAsync(timeline.getDuration()).toBeRejected();
224
232
  });
225
233
  it('getDuration caches the result', async () => {
226
234
  const variant = createVariant('v1.m3u8', 128000);
@@ -242,12 +250,12 @@ describe('buildHlsMediaTimeline', () => {
242
250
  expect(await timeline.getDuration()).toBe(10);
243
251
  expect(calls).toBe(1);
244
252
  });
245
- it('getDuration returns null for empty segments', async () => {
253
+ it('getDuration throws for empty segments in a complete playlist', async () => {
246
254
  const variant = createVariant('v1.m3u8', 128000);
247
255
  const playlist = createMediaPlaylist([]);
248
256
  const manifestData = createManifestData([variant], playlist);
249
257
  const timeline = buildHlsMediaTimeline(deps, manifestData);
250
- expect(await timeline.getDuration()).toBeNull();
258
+ await expectAsync(timeline.getDuration()).toBeRejectedWithError(/no segments/i);
251
259
  });
252
260
  it('passes byteRange from map to createSegmentDataProvider as mediaRange', async () => {
253
261
  const variant = createVariant('v1.m3u8', 128000);
@@ -289,9 +297,9 @@ describe('buildHlsMediaTimeline', () => {
289
297
  expect(initCall[1]?.headers).toEqual(jasmine.objectContaining({ Range: 'bytes=0-499' }));
290
298
  fetchSpy.and.callThrough();
291
299
  });
292
- it('getDuration returns null when no variants', async () => {
300
+ it('getDuration throws when no variants', async () => {
293
301
  const manifestData = createManifestData([], createMediaPlaylist([]));
294
302
  const timeline = buildHlsMediaTimeline(deps, manifestData);
295
- expect(await timeline.getDuration()).toBeNull();
303
+ await expectAsync(timeline.getDuration()).toBeRejectedWithError(/no variants/i);
296
304
  });
297
305
  });
@@ -9,7 +9,11 @@ import { data } from '@amazon/vinyl-observable';
9
9
  var any = jasmine.any;
10
10
  describe('createHlsContentStreamFactories', () => {
11
11
  let deps;
12
- const emptyTimeline = { periods: [], minBufferTime: 0 };
12
+ const emptyTimeline = {
13
+ periods: [],
14
+ minBufferTime: 0,
15
+ getDuration: () => Promise.resolve(Infinity),
16
+ };
13
17
  beforeEach(() => {
14
18
  deps = {
15
19
  mediaSourceController: new MockMediaSourceController(),
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inferLoadOptionsFromUri.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferLoadOptionsFromUri.test.d.ts","sourceRoot":"","sources":["../../../../../test/unit/track/inferLoadOptionsFromUri.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { createTrackLoadOptionsFromUrl, inferTrackTypeFromUrl, inferTrackTypeFromUrlPath, } from '@amazon/vinyl';
6
+ import { requesterWithRetryRef } from '@amazon/vinyl-util';
7
+ import { MockRequester, overrideGlobalInit } from '@amazon/vinyl-util/testUtil';
8
+ describe('inferTrackTypeFromUrlPath', () => {
9
+ it('returns hls for .m3u8 extension', () => {
10
+ expect(inferTrackTypeFromUrlPath('https://example.com/stream.m3u8')).toBe('hls');
11
+ });
12
+ it('returns hls for .m3u8 with query params', () => {
13
+ expect(inferTrackTypeFromUrlPath('https://example.com/stream.m3u8?token=abc')).toBe('hls');
14
+ });
15
+ it('returns dash for .mpd extension', () => {
16
+ expect(inferTrackTypeFromUrlPath('https://example.com/manifest.mpd')).toBe('dash');
17
+ });
18
+ it('returns dash for .mpd with query params', () => {
19
+ expect(inferTrackTypeFromUrlPath('https://example.com/manifest.mpd?v=1')).toBe('dash');
20
+ });
21
+ it('returns src for common media extensions', () => {
22
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.mp3')).toBe('src');
23
+ expect(inferTrackTypeFromUrlPath('https://example.com/video.mp4')).toBe('src');
24
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.aac')).toBe('src');
25
+ expect(inferTrackTypeFromUrlPath('https://example.com/video.webm')).toBe('src');
26
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.ogg')).toBe('src');
27
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.wav')).toBe('src');
28
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.m4a')).toBe('src');
29
+ expect(inferTrackTypeFromUrlPath('https://example.com/video.m4v')).toBe('src');
30
+ expect(inferTrackTypeFromUrlPath('https://example.com/audio.opus')).toBe('src');
31
+ });
32
+ it('returns src for media extensions with query params', () => {
33
+ expect(inferTrackTypeFromUrlPath('https://example.com/video.mp4?quality=high')).toBe('src');
34
+ });
35
+ it('returns null for unrecognized URIs', () => {
36
+ expect(inferTrackTypeFromUrlPath('https://example.com/api/stream')).toBeNull();
37
+ expect(inferTrackTypeFromUrlPath('https://example.com/data.json')).toBeNull();
38
+ });
39
+ });
40
+ /**
41
+ * Builds a minimal `fetch` Response stand-in that satisfies `requestWithRetry`
42
+ * (which reads `ok`/`status`/`headers` and rejects on non-ok responses).
43
+ */
44
+ function contentTypeResponse(contentType) {
45
+ return {
46
+ ok: true,
47
+ status: 200,
48
+ headers: {
49
+ get: (header) => header === 'content-type' ? contentType : null,
50
+ },
51
+ };
52
+ }
53
+ function notFoundResponse() {
54
+ return {
55
+ ok: false,
56
+ status: 404,
57
+ headers: { get: () => null },
58
+ };
59
+ }
60
+ describe('inferTrackTypeFromUrl', () => {
61
+ it('resolves from the extension without a network request', async () => {
62
+ const origFetch = globalThis.fetch;
63
+ const fetchSpy = jasmine.createSpy('fetch');
64
+ globalThis.fetch = fetchSpy;
65
+ try {
66
+ expect(await inferTrackTypeFromUrl('https://example.com/a.m3u8')).toBe('hls');
67
+ expect(fetchSpy).not.toHaveBeenCalled();
68
+ }
69
+ finally {
70
+ globalThis.fetch = origFetch;
71
+ }
72
+ });
73
+ it('falls through to a HEAD probe for extension-less URLs', async () => {
74
+ const origFetch = globalThis.fetch;
75
+ const fetchSpy = jasmine
76
+ .createSpy('fetch')
77
+ .and.resolveTo(contentTypeResponse('video/mp4'));
78
+ globalThis.fetch = fetchSpy;
79
+ try {
80
+ expect(await inferTrackTypeFromUrl('https://example.com/probe-fallthru')).toBe('src');
81
+ expect(fetchSpy).toHaveBeenCalledTimes(1);
82
+ expect(fetchSpy.calls.argsFor(0)[1]).toEqual(jasmine.objectContaining({ method: 'HEAD' }));
83
+ }
84
+ finally {
85
+ globalThis.fetch = origFetch;
86
+ }
87
+ });
88
+ });
89
+ describe('probeType (via inferTrackTypeFromUrl)', () => {
90
+ // Each spec uses a DISTINCT URL because probeType is memoized by URL, so a
91
+ // shared URL would leak a cached result into later specs.
92
+ async function probe(url, response) {
93
+ const origFetch = globalThis.fetch;
94
+ globalThis.fetch = jasmine.createSpy('fetch').and.resolveTo(response);
95
+ try {
96
+ return await inferTrackTypeFromUrl(url);
97
+ }
98
+ finally {
99
+ globalThis.fetch = origFetch;
100
+ }
101
+ }
102
+ it('maps application/dash+xml to dash', async () => {
103
+ expect(await probe('https://example.com/probe-dash', contentTypeResponse('application/dash+xml'))).toBe('dash');
104
+ });
105
+ it('maps an mpegurl content-type to hls', async () => {
106
+ expect(await probe('https://example.com/probe-hls', contentTypeResponse('application/vnd.apple.mpegurl'))).toBe('hls');
107
+ });
108
+ it('maps video/* content-types to src', async () => {
109
+ expect(await probe('https://example.com/probe-video', contentTypeResponse('video/mp4'))).toBe('src');
110
+ });
111
+ it('maps audio/* content-types to src', async () => {
112
+ expect(await probe('https://example.com/probe-audio', contentTypeResponse('audio/mpeg'))).toBe('src');
113
+ });
114
+ it('returns null for an unrecognized content-type', async () => {
115
+ expect(await probe('https://example.com/probe-unknown', contentTypeResponse('application/json'))).toBeNull();
116
+ });
117
+ it('returns null when the content-type header is missing', async () => {
118
+ expect(await probe('https://example.com/probe-no-content-type', contentTypeResponse(null))).toBeNull();
119
+ });
120
+ it('returns null for a non-ok response', async () => {
121
+ expect(await probe('https://example.com/probe-not-found', notFoundResponse())).toBeNull();
122
+ });
123
+ it('returns null when the request throws', async () => {
124
+ const origFetch = globalThis.fetch;
125
+ globalThis.fetch = jasmine
126
+ .createSpy('fetch')
127
+ .and.rejectWith(new Error('network down'));
128
+ try {
129
+ expect(await inferTrackTypeFromUrl('https://example.com/probe-throws')).toBeNull();
130
+ }
131
+ finally {
132
+ globalThis.fetch = origFetch;
133
+ }
134
+ });
135
+ });
136
+ describe('probeType (non-ok resolved response)', () => {
137
+ // The real requester rejects non-ok responses, so it can never resolve one
138
+ // to probeType. Override it with a mock that resolves a non-ok Response to
139
+ // exercise probeType's `!res.ok` guard.
140
+ const mockRequesterRef = overrideGlobalInit(requesterWithRetryRef, () => new MockRequester());
141
+ it('returns null when the request resolves a non-ok response', async () => {
142
+ mockRequesterRef.value.request.and.resolveTo(new Response(null, { status: 404 }));
143
+ expect(await inferTrackTypeFromUrl('https://example.com/probe-resolved-not-ok')).toBeNull();
144
+ });
145
+ });
146
+ describe('createTrackLoadOptionsFromUrl', () => {
147
+ it('returns uri and type for a typeable URL', async () => {
148
+ expect(await createTrackLoadOptionsFromUrl('https://example.com/create.m3u8')).toEqual({ uri: 'https://example.com/create.m3u8', type: 'hls' });
149
+ });
150
+ it('returns null for an empty string', async () => {
151
+ expect(await createTrackLoadOptionsFromUrl('')).toBeNull();
152
+ });
153
+ it('returns null for an untypeable URL', async () => {
154
+ const origFetch = globalThis.fetch;
155
+ globalThis.fetch = jasmine
156
+ .createSpy('fetch')
157
+ .and.resolveTo(contentTypeResponse('application/json'));
158
+ try {
159
+ expect(await createTrackLoadOptionsFromUrl('https://example.com/create-untypeable')).toBeNull();
160
+ }
161
+ finally {
162
+ globalThis.fetch = origFetch;
163
+ }
164
+ });
165
+ });