@theoplayer/extended 4.3.1 → 4.5.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.
package/THEOplayer.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * THEOplayer
3
3
  * https://www.theoplayer.com
4
4
  *
5
- * Version: 2022.4.1 (4.3.1)
5
+ * Version: 2022.4.3 (4.5.0)
6
6
  */
7
7
 
8
8
  /**
@@ -102,23 +102,6 @@ export declare interface ABRStrategyConfiguration {
102
102
  */
103
103
  export declare type ABRStrategyType = 'performance' | 'quality' | 'bandwidth';
104
104
 
105
- /**
106
- * @public
107
- */
108
- export declare interface ActiveTrackInfoLabel extends MetricLabel {
109
- readonly audioSwitchingSetId: string;
110
- readonly audioTrackId: string;
111
- readonly videoSwitchingSetId: string;
112
- readonly videoTrackId: string;
113
- }
114
-
115
- /**
116
- * @public
117
- */
118
- export declare interface ActiveTrackLabeledMetric extends Metric {
119
- readonly labelData: ActiveTrackInfoLabel;
120
- }
121
-
122
105
  /**
123
106
  * Represents a VAST creative. It is either a linear or non-linear ad.
124
107
  *
@@ -528,7 +511,10 @@ export declare interface AdsConfiguration {
528
511
  * @defaultValue `'enabled'`
529
512
  */
530
513
  vpaidMode?: VPAIDMode;
531
-
514
+ /**
515
+ * The Google IMA configuration.
516
+ */
517
+ googleIma?: GoogleImaConfiguration;
532
518
  }
533
519
 
534
520
  /**
@@ -869,32 +855,6 @@ export declare type AgamaStreamType = 'live' | 'vod';
869
855
  export declare interface AirPlay extends VendorCast {
870
856
  }
871
857
 
872
- /**
873
- * @public
874
- */
875
- export declare type Analytic = AnalyticMap[keyof AnalyticMap];
876
-
877
- /**
878
- * @public
879
- */
880
- export declare interface AnalyticBase<N extends AnalyticType, V> {
881
- readonly name: N;
882
- readonly value: V;
883
- readonly unit: string;
884
- readonly description: string;
885
- }
886
-
887
- /**
888
- * @public
889
- */
890
- export declare interface AnalyticMap {
891
- [AnalyticType.LIVE_OFFSET]: AnalyticBase<AnalyticType.LIVE_OFFSET, number>;
892
- [AnalyticType.TRACK_BYTES_DOWNLOADED]: AnalyticBase<AnalyticType.TRACK_BYTES_DOWNLOADED, TrackBytesDownloadedData>;
893
- [AnalyticType.ESTIMATED_TRACK_NETWORK_BANDWIDTH]: AnalyticBase<AnalyticType.ESTIMATED_TRACK_NETWORK_BANDWIDTH, number>;
894
- [AnalyticType.ESTIMATED_TRACK_MEDIA_DATA_BANDWIDTH]: AnalyticBase<AnalyticType.ESTIMATED_TRACK_MEDIA_DATA_BANDWIDTH, number>;
895
- [AnalyticType.SEGMENT_RECEIVE_INTERVAL]: AnalyticBase<AnalyticType.SEGMENT_RECEIVE_INTERVAL, SegmentReceiveIntervalData>;
896
- }
897
-
898
858
  /**
899
859
  * The analytics API.
900
860
  *
@@ -935,17 +895,6 @@ export declare interface AnalyticsDescription {
935
895
  */
936
896
  export declare type AnalyticsIntegrationID = 'agama' | 'conviva' | 'youbora' | 'moat' | 'streamone' | 'smartsight';
937
897
 
