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/dist/stormcloud-vp.min.js +3 -1
- package/lib/index.cjs +553 -217
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +46 -2
- package/lib/index.d.ts +46 -2
- package/lib/index.js +494 -218
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +462 -216
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +11 -2
- package/lib/players/HlsPlayer.cjs +462 -216
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +462 -216
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/{types-DWVgdqF-.d.cts → types-CUKMIqHL.d.cts} +5 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +467 -217
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/mqttClient.cjs +245 -0
- package/lib/utils/mqttClient.cjs.map +1 -0
- package/lib/utils/mqttClient.d.cts +13 -0
- package/lib/utils/mqttConfig.cjs +141 -0
- package/lib/utils/mqttConfig.cjs.map +1 -0
- package/lib/utils/mqttConfig.d.cts +20 -0
- package/lib/utils/tracking.cjs +182 -170
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +1 -1
- package/lib/utils/vastMacros.cjs +231 -0
- package/lib/utils/vastMacros.cjs.map +1 -0
- package/lib/utils/vastMacros.d.cts +24 -0
- package/package.json +3 -1
- package/src/certs/emqxsl-ca.crt +22 -0
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
|
|
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
|
|
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 };
|