stormcloud-video-player 0.8.75 → 0.8.76
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 +10 -12
- package/lib/Player.cjs.map +1 -1
- package/lib/Player.d.cts +1 -1
- package/lib/StormcloudPlayer.cjs +163 -78
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +174 -133
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +1 -1
- package/lib/index.d.ts +5 -19
- package/lib/index.js +168 -131
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +45 -13
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +17 -3
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +3 -0
- package/lib/player/EdgePodRequest.cjs +31 -1
- package/lib/player/EdgePodRequest.cjs.map +1 -1
- package/lib/player/EdgePodRequest.d.cts +21 -3
- package/lib/player/FloorLadder.cjs +86 -27
- package/lib/player/FloorLadder.cjs.map +1 -1
- package/lib/player/FloorLadder.d.cts +8 -7
- package/lib/player/StormcloudVideoPlayer.cjs +163 -78
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +3 -9
- package/lib/players/HlsPlayer.cjs +163 -78
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +163 -78
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +10 -12
- package/lib/props.cjs.map +1 -1
- package/lib/types.d.cts +3 -7
- package/lib/ui/StormcloudVideoPlayer.cjs +167 -139
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/tracking.cjs +7 -0
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +2 -1
- package/package.json +1 -1
package/lib/Player.cjs
CHANGED
|
@@ -217,21 +217,19 @@ var DEVICE_TYPE_HINT_ALIASES = {
|
|
|
217
217
|
};
|
|
218
218
|
var PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;
|
|
219
219
|
// src/player/FloorLadder.ts
|
|
220
|
-
var
|
|
220
|
+
var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
|
|
221
221
|
enabled: false,
|
|
222
|
-
targetingKey: "
|
|
223
|
-
minFloorCents:
|
|
224
|
-
maxFloorCents:
|
|
225
|
-
stepCents:
|
|
226
|
-
selectedFloorCents:
|
|
227
|
-
fallbackFloorCents:
|
|
222
|
+
targetingKey: "",
|
|
223
|
+
minFloorCents: 0,
|
|
224
|
+
maxFloorCents: 0,
|
|
225
|
+
stepCents: 0,
|
|
226
|
+
selectedFloorCents: 0,
|
|
227
|
+
fallbackFloorCents: 0,
|
|
228
228
|
readyFloorCents: [],
|
|
229
229
|
mode: "fixed",
|
|
230
|
-
allowedPositions: [
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
|
|
234
|
-
configurationVersion: "2026-09-29.1"
|
|
230
|
+
allowedPositions: [],
|
|
231
|
+
targetAdUnitPath: "",
|
|
232
|
+
configurationVersion: ""
|
|
235
233
|
});
|
|
236
234
|
var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
|
|
237
235
|
minCents: 25,
|
package/lib/Player.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\Player.cjs"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","Player_exports","default","Player","module","exports","import_react2","require","DEVICE_TYPE_HINT","FEATURE_PHONE","SMARTPHONE","DESKTOP","TABLET","CONNECTED_TV","GAME_CONSOLE","SET_TOP_BOX","DEVICE_TYPE_HINT_ALIASES","featurephone","smartphone","mobile","phone","desktop","pc","tablet","ctv","tv","connectedtv","smarttv","console","gameconsole","stb","settopbox","PERSISTENT_ID_COOKIE_MAX_AGE","DEFAULT_WEB_FLOOR_LADDER_CONFIG","freeze","enabled","targetingKey","minFloorCents","maxFloorCents","stepCents","selectedFloorCents","fallbackFloorCents","readyFloorCents","mode","allowedPositions","targetAdUnitPath","configurationVersion","DEFAULT_FLOOR_LADDER_BOUNDS","minCents","maxCents","import_hls","DEFAULT_TRACKING_INGEST_CONFIG","baseUrl","trackingIngestConfig","import_hls2","noop","defaultProps","playing","loop","controls","volume","muted","playbackRate","width","height","style","progressInterval","playsInline","autoplay","preload","poster","className","wrapperClassName","wrapperStyle","allowNativeHls","lowLatencyMode","driftToleranceMs","immediateManifestAds","debugAdTiming","showCustomControls","hideLoadingIndicator","licenseKey","isVmap","vmapUrl","adFailsafeTimeoutMs","minSegmentsBeforePlay","onStart","onPlay","onPause","onBuffer","onBufferEnd","onEnded","onError","onDuration","onSeek","onProgress","onVolumeToggle","onFullscreenToggle","onControlClick","import_react","isMediaStream","url","window","MediaStream","IS_BROWSER","document","IS_GLOBAL","globalThis","IS_IOS","test","navigator","userAgent","IS_SAFARI","SEEK_ON_PLAY_EXPIRY","arguments","mounted","isReady","isPlaying","isLoading","loadOnReady","startOnPlay","seekOnPlay","onDurationCalled","handlePlayerMount","player","progress","load","props","src","getInternalPlayer","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","duration","getDuration","played","loaded","prevPlayed","prevLoaded","progressTimeout","setTimeout","handleReady","onReady","setVolume","play","handleDurationCheck","handlePlay","setPlaybackRate","seekTo","handlePause","e","handleEnded","activePlayer","loopOnEnded","handleError","args","clearTimeout","durationCheckTimeout","handleLoaded","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","forceLoad","warn","pause","mute","unmute","setLoop","amount","type","keepPlaying","isFraction","render","Player2","createElement","onMount","onLoaded","Component","displayName"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/Player.tsx\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react2 = __toESM(require(\"react\"), 1);\n\n// src/utils/vastEnvironmentSignals.ts\nvar DEVICE_TYPE_HINT = {\n FEATURE_PHONE: 1,\n SMARTPHONE: 2,\n DESKTOP: 3,\n TABLET: 4,\n CONNECTED_TV: 5,\n GAME_CONSOLE: 6,\n SET_TOP_BOX: 7\n};\nvar DEVICE_TYPE_HINT_ALIASES = {\n featurephone: DEVICE_TYPE_HINT.FEATURE_PHONE,\n smartphone: DEVICE_TYPE_HINT.SMARTPHONE,\n mobile: DEVICE_TYPE_HINT.SMARTPHONE,\n phone: DEVICE_TYPE_HINT.SMARTPHONE,\n desktop: DEVICE_TYPE_HINT.DESKTOP,\n pc: DEVICE_TYPE_HINT.DESKTOP,\n tablet: DEVICE_TYPE_HINT.TABLET,\n ctv: DEVICE_TYPE_HINT.CONNECTED_TV,\n tv: DEVICE_TYPE_HINT.CONNECTED_TV,\n connectedtv: DEVICE_TYPE_HINT.CONNECTED_TV,\n smarttv: DEVICE_TYPE_HINT.CONNECTED_TV,\n console: DEVICE_TYPE_HINT.GAME_CONSOLE,\n gameconsole: DEVICE_TYPE_HINT.GAME_CONSOLE,\n stb: DEVICE_TYPE_HINT.SET_TOP_BOX,\n settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX\n};\nvar PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;\n\n// src/player/FloorLadder.ts\nvar DEFAULT_WEB_FLOOR_LADDER_CONFIG = Object.freeze({\n enabled: false,\n targetingKey: \"airytv_web_floor\",\n minFloorCents: 25,\n maxFloorCents: 300,\n stepCents: 25,\n selectedFloorCents: 25,\n fallbackFloorCents: 25,\n readyFloorCents: [],\n mode: \"fixed\",\n allowedPositions: [\"midroll\"],\n targetAdUnitPath: \"/21821455290/airytvadx/airytv-web\",\n configurationVersion: \"2026-09-29.1\"\n});\nvar DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({\n minCents: 25,\n maxCents: 300,\n stepCents: 25\n});\n\n// src/sdk/hlsAdPlayer.ts\nvar import_hls = __toESM(require(\"hls.js\"), 1);\n\n// src/utils/trackingIngest.ts\nvar DEFAULT_TRACKING_INGEST_CONFIG = {\n enabled: true,\n baseUrl: \"https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking\"\n};\nvar trackingIngestConfig = {\n ...DEFAULT_TRACKING_INGEST_CONFIG\n};\n\n// src/player/HlsEngine.ts\nvar import_hls2 = __toESM(require(\"hls.js\"), 1);\n\n// src/props.ts\nvar noop = () => {\n};\nvar defaultProps = {\n playing: false,\n loop: false,\n controls: true,\n volume: 1,\n muted: false,\n playbackRate: 1,\n width: \"100%\",\n height: \"auto\",\n style: {},\n progressInterval: 1e3,\n playsInline: false,\n autoplay: false,\n preload: \"metadata\",\n poster: \"\",\n className: \"\",\n wrapperClassName: \"\",\n wrapperStyle: {},\n allowNativeHls: false,\n lowLatencyMode: false,\n driftToleranceMs: 1e3,\n immediateManifestAds: true,\n debugAdTiming: false,\n showCustomControls: false,\n hideLoadingIndicator: false,\n licenseKey: \"\",\n isVmap: false,\n vmapUrl: \"\",\n adFailsafeTimeoutMs: 1e4,\n minSegmentsBeforePlay: 2,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onProgress: noop,\n onVolumeToggle: noop,\n onFullscreenToggle: noop,\n onControlClick: noop\n};\n\n// src/utils.ts\nvar import_react = require(\"react\");\nvar isMediaStream = (url) => {\n return typeof window !== \"undefined\" && window.MediaStream && url instanceof window.MediaStream;\n};\nvar IS_BROWSER = typeof window !== \"undefined\" && window.document;\nvar IS_GLOBAL = typeof globalThis !== \"undefined\" && globalThis.window && globalThis.window.document;\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n// src/Player.tsx\nvar SEEK_ON_PLAY_EXPIRY = 5e3;\nvar Player = class extends import_react2.Component {\n constructor() {\n super(...arguments);\n this.mounted = false;\n this.isReady = false;\n this.isPlaying = false;\n this.isLoading = true;\n this.loadOnReady = null;\n this.startOnPlay = true;\n this.seekOnPlay = null;\n this.onDurationCalled = false;\n this.handlePlayerMount = (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.src);\n this.progress();\n };\n this.getInternalPlayer = (key) => {\n if (!this.player) return null;\n return this.player.getInternalPlayer(key);\n };\n this.progress = () => {\n if (this.props.src && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration,\n loaded: 0,\n loadedSeconds: 0\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress?.(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = window.setTimeout(\n this.progress,\n this.props.progressInterval || 1e3\n );\n };\n this.handleReady = () => {\n if (!this.mounted) return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n };\n this.handlePlay = () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart?.();\n this.startOnPlay = false;\n }\n onPlay?.();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n };\n this.handlePause = (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause?.(e);\n }\n };\n this.handleEnded = () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded?.();\n }\n };\n this.handleError = (...args) => {\n this.isLoading = false;\n this.props.onError?.(args[0], args[1], args[2], args[3]);\n };\n this.handleDurationCheck = () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration?.(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = window.setTimeout(\n this.handleDurationCheck,\n 100\n );\n }\n };\n this.handleLoaded = () => {\n this.isLoading = false;\n };\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) return;\n const { src, playing, volume, muted, playbackRate, loop, activePlayer } = this.props;\n if (prevProps.src !== src) {\n if (this.isLoading && !activePlayer.forceLoad && !isMediaStream(src)) {\n console.warn(\n `StormcloudPlayer: the attempt to load ${src} is being deferred until the player has loaded`\n );\n this.loadOnReady = src || null;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(src, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady) return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady) return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady) return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\n \"StormcloudPlayer: could not seek using fraction \\u2013 duration not yet available\"\n );\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return import_react2.default.createElement(Player2, {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n });\n }\n};\nPlayer.displayName = \"Player\";\nPlayer.defaultProps = defaultProps;\n"]}
|
|
1
|
+
{"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\Player.cjs"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","Player_exports","default","Player","module","exports","import_react2","require","DEVICE_TYPE_HINT","FEATURE_PHONE","SMARTPHONE","DESKTOP","TABLET","CONNECTED_TV","GAME_CONSOLE","SET_TOP_BOX","DEVICE_TYPE_HINT_ALIASES","featurephone","smartphone","mobile","phone","desktop","pc","tablet","ctv","tv","connectedtv","smarttv","console","gameconsole","stb","settopbox","PERSISTENT_ID_COOKIE_MAX_AGE","DISABLED_FLOOR_LADDER_CONFIG","freeze","enabled","targetingKey","minFloorCents","maxFloorCents","stepCents","selectedFloorCents","fallbackFloorCents","readyFloorCents","mode","allowedPositions","targetAdUnitPath","configurationVersion","DEFAULT_FLOOR_LADDER_BOUNDS","minCents","maxCents","import_hls","DEFAULT_TRACKING_INGEST_CONFIG","baseUrl","trackingIngestConfig","import_hls2","noop","defaultProps","playing","loop","controls","volume","muted","playbackRate","width","height","style","progressInterval","playsInline","autoplay","preload","poster","className","wrapperClassName","wrapperStyle","allowNativeHls","lowLatencyMode","driftToleranceMs","immediateManifestAds","debugAdTiming","showCustomControls","hideLoadingIndicator","licenseKey","isVmap","vmapUrl","adFailsafeTimeoutMs","minSegmentsBeforePlay","onStart","onPlay","onPause","onBuffer","onBufferEnd","onEnded","onError","onDuration","onSeek","onProgress","onVolumeToggle","onFullscreenToggle","onControlClick","import_react","isMediaStream","url","window","MediaStream","IS_BROWSER","document","IS_GLOBAL","globalThis","IS_IOS","test","navigator","userAgent","IS_SAFARI","SEEK_ON_PLAY_EXPIRY","arguments","mounted","isReady","isPlaying","isLoading","loadOnReady","startOnPlay","seekOnPlay","onDurationCalled","handlePlayerMount","player","progress","load","props","src","getInternalPlayer","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","duration","getDuration","played","loaded","prevPlayed","prevLoaded","progressTimeout","setTimeout","handleReady","onReady","setVolume","play","handleDurationCheck","handlePlay","setPlaybackRate","seekTo","handlePause","e","handleEnded","activePlayer","loopOnEnded","handleError","args","clearTimeout","durationCheckTimeout","handleLoaded","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","forceLoad","warn","pause","mute","unmute","setLoop","amount","type","keepPlaying","isFraction","render","Player2","createElement","onMount","onLoaded","Component","displayName"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAIA,WAAWC,OAAOC,MAAM;AAC5B,IAAIC,YAAYF,OAAOG,cAAc;AACrC,IAAIC,mBAAmBJ,OAAOK,wBAAwB;AACtD,IAAIC,oBAAoBN,OAAOO,mBAAmB;AAClD,IAAIC,eAAeR,OAAOS,cAAc;AACxC,IAAIC,eAAeV,OAAOW,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,kBAACC,QAAQC;IACtB,IAAK,IAAIC,QAAQD,IACfb,UAAUY,QAAQE,MAAM;QAAEC,KAAKF,GAAG,CAACC,KAAK;QAAEE,YAAY;IAAK;AAC/D;AACA,IAAIC,cAAc,qBAACC,IAAIC,MAAMC,QAAQC;IACnC,IAAIF,QAAQ,CAAA,OAAOA,qCAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;YAC7D,kCAAA,2BAAA;;;gBAAA,IAAIG,MAAJ;gBACH,IAAI,CAACd,aAAae,IAAI,CAACL,IAAII,QAAQA,QAAQF,QACzCpB,UAAUkB,IAAII,KAAK;oBAAEP,KAAK,SAALA;+BAAWI,IAAI,CAACG,IAAI;;oBAAEN,YAAY,CAAEK,CAAAA,OAAOnB,iBAAiBiB,MAAMG,IAAG,KAAMD,KAAKL,UAAU;gBAAC;;YAFpH,QAAK,YAAWZ,kBAAkBe,0BAA7B,SAAA,6BAAA,QAAA,yBAAA;;YAAA;YAAA;;;qBAAA,6BAAA;oBAAA;;;oBAAA;0BAAA;;;;IAGP;IACA,OAAOD;AACT;AACA,IAAIM,UAAU,iBAACC,KAAKC,YAAYd;WAAYA,SAASa,OAAO,OAAO5B,SAASS,aAAamB,QAAQ,CAAC,GAAGR,YACnG,sEAAsE;IACtE,iEAAiE;IACjE,sEAAsE;IACtE,qEAAqE;IACrES,cAAc,CAACD,OAAO,CAACA,IAAIE,UAAU,GAAG3B,UAAUY,QAAQ,WAAW;QAAEgB,OAAOH;QAAKT,YAAY;IAAK,KAAKJ,QACzGa;;AAEF,IAAII,eAAe,sBAACJ;WAAQR,YAAYjB,UAAU,CAAC,GAAG,cAAc;QAAE4B,OAAO;IAAK,IAAIH;;AAEtF,iBAAiB;AACjB,IAAIK,iBAAiB,CAAC;AACtBnB,SAASmB,gBAAgB;IACvBC,SAAS,SAATA;eAAeC;;AACjB;AACAC,OAAOC,OAAO,GAAGL,aAAaC;AAC9B,IAAIK,gBAAgBX,QAAQY,QAAQ,UAAU;AAE9C,sCAAsC;AACtC,IAAIC,mBAAmB;IACrBC,eAAe;IACfC,YAAY;IACZC,SAAS;IACTC,QAAQ;IACRC,cAAc;IACdC,cAAc;IACdC,aAAa;AACf;AACA,IAAIC,2BAA2B;IAC7BC,cAAcT,iBAAiBC,aAAa;IAC5CS,YAAYV,iBAAiBE,UAAU;IACvCS,QAAQX,iBAAiBE,UAAU;IACnCU,OAAOZ,iBAAiBE,UAAU;IAClCW,SAASb,iBAAiBG,OAAO;IACjCW,IAAId,iBAAiBG,OAAO;IAC5BY,QAAQf,iBAAiBI,MAAM;IAC/BY,KAAKhB,iBAAiBK,YAAY;IAClCY,IAAIjB,iBAAiBK,YAAY;IACjCa,aAAalB,iBAAiBK,YAAY;IAC1Cc,SAASnB,iBAAiBK,YAAY;IACtCe,SAASpB,iBAAiBM,YAAY;IACtCe,aAAarB,iBAAiBM,YAAY;IAC1CgB,KAAKtB,iBAAiBO,WAAW;IACjCgB,WAAWvB,iBAAiBO,WAAW;AACzC;AACA,IAAIiB,+BAA+B,KAAK,KAAK,KAAK,MAAM;AAExD,4BAA4B;AAC5B,IAAIC,+BAA+BhE,OAAOiE,MAAM,CAAC;IAC/CC,SAAS;IACTC,cAAc;IACdC,eAAe;IACfC,eAAe;IACfC,WAAW;IACXC,oBAAoB;IACpBC,oBAAoB;IACpBC,iBAAiB,EAAE;IACnBC,MAAM;IACNC,kBAAkB,EAAE;IACpBC,kBAAkB;IAClBC,sBAAsB;AACxB;AACA,IAAIC,8BAA8B9E,OAAOiE,MAAM,CAAC;IAC9Cc,UAAU;IACVC,UAAU;IACVV,WAAW;AACb;AAEA,yBAAyB;AACzB,IAAIW,aAAavD,QAAQY,QAAQ,WAAW;AAE5C,8BAA8B;AAC9B,IAAI4C,iCAAiC;IACnChB,SAAS;IACTiB,SAAS;AACX;AACA,IAAIC,uBAAuB,mBACtBF;AAGL,0BAA0B;AAC1B,IAAIG,cAAc3D,QAAQY,QAAQ,WAAW;AAE7C,eAAe;AACf,IAAIgD,OAAO,iBACX;AACA,IAAIC,eAAe;IACjBC,SAAS;IACTC,MAAM;IACNC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,cAAc;IACdC,OAAO;IACPC,QAAQ;IACRC,OAAO,CAAC;IACRC,kBAAkB;IAClBC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,WAAW;IACXC,kBAAkB;IAClBC,cAAc,CAAC;IACfC,gBAAgB;IAChBC,gBAAgB;IAChBC,kBAAkB;IAClBC,sBAAsB;IACtBC,eAAe;IACfC,oBAAoB;IACpBC,sBAAsB;IACtBC,YAAY;IACZC,QAAQ;IACRC,SAAS;IACTC,qBAAqB;IACrBC,uBAAuB;IACvBC,SAAS/B;IACTgC,QAAQhC;IACRiC,SAASjC;IACTkC,UAAUlC;IACVmC,aAAanC;IACboC,SAASpC;IACTqC,SAASrC;IACTsC,YAAYtC;IACZuC,QAAQvC;IACRwC,YAAYxC;IACZyC,gBAAgBzC;IAChB0C,oBAAoB1C;IACpB2C,gBAAgB3C;AAClB;AAEA,eAAe;AACf,IAAI4C,eAAe5F,QAAQ;AAC3B,IAAI6F,gBAAgB,uBAACC;IACnB,OAAO,OAAOC,WAAW,eAAeA,OAAOC,WAAW,IAAIF,AAAG,YAAHA,KAAeC,OAAOC,WAAW;AACjG;AACA,IAAIC,aAAa,OAAOF,WAAW,eAAeA,OAAOG,QAAQ;AACjE,IAAIC,YAAY,OAAOC,eAAe,eAAeA,WAAWL,MAAM,IAAIK,WAAWL,MAAM,CAACG,QAAQ;AACpG,IAAIG,SAASJ,cAAc,mBAAmBK,IAAI,CAACC,UAAUC,SAAS;AACtE,IAAIC,YAAYR,cAAc,iCAAiCK,IAAI,CAACC,UAAUC,SAAS;AAEvF,iBAAiB;AACjB,IAAIE,sBAAsB;AAC1B,IAAI9G,uBAAS;;aAATA;gCAAAA;;gBAEA,kBAFAA,QAES+G;QACT,MAAKC,OAAO,GAAG;QACf,MAAKC,OAAO,GAAG;QACf,MAAKC,SAAS,GAAG;QACjB,MAAKC,SAAS,GAAG;QACjB,MAAKC,WAAW,GAAG;QACnB,MAAKC,WAAW,GAAG;QACnB,MAAKC,UAAU,GAAG;QAClB,MAAKC,gBAAgB,GAAG;QACxB,MAAKC,iBAAiB,GAAG,SAACC;YACxB,IAAI,MAAKA,MAAM,EAAE;gBACf,MAAKC,QAAQ;gBACb;YACF;YACA,MAAKD,MAAM,GAAGA;YACd,MAAKA,MAAM,CAACE,IAAI,CAAC,MAAKC,KAAK,CAACC,GAAG;YAC/B,MAAKH,QAAQ;QACf;QACA,MAAKI,iBAAiB,GAAG,SAACxI;YACxB,IAAI,CAAC,MAAKmI,MAAM,EAAE,OAAO;YACzB,OAAO,MAAKA,MAAM,CAACK,iBAAiB,CAACxI;QACvC;QACA,MAAKoI,QAAQ,GAAG;YACd,IAAI,MAAKE,KAAK,CAACC,GAAG,IAAI,MAAKJ,MAAM,IAAI,MAAKR,OAAO,EAAE;gBACjD,IAAMc,gBAAgB,MAAKC,cAAc,MAAM;gBAC/C,IAAMC,gBAAgB,MAAKC,gBAAgB;gBAC3C,IAAMC,WAAW,MAAKC,WAAW;gBACjC,IAAID,UAAU;oBACZ,IAAMT,WAAW;wBACfK,eAAAA;wBACAM,QAAQN,gBAAgBI;wBACxBG,QAAQ;wBACRL,eAAe;oBACjB;oBACA,IAAIA,kBAAkB,MAAM;wBAC1BP,SAASO,aAAa,GAAGA;wBACzBP,SAASY,MAAM,GAAGL,gBAAgBE;oBACpC;oBACA,IAAIT,SAASK,aAAa,KAAK,MAAKQ,UAAU,IAAIb,SAASO,aAAa,KAAK,MAAKO,UAAU,EAAE;4BAC5F,wBAAA;yBAAA,yBAAA,CAAA,cAAA,MAAKZ,KAAK,EAAChC,UAAU,cAArB,6CAAA,4BAAA,aAAwB8B;oBAC1B;oBACA,MAAKa,UAAU,GAAGb,SAASK,aAAa;oBACxC,MAAKS,UAAU,GAAGd,SAASO,aAAa;gBAC1C;YACF;YACA,MAAKQ,eAAe,GAAGtC,OAAOuC,UAAU,CACtC,MAAKhB,QAAQ,EACb,MAAKE,KAAK,CAAC7D,gBAAgB,IAAI;QAEnC;QACA,MAAK4E,WAAW,GAAG;YACjB,IAAI,CAAC,MAAK3B,OAAO,EAAE;YACnB,MAAKC,OAAO,GAAG;YACf,MAAKE,SAAS,GAAG;YACjB,IAA4C,cAAA,MAAKS,KAAK,EAA9CgB,UAAoC,YAApCA,SAAStF,UAA2B,YAA3BA,SAASG,SAAkB,YAAlBA,QAAQC,QAAU,YAAVA;YAClCkF;YACA,IAAI,CAAClF,SAASD,WAAW,MAAM;gBAC7B,MAAKgE,MAAM,CAACoB,SAAS,CAACpF;YACxB;YACA,IAAI,MAAK2D,WAAW,EAAE;gBACpB,MAAKK,MAAM,CAACE,IAAI,CAAC,MAAKP,WAAW,EAAE;gBACnC,MAAKA,WAAW,GAAG;YACrB,OAAO,IAAI9D,SAAS;gBAClB,MAAKmE,MAAM,CAACqB,IAAI;YAClB;YACA,MAAKC,mBAAmB;QAC1B;QACA,MAAKC,UAAU,GAAG;YAChB,MAAK9B,SAAS,GAAG;YACjB,MAAKC,SAAS,GAAG;YACjB,IAA0C,cAAA,MAAKS,KAAK,EAA5CzC,UAAkC,YAAlCA,SAASC,SAAyB,YAAzBA,QAAQzB,eAAiB,YAAjBA;YACzB,IAAI,MAAK0D,WAAW,EAAE;gBACpB,IAAI,MAAKI,MAAM,CAACwB,eAAe,IAAItF,iBAAiB,GAAG;oBACrD,MAAK8D,MAAM,CAACwB,eAAe,CAACtF;gBAC9B;gBACAwB,oBAAAA,8BAAAA;gBACA,MAAKkC,WAAW,GAAG;YACrB;YACAjC,mBAAAA,6BAAAA;YACA,IAAI,MAAKkC,UAAU,EAAE;gBACnB,MAAK4B,MAAM,CAAC,MAAK5B,UAAU;gBAC3B,MAAKA,UAAU,GAAG;YACpB;YACA,MAAKyB,mBAAmB;QAC1B;QACA,MAAKI,WAAW,GAAG,SAACC;YAClB,MAAKlC,SAAS,GAAG;YACjB,IAAI,CAAC,MAAKC,SAAS,EAAE;oBACnB,qBAAA;iBAAA,sBAAA,CAAA,cAAA,MAAKS,KAAK,EAACvC,OAAO,cAAlB,0CAAA,yBAAA,aAAqB+D;YACvB;QACF;QACA,MAAKC,WAAW,GAAG;YACjB,IAAwC,cAAA,MAAKzB,KAAK,EAA1C0B,eAAgC,YAAhCA,cAAc/F,OAAkB,YAAlBA,MAAMiC,UAAY,YAAZA;YAC5B,IAAI8D,aAAaC,WAAW,IAAIhG,MAAM;gBACpC,MAAK2F,MAAM,CAAC;YACd;YACA,IAAI,CAAC3F,MAAM;gBACT,MAAK2D,SAAS,GAAG;gBACjB1B,oBAAAA,8BAAAA;YACF;QACF;QACA,MAAKgE,WAAW,GAAG;6CAAIC;gBAAAA;;gBAErB,qBAAA;YADA,MAAKtC,SAAS,GAAG;aACjB,sBAAA,CAAA,cAAA,MAAKS,KAAK,EAACnC,OAAO,cAAlB,0CAAA,yBAAA,aAAqBgE,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE;QACzD;QACA,MAAKV,mBAAmB,GAAG;YACzBW,aAAa,MAAKC,oBAAoB;YACtC,IAAMxB,WAAW,MAAKC,WAAW;YACjC,IAAID,UAAU;gBACZ,IAAI,CAAC,MAAKZ,gBAAgB,EAAE;wBAC1B,wBAAA;qBAAA,yBAAA,CAAA,cAAA,MAAKK,KAAK,EAAClC,UAAU,cAArB,6CAAA,4BAAA,aAAwByC;oBACxB,MAAKZ,gBAAgB,GAAG;gBAC1B;YACF,OAAO;gBACL,MAAKoC,oBAAoB,GAAGxD,OAAOuC,UAAU,CAC3C,MAAKK,mBAAmB,EACxB;YAEJ;QACF;QACA,MAAKa,YAAY,GAAG;YAClB,MAAKzC,SAAS,GAAG;QACnB;;;;;YAEF0C,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAAC7C,OAAO,GAAG;YACjB;;;YACA8C,KAAAA;mBAAAA,SAAAA;gBACEJ,aAAa,IAAI,CAACjB,eAAe;gBACjCiB,aAAa,IAAI,CAACC,oBAAoB;gBACtC,IAAI,CAAC3C,OAAO,GAAG;YACjB;;;YACA+C,KAAAA;mBAAAA,SAAAA,mBAAmBC,SAAS;;gBAC1B,IAAI,CAAC,IAAI,CAACvC,MAAM,EAAE;gBAClB,IAA0E,cAAA,IAAI,CAACG,KAAK,EAA5EC,MAAkE,YAAlEA,KAAKvE,UAA6D,YAA7DA,SAASG,SAAoD,YAApDA,QAAQC,QAA4C,YAA5CA,OAAOC,eAAqC,YAArCA,cAAcJ,OAAuB,YAAvBA,MAAM+F,eAAiB,YAAjBA;gBACzD,IAAIU,UAAUnC,GAAG,KAAKA,KAAK;oBACzB,IAAI,IAAI,CAACV,SAAS,IAAI,CAACmC,aAAaW,SAAS,IAAI,CAAChE,cAAc4B,MAAM;wBACpEpG,QAAQyI,IAAI,CACV,AAAC,yCAA4C,OAAJrC,KAAI;wBAE/C,IAAI,CAACT,WAAW,GAAGS,OAAO;wBAC1B;oBACF;oBACA,IAAI,CAACV,SAAS,GAAG;oBACjB,IAAI,CAACE,WAAW,GAAG;oBACnB,IAAI,CAACE,gBAAgB,GAAG;oBACxB,IAAI,CAACE,MAAM,CAACE,IAAI,CAACE,KAAK,IAAI,CAACZ,OAAO;gBACpC;gBACA,IAAI,CAAC+C,UAAU1G,OAAO,IAAIA,WAAW,CAAC,IAAI,CAAC4D,SAAS,EAAE;oBACpD,IAAI,CAACO,MAAM,CAACqB,IAAI;gBAClB;gBACA,IAAIkB,UAAU1G,OAAO,IAAI,CAACA,WAAW,IAAI,CAAC4D,SAAS,EAAE;oBACnD,IAAI,CAACO,MAAM,CAAC0C,KAAK;gBACnB;gBACA,IAAIH,UAAUvG,MAAM,KAAKA,UAAUA,WAAW,MAAM;oBAClD,IAAI,CAACgE,MAAM,CAACoB,SAAS,CAACpF;gBACxB;gBACA,IAAIuG,UAAUtG,KAAK,KAAKA,OAAO;oBAC7B,IAAIA,OAAO;wBACT,IAAI,CAAC+D,MAAM,CAAC2C,IAAI;oBAClB,OAAO;wBACL,IAAI,CAAC3C,MAAM,CAAC4C,MAAM;wBAClB,IAAI5G,WAAW,MAAM;4BACnBiF,WAAW;uCAAM,MAAKjB,MAAM,CAACoB,SAAS,CAACpF;;wBACzC;oBACF;gBACF;gBACA,IAAIuG,UAAUrG,YAAY,KAAKA,gBAAgB,IAAI,CAAC8D,MAAM,CAACwB,eAAe,EAAE;oBAC1E,IAAI,CAACxB,MAAM,CAACwB,eAAe,CAACtF;gBAC9B;gBACA,IAAIqG,UAAUzG,IAAI,KAAKA,QAAQ,IAAI,CAACkE,MAAM,CAAC6C,OAAO,EAAE;oBAClD,IAAI,CAAC7C,MAAM,CAAC6C,OAAO,CAAC/G;gBACtB;YACF;;;YACA6E,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAAC,IAAI,CAACnB,OAAO,EAAE,OAAO;gBAC1B,OAAO,IAAI,CAACQ,MAAM,CAACW,WAAW;YAChC;;;YACAJ,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAAC,IAAI,CAACf,OAAO,EAAE,OAAO;gBAC1B,OAAO,IAAI,CAACQ,MAAM,CAACO,cAAc;YACnC;;;YACAE,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAAC,IAAI,CAACjB,OAAO,EAAE,OAAO;gBAC1B,OAAO,IAAI,CAACQ,MAAM,CAACS,gBAAgB;YACrC;;;YACAgB,KAAAA;mBAAAA,SAAAA,OAAOqB,MAAM,EAAEC,IAAI,EAAEC,WAAW;;gBAC9B,IAAI,CAAC,IAAI,CAACxD,OAAO,EAAE;oBACjB,IAAIsD,WAAW,GAAG;wBAChB,IAAI,CAACjD,UAAU,GAAGiD;wBAClB7B,WAAW;4BACT,MAAKpB,UAAU,GAAG;wBACpB,GAAGR;oBACL;oBACA;gBACF;gBACA,IAAM4D,aAAa,CAACF,OAAOD,SAAS,KAAKA,SAAS,IAAIC,SAAS;gBAC/D,IAAIE,YAAY;oBACd,IAAMvC,WAAW,IAAI,CAACV,MAAM,CAACW,WAAW;oBACxC,IAAI,CAACD,UAAU;wBACb1G,QAAQyI,IAAI,CACV;wBAEF;oBACF;oBACA,IAAI,CAACzC,MAAM,CAACyB,MAAM,CAACf,WAAWoC,QAAQE;oBACtC;gBACF;gBACA,IAAI,CAAChD,MAAM,CAACyB,MAAM,CAACqB,QAAQE;YAC7B;;;YACAE,KAAAA;mBAAAA,SAAAA;gBACE,IAAMC,UAAU,IAAI,CAAChD,KAAK,CAAC0B,YAAY;gBACvC,IAAI,CAACsB,SAAS;oBACZ,OAAO;gBACT;gBACA,OAAOzK,cAAcJ,OAAO,CAAC8K,aAAa,CAACD,SAAS,wCAC/C,IAAI,CAAChD,KAAK;oBACbkD,SAAS,IAAI,CAACtD,iBAAiB;oBAC/BoB,SAAS,IAAI,CAACD,WAAW;oBACzBvD,QAAQ,IAAI,CAAC4D,UAAU;oBACvB3D,SAAS,IAAI,CAAC8D,WAAW;oBACzB3D,SAAS,IAAI,CAAC6D,WAAW;oBACzB0B,UAAU,IAAI,CAACnB,YAAY;oBAC3BnE,SAAS,IAAI,CAAC+D,WAAW;;YAE7B;;;;EAnOyBrJ,cAAc6K,SAAS;AAqOlDhL,OAAOiL,WAAW,GAAG;AACrBjL,OAAOqD,YAAY,GAAGA","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/Player.tsx\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react2 = __toESM(require(\"react\"), 1);\n\n// src/utils/vastEnvironmentSignals.ts\nvar DEVICE_TYPE_HINT = {\n FEATURE_PHONE: 1,\n SMARTPHONE: 2,\n DESKTOP: 3,\n TABLET: 4,\n CONNECTED_TV: 5,\n GAME_CONSOLE: 6,\n SET_TOP_BOX: 7\n};\nvar DEVICE_TYPE_HINT_ALIASES = {\n featurephone: DEVICE_TYPE_HINT.FEATURE_PHONE,\n smartphone: DEVICE_TYPE_HINT.SMARTPHONE,\n mobile: DEVICE_TYPE_HINT.SMARTPHONE,\n phone: DEVICE_TYPE_HINT.SMARTPHONE,\n desktop: DEVICE_TYPE_HINT.DESKTOP,\n pc: DEVICE_TYPE_HINT.DESKTOP,\n tablet: DEVICE_TYPE_HINT.TABLET,\n ctv: DEVICE_TYPE_HINT.CONNECTED_TV,\n tv: DEVICE_TYPE_HINT.CONNECTED_TV,\n connectedtv: DEVICE_TYPE_HINT.CONNECTED_TV,\n smarttv: DEVICE_TYPE_HINT.CONNECTED_TV,\n console: DEVICE_TYPE_HINT.GAME_CONSOLE,\n gameconsole: DEVICE_TYPE_HINT.GAME_CONSOLE,\n stb: DEVICE_TYPE_HINT.SET_TOP_BOX,\n settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX\n};\nvar PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;\n\n// src/player/FloorLadder.ts\nvar DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({\n enabled: false,\n targetingKey: \"\",\n minFloorCents: 0,\n maxFloorCents: 0,\n stepCents: 0,\n selectedFloorCents: 0,\n fallbackFloorCents: 0,\n readyFloorCents: [],\n mode: \"fixed\",\n allowedPositions: [],\n targetAdUnitPath: \"\",\n configurationVersion: \"\"\n});\nvar DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({\n minCents: 25,\n maxCents: 300,\n stepCents: 25\n});\n\n// src/sdk/hlsAdPlayer.ts\nvar import_hls = __toESM(require(\"hls.js\"), 1);\n\n// src/utils/trackingIngest.ts\nvar DEFAULT_TRACKING_INGEST_CONFIG = {\n enabled: true,\n baseUrl: \"https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking\"\n};\nvar trackingIngestConfig = {\n ...DEFAULT_TRACKING_INGEST_CONFIG\n};\n\n// src/player/HlsEngine.ts\nvar import_hls2 = __toESM(require(\"hls.js\"), 1);\n\n// src/props.ts\nvar noop = () => {\n};\nvar defaultProps = {\n playing: false,\n loop: false,\n controls: true,\n volume: 1,\n muted: false,\n playbackRate: 1,\n width: \"100%\",\n height: \"auto\",\n style: {},\n progressInterval: 1e3,\n playsInline: false,\n autoplay: false,\n preload: \"metadata\",\n poster: \"\",\n className: \"\",\n wrapperClassName: \"\",\n wrapperStyle: {},\n allowNativeHls: false,\n lowLatencyMode: false,\n driftToleranceMs: 1e3,\n immediateManifestAds: true,\n debugAdTiming: false,\n showCustomControls: false,\n hideLoadingIndicator: false,\n licenseKey: \"\",\n isVmap: false,\n vmapUrl: \"\",\n adFailsafeTimeoutMs: 1e4,\n minSegmentsBeforePlay: 2,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onProgress: noop,\n onVolumeToggle: noop,\n onFullscreenToggle: noop,\n onControlClick: noop\n};\n\n// src/utils.ts\nvar import_react = require(\"react\");\nvar isMediaStream = (url) => {\n return typeof window !== \"undefined\" && window.MediaStream && url instanceof window.MediaStream;\n};\nvar IS_BROWSER = typeof window !== \"undefined\" && window.document;\nvar IS_GLOBAL = typeof globalThis !== \"undefined\" && globalThis.window && globalThis.window.document;\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar IS_SAFARI = IS_BROWSER && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n// src/Player.tsx\nvar SEEK_ON_PLAY_EXPIRY = 5e3;\nvar Player = class extends import_react2.Component {\n constructor() {\n super(...arguments);\n this.mounted = false;\n this.isReady = false;\n this.isPlaying = false;\n this.isLoading = true;\n this.loadOnReady = null;\n this.startOnPlay = true;\n this.seekOnPlay = null;\n this.onDurationCalled = false;\n this.handlePlayerMount = (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.src);\n this.progress();\n };\n this.getInternalPlayer = (key) => {\n if (!this.player) return null;\n return this.player.getInternalPlayer(key);\n };\n this.progress = () => {\n if (this.props.src && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration,\n loaded: 0,\n loadedSeconds: 0\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress?.(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = window.setTimeout(\n this.progress,\n this.props.progressInterval || 1e3\n );\n };\n this.handleReady = () => {\n if (!this.mounted) return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n };\n this.handlePlay = () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart?.();\n this.startOnPlay = false;\n }\n onPlay?.();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n };\n this.handlePause = (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause?.(e);\n }\n };\n this.handleEnded = () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded?.();\n }\n };\n this.handleError = (...args) => {\n this.isLoading = false;\n this.props.onError?.(args[0], args[1], args[2], args[3]);\n };\n this.handleDurationCheck = () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration?.(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = window.setTimeout(\n this.handleDurationCheck,\n 100\n );\n }\n };\n this.handleLoaded = () => {\n this.isLoading = false;\n };\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) return;\n const { src, playing, volume, muted, playbackRate, loop, activePlayer } = this.props;\n if (prevProps.src !== src) {\n if (this.isLoading && !activePlayer.forceLoad && !isMediaStream(src)) {\n console.warn(\n `StormcloudPlayer: the attempt to load ${src} is being deferred until the player has loaded`\n );\n this.loadOnReady = src || null;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(src, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady) return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady) return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady) return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\n \"StormcloudPlayer: could not seek using fraction \\u2013 duration not yet available\"\n );\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return import_react2.default.createElement(Player2, {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n });\n }\n};\nPlayer.displayName = \"Player\";\nPlayer.defaultProps = defaultProps;\n"]}
|
package/lib/Player.d.cts
CHANGED
|
@@ -11,7 +11,7 @@ interface PlayerProps extends BaseStormcloudPlayerProps {
|
|
|
11
11
|
}
|
|
12
12
|
declare class Player extends Component<PlayerProps> {
|
|
13
13
|
static displayName: string;
|
|
14
|
-
static defaultProps: Required<Omit<BaseStormcloudPlayerProps, "ctvAdRequest" |
|
|
14
|
+
static defaultProps: Required<Omit<BaseStormcloudPlayerProps, "ctvAdRequest" | keyof React.VideoHTMLAttributes<HTMLVideoElement> | "onReady">>;
|
|
15
15
|
private mounted;
|
|
16
16
|
private isReady;
|
|
17
17
|
private isPlaying;
|
package/lib/StormcloudPlayer.cjs
CHANGED
|
@@ -1733,21 +1733,19 @@ function fetchConsentSignals() {
|
|
|
1733
1733
|
});
|
|
1734
1734
|
}
|
|
1735
1735
|
// src/player/FloorLadder.ts
|
|
1736
|
-
var
|
|
1736
|
+
var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
|
|
1737
1737
|
enabled: false,
|
|
1738
|
-
targetingKey: "
|
|
1739
|
-
minFloorCents:
|
|
1740
|
-
maxFloorCents:
|
|
1741
|
-
stepCents:
|
|
1742
|
-
selectedFloorCents:
|
|
1743
|
-
fallbackFloorCents:
|
|
1738
|
+
targetingKey: "",
|
|
1739
|
+
minFloorCents: 0,
|
|
1740
|
+
maxFloorCents: 0,
|
|
1741
|
+
stepCents: 0,
|
|
1742
|
+
selectedFloorCents: 0,
|
|
1743
|
+
fallbackFloorCents: 0,
|
|
1744
1744
|
readyFloorCents: [],
|
|
1745
1745
|
mode: "fixed",
|
|
1746
|
-
allowedPositions: [
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
|
|
1750
|
-
configurationVersion: "2026-09-29.1"
|
|
1746
|
+
allowedPositions: [],
|
|
1747
|
+
targetAdUnitPath: "",
|
|
1748
|
+
configurationVersion: ""
|
|
1751
1749
|
});
|
|
1752
1750
|
var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
|
|
1753
1751
|
minCents: 25,
|
|
@@ -1766,15 +1764,6 @@ function generateFloorLevels(minCents, maxCents, stepCents) {
|
|
|
1766
1764
|
}
|
|
1767
1765
|
return levels;
|
|
1768
1766
|
}
|
|
1769
|
-
function resolveFloorLadderBounds() {
|
|
1770
|
-
var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
1771
|
-
var _overrides_minCents, _overrides_maxCents, _overrides_stepCents;
|
|
1772
|
-
return {
|
|
1773
|
-
minCents: (_overrides_minCents = overrides.minCents) !== null && _overrides_minCents !== void 0 ? _overrides_minCents : DEFAULT_FLOOR_LADDER_BOUNDS.minCents,
|
|
1774
|
-
maxCents: (_overrides_maxCents = overrides.maxCents) !== null && _overrides_maxCents !== void 0 ? _overrides_maxCents : DEFAULT_FLOOR_LADDER_BOUNDS.maxCents,
|
|
1775
|
-
stepCents: (_overrides_stepCents = overrides.stepCents) !== null && _overrides_stepCents !== void 0 ? _overrides_stepCents : DEFAULT_FLOOR_LADDER_BOUNDS.stepCents
|
|
1776
|
-
};
|
|
1777
|
-
}
|
|
1778
1767
|
function validateFloorCents(value, config) {
|
|
1779
1768
|
var bounds = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
1780
1769
|
if (!isInteger(value)) return {
|
|
@@ -1906,7 +1895,6 @@ function resolveOpportunityFloor(config, context) {
|
|
|
1906
1895
|
if (!config.enabled) return skipped("disabled");
|
|
1907
1896
|
var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
|
|
1908
1897
|
if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
|
|
1909
|
-
if (context.isCtv) return skipped("ctv_excluded");
|
|
1910
1898
|
if (!config.targetingKey) return skipped("missing_targeting_key");
|
|
1911
1899
|
if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
|
|
1912
1900
|
var result;
|
|
@@ -2060,15 +2048,80 @@ function mergeDefined(target, update) {
|
|
|
2060
2048
|
}
|
|
2061
2049
|
return copyConfig(next);
|
|
2062
2050
|
}
|
|
2051
|
+
var AD_POSITIONS = [
|
|
2052
|
+
"preroll",
|
|
2053
|
+
"midroll",
|
|
2054
|
+
"postroll"
|
|
2055
|
+
];
|
|
2056
|
+
function finiteNumber(value) {
|
|
2057
|
+
return typeof value === "number" && isFinite(value) ? value : void 0;
|
|
2058
|
+
}
|
|
2059
|
+
function parseApiFloorLadder(raw) {
|
|
2060
|
+
if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) return void 0;
|
|
2061
|
+
var src = raw;
|
|
2062
|
+
var out = {};
|
|
2063
|
+
if (typeof src.enabled === "boolean") out.enabled = src.enabled;
|
|
2064
|
+
if (typeof src.targetingKey === "string") out.targetingKey = src.targetingKey;
|
|
2065
|
+
if (typeof src.targetAdUnitPath === "string") out.targetAdUnitPath = src.targetAdUnitPath;
|
|
2066
|
+
if (typeof src.configurationVersion === "string") out.configurationVersion = src.configurationVersion;
|
|
2067
|
+
if (typeof src.mode === "string") out.mode = src.mode;
|
|
2068
|
+
var min = finiteNumber(src.minFloorCents);
|
|
2069
|
+
var max = finiteNumber(src.maxFloorCents);
|
|
2070
|
+
var step = finiteNumber(src.stepCents);
|
|
2071
|
+
var selected = finiteNumber(src.selectedFloorCents);
|
|
2072
|
+
var fallback = finiteNumber(src.fallbackFloorCents);
|
|
2073
|
+
if (min !== void 0) out.minFloorCents = min;
|
|
2074
|
+
if (max !== void 0) out.maxFloorCents = max;
|
|
2075
|
+
if (step !== void 0) out.stepCents = step;
|
|
2076
|
+
if (selected !== void 0) out.selectedFloorCents = selected;
|
|
2077
|
+
if (fallback !== void 0) out.fallbackFloorCents = fallback;
|
|
2078
|
+
if (Array.isArray(src.readyFloorCents)) {
|
|
2079
|
+
out.readyFloorCents = src.readyFloorCents.filter(function(cents) {
|
|
2080
|
+
return finiteNumber(cents) !== void 0;
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
if (Array.isArray(src.allowedPositions)) {
|
|
2084
|
+
out.allowedPositions = src.allowedPositions.filter(function(position) {
|
|
2085
|
+
return AD_POSITIONS.indexOf(position) !== -1;
|
|
2086
|
+
});
|
|
2087
|
+
}
|
|
2088
|
+
return out;
|
|
2089
|
+
}
|
|
2063
2090
|
var FloorLadderController = /*#__PURE__*/ function() {
|
|
2064
|
-
function FloorLadderController(
|
|
2065
|
-
var selector = arguments.length >
|
|
2091
|
+
function FloorLadderController() {
|
|
2092
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
|
|
2066
2093
|
_class_call_check(this, FloorLadderController);
|
|
2067
|
-
this.
|
|
2068
|
-
this.
|
|
2094
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2095
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2069
2096
|
this.selector = selector;
|
|
2070
2097
|
}
|
|
2071
2098
|
_create_class(FloorLadderController, [
|
|
2099
|
+
{
|
|
2100
|
+
key: "isEnabled",
|
|
2101
|
+
value: function isEnabled() {
|
|
2102
|
+
return this.config.enabled === true;
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
key: "applyApiConfig",
|
|
2107
|
+
value: function applyApiConfig(raw) {
|
|
2108
|
+
var parsed = parseApiFloorLadder(raw);
|
|
2109
|
+
this.config = mergeDefined(copyConfig(DISABLED_FLOOR_LADDER_CONFIG), parsed);
|
|
2110
|
+
this.bounds = Object.freeze({
|
|
2111
|
+
minCents: this.config.minFloorCents,
|
|
2112
|
+
maxCents: this.config.maxFloorCents,
|
|
2113
|
+
stepCents: this.config.stepCents
|
|
2114
|
+
});
|
|
2115
|
+
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2116
|
+
}
|
|
2117
|
+
},
|
|
2118
|
+
{
|
|
2119
|
+
key: "reset",
|
|
2120
|
+
value: function reset() {
|
|
2121
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2122
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2123
|
+
}
|
|
2124
|
+
},
|
|
2072
2125
|
{
|
|
2073
2126
|
key: "get",
|
|
2074
2127
|
value: function get() {
|
|
@@ -2081,13 +2134,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
|
|
|
2081
2134
|
return _object_spread({}, this.bounds);
|
|
2082
2135
|
}
|
|
2083
2136
|
},
|
|
2084
|
-
{
|
|
2085
|
-
key: "update",
|
|
2086
|
-
value: function update(update) {
|
|
2087
|
-
this.config = mergeDefined(this.config, update);
|
|
2088
|
-
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2089
|
-
}
|
|
2090
|
-
},
|
|
2091
2137
|
{
|
|
2092
2138
|
key: "validate",
|
|
2093
2139
|
value: function validate() {
|
|
@@ -6320,6 +6366,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
|
|
|
6320
6366
|
}
|
|
6321
6367
|
return "fingerprint:".concat(JSON.stringify(clientInfo));
|
|
6322
6368
|
}
|
|
6369
|
+
function getCachedBrowserId() {
|
|
6370
|
+
return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
|
|
6371
|
+
}
|
|
6323
6372
|
function getBrowserID(clientInfo) {
|
|
6324
6373
|
return _async_to_generator(function() {
|
|
6325
6374
|
return _ts_generator(this, function(_state) {
|
|
@@ -7989,7 +8038,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
7989
8038
|
key: "fetchAdConfiguration",
|
|
7990
8039
|
value: function fetchAdConfiguration() {
|
|
7991
8040
|
return _async_to_generator(function() {
|
|
7992
|
-
var _data_response_ima_publisherdeskima, _data_response_ima,
|
|
8041
|
+
var _data_response, _data_response1, _data_response2, _data_response_ima_publisherdeskima, _data_response_ima, _data_response3, _data_response_options_vast_cue_tones, _data_response_options_vast, _data_response_options, _data_response4, apiUrl, headers, response, data, apiEnableEdge, apiEdgeUrl, imaPayload, decodedPayload, numberAds;
|
|
7993
8042
|
return _ts_generator(this, function(_state) {
|
|
7994
8043
|
switch(_state.label){
|
|
7995
8044
|
case 0:
|
|
@@ -8049,7 +8098,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8049
8098
|
];
|
|
8050
8099
|
case 4:
|
|
8051
8100
|
data = _state.sent();
|
|
8052
|
-
|
|
8101
|
+
apiEnableEdge = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.enableEdgePodRequest;
|
|
8102
|
+
apiEdgeUrl = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : _data_response1.edgePodUrl;
|
|
8103
|
+
this.apiEnableEdgePodRequest = typeof apiEnableEdge === "boolean" ? apiEnableEdge : void 0;
|
|
8104
|
+
this.apiEdgePodUrl = typeof apiEdgeUrl === "string" ? apiEdgeUrl : void 0;
|
|
8105
|
+
if (this.debug) {
|
|
8106
|
+
console.log("[StormcloudVideoPlayer] Edge pod settings from API:", {
|
|
8107
|
+
enableEdgePodRequest: this.apiEnableEdgePodRequest,
|
|
8108
|
+
edgePodUrl: this.apiEdgePodUrl
|
|
8109
|
+
});
|
|
8110
|
+
}
|
|
8111
|
+
this.apiFloorLadder = (_data_response2 = data.response) === null || _data_response2 === void 0 ? void 0 : _data_response2.floorLadder;
|
|
8112
|
+
if (this.debug) {
|
|
8113
|
+
console.log(this.apiFloorLadder ? "[StormcloudVideoPlayer] Floor ladder from API:" : "[StormcloudVideoPlayer] No floorLadder block in /ads/web response", this.apiFloorLadder);
|
|
8114
|
+
}
|
|
8115
|
+
imaPayload = (_data_response3 = data.response) === null || _data_response3 === void 0 ? void 0 : (_data_response_ima = _data_response3.ima) === null || _data_response_ima === void 0 ? void 0 : (_data_response_ima_publisherdeskima = _data_response_ima["publisherdesk.ima"]) === null || _data_response_ima_publisherdeskima === void 0 ? void 0 : _data_response_ima_publisherdeskima.payload;
|
|
8053
8116
|
if (imaPayload) {
|
|
8054
8117
|
decodedPayload = imaPayload;
|
|
8055
8118
|
try {
|
|
@@ -8067,7 +8130,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8067
8130
|
console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
|
|
8068
8131
|
}
|
|
8069
8132
|
}
|
|
8070
|
-
numberAds = (
|
|
8133
|
+
numberAds = (_data_response4 = data.response) === null || _data_response4 === void 0 ? void 0 : (_data_response_options = _data_response4.options) === null || _data_response_options === void 0 ? void 0 : (_data_response_options_vast = _data_response_options.vast) === null || _data_response_options_vast === void 0 ? void 0 : (_data_response_options_vast_cue_tones = _data_response_options_vast.cue_tones) === null || _data_response_options_vast_cue_tones === void 0 ? void 0 : _data_response_options_vast_cue_tones.number_ads;
|
|
8071
8134
|
if (numberAds != null && numberAds > 0) {
|
|
8072
8135
|
this.apiNumberAds = numberAds;
|
|
8073
8136
|
if (this.debug) {
|
|
@@ -9901,7 +9964,23 @@ function resolveEdgePodBaseUrl(config) {
|
|
|
9901
9964
|
return void 0;
|
|
9902
9965
|
}
|
|
9903
9966
|
}
|
|
9967
|
+
function resolveEdgePodRequestContext(config) {
|
|
9968
|
+
var extra = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
9969
|
+
return {
|
|
9970
|
+
width: extra.width,
|
|
9971
|
+
height: extra.height,
|
|
9972
|
+
playerId: extra.playerId,
|
|
9973
|
+
contentNetwork: config.contentNetwork,
|
|
9974
|
+
contentChannel: config.channelName,
|
|
9975
|
+
contentTitle: config.programTitle
|
|
9976
|
+
};
|
|
9977
|
+
}
|
|
9978
|
+
function setOptionalParam(url, key, value) {
|
|
9979
|
+
var trimmed = value === null || value === void 0 ? void 0 : value.trim();
|
|
9980
|
+
if (trimmed) url.searchParams.set(key, trimmed);
|
|
9981
|
+
}
|
|
9904
9982
|
function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
9983
|
+
var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
9905
9984
|
var url = new URL(baseUrl);
|
|
9906
9985
|
var maxMs = Math.max(0, Math.floor(remainingMs));
|
|
9907
9986
|
var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
|
|
@@ -9909,6 +9988,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
|
9909
9988
|
url.searchParams.set("pmad", String(maxAds));
|
|
9910
9989
|
url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
|
|
9911
9990
|
url.searchParams.set("count", String(maxAds));
|
|
9991
|
+
if (context.width != null && Number.isFinite(context.width) && context.width > 0) {
|
|
9992
|
+
url.searchParams.set("width", String(Math.round(context.width)));
|
|
9993
|
+
}
|
|
9994
|
+
if (context.height != null && Number.isFinite(context.height) && context.height > 0) {
|
|
9995
|
+
url.searchParams.set("height", String(Math.round(context.height)));
|
|
9996
|
+
}
|
|
9997
|
+
setOptionalParam(url, "pid", context.playerId);
|
|
9998
|
+
setOptionalParam(url, "cn", context.contentNetwork);
|
|
9999
|
+
setOptionalParam(url, "cc", context.contentChannel);
|
|
10000
|
+
setOptionalParam(url, "ct", context.contentTitle);
|
|
9912
10001
|
return url.toString();
|
|
9913
10002
|
}
|
|
9914
10003
|
function classifyEdgeVastResponse(result) {
|
|
@@ -10796,7 +10885,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10796
10885
|
return void 0;
|
|
10797
10886
|
}
|
|
10798
10887
|
try {
|
|
10799
|
-
|
|
10888
|
+
var playerId = getCachedBrowserId();
|
|
10889
|
+
return buildEdgePodUrl(baseUrl, remainingMs, remainingAds, resolveEdgePodRequestContext(this.host.config, {
|
|
10890
|
+
width: this.host.video.offsetWidth || this.host.video.clientWidth,
|
|
10891
|
+
height: this.host.video.offsetHeight || this.host.video.clientHeight,
|
|
10892
|
+
playerId: playerId
|
|
10893
|
+
}));
|
|
10800
10894
|
} catch (unused) {
|
|
10801
10895
|
this.markEdgeExhausted("invalid_edge_url");
|
|
10802
10896
|
return void 0;
|
|
@@ -12306,14 +12400,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12306
12400
|
this.config = _object_spread({}, browserOverrides, config);
|
|
12307
12401
|
this.video = config.videoElement;
|
|
12308
12402
|
logBrowserInfo(config.debugAdTiming);
|
|
12309
|
-
|
|
12310
|
-
if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
|
|
12311
|
-
if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
|
|
12312
|
-
if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
|
|
12313
|
-
this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
|
|
12314
|
-
this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
|
|
12315
|
-
this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12316
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12403
|
+
this.floorLadder = new FloorLadderController();
|
|
12317
12404
|
this.adPlayer = this.createAdPlayer(false);
|
|
12318
12405
|
this.palNonce = createPalNonceManager();
|
|
12319
12406
|
this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
|
|
@@ -12420,9 +12507,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12420
12507
|
return _this.edgePodBaseUrl;
|
|
12421
12508
|
},
|
|
12422
12509
|
getFloorSnapshot: function getFloorSnapshot(position) {
|
|
12423
|
-
return _this.
|
|
12424
|
-
position: position
|
|
12425
|
-
isCtv: _this.isCtvEnvironment()
|
|
12510
|
+
return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
|
|
12511
|
+
position: position
|
|
12426
12512
|
}) : void 0;
|
|
12427
12513
|
},
|
|
12428
12514
|
onAdClick: function onAdClick() {
|
|
@@ -12459,45 +12545,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12459
12545
|
}
|
|
12460
12546
|
},
|
|
12461
12547
|
{
|
|
12462
|
-
key: "
|
|
12463
|
-
value: function
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
key: "setAdFloorLadder",
|
|
12471
|
-
value: function setAdFloorLadder(update) {
|
|
12472
|
-
var report = this.floorLadder.update(update);
|
|
12548
|
+
key: "applyFloorLadderFromApi",
|
|
12549
|
+
value: function applyFloorLadderFromApi() {
|
|
12550
|
+
var raw = this.adConfig.apiFloorLadder;
|
|
12551
|
+
if (raw == null) {
|
|
12552
|
+
this.floorLadder.reset();
|
|
12553
|
+
return;
|
|
12554
|
+
}
|
|
12555
|
+
var report = this.floorLadder.applyApiConfig(raw);
|
|
12473
12556
|
this.warnOnInvalidFloorLadder(report);
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12479
|
-
|
|
12480
|
-
|
|
12481
|
-
if (enabled) this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12557
|
+
if (this.debug) {
|
|
12558
|
+
console.log("[AdBreak][FLOOR] configuration applied from API", {
|
|
12559
|
+
config: this.floorLadder.get(),
|
|
12560
|
+
bounds: this.floorLadder.getBounds(),
|
|
12561
|
+
validation: report
|
|
12562
|
+
});
|
|
12563
|
+
}
|
|
12482
12564
|
}
|
|
12483
12565
|
},
|
|
12484
12566
|
{
|
|
12485
12567
|
key: "isAdFloorLadderEnabled",
|
|
12486
12568
|
value: function isAdFloorLadderEnabled() {
|
|
12487
|
-
return this.
|
|
12569
|
+
return this.floorLadder.isEnabled();
|
|
12488
12570
|
}
|
|
12489
12571
|
},
|
|
12490
12572
|
{
|
|
12491
|
-
key: "
|
|
12492
|
-
value: function
|
|
12493
|
-
|
|
12494
|
-
|
|
12573
|
+
key: "applyEdgePodFromApi",
|
|
12574
|
+
value: function applyEdgePodFromApi() {
|
|
12575
|
+
this.edgePodBaseUrl = resolveEdgePodBaseUrl({
|
|
12576
|
+
enableEdgePodRequest: this.adConfig.apiEnableEdgePodRequest,
|
|
12577
|
+
edgePodUrl: this.adConfig.apiEdgePodUrl,
|
|
12578
|
+
licenseKey: this.config.licenseKey
|
|
12579
|
+
});
|
|
12580
|
+
if (this.debug) {
|
|
12581
|
+
var _this_edgePodBaseUrl;
|
|
12582
|
+
console.log("[AdBreak][EDGE] edge pod base URL from API:", (_this_edgePodBaseUrl = this.edgePodBaseUrl) !== null && _this_edgePodBaseUrl !== void 0 ? _this_edgePodBaseUrl : "(disabled; GAM only)");
|
|
12495
12583
|
}
|
|
12496
|
-
if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
|
|
12497
|
-
else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
|
|
12498
|
-
if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
|
|
12499
|
-
else this.config.edgePodUrl = update.edgePodUrl;
|
|
12500
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12501
12584
|
}
|
|
12502
12585
|
},
|
|
12503
12586
|
{
|
|
@@ -12510,7 +12593,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12510
12593
|
key: "warnOnInvalidFloorLadder",
|
|
12511
12594
|
value: function warnOnInvalidFloorLadder(report) {
|
|
12512
12595
|
var config = this.floorLadder.get();
|
|
12513
|
-
if (report.ok || !
|
|
12596
|
+
if (report.ok || !config.enabled) return;
|
|
12514
12597
|
console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
|
|
12515
12598
|
errors: report.errors,
|
|
12516
12599
|
configurationVersion: config.configurationVersion,
|
|
@@ -12585,6 +12668,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12585
12668
|
4
|
|
12586
12669
|
];
|
|
12587
12670
|
case 4:
|
|
12671
|
+
this.applyFloorLadderFromApi();
|
|
12672
|
+
this.applyEdgePodFromApi();
|
|
12588
12673
|
palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
|
|
12589
12674
|
fetchConsentSignals().catch(function() {
|
|
12590
12675
|
return {};
|