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,13 +14,15 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import globalScope from "../compat/global_scope";
17
- import log from "../log";
18
- import assert from "./assert";
19
- var hasTextDecoder = typeof globalScope === "object" &&
20
- typeof globalScope.TextDecoder === "function";
21
- var hasTextEncoder = typeof globalScope === "object" &&
22
- typeof globalScope.TextEncoder === "function";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.readNullTerminatedString = exports.guidToUuid = exports.beUtf16ToStr = exports.strToBeUtf16 = exports.utf16LEToStr = exports.strToUtf16LE = exports.utf8ToStr = exports.strToUtf8 = exports.hexToBytes = exports.bytesToHex = void 0;
19
+ const global_scope_1 = require("../compat/global_scope");
20
+ const log_1 = require("../log");
21
+ const assert_1 = require("./assert");
22
+ const hasTextDecoder = typeof global_scope_1.default === "object" &&
23
+ typeof global_scope_1.default.TextDecoder === "function";
24
+ const hasTextEncoder = typeof global_scope_1.default === "object" &&
25
+ typeof global_scope_1.default.TextEncoder === "function";
23
26
  /**
24
27
  * Convert a string to an Uint8Array containing the corresponding UTF-16 code
25
28
  * units in little-endian.
@@ -27,15 +30,16 @@ var hasTextEncoder = typeof globalScope === "object" &&
27
30
  * @returns {Uint8Array}
28
31
  */
