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/sorted_list.ts
DELETED
|
@@ -1,240 +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 arrayFind from "./array_find";
|
|
18
|
-
import arrayIncludes from "./array_includes";
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Creates an Array automatically sorted with the sorting function given to the
|
|
22
|
-
* constructor when the add method is called.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```js
|
|
26
|
-
* const sortedList = new SortedList((a, b) => a.start - b.start);
|
|
27
|
-
* const element1 = { start: 20 };
|
|
28
|
-
* const element2 = { start: 10 };
|
|
29
|
-
* const element3 = { start: 15 };
|
|
30
|
-
*
|
|
31
|
-
* sortedList.add(element1, element2);
|
|
32
|
-
* console.log(sortedList.unwrap());
|
|
33
|
-
* // -> [{ start: 10 }, { start : 20 }]
|
|
34
|
-
*
|
|
35
|
-
* sortedList.add(element3);
|
|
36
|
-
* console.log(sortedList.unwrap());
|
|
37
|
-
* // -> [{ start: 10 }, { start : 15 }, { start: 20 }]
|
|
38
|
-
*
|
|
39
|
-
* sortedList.removeElement(element2);
|
|
40
|
-
* // -> [{ start: 10 }, { start: 15 }]
|
|
41
|
-
* ```
|
|
42
|
-
* @class SortedList
|
|
43
|
-
*/
|
|
44
|
-
export default class SortedList<T> {
|
|
45
|
-
private readonly _sortingFn : (a : T, b : T) => number;
|
|
46
|
-
private _array : T[];
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @param {Function} sortingFunction
|
|
50
|
-
*/
|
|
51
|
-
constructor(sortingFunction : (a : T, b : T) => number) {
|
|
52
|
-
this._array = [];
|
|
53
|
-
this._sortingFn = sortingFunction;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Add a new element to the List at the right place for the List to stay
|
|
58
|
-
* sorted.
|
|
59
|
-
*
|
|
60
|
-
* /!\ The added Element will share the same reference than the given
|
|
61
|
-
* argument, any mutation on your part can lead to an un-sorted SortedList.
|
|
62
|
-
* You can still re-force the sorting to happen by calling forceSort.
|
|
63
|
-
* @param {...*} elements
|
|
64
|
-
*/
|
|
65
|
-
public add(...elements : T[]) : void {
|
|
66
|
-
elements.sort(this._sortingFn);
|
|
67
|
-
|
|
68
|
-
let j = 0;
|
|
69
|
-
for (let i = 0; i < elements.length; i++) {
|
|
70
|
-
const element = elements[i];
|
|
71
|
-
|
|
72
|
-
let inserted = false;
|
|
73
|
-
while (!inserted && j < this._array.length) {
|
|
74
|
-
if (this._sortingFn(element, this._array[j]) < 0) {
|
|
75
|
-
this._array.splice(j, 0, element);
|
|
76
|
-
inserted = true;
|
|
77
|
-
} else {
|
|
78
|
-
j++;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
if (!inserted) {
|
|
82
|
-
this._array.push(element);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Returns the current length of the list.
|
|
89
|
-
* @returns {number}
|
|
90
|
-
*/
|
|
91
|
-
public length() : number {
|
|
92
|
-
return this._array.length;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Returns the nth element. Throws if the index does not exist.
|
|
97
|
-
*
|
|
98
|
-
* /!\ The returned Element shares the same reference with what is used
|
|
99
|
-
* internally, any mutation on your part can lead to an un-sorted SortedList.
|
|
100
|
-
* You can still re-force the sorting to happen by calling forceSort.
|
|
101
|
-
* @throws Error - Throws if the given index is negative or superior to the
|
|
102
|
-
* array's length.
|
|
103
|
-
* @param {number} index
|
|
104
|
-
* @returns {*}
|
|
105
|
-
*/
|
|
106
|
-
public get(index : number) : T {
|
|
107
|
-
if (index < 0 || index >= this._array.length) {
|
|
108
|
-
throw new Error("Invalid index.");
|
|
109
|
-
}
|
|
110
|
-
return this._array[index];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
public toArray() : T[] {
|
|
114
|
-
return this._array.slice();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Find the first element corresponding to the given predicate.
|
|
119
|
-
*
|
|
120
|
-
* /!\ The returned element shares the same reference with what is used
|
|
121
|
-
* internally, any mutation on your part can lead to an un-sorted SortedList.
|
|
122
|
-
* You can still re-force the sorting to happen by calling forceSort.
|
|
123
|
-
* @param {Function} fn
|
|
124
|
-
* @returns {*}
|
|
125
|
-
*/
|
|
126
|
-
public findFirst(fn : (element : T) => boolean) : T | undefined {
|
|
127
|
-
return arrayFind(this._array, fn);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Returns true if the List contains the given element.
|
|
132
|
-
* @param {*} element
|
|
133
|
-
* @returns {Boolean}
|
|
134
|
-
*/
|
|
135
|
-
public has(element : T) : boolean {
|
|
136
|
-
return arrayIncludes(this._array, element);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Remove the first occurence of the given element.
|
|
141
|
-
* Returns the index of the removed element. Undefined if not found.
|
|
142
|
-
* @returns {number|undefined}
|
|
143
|
-
*/
|
|
144
|
-
public removeElement(element : T) : number|undefined {
|
|
145
|
-
const indexOf = this._array.indexOf(element);
|
|
146
|
-
if (indexOf >= 0) {
|
|
147
|
-
this._array.splice(indexOf, 1);
|
|
148
|
-
return indexOf;
|
|
149
|
-
}
|
|
150
|
-
return undefined;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Returns the first element.
|
|
155
|
-
*
|
|
156
|
-
* /!\ The returned Element shares the same reference with what is used
|
|
157
|
-
* internally, any mutation on your part can lead to an un-sorted SortedList.
|
|
158
|
-
* You can still re-force the sorting to happen by calling forceSort.
|
|
159
|
-
* @returns {*}
|
|
160
|
-
*/
|
|
161
|
-
public head() : T|undefined {
|
|
162
|
-
return this._array[0];
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Returns the last element.
|
|
167
|
-
*
|
|
168
|
-
* /!\ The returned Element shares the same reference with what is used
|
|
169
|
-
* internally, any mutation on your part can lead to an un-sorted SortedList.
|
|
170
|
-
* You can still re-force the sorting to happen by calling forceSort.
|
|
171
|
-
* @returns {*}
|
|
172
|
-
*/
|
|
173
|
-
public last() : T|undefined {
|
|
174
|
-
return this._array[this._array.length - 1];
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Remove the first element.
|
|
179
|
-
* Returns the element removed or undefined if no element were removed.
|
|
180
|
-
* @returns {*}
|
|
181
|
-
*/
|
|
182
|
-
public shift() : T|undefined {
|
|
183
|
-
return this._array.shift();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Remove the last element.
|
|
188
|
-
* Returns the element removed or undefined if no element were removed.
|
|
189
|
-
* @returns {*}
|
|
190
|
-
*/
|
|
191
|
-
public pop() : T|undefined {
|
|
192
|
-
return this._array.pop();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Returns true if the wrapped Array is well-sorted.
|
|
197
|
-
*
|
|
198
|
-
* You might want to call this function to know if a mutation you've done
|
|
199
|
-
* yourself impacted the order of elements.
|
|
200
|
-
* You can then call the forceSort function to sort the list manually.
|
|
201
|
-
*
|
|
202
|
-
* @example
|
|
203
|
-
* ```js
|
|
204
|
-
* const sortedList = new SortedList((a, b) => a.start - b.start);
|
|
205
|
-
* const element1 = { start: 20 };
|
|
206
|
-
* const element2 = { start: 10 };
|
|
207
|
-
*
|
|
208
|
-
* sortedList.add(element1, element2);
|
|
209
|
-
* console.log(sortedList.unwrap()); // -> [{ start: 10 }, { start : 20 }]
|
|
210
|
-
* console.log(sortedList.checkSort()); // -> true
|
|
211
|
-
*
|
|
212
|
-
* element2.start = 5; // Mutation impacting the order of elements
|
|
213
|
-
* console.log(sortedList.unwrap()); // -> [{ start: 10 }, { start : 5 }]
|
|
214
|
-
* console.log(sortedList.checkSort()); // -> false
|
|
215
|
-
*
|
|
216
|
-
* sortedList.forceSort();
|
|
217
|
-
* console.log(sortedList.unwrap()); // -> [{ start: 5 }, { start : 10 }]
|
|
218
|
-
* console.log(sortedList.checkSort()); // -> true
|
|
219
|
-
* ```
|
|
220
|
-
* @returns {Boolean}
|
|
221
|
-
*/
|
|
222
|
-
// checkSort() : boolean {
|
|
223
|
-
// for (let i = 0; i < this._array.length - 1; i++) {
|
|
224
|
-
// if (this._sortingFn(this._array[i], this._array[i + 1]) > 0) {
|
|
225
|
-
// return false;
|
|
226
|
-
// }
|
|
227
|
-
// }
|
|
228
|
-
// return true;
|
|
229
|
-
// }
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Force the array to be sorted.
|
|
233
|
-
*
|
|
234
|
-
* You might want to call this function when you're unsure that a mutation
|
|
235
|
-
* you've done yourself impacted the order of the elements in the list.
|
|
236
|
-
*/
|
|
237
|
-
// forceSort() {
|
|
238
|
-
// this._array.sort(this._sortingFn);
|
|
239
|
-
// }
|
|
240
|
-
}
|
package/src/utils/starts_with.ts
DELETED
|
@@ -1,42 +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
|
-
/**
|
|
18
|
-
* String.prototype.startsWith ponyfill.
|
|
19
|
-
* Indicates Whether a string starts with another substring.
|
|
20
|
-
*
|
|
21
|
-
* Inspired from MDN polyfill, but ponyfilled instead.
|
|
22
|
-
* @param {string} completeString
|
|
23
|
-
* @param {string} searchString
|
|
24
|
-
* @param {number} [position]
|
|
25
|
-
* @returns {boolean}
|
|
26
|
-
*/
|
|
27
|
-
export default function startsWith(
|
|
28
|
-
completeString : string,
|
|
29
|
-
searchString : string,
|
|
30
|
-
position? : number
|
|
31
|
-
) : boolean {
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
33
|
-
// eslint-disable-next-line no-restricted-properties
|
|
34
|
-
if (typeof String.prototype.startsWith === "function") {
|
|
35
|
-
// eslint-disable-next-line no-restricted-properties
|
|
36
|
-
return completeString.startsWith(searchString, position);
|
|
37
|
-
}
|
|
38
|
-
const initialPosition = typeof position === "number" ? Math.max(position, 0) :
|
|
39
|
-
0;
|
|
40
|
-
return completeString.substring(initialPosition,
|
|
41
|
-
initialPosition + searchString.length) === searchString;
|
|
42
|
-
}
|
|
@@ -1,414 +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 log from "../log";
|
|
18
|
-
import assert from "./assert";
|
|
19
|
-
|
|
20
|
-
const hasTextDecoder = typeof window === "object" &&
|
|
21
|
-
typeof window.TextDecoder === "function";
|
|
22
|
-
|
|
23
|
-
const hasTextEncoder = typeof window === "object" &&
|
|
24
|
-
typeof window.TextEncoder === "function";
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Convert a string to an Uint8Array containing the corresponding UTF-16 code
|
|
28
|
-
* units in little-endian.
|
|
29
|
-
* @param {string} str
|
|
30
|
-
* @returns {Uint8Array}
|
|
31
|
-
*/
|
|
32
|
-
function strToUtf16LE(str: string): Uint8Array {
|
|
33
|
-
const buffer = new ArrayBuffer(str.length * 2);
|
|
34
|
-
const res = new Uint8Array(buffer);
|
|
35
|
-
for (let i = 0; i < res.length; i += 2) {
|
|
36
|
-
const value = str.charCodeAt(i / 2);
|
|
37
|
-
res[i] = value & 0xFF;
|
|
38
|
-
res[i + 1] = value >> 8 & 0xFF;
|
|
39
|
-
}
|
|
40
|
-
return res;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Convert a string to an Uint8Array containing the corresponding UTF-16 code
|
|
45
|
-
* units in little-endian.
|
|
46
|
-
* @param {string} str
|
|
47
|
-
* @returns {Uint8Array}
|
|
48
|
-
*/
|
|
49
|
-
function strToBeUtf16(str: string): Uint8Array {
|
|
50
|
-
const buffer = new ArrayBuffer(str.length * 2);
|
|
51
|
-
const res = new Uint8Array(buffer);
|
|
52
|
-
for (let i = 0; i < res.length; i += 2) {
|
|
53
|
-
const value = str.charCodeAt(i / 2);
|
|
54
|
-
res[i + 1] = value & 0xFF;
|
|
55
|
-
res[i] = value >> 8 & 0xFF;
|
|
56
|
-
}
|
|
57
|
-
return res;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Construct string from the little-endian UTF-16 code units given.
|
|
62
|
-
* @param {Uint8Array} bytes
|
|
63
|
-
* @returns {string}
|
|
64
|
-
*/
|
|
65
|
-
function utf16LEToStr(bytes : Uint8Array) : string {
|
|
66
|
-
if (hasTextDecoder) {
|
|
67
|
-
try {
|
|
68
|
-
// instanciation throws if the encoding is unsupported
|
|
69
|
-
const decoder = new TextDecoder("utf-16le");
|
|
70
|
-
return decoder.decode(bytes);
|
|
71
|
-
} catch (e) {
|
|
72
|
-
const err = e instanceof Error ? e : "";
|
|
73
|
-
log.warn("Utils: could not use TextDecoder to parse UTF-16LE, " +
|
|
74
|
-
"fallbacking to another implementation", err);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
let str = "";
|
|
79
|
-
for (let i = 0; i < bytes.length; i += 2) {
|
|
80
|
-
str += String.fromCharCode((bytes[i + 1] << 8) + bytes[i]);
|
|
81
|
-
}
|
|
82
|
-
return str;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Construct string from the little-endian UTF-16 code units given.
|
|
87
|
-
* @param {Uint8Array} bytes
|
|
88
|
-
* @returns {string}
|
|
89
|
-
*/
|
|
90
|
-
function beUtf16ToStr(bytes : Uint8Array) : string {
|
|
91
|
-
if (hasTextDecoder) {
|
|
92
|
-
try {
|
|
93
|
-
// instanciation throws if the encoding is unsupported
|
|
94
|
-
const decoder = new TextDecoder("utf-16be");
|
|
95
|
-
return decoder.decode(bytes);
|
|
96
|
-
} catch (e) {
|
|
97
|
-
const err = e instanceof Error ? e : "";
|
|
98
|
-
log.warn("Utils: could not use TextDecoder to parse UTF-16BE, " +
|
|
99
|
-
"fallbacking to another implementation", err);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
let str = "";
|
|
104
|
-
for (let i = 0; i < bytes.length; i += 2) {
|
|
105
|
-
str += String.fromCharCode((bytes[i] << 8) + bytes[i + 1]);
|
|
106
|
-
}
|
|
107
|
-
return str;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Convert a string to an Uint8Array containing the corresponding UTF-8 code
|
|
112
|
-
* units.
|
|
113
|
-
* @param {string} str
|
|
114
|
-
* @returns {Uint8Array}
|
|
115
|
-
*/
|
|
116
|
-
function strToUtf8(str : string) : Uint8Array {
|
|
117
|
-
if (hasTextEncoder) {
|
|
118
|
-
try {
|
|
119
|
-
const encoder = new TextEncoder();
|
|
120
|
-
return encoder.encode(str);
|
|
121
|
-
} catch (e) {
|
|
122
|
-
const err = e instanceof Error ? e : "";
|
|
123
|
-
log.warn("Utils: could not use TextEncoder to encode string into UTF-8, " +
|
|
124
|
-
"fallbacking to another implementation", err);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// http://stackoverflow.com/a/13691499 provides an ugly but functional solution.
|
|
129
|
-
// (Note you have to dig deeper to understand it but I have more faith in
|
|
130
|
-
// stackoverflow not going down in the future so I leave that link.)
|
|
131
|
-
|
|
132
|
-
// Briefly said, `utf8Str` will contain a version of `str` where every
|
|
133
|
-
// non-ASCII characters will be replaced by an escape sequence of the
|
|
134
|
-
// corresponding representation of those characters in UTF-8.
|
|
135
|
-
// It does sound weird and unnecessarily complicated, but it works!
|
|
136
|
-
//
|
|
137
|
-
// Here is actually what happens with more words. We will rely on two browser
|
|
138
|
-
// APIs:
|
|
139
|
-
//
|
|
140
|
-
// - `encodeURIComponent` will take a string and convert the non-ASCII
|
|
141
|
-
// characters in it into the percent-encoded version of the corresponding
|
|
142
|
-
// UTF-8 bytes
|
|
143
|
-
// Example: encodeURIComponent("é") => 0xC3 0xA9 => `"%C3%A9"`
|
|
144
|
-
//
|
|
145
|
-
// - `unescape` unescapes (so far so good) a percent-encoded string. But it
|
|
146
|
-
// does it in a really simple way: percent-encoded byte by percent-encoded
|
|
147
|
-
// byte into the corresponding extended ASCII representation on 8 bits.
|
|
148
|
-
// As a result, we end-up with a string which actually contains instead of
|
|
149
|
-
// each of its original characters, the UTF-8 code units (8 bits) of
|
|
150
|
-
// those characters.
|
|
151
|
-
// Let's take our previous `"é" => "%C3%A9"` example. Here we would get:
|
|
152
|
-
// unecape("%C3%A9") => "\u00c3\u00a9" === "é" (in extended ASCII)
|
|
153
|
-
//
|
|
154
|
-
// By iterating on the resulting string, we will then be able to generate a
|
|
155
|
-
// Uint8Array containing the UTF-8 representation of that original string, by
|
|
156
|
-
// just calling the charCodeAt API on it.
|
|
157
|
-
let utf8Str : string;
|
|
158
|
-
const pcStr = encodeURIComponent(str);
|
|
159
|
-
|
|
160
|
-
// As "unescape" is a deprecated function we want to declare a fallback in the
|
|
161
|
-
// case a browser decide to not implement it.
|
|
162
|
-
if (typeof unescape === "function") {
|
|
163
|
-
utf8Str = unescape(pcStr);
|
|
164
|
-
} else {
|
|
165
|
-
// Let's implement a simple unescape function (got to admit it was for the challenge)
|
|
166
|
-
// http://ecma-international.org/ecma-262/9.0/#sec-unescape-string
|
|
167
|
-
const isHexChar = /[0-9a-fA-F]/;
|
|
168
|
-
const pcStrLen = pcStr.length;
|
|
169
|
-
utf8Str = "";
|
|
170
|
-
for (let i = 0; i < pcStr.length; i++) {
|
|
171
|
-
let wasPercentEncoded = false;
|
|
172
|
-
if (pcStr[i] === "%") {
|
|
173
|
-
if (i <= pcStrLen - 6 &&
|
|
174
|
-
pcStr[i + 1] === "u" &&
|
|
175
|
-
isHexChar.test(pcStr[i + 2]) &&
|
|
176
|
-
isHexChar.test(pcStr[i + 3]) &&
|
|
177
|
-
isHexChar.test(pcStr[i + 4]) &&
|
|
178
|
-
isHexChar.test(pcStr[i + 5]))
|
|
179
|
-
{
|
|
180
|
-
const charCode = parseInt(pcStr.substring(i + 1, i + 6), 16);
|
|
181
|
-
utf8Str += String.fromCharCode(charCode);
|
|
182
|
-
wasPercentEncoded = true;
|
|
183
|
-
i += 5; // Skip the next 5 chars
|
|
184
|
-
} else if (i <= pcStrLen - 3 &&
|
|
185
|
-
isHexChar.test(pcStr[i + 1]) &&
|
|
186
|
-
isHexChar.test(pcStr[i + 2]))
|
|
187
|
-
{
|
|
188
|
-
const charCode = parseInt(pcStr.substring(i + 1, i + 3), 16);
|
|
189
|
-
utf8Str += String.fromCharCode(charCode);
|
|
190
|
-
wasPercentEncoded = true;
|
|
191
|
-
i += 2; // Skip the next 2 chars
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
if (!wasPercentEncoded) {
|
|
195
|
-
utf8Str += pcStr[i];
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Now let's just build our array from every other bytes of that string's
|
|
201
|
-
// UTF-16 representation
|
|
202
|
-
const res = new Uint8Array(utf8Str.length);
|
|
203
|
-
for (let i = 0; i < utf8Str.length; i++) {
|
|
204
|
-
res[i] = utf8Str.charCodeAt(i) & 0xFF; // first byte should be 0x00 anyway
|
|
205
|
-
}
|
|
206
|
-
return res;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Creates a new string from the given array of char codes.
|
|
211
|
-
* @param {Uint8Array} args
|
|
212
|
-
* @returns {string}
|
|
213
|
-
*/
|
|
214
|
-
function stringFromCharCodes(args : Uint8Array) : string {
|
|
215
|
-
const max = 16000;
|
|
216
|
-
let ret = "";
|
|
217
|
-
for (let i = 0; i < args.length; i += max) {
|
|
218
|
-
const subArray = args.subarray(i, i + max);
|
|
219
|
-
|
|
220
|
-
// NOTE: ugly I know, but TS is problematic here (you can try)
|
|
221
|
-
ret += String.fromCharCode.apply(null, subArray as unknown as number[]);
|
|
222
|
-
}
|
|
223
|
-
return ret;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Transform an integer into an hexadecimal string of the given length, padded
|
|
228
|
-
* to the left with `0` if needed.
|
|
229
|
-
* @example
|
|
230
|
-
* ```
|
|
231
|
-
* intToHex(5, 4); // => "0005"
|
|
232
|
-
* intToHex(5, 2); // => "05"
|
|
233
|
-
* intToHex(10, 1); // => "a"
|
|
234
|
-
* intToHex(268, 3); // => "10c"
|
|
235
|
-
* intToHex(4584, 6) // => "0011e8"
|
|
236
|
-
* intToHex(123456, 4); // => "1e240" (we do nothing when going over 4 chars)
|
|
237
|
-
* ```
|
|
238
|
-
* @param {number} num
|
|
239
|
-
* @param {number} size
|
|
240
|
-
* @returns {string}
|
|
241
|
-
*/
|
|
242
|
-
function intToHex(num : number, size : number) : string {
|
|
243
|
-
const toStr = num.toString(16);
|
|
244
|
-
return toStr.length >= size ? toStr :
|
|
245
|
-
new Array(size - toStr.length + 1).join("0") + toStr;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Creates a string from the given Uint8Array containing utf-8 code units.
|
|
250
|
-
* @param {Uint8Array} bytes
|
|
251
|
-
* @returns {string}
|
|
252
|
-
*/
|
|
253
|
-
function utf8ToStr(data : Uint8Array) : string {
|
|
254
|
-
if (hasTextDecoder) {
|
|
255
|
-
try {
|
|
256
|
-
// TextDecoder use UTF-8 by default
|
|
257
|
-
const decoder = new TextDecoder();
|
|
258
|
-
return decoder.decode(data);
|
|
259
|
-
} catch (e) {
|
|
260
|
-
const err = e instanceof Error ? e : "";
|
|
261
|
-
log.warn("Utils: could not use TextDecoder to parse UTF-8, " +
|
|
262
|
-
"fallbacking to another implementation", err);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
let uint8 = data;
|
|
267
|
-
|
|
268
|
-
// If present, strip off the UTF-8 BOM.
|
|
269
|
-
if (uint8[0] === 0xEF && uint8[1] === 0xBB && uint8[2] === 0xBF) {
|
|
270
|
-
uint8 = uint8.subarray(3);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// We're basically doing strToUtf8 in reverse.
|
|
274
|
-
// You can look at that other function for the whole story.
|
|
275
|
-
|
|
276
|
-
// Generate string containing escaped UTF-8 code units
|
|
277
|
-
const utf8Str = stringFromCharCodes(uint8);
|
|
278
|
-
|
|
279
|
-
let escaped : string;
|
|
280
|
-
if (typeof escape === "function") {
|
|
281
|
-
// Transform UTF-8 escape sequence into percent-encoded escape sequences.
|
|
282
|
-
escaped = escape(utf8Str);
|
|
283
|
-
} else {
|
|
284
|
-
// Let's implement a simple escape function
|
|
285
|
-
// http://ecma-international.org/ecma-262/9.0/#sec-escape-string
|
|
286
|
-
const nonEscapedChar = /[A-Za-z0-9*_\+-\.\/]/;
|
|
287
|
-
escaped = "";
|
|
288
|
-
for (let i = 0; i < utf8Str.length; i++) {
|
|
289
|
-
if (nonEscapedChar.test(utf8Str[i])) {
|
|
290
|
-
escaped += utf8Str[i];
|
|
291
|
-
} else {
|
|
292
|
-
const charCode = utf8Str.charCodeAt(i);
|
|
293
|
-
escaped += charCode >= 256 ? "%u" + intToHex(charCode, 4) :
|
|
294
|
-
"%" + intToHex(charCode, 2);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
// Decode the percent-encoded UTF-8 string into the proper JS string.
|
|
300
|
-
// Example: "g#%E3%82%AC" -> "g#€"
|
|
301
|
-
return decodeURIComponent(escaped);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Convert hex codes in a string form into the corresponding bytes.
|
|
306
|
-
* @param {string} str
|
|
307
|
-
* @returns {Uint8Array}
|
|
308
|
-
* @throws TypeError - str.length is odd
|
|
309
|
-
*/
|
|
310
|
-
function hexToBytes(str : string) : Uint8Array {
|
|
311
|
-
const len = str.length;
|
|
312
|
-
const arr = new Uint8Array(len / 2);
|
|
313
|
-
for (let i = 0, j = 0; i < len; i += 2, j++) {
|
|
314
|
-
arr[j] = parseInt(str.substring(i, i + 2), 16) & 0xFF;
|
|
315
|
-
}
|
|
316
|
-
return arr;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Convert bytes into the corresponding hex string, with the possibility
|
|
321
|
-
* to add a separator.
|
|
322
|
-
* @param {Uint8Array} bytes
|
|
323
|
-
* @param {string} [sep=""] - separator. Separate each two hex character.
|
|
324
|
-
* @returns {string}
|
|
325
|
-
*/
|
|
326
|
-
function bytesToHex(bytes : Uint8Array, sep : string = "") : string {
|
|
327
|
-
let hex = "";
|
|
328
|
-
for (let i = 0; i < bytes.byteLength; i++) {
|
|
329
|
-
hex += (bytes[i] >>> 4).toString(16);
|
|
330
|
-
hex += (bytes[i] & 0xF).toString(16);
|
|
331
|
-
if (sep.length > 0 && i < bytes.byteLength - 1) {
|
|
332
|
-
hex += sep;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return hex;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Convert little-endian GUID into big-endian UUID.
|
|
340
|
-
* @param {Uint8Array} guid
|
|
341
|
-
* @returns {Uint8Array} - uuid
|
|
342
|
-
* @throws AssertionError - The guid length is not 16
|
|
343
|
-
*/
|
|
344
|
-
function guidToUuid(guid : Uint8Array) : Uint8Array {
|
|
345
|
-
assert(guid.length === 16, "GUID length should be 16");
|
|
346
|
-
|
|
347
|
-
const p1A = guid[0];
|
|
348
|
-
const p1B = guid[1];
|
|
349
|
-
const p1C = guid[2];
|
|
350
|
-
const p1D = guid[3];
|
|
351
|
-
|
|
352
|
-
const p2A = guid[4];
|
|
353
|
-
const p2B = guid[5];
|
|
354
|
-
|
|
355
|
-
const p3A = guid[6];
|
|
356
|
-
const p3B = guid[7];
|
|
357
|
-
|
|
358
|
-
const uuid = new Uint8Array(16);
|
|
359
|
-
// swapping byte endian on 4 bytes
|
|
360
|
-
// [1, 2, 3, 4] => [4, 3, 2, 1]
|
|
361
|
-
uuid[0] = p1D; uuid[1] = p1C; uuid[2] = p1B; uuid[3] = p1A;
|
|
362
|
-
// swapping byte endian on 2 bytes
|
|
363
|
-
// [5, 6] => [6, 5]
|
|
364
|
-
uuid[4] = p2B; uuid[5] = p2A;
|
|
365
|
-
// swapping byte endian on 2 bytes
|
|
366
|
-
// [7, 8] => [8, 7]
|
|
367
|
-
uuid[6] = p3B; uuid[7] = p3A;
|
|
368
|
-
uuid.set(guid.subarray(8, 16), 8);
|
|
369
|
-
|
|
370
|
-
return uuid;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* Decode string from bytes (UTF-8).
|
|
375
|
-
* Keeps reading until it reaches a byte that equals to zero.
|
|
376
|
-
* @param {Uint8Array} buffer
|
|
377
|
-
* @param {number} offset
|
|
378
|
-
* @returns {Object}
|
|
379
|
-
*/
|
|
380
|
-
function readNullTerminatedString(buffer: Uint8Array, offset: number): {
|
|
381
|
-
end: number;
|
|
382
|
-
string: string;
|
|
383
|
-
} {
|
|
384
|
-
let position = offset;
|
|
385
|
-
while (position < buffer.length) {
|
|
386
|
-
const value = buffer[position];
|
|
387
|
-
if (value === 0) {
|
|
388
|
-
break;
|
|
389
|
-
}
|
|
390
|
-
position += 1;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
const bytes = buffer.subarray(offset, position);
|
|
394
|
-
return { end: position + 1,
|
|
395
|
-
string: utf8ToStr(bytes) };
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
export {
|
|
399
|
-
bytesToHex,
|
|
400
|
-
hexToBytes,
|
|
401
|
-
|
|
402
|
-
strToUtf8,
|
|
403
|
-
utf8ToStr,
|
|
404
|
-
|
|
405
|
-
strToUtf16LE,
|
|
406
|
-
utf16LEToStr,
|
|
407
|
-
|
|
408
|
-
strToBeUtf16,
|
|
409
|
-
beUtf16ToStr,
|
|
410
|
-
|
|
411
|
-
guidToUuid,
|
|
412
|
-
|
|
413
|
-
readNullTerminatedString,
|
|
414
|
-
};
|