stormcloud-video-player 0.3.54 → 0.3.56

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/lib/index.d.cts CHANGED
@@ -34,6 +34,7 @@ interface StormcloudVideoPlayerConfig {
34
34
  licenseKey?: string;
35
35
  adPlayerType?: 'ima' | 'hls';
36
36
  vastTagUrl?: string;
37
+ vmapUrl?: string;
37
38
  vastMode?: 'adstorm' | 'default';
38
39
  minSegmentsBeforePlay?: number;
39
40
  }
@@ -101,6 +102,26 @@ interface HeartbeatData {
101
102
  browserId: string;
102
103
  timestamp: string;
103
104
  }
105
+ interface AdDetectInfo {
106
+ source: string;
107
+ durationSeconds?: number;
108
+ ptsSeconds?: number;
109
+ detectedAtFragmentSn?: number;
110
+ timestamp: string;
111
+ }
112
+ type AdTrackingSource = "prebid" | "ima" | "hls";
113
+ interface AdLoadedInfo {
114
+ source: AdTrackingSource;
115
+ vastUrl?: string;
116
+ durationSeconds?: number;
117
+ timestamp: string;
118
+ }
119
+ interface AdImpressionInfo {
120
+ source: AdTrackingSource;
121
+ adIndex: number;
122
+ durationSeconds?: number;
123
+ timestamp: string;
124
+ }
104
125
 