938
- /**
939
- * @public
940
- */
941
- export declare enum AnalyticType {
942
- LIVE_OFFSET = "liveoffset",
943
- TRACK_BYTES_DOWNLOADED = "trackbytesdownloaded",
944
- ESTIMATED_TRACK_NETWORK_BANDWIDTH = "estimatedtracknetworkbandwidth",
945
- ESTIMATED_TRACK_MEDIA_DATA_BANDWIDTH = "estimatedtrackmediadatabandwidth",
946
- SEGMENT_RECEIVE_INTERVAL = "segmentreceiveinterval"
947
- }
948
-
949
898
  /**
950
899
  * Represents a quality of an audio track.
951
900
  *
@@ -1151,13 +1100,6 @@ export declare interface BaseSource {
1151
1100
  lcevc?: boolean;
1152
1101
  }
1153
1102
 
1154
- /**
1155
- * @public
1156
- */
1157
- export declare interface BaseUriLabel extends MetricLabel {
1158
- baseUri: string;
1159
- }
1160
-
1161
1103
  /**
1162
1104
  * A boundary can be one of 3 possible types:
1163
1105
  * <br/> - c3: An ad that is relevant for up to 3 days after the original airing.
@@ -3035,13 +2977,6 @@ export declare interface DashPlaybackConfiguration {
3035
2977
  needsTimescaleShifting?: boolean | null;
3036
2978
  }
3037
2979
 
3038
- /**
3039
- * @public
3040
- */
3041
- export declare interface DataEvent<TType extends string, DataType> extends Event_2<TType> {
3042
- readonly data: DataType;
3043
- }
3044
-
3045
2980
  /**
3046
2981
  * Represents a cue of a HLS date range metadata text track.
3047
2982
  *
@@ -3610,11 +3545,6 @@ declare interface ErrorEvent_2 extends Event_2<'error'> {
3610
3545
  }
3611
3546
  export { ErrorEvent_2 as ErrorEvent }
3612
3547
 
3613
- /**
3614
- * @public
3615
- */
3616
- export declare type ErrorType = string;
3617
-
3618
3548
  /**
3619
3549
  * Fired when an event occurs.
3620
3550
  *
@@ -3777,21 +3707,6 @@ export declare interface FairPlayKeySystemConfiguration extends KeySystemConfigu
3777
3707
  */
3778
3708
  export declare const features: string;
3779
3709
 
3780
- /**
3781
- * @public
3782
- */
3783
- export declare interface FirstResponseLabel extends MetricLabel {
3784
- readonly uri: string;
3785
- readonly type: HespRequestType;
3786
- }
3787
-
3788
- /**
3789
- * @public
3790
- */
3791
- export declare interface FirstResponseMetric extends Metric {
3792
- labelData: FirstResponseLabel;
3793
- }
3794
-
3795
3710
  /**
3796
3711
  * Describes a FreeWheel ad break request.
3797
3712
  *
@@ -3982,6 +3897,12 @@ export declare interface GoogleDAI {
3982
3897
  * @param time - The content time without any ads (in seconds).
3983
3898
  */
3984
3899
  streamTimeForContentTime(time: number): number;
3900
+ /**
3901
+ * Replaces all the ad tag parameters used for upcoming ad requests for a live stream.
3902
+ *
3903
+ * @param adTagParameters - The new ad tag parameters.
3904
+ */
3905
+ replaceAdTagParameters(adTagParameters?: Record<string, string>): void;
3985
3906
  /**
3986
3907
  * Whether snapback is enabled. When enabled and the user seeks over multiple ad breaks, the last ad break that was seeked past will be played.
3987
3908
  */
@@ -4041,6 +3962,10 @@ export declare interface GoogleDAIConfiguration extends ServerSideAdInsertionCon
4041
3962
  * The identifier for a stream activity monitor session.
4042
3963
  */
4043
3964
  streamActivityMonitorID?: string;
3965
+ /**
3966
+ * Optional settings object for mapping verification vendors (google.ima.OmidVerificationVendor) to OMID Access Modes (google.ima.OmidAccessMode).
3967
+ */
3968
+ omidAccessModeRules?: Record<number, string>;
4044
3969
  }
4045
3970
 
