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/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +1097 -823
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +41 -1
- package/lib/index.d.ts +41 -1
- package/lib/index.js +1090 -828
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +529 -28
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +9 -1
- package/lib/players/HlsPlayer.cjs +529 -28
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +529 -28
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/sdk/ima.d.cts +1 -1
- package/lib/{types-DYelrVG6.d.cts → types-Vj55FghO.d.cts} +16 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +1086 -826
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/tracking.cjs +264 -3
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +12 -2
- package/package.json +1 -1
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 };
|