stormcloud-video-player 0.8.68 → 0.8.69
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 +1 -1
- package/lib/Player.cjs +30 -8
- package/lib/Player.cjs.map +1 -1
- package/lib/Player.d.cts +2 -1
- package/lib/StormcloudPlayer.cjs +5615 -5101
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/StormcloudPlayer.d.cts +1 -0
- package/lib/index.cjs +5688 -5117
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +2 -1
- package/lib/index.d.ts +81 -1
- package/lib/index.js +5663 -5119
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +314 -113
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdBreakOrchestrator.d.cts +9 -3
- 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 +5615 -5101
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +9 -1
- package/lib/players/HlsPlayer.cjs +5615 -5101
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +5615 -5101
- 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/types.d.cts +22 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +5634 -5091
- 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,6 +50,27 @@ interface StormcloudVideoPlayerConfig {
|
|
|
50
50
|
podMaxAds?: number;
|
|
51
51
|
podMaxDurationMs?: number;
|
|
52
52
|
podExactDuration?: boolean;
|
|
53
|
+
adFloorLadder?: Partial<AdFloorLadderConfig>;
|
|
54
|
+
/** Floor levels that exist as GAM targeting values; `adFloorLadder` can narrow but never widen them. */
|
|
55
|
+
adFloorMinCents?: number;
|
|
56
|
+
adFloorMaxCents?: number;
|
|
57
|
+
adFloorStepCents?: number;
|
|
58
|
+
}
|
|
59
|
+
type AdPosition = "preroll" | "midroll" | "postroll";
|
|
60
|
+
type FloorLadderMode = "fixed";
|
|
61
|
+
interface AdFloorLadderConfig {
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
targetingKey: string;
|
|
64
|
+
minFloorCents: number;
|
|
65
|
+
maxFloorCents: number;
|
|
66
|
+
stepCents: number;
|
|
67
|
+
selectedFloorCents: number;
|
|
68
|
+
fallbackFloorCents: number;
|
|
69
|
+
readyFloorCents: number[];
|
|
70
|
+
mode: FloorLadderMode;
|
|
71
|
+
allowedPositions: AdPosition[];
|
|
72
|
+
targetAdUnitPath: string;
|
|
73
|
+
configurationVersion: string;
|
|
53
74
|
}
|
|
54
75
|
interface AdController {
|
|
55
76
|
initialize: () => void;
|
|
@@ -160,6 +181,58 @@ interface AdImpressionInfo {
|
|
|
160
181
|
timestamp: string;
|
|
161
182
|
}
|
|
162
183
|
|
|
184
|
+
declare const DEFAULT_WEB_FLOOR_LADDER_CONFIG: Readonly<AdFloorLadderConfig>;
|
|
185
|
+
type FloorValidationReason = "not_integer" | "out_of_range" | "not_step_multiple" | "not_ready";
|
|
186
|
+
type FloorValidation = {
|
|
187
|
+
ok: true;
|
|
188
|
+
} | {
|
|
189
|
+
ok: false;
|
|
190
|
+
reason: FloorValidationReason;
|
|
191
|
+
};
|
|
192
|
+
type FloorSource = "selected" | "fallback" | "none";
|
|
193
|
+
/** Levels that have targeting values in GAM; the ladder config can narrow these but never widen them. */
|
|
194
|
+
interface FloorLadderBounds {
|
|
195
|
+
minCents: number;
|
|
196
|
+
maxCents: number;
|
|
197
|
+
stepCents: number;
|
|
198
|
+
}
|
|
199
|
+
declare const DEFAULT_FLOOR_LADDER_BOUNDS: Readonly<FloorLadderBounds>;
|
|
200
|
+
interface FloorSelectionContext {
|
|
201
|
+
position: AdPosition;
|
|
202
|
+
isCtv: boolean;
|
|
203
|
+
bounds: Readonly<FloorLadderBounds>;
|
|
204
|
+
}
|
|
205
|
+
interface FloorSelectorResult {
|
|
206
|
+
floorCents?: number;
|
|
207
|
+
source: FloorSource;
|
|
208
|
+
reason?: string;
|
|
209
|
+
}
|
|
210
|
+
interface FloorSelector {
|
|
211
|
+
readonly name: string;
|
|
212
|
+
select(config: Readonly<AdFloorLadderConfig>, context: FloorSelectionContext): FloorSelectorResult;
|
|
213
|
+
}
|
|
214
|
+
interface OpportunityFloor {
|
|
215
|
+
readonly status: "armed" | "skipped";
|
|
216
|
+
readonly floorCents: number | undefined;
|
|
217
|
+
readonly source: FloorSource;
|
|
218
|
+
readonly reason: string | undefined;
|
|
219
|
+
readonly selector: string;
|
|
220
|
+
readonly position: AdPosition;
|
|
221
|
+
readonly configurationVersion: string;
|
|
222
|
+
readonly targetingKey: string;
|
|
223
|
+
readonly targetAdUnitPath: string;
|
|
224
|
+
}
|
|
225
|
+
interface FloorLadderValidationReport {
|
|
226
|
+
ok: boolean;
|
|
227
|
+
levels: number[];
|
|
228
|
+
errors: string[];
|
|
229
|
+
}
|
|
230
|
+
declare function generateFloorLevels(minCents: number, maxCents: number, stepCents: number): number[];
|
|
231
|
+
declare function resolveFloorLadderBounds(overrides?: Partial<FloorLadderBounds>): FloorLadderBounds;
|
|
232
|
+
declare function validateFloorCents(value: unknown, config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorValidation;
|
|
233
|
+
declare function validateFloorLadderConfig(config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorLadderValidationReport;
|
|
234
|
+
declare const fixedFloorSelector: FloorSelector;
|
|
235
|
+
|
|
163
236
|
declare class StormcloudVideoPlayer {
|
|
164
237
|
private readonly video;
|
|
165
238
|
private readonly config;
|
|
@@ -176,9 +249,16 @@ declare class StormcloudVideoPlayer {
|
|
|
176
249
|
private readonly placeholder;
|
|
177
250
|
private readonly hlsEngine;
|
|
178
251
|
private readonly adBreak;
|
|
252
|
+
private readonly floorLadder;
|
|
179
253
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
180
254
|
private get debug();
|
|
181
255
|
private createAdPlayer;
|
|
256
|
+
private isCtvEnvironment;
|
|
257
|
+
setAdFloorLadder(update: Partial<AdFloorLadderConfig>): FloorLadderValidationReport;
|
|
258
|
+
private warnOnInvalidFloorLadder;
|
|
259
|
+
getAdFloorLadder(): AdFloorLadderConfig;
|
|
260
|
+
getAdFloorBounds(): FloorLadderBounds;
|
|
261
|
+
setAdFloorSelector(selector: FloorSelector): void;
|
|
182
262
|
private generatePodVastUrl;
|
|
183
263
|
load(): Promise<void>;
|
|
184
264
|
private onManifestParsed;
|
|
@@ -4041,4 +4121,4 @@ interface PalNonceManager {
|
|
|
4041
4121
|
}
|
|
4042
4122
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4043
4123
|
|
|
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 };
|
|
4124
|
+
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 };
|