stormcloud-video-player 0.3.62 → 0.3.64

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
@@ -35,6 +35,7 @@ interface StormcloudVideoPlayerConfig {
35
35
  licenseKey?: string;
36
36
  adPlayerType?: 'ima' | 'hls';
37
37
  vastTagUrl?: string;
38
+ isVmap?: boolean;
38
39
  vmapUrl?: string;
39
40
  vastMode?: 'adstorm' | 'default';
40
41
  minSegmentsBeforePlay?: number;
@@ -177,6 +178,7 @@ declare class StormcloudVideoPlayer {
177
178
  private maxPlaceholderDurationMs;
178
179
  private isShowingPlaceholder;
179
180
  private timeUpdateHandler?;
181
+ private endedHandler?;
180
182
  private emptiedHandler?;
181
183
  private readonly tsScte35Pids;
182
184
  private readonly pmtPids;
@@ -263,9 +265,11 @@ declare class StormcloudVideoPlayer {
263
265
  private markerTypeFromSegmentationTypeId;
264
266
  private initializeTracking;
265
267
  private sendHeartbeatIfNeeded;
268
+ private isVmapEnabled;
266
269
  private fetchAdConfiguration;
267
270
  private fetchAndParseVmap;
268
271
  private parseVmapToBreaks;
272
+ private resolveVmapAdTagUrl;
269
273
  private parseVmapTimeOffsetToMs;
270
274
  private getAdBreakKey;
271
275
  private resolveBreakStartMs;
@@ -295,7 +299,8 @@ declare class StormcloudVideoPlayer {
295
299
  private showPlaceholderAndWaitForAds;
296
300
  private findCurrentOrNextBreak;
297
301
  private onTimeUpdate;
298
- private handleMidAdJoin;
302
+ private onVideoEnded;
303
+ private handleVmapAdBreak;
299
304
  private scheduleAdStopCountdown;
300
305
  private clearAdStopTimer;
301
306
  private ensureAdStoppedByTimer;
@@ -374,6 +379,7 @@ interface BaseStormcloudPlayerProps {
374
379
  showCustomControls?: boolean;
375
380
  hideLoadingIndicator?: boolean;
376
381
  licenseKey?: string;
382
+ isVmap?: boolean;
377
383
  vmapUrl?: string;
378
384
  adFailsafeTimeoutMs?: number;
379
385
  minSegmentsBeforePlay?: number;
@@ -4073,6 +4079,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
4073
4079
  declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
4074
4080
  declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
4075
4081
 
4082
+ declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
4083
+ type MQTTConfig = {
4084
+ enabled: boolean;
4085
+ brokerAddress: string;
4086
+ brokerPort: number;
4087
+ wsPort: number;
4088
+ username: string;
4089
+ password: string;
4090
+ topicPrefix: string;
4091
+ qos: 0 | 1 | 2;
4092
+ brokerUrl?: string;
4093
+ };
4094
+ declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
4095
+ declare const mqttConfig: MQTTConfig;
4096
+ declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
4097
+ declare function isMQTTEnabled(): boolean;
4098
+ declare function buildMQTTBrokerUrl(): string;
4099
+ declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
4100
+
4101
+ type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
4102
+ declare function getMQTTStatus(): MQTTStatus;
4103
+ declare function isMQTTConnected(): boolean;
4104
+ declare function isMQTTConfigured(): boolean;
4105
+ declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
4106
+ declare function initMQTTClient(): void;
4107
+ declare function ensureMQTTClient(): void;
4108
+ declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
4109
+ declare function disconnectMQTT(): void;
4110
+
4076
4111
  declare function initializePolyfills(): void;
4077
4112
 
4078
4113
  interface NavigatorUAData {
@@ -4128,4 +4163,4 @@ declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
4128
4163
  mainHlsInstance?: Hls;
4129
4164
  }): ImaController;
4130
4165
 
4131
- export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, 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, type PlayerAnalyticsContext, 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 };
4166
+ export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_MQTT_CONFIG, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type MQTTConfig, type MQTTStatus, MQTT_CA_CERT_FILE, type OnProgressProps, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, applyMQTTConfig, buildMQTTBrokerUrl, buildPlayerTopic, canPlay, configureMQTT, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, disconnectMQTT, ensureMQTTClient, getBrowserConfigOverrides, getBrowserID, getClientInfo, getMQTTStatus, getRecommendedAdPlayer, initMQTTClient, initializePolyfills, isMQTTConfigured, isMQTTConnected, isMQTTEnabled, isMediaStream, lazy, logBrowserInfo, merge, mqttConfig, omit, parseQuery, players, publishMQTT, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };
package/lib/index.d.ts CHANGED
@@ -35,6 +35,7 @@ interface StormcloudVideoPlayerConfig {
35
35
  licenseKey?: string;
36
36
  adPlayerType?: 'ima' | 'hls';
37
37
  vastTagUrl?: string;
38
+ isVmap?: boolean;
38
39
  vmapUrl?: string;
39
40
  vastMode?: 'adstorm' | 'default';
40
41
  minSegmentsBeforePlay?: number;
@@ -177,6 +178,7 @@ declare class StormcloudVideoPlayer {
177
178
  private maxPlaceholderDurationMs;
178
179
  private isShowingPlaceholder;
179
180
  private timeUpdateHandler?;
181
+ private endedHandler?;
180
182
  private emptiedHandler?;
181
183
  private readonly tsScte35Pids;
182
184
  private readonly pmtPids;
@@ -263,9 +265,11 @@ declare class StormcloudVideoPlayer {
263
265
  private markerTypeFromSegmentationTypeId;
264
266
  private initializeTracking;
265
267
  private sendHeartbeatIfNeeded;
268
+ private isVmapEnabled;
266
269
  private fetchAdConfiguration;
267
270
  private fetchAndParseVmap;
268
271
  private parseVmapToBreaks;
272
+ private resolveVmapAdTagUrl;
269
273
  private parseVmapTimeOffsetToMs;
270
274
  private getAdBreakKey;
271
275
  private resolveBreakStartMs;
@@ -295,7 +299,8 @@ declare class StormcloudVideoPlayer {
295
299
  private showPlaceholderAndWaitForAds;
296
300
  private findCurrentOrNextBreak;
297
301
  private onTimeUpdate;
298
- private handleMidAdJoin;
302
+ private onVideoEnded;
303
+ private handleVmapAdBreak;
299
304
  private scheduleAdStopCountdown;
300
305
  private clearAdStopTimer;
301
306
  private ensureAdStoppedByTimer;
@@ -374,6 +379,7 @@ interface BaseStormcloudPlayerProps {
374
379
  showCustomControls?: boolean;
375
380
  hideLoadingIndicator?: boolean;
376
381
  licenseKey?: string;
382
+ isVmap?: boolean;
377
383
  vmapUrl?: string;
378
384
  adFailsafeTimeoutMs?: number;
379
385
  minSegmentsBeforePlay?: number;
@@ -4073,6 +4079,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
4073
4079
  declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
4074
4080
  declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
4075
4081
 
4082
+ declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
4083
+ type MQTTConfig = {
4084
+ enabled: boolean;
4085
+ brokerAddress: string;
4086
+ brokerPort: number;
4087
+ wsPort: number;
4088
+ username: string;
4089
+ password: string;
4090
+ topicPrefix: string;
4091
+ qos: 0 | 1 | 2;
4092
+ brokerUrl?: string;
4093
+ };
4094
+ declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
4095
+ declare const mqttConfig: MQTTConfig;
4096
+ declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
4097
+ declare function isMQTTEnabled(): boolean;
4098
+ declare function buildMQTTBrokerUrl(): string;
4099
+ declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
4100
+
4101
+ type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
4102
+ declare function getMQTTStatus(): MQTTStatus;
4103
+ declare function isMQTTConnected(): boolean;
4104
+ declare function isMQTTConfigured(): boolean;
4105
+ declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
4106
+ declare function initMQTTClient(): void;
4107
+ declare function ensureMQTTClient(): void;
4108
+ declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
4109
+ declare function disconnectMQTT(): void;
4110
+
4076
4111
  declare function initializePolyfills(): void;
4077
4112
 
4078
4113
  interface NavigatorUAData {
@@ -4128,4 +4163,4 @@ declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
4128
4163
  mainHlsInstance?: Hls;
4129
4164
  }): ImaController;
4130
4165
 
4131
- export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, 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, type PlayerAnalyticsContext, 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 };
4166
+ export { type AdBreak, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_MQTT_CONFIG, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type MQTTConfig, type MQTTStatus, MQTT_CA_CERT_FILE, type OnProgressProps, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, applyMQTTConfig, buildMQTTBrokerUrl, buildPlayerTopic, canPlay, configureMQTT, createHlsAdPlayer, createImaController, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, disconnectMQTT, ensureMQTTClient, getBrowserConfigOverrides, getBrowserID, getClientInfo, getMQTTStatus, getRecommendedAdPlayer, initMQTTClient, initializePolyfills, isMQTTConfigured, isMQTTConnected, isMQTTEnabled, isMediaStream, lazy, logBrowserInfo, merge, mqttConfig, omit, parseQuery, players, publishMQTT, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsGoogleIMA, supportsModernJS, supportsWebKitPresentationMode };