stormcloud-video-player 0.2.12 → 0.2.13
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/README.md +100 -1
- package/dist/stormcloud-vp.min.js +2 -2
- package/lib/index.cjs +986 -52
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +75 -2
- package/lib/index.d.ts +75 -2
- package/lib/index.js +976 -52
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +922 -40
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +2 -2
- package/lib/players/HlsPlayer.cjs +922 -40
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +922 -40
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.cjs +488 -0
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -0
- package/lib/sdk/hlsAdPlayer.d.cts +8 -0
- package/lib/sdk/ima.cjs +143 -0
- package/lib/sdk/ima.cjs.map +1 -1
- package/lib/sdk/ima.d.cts +1 -1
- package/lib/{types-GpA_hKek.d.cts → types-mVgmKmzM.d.cts} +3 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +922 -40
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/browserCompat.cjs +228 -0
- package/lib/utils/browserCompat.cjs.map +1 -0
- package/lib/utils/browserCompat.d.cts +36 -0
- package/lib/utils/polyfills.cjs +253 -0
- package/lib/utils/polyfills.cjs.map +1 -0
- package/lib/utils/polyfills.d.cts +11 -0
- package/lib/utils/tracking.d.cts +1 -1
- package/package.json +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -28,6 +28,28 @@ interface StormcloudVideoPlayerConfig {
|
|
|
28
28
|
onFullscreenToggle?: () => void;
|
|
29
29
|
onControlClick?: () => void;
|
|
30
30
|
licenseKey?: string;
|
|
31
|
+
adPlayerType?: 'ima' | 'hls';
|
|
32
|
+
vastTagUrl?: string;
|
|
33
|
+
vastMode?: 'adstorm' | 'default';
|
|
34
|
+
}
|
|
35
|
+
interface ImaController {
|
|
36
|
+
initialize: () => void;
|
|
37
|
+
requestAds: (vastTagUrl: string) => Promise<void>;
|
|
38
|
+
play: () => Promise<void>;
|
|
39
|
+
stop: () => Promise<void>;
|
|
40
|
+
destroy: () => void;
|
|
41
|
+
isAdPlaying: () => boolean;
|
|
42
|
+
resize: (width: number, height: number) => void;
|
|
43
|
+
on: (event: string, listener: (payload?: any) => void) => void;
|
|
44
|
+
off: (event: string, listener: (payload?: any) => void) => void;
|
|
45
|
+
updateOriginalMutedState: (muted: boolean) => void;
|
|
46
|
+
getOriginalMutedState: () => boolean;
|
|
47
|
+
setAdVolume: (volume: number) => void;
|
|
48
|
+
getAdVolume: () => number;
|
|
49
|
+
}
|
|
50
|
+
interface ImaControllerOptions {
|
|
51
|
+
maxRetries?: number;
|
|
52
|
+
backoffBaseMs?: number;
|
|
31
53
|
}
|
|
32
54
|
interface ClientInfo {
|
|
33
55
|
brand: string;
|
|
@@ -85,7 +107,6 @@ declare class StormcloudVideoPlayer {
|
|
|
85
107
|
private ptsDriftEmaMs;
|
|
86
108
|
private adPodQueue;
|
|
87
109
|
private apiVastTagUrl;
|
|
88
|
-
private vastConfig;
|
|
89
110
|
private lastHeartbeatTime;
|
|
90
111
|
private heartbeatInterval;
|
|
91
112
|
private currentAdIndex;
|
|
@@ -93,6 +114,7 @@ declare class StormcloudVideoPlayer {
|
|
|
93
114
|
private showAds;
|
|
94
115
|
private isLiveStream;
|
|
95
116
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
117
|
+
private createAdPlayer;
|
|
96
118
|
load(): Promise<void>;
|
|
97
119
|
private attach;
|
|
98
120
|
private shouldUseNativeHls;
|
|
@@ -3744,4 +3766,55 @@ declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
|
|
|
3744
3766
|
declare function sendInitialTracking(licenseKey?: string): Promise<void>;
|
|
3745
3767
|
declare function sendHeartbeat(licenseKey?: string): Promise<void>;
|
|
3746
3768
|
|
|
3747
|
-
|
|
3769
|
+
declare function initializePolyfills(): void;
|
|
3770
|
+
|
|
3771
|
+
interface NavigatorUAData {
|
|
3772
|
+
platform?: string;
|
|
3773
|
+
brands?: Array<{
|
|
3774
|
+
brand: string;
|
|
3775
|
+
version: string;
|
|
3776
|
+
}>;
|
|
3777
|
+
mobile?: boolean;
|
|
3778
|
+
}
|
|
3779
|
+
declare global {
|
|
3780
|
+
interface Navigator {
|
|
3781
|
+
userAgentData?: NavigatorUAData;
|
|
3782
|
+
}
|
|
3783
|
+
}
|
|
3784
|
+
interface BrowserInfo {
|
|
3785
|
+
name: string;
|
|
3786
|
+
version: string;
|
|
3787
|
+
majorVersion: number;
|
|
3788
|
+
isSmartTV: boolean;
|
|
3789
|
+
isLegacyTV: boolean;
|
|
3790
|
+
platform: string;
|
|
3791
|
+
supportsIMA: boolean;
|
|
3792
|
+
supportsModernJS: boolean;
|
|
3793
|
+
recommendedAdPlayer: 'ima' | 'hls';
|
|
3794
|
+
}
|
|
3795
|
+
declare function detectBrowser(): BrowserInfo;
|
|
3796
|
+
declare function supportsGoogleIMA(): boolean;
|
|
3797
|
+
declare function getRecommendedAdPlayer(): 'ima' | 'hls';
|
|
3798
|
+
declare function supportsModernJS(): boolean;
|
|
3799
|
+
declare function logBrowserInfo(debug?: boolean): void;
|
|
3800
|
+
declare function getBrowserConfigOverrides(): {
|
|
3801
|
+
adPlayerType?: 'ima' | 'hls';
|
|
3802
|
+
allowNativeHls?: boolean;
|
|
3803
|
+
};
|
|
3804
|
+
declare function supportsFeature(feature: string): boolean;
|
|
3805
|
+
|
|
3806
|
+
declare global {
|
|
3807
|
+
interface Window {
|
|
3808
|
+
google?: any;
|
|
3809
|
+
}
|
|
3810
|
+
}
|
|
3811
|
+
declare function createImaController(video: HTMLVideoElement, options?: {
|
|
3812
|
+
continueLiveStreamDuringAds?: boolean;
|
|
3813
|
+
}): ImaController;
|
|
3814
|
+
|
|
3815
|
+
declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
|
|
3816
|
+
continueLiveStreamDuringAds?: boolean;
|
|
3817
|
+
licenseKey?: string;
|
|
3818
|
+
}): ImaController;
|
|
3819
|
+
|
|
3820
|
+
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 };
|
package/lib/index.d.ts
CHANGED
|
@@ -28,6 +28,28 @@ interface StormcloudVideoPlayerConfig {
|
|
|
28
28
|
onFullscreenToggle?: () => void;
|
|
29
29
|
onControlClick?: () => void;
|
|
30
30
|
licenseKey?: string;
|
|
31
|
+
adPlayerType?: 'ima' | 'hls';
|
|
32
|
+
vastTagUrl?: string;
|
|
33
|
+
vastMode?: 'adstorm' | 'default';
|
|
34
|
+
}
|
|
35
|
+
interface ImaController {
|
|
36
|
+
initialize: () => void;
|
|
37
|
+
requestAds: (vastTagUrl: string) => Promise<void>;
|
|
38
|
+
play: () => Promise<void>;
|
|
39
|
+
stop: () => Promise<void>;
|
|
40
|
+
destroy: () => void;
|
|
41
|
+
isAdPlaying: () => boolean;
|
|
42
|
+
resize: (width: number, height: number) => void;
|
|
43
|
+
on: (event: string, listener: (payload?: any) => void) => void;
|
|
44
|
+
off: (event: string, listener: (payload?: any) => void) => void;
|
|
45
|
+
updateOriginalMutedState: (muted: boolean) => void;
|
|
46
|
+
getOriginalMutedState: () => boolean;
|
|
47
|
+
setAdVolume: (volume: number) => void;
|
|
48
|
+
getAdVolume: () => number;
|
|
49
|
+
}
|
|
50
|
+
interface ImaControllerOptions {
|
|
51
|
+
maxRetries?: number;
|
|
52
|
+
backoffBaseMs?: number;
|
|
31
53
|
}
|
|
32
54
|
interface ClientInfo {
|
|
33
55
|
brand: string;
|
|
@@ -85,7 +107,6 @@ declare class StormcloudVideoPlayer {
|
|
|
85
107
|
private ptsDriftEmaMs;
|
|
86
108
|
private adPodQueue;
|
|
87
109
|
private apiVastTagUrl;
|
|
88
|
-
private vastConfig;
|
|
89
110
|
private lastHeartbeatTime;
|
|
90
111
|
private heartbeatInterval;
|
|
91
112
|
private currentAdIndex;
|
|
@@ -93,6 +114,7 @@ declare class StormcloudVideoPlayer {
|
|
|
93
114
|
private showAds;
|
|
94
115
|
private isLiveStream;
|
|
95
116
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
117
|
+
private createAdPlayer;
|
|
96
118
|
load(): Promise<void>;
|
|
97
119
|
private attach;
|
|
98
120
|
private shouldUseNativeHls;
|
|
@@ -3744,4 +3766,55 @@ declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
|
|
|
3744
3766
|
declare function sendInitialTracking(licenseKey?: string): Promise<void>;
|
|
3745
3767
|
declare function sendHeartbeat(licenseKey?: string): Promise<void>;
|
|
3746
3768
|
|
|
3747
|
-
|
|
3769
|
+
declare function initializePolyfills(): void;
|
|
3770
|
+
|
|
3771
|
+
interface NavigatorUAData {
|
|
3772
|
+
platform?: string;
|
|
3773
|
+
brands?: Array<{
|
|
3774
|
+
brand: string;
|
|
3775
|
+
version: string;
|
|
3776
|
+
}>;
|
|
3777
|
+
mobile?: boolean;
|
|
3778
|
+
}
|
|
3779
|
+
declare global {
|
|
3780
|
+
interface Navigator {
|
|
3781
|
+
userAgentData?: NavigatorUAData;
|
|
3782
|
+
}
|
|
3783
|
+
}
|
|
3784
|
+
interface BrowserInfo {
|
|
3785
|
+
name: string;
|
|
3786
|
+
version: string;
|
|
3787
|
+
majorVersion: number;
|
|
3788
|
+
isSmartTV: boolean;
|
|
3789
|
+
isLegacyTV: boolean;
|
|
3790
|
+
platform: string;
|
|
3791
|
+
supportsIMA: boolean;
|
|
3792
|
+
supportsModernJS: boolean;
|
|
3793
|
+
recommendedAdPlayer: 'ima' | 'hls';
|
|
3794
|
+
}
|
|
3795
|
+
declare function detectBrowser(): BrowserInfo;
|
|
3796
|
+
declare function supportsGoogleIMA(): boolean;
|
|
3797
|
+
declare function getRecommendedAdPlayer(): 'ima' | 'hls';
|
|
3798
|
+
declare function supportsModernJS(): boolean;
|
|
3799
|
+
declare function logBrowserInfo(debug?: boolean): void;
|
|
3800
|
+
declare function getBrowserConfigOverrides(): {
|
|
3801
|
+
adPlayerType?: 'ima' | 'hls';
|
|
3802
|
+
allowNativeHls?: boolean;
|
|
3803
|
+
};
|
|
3804
|
+
declare function supportsFeature(feature: string): boolean;
|
|
3805
|
+
|
|
3806
|
+
declare global {
|
|
3807
|
+
interface Window {
|
|
3808
|
+
google?: any;
|
|
3809
|
+
}
|
|
3810
|
+
}
|
|
3811
|
+
declare function createImaController(video: HTMLVideoElement, options?: {
|
|
3812
|
+
continueLiveStreamDuringAds?: boolean;
|
|
3813
|
+
}): ImaController;
|
|
3814
|
+
|
|
3815
|
+
declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
|
|
3816
|
+
continueLiveStreamDuringAds?: boolean;
|
|
3817
|
+
licenseKey?: string;
|
|
3818
|
+
}): ImaController;
|
|
3819
|
+
|
|
3820
|
+
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 };
|