rx-player 4.0.0-dev.2023092900 → 4.0.0-dev.2023102700

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 (576) hide show
  1. package/CHANGELOG.md +221 -12
  2. package/FILES.md +0 -4
  3. package/MAINTAINERS.md +1 -0
  4. package/README.md +0 -21
  5. package/VERSION +1 -1
  6. package/dist/_esm5.processed/compat/add_class_name.js +6 -3
  7. package/dist/_esm5.processed/compat/add_text_track.js +11 -8
  8. package/dist/_esm5.processed/compat/browser_compatibility_types.js +13 -9
  9. package/dist/_esm5.processed/compat/browser_detection.js +49 -34
  10. package/dist/_esm5.processed/compat/browser_version.js +11 -8
  11. package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
  12. package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
  13. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
  14. package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
  15. package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
  16. package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
  17. package/dist/_esm5.processed/compat/eme/constants.js +6 -3
  18. package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
  19. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +78 -102
  20. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -6
  21. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +18 -15
  22. package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +7 -5
  23. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +70 -88
  24. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
  25. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +91 -117
  26. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +7 -7
  27. package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +82 -83
  28. package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
  29. package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
  30. package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
  31. package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
  32. package/dist/_esm5.processed/compat/eme/index.js +13 -7
  33. package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
  34. package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
  35. package/dist/_esm5.processed/compat/event_listeners.js +130 -102
  36. package/dist/_esm5.processed/compat/get_start_date.js +7 -4
  37. package/dist/_esm5.processed/compat/global_scope.js +7 -5
  38. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
  39. package/dist/_esm5.processed/compat/index.js +47 -24
  40. package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
  41. package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +4 -1
  42. package/dist/_esm5.processed/compat/is_node.js +5 -3
  43. package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
  44. package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -3
  45. package/dist/_esm5.processed/compat/is_worker.js +3 -1
  46. package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -7
  47. package/dist/_esm5.processed/compat/on_height_width_change.js +25 -22
  48. package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -17
  49. package/dist/_esm5.processed/compat/remove_cue.js +12 -9
  50. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
  51. package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
  52. package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
  53. package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
  54. package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
  55. package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
  56. package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +6 -3
  57. package/dist/_esm5.processed/config.js +15 -14
  58. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +123 -94
  59. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +43 -42
  60. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -44
  61. package/dist/_esm5.processed/core/adaptive/index.js +4 -2
  62. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -74
  63. package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
  64. package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
  65. package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
  66. package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
  67. package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
  68. package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
  69. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
  70. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
  71. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
  72. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
  73. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -30
  74. package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
  75. package/dist/_esm5.processed/core/api/debug/index.js +4 -2
  76. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
  77. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
  78. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
  79. package/dist/_esm5.processed/core/api/debug/render.js +16 -13
  80. package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
  81. package/dist/_esm5.processed/core/api/index.js +7 -4
  82. package/dist/_esm5.processed/core/api/option_utils.js +85 -58
  83. package/dist/_esm5.processed/core/api/playback_observer.js +135 -124
  84. package/dist/_esm5.processed/core/api/public_api.js +610 -684
  85. package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
  86. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -247
  87. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +45 -58
  88. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +300 -324
  89. package/dist/_esm5.processed/core/api/utils.js +32 -24
  90. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +155 -185
  91. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +42 -81
  92. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
  93. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +392 -510
  94. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
  95. package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
  96. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -67
  97. package/dist/_esm5.processed/core/decrypt/find_key_system.js +94 -155
  98. package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
  99. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
  100. package/dist/_esm5.processed/core/decrypt/index.js +26 -7
  101. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
  102. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
  103. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
  104. package/dist/_esm5.processed/core/decrypt/types.js +5 -2
  105. package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
  106. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
  107. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
  108. package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
  109. package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
  110. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
  111. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
  112. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -21
  113. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -27
  114. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
  115. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
  116. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -102
  117. package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
  118. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
  119. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
  120. package/dist/_esm5.processed/core/fetchers/index.js +7 -3
  121. package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
  122. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -313
  123. package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
  124. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
  125. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -234
  126. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
  127. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
  128. package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
  129. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -261
  130. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +73 -99
  131. package/dist/_esm5.processed/core/init/index.js +5 -1
  132. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +256 -320
  133. package/dist/_esm5.processed/core/init/types.js +7 -24
  134. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
  135. package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -30
  136. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +12 -10
  137. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -26
  138. package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -38
  139. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +13 -10
  140. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +29 -26
  141. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +30 -27
  142. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +58 -60
  143. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +140 -161
  144. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
  145. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
  146. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -30
  147. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +71 -90
  148. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
  149. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
  150. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
  151. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +130 -147
  152. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
  153. package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
  154. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +106 -125
  155. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
  156. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
  157. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
  158. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
  159. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
  160. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
  161. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
  162. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
  163. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
  164. package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
  165. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
  166. package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
  167. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +24 -22
  168. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
  169. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +151 -150
  170. package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
  171. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
  172. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
  173. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +118 -166
  174. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
  175. package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
  176. package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
  177. package/dist/_esm5.processed/core/stream/index.js +4 -2
  178. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -16
  179. package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
  180. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +175 -222
  181. package/dist/_esm5.processed/core/stream/period/index.js +19 -3
  182. package/dist/_esm5.processed/core/stream/period/period_stream.js +172 -216
  183. package/dist/_esm5.processed/core/stream/period/types.js +2 -1
  184. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
  185. package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
  186. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +80 -68
  187. package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
  188. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
  189. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
  190. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
  191. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
  192. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -48
  193. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
  194. package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
  195. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
  196. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
  197. package/dist/_esm5.processed/default_config.js +4 -2
  198. package/dist/_esm5.processed/errors/assertion_error.js +10 -26
  199. package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
  200. package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
  201. package/dist/_esm5.processed/errors/error_codes.js +9 -4
  202. package/dist/_esm5.processed/errors/error_message.js +5 -2
  203. package/dist/_esm5.processed/errors/format_error.js +9 -7
  204. package/dist/_esm5.processed/errors/index.js +25 -11
  205. package/dist/_esm5.processed/errors/is_known_error.js +14 -11
  206. package/dist/_esm5.processed/errors/media_error.js +17 -33
  207. package/dist/_esm5.processed/errors/network_error.js +21 -37
  208. package/dist/_esm5.processed/errors/other_error.js +15 -31
  209. package/dist/_esm5.processed/errors/request_error.js +17 -33
  210. package/dist/_esm5.processed/experimental/features/dash_wasm.js +14 -11
  211. package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
  212. package/dist/_esm5.processed/experimental/features/index.d.ts +1 -0
  213. package/dist/_esm5.processed/experimental/features/index.js +11 -3
  214. package/dist/_esm5.processed/experimental/features/local.js +9 -6
  215. package/dist/_esm5.processed/experimental/features/metaplaylist.js +9 -6
  216. package/dist/_esm5.processed/experimental/index.js +5 -2
  217. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
  218. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
  219. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
  220. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
  221. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
  222. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
  223. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
  224. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
  225. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
  226. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
  227. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
  228. package/dist/_esm5.processed/experimental/tools/index.js +11 -5
  229. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +38 -43
  230. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +31 -34
  231. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
  232. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
  233. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
  234. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +20 -17
  235. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -18
  236. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
  237. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
  238. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
  239. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
  240. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
  241. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -16
  242. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -8
  243. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
  244. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
  245. package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
  246. package/dist/_esm5.processed/features/add_features.js +11 -8
  247. package/dist/_esm5.processed/features/features_object.js +4 -2
  248. package/dist/_esm5.processed/features/index.js +7 -4
  249. package/dist/_esm5.processed/features/list/dash.js +11 -8
  250. package/dist/_esm5.processed/features/list/directfile.js +9 -5
  251. package/dist/_esm5.processed/features/list/eme.js +7 -4
  252. package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -6
  253. package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -6
  254. package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
  255. package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -6
  256. package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -6
  257. package/dist/_esm5.processed/features/list/index.js +31 -14
  258. package/dist/_esm5.processed/features/list/native_sami_parser.js +9 -6
  259. package/dist/_esm5.processed/features/list/native_srt_parser.js +9 -6
  260. package/dist/_esm5.processed/features/list/native_text_buffer.js +7 -4
  261. package/dist/_esm5.processed/features/list/native_ttml_parser.js +9 -6
  262. package/dist/_esm5.processed/features/list/native_vtt_parser.js +9 -6
  263. package/dist/_esm5.processed/features/list/smooth.js +9 -6
  264. package/dist/_esm5.processed/features/types.js +2 -1
  265. package/dist/_esm5.processed/index.js +24 -9
  266. package/dist/_esm5.processed/log.js +5 -3
  267. package/dist/_esm5.processed/manifest/adaptation.js +52 -55
  268. package/dist/_esm5.processed/manifest/index.js +32 -13
  269. package/dist/_esm5.processed/manifest/manifest.js +112 -134
  270. package/dist/_esm5.processed/manifest/period.js +38 -42
  271. package/dist/_esm5.processed/manifest/representation.js +78 -61
  272. package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
  273. package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
  274. package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
  275. package/dist/_esm5.processed/manifest/types.js +5 -2
  276. package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
  277. package/dist/_esm5.processed/manifest/update_periods.js +59 -69
  278. package/dist/_esm5.processed/manifest/utils.js +14 -9
  279. package/dist/_esm5.processed/minimal.js +9 -7
  280. package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
  281. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
  282. package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
  283. package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
  284. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
  285. package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
  286. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
  287. package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
  288. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
  289. package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
  290. package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
  291. package/dist/_esm5.processed/parsers/images/bif.js +40 -29
  292. package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
  293. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
  294. package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +8 -5
  295. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
  296. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
  297. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
  298. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
  299. package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
  300. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
  301. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
  302. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
  303. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
  304. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
  305. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
  306. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
  307. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
  308. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
  309. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
  310. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
  311. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
  312. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -129
  313. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
  314. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
  315. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
  316. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +18 -17
  317. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -111
  318. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
  319. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -85
  320. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +97 -82
  321. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
  322. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +61 -69
  323. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
  324. package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
  325. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
  326. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
  327. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
  328. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
  329. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
  330. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
  331. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
  332. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
  333. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
  334. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +44 -40
  335. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
  336. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
  337. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
  338. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
  339. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
  340. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
  341. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
  342. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
  343. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
  344. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
  345. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -238
  346. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
  347. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
  348. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
  349. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
  350. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
  351. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
  352. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
  353. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +43 -38
  354. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
  355. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
  356. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
  357. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
  358. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
  359. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
  360. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
  361. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
  362. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
  363. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
  364. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
  365. package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
  366. package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
  367. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +30 -27
  368. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
  369. package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
  370. package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
  371. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +75 -72
  372. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
  373. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -176
  374. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
  375. package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
  376. package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
  377. package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
  378. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -98
  379. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -48
  380. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  381. package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
  382. package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
  383. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
  384. package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
  385. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
  386. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
  387. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
  388. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
  389. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
  390. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
  391. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
  392. package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
  393. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
  394. package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
  395. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
  396. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
  397. package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
  398. package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
  399. package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
  400. package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
  401. package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
  402. package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
  403. package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
  404. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
  405. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
  406. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
  407. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
  408. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
  409. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
  410. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
  411. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
  412. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
  413. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
  414. package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
  415. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
  416. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
  417. package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
  418. package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
  419. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
  420. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
  421. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
  422. package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
  423. package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
  424. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
  425. package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
  426. package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
  427. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
  428. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
  429. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
  430. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
  431. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
  432. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
  433. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
  434. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
  435. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
  436. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
  437. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
  438. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
  439. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
  440. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
  441. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
  442. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
  443. package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
  444. package/dist/_esm5.processed/public_types.js +2 -1
  445. package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
  446. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
  447. package/dist/_esm5.processed/tools/index.js +6 -4
  448. package/dist/_esm5.processed/tools/string_utils.js +10 -1
  449. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
  450. package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
  451. package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
  452. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
  453. package/dist/_esm5.processed/transports/dash/index.js +4 -2
  454. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
  455. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
  456. package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -60
  457. package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
  458. package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
  459. package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
  460. package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
  461. package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
  462. package/dist/_esm5.processed/transports/index.js +17 -1
  463. package/dist/_esm5.processed/transports/local/index.js +4 -2
  464. package/dist/_esm5.processed/transports/local/pipelines.js +26 -23
  465. package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
  466. package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
  467. package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
  468. package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
  469. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
  470. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +91 -96
  471. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
  472. package/dist/_esm5.processed/transports/smooth/index.js +4 -2
  473. package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
  474. package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
  475. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
  476. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
  477. package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
  478. package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
  479. package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
  480. package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
  481. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
  482. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
  483. package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
  484. package/dist/_esm5.processed/transports/smooth/pipelines.js +106 -96
  485. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +2 -2
  486. package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
  487. package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
  488. package/dist/_esm5.processed/transports/types.js +2 -1
  489. package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
  490. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -18
  491. package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
  492. package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
  493. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
  494. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -10
  495. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
  496. package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
  497. package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +5 -2
  498. package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
  499. package/dist/_esm5.processed/utils/array_find.js +7 -4
  500. package/dist/_esm5.processed/utils/array_find_index.js +6 -3
  501. package/dist/_esm5.processed/utils/array_includes.js +12 -11
  502. package/dist/_esm5.processed/utils/assert.js +13 -9
  503. package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
  504. package/dist/_esm5.processed/utils/base64.js +23 -18
  505. package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
  506. package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
  507. package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
  508. package/dist/_esm5.processed/utils/deep_merge.js +10 -21
  509. package/dist/_esm5.processed/utils/event_emitter.js +24 -24
  510. package/dist/_esm5.processed/utils/flat_map.js +7 -4
  511. package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
  512. package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
  513. package/dist/_esm5.processed/utils/id_generator.js +6 -3
  514. package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
  515. package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
  516. package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
  517. package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
  518. package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
  519. package/dist/_esm5.processed/utils/languages/index.js +7 -3
  520. package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
  521. package/dist/_esm5.processed/utils/logger.js +24 -23
  522. package/dist/_esm5.processed/utils/monotonic_timestamp.js +4 -1
  523. package/dist/_esm5.processed/utils/noop.js +4 -1
  524. package/dist/_esm5.processed/utils/object_assign.js +8 -10
  525. package/dist/_esm5.processed/utils/object_values.js +6 -3
  526. package/dist/_esm5.processed/utils/ranges.js +94 -71
  527. package/dist/_esm5.processed/utils/reference.js +48 -52
  528. package/dist/_esm5.processed/utils/request/fetch.js +79 -109
  529. package/dist/_esm5.processed/utils/request/index.js +9 -4
  530. package/dist/_esm5.processed/utils/request/xhr.js +49 -37
  531. package/dist/_esm5.processed/utils/resolve_url.js +18 -18
  532. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
  533. package/dist/_esm5.processed/utils/sleep.js +5 -2
  534. package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
  535. package/dist/_esm5.processed/utils/sorted_list.js +37 -40
  536. package/dist/_esm5.processed/utils/starts_with.js +5 -2
  537. package/dist/_esm5.processed/utils/string_parsing.js +84 -73
  538. package/dist/_esm5.processed/utils/take_first_set.js +9 -10
  539. package/dist/_esm5.processed/utils/task_canceller.js +51 -71
  540. package/dist/_esm5.processed/utils/warn_once.js +7 -4
  541. package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
  542. package/dist/_esm5.processed/utils/wrapInPromise.js +5 -2
  543. package/dist/mpd-parser.wasm +0 -0
  544. package/dist/rx-player.js +43758 -45493
  545. package/dist/rx-player.min.js +1 -1
  546. package/jest.config.js +1 -22
  547. package/package.json +22 -23
  548. package/scripts/build/constants.d.ts +1 -23
  549. package/scripts/build/generate_build.js +1 -1
  550. package/scripts/check_nodejs_import_compatibility.js +1 -1
  551. package/scripts/update-version +1 -4
  552. package/sonar-project.properties +1 -1
  553. package/src/compat/event_listeners.ts +8 -8
  554. package/src/compat/global_scope.ts +2 -0
  555. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +3 -3
  556. package/src/core/adaptive/adaptive_representation_selector.ts +27 -9
  557. package/src/core/adaptive/buffer_based_chooser.ts +1 -1
  558. package/src/core/adaptive/network_analyzer.ts +5 -4
  559. package/src/core/api/public_api.ts +2 -2
  560. package/src/core/api/track_management/track_dispatcher.ts +2 -1
  561. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +1 -1
  562. package/src/core/fetchers/cdn_prioritizer.ts +1 -1
  563. package/src/experimental/features/__tests__/index.test.ts +19 -0
  564. package/src/experimental/features/index.ts +1 -0
  565. package/src/features/list/__tests__/index.test.ts +49 -0
  566. package/src/index.ts +28 -3
  567. package/src/transports/smooth/segment_loader.ts +4 -4
  568. package/src/typings/globals.d.ts +0 -42
  569. package/src/utils/request/fetch.ts +1 -1
  570. package/src/utils/request/xhr.ts +1 -1
  571. package/tsconfig.json +1 -1
  572. package/tsconfig.modules.json +3 -3
  573. package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
  574. package/dist/_esm5.processed/features/initialize_features.js +0 -108
  575. package/src/features/__tests__/initialize_features.test.ts +0 -657
  576. package/src/features/initialize_features.ts +0 -129
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,34 +14,20 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __extends = (this && this.__extends) || (function () {
17
- var extendStatics = function (d, b) {
18
- extendStatics = Object.setPrototypeOf ||
19
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21
- return extendStatics(d, b);
22
- };
23
- return function (d, b) {
24
- if (typeof b !== "function" && b !== null)
25
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
- extendStatics(d, b);
27
- function __() { this.constructor = d; }
28
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
- };
30
- })();
31
- import EventEmitter from "../../../utils/event_emitter";
32
- import noop from "../../../utils/noop";
33
- import startsWith from "../../../utils/starts_with";
34
- import wrapInPromise from "../../../utils/wrapInPromise";
35
- import getWebKitFairplayInitData from "../get_webkit_fairplay_initdata";
36
- import { WebKitMediaKeysConstructor, } from "./webkit_media_keys_constructor";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const event_emitter_1 = require("../../../utils/event_emitter");
19
+ const noop_1 = require("../../../utils/noop");
20
+ const starts_with_1 = require("../../../utils/starts_with");
21
+ const wrapInPromise_1 = require("../../../utils/wrapInPromise");
22
+ const get_webkit_fairplay_initdata_1 = require("../get_webkit_fairplay_initdata");
23
+ const webkit_media_keys_constructor_1 = require("./webkit_media_keys_constructor");
37
24
  /**
38
25
  * Check if keyType is for fairplay DRM
39
26
  * @param {string} keyType
40
27
  * @returns {boolean}
41
28
  */