29
32
  function strToUtf16LE(str) {
30
- var buffer = new ArrayBuffer(str.length * 2);
31
- var res = new Uint8Array(buffer);
32
- for (var i = 0; i < res.length; i += 2) {
33
- var value = str.charCodeAt(i / 2);
33
+ const buffer = new ArrayBuffer(str.length * 2);
34
+ const res = new Uint8Array(buffer);
35
+ for (let i = 0; i < res.length; i += 2) {
36
+ const value = str.charCodeAt(i / 2);
34
37
  res[i] = value & 0xFF;
35
38
  res[i + 1] = value >> 8 & 0xFF;
36
39
  }
37
40
  return res;
38
41
  }
42
+ exports.strToUtf16LE = strToUtf16LE;
39
43
  /**
40
44
  * Convert a string to an Uint8Array containing the corresponding UTF-16 code
41
45
  * units in little-endian.
@@ -43,15 +47,16 @@ function strToUtf16LE(str) {
43
47
  * @returns {Uint8Array}
44
48
  */
45
49
  function strToBeUtf16(str) {
46
- var buffer = new ArrayBuffer(str.length * 2);
47
- var res = new Uint8Array(buffer);
48
- for (var i = 0; i < res.length; i += 2) {
49
- var value = str.charCodeAt(i / 2);
50
+ const buffer = new ArrayBuffer(str.length * 2);
51
+ const res = new Uint8Array(buffer);
52
+ for (let i = 0; i < res.length; i += 2) {
53
+ const value = str.charCodeAt(i / 2);
50
54
  res[i + 1] = value & 0xFF;
51
55
  res[i] = value >> 8 & 0xFF;
52
56
  }
53
57
  return res;
54
58
  }
59
+ exports.strToBeUtf16 = strToBeUtf16;
55
60
  /**
56
61
  * Construct string from the little-endian UTF-16 code units given.
57
62
  * @param {Uint8Array} bytes
@@ -61,21 +66,22 @@ function utf16LEToStr(bytes) {
61
66
  if (hasTextDecoder) {
62
67
  try {
63
68
  // instanciation throws if the encoding is unsupported
64
- var decoder = new TextDecoder("utf-16le");
69
+ const decoder = new TextDecoder("utf-16le");
65
70
  return decoder.decode(bytes);
66
71
  }
67
72
  catch (e) {
68
- var err = e instanceof Error ? e : "";
69
- log.warn("Utils: could not use TextDecoder to parse UTF-16LE, " +
73
+ const err = e instanceof Error ? e : "";
74
+ log_1.default.warn("Utils: could not use TextDecoder to parse UTF-16LE, " +
70
75
  "fallbacking to another implementation", err);
71
76
  }
72
77
  }
73
- var str = "";
74
- for (var i = 0; i < bytes.length; i += 2) {
78
+ let str = "";
79
+ for (let i = 0; i < bytes.length; i += 2) {
75
80
  str += String.fromCharCode((bytes[i + 1] << 8) + bytes[i]);
76
81
  }
77
82
  return str;
78
83
  }
84
+ exports.utf16LEToStr = utf16LEToStr;
79
85
  /**
80
86
  * Construct string from the little-endian UTF-16 code units given.
81
87
  * @param {Uint8Array} bytes
@@ -85,21 +91,22 @@ function beUtf16ToStr(bytes) {
85
91
  if (hasTextDecoder) {
86
92
  try {
87
93
  // instanciation throws if the encoding is unsupported
88
- var decoder = new TextDecoder("utf-16be");
94
+ const decoder = new TextDecoder("utf-16be");
89
95
  return decoder.decode(bytes);
90
96
  }
91
97
  catch (e) {
92
- var err = e instanceof Error ? e : "";
93
- log.warn("Utils: could not use TextDecoder to parse UTF-16BE, " +
98
+ const err = e instanceof Error ? e : "";
99
+ log_1.default.warn("Utils: could not use TextDecoder to parse UTF-16BE, " +
94
100
  "fallbacking to another implementation", err);
95
101
  }
96
102
  }
97
- var str = "";
98
- for (var i = 0; i < bytes.length; i += 2) {
103
+ let str = "";
104
+ for (let i = 0; i < bytes.length; i += 2) {
99
105
  str += String.fromCharCode((bytes[i] << 8) + bytes[i + 1]);
100
106
  }
101
107
  return str;
102
108
  }
109
+ exports.beUtf16ToStr = beUtf16ToStr;
103
110
  /**
104
111
  * Convert a string to an Uint8Array containing the corresponding UTF-8 code
105
112
  * units.
@@ -109,12 +116,12 @@ function beUtf16ToStr(bytes) {
109
116
  function strToUtf8(str) {
110
117
  if (hasTextEncoder) {
111
118
  try {
112
- var encoder = new TextEncoder();
119
+ const encoder = new TextEncoder();
113
120
  return encoder.encode(str);
114
121
  }
115
122
  catch (e) {
116
- var err = e instanceof Error ? e : "";
117
- log.warn("Utils: could not use TextEncoder to encode string into UTF-8, " +
123
+ const err = e instanceof Error ? e : "";
124
+ log_1.default.warn("Utils: could not use TextEncoder to encode string into UTF-8, " +
118
125
  "fallbacking to another implementation", err);
119
126
  }
120
127
  }
@@ -146,8 +153,8 @@ function strToUtf8(str) {
146
153
  // By iterating on the resulting string, we will then be able to generate a
147
154
  // Uint8Array containing the UTF-8 representation of that original string, by
148
155
  // just calling the charCodeAt API on it.
149
- var utf8Str;
150
- var pcStr = encodeURIComponent(str);
156
+ let utf8Str;
157
+ const pcStr = encodeURIComponent(str);
151
158
  // As "unescape" is a deprecated function we want to declare a fallback in the
152
159
  // case a browser decide to not implement it.
153
160
  if (typeof unescape === "function") {
@@ -156,11 +163,11 @@ function strToUtf8(str) {
156
163
  else {
157
164
  // Let's implement a simple unescape function (got to admit it was for the challenge)
158
165
  // http://ecma-international.org/ecma-262/9.0/#sec-unescape-string
159
- var isHexChar = /[0-9a-fA-F]/;
160
- var pcStrLen = pcStr.length;
166
+ const isHexChar = /[0-9a-fA-F]/;
167
+ const pcStrLen = pcStr.length;
161
168
  utf8Str = "";
162
- for (var i = 0; i < pcStr.length; i++) {
163
- var wasPercentEncoded = false;
169
+ for (let i = 0; i < pcStr.length; i++) {
170
+ let wasPercentEncoded = false;
164
171
  if (pcStr[i] === "%") {
165
172
  if (i <= pcStrLen - 6 &&
166
173
  pcStr[i + 1] === "u" &&
@@ -168,7 +175,7 @@ function strToUtf8(str) {
168
175
  isHexChar.test(pcStr[i + 3]) &&
169
176
  isHexChar.test(pcStr[i + 4]) &&
170
177
  isHexChar.test(pcStr[i + 5])) {
171
- var charCode = parseInt(pcStr.substring(i + 1, i + 6), 16);
178
+ const charCode = parseInt(pcStr.substring(i + 1, i + 6), 16);
172
179
  utf8Str += String.fromCharCode(charCode);
173
180
  wasPercentEncoded = true;
174
181
  i += 5; // Skip the next 5 chars
@@ -176,7 +183,7 @@ function strToUtf8(str) {
176
183
  else if (i <= pcStrLen - 3 &&
177
184
  isHexChar.test(pcStr[i + 1]) &&
178
185
  isHexChar.test(pcStr[i + 2])) {
179
- var charCode = parseInt(pcStr.substring(i + 1, i + 3), 16);
186
+ const charCode = parseInt(pcStr.substring(i + 1, i + 3), 16);
180
187
  utf8Str += String.fromCharCode(charCode);
181
188
  wasPercentEncoded = true;
182
189
  i += 2; // Skip the next 2 chars
@@ -189,22 +196,23 @@ function strToUtf8(str) {
189
196
  }
190
197
  // Now let's just build our array from every other bytes of that string's
191
198
  // UTF-16 representation
192
- var res = new Uint8Array(utf8Str.length);
193
- for (var i = 0; i < utf8Str.length; i++) {
199
+ const res = new Uint8Array(utf8Str.length);
200
+ for (let i = 0; i < utf8Str.length; i++) {
194
201
  res[i] = utf8Str.charCodeAt(i) & 0xFF; // first byte should be 0x00 anyway
195
202
  }
196
203
  return res;
197
204
  }
205
+ exports.strToUtf8 = strToUtf8;
198
206
  /**
199
207
  * Creates a new string from the given array of char codes.
200
208
  * @param {Uint8Array} args
201
209
  * @returns {string}
202
210
  */
203
211
  function stringFromCharCodes(args) {
204
- var max = 16000;
205
- var ret = "";
206
- for (var i = 0; i < args.length; i += max) {
207
- var subArray = args.subarray(i, i + max);
212
+ const max = 16000;
213
+ let ret = "";
214
+ for (let i = 0; i < args.length; i += max) {
215
+ const subArray = args.subarray(i, i + max);
208
216
  // NOTE: ugly I know, but TS is problematic here (you can try)
209
217
  ret += String.fromCharCode.apply(null, subArray);
210
218
  }
@@ -227,7 +235,7 @@ function stringFromCharCodes(args) {
227
235
  * @returns {string}
228
236
  */
229
237
  function intToHex(num, size) {
230
- var toStr = num.toString(16);
238
+ const toStr = num.toString(16);
231
239
  return toStr.length >= size ? toStr :
232
240
  new Array(size - toStr.length + 1).join("0") + toStr;
233
241
  }
@@ -240,16 +248,16 @@ function utf8ToStr(data) {
240
248
  if (hasTextDecoder) {
241
249
  try {
242
250
  // TextDecoder use UTF-8 by default
243
- var decoder = new TextDecoder();
251
+ const decoder = new TextDecoder();
244
252
  return decoder.decode(data);
245
253
  }
246
254
  catch (e) {
247
- var err = e instanceof Error ? e : "";
248
- log.warn("Utils: could not use TextDecoder to parse UTF-8, " +
255
+ const err = e instanceof Error ? e : "";
256
+ log_1.default.warn("Utils: could not use TextDecoder to parse UTF-8, " +
249
257
  "fallbacking to another implementation", err);
250
258
  }
251
259
  }
252
- var uint8 = data;
260
+ let uint8 = data;
253
261
  // If present, strip off the UTF-8 BOM.
254
262
  if (uint8[0] === 0xEF && uint8[1] === 0xBB && uint8[2] === 0xBF) {
255
263
  uint8 = uint8.subarray(3);
@@ -257,8 +265,8 @@ function utf8ToStr(data) {
257
265
  // We're basically doing strToUtf8 in reverse.
258
266
  // You can look at that other function for the whole story.
259
267
  // Generate string containing escaped UTF-8 code units
260
- var utf8Str = stringFromCharCodes(uint8);
261
- var escaped;
268
+ const utf8Str = stringFromCharCodes(uint8);
269
+ let escaped;
262
270
  if (typeof escape === "function") {
263
271
  // Transform UTF-8 escape sequence into percent-encoded escape sequences.
264
272
  escaped = escape(utf8Str);
@@ -266,14 +274,14 @@ function utf8ToStr(data) {
266
274
  else {
267
275
  // Let's implement a simple escape function
268
276
  // http://ecma-international.org/ecma-262/9.0/#sec-escape-string
269
- var nonEscapedChar = /[A-Za-z0-9*_\+-\.\/]/;
277
+ const nonEscapedChar = /[A-Za-z0-9*_\+-\.\/]/;
270
278
  escaped = "";
271
- for (var i = 0; i < utf8Str.length; i++) {
279
+ for (let i = 0; i < utf8Str.length; i++) {
272
280
  if (nonEscapedChar.test(utf8Str[i])) {
273
281
  escaped += utf8Str[i];
274
282
  }
275
283
  else {
276
- var charCode = utf8Str.charCodeAt(i);
284
+ const charCode = utf8Str.charCodeAt(i);
277
285
  escaped += charCode >= 256 ? "%u" + intToHex(charCode, 4) :
278
286
  "%" + intToHex(charCode, 2);
279
287
  }
@@ -283,6 +291,7 @@ function utf8ToStr(data) {
283
291
  // Example: "g#%E3%82%AC" -> "g#€"
284
292
  return decodeURIComponent(escaped);
285
293
  }
294
+ exports.utf8ToStr = utf8ToStr;
286
295
  /**
287
296
  * Convert hex codes in a string form into the corresponding bytes.
288
297
  * @param {string} str
@@ -290,13 +299,14 @@ function utf8ToStr(data) {
290
299
  * @throws TypeError - str.length is odd
291
300
  */
292
301
  function hexToBytes(str) {
293
- var len = str.length;
294
- var arr = new Uint8Array(len / 2);
295
- for (var i = 0, j = 0; i < len; i += 2, j++) {
302
+ const len = str.length;
303
+ const arr = new Uint8Array(len / 2);
304
+ for (let i = 0, j = 0; i < len; i += 2, j++) {
296
305
  arr[j] = parseInt(str.substring(i, i + 2), 16) & 0xFF;
297
306
  }
298
307
  return arr;
299
308
  }
309
+ exports.hexToBytes = hexToBytes;
300
310
  /**
301
311
  * Convert bytes into the corresponding hex string, with the possibility
302
312
  * to add a separator.
@@ -304,10 +314,9 @@ function hexToBytes(str) {
304
314
  * @param {string} [sep=""] - separator. Separate each two hex character.
305
315
  * @returns {string}
306
316
  */
307
- function bytesToHex(bytes, sep) {
308
- if (sep === void 0) { sep = ""; }
309
- var hex = "";
310
- for (var i = 0; i < bytes.byteLength; i++) {
317
+ function bytesToHex(bytes, sep = "") {
318
+ let hex = "";
319
+ for (let i = 0; i < bytes.byteLength; i++) {
311
320
  hex += (bytes[i] >>> 4).toString(16);
312
321
  hex += (bytes[i] & 0xF).toString(16);
313
322
  if (sep.length > 0 && i < bytes.byteLength - 1) {
@@ -316,6 +325,7 @@ function bytesToHex(bytes, sep) {
316
325
  }
317
326
  return hex;
318
327
  }
328
+ exports.bytesToHex = bytesToHex;
319
329
  /**
320
330
  * Convert little-endian GUID into big-endian UUID.
321
331
  * @param {Uint8Array} guid
@@ -323,16 +333,16 @@ function bytesToHex(bytes, sep) {
323
333
  * @throws AssertionError - The guid length is not 16
324
334
  */
325
335
  function guidToUuid(guid) {
326
- assert(guid.length === 16, "GUID length should be 16");
327
- var p1A = guid[0];
328
- var p1B = guid[1];
329
- var p1C = guid[2];
330
- var p1D = guid[3];
331
- var p2A = guid[4];
332
- var p2B = guid[5];
333
- var p3A = guid[6];
334
- var p3B = guid[7];
335
- var uuid = new Uint8Array(16);
336
+ (0, assert_1.default)(guid.length === 16, "GUID length should be 16");
337
+ const p1A = guid[0];
338
+ const p1B = guid[1];
339
+ const p1C = guid[2];
340
+ const p1D = guid[3];
341
+ const p2A = guid[4];
342
+ const p2B = guid[5];
343
+ const p3A = guid[6];
344
+ const p3B = guid[7];
345
+ const uuid = new Uint8Array(16);
336
346
  // swapping byte endian on 4 bytes
337
347
  // [1, 2, 3, 4] => [4, 3, 2, 1]
338
348
  uuid[0] = p1D;
@@ -350,6 +360,7 @@ function guidToUuid(guid) {
350
360
  uuid.set(guid.subarray(8, 16), 8);
351
361
  return uuid;
352
362
  }
363
+ exports.guidToUuid = guidToUuid;
353
364
  /**
354
365
  * Decode string from bytes (UTF-8).
355
366
  * Keeps reading until it reaches a byte that equals to zero.
@@ -358,16 +369,16 @@ function guidToUuid(guid) {
358
369
  * @returns {Object}
359
370
  */
360
371
  function readNullTerminatedString(buffer, offset) {
361
- var position = offset;
372
+ let position = offset;
362
373
  while (position < buffer.length) {
363
- var value = buffer[position];
374
+ const value = buffer[position];
364
375
  if (value === 0) {
365
376
  break;
366
377
  }
367
378
  position += 1;
368
379
  }
369
- var bytes = buffer.subarray(offset, position);
380
+ const bytes = buffer.subarray(offset, position);
370
381
  return { end: position + 1,
371
382
  string: utf8ToStr(bytes) };
372
383
  }
373
- export { bytesToHex, hexToBytes, strToUtf8, utf8ToStr, strToUtf16LE, utf16LEToStr, strToBeUtf16, beUtf16ToStr, guidToUuid, readNullTerminatedString, };
384
+ exports.readNullTerminatedString = readNullTerminatedString;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,20 +14,18 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import isNullOrUndefined from "./is_null_or_undefined";
17
- export default function takeFirstSet() {
18
- var args = [];
19
- for (var _i = 0; _i < arguments.length; _i++) {
20
- args[_i] = arguments[_i];
21
- }
22
- var i = 0;
23
- var len = args.length;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const is_null_or_undefined_1 = require("./is_null_or_undefined");
19
+ function takeFirstSet(...args) {
20
+ let i = 0;
21
+ const len = args.length;
24
22
  while (i < len) {
25
- var arg = args[i];
26
- if (!isNullOrUndefined(arg)) {
23
+ const arg = args[i];
24
+ if (!(0, is_null_or_undefined_1.default)(arg)) {
27
25
  return arg;
28
26
  }
29
27
  i++;
30
28
  }
31
29
  return undefined;
32
30
  }
31
+ exports.default = takeFirstSet;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,24 +14,11 @@
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 log from "../log";
32
- import assert from "./assert";
33
- import noop from "./noop";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CancellationError = exports.CancellationSignal = void 0;
19
+ const log_1 = require("../log");
20
+ const assert_1 = require("./assert");
21
+ const noop_1 = require("./noop");
34
22
  /**
35
23
  * Class facilitating asynchronous task cancellation.
36
24
  *
@@ -128,14 +116,14 @@ import noop from "./noop";
128
116
  * ```
129
117
  * @class TaskCanceller
130
118
  */
131
- var TaskCanceller = /** @class */ (function () {
119
+ class TaskCanceller {
132
120
  /**
133
121
  * Creates a new `TaskCanceller`, with its own `CancellationSignal` created
134
122
  * as its `signal` provide.
135
123
  * You can then pass this property to async task you wish to be cancellable.
136
124
  */
137
- function TaskCanceller() {
138
- var _a = createCancellationFunctions(), trigger = _a[0], register = _a[1];
125
+ constructor() {
126
+ const [trigger, register] = createCancellationFunctions();
139
127
  this._isUsed = false;
140
128
  this._trigger = trigger;
141
129
  this.signal = new CancellationSignal(register);
@@ -144,9 +132,9 @@ var TaskCanceller = /** @class */ (function () {
144
132
  * Returns `true` if this `TaskCanceller` has already been triggered.
145
133
  * `false` otherwise.
146
134
  */
147
- TaskCanceller.prototype.isUsed = function () {
135
+ isUsed() {
148
136
  return this._isUsed;
149
- };
137
+ }
150
138
  /**
151
139
  * Bind this `TaskCanceller` to a `CancellationSignal`, so the former
152
140
  * is automatically cancelled when the latter is triggered.
@@ -161,14 +149,13 @@ var TaskCanceller = /** @class */ (function () {
161
149
  * @param {Object} signal
162
150
  * @returns {Function}
163
151
  */
164
- TaskCanceller.prototype.linkToSignal = function (signal) {
165
- var _this = this;
166
- var unregister = signal.register(function () {
167
- _this.cancel();
152
+ linkToSignal(signal) {
153
+ const unregister = signal.register(() => {
154
+ this.cancel();
168
155
  });
169
156
  this.signal.register(unregister);
170
157
  return unregister;
171
- };
158
+ }
172
159
  /**
173
160
  * "Trigger" the `TaskCanceller`, notify through its associated
174
161
  * `CancellationSignal` (its `signal` property) that a task should be aborted.
@@ -180,14 +167,14 @@ var TaskCanceller = /** @class */ (function () {
180
167
  * cancellation.
181
168
  * @param {Error} [srcError]
182
169
  */
183
- TaskCanceller.prototype.cancel = function (srcError) {
170
+ cancel(srcError) {
184
171
  if (this._isUsed) {
185
172
  return;
186
173
  }
187
174
  this._isUsed = true;
188
- var cancellationError = srcError !== null && srcError !== void 0 ? srcError : new CancellationError();
175
+ const cancellationError = srcError !== null && srcError !== void 0 ? srcError : new CancellationError();
189
176
  this._trigger(cancellationError);
190
- };
177
+ }
191
178
  /**
192
179
  * Check that the `error` in argument is a `CancellationError`, most likely
193
180
  * meaning that the linked error is due to a task aborted via a
@@ -195,38 +182,36 @@ var TaskCanceller = /** @class */ (function () {
195
182
  * @param {*} error
196
183
  * @returns {boolean}
197
184
  */
198
- TaskCanceller.isCancellationError = function (error) {
185
+ static isCancellationError(error) {
199
186
  return error instanceof CancellationError;
200
- };
201
- return TaskCanceller;
202
- }());
203
- export default TaskCanceller;
187
+ }
188
+ }
189
+ exports.default = TaskCanceller;
204
190
  /**
205
191
  * Signal allowing to be notified when the linked task needs to be aborted.
206
192
  * @class
207
193
  */
208
- var CancellationSignal = /** @class */ (function () {
194
+ class CancellationSignal {
209
195
  /**
210
196
  * Creates a new CancellationSignal.
211
197
  * /!\ Note: Only a `TaskCanceller` is supposed to be able to create one.
212
198
  * @param {Function} registerToSource - Function called when the task is
213
199
  * cancelled.
214
200
  */
215
- function CancellationSignal(registerToSource) {
216
- var _this = this;
201
+ constructor(registerToSource) {
217
202
  this._isCancelled = false;
218
203
  this.cancellationError = null;
219
204
  this._listeners = [];
220
- registerToSource(function (cancellationError) {
221
- _this.cancellationError = cancellationError;
222
- _this._isCancelled = true;
223
- while (_this._listeners.length > 0) {
205
+ registerToSource((cancellationError) => {
206
+ this.cancellationError = cancellationError;
207
+ this._isCancelled = true;
208
+ while (this._listeners.length > 0) {
224
209
  try {
225
- var listener = _this._listeners.pop();
210
+ const listener = this._listeners.pop();
226
211
  listener === null || listener === void 0 ? void 0 : listener(cancellationError);
227
212
  }
228
213
  catch (err) {
229
- log.error("Error while calling clean up listener", err instanceof Error ? err.toString() :
214
+ log_1.default.error("Error while calling clean up listener", err instanceof Error ? err.toString() :
230
215
  "Unknown error");
231
216
  }
232
217
  }
@@ -237,9 +222,9 @@ var CancellationSignal = /** @class */ (function () {
237
222
  * that the linked task needs to be aborted.
238
223
  * @returns boolean
239
224
  */
240
- CancellationSignal.prototype.isCancelled = function () {
225
+ isCancelled() {
241
226
  return this._isCancelled;
242
- };
227
+ }
243
228
  /**
244
229
  * Registers a function that will be called when/if the current task is
245
230
  * cancelled.
@@ -261,16 +246,15 @@ var CancellationSignal = /** @class */ (function () {
261
246
  * You don't need to call that function when cancellation has already been
262
247
  * performed.
263
248
  */
264
- CancellationSignal.prototype.register = function (fn) {
265
- var _this = this;
249
+ register(fn) {
266
250
  if (this._isCancelled) {
267
- assert(this.cancellationError !== null);
251
+ (0, assert_1.default)(this.cancellationError !== null);
268
252
  fn(this.cancellationError);
269
- return noop;
253
+ return noop_1.default;
270
254
  }
271
255
  this._listeners.push(fn);
272
- return function () { return _this.deregister(fn); };
273
- };
256
+ return () => this.deregister(fn);
257
+ }
274
258
  /**
275
259
  * De-register a function registered through the `register` function.
276
260
  * Do nothing if that function wasn't registered.
@@ -279,41 +263,37 @@ var CancellationSignal = /** @class */ (function () {
279
263
  * practical.
280
264
  * @param {Function} fn
281
265
  */
282
- CancellationSignal.prototype.deregister = function (fn) {
283
- for (var i = this._listeners.length - 1; i >= 0; i--) {
266
+ deregister(fn) {
267
+ for (let i = this._listeners.length - 1; i >= 0; i--) {
284
268
  if (this._listeners[i] === fn) {
285
269
  this._listeners.splice(i, 1);
286
270
  }
287
271
  }
288
- };
289
- return CancellationSignal;
290
- }());
291
- export { CancellationSignal };
272
+ }
273
+ }
274
+ exports.CancellationSignal = CancellationSignal;
292
275
  /**
293
276
  * Error created when a task is cancelled.
294
277
  * @class CancellationError
295
278
  * @extends Error
296
279
  */
297
- var CancellationError = /** @class */ (function (_super) {
298
- __extends(CancellationError, _super);
299
- function CancellationError() {
300
- var _this = _super.call(this) || this;
280
+ class CancellationError extends Error {
281
+ constructor() {
282
+ super();
301
283
  // @see https://stackoverflow.com/questions/41102060/typescript-extending-error-class
302
- Object.setPrototypeOf(_this, CancellationError.prototype);
303
- _this.name = "CancellationError";
304
- _this.message = "This task was cancelled.";
305
- return _this;
284
+ Object.setPrototypeOf(this, CancellationError.prototype);
285
+ this.name = "CancellationError";
286
+ this.message = "This task was cancelled.";
306
287
  }
307
- return CancellationError;
308
- }(Error));
309
- export { CancellationError };
288
+ }
289
+ exports.CancellationError = CancellationError;
310
290
  /**
311
291
  * Helper function allowing communication between a `TaskCanceller` and a
312
292
  * `CancellationSignal`.
313
293
  * @returns {Array.<Function>}
314
294
  */
315
295
  function createCancellationFunctions() {
316
- var listener = noop;
296
+ let listener = noop_1.default;
317
297
  return [
318
298
  function trigger(error) {
319
299
  listener(error);