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,14 +14,15 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import getTimeDelimiters from "../get_time_delimiters";
17
- import createElement from "./create_element";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const get_time_delimiters_1 = require("../get_time_delimiters");
19
+ const create_element_1 = require("./create_element");
18
20
  /**
19
21
  * @param {Object} parsedCue
20
22
  * @returns {Object|null}
21
23
  */
22
- export default function parseCue(parsedCue) {
23
- var paragraph = parsedCue.paragraph, ttParams = parsedCue.ttParams, body = parsedCue.body, regionStyles = parsedCue.regionStyles, idStyles = parsedCue.idStyles, paragraphStyle = parsedCue.paragraphStyle, timeOffset = parsedCue.timeOffset, shouldTrimWhiteSpace = parsedCue.shouldTrimWhiteSpace;
24
+ function parseCue(parsedCue) {
25
+ const { paragraph, ttParams, body, regionStyles, idStyles, paragraphStyle, timeOffset, shouldTrimWhiteSpace, } = parsedCue;
24
26
  // Disregard empty elements:
25
27
  // TTML allows for empty elements like <div></div>.
26
28
  // If paragraph has neither time attributes, nor
@@ -30,9 +32,11 @@ export default function parseCue(parsedCue) {
30
32
  /^\s*$/.test(paragraph.textContent === null ? "" : paragraph.textContent)) {
31
33
  return null;
32
34
  }
33
- var cellResolution = ttParams.cellResolution;
34
- var _a = getTimeDelimiters(paragraph, ttParams), start = _a.start, end = _a.end;
35
- var element = createElement(paragraph, body, regionStyles, idStyles, paragraphStyle, { cellResolution: cellResolution, shouldTrimWhiteSpace: shouldTrimWhiteSpace });
35
+ const { cellResolution } = ttParams;
36
+ const { start, end } = (0, get_time_delimiters_1.default)(paragraph, ttParams);
37
+ const element = (0, create_element_1.default)(paragraph, body, regionStyles, idStyles, paragraphStyle, { cellResolution, shouldTrimWhiteSpace });
36
38
  return { start: start + timeOffset,
37
- end: end + timeOffset, element: element };
39
+ end: end + timeOffset,
40
+ element };
38
41
  }
42
+ exports.default = parseCue;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import parseTtml from "../parse_ttml";
17
- import { applyDefaultTTMLStyle, shouldApplyDefaultTTMLStyle, } from "./apply_default_ttml_paragraph_style";
18
- import parseCue from "./parse_cue";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const parse_ttml_1 = require("../parse_ttml");
19
+ const apply_default_ttml_paragraph_style_1 = require("./apply_default_ttml_paragraph_style");
20
+ const parse_cue_1 = require("./parse_cue");
19
21
  /**
20
22
  * Create array of objects which should represent the given TTML text track.
21
23
  * These objects have the following structure
@@ -33,18 +35,19 @@ import parseCue from "./parse_cue";
33
35
  * @param {string} str
34
36
  * @param {number} timeOffset
35
37
  */