42
29
  function isFairplayKeyType(keyType) {
43
- return startsWith(keyType, "com.apple.fps");
30
+ return (0, starts_with_1.default)(keyType, "com.apple.fps");
44
31
  }
45
32
  /**
46
33
  * Set media keys on video element using native HTMLMediaElement
@@ -50,8 +37,8 @@ function isFairplayKeyType(keyType) {
50
37
  * @returns {Promise}
51
38
  */
52
39
  function setWebKitMediaKeys(videoElement, mediaKeys) {
53
- var elt = videoElement;
54
- return wrapInPromise(function () {
40
+ const elt = videoElement;
41
+ return (0, wrapInPromise_1.default)(() => {
55
42
  if (elt.webkitSetMediaKeys === undefined) {
56
43
  throw new Error("No webKitMediaKeys API.");
57
44
  }
@@ -66,38 +53,35 @@ function setWebKitMediaKeys(videoElement, mediaKeys) {
66
53
  * This class implements a standard EME API polyfill that wraps webkit prefixed Safari
67
54
  * EME custom APIs.
68
55
  */
69
- var WebkitMediaKeySession = /** @class */ (function (_super) {
70
- __extends(WebkitMediaKeySession, _super);
56
+ class WebkitMediaKeySession extends event_emitter_1.default {
71
57
  /**
72
58
  * @param {HTMLMediaElement} mediaElement
73
59
  * @param {string} keyType
74
60
  * @param {Uint8Array | undefined} serverCertificate
75
61
  */
76
- function WebkitMediaKeySession(mediaElement, keyType, serverCertificate) {
77
- var _this = _super.call(this) || this;
78
- _this._serverCertificate = serverCertificate;
79
- _this._videoElement = mediaElement;
80
- _this._keyType = keyType;
81
- _this._unbindSession = noop;
82
- _this._closeSession = noop; // Just here to make TypeScript happy
83
- _this.closed = new Promise(function (resolve) {
84
- _this._closeSession = resolve;
62
+ constructor(mediaElement, keyType, serverCertificate) {
63
+ super();
64
+ this._serverCertificate = serverCertificate;
65
+ this._videoElement = mediaElement;
66
+ this._keyType = keyType;
67
+ this._unbindSession = noop_1.default;
68
+ this._closeSession = noop_1.default; // Just here to make TypeScript happy
69
+ this.closed = new Promise((resolve) => {
70
+ this._closeSession = resolve;
85
71
  });
86
- _this.keyStatuses = new Map();
87
- _this.expiration = NaN;
88
- return _this;
72
+ this.keyStatuses = new Map();
73
+ this.expiration = NaN;
89
74
  }
90
- WebkitMediaKeySession.prototype.update = function (license) {
91
- var _this = this;
92
- return new Promise(function (resolve, reject) {
75
+ update(license) {
76
+ return new Promise((resolve, reject) => {
93
77
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
94
- if (_this._nativeSession === undefined ||
95
- _this._nativeSession.update === undefined ||
96
- typeof _this._nativeSession.update !== "function") {
78
+ if (this._nativeSession === undefined ||
79
+ this._nativeSession.update === undefined ||
80
+ typeof this._nativeSession.update !== "function") {
97
81
  return reject("Unavailable WebKit key session.");
98
82
  }
99
83
  try {
100
- var uInt8Arraylicense = void 0;
84
+ let uInt8Arraylicense;
101
85
  if (license instanceof ArrayBuffer) {
102
86
  uInt8Arraylicense = new Uint8Array(license);
103
87
  }
@@ -109,7 +93,7 @@ var WebkitMediaKeySession = /** @class */ (function (_super) {
109
93
  }
110
94
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
111
95
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call
112
- resolve(_this._nativeSession.update(uInt8Arraylicense));
96
+ resolve(this._nativeSession.update(uInt8Arraylicense));
113
97
  /* eslint-enable @typescript-eslint/no-unsafe-member-access */
114
98
  }
115
99
  catch (err) {
@@ -117,132 +101,121 @@ var WebkitMediaKeySession = /** @class */ (function (_super) {
117
101
  }
118
102
  /* eslint-enable @typescript-eslint/no-unsafe-member-access */
119
103
  });
120
- };
121
- WebkitMediaKeySession.prototype.generateRequest = function (_initDataType, initData) {
122
- var _this = this;
123
- return new Promise(function (resolve) {
104
+ }
105
+ generateRequest(_initDataType, initData) {
106
+ return new Promise((resolve) => {
124
107
  var _a;
125
- var elt = _this._videoElement;
108
+ const elt = this._videoElement;
126
109
  if (((_a = elt.webkitKeys) === null || _a === void 0 ? void 0 : _a.createSession) === undefined) {
127
110
  throw new Error("No WebKitMediaKeys API.");
128
111
  }
129
- var formattedInitData;
130
- if (isFairplayKeyType(_this._keyType)) {
131
- if (_this._serverCertificate === undefined) {
112
+ let formattedInitData;
113
+ if (isFairplayKeyType(this._keyType)) {
114
+ if (this._serverCertificate === undefined) {
132
115
  throw new Error("A server certificate is needed for creating fairplay session.");
133
116
  }
134
- formattedInitData = getWebKitFairplayInitData(initData, _this._serverCertificate);
117
+ formattedInitData = (0, get_webkit_fairplay_initdata_1.default)(initData, this._serverCertificate);
135
118
  }
136
119
  else {
137
120
  formattedInitData = initData;
138
121
  }
139
- var keySession = elt.webkitKeys.createSession("video/mp4", formattedInitData);
122
+ const keySession = elt.webkitKeys.createSession("video/mp4", formattedInitData);
140
123
  if (keySession === undefined || keySession === null) {
141
124
  throw new Error("Impossible to get the key sessions");
142
125
  }
143
- _this._listenEvent(keySession);
126
+ this._listenEvent(keySession);
144
127
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
145
- _this._nativeSession = keySession;
128
+ this._nativeSession = keySession;
146
129
  resolve();
147
130
  });
148
- };
149
- WebkitMediaKeySession.prototype.close = function () {
150
- var _this = this;
151
- return new Promise(function (resolve, reject) {
152
- _this._unbindSession();
153
- _this._closeSession();
154
- if (_this._nativeSession === undefined) {
131
+ }
132
+ close() {
133
+ return new Promise((resolve, reject) => {
134
+ this._unbindSession();
135
+ this._closeSession();
136
+ if (this._nativeSession === undefined) {
155
137
  reject("No session to close.");
156
138
  return;
157
139
  }
158
140
  /* eslint-disable @typescript-eslint/no-floating-promises */
159
- _this._nativeSession.close();
141
+ this._nativeSession.close();
160
142
  /* eslint-enable @typescript-eslint/no-floating-promises */
161
143
  resolve();
162
144
  });
163
- };
164
- WebkitMediaKeySession.prototype.load = function () {
145
+ }
146
+ load() {
165
147
  return Promise.resolve(false);
166
- };
167
- WebkitMediaKeySession.prototype.remove = function () {
148
+ }
149
+ remove() {
168
150
  return Promise.resolve();
169
- };
170
- Object.defineProperty(WebkitMediaKeySession.prototype, "sessionId", {
171
- get: function () {
172
- var _a, _b;
173
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
174
- /* eslint-disable @typescript-eslint/no-unsafe-return */
175
- return (_b = (_a = this._nativeSession) === null || _a === void 0 ? void 0 : _a.sessionId) !== null && _b !== void 0 ? _b : "";
176
- /* eslint-enable @typescript-eslint/no-unsafe-member-access */
177
- /* eslint-enable @typescript-eslint/no-unsafe-return */
178
- },
179
- enumerable: false,
180
- configurable: true
181
- });
182
- WebkitMediaKeySession.prototype._listenEvent = function (session) {
183
- var _this = this;
151
+ }
152
+ get sessionId() {
153
+ var _a, _b;
154
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
155
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
156
+ return (_b = (_a = this._nativeSession) === null || _a === void 0 ? void 0 : _a.sessionId) !== null && _b !== void 0 ? _b : "";
157
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access */
158
+ /* eslint-enable @typescript-eslint/no-unsafe-return */
159
+ }
160
+ _listenEvent(session) {
184
161
  this._unbindSession(); // If previous session was linked
185
- var onEvent = function (evt) {
186
- _this.trigger(evt.type, evt);
162
+ const onEvent = (evt) => {
163
+ this.trigger(evt.type, evt);
187
164
  };
188
165
  /* eslint-disable @typescript-eslint/no-unsafe-call */
189
166
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
190
167
  /* eslint-disable @typescript-eslint/no-unsafe-return */
191
168
  ["keymessage", "message", "keyadded", "ready", "keyerror", "error"]
192
- .forEach(function (evt) {
169
+ .forEach(evt => {
193
170
  session.addEventListener(evt, onEvent);
194
- session.addEventListener("webkit".concat(evt), onEvent);
171
+ session.addEventListener(`webkit${evt}`, onEvent);
195
172
  });
196
- this._unbindSession = function () {
173
+ this._unbindSession = () => {
197
174
  ["keymessage", "message", "keyadded", "ready", "keyerror", "error"]
198
- .forEach(function (evt) {
175
+ .forEach(evt => {
199
176
  session.removeEventListener(evt, onEvent);
200
- session.removeEventListener("webkit".concat(evt), onEvent);
177
+ session.removeEventListener(`webkit${evt}`, onEvent);
201
178
  });
202
179
  };
203
180
  /* eslint-disable @typescript-eslint/no-unsafe-return */
204
181
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
205
182
  /* eslint-enable @typescript-eslint/no-unsafe-call */
206
- };
207
- return WebkitMediaKeySession;
208
- }(EventEmitter));
209
- var WebKitCustomMediaKeys = /** @class */ (function () {
210
- function WebKitCustomMediaKeys(keyType) {
211
- if (WebKitMediaKeysConstructor === undefined) {
183
+ }
184
+ }
185
+ class WebKitCustomMediaKeys {
186
+ constructor(keyType) {
187
+ if (webkit_media_keys_constructor_1.WebKitMediaKeysConstructor === undefined) {
212
188
  throw new Error("No WebKitMediaKeys API.");
213
189
  }
214
190
  this._keyType = keyType;
215
- this._mediaKeys = new WebKitMediaKeysConstructor(keyType);
191
+ this._mediaKeys = new webkit_media_keys_constructor_1.WebKitMediaKeysConstructor(keyType);
216
192
  }
217
- WebKitCustomMediaKeys.prototype._setVideo = function (videoElement) {
193
+ _setVideo(videoElement) {
218
194
  this._videoElement = videoElement;
219
195
  if (this._videoElement === undefined) {
220
196
  throw new Error("Video not attached to the MediaKeys");
221
197
  }
222
198
  return setWebKitMediaKeys(this._videoElement, this._mediaKeys);
223
- };
224
- WebKitCustomMediaKeys.prototype.createSession = function ( /* sessionType */) {
199
+ }
200
+ createSession( /* sessionType */) {
225
201
  if (this._videoElement === undefined ||
226
202
  this._mediaKeys === undefined) {
227
203
  throw new Error("Video not attached to the MediaKeys");
228
204
  }
229
205
  return new WebkitMediaKeySession(this._videoElement, this._keyType, this._serverCertificate);
230
- };
231
- WebKitCustomMediaKeys.prototype.setServerCertificate = function (serverCertificate) {
206
+ }
207
+ setServerCertificate(serverCertificate) {
232
208
  this._serverCertificate = serverCertificate;
233
209
  return Promise.resolve();
234
- };
235
- return WebKitCustomMediaKeys;
236
- }());
237
- export default function getWebKitMediaKeysCallbacks() {
238
- if (WebKitMediaKeysConstructor === undefined) {
210
+ }
211
+ }
212
+ function getWebKitMediaKeysCallbacks() {
213
+ if (webkit_media_keys_constructor_1.WebKitMediaKeysConstructor === undefined) {
239
214
  throw new Error("No WebKitMediaKeys API.");
240
215
  }
241
- var isTypeSupported = WebKitMediaKeysConstructor.isTypeSupported;
242
- var createCustomMediaKeys = function (keyType) {
243
- return new WebKitCustomMediaKeys(keyType);
244
- };
245
- var setMediaKeys = function (elt, mediaKeys) {
216
+ const isTypeSupported = webkit_media_keys_constructor_1.WebKitMediaKeysConstructor.isTypeSupported;
217
+ const createCustomMediaKeys = (keyType) => new WebKitCustomMediaKeys(keyType);
218
+ const setMediaKeys = (elt, mediaKeys) => {
246
219
  if (mediaKeys === null) {
247
220
  return setWebKitMediaKeys(elt, mediaKeys);
248
221
  }
@@ -253,8 +226,9 @@ export default function getWebKitMediaKeysCallbacks() {
253
226
  return mediaKeys._setVideo(elt);
254
227
  };
255
228
  return {
256
- isTypeSupported: isTypeSupported,
257
- createCustomMediaKeys: createCustomMediaKeys,
258
- setMediaKeys: setMediaKeys,
229
+ isTypeSupported,
230
+ createCustomMediaKeys,
231
+ setMediaKeys,
259
232
  };
260
233
  }
234
+ exports.default = getWebKitMediaKeysCallbacks;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,18 +14,17 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import globalScope from "../../global_scope";
17
- var WebKitMediaKeysConstructor;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.WebKitMediaKeysConstructor = void 0;
19
+ const global_scope_1 = require("../../global_scope");
20
+ let WebKitMediaKeysConstructor;
18
21
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
19
22
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
20
- var WebKitMediaKeys = globalScope.WebKitMediaKeys;
23
+ const { WebKitMediaKeys } = global_scope_1.default;
21
24
  if (WebKitMediaKeys !== undefined &&
22
25
  typeof WebKitMediaKeys.isTypeSupported === "function" &&
23
26
  typeof WebKitMediaKeys.prototype.createSession === "function" &&
24
27
  typeof HTMLMediaElement.prototype
25
28
  .webkitSetMediaKeys === "function") {
26
- WebKitMediaKeysConstructor = WebKitMediaKeys;
29
+ exports.WebKitMediaKeysConstructor = WebKitMediaKeysConstructor = WebKitMediaKeys;
27
30
  }
28
- /* eslint-enable @typescript-eslint/no-unsafe-assignment */
29
- /* eslint-enable @typescript-eslint/no-unsafe-member-access */
30
- export { WebKitMediaKeysConstructor, };
@@ -1,25 +1,27 @@
1
- import { MediaError } from "../../errors";
2
- import assert from "../../utils/assert";
3
- import isNullOrUndefined from "../../utils/is_null_or_undefined";
4
- import { isIE11 } from "../browser_detection";
5
- import { createCompatibleEventListener } from "../event_listeners";
6
- import globalScope from "../global_scope";
7
- import isNode from "../is_node";
8
- import shouldFavourCustomSafariEME from "../should_favour_custom_safari_EME";
9
- import CustomMediaKeySystemAccess from "./custom_key_system_access";
10
- import getIE11MediaKeysCallbacks, { MSMediaKeysConstructor, } from "./custom_media_keys/ie11_media_keys";
11
- import getMozMediaKeysCallbacks, { MozMediaKeysConstructor, } from "./custom_media_keys/moz_media_keys_constructor";
12
- import getOldKitWebKitMediaKeyCallbacks, { isOldWebkitMediaElement, } from "./custom_media_keys/old_webkit_media_keys";
13
- import getWebKitMediaKeysCallbacks from "./custom_media_keys/webkit_media_keys";
14
- import { WebKitMediaKeysConstructor, } from "./custom_media_keys/webkit_media_keys_constructor";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const errors_1 = require("../../errors");
4
+ const assert_1 = require("../../utils/assert");
5
+ const is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
6
+ const browser_detection_1 = require("../browser_detection");
7
+ const event_listeners_1 = require("../event_listeners");
8
+ const global_scope_1 = require("../global_scope");
9
+ const is_node_1 = require("../is_node");
10
+ const should_favour_custom_safari_EME_1 = require("../should_favour_custom_safari_EME");
11
+ const custom_key_system_access_1 = require("./custom_key_system_access");
12
+ const ie11_media_keys_1 = require("./custom_media_keys/ie11_media_keys");
13
+ const moz_media_keys_constructor_1 = require("./custom_media_keys/moz_media_keys_constructor");
14
+ const old_webkit_media_keys_1 = require("./custom_media_keys/old_webkit_media_keys");
15
+ const webkit_media_keys_1 = require("./custom_media_keys/webkit_media_keys");
16
+ const webkit_media_keys_constructor_1 = require("./custom_media_keys/webkit_media_keys_constructor");
15
17
  /**
16
18
  * Automatically detect and set which EME implementation should be used in the
17
19
  * current platform.
18
20
  *
19
21
  * You can call `getEmeApiImplementation` for a different implementation.
20
22
  */
21
- var defaultEmeImplementation = getEmeApiImplementation("auto");
22
- export default defaultEmeImplementation;
23
+ const defaultEmeImplementation = getEmeApiImplementation("auto");
24
+ exports.default = defaultEmeImplementation;
23
25
  /**
24
26
  * Returns the current EME implementation based on what's present on the device
25
27
  * and the given preference.
@@ -28,113 +30,107 @@ export default defaultEmeImplementation;
28
30
  * @returns {Object}
29
31
  */
30
32
  function getEmeApiImplementation(preferredApiType) {
31
- var requestMediaKeySystemAccess;
32
- var onEncrypted;
33
- var setMediaKeys = defaultSetMediaKeys;
34
- var implementation;
33
+ let requestMediaKeySystemAccess;
34
+ let onEncrypted;
35
+ let setMediaKeys = defaultSetMediaKeys;
36
+ let implementation;
35
37
  if ((preferredApiType === "standard" ||
36
- (preferredApiType === "auto" && !shouldFavourCustomSafariEME())) &&
38
+ (preferredApiType === "auto" && !(0, should_favour_custom_safari_EME_1.default)())) &&
37
39
  (
38
40
  // eslint-disable-next-line @typescript-eslint/unbound-method
39
- isNode || !isNullOrUndefined(navigator.requestMediaKeySystemAccess))) {
40
- requestMediaKeySystemAccess = function () {
41
- var args = [];
42
- for (var _i = 0; _i < arguments.length; _i++) {
43
- args[_i] = arguments[_i];
44
- }
45
- return navigator.requestMediaKeySystemAccess.apply(navigator, args);
46
- };
47
- onEncrypted = createCompatibleEventListener(["encrypted"]);
41
+ is_node_1.default || !(0, is_null_or_undefined_1.default)(navigator.requestMediaKeySystemAccess))) {
42
+ requestMediaKeySystemAccess = (...args) => navigator.requestMediaKeySystemAccess(...args);
43
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["encrypted"]);
48
44
  implementation = "standard";
49
45
  }
50
46
  else {
51
- var isTypeSupported_1;
52
- var createCustomMediaKeys_1;
53
- if (preferredApiType === "webkit" && WebKitMediaKeysConstructor !== undefined) {
54
- onEncrypted = createCompatibleEventListener(["needkey"]);
55
- var callbacks = getWebKitMediaKeysCallbacks();
56
- isTypeSupported_1 = callbacks.isTypeSupported;
57
- createCustomMediaKeys_1 = callbacks.createCustomMediaKeys;
47
+ let isTypeSupported;
48
+ let createCustomMediaKeys;
49
+ if (preferredApiType === "webkit" && webkit_media_keys_constructor_1.WebKitMediaKeysConstructor !== undefined) {
50
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["needkey"]);
51
+ const callbacks = (0, webkit_media_keys_1.default)();
52
+ isTypeSupported = callbacks.isTypeSupported;
53
+ createCustomMediaKeys = callbacks.createCustomMediaKeys;
58
54
  setMediaKeys = callbacks.setMediaKeys;
59
55
  implementation = "webkit";
60
56
  }
61
57
  else {
62
58
  // This is for Chrome with unprefixed EME api
63
- if (isOldWebkitMediaElement(HTMLVideoElement.prototype)) {
64
- onEncrypted = createCompatibleEventListener(["needkey"]);
65
- var callbacks = getOldKitWebKitMediaKeyCallbacks();
66
- isTypeSupported_1 = callbacks.isTypeSupported;
67
- createCustomMediaKeys_1 = callbacks.createCustomMediaKeys;
59
+ if ((0, old_webkit_media_keys_1.isOldWebkitMediaElement)(HTMLVideoElement.prototype)) {
60
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["needkey"]);
61
+ const callbacks = (0, old_webkit_media_keys_1.default)();
62
+ isTypeSupported = callbacks.isTypeSupported;
63
+ createCustomMediaKeys = callbacks.createCustomMediaKeys;
68
64
  setMediaKeys = callbacks.setMediaKeys;
69
65
  implementation = "older-webkit";
70
66
  // This is for WebKit with prefixed EME api
71
67
  }
72
- else if (WebKitMediaKeysConstructor !== undefined) {
73
- onEncrypted = createCompatibleEventListener(["needkey"]);
74
- var callbacks = getWebKitMediaKeysCallbacks();
75
- isTypeSupported_1 = callbacks.isTypeSupported;
76
- createCustomMediaKeys_1 = callbacks.createCustomMediaKeys;
68
+ else if (webkit_media_keys_constructor_1.WebKitMediaKeysConstructor !== undefined) {
69
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["needkey"]);
70
+ const callbacks = (0, webkit_media_keys_1.default)();
71
+ isTypeSupported = callbacks.isTypeSupported;
72
+ createCustomMediaKeys = callbacks.createCustomMediaKeys;
77
73
  setMediaKeys = callbacks.setMediaKeys;
78
74
  implementation = "webkit";
79
75
  }
80
- else if (isIE11 && MSMediaKeysConstructor !== undefined) {
81
- onEncrypted = createCompatibleEventListener(["encrypted", "needkey"]);
82
- var callbacks = getIE11MediaKeysCallbacks();
83
- isTypeSupported_1 = callbacks.isTypeSupported;
84
- createCustomMediaKeys_1 = callbacks.createCustomMediaKeys;
76
+ else if (browser_detection_1.isIE11 && ie11_media_keys_1.MSMediaKeysConstructor !== undefined) {
77
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["encrypted", "needkey"]);
78
+ const callbacks = (0, ie11_media_keys_1.default)();
79
+ isTypeSupported = callbacks.isTypeSupported;
80
+ createCustomMediaKeys = callbacks.createCustomMediaKeys;
85
81
  setMediaKeys = callbacks.setMediaKeys;
86
82
  implementation = "ms";
87
83
  }
88
- else if (MozMediaKeysConstructor !== undefined) {
89
- onEncrypted = createCompatibleEventListener(["encrypted", "needkey"]);
90
- var callbacks = getMozMediaKeysCallbacks();
91
- isTypeSupported_1 = callbacks.isTypeSupported;
92
- createCustomMediaKeys_1 = callbacks.createCustomMediaKeys;
84
+ else if (moz_media_keys_constructor_1.MozMediaKeysConstructor !== undefined) {
85
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["encrypted", "needkey"]);
86
+ const callbacks = (0, moz_media_keys_constructor_1.default)();
87
+ isTypeSupported = callbacks.isTypeSupported;
88
+ createCustomMediaKeys = callbacks.createCustomMediaKeys;
93
89
  setMediaKeys = callbacks.setMediaKeys;
94
90
  implementation = "moz";
95
91
  }
96
92
  else {
97
- onEncrypted = createCompatibleEventListener(["encrypted", "needkey"]);
98
- var MK_1 = globalScope.MediaKeys;
99
- var checkForStandardMediaKeys_1 = function () {
100
- if (MK_1 === undefined) {
101
- throw new MediaError("MEDIA_KEYS_NOT_SUPPORTED", "No `MediaKeys` implementation found " +
93
+ onEncrypted = (0, event_listeners_1.createCompatibleEventListener)(["encrypted", "needkey"]);
94
+ const MK = global_scope_1.default.MediaKeys;
95
+ const checkForStandardMediaKeys = () => {
96
+ if (MK === undefined) {
97
+ throw new errors_1.MediaError("MEDIA_KEYS_NOT_SUPPORTED", "No `MediaKeys` implementation found " +
102
98
  "in the current browser.");
103
99
  }
104
- if (typeof MK_1.isTypeSupported === "undefined") {
105
- var message = "This browser seems to be unable to play encrypted " +
100
+ if (typeof MK.isTypeSupported === "undefined") {
101
+ const message = "This browser seems to be unable to play encrypted " +
106
102
  "contents currently." +
107
103
  "Note: Some browsers do not allow decryption " +
108
104
  "in some situations, like when not using HTTPS.";
109
105
  throw new Error(message);
110
106
  }
111
107
  };
112
- isTypeSupported_1 = function (keyType) {
113
- checkForStandardMediaKeys_1();
114
- assert(typeof MK_1.isTypeSupported === "function");
115
- return MK_1.isTypeSupported(keyType);
108
+ isTypeSupported = (keyType) => {
109
+ checkForStandardMediaKeys();
110
+ (0, assert_1.default)(typeof MK.isTypeSupported === "function");
111
+ return MK.isTypeSupported(keyType);
116
112
  };
117
- createCustomMediaKeys_1 = function (keyType) {
118
- checkForStandardMediaKeys_1();
119
- return new MK_1(keyType);
113
+ createCustomMediaKeys = (keyType) => {
114
+ checkForStandardMediaKeys();
115
+ return new MK(keyType);
120
116
  };
121
117
  implementation = "unknown";
122
118
  }
123
119
  }
124
120
  requestMediaKeySystemAccess = function (keyType, keySystemConfigurations) {
125
- if (!isTypeSupported_1(keyType)) {
121
+ if (!isTypeSupported(keyType)) {
126
122
  return Promise.reject(new Error("Unsupported key type"));
127
123
  }
128
- for (var i = 0; i < keySystemConfigurations.length; i++) {
129
- var keySystemConfiguration = keySystemConfigurations[i];
130
- var videoCapabilities = keySystemConfiguration.videoCapabilities, audioCapabilities = keySystemConfiguration.audioCapabilities, initDataTypes = keySystemConfiguration.initDataTypes, distinctiveIdentifier = keySystemConfiguration.distinctiveIdentifier;
131
- var supported = true;
124
+ for (let i = 0; i < keySystemConfigurations.length; i++) {
125
+ const keySystemConfiguration = keySystemConfigurations[i];
126
+ const { videoCapabilities, audioCapabilities, initDataTypes, distinctiveIdentifier } = keySystemConfiguration;
127
+ let supported = true;
132
128
  supported = supported &&
133
129
  (initDataTypes == null ||
134
- initDataTypes.some(function (idt) { return idt === "cenc"; }));
130
+ initDataTypes.some((idt) => idt === "cenc"));
135
131
  supported = supported && (distinctiveIdentifier !== "required");
136
132
  if (supported) {
137
- var keySystemConfigurationResponse = {
133
+ const keySystemConfigurationResponse = {
138
134
  initDataTypes: ["cenc"],
139
135
  distinctiveIdentifier: "not-allowed",
140
136
  persistentState: "required",
@@ -147,14 +143,17 @@ function getEmeApiImplementation(preferredApiType) {
147
143
  keySystemConfigurationResponse.audioCapabilities = audioCapabilities;
148
144
  }
149
145
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
150
- var customMediaKeys = createCustomMediaKeys_1(keyType);
151
- return Promise.resolve(new CustomMediaKeySystemAccess(keyType, customMediaKeys, keySystemConfigurationResponse));
146
+ const customMediaKeys = createCustomMediaKeys(keyType);
147
+ return Promise.resolve(new custom_key_system_access_1.default(keyType, customMediaKeys, keySystemConfigurationResponse));
152
148
  }
153
149
  }
154
150
  return Promise.reject(new Error("Unsupported configuration"));
155
151
  };
156
152
  }
157
- return { requestMediaKeySystemAccess: requestMediaKeySystemAccess, onEncrypted: onEncrypted, setMediaKeys: setMediaKeys, implementation: implementation };
153
+ return { requestMediaKeySystemAccess,
154
+ onEncrypted,
155
+ setMediaKeys,
156
+ implementation };
158
157
  }
159
158
  /**
160
159
  * Set the given MediaKeys on the given HTMLMediaElement.
@@ -165,8 +164,8 @@ function getEmeApiImplementation(preferredApiType) {
165
164
  */
166
165
  function defaultSetMediaKeys(mediaElement, mediaKeys) {
167
166
  try {
168
- var ret = void 0;
169
- var elt = mediaElement;
167
+ let ret;
168
+ const elt = mediaElement;
170
169
  /* eslint-disable @typescript-eslint/unbound-method */
171
170
  if (typeof elt.setMediaKeys === "function") {
172
171
  ret = elt.setMediaKeys(mediaKeys);