105
126
  declare class StormcloudVideoPlayer {
106
127
  private readonly video;
@@ -118,6 +139,8 @@ declare class StormcloudVideoPlayer {
118
139
  private adPodQueue;
119
140
  private apiVastTagUrl;
120
141
  private apiNumberAds;
142
+ private vmapBreaks;
143
+ private consumedVmapBreakIds;
121
144
  private lastHeartbeatTime;
122
145
  private heartbeatInterval;
123
146
  private currentAdIndex;
@@ -165,6 +188,7 @@ declare class StormcloudVideoPlayer {
165
188
  private readonly maxPreloadPoolSize;
166
189
  private preloadPoolActive;
167
190
  private preloadPoolLoopRunning;
191
+ private adDetectSentForCurrentBreak;
168
192
  constructor(config: StormcloudVideoPlayerConfig);
169
193
  private createAdPlayer;
170
194
  load(): Promise<void>;
@@ -188,6 +212,11 @@ declare class StormcloudVideoPlayer {
188
212
  private initializeTracking;
189
213
  private sendHeartbeatIfNeeded;
190
214
  private fetchAdConfiguration;
215
+ private fetchAndParseVmap;
216
+ private parseVmapToBreaks;
217
+ private parseVmapTimeOffsetToMs;
218
+ private getAdBreakKey;
219
+ private resolveBreakStartMs;
191
220
  getCurrentAdIndex(): number;
192
221
  getTotalAdsInBreak(): number;
193
222
  private generateVastUrlsWithCorrelators;
@@ -292,6 +321,7 @@ interface BaseStormcloudPlayerProps {
292
321
  showCustomControls?: boolean;
293
322
  hideLoadingIndicator?: boolean;
294
323
  licenseKey?: string;
324
+ vmapUrl?: string;
295
325
  adFailsafeTimeoutMs?: number;
296
326
  minSegmentsBeforePlay?: number;
297
327
  onReady?: (player: StormcloudVideoPlayer) => void;
@@ -3981,6 +4011,16 @@ declare function getClientInfo(): ClientInfo;
3981
4011
  declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
3982
4012
  declare function sendInitialTracking(licenseKey?: string): Promise<void>;
3983
4013
  declare function sendHeartbeat(licenseKey?: string): Promise<void>;
4014
+ declare function sendAdDetectTracking(licenseKey: string | undefined, payload: Omit<AdDetectInfo, "source" | "timestamp"> & Partial<Pick<AdDetectInfo, "source" | "timestamp">>): Promise<void>;
4015
+ declare function sendAdLoadedTracking(licenseKey: string | undefined, payload: Omit<AdLoadedInfo, "timestamp" | "source"> & {
4016
+ source?: AdTrackingSource | string;
4017
+ }, adPlayerType?: "ima" | "hls"): Promise<void>;
4018
+ type AdImpressionTrackingPayload = {
4019
+ adIndex: number;
4020
+ source?: AdTrackingSource | string;
4021
+ durationSeconds?: number;
4022
+ };
4023
+ declare function sendAdImpressionTracking(licenseKey: string | undefined, payload: AdImpressionTrackingPayload, adPlayerType?: "ima" | "hls"): Promise<void>;
3984
4024
 
3985
4025
  declare function initializePolyfills(): void;
3986
4026
 
@@ -4037,4 +4077,4 @@ declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
4037
4077
  mainHlsInstance?: Hls;
4038
4078
  }): ImaController;
4039
4079
 
4040
- export { type AdBreak, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, getRecommendedAdPlayer, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };
4080
+ export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, type AdSchedule, type AdTrackingSource, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, getRecommendedAdPlayer, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };
package/lib/index.d.ts CHANGED
@@ -34,6 +34,7 @@ interface StormcloudVideoPlayerConfig {
34
34
  licenseKey?: string;
35
35
  adPlayerType?: 'ima' | 'hls';
36
36
  vastTagUrl?: string;
37
+ vmapUrl?: string;
37
38
  vastMode?: 'adstorm' | 'default';
38
39
  minSegmentsBeforePlay?: number;
39
40
  }
@@ -101,6 +102,26 @@ interface HeartbeatData {
101
102
  browserId: string;
102
103
  timestamp: string;
103
104
  }
105
+ interface AdDetectInfo {
106
+ source: string;
107
+ durationSeconds?: number;
108
+ ptsSeconds?: number;
109
+ detectedAtFragmentSn?: number;
110
+ timestamp: string;
111
+ }
112
+ type AdTrackingSource = "prebid" | "ima" | "hls";
113
+ interface AdLoadedInfo {
114
+ source: AdTrackingSource;
115
+ vastUrl?: string;
116
+ durationSeconds?: number;
117
+ timestamp: string;
118
+ }
119
+ interface AdImpressionInfo {
120
+ source: AdTrackingSource;
121
+ adIndex: number;
122
+ durationSeconds?: number;
123
+ timestamp: string;
124
+ }
104
125
 
105
126
  declare class StormcloudVideoPlayer {
106
127
  private readonly video;
@@ -118,6 +139,8 @@ declare class StormcloudVideoPlayer {
118
139
  private adPodQueue;
119
140
  private apiVastTagUrl;
120
141
  private apiNumberAds;
142
+ private vmapBreaks;
143
+ private consumedVmapBreakIds;
121
144
  private lastHeartbeatTime;
122
145
  private heartbeatInterval;
123
146
  private currentAdIndex;
@@ -165,6 +188,7 @@ declare class StormcloudVideoPlayer {
165
188
  private readonly maxPreloadPoolSize;
166
189
  private preloadPoolActive;
167
190
  private preloadPoolLoopRunning;
191
+ private adDetectSentForCurrentBreak;
168
192
  constructor(config: StormcloudVideoPlayerConfig);
169
193
  private createAdPlayer;
170
194
  load(): Promise<void>;
@@ -188,6 +212,11 @@ declare class StormcloudVideoPlayer {
188
212
  private initializeTracking;
189
213
  private sendHeartbeatIfNeeded;
190
214
  private fetchAdConfiguration;
215
+ private fetchAndParseVmap;
216
+ private parseVmapToBreaks;
217
+ private parseVmapTimeOffsetToMs;
218
+ private getAdBreakKey;
219
+ private resolveBreakStartMs;
191
220
  getCurrentAdIndex(): number;
192
221
  getTotalAdsInBreak(): number;
193
222
  private generateVastUrlsWithCorrelators;
@@ -292,6 +321,7 @@ interface BaseStormcloudPlayerProps {
292
321
  showCustomControls?: boolean;
293
322
  hideLoadingIndicator?: boolean;
294
323
  licenseKey?: string;
324
+ vmapUrl?: string;
295
325
  adFailsafeTimeoutMs?: number;
296
326
  minSegmentsBeforePlay?: number;
297
327
  onReady?: (player: StormcloudVideoPlayer) => void;
@@ -3981,6 +4011,16 @@ declare function getClientInfo(): ClientInfo;
3981
4011
  declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
3982
4012
  declare function sendInitialTracking(licenseKey?: string): Promise<void>;
3983
4013
  declare function sendHeartbeat(licenseKey?: string): Promise<void>;
4014
+ declare function sendAdDetectTracking(licenseKey: string | undefined, payload: Omit<AdDetectInfo, "source" | "timestamp"> & Partial<Pick<AdDetectInfo, "source" | "timestamp">>): Promise<void>;
4015
+ declare function sendAdLoadedTracking(licenseKey: string | undefined, payload: Omit<AdLoadedInfo, "timestamp" | "source"> & {
4016
+ source?: AdTrackingSource | string;
4017
+ }, adPlayerType?: "ima" | "hls"): Promise<void>;
4018
+ type AdImpressionTrackingPayload = {
4019
+ adIndex: number;
4020
+ source?: AdTrackingSource | string;
4021
+ durationSeconds?: number;
4022
+ };
4023
+ declare function sendAdImpressionTracking(licenseKey: string | undefined, payload: AdImpressionTrackingPayload, adPlayerType?: "ima" | "hls"): Promise<void>;
3984
4024
 
3985
4025
  declare function initializePolyfills(): void;
3986
4026
 
@@ -4037,4 +4077,4 @@ declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
4037
4077
  mainHlsInstance?: Hls;
4038
4078
  }): ImaController;
4039
4079
 
4040
- export { type AdBreak, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, getRecommendedAdPlayer, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };
4080
+ export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, type AdSchedule, type AdTrackingSource, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, getRecommendedAdPlayer, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };