stormcloud-video-player 0.8.3 → 0.8.4
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 +353 -203
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +36 -2
- package/lib/index.d.ts +36 -2
- package/lib/index.js +294 -204
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +262 -202
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +5 -2
- package/lib/players/HlsPlayer.cjs +262 -202
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +262 -202
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/{types-DWVgdqF-.d.cts → types-BmF_60m2.d.cts} +1 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +267 -203
- 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/package.json +3 -1
- package/src/certs/emqxsl-ca.crt +22 -0
package/lib/index.d.cts
CHANGED
|
@@ -34,6 +34,7 @@ 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;
|
|
@@ -178,6 +179,7 @@ declare class StormcloudVideoPlayer {
|
|
|
178
179
|
private maxPlaceholderDurationMs;
|
|
179
180
|
private isShowingPlaceholder;
|
|
180
181
|
private timeUpdateHandler?;
|
|
182
|
+
private endedHandler?;
|
|
181
183
|
private emptiedHandler?;
|
|
182
184
|
private readonly tsScte35Pids;
|
|
183
185
|
private readonly pmtPids;
|
|
@@ -266,6 +268,7 @@ declare class StormcloudVideoPlayer {
|
|
|
266
268
|
private markerTypeFromSegmentationTypeId;
|
|
267
269
|
private initializeTracking;
|
|
268
270
|
private sendHeartbeatIfNeeded;
|
|
271
|
+
private isVmapEnabled;
|
|
269
272
|
private fetchAdConfiguration;
|
|
270
273
|
private fetchAndParseVmap;
|
|
271
274
|
private parseVmapToBreaks;
|
|
@@ -298,7 +301,8 @@ declare class StormcloudVideoPlayer {
|
|
|
298
301
|
private showPlaceholderAndWaitForAds;
|
|
299
302
|
private findCurrentOrNextBreak;
|
|
300
303
|
private onTimeUpdate;
|
|
301
|
-
private
|
|
304
|
+
private onVideoEnded;
|
|
305
|
+
private handleVmapAdBreak;
|
|
302
306
|
private scheduleAdStopCountdown;
|
|
303
307
|
private clearAdStopTimer;
|
|
304
308
|
private ensureAdStoppedByTimer;
|
|
@@ -377,6 +381,7 @@ interface BaseStormcloudPlayerProps {
|
|
|
377
381
|
showCustomControls?: boolean;
|
|
378
382
|
hideLoadingIndicator?: boolean;
|
|
379
383
|
licenseKey?: string;
|
|
384
|
+
isVmap?: boolean;
|
|
380
385
|
vmapUrl?: string;
|
|
381
386
|
adFailsafeTimeoutMs?: number;
|
|
382
387
|
minSegmentsBeforePlay?: number;
|
|
@@ -4076,6 +4081,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
|
|
|
4076
4081
|
declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
|
|
4077
4082
|
declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
|
|
4078
4083
|
|
|
4084
|
+
declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
|
|
4085
|
+
type MQTTConfig = {
|
|
4086
|
+
enabled: boolean;
|
|
4087
|
+
brokerAddress: string;
|
|
4088
|
+
brokerPort: number;
|
|
4089
|
+
wsPort: number;
|
|
4090
|
+
username: string;
|
|
4091
|
+
password: string;
|
|
4092
|
+
topicPrefix: string;
|
|
4093
|
+
qos: 0 | 1 | 2;
|
|
4094
|
+
brokerUrl?: string;
|
|
4095
|
+
};
|
|
4096
|
+
declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
|
|
4097
|
+
declare const mqttConfig: MQTTConfig;
|
|
4098
|
+
declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
|
|
4099
|
+
declare function isMQTTEnabled(): boolean;
|
|
4100
|
+
declare function buildMQTTBrokerUrl(): string;
|
|
4101
|
+
declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
|
|
4102
|
+
|
|
4103
|
+
type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
|
|
4104
|
+
declare function getMQTTStatus(): MQTTStatus;
|
|
4105
|
+
declare function isMQTTConnected(): boolean;
|
|
4106
|
+
declare function isMQTTConfigured(): boolean;
|
|
4107
|
+
declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
|
|
4108
|
+
declare function initMQTTClient(): void;
|
|
4109
|
+
declare function ensureMQTTClient(): void;
|
|
4110
|
+
declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
|
|
4111
|
+
declare function disconnectMQTT(): void;
|
|
4112
|
+
|
|
4079
4113
|
declare function initializePolyfills(): void;
|
|
4080
4114
|
|
|
4081
4115
|
interface NavigatorUAData {
|
|
@@ -4144,4 +4178,4 @@ interface PalNonceManager {
|
|
|
4144
4178
|
}
|
|
4145
4179
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4146
4180
|
|
|
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 };
|
|
4181
|
+
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,6 +34,7 @@ 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;
|
|
@@ -178,6 +179,7 @@ declare class StormcloudVideoPlayer {
|
|
|
178
179
|
private maxPlaceholderDurationMs;
|
|
179
180
|
private isShowingPlaceholder;
|
|
180
181
|
private timeUpdateHandler?;
|
|
182
|
+
private endedHandler?;
|
|
181
183
|
private emptiedHandler?;
|
|
182
184
|
private readonly tsScte35Pids;
|
|
183
185
|
private readonly pmtPids;
|
|
@@ -266,6 +268,7 @@ declare class StormcloudVideoPlayer {
|
|
|
266
268
|
private markerTypeFromSegmentationTypeId;
|
|
267
269
|
private initializeTracking;
|
|
268
270
|
private sendHeartbeatIfNeeded;
|
|
271
|
+
private isVmapEnabled;
|
|
269
272
|
private fetchAdConfiguration;
|
|
270
273
|
private fetchAndParseVmap;
|
|
271
274
|
private parseVmapToBreaks;
|
|
@@ -298,7 +301,8 @@ declare class StormcloudVideoPlayer {
|
|
|
298
301
|
private showPlaceholderAndWaitForAds;
|
|
299
302
|
private findCurrentOrNextBreak;
|
|
300
303
|
private onTimeUpdate;
|
|
301
|
-
private
|
|
304
|
+
private onVideoEnded;
|
|
305
|
+
private handleVmapAdBreak;
|
|
302
306
|
private scheduleAdStopCountdown;
|
|
303
307
|
private clearAdStopTimer;
|
|
304
308
|
private ensureAdStoppedByTimer;
|
|
@@ -377,6 +381,7 @@ interface BaseStormcloudPlayerProps {
|
|
|
377
381
|
showCustomControls?: boolean;
|
|
378
382
|
hideLoadingIndicator?: boolean;
|
|
379
383
|
licenseKey?: string;
|
|
384
|
+
isVmap?: boolean;
|
|
380
385
|
vmapUrl?: string;
|
|
381
386
|
adFailsafeTimeoutMs?: number;
|
|
382
387
|
minSegmentsBeforePlay?: number;
|
|
@@ -4076,6 +4081,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
|
|
|
4076
4081
|
declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
|
|
4077
4082
|
declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
|
|
4078
4083
|
|
|
4084
|
+
declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
|
|
4085
|
+
type MQTTConfig = {
|
|
4086
|
+
enabled: boolean;
|
|
4087
|
+
brokerAddress: string;
|
|
4088
|
+
brokerPort: number;
|
|
4089
|
+
wsPort: number;
|
|
4090
|
+
username: string;
|
|
4091
|
+
password: string;
|
|
4092
|
+
topicPrefix: string;
|
|
4093
|
+
qos: 0 | 1 | 2;
|
|
4094
|
+
brokerUrl?: string;
|
|
4095
|
+
};
|
|
4096
|
+
declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
|
|
4097
|
+
declare const mqttConfig: MQTTConfig;
|
|
4098
|
+
declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
|
|
4099
|
+
declare function isMQTTEnabled(): boolean;
|
|
4100
|
+
declare function buildMQTTBrokerUrl(): string;
|
|
4101
|
+
declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
|
|
4102
|
+
|
|
4103
|
+
type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
|
|
4104
|
+
declare function getMQTTStatus(): MQTTStatus;
|
|
4105
|
+
declare function isMQTTConnected(): boolean;
|
|
4106
|
+
declare function isMQTTConfigured(): boolean;
|
|
4107
|
+
declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
|
|
4108
|
+
declare function initMQTTClient(): void;
|
|
4109
|
+
declare function ensureMQTTClient(): void;
|
|
4110
|
+
declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
|
|
4111
|
+
declare function disconnectMQTT(): void;
|
|
4112
|
+
|
|
4079
4113
|
declare function initializePolyfills(): void;
|
|
4080
4114
|
|
|
4081
4115
|
interface NavigatorUAData {
|
|
@@ -4144,4 +4178,4 @@ interface PalNonceManager {
|
|
|
4144
4178
|
}
|
|
4145
4179
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4146
4180
|
|
|
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 };
|
|
4181
|
+
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 };
|