4046
3971
  /**
@@ -4196,6 +4121,25 @@ export declare interface GoogleImaAd extends Ad {
4196
4121
  apiFramework: string | undefined;
4197
4122
  }
4198
4123
 
4124
+ /**
4125
+ * Describes the configuration of Google IMA.
4126
+ *
4127
+ * @public
4128
+ */
4129
+ export declare interface GoogleImaConfiguration {
4130
+
4131
+ /**
4132
+ * The maximum recommended bitrate in kbit/s. Ads with a bitrate below the specified maximum will be picked.
4133
+ *
4134
+ * @remarks
4135
+ * <br/> - When set to -1, it will select the ad with the highest bitrate.
4136
+ * <br/> - If there is no ad below the specified maximum, the ad closest to the bitrate will be picked.
4137
+ *
4138
+ * @defaultValue -1
4139
+ */
4140
+ bitrate?: number;
4141
+ }
4142
+
4199
4143
  /**
4200
4144
  * The HESP API.
4201
4145
  * @remarks
@@ -4240,12 +4184,6 @@ export declare interface HespApi extends EventDispatcher<HespApiEventMap> {
4240
4184
  * <br/> - Undefined if no HESP source is configured.
4241
4185
  */
4242
4186
  readonly manifest: Object | undefined;
4243
- /**
4244
- * A HespMetricsApi object which gives player metrics.
4245
- * @remarks
4246
- * <br/> - Undefined if no HESP source is configured.
4247
- */
4248
- readonly metrics: HespMetricsApi | undefined;
4249
4187
  }
4250
4188
 
4251
4189
  /**
@@ -4258,22 +4196,10 @@ export declare interface HespApi extends EventDispatcher<HespApiEventMap> {
4258
4196
  * @public
4259
4197
  */
4260
4198
  export declare interface HespApiEventMap {
4261
- /**
4262
- * Fired when a new analytic sample is available.
4263
- */
4264
- analytic: DataEvent<'analytic', Analytic>;
4265
4199
  /**
4266
4200
  * Fired when the player enters the HESP live playback mode.
4267
4201
  */
4268
4202
  golive: Event_2<'golive'>;
4269
- /**
4270
- * Fired when the player exits the HESP live playback mode, e.g. when going into DVR playback mode.
4271
- */
4272
- nogolive: Event_2<'nogolive'>;
4273
- /**
4274
- * Fired whenever the player buffer changes.
4275
- */
4276
- bufferedchange: Event_2<'bufferedchange'>;
4277
4203
  }
4278
4204
 
4279
4205
  /**
@@ -4313,66 +4239,6 @@ export declare interface HespLatencyConfiguration {
4313
4239
  */
4314
4240
  export declare type HespMediaType = 'audio' | 'video' | 'metadata';
4315
4241
 
