rx-player 3.29.0-dev.2022110200 → 3.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/VERSION +1 -1
  3. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +1 -1
  4. package/dist/_esm5.processed/compat/browser_detection.js +10 -5
  5. package/dist/_esm5.processed/compat/eme/close_session.js +1 -1
  6. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +1 -1
  7. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
  8. package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
  9. package/dist/_esm5.processed/compat/event_listeners.d.ts +1 -1
  10. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +3 -3
  11. package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +1 -1
  12. package/dist/_esm5.processed/core/api/option_utils.d.ts +2 -2
  13. package/dist/_esm5.processed/core/api/playback_observer.d.ts +1 -1
  14. package/dist/_esm5.processed/core/api/public_api.js +2 -2
  15. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +1 -1
  16. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +21 -18
  17. package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
  18. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +1 -1
  19. package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
  20. package/dist/_esm5.processed/core/decrypt/create_session.js +1 -1
  21. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -1
  22. package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +1 -1
  23. package/dist/_esm5.processed/core/decrypt/find_key_system.js +1 -1
  24. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +1 -1
  25. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +1 -1
  26. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +1 -1
  27. package/dist/_esm5.processed/core/decrypt/types.d.ts +1 -1
  28. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
  29. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +1 -1
  30. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +1 -1
  31. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +1 -1
  32. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +1 -1
  33. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +2 -1
  34. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +1 -1
  35. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +1 -1
  36. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
  37. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +1 -1
  38. package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +1 -1
  39. package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +1 -1
  40. package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +1 -1
  41. package/dist/_esm5.processed/core/init/load_on_media_source.js +5 -7
  42. package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +2 -2
  43. package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +1 -1
  44. package/dist/_esm5.processed/core/init/types.d.ts +4 -4
  45. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +1 -1
  46. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
  47. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +3 -3
  48. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -2
  49. package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.d.ts +1 -1
  50. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +1 -1
  51. package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +1 -1
  52. package/dist/_esm5.processed/core/stream/representation/downloading_queue.d.ts +3 -3
  53. package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +2 -5
  54. package/dist/_esm5.processed/core/stream/types.d.ts +5 -5
  55. package/dist/_esm5.processed/default_config.d.ts +1 -1
  56. package/dist/_esm5.processed/errors/error_codes.d.ts +7 -7
  57. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +5 -5
  58. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +2 -2
  59. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +1 -1
  60. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
  61. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
  62. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +1 -1
  63. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
  64. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +1 -1
  65. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +1 -1
  66. package/dist/_esm5.processed/features/types.d.ts +10 -10
  67. package/dist/_esm5.processed/manifest/period.d.ts +1 -1
  68. package/dist/_esm5.processed/manifest/types.d.ts +1 -1
  69. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
  70. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +1 -1
  71. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +1 -1
  72. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +2 -2
  73. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +1 -1
  74. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +1 -1
  75. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
  76. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
  77. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +2 -4
  78. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +2 -2
  79. package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -2
  80. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +1 -1
  81. package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
  82. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.d.ts +1 -1
  83. package/dist/_esm5.processed/parsers/texttracks/types.d.ts +2 -2
  84. package/dist/_esm5.processed/public_types.d.ts +14 -14
  85. package/dist/_esm5.processed/transports/dash/image_pipelines.js +1 -1
  86. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.d.ts +1 -1
  87. package/dist/_esm5.processed/transports/smooth/pipelines.js +1 -1
  88. package/dist/_esm5.processed/transports/types.d.ts +11 -11
  89. package/dist/_esm5.processed/utils/assert.d.ts +1 -1
  90. package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -2
  91. package/dist/_esm5.processed/utils/event_emitter.d.ts +2 -2
  92. package/dist/_esm5.processed/utils/logger.d.ts +2 -2
  93. package/dist/_esm5.processed/utils/request/fetch.js +1 -1
  94. package/dist/_esm5.processed/utils/task_canceller.d.ts +1 -1
  95. package/dist/rx-player.js +69 -70
  96. package/dist/rx-player.min.js +1 -1
  97. package/package.json +20 -20
  98. package/sonar-project.properties +1 -1
  99. package/src/compat/browser_detection.ts +15 -5
  100. package/src/core/api/public_api.ts +2 -2
  101. package/src/core/decrypt/content_decryptor.ts +13 -15
  102. package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +3 -1
  103. package/src/core/init/load_on_media_source.ts +5 -7
  104. package/src/core/stream/representation/force_garbage_collection.ts +1 -4
  105. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +6 -5
  106. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +2 -4
