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,15 +14,16 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  // Store the MediaKeys infos attached to a media element.
17
- var currentMediaState = new WeakMap();
18
- export default {
19
+ const currentMediaState = new WeakMap();
20
+ exports.default = {
19
21
  /**
20
22
  * Update MediaKeys infos set on a HMTLMediaElement
21
23
  * @param {HTMLMediaElement} mediaElement
22
24
  * @param {Object} state
23
25
  */
24
- setState: function (mediaElement, state) {
26
+ setState(mediaElement, state) {
25
27
  currentMediaState.set(mediaElement, state);
26
28
  },
27
29
  /**
@@ -29,8 +31,8 @@ export default {
29
31
  * @param {HTMLMediaElement} mediaElement
30
32
  * @returns {Object}
31
33
  */
32
- getState: function (mediaElement) {
33
- var currentState = currentMediaState.get(mediaElement);
34
+ getState(mediaElement) {
35
+ const currentState = currentMediaState.get(mediaElement);
34
36
  return currentState === undefined ? null :
35
37
  currentState;
36
38
  },
@@ -38,7 +40,7 @@ export default {
38
40
  * Remove MediaKeys infos currently set on a HMTLMediaElement
39
41
  * @param {HTMLMediaElement} mediaElement
40
42
  */
41
- clearState: function (mediaElement) {
43
+ clearState(mediaElement) {
42
44
  currentMediaState.set(mediaElement, null);
43
45
  },
44
46
  };
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,21 +14,22 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../../../log";
17
- import areArraysOfNumbersEqual from "../../../utils/are_arrays_of_numbers_equal";
18
- import { assertInterface } from "../../../utils/assert";
19
- import { bytesToBase64 } from "../../../utils/base64";
20
- import hashBuffer from "../../../utils/hash_buffer";
21
- import isNonEmptyString from "../../../utils/is_non_empty_string";
22
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
23
- import areInitializationValuesCompatible from "./are_init_values_compatible";
24
- import SerializableBytes from "./serializable_bytes";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ const are_arrays_of_numbers_equal_1 = require("../../../utils/are_arrays_of_numbers_equal");
20
+ const assert_1 = require("../../../utils/assert");
21
+ const base64_1 = require("../../../utils/base64");
22
+ const hash_buffer_1 = require("../../../utils/hash_buffer");
23
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
24
+ const is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
25
+ const are_init_values_compatible_1 = require("./are_init_values_compatible");
26
+ const serializable_bytes_1 = require("./serializable_bytes");
25
27
  /**
26
28
  * Throw if the given storage does not respect the right interface.
27
29
  * @param {Object} storage
28
30
  */
29
31
  function checkStorage(storage) {
30
- assertInterface(storage, { save: "function", load: "function" }, "persistentLicenseConfig");
32
+ (0, assert_1.assertInterface)(storage, { save: "function", load: "function" }, "persistentLicenseConfig");
31
33
  }
32
34
  /**
33
35
  * Set representing persisted licenses. Depends on a simple
@@ -38,24 +40,24 @@ function checkStorage(storage) {
38
40
  * supported.
39
41
  * @class PersistentSessionsStore
40
42
  */
41
- var PersistentSessionsStore = /** @class */ (function () {
43
+ class PersistentSessionsStore {
42
44
  /**
43
45
  * Create a new PersistentSessionsStore.
44
46
  * @param {Object} storage
45
47
  */
46
- function PersistentSessionsStore(storage) {
48
+ constructor(storage) {
47
49
  checkStorage(storage);
48
50
  this._entries = [];
49
51
  this._storage = storage;
50
52
  try {
51
- var entries = this._storage.load();
53
+ let entries = this._storage.load();
52
54
  if (!Array.isArray(entries)) {
53
55
  entries = [];
54
56
  }
55
57
  this._entries = entries;
56
58
  }
57
59
  catch (e) {
58
- log.warn("DRM-PSS: Could not get entries from license storage", e instanceof Error ? e : "");
60
+ log_1.default.warn("DRM-PSS: Could not get entries from license storage", e instanceof Error ? e : "");
59
61
  this.dispose();
60
62
  }
61
63
  }
@@ -63,28 +65,28 @@ var PersistentSessionsStore = /** @class */ (function () {
63
65
  * Returns the number of stored values.
64
66
  * @returns {number}
65
67
  */
66
- PersistentSessionsStore.prototype.getLength = function () {
68
+ getLength() {
67
69
  return this._entries.length;
68
- };
70
+ }
69
71
  /**
70
72
  * Returns information about all stored MediaKeySession, in the order in which
71
73
  * the MediaKeySession have been created.
72
74
  * @returns {Array.<Object>}
73
75
  */
74
- PersistentSessionsStore.prototype.getAll = function () {
76
+ getAll() {
75
77
  return this._entries;
76
- };
78
+ }
77
79
  /**
78
80
  * Retrieve an entry based on its initialization data.
79
81
  * @param {Object} initData
80
82
  * @param {string|undefined} initDataType
81
83
  * @returns {Object|null}
82
84
  */
83
- PersistentSessionsStore.prototype.get = function (initData) {
84
- var index = this._getIndex(initData);
85
+ get(initData) {
86
+ const index = this._getIndex(initData);
85
87
  return index === -1 ? null :
86
88
  this._entries[index];
87
- };
89
+ }
88
90
  /**
89
91
  * Like `get`, but also move the corresponding value at the end of the store
90
92
  * (as returned by `getAll`) if found.
@@ -96,79 +98,83 @@ var PersistentSessionsStore = /** @class */ (function () {
96
98
  * @param {string|undefined} initDataType
97
99
  * @returns {*}
98
100
  */
99
- PersistentSessionsStore.prototype.getAndReuse = function (initData) {
100
- var index = this._getIndex(initData);
101
+ getAndReuse(initData) {
102
+ const index = this._getIndex(initData);
101
103
  if (index === -1) {
102
104
  return null;
103
105
  }
104
- var item = this._entries.splice(index, 1)[0];
106
+ const item = this._entries.splice(index, 1)[0];
105
107
  this._entries.push(item);
106
108
  return item;
107
- };
109
+ }
108
110
  /**
109
111
  * Add a new entry in the PersistentSessionsStore.
110
112
  * @param {Uint8Array} initData
111
113
  * @param {string|undefined} initDataType
112
114
  * @param {MediaKeySession} session
113
115
  */
114
- PersistentSessionsStore.prototype.add = function (initData, keyIds, session) {
116
+ add(initData, keyIds, session) {
115
117
  var _a;
116
- if (isNullOrUndefined(session) || !isNonEmptyString(session.sessionId)) {
117
- log.warn("DRM-PSS: Invalid Persisten Session given.");
118
+ if ((0, is_null_or_undefined_1.default)(session) || !(0, is_non_empty_string_1.default)(session.sessionId)) {
119
+ log_1.default.warn("DRM-PSS: Invalid Persisten Session given.");
118
120
  return;
119
121
  }
120
- var sessionId = session.sessionId;
121
- var currentIndex = this._getIndex(initData);
122
+ const { sessionId } = session;
123
+ const currentIndex = this._getIndex(initData);
122
124
  if (currentIndex >= 0) {
123
- var currVersion = keyIds === undefined ? 3 :
125
+ const currVersion = keyIds === undefined ? 3 :
124
126
  4;
125
- var currentEntry = this._entries[currentIndex];
126
- var entryVersion = (_a = currentEntry.version) !== null && _a !== void 0 ? _a : -1;
127
+ const currentEntry = this._entries[currentIndex];
128
+ const entryVersion = (_a = currentEntry.version) !== null && _a !== void 0 ? _a : -1;
127
129
  if (entryVersion >= currVersion && sessionId === currentEntry.sessionId) {
128
130
  return;
129
131
  }
130
- log.info("DRM-PSS: Updating session info.", sessionId);
132
+ log_1.default.info("DRM-PSS: Updating session info.", sessionId);
131
133
  this._entries.splice(currentIndex, 1);
132
134
  }
133
135
  else {
134
- log.info("DRM-PSS: Add new session", sessionId);
136
+ log_1.default.info("DRM-PSS: Add new session", sessionId);
135
137
  }
136
- var storedValues = prepareValuesForStore(initData.values.getFormattedValues());
138
+ const storedValues = prepareValuesForStore(initData.values.getFormattedValues());
137
139
  if (keyIds === undefined) {
138
- this._entries.push({ version: 3, sessionId: sessionId, values: storedValues,
140
+ this._entries.push({ version: 3,
141
+ sessionId,
142
+ values: storedValues,
139
143
  initDataType: initData.type });
140
144
  }
141
145
  else {
142
- this._entries.push({ version: 4, sessionId: sessionId, keyIds: keyIds.map(function (k) { return new SerializableBytes(k); }),
146
+ this._entries.push({ version: 4,
147
+ sessionId,
148
+ keyIds: keyIds.map((k) => new serializable_bytes_1.default(k)),
143
149
  values: storedValues,
144
150
  initDataType: initData.type });
145
151
  }
146
152
  this._save();
147
- };
153
+ }
148
154
  /**
149
155
  * Delete stored MediaKeySession information based on its session id.
150
156
  * @param {string} sessionId
151
157
  */
152
- PersistentSessionsStore.prototype.delete = function (sessionId) {
153
- var index = -1;
154
- for (var i = 0; i < this._entries.length; i++) {
155
- var entry_1 = this._entries[i];
156
- if (entry_1.sessionId === sessionId) {
158
+ delete(sessionId) {
159
+ let index = -1;
160
+ for (let i = 0; i < this._entries.length; i++) {
161
+ const entry = this._entries[i];
162
+ if (entry.sessionId === sessionId) {
157
163
  index = i;
158
164
  break;
159
165
  }
160
166
  }
161
167
  if (index === -1) {
162
- log.warn("DRM-PSS: initData to delete not found.");
168
+ log_1.default.warn("DRM-PSS: initData to delete not found.");
163
169
  return;
164
170
  }
165
- var entry = this._entries[index];
166
- log.warn("DRM-PSS: Delete session from store", entry.sessionId);
171
+ const entry = this._entries[index];
172
+ log_1.default.warn("DRM-PSS: Delete session from store", entry.sessionId);
167
173
  this._entries.splice(index, 1);
168
174
  this._save();
169
- };
170
- PersistentSessionsStore.prototype.deleteOldSessions = function (sessionsToDelete) {
171
- log.info("DRM-PSS: Deleting last ".concat(sessionsToDelete, " sessions."));
175
+ }
176
+ deleteOldSessions(sessionsToDelete) {
177
+ log_1.default.info(`DRM-PSS: Deleting last ${sessionsToDelete} sessions.`);
172
178
  if (sessionsToDelete <= 0) {
173
179
  return;
174
180
  }
@@ -176,137 +182,133 @@ var PersistentSessionsStore = /** @class */ (function () {
176
182
  this._entries.splice(0, sessionsToDelete);
177
183
  }
178
184
  else {
179
- log.warn("DRM-PSS: Asked to remove more information that it contains", sessionsToDelete, this._entries.length);
185
+ log_1.default.warn("DRM-PSS: Asked to remove more information that it contains", sessionsToDelete, this._entries.length);
180
186
  this._entries = [];
181
187
  }
182
188
  this._save();
183
- };
189
+ }
184
190
  /**
185
191
  * Delete all saved entries.
186
192
  */
187
- PersistentSessionsStore.prototype.dispose = function () {
193
+ dispose() {
188
194
  this._entries = [];
189
195
  this._save();
190
- };
196
+ }
191
197
  /**
192
198
  * Retrieve index of an entry.
193
199
  * Returns `-1` if not found.
194
200
  * @param {Object} initData
195
201
  * @returns {number}
196
202
  */
197
- PersistentSessionsStore.prototype._getIndex = function (initData) {
203
+ _getIndex(initData) {
198
204
  // Older versions of the format include a concatenation of all
199
205
  // initialization data and its hash.
200
206
  // This is only computed lazily, the first time it is needed.
201
- var lazyConcatenatedData = null;
207
+ let lazyConcatenatedData = null;
202
208
  function getConcatenatedInitDataInfo() {
203
209
  if (lazyConcatenatedData === null) {
204
- var concatInitData = initData.values.constructRequestData();
210
+ const concatInitData = initData.values.constructRequestData();
205
211
  lazyConcatenatedData = { initData: concatInitData,
206
- initDataHash: hashBuffer(concatInitData) };
212
+ initDataHash: (0, hash_buffer_1.default)(concatInitData) };
207
213
  }
208
214
  return lazyConcatenatedData;
209
215
  }
210
- var _loop_1 = function (i) {
211
- var entry = this_1._entries[i];
216
+ for (let i = 0; i < this._entries.length; i++) {
217
+ const entry = this._entries[i];
212
218
  if (entry.initDataType === initData.type) {
213
219
  switch (entry.version) {
214
220
  case 4:
215
221
  if (initData.keyIds !== undefined) {
216
- var foundCompatible = initData.keyIds.every(function (keyId) {
217
- var keyIdB64 = bytesToBase64(keyId);
218
- for (var _i = 0, _a = entry.keyIds; _i < _a.length; _i++) {
219
- var entryKid = _a[_i];
222
+ const foundCompatible = initData.keyIds.every(keyId => {
223
+ const keyIdB64 = (0, base64_1.bytesToBase64)(keyId);
224
+ for (const entryKid of entry.keyIds) {
220
225
  if (typeof entryKid === "string") {
221
226
  if (keyIdB64 === entryKid) {
222
227
  return true;
223
228
  }
224
229
  }
225
- else if (areArraysOfNumbersEqual(entryKid.initData, keyId)) {
230
+ else if ((0, are_arrays_of_numbers_equal_1.default)(entryKid.initData, keyId)) {
226
231
  return true;
227
232
  }
228
233
  }
229
234
  return false;
230
235
  });
231
236
  if (foundCompatible) {
232
- return { value: i };
237
+ return i;
233
238
  }
234
239
  }
235
240
  else {
236
- var formatted_1 = initData.values.getFormattedValues();
237
- if (areInitializationValuesCompatible(formatted_1, entry.values)) {
238
- return { value: i };
241
+ const formatted = initData.values.getFormattedValues();
242
+ if ((0, are_init_values_compatible_1.default)(formatted, entry.values)) {
243
+ return i;
239
244
  }
240
245
  }
241
246
  break;
242
247
  case 3:
243
- var formatted = initData.values.getFormattedValues();
244
- if (areInitializationValuesCompatible(formatted, entry.values)) {
245
- return { value: i };
248
+ const formatted = initData.values.getFormattedValues();
249
+ if ((0, are_init_values_compatible_1.default)(formatted, entry.values)) {
250
+ return i;
246
251
  }
247
252
  break;
248
253
  case 2: {
249
- var _a = getConcatenatedInitDataInfo(), concatInitData = _a.initData, concatHash = _a.initDataHash;
254
+ const { initData: concatInitData, initDataHash: concatHash } = getConcatenatedInitDataInfo();
250
255
  if (entry.initDataHash === concatHash) {
251
256
  try {
252
- var decodedInitData = typeof entry.initData === "string" ?
253
- SerializableBytes.decode(entry.initData) :
257
+ const decodedInitData = typeof entry.initData === "string" ?
258
+ serializable_bytes_1.default.decode(entry.initData) :
254
259
  entry.initData.initData;
255
- if (areArraysOfNumbersEqual(decodedInitData, concatInitData)) {
256
- return { value: i };
260
+ if ((0, are_arrays_of_numbers_equal_1.default)(decodedInitData, concatInitData)) {
261
+ return i;
257
262
  }
258
263
  }
259
264
  catch (e) {
260
- log.warn("DRM-PSS: Could not decode initialization data.", e instanceof Error ? e : "");
265
+ log_1.default.warn("DRM-PSS: Could not decode initialization data.", e instanceof Error ? e : "");
261
266
  }
262
267
  }
263
268
  break;
264
269
  }
265
270
  case 1: {
266
- var _b = getConcatenatedInitDataInfo(), concatInitData = _b.initData, concatHash = _b.initDataHash;
271
+ const { initData: concatInitData, initDataHash: concatHash } = getConcatenatedInitDataInfo();
267
272
  if (entry.initDataHash === concatHash) {
268
273
  if (typeof entry.initData.length === "undefined") {
269
- return { value: i };
274
+ // If length is undefined, it has been linearized. We could still
275
+ // convert it back to an Uint8Array but this would necessitate some
276
+ // ugly unreadable logic for a very very minor possibility.
277
+ // Just consider that it is a match based on the hash.
278
+ return i;
270
279
  }
271
- else if (areArraysOfNumbersEqual(entry.initData, concatInitData)) {
272
- return { value: i };
280
+ else if ((0, are_arrays_of_numbers_equal_1.default)(entry.initData, concatInitData)) {
281
+ return i;
273
282
  }
274
283
  }
275
284
  break;
276
285
  }
277
286
  default: {
278
- var concatHash = getConcatenatedInitDataInfo().initDataHash;
287
+ const { initDataHash: concatHash } = getConcatenatedInitDataInfo();
279
288
  if (entry.initData === concatHash) {
280
- return { value: i };
289
+ return i;
281
290
  }
282
291
  }
283
292
  }
284
293
  }
285
- };
286
- var this_1 = this;
287
- for (var i = 0; i < this._entries.length; i++) {
288
- var state_1 = _loop_1(i);
289
- if (typeof state_1 === "object")
290
- return state_1.value;
291
294
  }
292
295
  return -1;
293
- };
296
+ }
294
297
  /**
295
298
  * Use the given storage to store the current entries.
296
299
  */
297
- PersistentSessionsStore.prototype._save = function () {
300
+ _save() {
298
301
  try {
299
302
  this._storage.save(this._entries);
300
303
  }
301
304
  catch (e) {
302
- var err = e instanceof Error ? e :
305
+ const err = e instanceof Error ? e :
303
306
  undefined;
304
- log.warn("DRM-PSS: Could not save MediaKeySession information", err);
307
+ log_1.default.warn("DRM-PSS: Could not save MediaKeySession information", err);
305
308
  }
306
- };
307
- return PersistentSessionsStore;
308
- }());
309
- export default PersistentSessionsStore;
309
+ }
310
+ }
311
+ exports.default = PersistentSessionsStore;
310
312
  /**
311
313
  * Format given initializationData's values so they are ready to be stored:
312
314
  * - sort them by systemId, so they are faster to compare
@@ -316,8 +318,7 @@ export default PersistentSessionsStore;
316
318
  */
317
319
  function prepareValuesForStore(initialValues) {
318
320
  return initialValues
319
- .map(function (_a) {
320
- var systemId = _a.systemId, data = _a.data, hash = _a.hash;
321
- return ({ systemId: systemId, hash: hash, data: new SerializableBytes(data) });
322
- });
321
+ .map(({ systemId, data, hash }) => ({ systemId,
322
+ hash,
323
+ data: new serializable_bytes_1.default(data) }));
323
324
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,15 +14,16 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { base64ToBytes, bytesToBase64, } from "../../../utils/base64";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const base64_1 = require("../../../utils/base64");
17
19
  /** Wrap byte-based data and allow serialization of it into base64. */
18
- var SerializableBytes = /** @class */ (function () {
20
+ class SerializableBytes {
19
21
  /**
20
22
  * Create a new `SerializableBytes`, wrapping the initialization data
21
23
  * given and allowing serialization into base64.
22
24
  * @param {Uint8Array}
23
25
  */
24
- function SerializableBytes(initData) {
26
+ constructor(initData) {
25
27
  this.initData = initData;
26
28
  }
27
29
  /**
@@ -31,18 +33,17 @@ var SerializableBytes = /** @class */ (function () {
31
33
  * https://tc39.es/ecma262/#sec-serializejsonproperty
32
34
  * @returns {string}
33
35
  */
34
- SerializableBytes.prototype.toJSON = function () {
35
- return bytesToBase64(this.initData);
36
- };
36
+ toJSON() {
37
+ return (0, base64_1.bytesToBase64)(this.initData);
38
+ }
37
39
  /**
38
40
  * Decode a base64 sequence representing an initialization data back to an
39
41
  * Uint8Array.
40
42
  * @param {string}
41
43
  * @returns {Uint8Array}
42
44
  */
43
- SerializableBytes.decode = function (base64) {
44
- return base64ToBytes(base64);
45
- };
46
- return SerializableBytes;
47
- }());
48
- export default SerializableBytes;
45
+ static decode(base64) {
46
+ return (0, base64_1.base64ToBytes)(base64);
47
+ }
48
+ }
49
+ exports.default = SerializableBytes;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,8 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import hashBuffer from "../../../utils/hash_buffer";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const hash_buffer_1 = require("../../../utils/hash_buffer");
17
19
  /**
18
20
  * Keep track of server certificate which have been set for a MediaKeys.
19
21
  * As it is impossible for a MediaKeys to have his server certificate reset
@@ -27,9 +29,9 @@ import hashBuffer from "../../../utils/hash_buffer";
27
29
  * certificate is attached to a MediaKeys instance (most likely because related
28
30
  * EME APIs failed or had an unexpected behavior).
29
31
  */
30
- var serverCertificateHashesMap = new WeakMap();
32
+ const serverCertificateHashesMap = new WeakMap();
31
33
  /** ServerCertificateStore */
32
- export default {
34
+ exports.default = {
33
35
  /**
34
36
  * Tells the ServerCertificateStore that you begin to call the APIs to set a
35
37
  * ServerCertificate on `mediaKeys`.
@@ -42,7 +44,7 @@ export default {
42
44
  * server certificate attached to this MediaKeys is for now invalid.
43
45
  * @param {MediaKeys | Object} mediaKeys
44
46
  */
45
- prepare: function (mediaKeys) {
47
+ prepare(mediaKeys) {
46
48
  serverCertificateHashesMap.set(mediaKeys, null);
47
49
  },
48
50
  /**
@@ -56,13 +58,13 @@ export default {
56
58
  * @param {MediaKeys | Object} mediaKeys
57
59
  * @param {ArrayBufferView | BufferSource} serverCertificate
58
60
  */
59
- set: function (mediaKeys, serverCertificate) {
60
- var formattedServerCertificate = serverCertificate instanceof Uint8Array ?
61
+ set(mediaKeys, serverCertificate) {
62
+ const formattedServerCertificate = serverCertificate instanceof Uint8Array ?
61
63
  serverCertificate :
62
64
  new Uint8Array(serverCertificate instanceof ArrayBuffer ? serverCertificate :
63
65
  serverCertificate.buffer);
64
- var hash = hashBuffer(formattedServerCertificate);
65
- serverCertificateHashesMap.set(mediaKeys, { hash: hash, serverCertificate: formattedServerCertificate });
66
+ const hash = (0, hash_buffer_1.default)(formattedServerCertificate);
67
+ serverCertificateHashesMap.set(mediaKeys, { hash, serverCertificate: formattedServerCertificate });
66
68
  },
67
69
  /**
68
70
  * Returns `true` if the MediaKeys instance has an attached ServerCertificate.
@@ -73,8 +75,8 @@ export default {
73
75
  * @param {MediaKeys} mediaKeys
74
76
  * @returns {Boolean|undefined}
75
77
  */
76
- hasOne: function (mediaKeys) {
77
- var currentServerCertificate = serverCertificateHashesMap.get(mediaKeys);
78
+ hasOne(mediaKeys) {
79
+ const currentServerCertificate = serverCertificateHashesMap.get(mediaKeys);
78
80
  return currentServerCertificate === undefined ? false :
79
81
  currentServerCertificate === null ? undefined :
80
82
  true;
@@ -87,22 +89,22 @@ export default {
87
89
  * @param {ArrayBufferView | BufferSource} serverCertificate
88
90
  * @returns {boolean}
89
91
  */
90
- has: function (mediaKeys, serverCertificate) {
91
- var serverCertificateHash = serverCertificateHashesMap.get(mediaKeys);
92
+ has(mediaKeys, serverCertificate) {
93
+ const serverCertificateHash = serverCertificateHashesMap.get(mediaKeys);
92
94
  if (serverCertificateHash === undefined || serverCertificateHash === null) {
93
95
  return false;
94
96
  }
95
- var oldHash = serverCertificateHash.hash, oldServerCertificate = serverCertificateHash.serverCertificate;
96
- var newServerCertificate = serverCertificate instanceof Uint8Array ?
97
+ const { hash: oldHash, serverCertificate: oldServerCertificate } = serverCertificateHash;
98
+ const newServerCertificate = serverCertificate instanceof Uint8Array ?
97
99
  serverCertificate :
98
100
  new Uint8Array(serverCertificate instanceof ArrayBuffer ? serverCertificate :
99
101
  serverCertificate.buffer);
100
- var newHash = hashBuffer(newServerCertificate);
102
+ const newHash = (0, hash_buffer_1.default)(newServerCertificate);
101
103
  if (newHash !== oldHash ||
102
104
  oldServerCertificate.length !== newServerCertificate.length) {
103
105
  return false;
104
106
  }
105
- for (var i = 0; i < oldServerCertificate.length; i++) {
107
+ for (let i = 0; i < oldServerCertificate.length; i++) {
106
108
  if (oldServerCertificate[i] !== newServerCertificate[i]) {
107
109
  return false;
108
110
  }