stormcloud-video-player 0.8.3 → 0.8.5

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,9 +34,14 @@ interface StormcloudVideoPlayerConfig {
34
34
  onControlClick?: () => void;
35
35
  licenseKey?: string;
36
36
  vastTagUrl?: string;
37
+ isVmap?: boolean;
37
38
  vmapUrl?: string;
38
39
  vastMode?: 'adstorm' | 'default';
39
40
  minSegmentsBeforePlay?: number;
41
+ deviceId?: string;
42
+ deviceIdType?: string;
43
+ limitAdTracking?: boolean;
44
+ adTest?: boolean;
40
45
  }
41
46
  interface AdController {
42
47
  initialize: () => void;
@@ -178,6 +183,7 @@ declare class StormcloudVideoPlayer {
178
183
  private maxPlaceholderDurationMs;
179
184
  private isShowingPlaceholder;
180
185
  private timeUpdateHandler?;
186
+ private endedHandler?;
181
187
  private emptiedHandler?;
182
188
  private readonly tsScte35Pids;
183
189
  private readonly pmtPids;
@@ -213,6 +219,11 @@ declare class StormcloudVideoPlayer {
213
219
  private adDetectSentForCurrentBreak;
214
220
  private palNonce;
215
221
  private palPlaybackStarted;
222
+ private readonly streamCorrelator;
223
+ private consentSignals;
224
+ private podCounter;
225
+ private podAssignedByPrefetch;
226
+ private adRequestPositionInBreak;
216
227
  constructor(config: StormcloudVideoPlayerConfig);
217
228
  private createAdPlayer;
218
229
  load(): Promise<void>;
@@ -266,6 +277,7 @@ declare class StormcloudVideoPlayer {
266
277
  private markerTypeFromSegmentationTypeId;
267
278
  private initializeTracking;
268
279
  private sendHeartbeatIfNeeded;
280
+ private isVmapEnabled;
269
281
  private fetchAdConfiguration;
270
282
  private fetchAndParseVmap;
271
283
  private parseVmapToBreaks;
@@ -275,6 +287,7 @@ declare class StormcloudVideoPlayer {
275
287
  getCurrentAdIndex(): number;
276
288
  getTotalAdsInBreak(): number;
277
289
  getAdRemainingMs(): number;
290
+ private beginNewAdPod;
278
291
  private generateVastUrlsWithCorrelators;
279
292
  isAdPlaying(): boolean;
280
293
  isShowingAds(): boolean;
@@ -298,7 +311,8 @@ declare class StormcloudVideoPlayer {
298
311
  private showPlaceholderAndWaitForAds;
299
312
  private findCurrentOrNextBreak;
300
313
  private onTimeUpdate;
301
- private handleMidAdJoin;
314
+ private onVideoEnded;
315
+ private handleVmapAdBreak;
302
316
  private scheduleAdStopCountdown;
303
317
  private clearAdStopTimer;
304
318
  private ensureAdStoppedByTimer;
@@ -377,6 +391,7 @@ interface BaseStormcloudPlayerProps {
377
391
  showCustomControls?: boolean;
378
392
  hideLoadingIndicator?: boolean;
379
393
  licenseKey?: string;
394
+ isVmap?: boolean;
380
395
  vmapUrl?: string;
381
396
  adFailsafeTimeoutMs?: number;
382
397
  minSegmentsBeforePlay?: number;
@@ -4076,6 +4091,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
4076
4091
  declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
4077
4092
  declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
4078
4093
 
4094
+ declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
4095
+ type MQTTConfig = {
4096
+ enabled: boolean;
4097
+ brokerAddress: string;
4098
+ brokerPort: number;
4099
+ wsPort: number;
4100
+ username: string;
4101
+ password: string;
4102
+ topicPrefix: string;
4103
+ qos: 0 | 1 | 2;
4104
+ brokerUrl?: string;
4105
+ };
4106
+ declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
4107
+ declare const mqttConfig: MQTTConfig;
4108
+ declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
4109
+ declare function isMQTTEnabled(): boolean;
4110
+ declare function buildMQTTBrokerUrl(): string;
4111
+ declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
4112
+
4113
+ type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
4114
+ declare function getMQTTStatus(): MQTTStatus;
4115
+ declare function isMQTTConnected(): boolean;
4116
+ declare function isMQTTConfigured(): boolean;
4117
+ declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
4118
+ declare function initMQTTClient(): void;
4119
+ declare function ensureMQTTClient(): void;
4120
+ declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
4121
+ declare function disconnectMQTT(): void;
4122
+
4079
4123
  declare function initializePolyfills(): void;
4080
4124
 
4081
4125
  interface NavigatorUAData {
@@ -4144,4 +4188,4 @@ interface PalNonceManager {
4144
4188
  }
4145
4189
  declare function createPalNonceManager(): PalNonceManager;
4146
4190
 
4147
- export { type AdBreak, type AdController, type AdControllerOptions, 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 PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode };
4191
+ export { type AdBreak, type AdController, type AdControllerOptions, 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 PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, applyMQTTConfig, buildMQTTBrokerUrl, buildPlayerTopic, canPlay, configureMQTT, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, disconnectMQTT, ensureMQTTClient, getBrowserConfigOverrides, getBrowserID, getClientInfo, getMQTTStatus, initMQTTClient, initializePolyfills, isMQTTConfigured, isMQTTConnected, isMQTTEnabled, isMediaStream, lazy, logBrowserInfo, merge, mqttConfig, omit, parseQuery, players, publishMQTT, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode };
package/lib/index.d.ts CHANGED
@@ -34,9 +34,14 @@ interface StormcloudVideoPlayerConfig {
34
34
  onControlClick?: () => void;
35
35
  licenseKey?: string;
36
36
  vastTagUrl?: string;
37
+ isVmap?: boolean;
37
38
  vmapUrl?: string;
38
39
  vastMode?: 'adstorm' | 'default';
39
40
  minSegmentsBeforePlay?: number;
41
+ deviceId?: string;
42
+ deviceIdType?: string;
43
+ limitAdTracking?: boolean;
44
+ adTest?: boolean;
40
45
  }
41
46
  interface AdController {
42
47
  initialize: () => void;
@@ -178,6 +183,7 @@ declare class StormcloudVideoPlayer {
178
183
  private maxPlaceholderDurationMs;
179
184
  private isShowingPlaceholder;
180
185
  private timeUpdateHandler?;
186
+ private endedHandler?;
181
187
  private emptiedHandler?;
182
188
  private readonly tsScte35Pids;
183
189
  private readonly pmtPids;
@@ -213,6 +219,11 @@ declare class StormcloudVideoPlayer {
213
219
  private adDetectSentForCurrentBreak;
214
220
  private palNonce;
215
221
  private palPlaybackStarted;
222
+ private readonly streamCorrelator;
223
+ private consentSignals;
224
+ private podCounter;
225
+ private podAssignedByPrefetch;
226
+ private adRequestPositionInBreak;
216
227
  constructor(config: StormcloudVideoPlayerConfig);
217
228
  private createAdPlayer;
218
229
  load(): Promise<void>;
@@ -266,6 +277,7 @@ declare class StormcloudVideoPlayer {
266
277
  private markerTypeFromSegmentationTypeId;
267
278
  private initializeTracking;
268
279
  private sendHeartbeatIfNeeded;
280
+ private isVmapEnabled;
269
281
  private fetchAdConfiguration;
270
282
  private fetchAndParseVmap;
271
283
  private parseVmapToBreaks;
@@ -275,6 +287,7 @@ declare class StormcloudVideoPlayer {
275
287
  getCurrentAdIndex(): number;
276
288
  getTotalAdsInBreak(): number;
277
289
  getAdRemainingMs(): number;
290
+ private beginNewAdPod;
278
291
  private generateVastUrlsWithCorrelators;
279
292
  isAdPlaying(): boolean;
280
293
  isShowingAds(): boolean;
@@ -298,7 +311,8 @@ declare class StormcloudVideoPlayer {
298
311
  private showPlaceholderAndWaitForAds;
299
312
  private findCurrentOrNextBreak;
300
313
  private onTimeUpdate;
301
- private handleMidAdJoin;
314
+ private onVideoEnded;
315
+ private handleVmapAdBreak;
302
316
  private scheduleAdStopCountdown;
303
317
  private clearAdStopTimer;
304
318
  private ensureAdStoppedByTimer;
@@ -377,6 +391,7 @@ interface BaseStormcloudPlayerProps {
377
391
  showCustomControls?: boolean;
378
392
  hideLoadingIndicator?: boolean;
379
393
  licenseKey?: string;
394
+ isVmap?: boolean;
380
395
  vmapUrl?: string;
381
396
  adFailsafeTimeoutMs?: number;
382
397
  minSegmentsBeforePlay?: number;
@@ -4076,6 +4091,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
4076
4091
  declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
4077
4092
  declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
4078
4093
 
4094
+ declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
4095
+ type MQTTConfig = {
4096
+ enabled: boolean;
4097
+ brokerAddress: string;
4098
+ brokerPort: number;
4099
+ wsPort: number;
4100
+ username: string;
4101
+ password: string;
4102
+ topicPrefix: string;
4103
+ qos: 0 | 1 | 2;
4104
+ brokerUrl?: string;
4105
+ };
4106
+ declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
4107
+ declare const mqttConfig: MQTTConfig;
4108
+ declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
4109
+ declare function isMQTTEnabled(): boolean;
4110
+ declare function buildMQTTBrokerUrl(): string;
4111
+ declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
4112
+
4113
+ type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
4114
+ declare function getMQTTStatus(): MQTTStatus;
4115
+ declare function isMQTTConnected(): boolean;
4116
+ declare function isMQTTConfigured(): boolean;
4117
+ declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
4118
+ declare function initMQTTClient(): void;
4119
+ declare function ensureMQTTClient(): void;
4120
+ declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
4121
+ declare function disconnectMQTT(): void;
4122
+
4079
4123
  declare function initializePolyfills(): void;
4080
4124
 
4081
4125
  interface NavigatorUAData {
@@ -4144,4 +4188,4 @@ interface PalNonceManager {
4144
4188
  }
4145
4189
  declare function createPalNonceManager(): PalNonceManager;
4146
4190
 
4147
- export { type AdBreak, type AdController, type AdControllerOptions, 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 PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, canPlay, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode };
4191
+ export { type AdBreak, type AdController, type AdControllerOptions, 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 PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, applyMQTTConfig, buildMQTTBrokerUrl, buildPlayerTopic, canPlay, configureMQTT, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, disconnectMQTT, ensureMQTTClient, getBrowserConfigOverrides, getBrowserID, getClientInfo, getMQTTStatus, initMQTTClient, initializePolyfills, isMQTTConfigured, isMQTTConnected, isMQTTEnabled, isMediaStream, lazy, logBrowserInfo, merge, mqttConfig, omit, parseQuery, players, publishMQTT, randomString, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode };