rx-player 3.33.0 → 3.33.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/VERSION +1 -1
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/manifest/manifest.js +1 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +11 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +18 -4
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.d.ts +1 -1
- package/dist/rx-player.js +24 -9
- package/dist/rx-player.min.d.ts +1 -1
- package/dist/rx-player.min.js +1 -1
- package/package.json +6 -6
- package/.editorconfig +0 -22
- package/.eslintrc.js +0 -406
- package/.github/workflows/checks.yml +0 -101
- package/.github/workflows/perfs.yml +0 -22
- package/.github/workflows/sonarcloud_analysis.yml +0 -20
- package/CONTRIBUTING.md +0 -272
- package/FILES.md +0 -283
- package/jest.config.js +0 -73
- package/manifest.mpd +0 -149
- package/scripts/README.md +0 -11
- package/scripts/build/constants.d.ts +0 -53
- package/scripts/build/generate_build.js +0 -190
- package/scripts/build/templates/experimental/features/index.d.ts +0 -16
- package/scripts/build/templates/experimental/features/index.js +0 -16
- package/scripts/build/templates/experimental/index.d.ts +0 -16
- package/scripts/build/templates/experimental/index.js +0 -16
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.d.ts +0 -18
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.js +0 -18
- package/scripts/build/templates/experimental/tools/index.d.ts +0 -16
- package/scripts/build/templates/experimental/tools/index.js +0 -16
- package/scripts/build/templates/features/index.d.ts +0 -16
- package/scripts/build/templates/features/index.js +0 -16
- package/scripts/build/templates/logger/index.d.ts +0 -17
- package/scripts/build/templates/logger/index.js +0 -17
- package/scripts/build/templates/minimal/index.d.ts +0 -17
- package/scripts/build/templates/minimal/index.js +0 -17
- package/scripts/build/templates/tools/TextTrackRenderer.d.ts +0 -18
- package/scripts/build/templates/tools/TextTrackRenderer.js +0 -18
- package/scripts/build/templates/tools/index.d.ts +0 -16
- package/scripts/build/templates/tools/index.js +0 -16
- package/scripts/build/templates/tools/string-utils.d.ts +0 -18
- package/scripts/build/templates/tools/string-utils.js +0 -18
- package/scripts/build/templates/types/index.d.ts +0 -16
- package/scripts/build/templates/types/index.js +0 -15
- package/scripts/canal-release.patch +0 -316
- package/scripts/check_nodejs_import_compatibility.js +0 -60
- package/scripts/deploy_new_demo +0 -123
- package/scripts/fast_demo_build.js +0 -129
- package/scripts/generate_certificate +0 -19
- package/scripts/generate_demo_list.js +0 -105
- package/scripts/generate_documentation_list.js +0 -109
- package/scripts/generate_full_demo.js +0 -201
- package/scripts/generate_standalone_demo.js +0 -82
- package/scripts/launch_static_server.js +0 -163
- package/scripts/list-npm-scripts.js +0 -207
- package/scripts/make-dev-releases +0 -90
- package/scripts/report_build_sizes +0 -96
- package/scripts/run_standalone_demo.js +0 -27
- package/scripts/start_demo_web_server.js +0 -44
- package/scripts/update-version +0 -48
- package/scripts/update_gh-pages_demo +0 -132
- package/scripts/update_gh-pages_doc +0 -106
- package/scripts/utils/display_webpack_errors.js +0 -33
- package/scripts/utils/get_human_readable_hours.js +0 -14
- package/scripts/wasm-strip.js +0 -359
- package/sonar-project.properties +0 -7
- package/src/README.md +0 -136
- package/src/compat/README.md +0 -29
- package/src/compat/__tests__/add_text_track.test.ts +0 -176
- package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -152
- package/src/compat/__tests__/browser_version.test.ts +0 -84
- package/src/compat/__tests__/can_patch_isobmff.test.ts +0 -50
- package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +0 -78
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +0 -31
- package/src/compat/__tests__/change_source_buffer_type.test.ts +0 -60
- package/src/compat/__tests__/clear_element_src.test.ts +0 -252
- package/src/compat/__tests__/enable_audio_track.test.ts +0 -341
- package/src/compat/__tests__/fullscreen.test.ts +0 -286
- package/src/compat/__tests__/is_codec_supported.test.ts +0 -78
- package/src/compat/__tests__/is_offline.test.ts +0 -65
- package/src/compat/__tests__/is_seeking_approximate.test.ts +0 -48
- package/src/compat/__tests__/is_vtt_cue.test.ts +0 -71
- package/src/compat/__tests__/make_vtt_cue.test.ts +0 -97
- package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +0 -144
- package/src/compat/__tests__/remove_cue.test.ts +0 -229
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +0 -128
- package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +0 -50
- package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +0 -55
- package/src/compat/__tests__/should_unset_media_keys.test.ts +0 -53
- package/src/compat/__tests__/should_validate_metadata.test.ts +0 -53
- package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -121
- package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +0 -36
- package/src/compat/add_class_name.ts +0 -41
- package/src/compat/add_text_track.ts +0 -58
- package/src/compat/browser_compatibility_types.ts +0 -222
- package/src/compat/browser_detection.ts +0 -172
- package/src/compat/browser_version.ts +0 -44
- package/src/compat/can_patch_isobmff.ts +0 -30
- package/src/compat/can_rely_on_video_visibility_and_size.ts +0 -52
- package/src/compat/can_reuse_media_keys.ts +0 -20
- package/src/compat/change_source_buffer_type.ts +0 -66
- package/src/compat/clear_element_src.ts +0 -55
- package/src/compat/eme/close_session.ts +0 -111
- package/src/compat/eme/constants.ts +0 -21
- package/src/compat/eme/custom_key_system_access.ts +0 -67
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +0 -186
- package/src/compat/eme/custom_media_keys/index.ts +0 -28
- package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +0 -88
- package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +0 -69
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +0 -235
- package/src/compat/eme/custom_media_keys/types.ts +0 -67
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -308
- package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +0 -50
- package/src/compat/eme/eme-api-implementation.ts +0 -318
- package/src/compat/eme/generate_key_request.ts +0 -162
- package/src/compat/eme/get_init_data.ts +0 -159
- package/src/compat/eme/get_uuid_kid_from_keystatus_kid.ts +0 -37
- package/src/compat/eme/get_webkit_fairplay_initdata.ts +0 -75
- package/src/compat/eme/index.ts +0 -47
- package/src/compat/eme/load_session.ts +0 -67
- package/src/compat/enable_audio_track.ts +0 -33
- package/src/compat/event_listeners.ts +0 -566
- package/src/compat/fullscreen.ts +0 -87
- package/src/compat/get_start_date.ts +0 -48
- package/src/compat/has_issues_with_high_media_source_duration.ts +0 -27
- package/src/compat/index.ts +0 -87
- package/src/compat/is_codec_supported.ts +0 -40
- package/src/compat/is_debug_mode_enabled.ts +0 -12
- package/src/compat/is_node.ts +0 -18
- package/src/compat/is_offline.ts +0 -44
- package/src/compat/is_seeking_approximate.ts +0 -32
- package/src/compat/is_vtt_cue.ts +0 -30
- package/src/compat/make_vtt_cue.ts +0 -51
- package/src/compat/on_height_width_change.ts +0 -119
- package/src/compat/patch_webkit_source_buffer.ts +0 -89
- package/src/compat/remove_cue.ts +0 -64
- package/src/compat/should_favour_custom_safari_EME.ts +0 -34
- package/src/compat/should_prevent_seeking_at_0_initially.ts +0 -19
- package/src/compat/should_reload_media_source_on_decipherability_update.ts +0 -32
- package/src/compat/should_renew_media_key_system_access.ts +0 -26
- package/src/compat/should_unset_media_keys.ts +0 -27
- package/src/compat/should_validate_metadata.ts +0 -27
- package/src/compat/should_wait_for_data_before_loaded.ts +0 -35
- package/src/compat/should_wait_for_have_enough_data.ts +0 -17
- package/src/config.ts +0 -32
- package/src/core/README.md +0 -56
- package/src/core/adaptive/README.md +0 -147
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +0 -548
- package/src/core/adaptive/adaptive_representation_selector.ts +0 -916
- package/src/core/adaptive/buffer_based_chooser.ts +0 -264
- package/src/core/adaptive/guess_based_chooser.ts +0 -309
- package/src/core/adaptive/index.ts +0 -45
- package/src/core/adaptive/network_analyzer.ts +0 -419
- package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -134
- package/src/core/adaptive/utils/__tests__/ewma.test.ts +0 -79
- package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +0 -56
- package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
- package/src/core/adaptive/utils/__tests__/get_buffer_levels.test.ts +0 -48
- package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +0 -243
- package/src/core/adaptive/utils/bandwidth_estimator.ts +0 -88
- package/src/core/adaptive/utils/ewma.ts +0 -59
- package/src/core/adaptive/utils/filter_by_bitrate.ts +0 -46
- package/src/core/adaptive/utils/filter_by_width.ts +0 -49
- package/src/core/adaptive/utils/get_buffer_levels.ts +0 -50
- package/src/core/adaptive/utils/last_estimate_storage.ts +0 -79
- package/src/core/adaptive/utils/pending_requests_store.ts +0 -147
- package/src/core/adaptive/utils/representation_score_calculator.ts +0 -168
- package/src/core/adaptive/utils/select_optimal_representation.ts +0 -54
- package/src/core/api/README.md +0 -36
- package/src/core/api/__tests__/option_utils.test.ts +0 -1668
- package/src/core/api/__tests__/public_api.test.ts +0 -857
- package/src/core/api/__tests__/utils.test.ts +0 -195
- package/src/core/api/debug/buffer_graph.ts +0 -244
- package/src/core/api/debug/buffer_size_graph.ts +0 -130
- package/src/core/api/debug/constants.ts +0 -2
- package/src/core/api/debug/index.ts +0 -3
- package/src/core/api/debug/modules/general_info.ts +0 -213
- package/src/core/api/debug/modules/segment_buffer_content.ts +0 -155
- package/src/core/api/debug/modules/segment_buffer_size.ts +0 -48
- package/src/core/api/debug/render.ts +0 -40
- package/src/core/api/debug/utils.ts +0 -103
- package/src/core/api/index.ts +0 -27
- package/src/core/api/option_utils.ts +0 -700
- package/src/core/api/playback_observer.ts +0 -994
- package/src/core/api/public_api.ts +0 -3247
- package/src/core/api/tracks_management/__tests__/media_element_track_choice_manager.test.ts +0 -184
- package/src/core/api/tracks_management/media_element_track_choice_manager.ts +0 -975
- package/src/core/api/tracks_management/track_choice_manager.ts +0 -1280
- package/src/core/api/utils.ts +0 -216
- package/src/core/decrypt/README.md +0 -22
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +0 -422
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +0 -677
- package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +0 -528
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +0 -343
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +0 -264
- package/src/core/decrypt/__tests__/__global__/utils.ts +0 -491
- package/src/core/decrypt/attach_media_keys.ts +0 -121
- package/src/core/decrypt/clear_on_stop.ts +0 -47
- package/src/core/decrypt/content_decryptor.ts +0 -1246
- package/src/core/decrypt/create_or_load_session.ts +0 -133
- package/src/core/decrypt/create_session.ts +0 -214
- package/src/core/decrypt/dispose_decryption_resources.ts +0 -54
- package/src/core/decrypt/find_key_system.ts +0 -376
- package/src/core/decrypt/get_key_system_configuration.ts +0 -51
- package/src/core/decrypt/get_media_keys.ts +0 -147
- package/src/core/decrypt/index.ts +0 -36
- package/src/core/decrypt/init_media_keys.ts +0 -60
- package/src/core/decrypt/session_events_listener.ts +0 -386
- package/src/core/decrypt/set_server_certificate.ts +0 -105
- package/src/core/decrypt/types.ts +0 -404
- package/src/core/decrypt/utils/__tests__/are_init_values_compatible.test.ts +0 -261
- package/src/core/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -158
- package/src/core/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +0 -133
- package/src/core/decrypt/utils/are_init_values_compatible.ts +0 -140
- package/src/core/decrypt/utils/check_key_statuses.ts +0 -193
- package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +0 -45
- package/src/core/decrypt/utils/clean_old_stored_persistent_info.ts +0 -48
- package/src/core/decrypt/utils/get_drm_system_id.ts +0 -42
- package/src/core/decrypt/utils/init_data_values_container.ts +0 -119
- package/src/core/decrypt/utils/is_session_usable.ts +0 -62
- package/src/core/decrypt/utils/key_id_comparison.ts +0 -57
- package/src/core/decrypt/utils/key_session_record.ts +0 -174
- package/src/core/decrypt/utils/loaded_sessions_store.ts +0 -505
- package/src/core/decrypt/utils/media_keys_infos_store.ts +0 -85
- package/src/core/decrypt/utils/persistent_sessions_store.ts +0 -358
- package/src/core/decrypt/utils/serializable_bytes.ts +0 -59
- package/src/core/decrypt/utils/server_certificate_store.ts +0 -133
- package/src/core/fetchers/README.md +0 -84
- package/src/core/fetchers/cdn_prioritizer.ts +0 -207
- package/src/core/fetchers/index.ts +0 -38
- package/src/core/fetchers/manifest/index.ts +0 -28
- package/src/core/fetchers/manifest/manifest_fetcher.ts +0 -798
- package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +0 -763
- package/src/core/fetchers/segment/index.ts +0 -28
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +0 -113
- package/src/core/fetchers/segment/segment_fetcher.ts +0 -482
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -129
- package/src/core/fetchers/segment/task_prioritizer.ts +0 -455
- package/src/core/fetchers/utils/error_selector.ts +0 -38
- package/src/core/fetchers/utils/schedule_request.ts +0 -493
- package/src/core/init/README.md +0 -81
- package/src/core/init/directfile_content_initializer.ts +0 -310
- package/src/core/init/index.ts +0 -22
- package/src/core/init/media_source_content_initializer.ts +0 -878
- package/src/core/init/types.ts +0 -266
- package/src/core/init/utils/__tests__/are_same_stream_events.test.ts +0 -84
- package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +0 -94
- package/src/core/init/utils/content_time_boundaries_observer.ts +0 -646
- package/src/core/init/utils/create_media_source.ts +0 -139
- package/src/core/init/utils/create_stream_playback_observer.ts +0 -132
- package/src/core/init/utils/end_of_stream.ts +0 -108
- package/src/core/init/utils/get_initial_time.ts +0 -165
- package/src/core/init/utils/get_loaded_reference.ts +0 -82
- package/src/core/init/utils/initial_seek_and_play.ts +0 -237
- package/src/core/init/utils/initialize_content_decryption.ts +0 -172
- package/src/core/init/utils/media_source_duration_updater.ts +0 -349
- package/src/core/init/utils/rebuffering_controller.ts +0 -642
- package/src/core/init/utils/stream_events_emitter/are_same_stream_events.ts +0 -42
- package/src/core/init/utils/stream_events_emitter/index.ts +0 -22
- package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +0 -74
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +0 -252
- package/src/core/init/utils/stream_events_emitter/types.ts +0 -46
- package/src/core/init/utils/throw_on_media_error.ts +0 -74
- package/src/core/segment_buffers/README.md +0 -219
- package/src/core/segment_buffers/garbage_collector.ts +0 -177
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +0 -650
- package/src/core/segment_buffers/implementations/audio_video/index.ts +0 -18
- package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -152
- package/src/core/segment_buffers/implementations/image/index.ts +0 -18
- package/src/core/segment_buffers/implementations/index.ts +0 -20
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +0 -343
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +0 -527
- package/src/core/segment_buffers/implementations/text/html/index.ts +0 -24
- package/src/core/segment_buffers/implementations/text/html/parsers.ts +0 -49
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +0 -391
- package/src/core/segment_buffers/implementations/text/html/types.ts +0 -23
- package/src/core/segment_buffers/implementations/text/html/update_proportional_elements.ts +0 -93
- package/src/core/segment_buffers/implementations/text/html/utils.ts +0 -139
- package/src/core/segment_buffers/implementations/text/native/index.ts +0 -19
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +0 -340
- package/src/core/segment_buffers/implementations/text/native/parsers.ts +0 -47
- package/src/core/segment_buffers/implementations/types.ts +0 -386
- package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +0 -80
- package/src/core/segment_buffers/index.ts +0 -67
- package/src/core/segment_buffers/inventory/buffered_history.ts +0 -131
- package/src/core/segment_buffers/inventory/index.ts +0 -30
- package/src/core/segment_buffers/inventory/segment_inventory.ts +0 -1111
- package/src/core/segment_buffers/inventory/types.ts +0 -35
- package/src/core/segment_buffers/segment_buffers_store.ts +0 -383
- package/src/core/stream/README.md +0 -59
- package/src/core/stream/adaptation/adaptation_stream.ts +0 -378
- package/src/core/stream/adaptation/index.ts +0 -20
- package/src/core/stream/adaptation/types.ts +0 -199
- package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
- package/src/core/stream/index.ts +0 -38
- package/src/core/stream/orchestrator/README.md +0 -349
- package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +0 -70
- package/src/core/stream/orchestrator/index.ts +0 -30
- package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -664
- package/src/core/stream/period/index.ts +0 -20
- package/src/core/stream/period/period_stream.ts +0 -469
- package/src/core/stream/period/types.ts +0 -132
- package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +0 -287
- package/src/core/stream/representation/README.md +0 -16
- package/src/core/stream/representation/index.ts +0 -20
- package/src/core/stream/representation/representation_stream.ts +0 -474
- package/src/core/stream/representation/types.ts +0 -292
- package/src/core/stream/representation/utils/append_segment_to_buffer.ts +0 -77
- package/src/core/stream/representation/utils/check_for_discontinuity.ts +0 -305
- package/src/core/stream/representation/utils/downloading_queue.ts +0 -603
- package/src/core/stream/representation/utils/force_garbage_collection.ts +0 -113
- package/src/core/stream/representation/utils/get_buffer_status.ts +0 -322
- package/src/core/stream/representation/utils/get_needed_segments.ts +0 -617
- package/src/core/stream/representation/utils/get_segment_priority.ts +0 -43
- package/src/core/stream/representation/utils/push_init_segment.ts +0 -85
- package/src/core/stream/representation/utils/push_media_segment.ts +0 -113
- package/src/default_config.ts +0 -1293
- package/src/errors/README.md +0 -6
- package/src/errors/__tests__/assertion_error.test.ts +0 -26
- package/src/errors/__tests__/encrypted_media_error.test.ts +0 -45
- package/src/errors/__tests__/error_message.test.ts +0 -23
- package/src/errors/__tests__/format_error.test.ts +0 -62
- package/src/errors/__tests__/is_known_error.test.ts +0 -65
- package/src/errors/__tests__/media_error.test.ts +0 -55
- package/src/errors/__tests__/network_error.test.ts +0 -84
- package/src/errors/__tests__/other_error.test.ts +0 -53
- package/src/errors/__tests__/request_error.test.ts +0 -45
- package/src/errors/assertion_error.ts +0 -40
- package/src/errors/custom_loader_error.ts +0 -57
- package/src/errors/encrypted_media_error.ts +0 -71
- package/src/errors/error_codes.ts +0 -149
- package/src/errors/error_message.ts +0 -30
- package/src/errors/format_error.ts +0 -39
- package/src/errors/index.ts +0 -52
- package/src/errors/is_known_error.ts +0 -35
- package/src/errors/media_error.ts +0 -118
- package/src/errors/network_error.ts +0 -74
- package/src/errors/other_error.ts +0 -50
- package/src/errors/request_error.ts +0 -76
- package/src/experimental/README.md +0 -16
- package/src/experimental/features/__tests__/dash_wasm.test.ts +0 -44
- package/src/experimental/features/__tests__/debug_element.test.ts +0 -12
- package/src/experimental/features/__tests__/index.test.ts +0 -19
- package/src/experimental/features/__tests__/local.test.ts +0 -35
- package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -35
- package/src/experimental/features/dash_wasm.ts +0 -41
- package/src/experimental/features/debug_element.ts +0 -13
- package/src/experimental/features/index.ts +0 -20
- package/src/experimental/features/local.ts +0 -28
- package/src/experimental/features/metaplaylist.ts +0 -28
- package/src/experimental/index.ts +0 -5
- package/src/experimental/tools/VideoThumbnailLoader/features/dash.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/features/metaplaylist.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/index.ts +0 -25
- package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +0 -77
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +0 -75
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +0 -54
- package/src/experimental/tools/VideoThumbnailLoader/types.ts +0 -39
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +0 -423
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.ts +0 -34
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +0 -141
- package/src/experimental/tools/createMetaplaylist/index.ts +0 -72
- package/src/experimental/tools/index.ts +0 -27
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +0 -37
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -140
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -153
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -405
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -294
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -189
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/utils.test.ts +0 -361
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +0 -184
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +0 -169
- package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -18
- package/src/experimental/tools/mediaCapabilitiesProber/log.ts +0 -21
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +0 -67
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +0 -89
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/index.ts +0 -44
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +0 -105
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -54
- package/src/experimental/tools/mediaCapabilitiesProber/types.ts +0 -75
- package/src/experimental/tools/mediaCapabilitiesProber/utils.ts +0 -107
- package/src/experimental/tools/parseBIFThumbnails.ts +0 -39
- package/src/features/README.md +0 -11
- package/src/features/__tests__/add_features.test.ts +0 -69
- package/src/features/__tests__/initialize_features.test.ts +0 -674
- package/src/features/add_features.ts +0 -37
- package/src/features/features_object.ts +0 -37
- package/src/features/index.ts +0 -40
- package/src/features/initialize_features.ts +0 -136
- package/src/features/list/__tests__/bif_parser.test.ts +0 -30
- package/src/features/list/__tests__/dash.test.ts +0 -41
- package/src/features/list/__tests__/directfile.test.ts +0 -35
- package/src/features/list/__tests__/eme.test.ts +0 -28
- package/src/features/list/__tests__/html_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/html_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/image_buffer.test.ts +0 -28
- package/src/features/list/__tests__/index.test.ts +0 -55
- package/src/features/list/__tests__/native_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/native_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/smooth.test.ts +0 -36
- package/src/features/list/bif_parser.ts +0 -31
- package/src/features/list/dash.ts +0 -36
- package/src/features/list/directfile.ts +0 -35
- package/src/features/list/eme.ts +0 -29
- package/src/features/list/html_sami_parser.ts +0 -31
- package/src/features/list/html_srt_parser.ts +0 -31
- package/src/features/list/html_text_buffer.ts +0 -29
- package/src/features/list/html_ttml_parser.ts +0 -31
- package/src/features/list/html_vtt_parser.ts +0 -31
- package/src/features/list/image_buffer.ts +0 -29
- package/src/features/list/index.ts +0 -32
- package/src/features/list/native_sami_parser.ts +0 -32
- package/src/features/list/native_srt_parser.ts +0 -32
- package/src/features/list/native_text_buffer.ts +0 -30
- package/src/features/list/native_ttml_parser.ts +0 -32
- package/src/features/list/native_vtt_parser.ts +0 -32
- package/src/features/list/smooth.ts +0 -32
- package/src/features/types.ts +0 -183
- package/src/index.ts +0 -38
- package/src/log.ts +0 -22
- package/src/manifest/README.md +0 -55
- package/src/manifest/__tests__/adaptation.test.ts +0 -485
- package/src/manifest/__tests__/manifest.test.ts +0 -428
- package/src/manifest/__tests__/period.test.ts +0 -769
- package/src/manifest/__tests__/representation.test.ts +0 -297
- package/src/manifest/__tests__/update_period_in_place.test.ts +0 -1074
- package/src/manifest/__tests__/update_periods.test.ts +0 -845
- package/src/manifest/adaptation.ts +0 -294
- package/src/manifest/index.ts +0 -67
- package/src/manifest/manifest.ts +0 -811
- package/src/manifest/period.ts +0 -211
- package/src/manifest/representation.ts +0 -451
- package/src/manifest/representation_index/__tests__/static.test.ts +0 -74
- package/src/manifest/representation_index/index.ts +0 -31
- package/src/manifest/representation_index/static.ts +0 -158
- package/src/manifest/representation_index/types.ts +0 -433
- package/src/manifest/types.ts +0 -33
- package/src/manifest/update_period_in_place.ts +0 -142
- package/src/manifest/update_periods.ts +0 -201
- package/src/manifest/utils.ts +0 -60
- package/src/minimal.ts +0 -34
- package/src/parsers/README.md +0 -12
- package/src/parsers/containers/isobmff/constants.ts +0 -24
- package/src/parsers/containers/isobmff/create_box.ts +0 -81
- package/src/parsers/containers/isobmff/drm/index.ts +0 -17
- package/src/parsers/containers/isobmff/drm/playready.ts +0 -45
- package/src/parsers/containers/isobmff/get_box.ts +0 -278
- package/src/parsers/containers/isobmff/index.ts +0 -51
- package/src/parsers/containers/isobmff/read.ts +0 -105
- package/src/parsers/containers/isobmff/take_pssh_out.ts +0 -101
- package/src/parsers/containers/isobmff/utils.ts +0 -555
- package/src/parsers/containers/matroska/index.ts +0 -21
- package/src/parsers/containers/matroska/utils.ts +0 -313
- package/src/parsers/images/bif.ts +0 -128
- package/src/parsers/manifest/dash/common/__tests__/attach_trickmode_track.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +0 -37
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +0 -162
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +0 -165
- package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -118
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +0 -290
- package/src/parsers/manifest/dash/common/__tests__/parse_availability_start_time.test.ts +0 -63
- package/src/parsers/manifest/dash/common/attach_trickmode_track.ts +0 -55
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +0 -32
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +0 -87
- package/src/parsers/manifest/dash/common/get_clock_offset.ts +0 -41
- package/src/parsers/manifest/dash/common/get_hdr_information.ts +0 -94
- package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +0 -46
- package/src/parsers/manifest/dash/common/get_minimum_and_maximum_positions.ts +0 -39
- package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +0 -91
- package/src/parsers/manifest/dash/common/index.ts +0 -40
- package/src/parsers/manifest/dash/common/indexes/__tests__/tokens.test.ts +0 -60
- package/src/parsers/manifest/dash/common/indexes/base.ts +0 -444
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +0 -55
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +0 -148
- package/src/parsers/manifest/dash/common/indexes/index.ts +0 -39
- package/src/parsers/manifest/dash/common/indexes/list.ts +0 -338
- package/src/parsers/manifest/dash/common/indexes/template.ts +0 -652
- package/src/parsers/manifest/dash/common/indexes/timeline/__tests__/parse_s_element.test.ts +0 -115
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +0 -54
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.ts +0 -102
- package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +0 -66
- package/src/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.ts +0 -153
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +0 -21
- package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +0 -72
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +0 -1049
- package/src/parsers/manifest/dash/common/indexes/tokens.ts +0 -127
- package/src/parsers/manifest/dash/common/indexes/utils.ts +0 -32
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +0 -142
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +0 -165
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +0 -569
- package/src/parsers/manifest/dash/common/parse_availability_start_time.ts +0 -35
- package/src/parsers/manifest/dash/common/parse_mpd.ts +0 -399
- package/src/parsers/manifest/dash/common/parse_periods.ts +0 -363
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +0 -199
- package/src/parsers/manifest/dash/common/parse_representations.ts +0 -352
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +0 -58
- package/src/parsers/manifest/dash/index.ts +0 -22
- package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -45
- package/src/parsers/manifest/dash/js-parser/index.ts +0 -18
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +0 -381
- package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.ts +0 -49
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.ts +0 -94
- package/src/parsers/manifest/dash/js-parser/node_parsers/EventStream.ts +0 -117
- package/src/parsers/manifest/dash/js-parser/node_parsers/Initialization.ts +0 -48
- package/src/parsers/manifest/dash/js-parser/node_parsers/MPD.ts +0 -180
- package/src/parsers/manifest/dash/js-parser/node_parsers/Period.ts +0 -152
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +0 -234
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +0 -112
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentList.ts +0 -50
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +0 -98
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.ts +0 -63
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +0 -407
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentComponent.test.ts +0 -67
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +0 -223
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +0 -139
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentTimeline.test.ts +0 -119
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +0 -205
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/utils.test.ts +0 -218
- package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +0 -384
- package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +0 -129
- package/src/parsers/manifest/dash/node_parser_types.ts +0 -431
- package/src/parsers/manifest/dash/parsers_types.ts +0 -91
- package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +0 -25
- package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +0 -16
- package/src/parsers/manifest/dash/wasm-parser/README.md +0 -267
- package/src/parsers/manifest/dash/wasm-parser/index.ts +0 -21
- package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +0 -28
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +0 -373
- package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +0 -85
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +0 -414
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +0 -472
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +0 -72
- package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +0 -17
- package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +0 -147
- package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +0 -217
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +0 -477
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +0 -343
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -38
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.ts +0 -53
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +0 -62
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +0 -144
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +0 -183
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +0 -180
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +0 -215
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.ts +0 -44
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +0 -115
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +0 -61
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +0 -133
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.ts +0 -70
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/index.ts +0 -17
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/parsers_stack.ts +0 -80
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +0 -298
- package/src/parsers/manifest/dash/wasm-parser/ts/utils.ts +0 -47
- package/src/parsers/manifest/index.ts +0 -17
- package/src/parsers/manifest/local/index.ts +0 -25
- package/src/parsers/manifest/local/parse_local_manifest.ts +0 -164
- package/src/parsers/manifest/local/representation_index.ts +0 -246
- package/src/parsers/manifest/local/types.ts +0 -291
- package/src/parsers/manifest/metaplaylist/index.ts +0 -28
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +0 -335
- package/src/parsers/manifest/metaplaylist/representation_index.ts +0 -251
- package/src/parsers/manifest/smooth/create_parser.ts +0 -699
- package/src/parsers/manifest/smooth/get_codecs.ts +0 -55
- package/src/parsers/manifest/smooth/index.ts +0 -26
- package/src/parsers/manifest/smooth/parse_C_nodes.ts +0 -69
- package/src/parsers/manifest/smooth/parse_protection_node.ts +0 -72
- package/src/parsers/manifest/smooth/representation_index.ts +0 -704
- package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +0 -77
- package/src/parsers/manifest/smooth/utils/parseBoolean.ts +0 -31
- package/src/parsers/manifest/smooth/utils/reduceChildren.ts +0 -36
- package/src/parsers/manifest/smooth/utils/tokens.ts +0 -46
- package/src/parsers/manifest/types.ts +0 -395
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/index_helpers.test.ts +0 -55
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +0 -546
- package/src/parsers/manifest/utils/check_manifest_ids.ts +0 -83
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +0 -74
- package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +0 -48
- package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +0 -50
- package/src/parsers/manifest/utils/get_maximum_positions.ts +0 -87
- package/src/parsers/manifest/utils/get_minimum_position.ts +0 -80
- package/src/parsers/manifest/utils/index_helpers.ts +0 -204
- package/src/parsers/manifest/utils/update_segment_timeline.ts +0 -141
- package/src/parsers/texttracks/index.ts +0 -21
- package/src/parsers/texttracks/sami/html.ts +0 -219
- package/src/parsers/texttracks/sami/native.ts +0 -192
- package/src/parsers/texttracks/srt/__tests__/find_end_of_cue_block.test.ts +0 -99
- package/src/parsers/texttracks/srt/__tests__/get_cue_blocks.test.ts +0 -119
- package/src/parsers/texttracks/srt/__tests__/parse_cue.test.ts +0 -123
- package/src/parsers/texttracks/srt/__tests__/parse_timestamp.test.ts +0 -36
- package/src/parsers/texttracks/srt/find_end_of_cue_block.ts +0 -46
- package/src/parsers/texttracks/srt/get_cue_blocks.ts +0 -49
- package/src/parsers/texttracks/srt/html.ts +0 -182
- package/src/parsers/texttracks/srt/native.ts +0 -74
- package/src/parsers/texttracks/srt/parse_cue.ts +0 -76
- package/src/parsers/texttracks/srt/parse_timestamp.ts +0 -37
- package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +0 -248
- package/src/parsers/texttracks/ttml/get_parameters.ts +0 -106
- package/src/parsers/texttracks/ttml/get_styling.ts +0 -146
- package/src/parsers/texttracks/ttml/get_time_delimiters.ts +0 -49
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +0 -190
- package/src/parsers/texttracks/ttml/html/__tests__/generate_css_test_outline.test.ts +0 -32
- package/src/parsers/texttracks/ttml/html/__tests__/ttml_color_to_css_color.test.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.ts +0 -67
- package/src/parsers/texttracks/ttml/html/apply_extent.ts +0 -65
- package/src/parsers/texttracks/ttml/html/apply_font_size.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_line_height.ts +0 -50
- package/src/parsers/texttracks/ttml/html/apply_origin.ts +0 -64
- package/src/parsers/texttracks/ttml/html/apply_padding.ts +0 -141
- package/src/parsers/texttracks/ttml/html/create_element.ts +0 -549
- package/src/parsers/texttracks/ttml/html/generate_css_test_outline.ts +0 -46
- package/src/parsers/texttracks/ttml/html/index.ts +0 -23
- package/src/parsers/texttracks/ttml/html/parse_cue.ts +0 -65
- package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +0 -58
- package/src/parsers/texttracks/ttml/html/ttml_color_to_css_color.ts +0 -68
- package/src/parsers/texttracks/ttml/native/index.ts +0 -23
- package/src/parsers/texttracks/ttml/native/parse_cue.ts +0 -245
- package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +0 -39
- package/src/parsers/texttracks/ttml/parse_ttml.ts +0 -206
- package/src/parsers/texttracks/ttml/regexps.ts +0 -65
- package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +0 -84
- package/src/parsers/texttracks/ttml/time_parsing.ts +0 -156
- package/src/parsers/texttracks/ttml/xml_utils.ts +0 -166
- package/src/parsers/texttracks/types.ts +0 -34
- package/src/parsers/texttracks/webvtt/__tests__/get_cue_blocks.test.ts +0 -218
- package/src/parsers/texttracks/webvtt/__tests__/get_style_blocks.test.ts +0 -65
- package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +0 -249
- package/src/parsers/texttracks/webvtt/__tests__/parse_timestamp.test.ts +0 -39
- package/src/parsers/texttracks/webvtt/__tests__/utils.test.ts +0 -401
- package/src/parsers/texttracks/webvtt/get_cue_blocks.ts +0 -51
- package/src/parsers/texttracks/webvtt/get_style_blocks.ts +0 -56
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +0 -106
- package/src/parsers/texttracks/webvtt/html/__tests__/create_default_style_elements.test.ts +0 -44
- package/src/parsers/texttracks/webvtt/html/__tests__/create_style_attribute.test.ts +0 -139
- package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +0 -140
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +0 -345
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +0 -181
- package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +0 -234
- package/src/parsers/texttracks/webvtt/html/convert_payload_to_html.ts +0 -46
- package/src/parsers/texttracks/webvtt/html/create_default_style_elements.ts +0 -26
- package/src/parsers/texttracks/webvtt/html/create_style_attribute.ts +0 -222
- package/src/parsers/texttracks/webvtt/html/create_styled_element.ts +0 -95
- package/src/parsers/texttracks/webvtt/html/index.ts +0 -25
- package/src/parsers/texttracks/webvtt/html/parse_style_block.ts +0 -76
- package/src/parsers/texttracks/webvtt/html/parse_webvtt_to_div.ts +0 -67
- package/src/parsers/texttracks/webvtt/html/to_html.ts +0 -96
- package/src/parsers/texttracks/webvtt/native/index.ts +0 -23
- package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +0 -70
- package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +0 -95
- package/src/parsers/texttracks/webvtt/native/to_native_cue.ts +0 -34
- package/src/parsers/texttracks/webvtt/parse_cue_block.ts +0 -128
- package/src/parsers/texttracks/webvtt/parse_timestamp.ts +0 -40
- package/src/parsers/texttracks/webvtt/utils.ts +0 -135
- package/src/public_types.ts +0 -846
- package/src/tools/README.md +0 -4
- package/src/tools/TextTrackRenderer/index.ts +0 -28
- package/src/tools/TextTrackRenderer/text_track_renderer.ts +0 -107
- package/src/tools/index.ts +0 -20
- package/src/tools/string_utils.ts +0 -24
- package/src/transports/README.md +0 -276
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -98
- package/src/transports/dash/construct_segment_url.ts +0 -28
- package/src/transports/dash/extract_complete_chunks.ts +0 -66
- package/src/transports/dash/get_events_out_of_emsgs.ts +0 -105
- package/src/transports/dash/image_pipelines.ts +0 -122
- package/src/transports/dash/index.ts +0 -23
- package/src/transports/dash/init_segment_loader.ts +0 -114
- package/src/transports/dash/low_latency_segment_loader.ts +0 -87
- package/src/transports/dash/manifest_parser.ts +0 -325
- package/src/transports/dash/pipelines.ts +0 -72
- package/src/transports/dash/segment_loader.ts +0 -249
- package/src/transports/dash/segment_parser.ts +0 -194
- package/src/transports/dash/text_loader.ts +0 -120
- package/src/transports/dash/text_parser.ts +0 -234
- package/src/transports/index.ts +0 -17
- package/src/transports/local/index.ts +0 -18
- package/src/transports/local/pipelines.ts +0 -100
- package/src/transports/local/segment_loader.ts +0 -198
- package/src/transports/local/segment_parser.ts +0 -101
- package/src/transports/local/text_parser.ts +0 -185
- package/src/transports/metaplaylist/README.md +0 -94
- package/src/transports/metaplaylist/index.ts +0 -23
- package/src/transports/metaplaylist/manifest_loader.ts +0 -62
- package/src/transports/metaplaylist/pipelines.ts +0 -425
- package/src/transports/smooth/extract_timings_infos.ts +0 -142
- package/src/transports/smooth/index.ts +0 -23
- package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +0 -231
- package/src/transports/smooth/isobmff/create_audio_init_segment.ts +0 -84
- package/src/transports/smooth/isobmff/create_boxes.ts +0 -481
- package/src/transports/smooth/isobmff/create_init_segment.ts +0 -100
- package/src/transports/smooth/isobmff/create_traf_box.ts +0 -40
- package/src/transports/smooth/isobmff/create_video_init_segment.ts +0 -78
- package/src/transports/smooth/isobmff/get_aaces_header.ts +0 -62
- package/src/transports/smooth/isobmff/index.ts +0 -32
- package/src/transports/smooth/isobmff/parse_tfrf.ts +0 -57
- package/src/transports/smooth/isobmff/parse_tfxd.ts +0 -38
- package/src/transports/smooth/isobmff/patch_segment.ts +0 -171
- package/src/transports/smooth/pipelines.ts +0 -533
- package/src/transports/smooth/segment_loader.ts +0 -288
- package/src/transports/smooth/utils.ts +0 -106
- package/src/transports/types.ts +0 -809
- package/src/transports/utils/__tests__/byte_range.test.ts +0 -35
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +0 -148
- package/src/transports/utils/__tests__/find_complete_box.test.ts +0 -138
- package/src/transports/utils/__tests__/infer_segment_container.test.ts +0 -227
- package/src/transports/utils/byte_range.ts +0 -25
- package/src/transports/utils/call_custom_manifest_loader.ts +0 -147
- package/src/transports/utils/check_isobmff_integrity.ts +0 -50
- package/src/transports/utils/find_complete_box.ts +0 -63
- package/src/transports/utils/generate_manifest_loader.ts +0 -97
- package/src/transports/utils/get_isobmff_timing_infos.ts +0 -86
- package/src/transports/utils/infer_segment_container.ts +0 -56
- package/src/transports/utils/parse_text_track.ts +0 -176
- package/src/typings/README.md +0 -7
- package/src/typings/globals.d.ts +0 -83
- package/src/typings/next-tick.d.ts +0 -23
- package/src/utils/README.md +0 -5
- package/src/utils/__tests__/are_arrays_of_numbers_equal.test.ts +0 -86
- package/src/utils/__tests__/are_codecs_compatible.test.ts +0 -88
- package/src/utils/__tests__/array_find.test.ts +0 -113
- package/src/utils/__tests__/array_find_index.test.ts +0 -113
- package/src/utils/__tests__/array_includes.test.ts +0 -151
- package/src/utils/__tests__/assert.test.ts +0 -237
- package/src/utils/__tests__/assert_unreachable.test.ts +0 -40
- package/src/utils/__tests__/base64.test.ts +0 -147
- package/src/utils/__tests__/byte_parsing.test.ts +0 -267
- package/src/utils/__tests__/deep_merge.test.ts +0 -48
- package/src/utils/__tests__/event_emitter.test.ts +0 -579
- package/src/utils/__tests__/flat_map.test.ts +0 -71
- package/src/utils/__tests__/get_fuzzed_delay.test.ts +0 -32
- package/src/utils/__tests__/hash_buffer.test.ts +0 -105
- package/src/utils/__tests__/id_generator.test.ts +0 -80
- package/src/utils/__tests__/initialization_segment_cache.test.ts +0 -245
- package/src/utils/__tests__/is_non_empty_string.test.ts +0 -41
- package/src/utils/__tests__/is_null_or_undefined.test.ts +0 -33
- package/src/utils/__tests__/list_to_map.test.ts +0 -46
- package/src/utils/__tests__/logger.test.ts +0 -214
- package/src/utils/__tests__/noop.test.ts +0 -23
- package/src/utils/__tests__/object_assign.test.ts +0 -56
- package/src/utils/__tests__/object_values.test.ts +0 -26
- package/src/utils/__tests__/ranges.test.ts +0 -907
- package/src/utils/__tests__/resolve_url.test.ts +0 -100
- package/src/utils/__tests__/simple_set.test.ts +0 -57
- package/src/utils/__tests__/sorted_list.test.ts +0 -335
- package/src/utils/__tests__/starts_with.test.ts +0 -65
- package/src/utils/__tests__/string_parsing.test.ts +0 -267
- package/src/utils/__tests__/uniq.test.ts +0 -134
- package/src/utils/__tests__/warn_once.test.ts +0 -38
- package/src/utils/__tests__/weak_map_memory.test.ts +0 -188
- package/src/utils/are_arrays_of_numbers_equal.ts +0 -39
- package/src/utils/are_codecs_compatible.ts +0 -51
- package/src/utils/array_find.ts +0 -55
- package/src/utils/array_find_index.ts +0 -54
- package/src/utils/array_includes.ts +0 -93
- package/src/utils/assert.ts +0 -65
- package/src/utils/assert_unreachable.ts +0 -45
- package/src/utils/base64.ts +0 -153
- package/src/utils/byte_parsing.ts +0 -256
- package/src/utils/cancellable_sleep.ts +0 -41
- package/src/utils/create_cancellable_promise.ts +0 -69
- package/src/utils/deep_merge.ts +0 -49
- package/src/utils/event_emitter.ts +0 -147
- package/src/utils/flat_map.ts +0 -50
- package/src/utils/get_fuzzed_delay.ts +0 -27
- package/src/utils/hash_buffer.ts +0 -42
- package/src/utils/id_generator.ts +0 -35
- package/src/utils/initialization_segment_cache.ts +0 -68
- package/src/utils/is_non_empty_string.ts +0 -23
- package/src/utils/is_null_or_undefined.ts +0 -27
- package/src/utils/languages/ISO_639-1_to_ISO_639-3.ts +0 -207
- package/src/utils/languages/ISO_639-2_to_ISO_639-3.ts +0 -43
- package/src/utils/languages/__tests__/normalize.test.ts +0 -290
- package/src/utils/languages/index.ts +0 -29
- package/src/utils/languages/normalize.ts +0 -152
- package/src/utils/list_to_map.ts +0 -32
- package/src/utils/logger.ts +0 -100
- package/src/utils/noop.ts +0 -26
- package/src/utils/object_assign.ts +0 -60
- package/src/utils/object_values.ts +0 -31
- package/src/utils/ranges.ts +0 -499
- package/src/utils/reference.ts +0 -390
- package/src/utils/request/fetch.ts +0 -250
- package/src/utils/request/index.ts +0 -38
- package/src/utils/request/xhr.ts +0 -287
- package/src/utils/resolve_url.ts +0 -126
- package/src/utils/retry_promise_with_backoff.ts +0 -95
- package/src/utils/simple_set.ts +0 -67
- package/src/utils/sleep.ts +0 -14
- package/src/utils/slice_uint8array.ts +0 -53
- package/src/utils/sorted_list.ts +0 -240
- package/src/utils/starts_with.ts +0 -42
- package/src/utils/string_parsing.ts +0 -414
- package/src/utils/task_canceller.ts +0 -367
- package/src/utils/uniq.ts +0 -49
- package/src/utils/warn_once.ts +0 -34
- package/src/utils/weak_map_memory.ts +0 -89
- package/src/utils/wrapInPromise.ts +0 -24
- package/tsconfig.json +0 -28
- package/tsconfig.modules.json +0 -36
package/src/utils/reference.ts
DELETED
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import arrayFindIndex from "./array_find_index";
|
|
18
|
-
import noop from "./noop";
|
|
19
|
-
import { CancellationSignal } from "./task_canceller";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A value behind a shared reference, meaning that any update to its value from
|
|
23
|
-
* anywhere can be retrieved from any other parts of the code in possession of
|
|
24
|
-
* the same `SharedReference`.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```ts
|
|
28
|
-
* const myVal = 1;
|
|
29
|
-
* const myRef : SharedReference<number> = new SharedReference(1);
|
|
30
|
-
*
|
|
31
|
-
* function setValTo2(num : number) {
|
|
32
|
-
* num = 2;
|
|
33
|
-
* }
|
|
34
|
-
*
|
|
35
|
-
* function setRefTo2(num : SharedReference<number>) {
|
|
36
|
-
* num.setValue(2);
|
|
37
|
-
* }
|
|
38
|
-
*
|
|
39
|
-
* setValTo2(myVal);
|
|
40
|
-
* console.log(myVal); // output: 1
|
|
41
|
-
*
|
|
42
|
-
* myRef.onUpdate((val) => {
|
|
43
|
-
* console.log(val); // outputs first synchronously `1`, then `2`
|
|
44
|
-
* }, { emitCurrentValue: true });
|
|
45
|
-
*
|
|
46
|
-
* setRefTo2(myRef);
|
|
47
|
-
* console.log(myRef.getValue()); // output: 2
|
|
48
|
-
*
|
|
49
|
-
* myRef.listen((val) => {
|
|
50
|
-
* console.log(val); // outputs only `2`
|
|
51
|
-
* }, { emitCurrentValue: true });
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* This type was added because we found that the usage of an explicit type for
|
|
55
|
-
* those use cases makes the intent of the corresponding code clearer.
|
|
56
|
-
*/
|
|
57
|
-
class SharedReference<T> {
|
|
58
|
-
/** Current value referenced by this `SharedReference`. */
|
|
59
|
-
private _value : T;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Attributes each linked to a single registered callbacks which listen to the
|
|
63
|
-
* referenced value's updates.
|
|
64
|
-
*
|
|
65
|
-
* Contains the following properties:
|
|
66
|
-
* - `trigger`: Function which will be called with the new reference's value
|
|
67
|
-
* once it changes
|
|
68
|
-
* - `complete`: Allows to clean-up the listener, will be called once the
|
|
69
|
-
* reference is finished.
|
|
70
|
-
* - `hasBeenCleared`: becomes `true` when the reference is
|
|
71
|
-
* removed from the `cbs` array.
|
|
72
|
-
* Adding this property allows to detect when a previously-added
|
|
73
|
-
* listener has since been removed e.g. as a side-effect during a
|
|
74
|
-
* function call.
|
|
75
|
-
* - `complete`: Callback to call when the current Reference is "finished".
|
|
76
|
-
*/
|
|
77
|
-
private _listeners : Array<{ trigger : (a: T, stopListening: () => void) => void;
|
|
78
|
-
complete : () => void;
|
|
79
|
-
hasBeenCleared : boolean; }>;
|
|
80
|
-
/**
|
|
81
|
-
* Set to `true` when this `SharedReference` is finished in which case it
|
|
82
|
-
* cannot be updated nor emit values anymore.
|
|
83
|
-
*/
|
|
84
|
-
private _isFinished : boolean;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Callbacks triggered when the `SharedReference` is finished.
|
|
88
|
-
*/
|
|
89
|
-
private _onFinishCbs : Array<{ trigger : () => void;
|
|
90
|
-
hasBeenCleared : boolean; }>;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Store a reference to the callback allowing to finish the `SharedReference`
|
|
94
|
-
* on some event. Allows to remove the logic when it's not needed anymore.
|
|
95
|
-
*/
|
|
96
|
-
private _deregisterCancellation: (() => void) | undefined;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Create a `SharedReference` object encapsulating the mutable `initialValue`
|
|
100
|
-
* value of type T.
|
|
101
|
-
* @param {*} initialValue
|
|
102
|
-
* @param {Object|undefined} [cancelSignal] - If set, the created shared
|
|
103
|
-
* reference will be automatically "finished" once that signal emits.
|
|
104
|
-
* Finished references won't be able to update their value anymore, and will
|
|
105
|
-
* also automatically have their listeners (callbacks linked to value change)
|
|
106
|
-
* removed - as they cannot be triggered anymore, thus providing a security
|
|
107
|
-
* against memory leaks.
|
|
108
|
-
*/
|
|
109
|
-
constructor(initialValue: T, cancelSignal?: CancellationSignal) {
|
|
110
|
-
this._value = initialValue;
|
|
111
|
-
this._listeners = [];
|
|
112
|
-
this._isFinished = false;
|
|
113
|
-
this._onFinishCbs = [];
|
|
114
|
-
if (cancelSignal !== undefined) {
|
|
115
|
-
this._deregisterCancellation = cancelSignal.register(() => this.finish());
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Returns the current value of this shared reference.
|
|
121
|
-
* @returns {*}
|
|
122
|
-
*/
|
|
123
|
-
public getValue() : T {
|
|
124
|
-
return this._value;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Update the value of this shared reference.
|
|
129
|
-
* @param {*} newVal
|
|
130
|
-
*/
|
|
131
|
-
public setValue(newVal : T) : void {
|
|
132
|
-
if (this._isFinished) {
|
|
133
|
-
if (__ENVIRONMENT__.CURRENT_ENV as number === __ENVIRONMENT__.DEV as number) {
|
|
134
|
-
/* eslint-disable-next-line no-console */
|
|
135
|
-
console.error("Finished shared references cannot be updated");
|
|
136
|
-
}
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
this._value = newVal;
|
|
140
|
-
|
|
141
|
-
if (this._listeners.length === 0) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const clonedCbs = this._listeners.slice();
|
|
145
|
-
for (const cbObj of clonedCbs) {
|
|
146
|
-
try {
|
|
147
|
-
if (!cbObj.hasBeenCleared) {
|
|
148
|
-
cbObj.trigger(newVal, cbObj.complete);
|
|
149
|
-
}
|
|
150
|
-
} catch (_) {
|
|
151
|
-
/* nothing */
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Update the value of this shared reference only if the value changed.
|
|
158
|
-
*
|
|
159
|
-
* Note that this function only performs a strict equality reference through
|
|
160
|
-
* the "===" operator. Different objects that are structurally the same will
|
|
161
|
-
* thus be considered different.
|
|
162
|
-
* @param {*} newVal
|
|
163
|
-
*/
|
|
164
|
-
public setValueIfChanged(newVal : T) : void {
|
|
165
|
-
if (newVal !== this._value) {
|
|
166
|
-
this.setValue(newVal);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Allows to register a callback to be called each time the value inside the
|
|
172
|
-
* reference is updated.
|
|
173
|
-
* @param {Function} cb - Callback to be called each time the reference is
|
|
174
|
-
* updated. Takes as first argument its new value and in second argument a
|
|
175
|
-
* callback allowing to unregister the callback.
|
|
176
|
-
* @param {Object|undefined} [options]
|
|
177
|
-
* @param {Object|undefined} [options.clearSignal] - Allows to provide a
|
|
178
|
-
* CancellationSignal which will unregister the callback when it emits.
|
|
179
|
-
* @param {boolean|undefined} [options.emitCurrentValue] - If `true`, the
|
|
180
|
-
* callback will also be immediately called with the current value.
|
|
181
|
-
*/
|
|
182
|
-
public onUpdate(
|
|
183
|
-
cb : (val : T, stopListening : () => void) => void,
|
|
184
|
-
options? : {
|
|
185
|
-
clearSignal?: CancellationSignal | undefined;
|
|
186
|
-
emitCurrentValue?: boolean | undefined;
|
|
187
|
-
} | undefined
|
|
188
|
-
) : void {
|
|
189
|
-
const unlisten = (): void => {
|
|
190
|
-
if (options?.clearSignal !== undefined) {
|
|
191
|
-
options.clearSignal.deregister(unlisten);
|
|
192
|
-
}
|
|
193
|
-
if (cbObj.hasBeenCleared) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
cbObj.hasBeenCleared = true;
|
|
197
|
-
const indexOf = this._listeners.indexOf(cbObj);
|
|
198
|
-
if (indexOf >= 0) {
|
|
199
|
-
this._listeners.splice(indexOf, 1);
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
const cbObj = { trigger: cb,
|
|
204
|
-
complete: unlisten,
|
|
205
|
-
hasBeenCleared: false };
|
|
206
|
-
this._listeners.push(cbObj);
|
|
207
|
-
|
|
208
|
-
if (options?.emitCurrentValue === true) {
|
|
209
|
-
cb(this._value, unlisten);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (this._isFinished || cbObj.hasBeenCleared) {
|
|
213
|
-
unlisten();
|
|
214
|
-
return ;
|
|
215
|
-
}
|
|
216
|
-
if (options?.clearSignal === undefined) {
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
options.clearSignal.register(unlisten);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Variant of `onUpdate` which will only call the callback once, once the
|
|
224
|
-
* value inside the reference is different from `undefined`.
|
|
225
|
-
* The callback is called synchronously if the value already isn't set to
|
|
226
|
-
* `undefined`.
|
|
227
|
-
*
|
|
228
|
-
* This method can be used as a lighter weight alternative to `onUpdate` when
|
|
229
|
-
* just waiting that the stored value becomes defined.
|
|
230
|
-
* As such, it is an explicit equivalent to something like:
|
|
231
|
-
* ```js
|
|
232
|
-
* myReference.onUpdate((newVal, stopListening) => {
|
|
233
|
-
* if (newVal !== undefined) {
|
|
234
|
-
* stopListening();
|
|
235
|
-
*
|
|
236
|
-
* // ... do the logic
|
|
237
|
-
* }
|
|
238
|
-
* }, { emitCurrentValue: true });
|
|
239
|
-
* ```
|
|
240
|
-
* @param {Function} cb - Callback to be called each time the reference is
|
|
241
|
-
* updated. Takes the new value in argument.
|
|
242
|
-
* @param {Object | undefined} [options]
|
|
243
|
-
* @param {Object | undefined} [options.clearSignal] - Allows to provide a
|
|
244
|
-
* CancellationSignal which will unregister the callback when it emits.
|
|
245
|
-
*/
|
|
246
|
-
public waitUntilDefined(
|
|
247
|
-
cb : (val : Exclude<T, undefined>) => void,
|
|
248
|
-
options? : { clearSignal?: CancellationSignal | undefined } |
|
|
249
|
-
undefined
|
|
250
|
-
) : void {
|
|
251
|
-
this.onUpdate((val : T, stopListening) => {
|
|
252
|
-
if (val !== undefined) {
|
|
253
|
-
stopListening();
|
|
254
|
-
cb(this._value as Exclude<T, undefined>);
|
|
255
|
-
}
|
|
256
|
-
}, { clearSignal: options?.clearSignal, emitCurrentValue: true });
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* Allows to register a callback for when the Shared Reference is "finished".
|
|
261
|
-
*
|
|
262
|
-
* This function is mostly there for implementing operators on the shared
|
|
263
|
-
* reference and isn't meant to be used by regular code, hence it being
|
|
264
|
-
* prefixed by `_`.
|
|
265
|
-
* @param {Function} cb - Callback to be called once the reference is
|
|
266
|
-
* finished.
|
|
267
|
-
* @param {Object} onFinishCancelSignal - Allows to provide a
|
|
268
|
-
* CancellationSignal which will unregister the callback when it emits.
|
|
269
|
-
*/
|
|
270
|
-
public _onFinished(
|
|
271
|
-
cb: () => void,
|
|
272
|
-
onFinishCancelSignal: CancellationSignal
|
|
273
|
-
) : () => void {
|
|
274
|
-
if (onFinishCancelSignal.isCancelled()) {
|
|
275
|
-
return noop;
|
|
276
|
-
}
|
|
277
|
-
const cleanUp = (): void => {
|
|
278
|
-
const indexOf = arrayFindIndex(this._onFinishCbs, (x) => x.trigger === trigger);
|
|
279
|
-
if (indexOf >= 0) {
|
|
280
|
-
this._onFinishCbs[indexOf].hasBeenCleared = true;
|
|
281
|
-
this._onFinishCbs.splice(indexOf, 1);
|
|
282
|
-
}
|
|
283
|
-
};
|
|
284
|
-
const trigger = () => {
|
|
285
|
-
cleanUp();
|
|
286
|
-
cb();
|
|
287
|
-
};
|
|
288
|
-
const deregisterCancellation = onFinishCancelSignal.register(cleanUp);
|
|
289
|
-
this._onFinishCbs.push({ trigger, hasBeenCleared: false });
|
|
290
|
-
return deregisterCancellation;
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Indicate that no new values will be emitted.
|
|
296
|
-
* Allows to automatically free all listeners linked to this reference.
|
|
297
|
-
*/
|
|
298
|
-
public finish() {
|
|
299
|
-
if (this._deregisterCancellation !== undefined) {
|
|
300
|
-
this._deregisterCancellation();
|
|
301
|
-
}
|
|
302
|
-
this._isFinished = true;
|
|
303
|
-
const clonedCbs = this._listeners.slice();
|
|
304
|
-
for (const cbObj of clonedCbs) {
|
|
305
|
-
try {
|
|
306
|
-
if (!cbObj.hasBeenCleared) {
|
|
307
|
-
cbObj.complete();
|
|
308
|
-
cbObj.hasBeenCleared = true;
|
|
309
|
-
}
|
|
310
|
-
} catch (_) {
|
|
311
|
-
/* nothing */
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
this._listeners.length = 0;
|
|
315
|
-
if (this._onFinishCbs.length > 0) {
|
|
316
|
-
const clonedFinishedCbs = this._onFinishCbs.slice();
|
|
317
|
-
for (const cbObj of clonedFinishedCbs) {
|
|
318
|
-
try {
|
|
319
|
-
if (!cbObj.hasBeenCleared) {
|
|
320
|
-
cbObj.trigger();
|
|
321
|
-
cbObj.hasBeenCleared = true;
|
|
322
|
-
}
|
|
323
|
-
} catch (_) {
|
|
324
|
-
/* nothing */
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
this._onFinishCbs.length = 0;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* A `SharedReference` which can only be read and not updated.
|
|
334
|
-
*
|
|
335
|
-
* Because a `SharedReference` is structurally compatible to a
|
|
336
|
-
* `IReadOnlySharedReference`, and because of TypeScript variance rules, it can
|
|
337
|
-
* be upcasted into a `IReadOnlySharedReference` at any time to make it clear in
|
|
338
|
-
* the code that some logic is not supposed to update the referenced value.
|
|
339
|
-
*
|
|
340
|
-
* @example
|
|
341
|
-
* ```ts
|
|
342
|
-
* const myReference : SharedReference<number> = new SharedReference(4);
|
|
343
|
-
*
|
|
344
|
-
* function shouldOnlyReadIt(roRef : IReadOnlySharedReference<number>) {
|
|
345
|
-
* console.log("current value:", roRef.getValue());
|
|
346
|
-
* }
|
|
347
|
-
*
|
|
348
|
-
* shouldOnlyReadIt(myReference); // output: "current value: 4"
|
|
349
|
-
*
|
|
350
|
-
* myReference.setValue(12);
|
|
351
|
-
* shouldOnlyReadIt(myReference); // output: "current value: 12"
|
|
352
|
-
* ```
|
|
353
|
-
*/
|
|
354
|
-
export type IReadOnlySharedReference<T> =
|
|
355
|
-
Pick<SharedReference<T>,
|
|
356
|
-
"getValue" |
|
|
357
|
-
"onUpdate" |
|
|
358
|
-
"waitUntilDefined" |
|
|
359
|
-
"_onFinished">;
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Create a new `SharedReference` based on another one by mapping over its
|
|
363
|
-
* referenced value each time it is updated and finishing once it finishes.
|
|
364
|
-
* @param {Object} originalRef - The Original `SharedReference` you wish to map
|
|
365
|
-
* over.
|
|
366
|
-
* @param {Function} mappingFn - The mapping function which will receives
|
|
367
|
-
* `originalRef`'s value and outputs this new reference's value.
|
|
368
|
-
* @param {Object} cancellationSignal - Optionally, a `CancellationSignal` which
|
|
369
|
-
* will finish that reference when it emits.
|
|
370
|
-
* @returns {Object} - The new, mapped, reference.
|
|
371
|
-
*/
|
|
372
|
-
export function createMappedReference<T, U>(
|
|
373
|
-
originalRef : IReadOnlySharedReference<T>,
|
|
374
|
-
mappingFn : (x : T) => U,
|
|
375
|
-
cancellationSignal : CancellationSignal
|
|
376
|
-
) : IReadOnlySharedReference<U> {
|
|
377
|
-
const newRef = new SharedReference(mappingFn(originalRef.getValue()),
|
|
378
|
-
cancellationSignal);
|
|
379
|
-
originalRef.onUpdate(function mapOriginalReference(x) {
|
|
380
|
-
newRef.setValue(mappingFn(x));
|
|
381
|
-
}, { clearSignal: cancellationSignal });
|
|
382
|
-
|
|
383
|
-
originalRef._onFinished(() => {
|
|
384
|
-
newRef.finish();
|
|
385
|
-
}, cancellationSignal);
|
|
386
|
-
|
|
387
|
-
return newRef;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
export default SharedReference;
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
NetworkErrorTypes,
|
|
19
|
-
RequestError,
|
|
20
|
-
} from "../../errors";
|
|
21
|
-
import log from "../../log";
|
|
22
|
-
import isNullOrUndefined from "../is_null_or_undefined";
|
|
23
|
-
import {
|
|
24
|
-
CancellationError,
|
|
25
|
-
CancellationSignal,
|
|
26
|
-
} from "../task_canceller";
|
|
27
|
-
|
|
28
|
-
/** Object returned by `fetchRequest` after the fetch operation succeeded. */
|
|
29
|
-
export interface IFetchedStreamComplete {
|
|
30
|
-
/** Duration of the whole request, in milliseconds. */
|
|
31
|
-
requestDuration : number;
|
|
32
|
-
/** Result of `performance.now()` at the time the request was received. */
|
|
33
|
-
receivedTime : number;
|
|
34
|
-
/** Result of `performance.now()` at the time the request was started. */
|
|
35
|
-
sendingTime : number;
|
|
36
|
-
/** Size of the entire emitted data, in bytes. */
|
|
37
|
-
size : number;
|
|
38
|
-
/** HTTP status of the request performed. */
|
|
39
|
-
status : number;
|
|
40
|
-
/** URL of the recuperated data (post-redirection if one). */
|
|
41
|
-
url : string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Object emitted by `fetchRequest` when a new chunk of the data is available. */
|
|
45
|
-
export interface IFetchedDataObject {
|
|
46
|
-
/** Result of `performance.now()` at the time this data was recuperated. */
|
|
47
|
-
currentTime : number;
|
|
48
|
-
/** Duration of the request until `currentTime`, in milliseconds. */
|
|
49
|
-
duration : number;
|
|
50
|
-
/** Size in bytes of the data emitted as `chunk`. */
|
|
51
|
-
chunkSize : number;
|
|
52
|
-
/** Cumulated size of the received data by the request until now. */
|
|
53
|
-
size : number;
|
|
54
|
-
/** Result of `performance.now()` at the time the request began. */
|
|
55
|
-
sendingTime : number;
|
|
56
|
-
/** URL of the recuperated data (post-redirection if one). */
|
|
57
|
-
url : string;
|
|
58
|
-
/**
|
|
59
|
-
* Value of the "Content-Length" header, which should (yet also might not be)
|
|
60
|
-
* the size of the complete data that will be fetched.
|
|
61
|
-
*/
|
|
62
|
-
totalSize : number | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* Current available chunk, which might only be a sub-part of the whole
|
|
65
|
-
* data.
|
|
66
|
-
* To retrieve the whole data, all `chunk` received from `fetchRequest` can be
|
|
67
|
-
* concatenated.
|
|
68
|
-
*/
|
|
69
|
-
chunk : ArrayBuffer;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** Options for the `fetchRequest` utils function. */
|
|
73
|
-
export interface IFetchOptions {
|
|
74
|
-
/** URL you want to perform the HTTP GET request on. */
|
|
75
|
-
url : string;
|
|
76
|
-
/**
|
|
77
|
-
* Callback called as new data is available.
|
|
78
|
-
* This callback might be called multiple times with chunks of the complete
|
|
79
|
-
* data until the fetch operation is finished.
|
|
80
|
-
*/
|
|
81
|
-
onData : (data : IFetchedDataObject) => void;
|
|
82
|
-
/**
|
|
83
|
-
* Signal allowing to cancel the fetch operation.
|
|
84
|
-
* If cancellation happens while the request is pending, `fetchRequest` will
|
|
85
|
-
* reject with the corresponding `CancellationError`.
|
|
86
|
-
*/
|
|
87
|
-
cancelSignal : CancellationSignal;
|
|
88
|
-
/** Optional headers for the HTTP GET request perfomed by `fetchRequest`. */
|
|
89
|
-
headers? : { [ header: string ] : string } | undefined | null;
|
|
90
|
-
/**
|
|
91
|
-
* Optional timeout for the HTTP GET request perfomed by `fetchRequest`.
|
|
92
|
-
* This timeout is just enabled until the HTTP response from the server, even
|
|
93
|
-
* if not all data has been received yet.
|
|
94
|
-
*/
|
|
95
|
-
timeout? : number | undefined;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
type IHeadersConstructor = new() => Headers;
|
|
100
|
-
type IAbortControllerConstructor = new() => AbortController;
|
|
101
|
-
|
|
102
|
-
const _Headers : IHeadersConstructor|null =
|
|
103
|
-
typeof Headers === "function" ? Headers :
|
|
104
|
-
null;
|
|
105
|
-
const _AbortController : IAbortControllerConstructor|null =
|
|
106
|
-
typeof AbortController === "function" ?
|
|
107
|
-
AbortController :
|
|
108
|
-
null;
|
|
109
|
-
|
|
110
|
-
export default function fetchRequest(
|
|
111
|
-
options : IFetchOptions
|
|
112
|
-
) : Promise<IFetchedStreamComplete> {
|
|
113
|
-
let headers : Headers | { [key : string ] : string } | undefined;
|
|
114
|
-
if (!isNullOrUndefined(options.headers)) {
|
|
115
|
-
if (isNullOrUndefined(_Headers)) {
|
|
116
|
-
headers = options.headers;
|
|
117
|
-
} else {
|
|
118
|
-
headers = new _Headers();
|
|
119
|
-
const headerNames = Object.keys(options.headers);
|
|
120
|
-
for (let i = 0; i < headerNames.length; i++) {
|
|
121
|
-
const headerName = headerNames[i];
|
|
122
|
-
headers.append(headerName, options.headers[headerName]);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
log.debug("Fetch: Called with URL", options.url);
|
|
128
|
-
let cancellation : CancellationError | null = null;
|
|
129
|
-
let timeouted = false;
|
|
130
|
-
const sendingTime = performance.now();
|
|
131
|
-
const abortController: AbortController | null =
|
|
132
|
-
!isNullOrUndefined(_AbortController) ? new _AbortController() :
|
|
133
|
-
null;
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Abort current fetchRequest by triggering AbortController signal.
|
|
137
|
-
* @returns {void}
|
|
138
|
-
*/
|
|
139
|
-
function abortFetch(): void {
|
|
140
|
-
if (isNullOrUndefined(abortController)) {
|
|
141
|
-
log.warn("Fetch: AbortController API not available.");
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
abortController.abort();
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
let timeout : number | undefined;
|
|
148
|
-
if (options.timeout !== undefined) {
|
|
149
|
-
timeout = window.setTimeout(() => {
|
|
150
|
-
timeouted = true;
|
|
151
|
-
abortFetch();
|
|
152
|
-
}, options.timeout);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
const deregisterCancelLstnr = options.cancelSignal
|
|
156
|
-
.register(function abortRequest(err : CancellationError) {
|
|
157
|
-
cancellation = err;
|
|
158
|
-
abortFetch();
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
const fetchOpts : RequestInit = { method: "GET" };
|
|
162
|
-
if (headers !== undefined) {
|
|
163
|
-
fetchOpts.headers = headers;
|
|
164
|
-
}
|
|
165
|
-
fetchOpts.signal = !isNullOrUndefined(abortController) ? abortController.signal :
|
|
166
|
-
null;
|
|
167
|
-
return fetch(
|
|
168
|
-
options.url,
|
|
169
|
-
fetchOpts
|
|
170
|
-
).then((response : Response) : Promise<IFetchedStreamComplete> => {
|
|
171
|
-
if (!isNullOrUndefined(timeout)) {
|
|
172
|
-
clearTimeout(timeout);
|
|
173
|
-
}
|
|
174
|
-
if (response.status >= 300) {
|
|
175
|
-
log.warn("Fetch: Request HTTP Error", response.status, response.url);
|
|
176
|
-
throw new RequestError(response.url,
|
|
177
|
-
response.status,
|
|
178
|
-
NetworkErrorTypes.ERROR_HTTP_CODE);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
if (isNullOrUndefined(response.body)) {
|
|
182
|
-
throw new RequestError(response.url,
|
|
183
|
-
response.status,
|
|
184
|
-
NetworkErrorTypes.PARSE_ERROR);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
const contentLengthHeader = response.headers.get("Content-Length");
|
|
188
|
-
const contentLength = !isNullOrUndefined(contentLengthHeader) &&
|
|
189
|
-
!isNaN(+contentLengthHeader) ? +contentLengthHeader :
|
|
190
|
-
undefined;
|
|
191
|
-
const reader = response.body.getReader();
|
|
192
|
-
let size = 0;
|
|
193
|
-
|
|
194
|
-
return readBufferAndSendEvents();
|
|
195
|
-
|
|
196
|
-
async function readBufferAndSendEvents() : Promise<IFetchedStreamComplete> {
|
|
197
|
-
const data = await reader.read();
|
|
198
|
-
|
|
199
|
-
if (!data.done && !isNullOrUndefined(data.value)) {
|
|
200
|
-
size += data.value.byteLength;
|
|
201
|
-
const currentTime = performance.now();
|
|
202
|
-
const dataInfo = { url: response.url,
|
|
203
|
-
currentTime,
|
|
204
|
-
duration: currentTime - sendingTime,
|
|
205
|
-
sendingTime,
|
|
206
|
-
chunkSize: data.value.byteLength,
|
|
207
|
-
chunk: data.value.buffer,
|
|
208
|
-
size,
|
|
209
|
-
totalSize: contentLength };
|
|
210
|
-
options.onData(dataInfo);
|
|
211
|
-
return readBufferAndSendEvents();
|
|
212
|
-
} else if (data.done) {
|
|
213
|
-
deregisterCancelLstnr();
|
|
214
|
-
const receivedTime = performance.now();
|
|
215
|
-
const requestDuration = receivedTime - sendingTime;
|
|
216
|
-
return { requestDuration,
|
|
217
|
-
receivedTime,
|
|
218
|
-
sendingTime,
|
|
219
|
-
size,
|
|
220
|
-
status: response.status,
|
|
221
|
-
url: response.url };
|
|
222
|
-
}
|
|
223
|
-
return readBufferAndSendEvents();
|
|
224
|
-
}
|
|
225
|
-
}).catch((err : unknown) => {
|
|
226
|
-
if (cancellation !== null) {
|
|
227
|
-
throw cancellation;
|
|
228
|
-
}
|
|
229
|
-
deregisterCancelLstnr();
|
|
230
|
-
if (timeouted) {
|
|
231
|
-
log.warn("Fetch: Request timeouted.");
|
|
232
|
-
throw new RequestError(options.url, 0, NetworkErrorTypes.TIMEOUT);
|
|
233
|
-
} else if (err instanceof RequestError) {
|
|
234
|
-
throw err;
|
|
235
|
-
}
|
|
236
|
-
log.warn("Fetch: Request Error", err instanceof Error ? err.toString() :
|
|
237
|
-
"");
|
|
238
|
-
throw new RequestError(options.url, 0, NetworkErrorTypes.ERROR_EVENT);
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Returns true if fetch should be supported in the current browser.
|
|
244
|
-
* @return {boolean}
|
|
245
|
-
*/
|
|
246
|
-
export function fetchIsSupported() : boolean {
|
|
247
|
-
return (typeof window.fetch === "function" &&
|
|
248
|
-
!isNullOrUndefined(_AbortController) &&
|
|
249
|
-
!isNullOrUndefined(_Headers));
|
|
250
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import fetchRequest, {
|
|
18
|
-
fetchIsSupported,
|
|
19
|
-
IFetchedDataObject,
|
|
20
|
-
IFetchedStreamComplete,
|
|
21
|
-
} from "./fetch";
|
|
22
|
-
import xhr, {
|
|
23
|
-
IRequestOptions,
|
|
24
|
-
IProgressInfo,
|
|
25
|
-
IRequestResponse,
|
|
26
|
-
} from "./xhr";
|
|
27
|
-
|
|
28
|
-
export default xhr;
|
|
29
|
-
export {
|
|
30
|
-
fetchIsSupported,
|
|
31
|
-
fetchRequest,
|
|
32
|
-
IFetchedDataObject,
|
|
33
|
-
IFetchedStreamComplete,
|
|
34
|
-
IProgressInfo,
|
|
35
|
-
IRequestOptions,
|
|
36
|
-
IRequestResponse,
|
|
37
|
-
xhr,
|
|
38
|
-
};
|