36
- export default function parseTTMLToDiv(str, timeOffset) {
37
- var parsedCues = parseTtml(str, timeOffset);
38
- var cues = [];
39
- for (var i = 0; i < parsedCues.length; i++) {
40
- var paragraphStyle = parsedCues[i].paragraphStyle;
41
- if (shouldApplyDefaultTTMLStyle(paragraphStyle)) {
42
- applyDefaultTTMLStyle(paragraphStyle);
38
+ function parseTTMLToDiv(str, timeOffset) {
39
+ const parsedCues = (0, parse_ttml_1.default)(str, timeOffset);
40
+ const cues = [];
41
+ for (let i = 0; i < parsedCues.length; i++) {
42
+ const { paragraphStyle } = parsedCues[i];
43
+ if ((0, apply_default_ttml_paragraph_style_1.shouldApplyDefaultTTMLStyle)(paragraphStyle)) {
44
+ (0, apply_default_ttml_paragraph_style_1.applyDefaultTTMLStyle)(paragraphStyle);
43
45
  }
44
- var cue = parseCue(parsedCues[i]);
46
+ const cue = (0, parse_cue_1.default)(parsedCues[i]);
45
47
  if (cue !== null) {
46
48
  cues.push(cue);
47
49
  }
48
50
  }
49
51
  return cues;
50
52
  }
53
+ exports.default = parseTTMLToDiv;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,16 +14,17 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { REGXP_4_HEX_COLOR, REGXP_8_HEX_COLOR, REGXP_RGBA_COLOR, REGXP_RGB_COLOR, } from "../regexps";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const regexps_1 = require("../regexps");
17
19
  /**
18
20
  * Translate a color indicated in TTML-style to a CSS-style color.
19
21
  * @param {string} color
20
22
  * @returns {string} color
21
23
  */
22
- export default function ttmlColorToCSSColor(color) {
24
+ function ttmlColorToCSSColor(color) {
23
25
  // TODO check all possible color fomats
24
- var regRes;
25
- regRes = REGXP_8_HEX_COLOR.exec(color);
26
+ let regRes;
27
+ regRes = regexps_1.REGXP_8_HEX_COLOR.exec(color);
26
28
  if (regRes != null) {
27
29
  return "rgba(" +
28
30
  String(parseInt(regRes[1], 16)) + "," +
@@ -30,7 +32,7 @@ export default function ttmlColorToCSSColor(color) {
30
32
  String(parseInt(regRes[3], 16)) + "," +
31
33
  String(parseInt(regRes[4], 16) / 255) + ")";
32
34
  }
33
- regRes = REGXP_4_HEX_COLOR.exec(color);
35
+ regRes = regexps_1.REGXP_4_HEX_COLOR.exec(color);
34
36
  if (regRes != null) {
35
37
  return "rgba(" +
36
38
  String(parseInt(regRes[1] + regRes[1], 16)) + "," +
@@ -38,14 +40,14 @@ export default function ttmlColorToCSSColor(color) {
38
40
  String(parseInt(regRes[3] + regRes[3], 16)) + "," +
39
41
  String(parseInt(regRes[4] + regRes[4], 16) / 255) + ")";
40
42
  }
41
- regRes = REGXP_RGB_COLOR.exec(color);
43
+ regRes = regexps_1.REGXP_RGB_COLOR.exec(color);
42
44
  if (regRes != null) {
43
45
  return "rgb(" +
44
46
  String(+regRes[1]) + "," +
45
47
  String(+regRes[2]) + "," +
46
48
  String(+regRes[3]) + ")";
47
49
  }
48
- regRes = REGXP_RGBA_COLOR.exec(color);
50
+ regRes = regexps_1.REGXP_RGBA_COLOR.exec(color);
49
51
  if (regRes != null) {
50
52
  return "rgba(" +
51
53
  String(+regRes[1]) + "," +
@@ -55,3 +57,4 @@ export default function ttmlColorToCSSColor(color) {
55
57
  }
56
58
  return color;
57
59
  }
60
+ exports.default = ttmlColorToCSSColor;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
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
  /**
17
19
  * /!\ This file is feature-switchable.
18
20
  * It always should be imported through the `features` object.
19
21
  */
20
- import parseTTMLStringToVTT from "./parse_ttml_to_vtt";
21
- export default parseTTMLStringToVTT;
22
+ const parse_ttml_to_vtt_1 = require("./parse_ttml_to_vtt");
23
+ exports.default = parse_ttml_to_vtt_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,12 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { isVTTCue, makeVTTCue, } from "../../../../compat";
17
- import isNonEmptyString from "../../../../utils/is_non_empty_string";
18
- import getTimeDelimiters from "../get_time_delimiters";
19
- import { REGXP_PERCENT_VALUES } from "../regexps";
20
- import { isLineBreakElement, isSpanElement, } from "../xml_utils";
21
- var TEXT_ALIGN_TO_LIGN_ALIGN = {
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../../compat");
19
+ const is_non_empty_string_1 = require("../../../../utils/is_non_empty_string");
20
+ const get_time_delimiters_1 = require("../get_time_delimiters");
21
+ const regexps_1 = require("../regexps");
22
+ const xml_utils_1 = require("../xml_utils");
23
+ const TEXT_ALIGN_TO_LIGN_ALIGN = {
22
24
  left: "start",
23
25
  center: "center",
24
26
  right: "end",
@@ -28,7 +30,7 @@ var TEXT_ALIGN_TO_LIGN_ALIGN = {
28
30
  /**
29
31
  * @type {Object}
30
32
  */
31
- var TEXT_ALIGN_TO_POSITION_ALIGN = {
33
+ const TEXT_ALIGN_TO_POSITION_ALIGN = {
32
34
  left: "line-left",
33
35
  center: "center",
34
36
  right: "line-right",
@@ -45,8 +47,8 @@ var TEXT_ALIGN_TO_POSITION_ALIGN = {
45
47
  * @param {Boolean} shouldTrimWhiteSpace
46
48
  * @returns {TextTrackCue|null}
47
49
  */
48
- export default function parseCue(parsedCue) {
49
- var paragraph = parsedCue.paragraph, timeOffset = parsedCue.timeOffset, paragraphStyle = parsedCue.paragraphStyle, ttParams = parsedCue.ttParams, shouldTrimWhiteSpace = parsedCue.shouldTrimWhiteSpace;
50
+ function parseCue(parsedCue) {
51
+ const { paragraph, timeOffset, paragraphStyle, ttParams, shouldTrimWhiteSpace, } = parsedCue;
50
52
  // Disregard empty elements:
51
53
  // TTML allows for empty elements like <div></div>.
52
54
  // If paragraph has neither time attributes, nor
@@ -55,17 +57,18 @@ export default function parseCue(parsedCue) {
55
57
  /^\s*$/.test(paragraph.textContent === null ? "" : paragraph.textContent)) {
56
58
  return null;
57
59
  }
58
- var _a = getTimeDelimiters(paragraph, ttParams), start = _a.start, end = _a.end;
59
- var text = generateTextContent(paragraph, shouldTrimWhiteSpace);
60
- var cue = makeVTTCue(start + timeOffset, end + timeOffset, text);
60
+ const { start, end } = (0, get_time_delimiters_1.default)(paragraph, ttParams);
61
+ const text = generateTextContent(paragraph, shouldTrimWhiteSpace);
62
+ const cue = (0, compat_1.makeVTTCue)(start + timeOffset, end + timeOffset, text);
61
63
  if (cue === null) {
62
64
  return null;
63
65
  }
64
- if (isVTTCue(cue)) {
66
+ if ((0, compat_1.isVTTCue)(cue)) {
65
67
  addStyle(cue, paragraphStyle);
66
68
  }
67
69
  return cue;
68
70
  }
71
+ exports.default = parseCue;
69
72
  /**
70
73
  * Generate text to display for a given paragraph.
71
74
  * @param {Element} paragraph - The <p> tag.
@@ -80,19 +83,19 @@ function generateTextContent(paragraph, shouldTrimWhiteSpaceForParagraph) {
80
83
  * @returns {string}
81
84
  */
82
85
  function loop(node, shouldTrimWhiteSpaceFromParent) {
83
- var childNodes = node.childNodes;
84
- var text = "";
85
- for (var i = 0; i < childNodes.length; i++) {
86
- var currentNode = childNodes[i];
86
+ const childNodes = node.childNodes;
87
+ let text = "";
88
+ for (let i = 0; i < childNodes.length; i++) {
89
+ const currentNode = childNodes[i];
87
90
  if (currentNode.nodeName === "#text") {
88
- var textContent = currentNode.textContent;
91
+ let textContent = currentNode.textContent;
89
92
  if (textContent === null) {
90
93
  textContent = "";
91
94
  }
92
95
  if (shouldTrimWhiteSpaceFromParent) {
93
96
  // 1. Trim leading and trailing whitespace.
94
97
  // 2. Collapse multiple spaces into one.
95
- var trimmed = textContent.trim();
98
+ let trimmed = textContent.trim();
96
99
  trimmed = trimmed.replace(/\s+/g, " ");
97
100
  textContent = trimmed;
98
101
  }
@@ -100,7 +103,7 @@ function generateTextContent(paragraph, shouldTrimWhiteSpaceForParagraph) {
100
103
  // that may be misinterpreted by VTTCue API (typically, less-than sign
101
104
  // and greater-than sign can be interpreted as HTML tags signs).
102
105
  // Original escaped caracters must be conserved.
103
- var escapedTextContent = textContent
106
+ const escapedTextContent = textContent
104
107
  .replace(/&|\u0026/g, "&amp;")
105
108
  .replace(/<|\u003C/g, "&lt;")
106
109
  .replace(/>|\u2265/g, "&gt;")
@@ -109,14 +112,14 @@ function generateTextContent(paragraph, shouldTrimWhiteSpaceForParagraph) {
109
112
  .replace(/\u00A0/g, "&nbsp;");
110
113
  text += escapedTextContent;
111
114
  }
112
- else if (isLineBreakElement(currentNode)) {
115
+ else if ((0, xml_utils_1.isLineBreakElement)(currentNode)) {
113
116
  text += "\n";
114
117
  }
115
- else if (isSpanElement(currentNode) &&
118
+ else if ((0, xml_utils_1.isSpanElement)(currentNode) &&
116
119
  currentNode.nodeType === Node.ELEMENT_NODE &&
117
120
  currentNode.childNodes.length > 0) {
118
- var spaceAttribute = currentNode.getAttribute("xml:space");
119
- var shouldTrimWhiteSpaceForSpan = isNonEmptyString(spaceAttribute) ?
121
+ const spaceAttribute = currentNode.getAttribute("xml:space");
122
+ const shouldTrimWhiteSpaceForSpan = (0, is_non_empty_string_1.default)(spaceAttribute) ?
120
123
  spaceAttribute === "default" :
121
124
  shouldTrimWhiteSpaceFromParent;
122
125
  text += loop(currentNode, shouldTrimWhiteSpaceForSpan);
@@ -133,16 +136,16 @@ function generateTextContent(paragraph, shouldTrimWhiteSpaceForParagraph) {
133
136
  * @param {Object} style
134
137
  */
135
138
  function addStyle(cue, style) {
136
- var extent = style.extent;
137
- if (isNonEmptyString(extent)) {
138
- var results = REGXP_PERCENT_VALUES.exec(extent);
139
+ const extent = style.extent;
140
+ if ((0, is_non_empty_string_1.default)(extent)) {
141
+ const results = regexps_1.REGXP_PERCENT_VALUES.exec(extent);
139
142
  if (results != null) {
140
143
  // Use width value of the extent attribute for size.
141
144
  // Height value is ignored.
142
145
  cue.size = Number(results[1]);
143
146
  }
144
147
  }
145
- var writingMode = style.writingMode;
148
+ const writingMode = style.writingMode;
146
149
  // let isVerticalText = true;
147
150
  switch (writingMode) {
148
151
  case "tb":
@@ -156,9 +159,9 @@ function addStyle(cue, style) {
156
159
  // isVerticalText = false;
157
160
  break;
158
161
  }
159
- var origin = style.origin;
160
- if (isNonEmptyString(origin)) {
161
- var results = REGXP_PERCENT_VALUES.exec(origin);
162
+ const origin = style.origin;
163
+ if ((0, is_non_empty_string_1.default)(origin)) {
164
+ const results = regexps_1.REGXP_PERCENT_VALUES.exec(origin);
162
165
  if (results != null) {
163
166
  // for vertical text use first coordinate of tts:origin
164
167
  // to represent line of the cue and second - for position.
@@ -181,8 +184,8 @@ function addStyle(cue, style) {
181
184
  // cue.snapToLines = false;
182
185
  }
183
186
  }
184
- var align = style.align;
185
- if (isNonEmptyString(align)) {
187
+ const align = style.align;
188
+ if ((0, is_non_empty_string_1.default)(align)) {
186
189
  cue.align = align;
187
190
  if (align === "center") {
188
191
  if (cue.align !== "center") {
@@ -192,10 +195,10 @@ function addStyle(cue, style) {
192
195
  }
193
196
  cue.position = "auto";
194
197
  }
195
- var positionAlign = TEXT_ALIGN_TO_POSITION_ALIGN[align];
198
+ const positionAlign = TEXT_ALIGN_TO_POSITION_ALIGN[align];
196
199
  cue.positionAlign = positionAlign === undefined ? "" :
197
200
  positionAlign;
198
- var lineAlign = TEXT_ALIGN_TO_LIGN_ALIGN[align];
201
+ const lineAlign = TEXT_ALIGN_TO_LIGN_ALIGN[align];
199
202
  cue.lineAlign = lineAlign === undefined ? "" :
200
203
  lineAlign;
201
204
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,21 +14,23 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import parseTtml from "../parse_ttml";
17
- import parseCue from "./parse_cue";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const parse_ttml_1 = require("../parse_ttml");
19
+ const parse_cue_1 = require("./parse_cue");
18
20
  /**
19
21
  * @param str
20
22
  * @param timeOffset
21
23
  */
22
- export default function parseTtmlToNative(str, timeOffset) {
23
- var parsedCues = parseTtml(str, timeOffset);
24
- var cues = [];
25
- for (var i = 0; i < parsedCues.length; i++) {
26
- var parsedCue = parsedCues[i];
27
- var cue = parseCue(parsedCue);
24
+ function parseTtmlToNative(str, timeOffset) {
25
+ const parsedCues = (0, parse_ttml_1.default)(str, timeOffset);
26
+ const cues = [];
27
+ for (let i = 0; i < parsedCues.length; i++) {
28
+ const parsedCue = parsedCues[i];
29
+ const cue = (0, parse_cue_1.default)(parsedCue);
28
30
  if (cue !== null) {
29
31
  cues.push(cue);
30
32
  }
31
33
  }
32
34
  return cues;
33
35
  }
36
+ exports.default = parseTtmlToNative;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,23 +14,15 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
- if (ar || !(i in from)) {
19
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
- ar[i] = from[i];
21
- }
22
- }
23
- return to.concat(ar || Array.prototype.slice.call(from));
24
- };
25
- import arrayFind from "../../../utils/array_find";
26
- import isNonEmptyString from "../../../utils/is_non_empty_string";
27
- import objectAssign from "../../../utils/object_assign";
28
- import getParameters from "./get_parameters";
29
- import { getStylingAttributes, getStylingFromElement, } from "./get_styling";
30
- import resolveStylesInheritance from "./resolve_styles_inheritance";
31
- import { getParentDivElements, getBodyNode, getRegionNodes, getStyleNodes, getTextNodes, } from "./xml_utils";
32
- var STYLE_ATTRIBUTES = ["align",
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const array_find_1 = require("../../../utils/array_find");
19
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
20
+ const object_assign_1 = require("../../../utils/object_assign");
21
+ const get_parameters_1 = require("./get_parameters");
22
+ const get_styling_1 = require("./get_styling");
23
+ const resolve_styles_inheritance_1 = require("./resolve_styles_inheritance");
24
+ const xml_utils_1 = require("./xml_utils");
25
+ const STYLE_ATTRIBUTES = ["align",
33
26
  "backgroundColor",
34
27
  "color",
35
28
  "direction",
@@ -65,55 +58,56 @@ var STYLE_ATTRIBUTES = ["align",
65
58
  * @param {Number} timeOffset
66
59
  * @returns {Array.<Object>}
67
60
  */
68
- export default function parseTTMLString(str, timeOffset) {
69
- var cues = [];
70
- var xml = new DOMParser().parseFromString(str, "text/xml");
61
+ function parseTTMLString(str, timeOffset) {
62
+ const cues = [];
63
+ const xml = new DOMParser().parseFromString(str, "text/xml");
71
64
  if (xml !== null && xml !== undefined) {
72
- var tts = xml.getElementsByTagName("tt");
73
- var tt = tts[0];
65
+ const tts = xml.getElementsByTagName("tt");
66
+ let tt = tts[0];
74
67
  if (tt === undefined) {
75
68
  // EBU-TT sometimes namespaces tt, by "tt:"
76
69
  // Just catch all namespaces to play it safe
77
- var namespacedTT = xml.getElementsByTagNameNS("*", "tt");
70
+ const namespacedTT = xml.getElementsByTagNameNS("*", "tt");
78
71
  tt = namespacedTT[0];
79
72
  if (tt === undefined) {
80
73
  throw new Error("invalid XML");
81
74
  }
82
75
  }
83
- var body = getBodyNode(tt);
84
- var styleNodes = getStyleNodes(tt);
85
- var regionNodes = getRegionNodes(tt);
86
- var paragraphNodes = getTextNodes(tt);
87
- var ttParams = getParameters(tt);
76
+ const body = (0, xml_utils_1.getBodyNode)(tt);
77
+ const styleNodes = (0, xml_utils_1.getStyleNodes)(tt);
78
+ const regionNodes = (0, xml_utils_1.getRegionNodes)(tt);
79
+ const paragraphNodes = (0, xml_utils_1.getTextNodes)(tt);
80
+ const ttParams = (0, get_parameters_1.default)(tt);
88
81
  // construct idStyles array based on the xml as an optimization
89
- var idStyles = [];
90
- for (var i = 0; i <= styleNodes.length - 1; i++) {
91
- var styleNode = styleNodes[i];
82
+ const idStyles = [];
83
+ for (let i = 0; i <= styleNodes.length - 1; i++) {
84
+ const styleNode = styleNodes[i];
92
85
  if (styleNode instanceof Element) {
93
- var styleID = styleNode.getAttribute("xml:id");
86
+ const styleID = styleNode.getAttribute("xml:id");
94
87
  if (styleID !== null) {
95
- var subStyles = styleNode.getAttribute("style");
96
- var extendsStyles = subStyles === null ? [] :
88
+ const subStyles = styleNode.getAttribute("style");
89
+ const extendsStyles = subStyles === null ? [] :
97
90
  subStyles.split(" ");
98
91
  idStyles.push({ id: styleID,
99
- style: getStylingFromElement(styleNode), extendsStyles: extendsStyles });
92
+ style: (0, get_styling_1.getStylingFromElement)(styleNode),
93
+ extendsStyles });
100
94
  }
101
95
  }
102
96
  }
103
- resolveStylesInheritance(idStyles);
97
+ (0, resolve_styles_inheritance_1.default)(idStyles);
104
98
  // construct regionStyles array based on the xml as an optimization
105
- var regionStyles = [];
106
- var _loop_1 = function (i) {
107
- var regionNode = regionNodes[i];
99
+ const regionStyles = [];
100
+ for (let i = 0; i <= regionNodes.length - 1; i++) {
101
+ const regionNode = regionNodes[i];
108
102
  if (regionNode instanceof Element) {
109
- var regionID = regionNode.getAttribute("xml:id");
103
+ const regionID = regionNode.getAttribute("xml:id");
110
104
  if (regionID !== null) {
111
- var regionStyle = getStylingFromElement(regionNode);
112
- var associatedStyleID_1 = regionNode.getAttribute("style");
113
- if (isNonEmptyString(associatedStyleID_1)) {
114
- var style = arrayFind(idStyles, function (x) { return x.id === associatedStyleID_1; });
105
+ let regionStyle = (0, get_styling_1.getStylingFromElement)(regionNode);
106
+ const associatedStyleID = regionNode.getAttribute("style");
107
+ if ((0, is_non_empty_string_1.default)(associatedStyleID)) {
108
+ const style = (0, array_find_1.default)(idStyles, (x) => x.id === associatedStyleID);
115
109
  if (style !== undefined) {
116
- regionStyle = objectAssign({}, style.style, regionStyle);
110
+ regionStyle = (0, object_assign_1.default)({}, style.style, regionStyle);
117
111
  }
118
112
  }
119
113
  regionStyles.push({ id: regionID,
@@ -122,30 +116,35 @@ export default function parseTTMLString(str, timeOffset) {
122
116
  extendsStyles: [] });
123
117
  }
124
118
  }
125
- };
126
- for (var i = 0; i <= regionNodes.length - 1; i++) {
127
- _loop_1(i);
128
119
  }
129
120
  // Computing the style takes a lot of ressources.
130
121
  // To avoid too much re-computation, let's compute the body style right
131
122
  // now and do the rest progressively.
132
123
  // TODO Compute corresponding CSS style here (as soon as we now the TTML
133
124
  // style) to speed up the process even more.
134
- var bodyStyle = getStylingAttributes(STYLE_ATTRIBUTES, body !== null ? [body] : [], idStyles, regionStyles);
135
- var bodySpaceAttribute = body !== null ? body.getAttribute("xml:space") :
125
+ const bodyStyle = (0, get_styling_1.getStylingAttributes)(STYLE_ATTRIBUTES, body !== null ? [body] : [], idStyles, regionStyles);
126
+ const bodySpaceAttribute = body !== null ? body.getAttribute("xml:space") :
136
127
  undefined;
137
- var shouldTrimWhiteSpaceOnBody = bodySpaceAttribute === "default" ||
128
+ const shouldTrimWhiteSpaceOnBody = bodySpaceAttribute === "default" ||
138
129
  ttParams.spaceStyle === "default";
139
- for (var i = 0; i < paragraphNodes.length; i++) {
140
- var paragraph = paragraphNodes[i];
130
+ for (let i = 0; i < paragraphNodes.length; i++) {
131
+ const paragraph = paragraphNodes[i];
141
132
  if (paragraph instanceof Element) {
142
- var divs = getParentDivElements(paragraph);
143
- var paragraphStyle = objectAssign({}, bodyStyle, getStylingAttributes(STYLE_ATTRIBUTES, __spreadArray([paragraph], divs, true), idStyles, regionStyles));
144
- var paragraphSpaceAttribute = paragraph.getAttribute("xml:space");
145
- var shouldTrimWhiteSpace = isNonEmptyString(paragraphSpaceAttribute) ?
133
+ const divs = (0, xml_utils_1.getParentDivElements)(paragraph);
134
+ const paragraphStyle = (0, object_assign_1.default)({}, bodyStyle, (0, get_styling_1.getStylingAttributes)(STYLE_ATTRIBUTES, [paragraph,
135
+ ...divs], idStyles, regionStyles));
136
+ const paragraphSpaceAttribute = paragraph.getAttribute("xml:space");
137
+ const shouldTrimWhiteSpace = (0, is_non_empty_string_1.default)(paragraphSpaceAttribute) ?
146
138
  paragraphSpaceAttribute === "default" :
147
139
  shouldTrimWhiteSpaceOnBody;
148
- var cue = { paragraph: paragraph, timeOffset: timeOffset, idStyles: idStyles, regionStyles: regionStyles, body: body, paragraphStyle: paragraphStyle, ttParams: ttParams, shouldTrimWhiteSpace: shouldTrimWhiteSpace };
140
+ const cue = { paragraph,
141
+ timeOffset,
142
+ idStyles,
143
+ regionStyles,
144
+ body,
145
+ paragraphStyle,
146
+ ttParams,
147
+ shouldTrimWhiteSpace };
149
148
  if (cue !== null) {
150
149
  cues.push(cue);
151
150
  }
@@ -154,3 +153,4 @@ export default function parseTTMLString(str, timeOffset) {
154
153
  }
155
154
  return cues;
156
155
  }
156
+ exports.default = parseTTMLString;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,23 +14,36 @@
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 });
18
+ exports.REGXP_TIME_TICK = exports.REGXP_TIME_HMS = exports.REGXP_TIME_FRAMES = exports.REGXP_TIME_COLON_MS = exports.REGXP_TIME_COLON_FRAMES = exports.REGXP_TIME_COLON = exports.REGXP_PERCENT_VALUES = exports.REGXP_LENGTH = exports.REGXP_RGBA_COLOR = exports.REGXP_RGB_COLOR = exports.REGXP_8_HEX_COLOR = exports.REGXP_4_HEX_COLOR = void 0;
16
19
  // examples: 00:00:40:07 (7 frames) or 00:00:40:07.1 (7 frames, 1 subframe)
17
- var REGXP_TIME_COLON_FRAMES = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/;
20
+ const REGXP_TIME_COLON_FRAMES = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/;
21
+ exports.REGXP_TIME_COLON_FRAMES = REGXP_TIME_COLON_FRAMES;
18
22
  // examples: 00:00:40:07 (7 frames) or 00:00:40:07.1 (7 frames, 1 subframe)
19
- var REGXP_TIME_COLON = /^(?:(\d{2,}):)?(\d{2}):(\d{2})$/;
23
+ const REGXP_TIME_COLON = /^(?:(\d{2,}):)?(\d{2}):(\d{2})$/;
24
+ exports.REGXP_TIME_COLON = REGXP_TIME_COLON;
20
25
  // examples: 01:02:43.0345555 or 02:43.03
21
- var REGXP_TIME_COLON_MS = /^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/;
26
+ const REGXP_TIME_COLON_MS = /^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/;
27
+ exports.REGXP_TIME_COLON_MS = REGXP_TIME_COLON_MS;
22
28
  // examples: 75f or 75.5f
23
- var REGXP_TIME_FRAMES = /^(\d*\.?\d*)f$/;
29
+ const REGXP_TIME_FRAMES = /^(\d*\.?\d*)f$/;
30
+ exports.REGXP_TIME_FRAMES = REGXP_TIME_FRAMES;
24
31
  // examples: 50t or 50.5t
25
- var REGXP_TIME_TICK = /^(\d*\.?\d*)t$/;
32
+ const REGXP_TIME_TICK = /^(\d*\.?\d*)t$/;
33
+ exports.REGXP_TIME_TICK = REGXP_TIME_TICK;
26
34
  // examples: 3.45h, 3m or 4.20s
27
- var REGXP_TIME_HMS = /^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/;
35
+ const REGXP_TIME_HMS = /^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/;
36
+ exports.REGXP_TIME_HMS = REGXP_TIME_HMS;
28
37
  // examples: 50% 10%
29
- var REGXP_PERCENT_VALUES = /^(\d{1,2}|100)% (\d{1,2}|100)%$/;
30
- var REGXP_LENGTH = /^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
31
- var REGXP_8_HEX_COLOR = /^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/;
32
- var REGXP_4_HEX_COLOR = /^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/;
33
- var REGXP_RGB_COLOR = /^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/;
34
- var REGXP_RGBA_COLOR = /^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;
35
- export { REGXP_4_HEX_COLOR, REGXP_8_HEX_COLOR, REGXP_RGB_COLOR, REGXP_RGBA_COLOR, REGXP_LENGTH, REGXP_PERCENT_VALUES, REGXP_TIME_COLON, REGXP_TIME_COLON_FRAMES, REGXP_TIME_COLON_MS, REGXP_TIME_FRAMES, REGXP_TIME_HMS, REGXP_TIME_TICK, };
38
+ const REGXP_PERCENT_VALUES = /^(\d{1,2}|100)% (\d{1,2}|100)%$/;
39
+ exports.REGXP_PERCENT_VALUES = REGXP_PERCENT_VALUES;
40
+ const REGXP_LENGTH = /^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
41
+ exports.REGXP_LENGTH = REGXP_LENGTH;
42
+ const REGXP_8_HEX_COLOR = /^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/;
43
+ exports.REGXP_8_HEX_COLOR = REGXP_8_HEX_COLOR;
44
+ const REGXP_4_HEX_COLOR = /^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/;
45
+ exports.REGXP_4_HEX_COLOR = REGXP_4_HEX_COLOR;
46
+ const REGXP_RGB_COLOR = /^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/;
47
+ exports.REGXP_RGB_COLOR = REGXP_RGB_COLOR;
48
+ const REGXP_RGBA_COLOR = /^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;
49
+ exports.REGXP_RGBA_COLOR = REGXP_RGBA_COLOR;