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.
Files changed (37) hide show
  1. package/dist/stormcloud-vp.min.js +1 -1
  2. package/lib/Player.cjs +30 -8
  3. package/lib/Player.cjs.map +1 -1
  4. package/lib/Player.d.cts +2 -1
  5. package/lib/StormcloudPlayer.cjs +5615 -5101
  6. package/lib/StormcloudPlayer.cjs.map +1 -1
  7. package/lib/StormcloudPlayer.d.cts +1 -0
  8. package/lib/index.cjs +5688 -5117
  9. package/lib/index.cjs.map +1 -1
  10. package/lib/index.d.cts +2 -1
  11. package/lib/index.d.ts +81 -1
  12. package/lib/index.js +5663 -5119
  13. package/lib/index.js.map +1 -1
  14. package/lib/player/AdBreakOrchestrator.cjs +314 -113
  15. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  16. package/lib/player/AdBreakOrchestrator.d.cts +9 -3
  17. package/lib/player/FloorLadder.cjs +578 -0
  18. package/lib/player/FloorLadder.cjs.map +1 -0
  19. package/lib/player/FloorLadder.d.cts +74 -0
  20. package/lib/player/StormcloudVideoPlayer.cjs +5615 -5101
  21. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  22. package/lib/player/StormcloudVideoPlayer.d.cts +9 -1
  23. package/lib/players/HlsPlayer.cjs +5615 -5101
  24. package/lib/players/HlsPlayer.cjs.map +1 -1
  25. package/lib/players/index.cjs +5615 -5101
  26. package/lib/players/index.cjs.map +1 -1
  27. package/lib/props.cjs +30 -8
  28. package/lib/props.cjs.map +1 -1
  29. package/lib/props.d.cts +1 -0
  30. package/lib/types.d.cts +22 -1
  31. package/lib/ui/StormcloudVideoPlayer.cjs +5634 -5091
  32. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  33. package/lib/ui/StormcloudVideoPlayer.d.cts +1 -0
  34. package/lib/utils/vastMacros.cjs +4 -0
  35. package/lib/utils/vastMacros.cjs.map +1 -1
  36. package/lib/utils/vastMacros.d.cts +2 -1
  37. package/package.json +1 -1
package/lib/Player.cjs CHANGED
@@ -188,14 +188,6 @@ __export(Player_exports, {
188
188
  });
189
189
  module.exports = __toCommonJS(Player_exports);
190
190
  var import_react2 = __toESM(require("react"), 1);
191
- // src/sdk/hlsAdPlayer.ts
192
- var import_hls = __toESM(require("hls.js"), 1);
193
- // src/utils/trackingIngest.ts
194
- var DEFAULT_TRACKING_INGEST_CONFIG = {
195
- enabled: true,
196
- baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
197
- };
198
- var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
199
191
  // src/utils/vastEnvironmentSignals.ts
200
192
  var DEVICE_TYPE_HINT = {
201
193
  FEATURE_PHONE: 1,
@@ -224,6 +216,36 @@ var DEVICE_TYPE_HINT_ALIASES = {
224
216
  settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX
225
217
  };
226
218
  var PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;
219
+ // src/player/FloorLadder.ts
220
+ var DEFAULT_WEB_FLOOR_LADDER_CONFIG = Object.freeze({
221
+ enabled: false,
222
+ targetingKey: "airytv_web_floor",
223
+ minFloorCents: 25,
224
+ maxFloorCents: 300,
225
+ stepCents: 25,
226
+ selectedFloorCents: 25,
227
+ fallbackFloorCents: 25,
228
+ readyFloorCents: [],
229
+ mode: "fixed",
230
+ allowedPositions: [
231
+ "midroll"
232
+ ],
233
+ targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
234
+ configurationVersion: "2026-09-29.1"
235
+ });
236
+ var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
237
+ minCents: 25,
238
+ maxCents: 300,
239
+ stepCents: 25
240
+ });
241
+ // src/sdk/hlsAdPlayer.ts
242
+ var import_hls = __toESM(require("hls.js"), 1);
243
+ // src/utils/trackingIngest.ts
244
+ var DEFAULT_TRACKING_INGEST_CONFIG = {
245
+ enabled: true,
246
+ baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
247
+ };
248
+ var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
227
249
  // src/player/HlsEngine.ts
228
250
  var import_hls2 = __toESM(require("hls.js"), 1);
229
251
  // src/props.ts
@@ -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","import_hls","DEFAULT_TRACKING_INGEST_CONFIG","enabled","baseUrl","trackingIngestConfig","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","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/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/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/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","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"]}
package/lib/Player.d.cts CHANGED
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
2
2
  import { BaseStormcloudPlayerProps, OnProgressProps } from './props.cjs';
3
3
  import './player/StormcloudVideoPlayer.cjs';
4
4
  import './types.cjs';
5
+ import './player/FloorLadder.cjs';
5
6
 
6
7
  interface PlayerProps extends BaseStormcloudPlayerProps {
7
8
  activePlayer: any;
@@ -9,7 +10,7 @@ interface PlayerProps extends BaseStormcloudPlayerProps {
9
10
  }
10
11
  declare class Player extends Component<PlayerProps> {
11
12
  static displayName: string;
12
- static defaultProps: Required<Omit<BaseStormcloudPlayerProps, "ctvAdRequest" | "onReady" | keyof React.VideoHTMLAttributes<HTMLVideoElement>>>;
13
+ static defaultProps: Required<Omit<BaseStormcloudPlayerProps, "ctvAdRequest" | keyof React.VideoHTMLAttributes<HTMLVideoElement> | "onReady">>;
13
14
  private mounted;
14
15
  private isReady;
15
16
  private isPlaying;