4316
- /**
4317
- * HESP metrics.
4318
- * @remarks
4319
- * <br/> - Note: This API is in an experimental stage and may be subject to breaking changes.
4320
- * <br/> - Only available with the feature `'hesp'`.
4321
- * <br/> - Only applies to HESP streams.
4322
- *
4323
- * @public
4324
- */
4325
- export declare interface HespMetricMap {
4326
- totalTimePlayed: TotalTimePlayedMetric;
4327
- totalTimeStalled: ActiveTrackLabeledMetric;
4328
- totalTimePaused: UnlabeledMetric;
4329
- numberOfStalls: UnlabeledMetric;
4330
- numberOfWifiSleeps: UnlabeledMetric;
4331
- numberOfPlayPauseToggle: UnlabeledMetric;
4332
- numberOfAbrChanges: QualityChangeMetric;
4333
- qualityActive: ActiveTrackLabeledMetric;
4334
- numberOfErrors: TypedMetric<ErrorType>;
4335
- numberOfLiveSeeks: UnlabeledMetric;
4336
- totalTimeSeeking: TypedMetric<SeekReason>;
4337
- droppedVideoFrames: ActiveTrackLabeledMetric;
4338
- totalVideoFrames: ActiveTrackLabeledMetric;
4339
- timeToFirstFrame: UnlabeledMetric;
4340
- timeToFirstResponse: FirstResponseMetric;
4341
- timeToGoLive: HistogramMetric;
4342
- numberOfImpressions: StreamLabeledMetric;
4343
- numberOfRateChanges: UnlabeledMetric;
4344
- segmentIntervals: HistogramTrackLabeledMetric;
4345
- }
4346
-
4347
- /**
4348
- * The names of HESP metrics.
4349
- * @remarks
4350
- * <br/> - Note: This API is in an experimental stage and may be subject to breaking changes.
4351
- * <br/> - Only available with the feature `'hesp'`.
4352
- * <br/> - Only applies to HESP streams.
4353
- *
4354
- * @public
4355
- */
4356
- export declare type HespMetricName = StringKeyOf<HespMetricMap>;
4357
-
4358
- /**
4359
- * An object with {@link HespMetricName} as key and {@link Metric} as value.
4360
- * @remarks
4361
- * <br/> - Note: This API is in an experimental stage and may be subject to breaking changes.
4362
- * <br/> - Only available with the feature `'hesp'`.
4363
- * <br/> - Only applies to HESP streams.
4364
- *
4365
- * @public
4366
- */
4367
- export declare type HespMetricsApi = {
4368
- readonly [name in HespMetricName]: Array<HespMetricMap[name]>;
4369
- };
4370
-
4371
- /**
4372
- * @public
4373
- */
4374
- export declare type HespRequestType = 'manifest' | 'stream' | 'keyframe';
4375
-
4376
4242
  /**
4377
4243
  * Specific source configuration for an HESP media resource.
4378
4244
  * @remarks
@@ -4406,28 +4272,6 @@ export declare interface HespTypedSource extends TypedSource {
4406
4272
  hesp?: HespSourceConfiguration;
4407
4273
  }
4408
4274
 
4409
- /**
4410
- * @public
4411
- */
4412
- export declare interface HistogramLabel extends MetricLabel {
4413
- readonly upperBound: number;
4414
- readonly lowerBound: number;
4415
- }
4416
-
4417
- /**
4418
- * @public
4419
- */
4420
- export declare interface HistogramMetric extends Metric {
4421
- readonly labelData: HistogramLabel;
4422
- }
4423
-
4424
- /**
4425
- * @public
4426
- */
4427
- export declare interface HistogramTrackLabeledMetric extends Metric {
4428
- readonly labelData: HistogramLabel & TrackInfoLabel;
4429
- }
4430
-
4431
4275
  /**
4432
4276
  * The strategy for aligning HLS discontinuities, represented by a value from the following list:
4433
4277
  * <br/> - `'playlist'`: The first segment after a discontinuity is aligned with the segment's start time according to the HLS playlist,
@@ -4967,9 +4811,7 @@ export declare interface IMAAdDescription extends AdDescription {
4967
4811
  /**
4968
4812
  * Optional settings object for mapping verification vendors (google.ima.OmidVerificationVendor) to OMID Access Modes (google.ima.OmidAccessMode).
4969
4813
  */
4970
- omidAccessModeRules?: {
4971
- [key: number]: string;
4972
- };
4814
+ omidAccessModeRules?: Record<number, string>;
4973
4815
  }
4974
4816
 
4975
4817
  /**
@@ -5297,13 +5139,6 @@ export declare type IrdetoIntegrationID = 'irdeto';
5297
5139
  */
5298
5140
  export declare type JoinStrategy = 'auto' | 'manual' | 'disabled';
5299
5141
 
