stormcloud-video-player 0.8.68 → 0.8.70
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 +2 -2
- package/lib/Player.cjs +30 -8
- package/lib/Player.cjs.map +1 -1
- package/lib/Player.d.cts +2 -1
- package/lib/StormcloudPlayer.cjs +6104 -5114
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/StormcloudPlayer.d.cts +1 -0
- package/lib/index.cjs +6217 -5149
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +2 -1
- package/lib/index.d.ts +93 -2
- package/lib/index.js +6199 -5158
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +669 -131
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdBreakOrchestrator.d.cts +27 -3
- package/lib/player/EdgePodRequest.cjs +136 -0
- package/lib/player/EdgePodRequest.cjs.map +1 -0
- package/lib/player/EdgePodRequest.d.cts +14 -0
- package/lib/player/FloorLadder.cjs +578 -0
- package/lib/player/FloorLadder.cjs.map +1 -0
- package/lib/player/FloorLadder.d.cts +74 -0
- package/lib/player/StormcloudVideoPlayer.cjs +6104 -5114
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +13 -1
- package/lib/players/HlsPlayer.cjs +6104 -5114
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +6104 -5114
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +30 -8
- package/lib/props.cjs.map +1 -1
- package/lib/props.d.cts +1 -0
- package/lib/sdk/hlsAdPlayer.cjs +120 -19
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/types.d.cts +30 -2
- package/lib/ui/StormcloudVideoPlayer.cjs +6169 -5129
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -0
- package/lib/utils/vastMacros.cjs +4 -0
- package/lib/utils/vastMacros.cjs.map +1 -1
- package/lib/utils/vastMacros.d.cts +2 -1
- package/package.json +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { StormcloudVideoPlayerComponent, StormcloudVideoPlayerProps, StormcloudVideoPlayerComponent as default } from './ui/StormcloudVideoPlayer.cjs';
|
|
2
2
|
export { default as StormcloudPlayer, createStormcloudPlayer } from './StormcloudPlayer.cjs';
|
|
3
3
|
export { StormcloudVideoPlayer } from './player/StormcloudVideoPlayer.cjs';
|
|
4
|
-
export { AdBreak, AdController, AdControllerOptions, AdDetectInfo, AdImpressionInfo, AdLoadedInfo, AdSchedule, ClientInfo, HeartbeatData, ImaController, ImaControllerOptions, LateJoinPolicy, PlayerAnalyticsContext, StormcloudVideoPlayerConfig, TrackingData } from './types.cjs';
|
|
4
|
+
export { AdBreak, AdController, AdControllerOptions, AdDetectInfo, AdFloorLadderConfig, AdImpressionInfo, AdLoadedInfo, AdPosition, AdSchedule, ClientInfo, FloorLadderMode, HeartbeatData, ImaController, ImaControllerOptions, LateJoinPolicy, PlayerAnalyticsContext, StormcloudVideoPlayerConfig, TrackingData } from './types.cjs';
|
|
5
|
+
export { DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_WEB_FLOOR_LADDER_CONFIG, FloorLadderBounds, FloorLadderValidationReport, FloorSelectionContext, FloorSelector, FloorSelectorResult, FloorSource, FloorValidation, OpportunityFloor, fixedFloorSelector, generateFloorLevels, resolveFloorLadderBounds, validateFloorCents, validateFloorLadderConfig } from './player/FloorLadder.cjs';
|
|
5
6
|
export { BaseStormcloudPlayerProps, OnProgressProps } from './props.cjs';
|
|
6
7
|
export { canPlay } from './patterns.cjs';
|
|
7
8
|
export { IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, SUPPORTS_DASH, SUPPORTS_HLS, isMediaStream, lazy, merge, omit, parseQuery, randomString, supportsWebKitPresentationMode } from './utils.cjs';
|
package/lib/index.d.ts
CHANGED
|
@@ -50,10 +50,37 @@ interface StormcloudVideoPlayerConfig {
|
|
|
50
50
|
podMaxAds?: number;
|
|
51
51
|
podMaxDurationMs?: number;
|
|
52
52
|
podExactDuration?: boolean;
|
|
53
|
+
adFloorLadderEnabled?: boolean;
|
|
54
|
+
adFloorLadder?: Partial<AdFloorLadderConfig>;
|
|
55
|
+
adFloorMinCents?: number;
|
|
56
|
+
adFloorMaxCents?: number;
|
|
57
|
+
adFloorStepCents?: number;
|
|
58
|
+
enableEdgePodRequest?: boolean;
|
|
59
|
+
edgePodUrl?: string;
|
|
60
|
+
}
|
|
61
|
+
type AdPosition = "preroll" | "midroll" | "postroll";
|
|
62
|
+
type FloorLadderMode = "fixed";
|
|
63
|
+
interface AdFloorLadderConfig {
|
|
64
|
+
enabled: boolean;
|
|
65
|
+
targetingKey: string;
|
|
66
|
+
minFloorCents: number;
|
|
67
|
+
maxFloorCents: number;
|
|
68
|
+
stepCents: number;
|
|
69
|
+
selectedFloorCents: number;
|
|
70
|
+
fallbackFloorCents: number;
|
|
71
|
+
readyFloorCents: number[];
|
|
72
|
+
mode: FloorLadderMode;
|
|
73
|
+
allowedPositions: AdPosition[];
|
|
74
|
+
targetAdUnitPath: string;
|
|
75
|
+
configurationVersion: string;
|
|
76
|
+
}
|
|
77
|
+
type AdRequestSource = "gam" | "edge";
|
|
78
|
+
interface AdRequestOptions {
|
|
79
|
+
source?: AdRequestSource;
|
|
53
80
|
}
|
|
54
81
|
interface AdController {
|
|
55
82
|
initialize: () => void;
|
|
56
|
-
requestAds: (vastTagUrl: string) => Promise<void>;
|
|
83
|
+
requestAds: (vastTagUrl: string, options?: AdRequestOptions) => Promise<void>;
|
|
57
84
|
play: () => Promise<void>;
|
|
58
85
|
pause: () => void;
|
|
59
86
|
resume: () => void;
|
|
@@ -74,6 +101,7 @@ interface AdController {
|
|
|
74
101
|
getLoadedAdId?: () => string | undefined;
|
|
75
102
|
getPodAdCount?: () => number;
|
|
76
103
|
getPodTotalDurationMs?: () => number;
|
|
104
|
+
limitPodToBudget?: (maxDurationMs: number, maxAds: number) => number;
|
|
77
105
|
setFunnelContext?: (context: {
|
|
78
106
|
breakId?: number;
|
|
79
107
|
requestId?: number;
|
|
@@ -160,6 +188,58 @@ interface AdImpressionInfo {
|
|
|
160
188
|
timestamp: string;
|
|
161
189
|
}
|
|
162
190
|
|
|
191
|
+
declare const DEFAULT_WEB_FLOOR_LADDER_CONFIG: Readonly<AdFloorLadderConfig>;
|
|
192
|
+
type FloorValidationReason = "not_integer" | "out_of_range" | "not_step_multiple" | "not_ready";
|
|
193
|
+
type FloorValidation = {
|
|
194
|
+
ok: true;
|
|
195
|
+
} | {
|
|
196
|
+
ok: false;
|
|
197
|
+
reason: FloorValidationReason;
|
|
198
|
+
};
|
|
199
|
+
type FloorSource = "selected" | "fallback" | "none";
|
|
200
|
+
/** Levels that have targeting values in GAM; the ladder config can narrow these but never widen them. */
|
|
201
|
+
interface FloorLadderBounds {
|
|
202
|
+
minCents: number;
|
|
203
|
+
maxCents: number;
|
|
204
|
+
stepCents: number;
|
|
205
|
+
}
|
|
206
|
+
declare const DEFAULT_FLOOR_LADDER_BOUNDS: Readonly<FloorLadderBounds>;
|
|
207
|
+
interface FloorSelectionContext {
|
|
208
|
+
position: AdPosition;
|
|
209
|
+
isCtv: boolean;
|
|
210
|
+
bounds: Readonly<FloorLadderBounds>;
|
|
211
|
+
}
|
|
212
|
+
interface FloorSelectorResult {
|
|
213
|
+
floorCents?: number;
|
|
214
|
+
source: FloorSource;
|
|
215
|
+
reason?: string;
|
|
216
|
+
}
|
|
217
|
+
interface FloorSelector {
|
|
218
|
+
readonly name: string;
|
|
219
|
+
select(config: Readonly<AdFloorLadderConfig>, context: FloorSelectionContext): FloorSelectorResult;
|
|
220
|
+
}
|
|
221
|
+
interface OpportunityFloor {
|
|
222
|
+
readonly status: "armed" | "skipped";
|
|
223
|
+
readonly floorCents: number | undefined;
|
|
224
|
+
readonly source: FloorSource;
|
|
225
|
+
readonly reason: string | undefined;
|
|
226
|
+
readonly selector: string;
|
|
227
|
+
readonly position: AdPosition;
|
|
228
|
+
readonly configurationVersion: string;
|
|
229
|
+
readonly targetingKey: string;
|
|
230
|
+
readonly targetAdUnitPath: string;
|
|
231
|
+
}
|
|
232
|
+
interface FloorLadderValidationReport {
|
|
233
|
+
ok: boolean;
|
|
234
|
+
levels: number[];
|
|
235
|
+
errors: string[];
|
|
236
|
+
}
|
|
237
|
+
declare function generateFloorLevels(minCents: number, maxCents: number, stepCents: number): number[];
|
|
238
|
+
declare function resolveFloorLadderBounds(overrides?: Partial<FloorLadderBounds>): FloorLadderBounds;
|
|
239
|
+
declare function validateFloorCents(value: unknown, config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorValidation;
|
|
240
|
+
declare function validateFloorLadderConfig(config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorLadderValidationReport;
|
|
241
|
+
declare const fixedFloorSelector: FloorSelector;
|
|
242
|
+
|
|
163
243
|
declare class StormcloudVideoPlayer {
|
|
164
244
|
private readonly video;
|
|
165
245
|
private readonly config;
|
|
@@ -176,9 +256,20 @@ declare class StormcloudVideoPlayer {
|
|
|
176
256
|
private readonly placeholder;
|
|
177
257
|
private readonly hlsEngine;
|
|
178
258
|
private readonly adBreak;
|
|
259
|
+
private readonly floorLadder;
|
|
260
|
+
private floorLadderEnabled;
|
|
261
|
+
private readonly edgePodBaseUrl;
|
|
179
262
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
180
263
|
private get debug();
|
|
181
264
|
private createAdPlayer;
|
|
265
|
+
private isCtvEnvironment;
|
|
266
|
+
setAdFloorLadder(update: Partial<AdFloorLadderConfig>): FloorLadderValidationReport;
|
|
267
|
+
setAdFloorLadderEnabled(enabled: boolean): void;
|
|
268
|
+
isAdFloorLadderEnabled(): boolean;
|
|
269
|
+
private warnOnInvalidFloorLadder;
|
|
270
|
+
getAdFloorLadder(): AdFloorLadderConfig;
|
|
271
|
+
getAdFloorBounds(): FloorLadderBounds;
|
|
272
|
+
setAdFloorSelector(selector: FloorSelector): void;
|
|
182
273
|
private generatePodVastUrl;
|
|
183
274
|
load(): Promise<void>;
|
|
184
275
|
private onManifestParsed;
|
|
@@ -4041,4 +4132,4 @@ interface PalNonceManager {
|
|
|
4041
4132
|
}
|
|
4042
4133
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4043
4134
|
|
|
4044
|
-
export { type AdBreak, type AdController, type AdControllerOptions, type AdDetectInfo, type AdImpressionInfo, type AdLoadedInfo, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_TRACKING_INGEST_CONFIG, 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, type TrackingIngestChannel, type TrackingIngestConfig, applyTrackingIngestConfig, buildAnalyticsContext, canPlay, configureTrackingIngest, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, getBrowserConfigOverrides, getBrowserID, getClientInfo, ingestPlayerTracking, initializePolyfills, isMediaStream, isTrackingIngestEnabled, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, requiresMediaPipelineResetAfterAds, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, trackingIngestConfig };
|
|
4135
|
+
export { type AdBreak, type AdController, type AdControllerOptions, type AdDetectInfo, type AdFloorLadderConfig, type AdImpressionInfo, type AdLoadedInfo, type AdPosition, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_TRACKING_INGEST_CONFIG, DEFAULT_WEB_FLOOR_LADDER_CONFIG, type FloorLadderBounds, type FloorLadderMode, type FloorLadderValidationReport, type FloorSelectionContext, type FloorSelector, type FloorSelectorResult, type FloorSource, type FloorValidation, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, type OpportunityFloor, type PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, type TrackingIngestChannel, type TrackingIngestConfig, applyTrackingIngestConfig, buildAnalyticsContext, canPlay, configureTrackingIngest, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fixedFloorSelector, generateFloorLevels, getBrowserConfigOverrides, getBrowserID, getClientInfo, ingestPlayerTracking, initializePolyfills, isMediaStream, isTrackingIngestEnabled, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, requiresMediaPipelineResetAfterAds, resolveFloorLadderBounds, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, trackingIngestConfig, validateFloorCents, validateFloorLadderConfig };
|