@@ -129,7 +129,7 @@ export interface ISupplementaryImageTrackOption {
129
129
  * - "reload": completely reload the content. This allows a direct switch
130
130
  * compatible with most device but may necessitate a RELOADING phase.
131
131
  */
132
- export declare type IAudioTrackSwitchingMode = "seamless" | "direct" | "reload";
132
+ export type IAudioTrackSwitchingMode = "seamless" | "direct" | "reload";
133
133
  /** Value of the `transportOptions` option of the `loadVideo` method. */
134
134
  export interface ITransportOptions {
135
135
  /** Whether we can perform request for segments in advance. */
@@ -167,9 +167,9 @@ export interface IServerSyncInfos {
167
167
  clientTime: number;
168
168
  }
169
169
  /** Format of a loaded Manifest before parsing. */
170
- export declare type IInitialManifest = Document | string | ArrayBuffer | IMetaPlaylist | ILocalManifest | Manifest;
170
+ export type IInitialManifest = Document | string | ArrayBuffer | IMetaPlaylist | ILocalManifest | Manifest;
171
171
  /** Type for the `representationFilter` API. */
172
- export declare type IRepresentationFilter = (representation: IRepresentation, adaptationInfos: IRepresentationInfos) => boolean;
172
+ export type IRepresentationFilter = (representation: IRepresentation, adaptationInfos: IRepresentationInfos) => boolean;
173
173
  /** Manifest, as documented in the API documentation. */
174
174
  export interface IManifest {
175
175
  periods: IPeriod[];
@@ -286,7 +286,7 @@ export interface IHDRInformation {
286
286
  colorSpace?: string | undefined;
287
287
  }
288
288
  /** Possible values for the `startAt` option of the `loadVideo` method. */
289
- export declare type IStartAtOption = {
289
+ export type IStartAtOption = {
290
290
  /** If set, we should begin at this position, in seconds. */
291
291
  position: number;
292
292
  } | {
@@ -348,7 +348,7 @@ export interface INetworkConfigOption {
348
348
  */
349
349
  segmentRequestTimeout?: number | undefined;
350
350
  }
351
- export declare type ISegmentLoader = (infos: {
351
+ export type ISegmentLoader = (infos: {
352
352
  url: string;
353
353
  timeout: number | undefined;
354
354
  manifest: IManifest;
@@ -372,8 +372,8 @@ export declare type ISegmentLoader = (infos: {
372
372
  totalSize?: number | undefined;
373
373
  }) => void;
374
374
  }) => (() => void) | void;
375
- export declare type ILoadedManifestFormat = IInitialManifest;
376
- export declare type IManifestLoader = (url: string | undefined, callbacks: {
375
+ export type ILoadedManifestFormat = IInitialManifest;
376
+ export type IManifestLoader = (url: string | undefined, callbacks: {
377
377
  resolve: (args: {
378
378
  data: ILoadedManifestFormat;
379
379
  url?: string | undefined;
@@ -519,7 +519,7 @@ export interface IKeySystemOption {
519
519
  * Has to be versioned to be able to play MediaKeySessions persisted in an old
520
520
  * RxPlayer version when in a new one.
521
521
  */
522
- export declare type IPersistentSessionInfo = IPersistentSessionInfoV4 | IPersistentSessionInfoV3 | IPersistentSessionInfoV2 | IPersistentSessionInfoV1 | IPersistentSessionInfoV0;
522
+ export type IPersistentSessionInfo = IPersistentSessionInfoV4 | IPersistentSessionInfoV3 | IPersistentSessionInfoV2 | IPersistentSessionInfoV1 | IPersistentSessionInfoV0;
523
523
  /** Persistent MediaKeySession storage interface. */
524
524
  export interface IPersistentSessionStorage {
525
525
  /** Load persistent MediaKeySessions previously saved through the `save` callback. */
@@ -543,7 +543,7 @@ export interface IPersistentSessionStorage {
543
543
  disableRetroCompatibility?: boolean;
544
544
  }
545
545
  /** Single preference for an audio track Adaptation. */
546
- export declare type IAudioTrackPreference = null | {
546
+ export type IAudioTrackPreference = null | {
547
547
  language?: string;
548
548
  audioDescription?: boolean;
549
549
  codec?: {
@@ -552,12 +552,12 @@ export declare type IAudioTrackPreference = null | {
552
552
  };
553
553
  };
554
554
  /** Single preference for a text track Adaptation. */
555
- export declare type ITextTrackPreference = null | {
555
+ export type ITextTrackPreference = null | {
556
556
  language: string;
557
557
  closedCaption: boolean;
558
558
  };
559
559
  /** Single preference for a video track Adaptation. */
560
- export declare type IVideoTrackPreference = null | IVideoTrackPreferenceObject;
560
+ export type IVideoTrackPreference = null | IVideoTrackPreferenceObject;
561
561
  /** Preference for a video track Adaptation for when it is not set to `null`. */
562
562
  interface IVideoTrackPreferenceObject {
563
563
  codec?: {
@@ -598,8 +598,8 @@ export interface IPositionUpdate {
598
598
  */
599
599
  liveGap?: number | undefined;
600
600
  }
601
- export declare type IPlayerState = "STOPPED" | "LOADED" | "LOADING" | "PLAYING" | "PAUSED" | "ENDED" | "BUFFERING" | "SEEKING" | "RELOADING";
602
- export declare type IStreamEvent = {
601
+ export type IPlayerState = "STOPPED" | "LOADED" | "LOADING" | "PLAYING" | "PAUSED" | "ENDED" | "BUFFERING" | "SEEKING" | "RELOADING";
602
+ export type IStreamEvent = {
603
603
  data: IStreamEventData;
604
604
  start: number;
605
605
  end: number;
@@ -616,7 +616,7 @@ export interface IStreamEventData {
616
616
  element: Element;
617
617
  };
618
618
  }
619
- export declare type IPlayerError = EncryptedMediaError | MediaError | OtherError | NetworkError;
619
+ export type IPlayerError = EncryptedMediaError | MediaError | OtherError | NetworkError;
620
620
  /**
621
621
  * Information describing a single Representation from an Adaptation, to be used
622
622
  * in the `representationFilter` API.
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export declare type IPSSList = Array<{
16
+ export type IPSSList = Array<{
17
17
  systemId: string;
18
18
  privateData?: Uint8Array;
19
19
  keyIds?: Uint8Array;
@@ -39,7 +39,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
39
39
  function verb(n) { return function (v) { return step([n, v]); }; }
40
40
  function step(op) {
41
41
  if (f) throw new TypeError("Generator is already executing.");
42
- while (_) try {
42
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
43
43
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
44
44
  if (y = 0, t) op = [op[0] & 2, t.value];
45
45
  switch (op[0]) {
@@ -25,7 +25,7 @@ import TaskCanceller, { CancellationSignal } from "../utils/task_canceller";
25
25
  * @returns {Object} - The "transport pipelines". Those are all APIs for this
26
26
  * transport implementation.
27
27
  */
28
- export declare type ITransportFunction = (options: ITransportOptions) => ITransportPipelines;
28
+ export type ITransportFunction = (options: ITransportOptions) => ITransportPipelines;
29
29
  /**
30
30
  * Every API implemented for a transport implementation, allowing to load and
31
31
  * parse the Manifest or any segment.
@@ -190,7 +190,7 @@ export interface ISegmentPipeline<TLoadedFormat, TParsedSegmentDataFormat> {
190
190
  * @returns {Promise.<Object>} - Promise resolving when it has finished loading
191
191
  * the segment.
192
192
  */
193
- export declare type ISegmentLoader<TLoadedFormat> = (wantedCdn: ICdnMetadata | null, content: ISegmentContext, options: ISegmentLoaderOptions, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<TLoadedFormat>) => Promise<ISegmentLoaderResultSegmentCreated<TLoadedFormat> | ISegmentLoaderResultSegmentLoaded<TLoadedFormat> | ISegmentLoaderResultChunkedComplete>;
193
+ export type ISegmentLoader<TLoadedFormat> = (wantedCdn: ICdnMetadata | null, content: ISegmentContext, options: ISegmentLoaderOptions, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<TLoadedFormat>) => Promise<ISegmentLoaderResultSegmentCreated<TLoadedFormat> | ISegmentLoaderResultSegmentLoaded<TLoadedFormat> | ISegmentLoaderResultChunkedComplete>;
194
194
  /** Options given to an `ISegmentLoader` to configure its behavior. */
195
195
  export interface ISegmentLoaderOptions {
196
196
  /**
@@ -207,7 +207,7 @@ export interface ISegmentLoaderOptions {
207
207
  *
208
208
  * This function will throw if it encounters any error it cannot recover from.
209
209
  */
210
- export declare type ISegmentParser<TLoadedFormat, TParsedSegmentDataFormat> = (
210
+ export type ISegmentParser<TLoadedFormat, TParsedSegmentDataFormat> = (
211
211
  /** Attributes of the corresponding loader's response. */
212
212
  loadedSegment: {
213
213
  /** The loaded segment data. */
@@ -310,7 +310,7 @@ export interface IManifestParserCallbacks {
310
310
  * In that case, this Promise will reject with the Error corresponding to
311
311
  * the last performed request.
312
312
  */
313
- export declare type IManifestParserRequestScheduler = (performRequest: () => Promise<IRequestedData<ILoadedManifestFormat>>) => Promise<IRequestedData<ILoadedManifestFormat>>;
313
+ export type IManifestParserRequestScheduler = (performRequest: () => Promise<IRequestedData<ILoadedManifestFormat>>) => Promise<IRequestedData<ILoadedManifestFormat>>;
314
314
  /** Event emitted when a Manifest has been parsed by a Manifest parser. */
315
315
  export interface IManifestParserResult {
316
316
  /** The parsed Manifest Object itself. */
@@ -377,7 +377,7 @@ export interface IImageTrackSegmentData {
377
377
  timescale: number;
378
378
  type: string;
379
379
  }
380
- export declare type IManifestParserRequest1 = ((
380
+ export type IManifestParserRequest1 = ((
381
381
  /**
382
382
  * Cancellation signal which will allow to cancel the request if the
383
383
  * Manifest is not needed anymore.
@@ -387,7 +387,7 @@ export declare type IManifestParserRequest1 = ((
387
387
  * a `CancellationError`.
388
388
  */
389
389
  cancelSignal: CancellationSignal) => Promise<IRequestedData<Document | string>>);
390
- export declare type IManifestParserRequest = (
390
+ export type IManifestParserRequest = (
391
391
  /**
392
392
  * Cancellation signal which will allow to cancel the request if the
393
393
  * Manifest is not needed anymore.
@@ -409,8 +409,8 @@ export interface ITransportImageSegmentPipeline {
409
409
  loadSegment: ISegmentLoader<ILoadedImageSegmentFormat>;
410
410
  parseSegment: ISegmentParser<ILoadedImageSegmentFormat, IImageTrackSegmentData | null>;
411
411
  }
412
- export declare type ITransportSegmentPipeline = ITransportAudioVideoSegmentPipeline | ITransportTextSegmentPipeline | ITransportImageSegmentPipeline;
413
- export declare type ITransportPipeline = ITransportManifestPipeline | ITransportSegmentPipeline;
412
+ export type ITransportSegmentPipeline = ITransportAudioVideoSegmentPipeline | ITransportTextSegmentPipeline | ITransportImageSegmentPipeline;
413
+ export type ITransportPipeline = ITransportManifestPipeline | ITransportSegmentPipeline;
414
414
  export interface ISegmentContext {
415
415
  /** Manifest object related to this segment. */
416
416
  manifest: Manifest;
@@ -524,11 +524,11 @@ export interface IChunkCompleteInformation {
524
524
  size: number | undefined;
525
525
  }
526
526
  /** Format of a loaded audio and video segment before parsing. */
527
- export declare type ILoadedAudioVideoSegmentFormat = Uint8Array | ArrayBuffer | null;
527
+ export type ILoadedAudioVideoSegmentFormat = Uint8Array | ArrayBuffer | null;
528
528
  /** Format of a loaded text segment before parsing. */
529
- export declare type ILoadedTextSegmentFormat = Uint8Array | ArrayBuffer | string | null;
529
+ export type ILoadedTextSegmentFormat = Uint8Array | ArrayBuffer | string | null;
530
530
  /** Format of a loaded image segment before parsing. */
531
- export declare type ILoadedImageSegmentFormat = Uint8Array | ArrayBuffer | null;
531
+ export type ILoadedImageSegmentFormat = Uint8Array | ArrayBuffer | null;
532
532
  /**
533
533
  * Result returned by a segment parser when it parsed a chunk from an init
534
534
  * segment (which does not contain media data).
@@ -20,7 +20,7 @@
20
20
  * @throws AssertionError - Throws if the assertion given is false
21
21
  */
22
22
  export default function assert(assertion: boolean, message?: string): asserts assertion;
23
- declare type IObjectInterface<T> = Partial<Record<keyof T, string>>;
23
+ type IObjectInterface<T> = Partial<Record<keyof T, string>>;
24
24
  /**
25
25
  * Throws if the given Object does not respect the interface.
26
26
  * @param {Object} o
@@ -1,7 +1,7 @@
1
- declare type IDeepPartial<T> = {
1
+ type IDeepPartial<T> = {
2
2
  [P in keyof T]?: IDeepPartial<T[P]>;
3
3
  };
4
- declare type ISourcesArgument<T> = Array<IDeepPartial<T> | unknown>;
4
+ type ISourcesArgument<T> = Array<IDeepPartial<T> | unknown>;
5
5
  /**
6
6
  * Deeply merge nested objects
7
7
  * @param target
@@ -19,8 +19,8 @@ export interface IEventEmitter<T> {
19
19
  addEventListener<TEventName extends keyof T>(evt: TEventName, fn: IListener<T, TEventName>): void;
20
20
  removeEventListener<TEventName extends keyof T>(evt: TEventName, fn: IListener<T, TEventName>): void;
21
21
  }
22
- declare type IArgs<TEventRecord, TEventName extends keyof TEventRecord> = TEventRecord[TEventName];
23
- export declare type IListener<TEventRecord, TEventName extends keyof TEventRecord> = (args: IArgs<TEventRecord, TEventName>) => void;
22
+ type IArgs<TEventRecord, TEventName extends keyof TEventRecord> = TEventRecord[TEventName];
23
+ export type IListener<TEventRecord, TEventName extends keyof TEventRecord> = (args: IArgs<TEventRecord, TEventName>) => void;
24
24
  /**
25
25
  * Simple but fully type-safe EventEmitter implementation.
26
26
  * @class EventEmitter
@@ -13,8 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export declare type ILoggerLevel = "NONE" | "ERROR" | "WARNING" | "INFO" | "DEBUG";
17
- declare type IConsoleFn = (...args: Array<boolean | string | number | Error | null | undefined>) => void;
16
+ export type ILoggerLevel = "NONE" | "ERROR" | "WARNING" | "INFO" | "DEBUG";
17
+ type IConsoleFn = (...args: Array<boolean | string | number | Error | null | undefined>) => void;
18
18
  /**
19
19
  * Logger implementation.
20
20
  * @class Logger
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -231,7 +231,7 @@ export declare class CancellationSignal {
231
231
  * Helper type allowing a `CancellationSignal` to register to a cancellation asked
232
232
  * by a `TaskCanceller`.
233
233
  */
234
- export declare type ICancellationListener = (error: CancellationError) => void;
234
+ export type ICancellationListener = (error: CancellationError) => void;
235
235
  /**
236
236
  * Error created when a task is cancelled.
237
237
  * @class CancellationError
package/dist/rx-player.js CHANGED
@@ -97,9 +97,12 @@ var isEdgeChromium = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
97
97
  var isFirefox = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && navigator.userAgent.toLowerCase().indexOf("firefox") !== -1;
98
98
  var isSamsungBrowser = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && /SamsungBrowser/.test(navigator.userAgent);
99
99
  var isTizen = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && /Tizen/.test(navigator.userAgent);
100
- var isWebOs = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && /Web0S/.test(navigator.userAgent);
101
- var isWebOs2021 = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && /WebOS.TV-2021/.test(navigator.userAgent);
102
- var isWebOs2022 = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && /WebOS.TV-2022/.test(navigator.userAgent);
100
+ var isWebOs = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && navigator.userAgent.indexOf("Web0S") >= 0;
101
+ // Inspired form: http://webostv.developer.lge.com/discover/specifications/web-engine/
102
+ // Note: even that page doesn't correspond to what we've actually seen in the
103
+ // wild
104
+ var isWebOs2021 = isWebOs && (/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent) || /[Cc]hr[o0]me\/79/.test(navigator.userAgent));
105
+ var isWebOs2022 = isWebOs && (/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent) || /[Cc]hr[o0]me\/87/.test(navigator.userAgent));
103
106
  /** `true` on Safari on a PC platform (i.e. not iPhone / iPad etc.) */
104
107
  var isSafariDesktop = !_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z && (Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") >= 0 || ((_b = (_a = window.safari) === null || _a === void 0 ? void 0 : _a.pushNotification) === null || _b === void 0 ? void 0 : _b.toString()) === "[object SafariRemoteNotification]");
105
108
  /** `true` on Safari on an iPhone, iPad & iPod platform */
@@ -387,8 +390,8 @@ var IE11CustomMediaKeys = /*#__PURE__*/function () {
387
390
  return this._videoElement.msSetMediaKeys(this._mediaKeys);
388
391
  }
389
392
  };
390
- _proto2.createSession = function /* sessionType */
391
- createSession() {
393
+ _proto2.createSession = function createSession( /* sessionType */
394
+ ) {
392
395
  if (this._videoElement === undefined || this._mediaKeys === undefined) {
393
396
  throw new Error("Video not attached to the MediaKeys");
394
397
  }
@@ -623,8 +626,8 @@ var OldWebKitCustomMediaKeys = /*#__PURE__*/function () {
623
626
  }
624
627
  this._videoElement = videoElement;
625
628
  };
626
- _proto2.createSession = function /* sessionType */
627
- createSession() {
629
+ _proto2.createSession = function createSession( /* sessionType */
630
+ ) {
628
631
  if (this._videoElement == null) {
629
632
  throw new Error("Video not attached to the MediaKeys");
630
633
  }
@@ -924,8 +927,8 @@ var WebKitCustomMediaKeys = /*#__PURE__*/function () {
924
927
  }
925
928
  return setWebKitMediaKeys(this._videoElement, this._mediaKeys);
926
929
  };
927
- _proto2.createSession = function /* sessionType */
928
- createSession() {
930
+ _proto2.createSession = function createSession( /* sessionType */
931
+ ) {
929
932
  if (this._videoElement === undefined || this._mediaKeys === undefined) {
930
933
  throw new Error("Video not attached to the MediaKeys");
931
934
  }
@@ -8422,10 +8425,9 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
8422
8425
  isSessionPersisted = false;
8423
8426
  sub = SessionEventsListener(mediaKeySession, options, mediaKeySystemAccess.keySystem).subscribe({
8424
8427
  next: function next(evt) {
8425
- switch (evt.type) {
8426
- case "warning":
8427
- _this4.trigger("warning", evt.value);
8428
- return;
8428
+ if (evt.type === "warning") {
8429
+ _this4.trigger("warning", evt.value);
8430
+ return;
8429
8431
  }
8430
8432
  var linkedKeys = getKeyIdsLinkedToSession(initializationData, sessionInfo.record, options.singleLicensePer, sessionInfo.source === "created-session" /* MediaKeySessionLoadingType.Created */, evt.value.whitelistedKeyIds, evt.value.blacklistedKeyIds);
8431
8433
  sessionInfo.record.associateKeyIds(linkedKeys.whitelisted);
@@ -8734,20 +8736,23 @@ function updateDecipherability(manifest, whitelistedKeyIds, blacklistedKeyIds, d
8734
8736
  }
8735
8737
  var contentKIDs = representation.contentProtections.keyIds;
8736
8738
  if (contentKIDs !== undefined) {
8737
- for (var i = 0; i < contentKIDs.length; i++) {
8738
- var elt = contentKIDs[i];
8739
- for (var j = 0; j < blacklistedKeyIds.length; j++) {
8740
- if (areKeyIdsEqual(blacklistedKeyIds[j], elt.keyId)) {
8739
+ for (var _iterator3 = content_decryptor_createForOfIteratorHelperLoose(contentKIDs), _step3; !(_step3 = _iterator3()).done;) {
8740
+ var elt = _step3.value;
8741
+ for (var _iterator4 = content_decryptor_createForOfIteratorHelperLoose(blacklistedKeyIds), _step4; !(_step4 = _iterator4()).done;) {
8742
+ var blacklistedKeyId = _step4.value;
8743
+ if (areKeyIdsEqual(blacklistedKeyId, elt.keyId)) {
8741
8744
  return false;
8742
8745
  }
8743
8746
  }
8744
- for (var _j = 0; _j < whitelistedKeyIds.length; _j++) {
8745
- if (areKeyIdsEqual(whitelistedKeyIds[_j], elt.keyId)) {
8747
+ for (var _iterator5 = content_decryptor_createForOfIteratorHelperLoose(whitelistedKeyIds), _step5; !(_step5 = _iterator5()).done;) {
8748
+ var whitelistedKeyId = _step5.value;
8749
+ if (areKeyIdsEqual(whitelistedKeyId, elt.keyId)) {
8746
8750
  return true;
8747
8751
  }
8748
8752
  }
8749
- for (var _j2 = 0; _j2 < delistedKeyIds.length; _j2++) {
8750
- if (areKeyIdsEqual(delistedKeyIds[_j2], elt.keyId)) {
8753
+ for (var _iterator6 = content_decryptor_createForOfIteratorHelperLoose(delistedKeyIds), _step6; !(_step6 = _iterator6()).done;) {
8754
+ var delistedKeyId = _step6.value;
8755
+ if (areKeyIdsEqual(delistedKeyId, elt.keyId)) {
8751
8756
  return undefined;
8752
8757
  }
8753
8758
  }
@@ -8769,10 +8774,11 @@ function blackListProtectionData(manifest, initData) {
8769
8774
  return false;
8770
8775
  }
8771
8776
  var segmentProtections = (_b = (_a = representation.contentProtections) === null || _a === void 0 ? void 0 : _a.initData) !== null && _b !== void 0 ? _b : [];
8772
- var _loop = function _loop(i) {
8773
- if (initData.type === undefined || segmentProtections[i].type === initData.type) {
8777
+ var _loop = function _loop() {
8778
+ var protection = _step7.value;
8779
+ if (initData.type === undefined || protection.type === initData.type) {
8774
8780
  var containedInitData = initData.values.getFormattedValues().every(function (undecipherableVal) {
8775
- return segmentProtections[i].values.some(function (currVal) {
8781
+ return protection.values.some(function (currVal) {
8776
8782
  return (undecipherableVal.systemId === undefined || currVal.systemId === undecipherableVal.systemId) && (0,are_arrays_of_numbers_equal/* default */.Z)(currVal.data, undecipherableVal.data);
8777
8783
  });
8778
8784
  });
@@ -8783,8 +8789,8 @@ function blackListProtectionData(manifest, initData) {
8783
8789
  }
8784
8790
  }
8785
8791
  };
8786
- for (var i = 0; i < segmentProtections.length; i++) {
8787
- var _ret = _loop(i);
8792
+ for (var _iterator7 = content_decryptor_createForOfIteratorHelperLoose(segmentProtections), _step7; !(_step7 = _iterator7()).done;) {
8793
+ var _ret = _loop();
8788
8794
  if (typeof _ret === "object") return _ret.v;
8789
8795
  }
8790
8796
  return representation.decipherable;
@@ -8877,7 +8883,7 @@ function getKeyIdsLinkedToSession(initializationData, keySessionRecord, singleLi
8877
8883
  // `usableKeyIds` nor in `unusableKeyIds`
8878
8884
  var allKnownKeyIds = keySessionRecord.getAssociatedKeyIds();
8879
8885
  var _loop3 = function _loop3() {
8880
- var kid = _step3.value;
8886
+ var kid = _step8.value;
8881
8887
  if (!associatedKeyIds.some(function (ak) {
8882
8888
  return areKeyIdsEqual(ak, kid);
8883
8889
  })) {
@@ -8887,7 +8893,7 @@ function getKeyIdsLinkedToSession(initializationData, keySessionRecord, singleLi
8887
8893
  associatedKeyIds.push(kid);
8888
8894
  }
8889
8895
  };
8890
- for (var _iterator3 = content_decryptor_createForOfIteratorHelperLoose(allKnownKeyIds), _step3; !(_step3 = _iterator3()).done;) {
8896
+ for (var _iterator8 = content_decryptor_createForOfIteratorHelperLoose(allKnownKeyIds), _step8; !(_step8 = _iterator8()).done;) {
8891
8897
  _loop3();
8892
8898
  }
8893
8899
  if (singleLicensePer !== undefined && singleLicensePer !== "init-data") {
@@ -8926,15 +8932,15 @@ function getKeyIdsLinkedToSession(initializationData, keySessionRecord, singleLi
8926
8932
  // Put it in a Set to automatically filter out duplicates (by ref)
8927
8933
  var contentKeys = new Set();
8928
8934
  var manifest = content.manifest;
8929
- for (var _iterator4 = content_decryptor_createForOfIteratorHelperLoose(manifest.periods), _step4; !(_step4 = _iterator4()).done;) {
8930
- var period = _step4.value;
8935
+ for (var _iterator9 = content_decryptor_createForOfIteratorHelperLoose(manifest.periods), _step9; !(_step9 = _iterator9()).done;) {
8936
+ var period = _step9.value;
8931
8937
  addKeyIdsFromPeriod(contentKeys, period);
8932
8938
  }
8933
8939
  mergeKeyIdSetIntoArray(contentKeys, associatedKeyIds);
8934
8940
  } else if (singleLicensePer === "periods") {
8935
8941
  var _manifest = content.manifest;
8936
- for (var _iterator5 = content_decryptor_createForOfIteratorHelperLoose(_manifest.periods), _step5; !(_step5 = _iterator5()).done;) {
8937
- var _period = _step5.value;
8942
+ for (var _iterator10 = content_decryptor_createForOfIteratorHelperLoose(_manifest.periods), _step10; !(_step10 = _iterator10()).done;) {
8943
+ var _period = _step10.value;
8938
8944
  var periodKeys = new Set();
8939
8945
  addKeyIdsFromPeriod(periodKeys, _period);
8940
8946
  if (((_a = initializationData.content) === null || _a === void 0 ? void 0 : _a.period.id) === _period.id) {
@@ -8993,13 +8999,13 @@ function mergeKeyIdSetIntoArray(set, arr) {
8993
8999
  * @param {Object} period
8994
9000
  */
8995
9001
  function addKeyIdsFromPeriod(set, period) {
8996
- for (var _iterator6 = content_decryptor_createForOfIteratorHelperLoose(period.getAdaptations()), _step6; !(_step6 = _iterator6()).done;) {
8997
- var adaptation = _step6.value;
8998
- for (var _iterator7 = content_decryptor_createForOfIteratorHelperLoose(adaptation.representations), _step7; !(_step7 = _iterator7()).done;) {
8999
- var representation = _step7.value;
9002
+ for (var _iterator11 = content_decryptor_createForOfIteratorHelperLoose(period.getAdaptations()), _step11; !(_step11 = _iterator11()).done;) {
9003
+ var adaptation = _step11.value;
9004
+ for (var _iterator12 = content_decryptor_createForOfIteratorHelperLoose(adaptation.representations), _step12; !(_step12 = _iterator12()).done;) {
9005
+ var representation = _step12.value;
9000
9006
  if (representation.contentProtections !== undefined && representation.contentProtections.keyIds !== undefined) {
9001
- for (var _iterator8 = content_decryptor_createForOfIteratorHelperLoose(representation.contentProtections.keyIds), _step8; !(_step8 = _iterator8()).done;) {
9002
- var kidInf = _step8.value;
9007
+ for (var _iterator13 = content_decryptor_createForOfIteratorHelperLoose(representation.contentProtections.keyIds), _step13; !(_step13 = _iterator13()).done;) {
9008
+ var kidInf = _step13.value;
9003
9009
  set.add(kidInf.keyId);
9004
9010
  }
9005
9011
  }
@@ -45057,12 +45063,11 @@ function applyPrioritizerToSegmentFetcher(prioritizer, fetcher) {
45057
45063
  * @param {Object} content - content to request
45058
45064
  * @param {Number} priority - priority at which the content should be requested.
45059
45065
  * Lower number == higher priority.
45066
+ * @param {Object} callbacks
45067
+ * @param {Object} cancelSignal
45060
45068
  * @returns {Promise}
45061
45069
  */
45062
45070
  createRequest: function createRequest(content, priority, callbacks, cancelSignal) {
45063
- if (priority === void 0) {
45064
- priority = 0;
45065
- }
45066
45071
  var givenTask = function givenTask(innerCancelSignal) {
45067
45072
  return fetcher(content, callbacks, innerCancelSignal);
45068
45073
  };
@@ -46648,17 +46653,6 @@ var POSSIBLE_BUFFER_TYPES = ["audio", "video", "text", "image"];
46648
46653
  * @class SegmentBuffersStore
46649
46654
  */
46650
46655
  var SegmentBuffersStore = /*#__PURE__*/function () {
46651
- /**
46652
- * @param {HTMLMediaElement} mediaElement
46653
- * @param {MediaSource} mediaSource
46654
- * @constructor
46655
- */
46656
- function SegmentBuffersStore(mediaElement, mediaSource) {
46657
- this._mediaElement = mediaElement;
46658
- this._mediaSource = mediaSource;
46659
- this._initializedSegmentBuffers = {};
46660
- this._onNativeBufferAddedOrDisabled = [];
46661
- }
46662
46656
  /**
46663
46657
  * Returns true if the type is linked to a "native" media buffer (i.e. relying
46664
46658
  * on a SourceBuffer object, native to the browser).
@@ -46671,11 +46665,22 @@ var SegmentBuffersStore = /*#__PURE__*/function () {
46671
46665
  SegmentBuffersStore.isNative = function isNative(bufferType) {
46672
46666
  return shouldHaveNativeBuffer(bufferType);
46673
46667
  }
46668
+ /**
46669
+ * @param {HTMLMediaElement} mediaElement
46670
+ * @param {MediaSource} mediaSource
46671
+ * @constructor
46672
+ */;
46673
+ function SegmentBuffersStore(mediaElement, mediaSource) {
46674
+ this._mediaElement = mediaElement;
46675
+ this._mediaSource = mediaSource;
46676
+ this._initializedSegmentBuffers = {};
46677
+ this._onNativeBufferAddedOrDisabled = [];
46678
+ }
46674
46679
  /**
46675
46680
  * Get all currently available buffer types.
46676
46681
  * /!\ This list can evolve at runtime depending on feature switching.
46677
46682
  * @returns {Array.<string>}
46678
- */;
46683
+ */
46679
46684
  var _proto = SegmentBuffersStore.prototype;
46680
46685
  _proto.getBufferTypes = function getBufferTypes() {
46681
46686
  var bufferTypes = this.getNativeBufferTypes();
@@ -49029,8 +49034,6 @@ function _forceGarbageCollection() {
49029
49034
  _context.next = 8;
49030
49035
  break;
49031
49036
  case 16:
49032
- return _context.abrupt("return");
49033
- case 17:
49034
49037
  case "end":
49035
49038
  return _context.stop();
49036
49039
  }
@@ -49048,9 +49051,7 @@ function selectGCedRanges(position, buffered, gcGap) {
49048
49051
  // current time and respect the gcGap
49049
49052
  for (var i = 0; i < outerRanges.length; i++) {
49050
49053
  var outerRange = outerRanges[i];
49051
- if (position - gcGap > outerRange.end) {
49052
- cleanedupRanges.push(outerRange);
49053
- } else if (position + gcGap < outerRange.start) {
49054
+ if (position - gcGap > outerRange.end || position + gcGap < outerRange.start) {
49054
49055
  cleanedupRanges.push(outerRange);
49055
49056
  }
49056
49057
  }
@@ -52429,14 +52430,12 @@ function createMediaSourceLoader(_ref) {
52429
52430
  }
52430
52431
  }));
52431
52432
  var contentTimeObserver = ContentTimeBoundariesObserver(manifest, lastAdaptationChange, streamObserver).pipe((0,mergeMap/* mergeMap */.z)(function (evt) {
52432
- switch (evt.type) {
52433
- case "contentDurationUpdate":
52434
- log/* default.debug */.Z.debug("Init: Duration has to be updated.", evt.value);
52435
- mediaDurationUpdater.updateKnownDuration(evt.value);
52436
- return empty/* EMPTY */.E;
52437
- default:
52438
- return (0,of.of)(evt);
52433
+ if (evt.type === "contentDurationUpdate") {
52434
+ log/* default.debug */.Z.debug("Init: Duration has to be updated.", evt.value);
52435
+ mediaDurationUpdater.updateKnownDuration(evt.value);
52436
+ return empty/* EMPTY */.E;
52439
52437
  }
52438
+ return (0,of.of)(evt);
52440
52439
  }));
52441
52440
  /**
52442
52441
  * Observable trying to avoid various stalling situations, emitting "stalled"
@@ -55269,7 +55268,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
55269
55268
  // Workaround to support Firefox autoplay on FF 42.
55270
55269
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
55271
55270
  videoElement.preload = "auto";
55272
- _this.version = /* PLAYER_VERSION */"3.29.0-dev.2022110200";
55271
+ _this.version = /* PLAYER_VERSION */"3.29.0";
55273
55272
  _this.log = log/* default */.Z;
55274
55273
  _this.state = "STOPPED";
55275
55274
  _this.videoElement = videoElement;
@@ -55356,8 +55355,6 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
55356
55355
  _this._priv_reloadingMetadata = {};
55357
55356
  return _this;
55358
55357
  }
55359
- /** All possible Error types emitted by the RxPlayer. */
55360
- var _proto = Player.prototype;
55361
55358
  /**
55362
55359
  * Register a new callback for a player event event.
55363
55360
  *
@@ -55366,6 +55363,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
55366
55363
  * The callback will take as argument the eventual payload of the event
55367
55364
  * (single argument).
55368
55365
  */
55366
+ var _proto = Player.prototype;
55369
55367
  _proto.addEventListener = function addEventListener(evt, fn) {
55370
55368
  // The EventEmitter's `addEventListener` method takes an optional third
55371
55369
  // argument that we do not want to expose in the public API.
@@ -57535,7 +57533,8 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
57535
57533
  };
57536
57534
  (0,createClass/* default */.Z)(Player, null, [{
57537
57535
  key: "ErrorTypes",
57538
- get: function get() {
57536
+ get: /** All possible Error types emitted by the RxPlayer. */
57537
+ function get() {
57539
57538
  return error_codes/* ErrorTypes */.ZB;
57540
57539
  }
57541
57540
  /** All possible Error codes emitted by the RxPlayer. */
@@ -57566,7 +57565,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
57566
57565
  }]);
57567
57566
  return Player;
57568
57567
  }(event_emitter/* default */.Z);
57569
- Player.version = /* PLAYER_VERSION */"3.29.0-dev.2022110200";
57568
+ Player.version = /* PLAYER_VERSION */"3.29.0";
57570
57569
  /* harmony default export */ var public_api = (Player);
57571
57570
  ;// CONCATENATED MODULE: ./src/core/api/index.ts
57572
57571
  /**