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/dist/stormcloud-vp.min.js +3 -1
- package/lib/index.cjs +382 -206
- 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 +323 -207
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +291 -205
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +6 -2
- package/lib/players/HlsPlayer.cjs +291 -205
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +291 -205
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/sdk/ima.d.cts +1 -1
- package/lib/{types-BJPNhfLV.d.cts → types-CjI14dPN.d.cts} +1 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +296 -206
- 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
|
@@ -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
|
|
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
|
|
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 };
|