5300
- /**
5301
- * @public
5302
- */
5303
- export declare interface KeyFrameLabel extends MetricLabel {
5304
- readonly keyFrame: boolean;
5305
- }
5306
-
5307
5142
  /**
5308
5143
  * Describes the configuration of the KeyOS DRM integration
5309
5144
  *
@@ -5938,31 +5773,6 @@ export declare interface MetadataDescription {
5938
5773
  readonly title?: string;
5939
5774
  }
5940
5775
 
5941
- /**
5942
- * @public
5943
- */
5944
- export declare interface Metric<MN extends HespMetricName = HespMetricName> {
5945
- /**
5946
- * A metric name which will be one of {@link HespMetricName}.
5947
- */
5948
- readonly name: MN;
5949
- /**
5950
- * The value of metric.
5951
- */
5952
- readonly value: number;
5953
- /**
5954
- * A label data as an additional information of Metric.
5955
- */
5956
- readonly labelData: MetricLabel;
5957
- }
5958
-
5959
- /**
5960
- * @public
5961
- */
5962
- export declare interface MetricLabel {
5963
- [key: string]: string | number | boolean;
5964
- }
5965
-
5966
5776
  /**
5967
5777
  * The metrics API which can be used to gather information related to the quality-of-service and video playback experience.
5968
5778
  *
@@ -6520,13 +6330,6 @@ export declare interface PiPConfiguration {
6520
6330
  */
6521
6331
  export declare type PiPPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
6522
6332
 
6523
- /**
6524
- * @public
6525
- */
6526
- export declare interface PlayBackRateLabel {
6527
- readonly playbackRate: number;
6528
- }
6529
-
6530
6333
  /**
6531
6334
  * The player API extended with UI functionality.
6532
6335
  *
@@ -7093,18 +6896,6 @@ export declare interface Quality extends EventDispatcher<QualityEventMap> {
7093
6896
  readonly available: boolean;
7094
6897
  }
7095
6898
 
7096
- /**
7097
- * @public
7098
- */
7099
- export declare interface QualityChangeMetric extends Metric {
7100
- labelData: ReasonLabel;
7101
- }
7102
-
7103
- /**
7104
- * @public
7105
- */
7106
- export declare type QualityChangeReason = 'automatic' | 'manual';
7107
-
7108
6899
  /**
7109
6900
  * An quality-related event fired by a {@link MediaTrack}.
7110
6901
  *
@@ -7176,13 +6967,6 @@ export declare interface ReadyStateChangeEvent extends Event_2<'readystatechange
7176
6967
  readonly readyState: number;
7177
6968
  }
7178
6969
 
7179
- /**
7180
- * @public
7181
- */
7182
- export declare interface ReasonLabel extends MetricLabel {
7183
- reason: QualityChangeReason;
7184
- }
7185
-
7186
6970
  /**
7187
6971
  * Register a content protection integration
7188
6972
  *
@@ -7668,10 +7452,18 @@ export { ResponseType_2 as ResponseType }
7668
7452
  * <br/> - `'always'`: The player always uses a seamless switch, and never uses a hard switch.
7669
7453
  * Use this if you notice that the player never preloads the next period, even though you know that the current platform
7670
7454
  * should support it.
7455
+ * <br/> - `'clear-only'`: The player only uses a seamless switch when no content protection is used in the current and next period. Otherwise
7456
+ * it always uses a hard switch.
7457
+ * Use this if you notice that the player is attempting but failing to preload the next period on the current platform only when
7458
+ * content protection is involved.
7459
+ * <br/> - `'same-drm-only'`: The player only uses a seamless switch when the same or no content protection is used in the current and next period. Otherwise
7460
+ * it always uses a hard switch.
7461
+ * Use this if you notice that the player is attempting but failing to preload the next period on the current platform only when
7462
+ * content protection is different between periods.
7671
7463
  *
7672
7464
  * @public
7673
7465
  */
7674
- export declare type SeamlessPeriodSwitchStrategy = 'auto' | 'always' | 'never';
7466
+ export declare type SeamlessPeriodSwitchStrategy = 'auto' | 'always' | 'never' | 'clear-only' | 'same-drm-only';
7675
7467
 
