stormcloud-video-player 0.8.2 → 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 +536 -341
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +37 -2
- package/lib/index.d.ts +37 -2
- package/lib/index.js +477 -342
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +266 -206
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +5 -2
- package/lib/players/FilePlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +266 -206
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +266 -206
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/sdk/pal.cjs.map +1 -1
- package/lib/{types-DDwAfBLt.d.cts → types-BmF_60m2.d.cts} +2 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +450 -341
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/browserCompat.cjs.map +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/polyfills.cjs.map +1 -1
- 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
|
@@ -20,6 +20,7 @@ interface StormcloudVideoPlayerConfig {
|
|
|
20
20
|
muted?: boolean;
|
|
21
21
|
allowNativeHls?: boolean;
|
|
22
22
|
lowLatencyMode?: boolean;
|
|
23
|
+
isLiveStream?: boolean;
|
|
23
24
|
driftToleranceMs?: number;
|
|
24
25
|
immediateManifestAds?: boolean;
|
|
25
26
|
debugAdTiming?: boolean;
|
|
@@ -33,6 +34,7 @@ interface StormcloudVideoPlayerConfig {
|
|
|
33
34
|
onControlClick?: () => void;
|
|
34
35
|
licenseKey?: string;
|
|
35
36
|
vastTagUrl?: string;
|
|
37
|
+
isVmap?: boolean;
|
|
36
38
|
vmapUrl?: string;
|
|
37
39
|
vastMode?: 'adstorm' | 'default';
|
|
38
40
|
minSegmentsBeforePlay?: number;
|
|
@@ -177,6 +179,7 @@ declare class StormcloudVideoPlayer {
|
|
|
177
179
|
private maxPlaceholderDurationMs;
|
|
178
180
|
private isShowingPlaceholder;
|
|
179
181
|
private timeUpdateHandler?;
|
|
182
|
+
private endedHandler?;
|
|
180
183
|
private emptiedHandler?;
|
|
181
184
|
private readonly tsScte35Pids;
|
|
182
185
|
private readonly pmtPids;
|
|
@@ -265,6 +268,7 @@ declare class StormcloudVideoPlayer {
|
|
|
265
268
|
private markerTypeFromSegmentationTypeId;
|
|
266
269
|
private initializeTracking;
|
|
267
270
|
private sendHeartbeatIfNeeded;
|
|
271
|
+
private isVmapEnabled;
|
|
268
272
|
private fetchAdConfiguration;
|
|
269
273
|
private fetchAndParseVmap;
|
|
270
274
|
private parseVmapToBreaks;
|
|
@@ -297,7 +301,8 @@ declare class StormcloudVideoPlayer {
|
|
|
297
301
|
private showPlaceholderAndWaitForAds;
|
|
298
302
|
private findCurrentOrNextBreak;
|
|
299
303
|
private onTimeUpdate;
|
|
300
|
-
private
|
|
304
|
+
private onVideoEnded;
|
|
305
|
+
private handleVmapAdBreak;
|
|
301
306
|
private scheduleAdStopCountdown;
|
|
302
307
|
private clearAdStopTimer;
|
|
303
308
|
private ensureAdStoppedByTimer;
|
|
@@ -376,6 +381,7 @@ interface BaseStormcloudPlayerProps {
|
|
|
376
381
|
showCustomControls?: boolean;
|
|
377
382
|
hideLoadingIndicator?: boolean;
|
|
378
383
|
licenseKey?: string;
|
|
384
|
+
isVmap?: boolean;
|
|
379
385
|
vmapUrl?: string;
|
|
380
386
|
adFailsafeTimeoutMs?: number;
|
|
381
387
|
minSegmentsBeforePlay?: number;
|
|
@@ -4075,6 +4081,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
|
|
|
4075
4081
|
declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
|
|
4076
4082
|
declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
|
|
4077
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
|
+
|
|
4078
4113
|
declare function initializePolyfills(): void;
|
|
4079
4114
|
|
|
4080
4115
|
interface NavigatorUAData {
|
|
@@ -4143,4 +4178,4 @@ interface PalNonceManager {
|
|
|
4143
4178
|
}
|
|
4144
4179
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4145
4180
|
|
|
4146
|
-
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
|
@@ -20,6 +20,7 @@ interface StormcloudVideoPlayerConfig {
|
|
|
20
20
|
muted?: boolean;
|
|
21
21
|
allowNativeHls?: boolean;
|
|
22
22
|
lowLatencyMode?: boolean;
|
|
23
|
+
isLiveStream?: boolean;
|
|
23
24
|
driftToleranceMs?: number;
|
|
24
25
|
immediateManifestAds?: boolean;
|
|
25
26
|
debugAdTiming?: boolean;
|
|
@@ -33,6 +34,7 @@ interface StormcloudVideoPlayerConfig {
|
|
|
33
34
|
onControlClick?: () => void;
|
|
34
35
|
licenseKey?: string;
|
|
35
36
|
vastTagUrl?: string;
|
|
37
|
+
isVmap?: boolean;
|
|
36
38
|
vmapUrl?: string;
|
|
37
39
|
vastMode?: 'adstorm' | 'default';
|
|
38
40
|
minSegmentsBeforePlay?: number;
|
|
@@ -177,6 +179,7 @@ declare class StormcloudVideoPlayer {
|
|
|
177
179
|
private maxPlaceholderDurationMs;
|
|
178
180
|
private isShowingPlaceholder;
|
|
179
181
|
private timeUpdateHandler?;
|
|
182
|
+
private endedHandler?;
|
|
180
183
|
private emptiedHandler?;
|
|
181
184
|
private readonly tsScte35Pids;
|
|
182
185
|
private readonly pmtPids;
|
|
@@ -265,6 +268,7 @@ declare class StormcloudVideoPlayer {
|
|
|
265
268
|
private markerTypeFromSegmentationTypeId;
|
|
266
269
|
private initializeTracking;
|
|
267
270
|
private sendHeartbeatIfNeeded;
|
|
271
|
+
private isVmapEnabled;
|
|
268
272
|
private fetchAdConfiguration;
|
|
269
273
|
private fetchAndParseVmap;
|
|
270
274
|
private parseVmapToBreaks;
|
|
@@ -297,7 +301,8 @@ declare class StormcloudVideoPlayer {
|
|
|
297
301
|
private showPlaceholderAndWaitForAds;
|
|
298
302
|
private findCurrentOrNextBreak;
|
|
299
303
|
private onTimeUpdate;
|
|
300
|
-
private
|
|
304
|
+
private onVideoEnded;
|
|
305
|
+
private handleVmapAdBreak;
|
|
301
306
|
private scheduleAdStopCountdown;
|
|
302
307
|
private clearAdStopTimer;
|
|
303
308
|
private ensureAdStoppedByTimer;
|
|
@@ -376,6 +381,7 @@ interface BaseStormcloudPlayerProps {
|
|
|
376
381
|
showCustomControls?: boolean;
|
|
377
382
|
hideLoadingIndicator?: boolean;
|
|
378
383
|
licenseKey?: string;
|
|
384
|
+
isVmap?: boolean;
|
|
379
385
|
vmapUrl?: string;
|
|
380
386
|
adFailsafeTimeoutMs?: number;
|
|
381
387
|
minSegmentsBeforePlay?: number;
|
|
@@ -4075,6 +4081,35 @@ declare function sendAdLoadedTracking(licenseKey: string | undefined, adLoadedIn
|
|
|
4075
4081
|
declare function sendAdImpressionTracking(licenseKey: string | undefined, adImpressionInfo: AdImpressionInfo, context?: PlayerAnalyticsContext): Promise<void>;
|
|
4076
4082
|
declare function sendHeartbeat(licenseKey?: string, context?: PlayerAnalyticsContext, flags?: PlayerMetricFlags): Promise<void>;
|
|
4077
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
|
+
|
|
4078
4113
|
declare function initializePolyfills(): void;
|
|
4079
4114
|
|
|
4080
4115
|
interface NavigatorUAData {
|
|
@@ -4143,4 +4178,4 @@ interface PalNonceManager {
|
|
|
4143
4178
|
}
|
|
4144
4179
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4145
4180
|
|
|
4146
|
-
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 };
|