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/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
- export { type AdBreak, type AdSchedule, type BaseStormcloudPlayerProps, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, getBrowserID, getClientInfo, isMediaStream, lazy, merge, omit, parseQuery, players, randomString, sendHeartbeat, sendInitialTracking, supportsWebKitPresentationMode };
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
- export { type AdBreak, type AdSchedule, type BaseStormcloudPlayerProps, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, type OnProgressProps, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, getBrowserID, getClientInfo, isMediaStream, lazy, merge, omit, parseQuery, players, randomString, sendHeartbeat, sendInitialTracking, supportsWebKitPresentationMode };
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 };