7676
7468
  /**
7677
7469
  * Fired when `ChromelessPlayer.seeking` changes to `false` after the current playback position was changed.
@@ -7697,19 +7489,6 @@ export declare interface SeekingEvent extends Event_2<'seeking'> {
7697
7489
  readonly currentTime: number;
7698
7490
  }
7699
7491
 
7700
- /**
7701
- * @public
7702
- */
7703
- export declare type SeekReason = 'user' | 'golive' | 'init';
7704
-
7705
- /**
7706
- * @public
7707
- */
7708
- export declare interface SegmentReceiveIntervalData {
7709
- time: number;
7710
- mediaType: HespMediaType;
7711
- }
7712
-
7713
7492
  /**
7714
7493
  * Represents a configuration for server-side ad insertion (SSAI).
7715
7494
  *
@@ -8188,13 +7967,6 @@ export declare type StateChangeEvent = Event_2<'statechange'>;
8188
7967
  */
8189
7968
  export declare type StereoChangeEvent = Event_2<'stereochange'>;
8190
7969
 
8191
- /**
8192
- * @public
8193
- */
8194
- export declare interface StreamLabeledMetric extends Metric {
8195
- readonly labelData: BaseUriLabel;
8196
- }
8197
-
8198
7970
  /**
8199
7971
  * The identifier of the Stream One integration.
8200
7972
  *
@@ -9097,13 +8869,6 @@ export declare interface TokenBasedTitaniumDRMConfiguration extends TitaniumDRMC
9097
8869
  authToken: string;
9098
8870
  }
9099
8871
 
9100
- /**
9101
- * @public
9102
- */
9103
- export declare interface TotalTimePlayedMetric extends ActiveTrackLabeledMetric {
9104
- readonly labelData: ActiveTrackInfoLabel & MetricLabel & PlayBackRateLabel;
9105
- }
9106
-
9107
8872
  /**
9108
8873
  * Represents a track of a media resource.
9109
8874
  *
@@ -9145,15 +8910,6 @@ export declare interface Track extends EventDispatcher<TrackEventMap> {
9145
8910
  language: string;
9146
8911
  }
9147
8912
 
9148
- /**
9149
- * @public
9150
- */
9151
- export declare interface TrackBytesDownloadedData {
9152
- date: Date;
9153
- newBytes: number;
9154
- trackInfo: TrackInfoLabel;
9155
- }
9156
-
9157
8913
  /**
9158
8914
  * Fired when a track has been changed.
9159
8915
  *
@@ -9185,15 +8941,6 @@ export declare interface TrackEventMap {
9185
8941
  update: TrackUpdateEvent;
9186
8942
  }
9187
8943
 
9188
- /**
9189
- * @public
9190
- */
9191
- export declare interface TrackInfoLabel extends MetricLabel {
9192
- readonly mediaType: HespMediaType;
9193
- readonly switchingSetId: string;
9194
- readonly trackId: string;
9195
- }
9196
-
9197
8944
  /**
9198
8945
  * List of tracks.
9199
8946
  *
@@ -9278,13 +9025,6 @@ export declare interface TTMLCue extends TextTrackCue_2 {
9278
9025
  metadata: any;
9279
9026
  }
9280
9027
 
9281
- /**
9282
- * @public
9283
- */
9284
- export declare interface TypedMetric<T extends string> extends Metric {
9285
- labelData: TypeLabel<T>;
9286
- }
9287
-
9288
9028
  /**
9289
9029
  * Represents a media resource characterized by a URL to the resource and optionally information about the resource.
9290
9030
  *
@@ -9333,13 +9073,6 @@ export declare interface TypedSource extends BaseSource {
9333
9073
 
9334
9074
  }
9335
9075
 
9336
- /**
9337
- * @public
9338
- */
9339
- export declare interface TypeLabel<T extends string> extends MetricLabel {
9340
- type: T;
9341
- }
9342
-
9343
9076
  /**
9344
9077
  * Describes the UI configuration of the player.
9345
9078
  *
@@ -9536,13 +9269,6 @@ export declare interface UniversalAdId {
9536
9269
  adIdValue: string;
9537
9270
  }
9538
9271
 
9539
- /**
9540
- * @public
9541
- */
9542
- export declare interface UnlabeledMetric extends Metric {
9543
- readonly labelData: Exclude<{}, MetricLabel>;
9544
- }
9545
-
9546
9272
  /**
9547
9273
  * Fired when the quality updates.
9548
9274
  *