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/props.cjs CHANGED
@@ -95,14 +95,6 @@ __export(props_exports, {
95
95
  }
96
96
  });
97
97
  module.exports = __toCommonJS(props_exports);
98
- // src/sdk/hlsAdPlayer.ts
99
- var import_hls = __toESM(require("hls.js"), 1);
100
- // src/utils/trackingIngest.ts
101
- var DEFAULT_TRACKING_INGEST_CONFIG = {
102
- enabled: true,
103
- baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
104
- };
105
- var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
106
98
  // src/utils/vastEnvironmentSignals.ts
107
99
  var DEVICE_TYPE_HINT = {
108
100
  FEATURE_PHONE: 1,
@@ -131,6 +123,36 @@ var DEVICE_TYPE_HINT_ALIASES = {
131
123
  settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX
132
124
  };
133
125
  var PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;
126
+ // src/player/FloorLadder.ts
127
+ var DEFAULT_WEB_FLOOR_LADDER_CONFIG = Object.freeze({
128
+ enabled: false,
129
+ targetingKey: "airytv_web_floor",
130
+ minFloorCents: 25,
131
+ maxFloorCents: 300,
132
+ stepCents: 25,
133
+ selectedFloorCents: 25,
134
+ fallbackFloorCents: 25,
135
+ readyFloorCents: [],
136
+ mode: "fixed",
137
+ allowedPositions: [
138
+ "midroll"
139
+ ],
140
+ targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
141
+ configurationVersion: "2026-09-29.1"
142
+ });
143
+ var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
144
+ minCents: 25,
145
+ maxCents: 300,
146
+ stepCents: 25
147
+ });
148
+ // src/sdk/hlsAdPlayer.ts
149
+ var import_hls = __toESM(require("hls.js"), 1);
150
+ // src/utils/trackingIngest.ts
151
+ var DEFAULT_TRACKING_INGEST_CONFIG = {
152
+ enabled: true,
153
+ baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
154
+ };
155
+ var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
134
156
  // src/player/HlsEngine.ts
135
157
  var import_hls2 = __toESM(require("hls.js"), 1);
136
158
  // src/props.ts
package/lib/props.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\props.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","props_exports","defaultProps","module","exports","import_hls","require","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","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"],"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/props.ts\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps\n});\nmodule.exports = __toCommonJS(props_exports);\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// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n defaultProps\n});\n"]}
1
+ {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\props.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","props_exports","defaultProps","module","exports","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","require","DEFAULT_TRACKING_INGEST_CONFIG","baseUrl","trackingIngestConfig","import_hls2","noop","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"],"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/props.ts\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps\n});\nmodule.exports = __toCommonJS(props_exports);\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// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n defaultProps\n});\n"]}
package/lib/props.d.cts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { StormcloudVideoPlayer } from './player/StormcloudVideoPlayer.cjs';
3
3
  import './types.cjs';
4
+ import './player/FloorLadder.cjs';
4
5
 
5
6
  interface OnProgressProps {
6
7
  played: number;
package/lib/types.d.cts CHANGED
@@ -46,6 +46,27 @@ interface StormcloudVideoPlayerConfig {
46
46
  podMaxAds?: number;
47
47
  podMaxDurationMs?: number;
48
48
  podExactDuration?: boolean;
49
+ adFloorLadder?: Partial<AdFloorLadderConfig>;
50
+ /** Floor levels that exist as GAM targeting values; `adFloorLadder` can narrow but never widen them. */
51
+ adFloorMinCents?: number;
52
+ adFloorMaxCents?: number;
53
+ adFloorStepCents?: number;
54
+ }
55
+ type AdPosition = "preroll" | "midroll" | "postroll";
56
+ type FloorLadderMode = "fixed";
57
+ interface AdFloorLadderConfig {
58
+ enabled: boolean;
59
+ targetingKey: string;
60
+ minFloorCents: number;
61
+ maxFloorCents: number;
62
+ stepCents: number;
63
+ selectedFloorCents: number;
64
+ fallbackFloorCents: number;
65
+ readyFloorCents: number[];
66
+ mode: FloorLadderMode;
67
+ allowedPositions: AdPosition[];
68
+ targetAdUnitPath: string;
69
+ configurationVersion: string;
49
70
  }
50
71
  interface Scte35Marker {
51
72
  type: "start" | "end" | "progress";
@@ -187,4 +208,4 @@ interface AdImpressionInfo {
187
208
  timestamp: string;
188
209
  }
189
210
 
190
- export type { AdBreak, AdController, AdControllerOptions, AdDetectInfo, AdImpressionInfo, AdLoadedInfo, AdSchedule, ClientInfo, HeartbeatData, Id3TagInfo, ImaController, ImaControllerOptions, LateJoinPolicy, PlayerAnalyticsContext, Scte35Marker, StormcloudApiResponse, StormcloudVideoPlayerConfig, TrackingData };
211
+ export type { AdBreak, AdController, AdControllerOptions, AdDetectInfo, AdFloorLadderConfig, AdImpressionInfo, AdLoadedInfo, AdPosition, AdSchedule, ClientInfo, FloorLadderMode, HeartbeatData, Id3TagInfo, ImaController, ImaControllerOptions, LateJoinPolicy, PlayerAnalyticsContext, Scte35Marker, StormcloudApiResponse, StormcloudVideoPlayerConfig, TrackingData };