stormcloud-video-player 0.8.30 → 0.8.32

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.
@@ -1,4 +1,4 @@
1
- import { A as AdController } from '../types-CSHvCbhZ.cjs';
1
+ import { A as AdController } from '../types-e6QV7SBp.cjs';
2
2
  import Hls from 'hls.js';
3
3
 
4
4
  declare function createHlsAdPlayer(contentVideo: HTMLVideoElement, options?: {
package/lib/sdk/pal.cjs CHANGED
@@ -280,6 +280,22 @@ function createPalNonceManager() {
280
280
  request.videoHeight = options.videoHeight || 480;
281
281
  if (options.ppid) request.ppid = options.ppid;
282
282
  if (options.sessionId) request.sessionId = options.sessionId;
283
+ console.log("[PAL] NonceRequest before generateNonce:", {
284
+ adWillAutoPlay: request.adWillAutoPlay,
285
+ adWillPlayMuted: request.adWillPlayMuted,
286
+ playerVolume: request.playerVolume,
287
+ continuousPlayback: request.continuousPlayback,
288
+ descriptionUrl: request.descriptionUrl,
289
+ iconsSupported: request.iconsSupported,
290
+ playerType: request.playerType,
291
+ playerVersion: request.playerVersion,
292
+ supportedApiFrameworks: request.supportedApiFrameworks,
293
+ url: request.url,
294
+ videoWidth: request.videoWidth,
295
+ videoHeight: request.videoHeight,
296
+ ppid: request.ppid,
297
+ sessionId: request.sessionId
298
+ });
283
299
  return [
284
300
  4,
285
301
  loader.loadNonceManager(request)
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/sdk/pal.cjs"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","__hasOwnProp","getOwnPropertyNames","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YACIA,IAAAA,MAAYC,OAAOC,cAAc;gBACjCC,gCAAAA,0CAAAA,eAAmBF,KAAAA,CAAOG,cAAAA,UAAwB;YAClDC,EAAAA,eAAAA,CACAC,SADoBL,IACLA,GADYM,IACLC,SAAS,CAACC,KADc,SACA;QAC9CC,WAAW,kBAACC,QAAQC;8BACtB,IAAK,IAAIC,QAAQD,IACfZ,UAAUW,QAAQE,MAAM;cAAEC,EAAAA,GAAKF,GAAG,CAACC,KAAK;0FAAEE,YAAY,QAAA,WAAA;YAAK,EAAA,eAAA,CAC/D;QACIC,cAAc,qBAACC,IAAIC,MAAMC,QAAQC;8BACnC,IAAIF,QAAQ,CAAA,IAAA,GAAOA,qCAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;kBAC7D,kCAAA,2BAAA;;wCAAA,IAAIG,MAAJ;oBACH,IAAI,CAACf,aAAagB,IAAI,CAACL,IAAII,QAAQA,QAAQF,QACzCnB,UAAUiB,IAAII,KAAK;wCAAEP,KAAK,SAALA;qCAAWI,IAAI,CAACG,IAAI;;wBAAEN,YAAY,CAAEK,CAAAA,OAAOjB,iBAAiBe,MAAMG,IAAG,KAAMD,KAAKL,UAAU;kBAAC;;YAFpH,QAAK,YAAWV,kBAAkBa,WAAAA,eAA7B,SAAA,6BAAA,QAAA,yBAAA;;qCAAA;aAAA","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\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 __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/sdk/pal.ts\nvar pal_exports = {};\n__export(pal_exports, {\n createPalNonceManager: () => createPalNonceManager\n});\nmodule.exports = __toCommonJS(pal_exports);\nvar PAL_SDK_URL = \"https://imasdk.googleapis.com/pal/sdkloader/pal.js\";\nvar _nonceLoader;\nvar _palLoadPromise;\nfunction loadPalSdk() {\n if (typeof window !== \"undefined\" && window.goog?.pal) {\n return Promise.resolve();\n }\n if (_palLoadPromise) return _palLoadPromise;\n _palLoadPromise = new Promise((resolve, reject) => {\n const existing = document.querySelector(\n 'script[data-pal=\"true\"]'\n );\n if (existing) {\n if (window.goog?.pal) {\n resolve();\n return;\n }\n const timeout = setTimeout(\n () => reject(new Error(\"PAL SDK load timeout\")),\n 1e4\n );\n existing.addEventListener(\"load\", () => {\n clearTimeout(timeout);\n resolve();\n });\n existing.addEventListener(\"error\", () => {\n clearTimeout(timeout);\n reject(new Error(\"PAL SDK load failed\"));\n });\n return;\n }\n const script = document.createElement(\"script\");\n script.src = PAL_SDK_URL;\n script.async = true;\n script.setAttribute(\"data-pal\", \"true\");\n script.onload = () => resolve();\n script.onerror = () => reject(new Error(\"PAL SDK load failed\"));\n document.head.appendChild(script);\n });\n return _palLoadPromise;\n}\nfunction getOrCreateNonceLoader() {\n if (_nonceLoader) return _nonceLoader;\n const goog = window.goog;\n const consentSettings = new goog.pal.ConsentSettings();\n consentSettings.allowStorage = true;\n _nonceLoader = new goog.pal.NonceLoader(consentSettings);\n return _nonceLoader;\n}\nfunction createPalNonceManager() {\n let currentNonce = \"\";\n let currentNonceManager;\n return {\n async generateNonce(options = {}) {\n try {\n await loadPalSdk();\n const loader = getOrCreateNonceLoader();\n const goog = window.goog;\n const request = new goog.pal.NonceRequest();\n request.adWillAutoPlay = options.adWillAutoPlay ?? true;\n request.adWillPlayMuted = options.adWillPlayMuted ?? false;\n request.playerVolume = options.playerVolume ?? (request.adWillPlayMuted ? 0 : 1);\n request.continuousPlayback = options.continuousPlayback ?? true;\n request.descriptionUrl = options.descriptionUrl || (typeof window !== \"undefined\" ? window.location.href : \"\");\n request.iconsSupported = true;\n request.playerType = \"StormcloudVideoPlayer\";\n request.playerVersion = \"1.0\";\n request.supportedApiFrameworks = \"2,7,9\";\n request.url = options.descriptionUrl || (typeof window !== \"undefined\" ? window.location.href : \"\");\n request.videoWidth = options.videoWidth || 640;\n request.videoHeight = options.videoHeight || 480;\n if (options.ppid) request.ppid = options.ppid;\n if (options.sessionId) request.sessionId = options.sessionId;\n const manager = await loader.loadNonceManager(request);\n currentNonceManager = manager;\n currentNonce = manager.getNonce();\n console.log(\"[PAL] Nonce generated successfully\");\n return currentNonce;\n } catch (error) {\n console.warn(\"[PAL] Failed to generate nonce:\", error);\n currentNonce = \"\";\n currentNonceManager = void 0;\n return \"\";\n }\n },\n getCurrentNonce() {\n return currentNonce;\n },\n injectNonce(vastTagUrl) {\n if (!currentNonce || !vastTagUrl) return vastTagUrl;\n try {\n const url = new URL(vastTagUrl);\n url.searchParams.delete(\"paln\");\n url.searchParams.set(\"givn\", currentNonce);\n return url.toString();\n } catch {\n let base = vastTagUrl.replace(/([?&])paln=[^&]*/g, \"\").replace(/[?&]$/, \"\");\n const sep = base.includes(\"?\") ? \"&\" : \"?\";\n return `${base}${sep}givn=${encodeURIComponent(currentNonce)}`;\n }\n },\n sendPlaybackStart() {\n try {\n currentNonceManager?.sendPlaybackStart();\n } catch {\n }\n },\n sendPlaybackEnd() {\n try {\n currentNonceManager?.sendPlaybackEnd();\n } catch {\n }\n },\n sendAdClick() {\n try {\n currentNonceManager?.sendAdClick();\n } catch {\n }\n },\n sendAdTouch(event) {\n try {\n currentNonceManager?.sendAdTouch(event);\n } catch {\n }\n },\n reset() {\n currentNonce = \"\";\n currentNonceManager = void 0;\n }\n };\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n createPalNonceManager\n});\n"]}
1
+ {"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/sdk/pal.cjs"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACIA,IAAAA,IAAYC,OAAOC,CAAAA,CAAAA,MAAAA,CAAAA,KAAc;gBACjCC,IAAAA,WAAmBF,CAAAA,CAAAA,GAAAA,CAAAA,CAAOG,OAAAA,iBAAwB;gBAClDC,OAAAA,IAAAA,KAAoBJ,GAAAA,IAAOK,mBAAmB;YAC9CC,EAAAA,eAAAA,KAAeN,OAAOO,SAAS,CAACC,cAAc;gBAC9CC,IAAAA,GAAW,IAAA,WAAA,GAACC,IAAAA,CAAAA,GAAQC,kBAAAA,IAAAA,OAAAA,CAAAA,SAAAA;gBACjB,IAAIC,MAAQD,IACfZ,CAAAA,QAAAA,CAAUW,OAAAA,CAAQE,KAAAA,CAAM;gBAAEC,KAAKF,EAAAA,AAAG,CAACC,EAAK,OAALA,IAAK,EAAA,OAAA,KAAA,SAAA,OAAA,mBAAA;cAAEE,YAAY;QAAK;QAC/D,mBAAA,SAAA;YACIC,IAAAA,QAAc,qBAACC,IAAIC,MAAMC,QAAQC;0FAC/BF,QAAQ,CAAA,OAAOA,IAAAA,iBAAAA,eAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;kBAC7D,WAAA,gCAAA,2BAAA;;8CAAA,IAAIG,MAAJ;sBACH,IAAI,CAACd,aAAae,IAAI,CAACL,IAAII,QAAQA,QAAQF,QACzCnB,UAAUiB,IAAII,KAAK;4BAAEP,KAAK,6EAAA,KAALA,UAAAA;8CAAWI,IAAI,CAACG,IAAI;wBAAEN,YAAY,CAAEK,CAAAA,OAAOjB,iBAAiBe,MAAMG,IAAG,KAAMD,KAAKL,UAAU;0CAAC;;8FAFpH,QAAK,QAAA,GAAWV,QAAAA,UAAkBa,0BAA7B,SAAA,6BAAA,QAAA,yBAAA;oCAAA;gBAAA;;;uGAAA,OAAA,WAAA,CAAA,SAAA;mCAAA;;wCAAA;gCAAA;;;;IAGP;IACA,OAAOD,kDAAAA;AACT,KAAA,CAAA,OAAA,OAAA,GAAA;IACA,uBAAA,EAAIM,eAAe,sBAACC;YAAQR,YAAYhB,UAAU,CAAC,GAAG,cAAc","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\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 __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/sdk/pal.ts\nvar pal_exports = {};\n__export(pal_exports, {\n createPalNonceManager: () => createPalNonceManager\n});\nmodule.exports = __toCommonJS(pal_exports);\nvar PAL_SDK_URL = \"https://imasdk.googleapis.com/pal/sdkloader/pal.js\";\nvar _nonceLoader;\nvar _palLoadPromise;\nfunction loadPalSdk() {\n if (typeof window !== \"undefined\" && window.goog?.pal) {\n return Promise.resolve();\n }\n if (_palLoadPromise) return _palLoadPromise;\n _palLoadPromise = new Promise((resolve, reject) => {\n const existing = document.querySelector(\n 'script[data-pal=\"true\"]'\n );\n if (existing) {\n if (window.goog?.pal) {\n resolve();\n return;\n }\n const timeout = setTimeout(\n () => reject(new Error(\"PAL SDK load timeout\")),\n 1e4\n );\n existing.addEventListener(\"load\", () => {\n clearTimeout(timeout);\n resolve();\n });\n existing.addEventListener(\"error\", () => {\n clearTimeout(timeout);\n reject(new Error(\"PAL SDK load failed\"));\n });\n return;\n }\n const script = document.createElement(\"script\");\n script.src = PAL_SDK_URL;\n script.async = true;\n script.setAttribute(\"data-pal\", \"true\");\n script.onload = () => resolve();\n script.onerror = () => reject(new Error(\"PAL SDK load failed\"));\n document.head.appendChild(script);\n });\n return _palLoadPromise;\n}\nfunction getOrCreateNonceLoader() {\n if (_nonceLoader) return _nonceLoader;\n const goog = window.goog;\n const consentSettings = new goog.pal.ConsentSettings();\n consentSettings.allowStorage = true;\n _nonceLoader = new goog.pal.NonceLoader(consentSettings);\n return _nonceLoader;\n}\nfunction createPalNonceManager() {\n let currentNonce = \"\";\n let currentNonceManager;\n return {\n async generateNonce(options = {}) {\n try {\n await loadPalSdk();\n const loader = getOrCreateNonceLoader();\n const goog = window.goog;\n const request = new goog.pal.NonceRequest();\n request.adWillAutoPlay = options.adWillAutoPlay ?? true;\n request.adWillPlayMuted = options.adWillPlayMuted ?? false;\n request.playerVolume = options.playerVolume ?? (request.adWillPlayMuted ? 0 : 1);\n request.continuousPlayback = options.continuousPlayback ?? true;\n request.descriptionUrl = options.descriptionUrl || (typeof window !== \"undefined\" ? window.location.href : \"\");\n request.iconsSupported = true;\n request.playerType = \"StormcloudVideoPlayer\";\n request.playerVersion = \"1.0\";\n request.supportedApiFrameworks = \"2,7,9\";\n request.url = options.descriptionUrl || (typeof window !== \"undefined\" ? window.location.href : \"\");\n request.videoWidth = options.videoWidth || 640;\n request.videoHeight = options.videoHeight || 480;\n if (options.ppid) request.ppid = options.ppid;\n if (options.sessionId) request.sessionId = options.sessionId;\n console.log(\"[PAL] NonceRequest before generateNonce:\", {\n adWillAutoPlay: request.adWillAutoPlay,\n adWillPlayMuted: request.adWillPlayMuted,\n playerVolume: request.playerVolume,\n continuousPlayback: request.continuousPlayback,\n descriptionUrl: request.descriptionUrl,\n iconsSupported: request.iconsSupported,\n playerType: request.playerType,\n playerVersion: request.playerVersion,\n supportedApiFrameworks: request.supportedApiFrameworks,\n url: request.url,\n videoWidth: request.videoWidth,\n videoHeight: request.videoHeight,\n ppid: request.ppid,\n sessionId: request.sessionId\n });\n const manager = await loader.loadNonceManager(request);\n currentNonceManager = manager;\n currentNonce = manager.getNonce();\n console.log(\"[PAL] Nonce generated successfully\");\n return currentNonce;\n } catch (error) {\n console.warn(\"[PAL] Failed to generate nonce:\", error);\n currentNonce = \"\";\n currentNonceManager = void 0;\n return \"\";\n }\n },\n getCurrentNonce() {\n return currentNonce;\n },\n injectNonce(vastTagUrl) {\n if (!currentNonce || !vastTagUrl) return vastTagUrl;\n try {\n const url = new URL(vastTagUrl);\n url.searchParams.delete(\"paln\");\n url.searchParams.set(\"givn\", currentNonce);\n return url.toString();\n } catch {\n let base = vastTagUrl.replace(/([?&])paln=[^&]*/g, \"\").replace(/[?&]$/, \"\");\n const sep = base.includes(\"?\") ? \"&\" : \"?\";\n return `${base}${sep}givn=${encodeURIComponent(currentNonce)}`;\n }\n },\n sendPlaybackStart() {\n try {\n currentNonceManager?.sendPlaybackStart();\n } catch {\n }\n },\n sendPlaybackEnd() {\n try {\n currentNonceManager?.sendPlaybackEnd();\n } catch {\n }\n },\n sendAdClick() {\n try {\n currentNonceManager?.sendAdClick();\n } catch {\n }\n },\n sendAdTouch(event) {\n try {\n currentNonceManager?.sendAdTouch(event);\n } catch {\n }\n },\n reset() {\n currentNonce = \"\";\n currentNonceManager = void 0;\n }\n };\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n createPalNonceManager\n});\n"]}
@@ -0,0 +1,132 @@
1
+ interface AdBreak {
2
+ id?: string;
3
+ startTimeMs: number;
4
+ durationMs?: number;
5
+ vastTagUrl?: string;
6
+ }
7
+ interface StormcloudVideoPlayerConfig {
8
+ videoElement: HTMLVideoElement;
9
+ src: string;
10
+ autoplay?: boolean;
11
+ muted?: boolean;
12
+ allowNativeHls?: boolean;
13
+ lowLatencyMode?: boolean;
14
+ isLiveStream?: boolean;
15
+ driftToleranceMs?: number;
16
+ immediateManifestAds?: boolean;
17
+ debugAdTiming?: boolean;
18
+ adFailsafeTimeoutMs?: number;
19
+ adBreakCheckIntervalMs?: number;
20
+ maxAdBreakExtensionMs?: number;
21
+ minRemainingMsToStartAd?: number;
22
+ showCustomControls?: boolean;
23
+ hideLoadingIndicator?: boolean;
24
+ onVolumeToggle?: () => void;
25
+ onFullscreenToggle?: () => void;
26
+ onControlClick?: () => void;
27
+ licenseKey?: string;
28
+ vastTagUrl?: string;
29
+ isVmap?: boolean;
30
+ vmapUrl?: string;
31
+ vastMode?: 'adstorm' | 'default';
32
+ minSegmentsBeforePlay?: number;
33
+ ctvAdRequest?: boolean;
34
+ adTest?: boolean;
35
+ podMaxAds?: number;
36
+ podMaxDurationMs?: number;
37
+ podExactDuration?: boolean;
38
+ }
39
+ interface Scte35Marker {
40
+ type: "start" | "end" | "progress";
41
+ ptsSeconds?: number;
42
+ durationSeconds?: number;
43
+ raw?: unknown;
44
+ }
45
+ interface Id3TagInfo {
46
+ key: string;
47
+ value: string | Uint8Array;
48
+ ptsSeconds?: number;
49
+ }
50
+ interface AdController {
51
+ initialize: () => void;
52
+ requestAds: (vastTagUrl: string) => Promise<void>;
53
+ play: () => Promise<void>;
54
+ pause: () => void;
55
+ resume: () => void;
56
+ stop: () => Promise<void>;
57
+ destroy: () => void;
58
+ isAdPlaying: () => boolean;
59
+ resize: (width: number, height: number) => void;
60
+ on: (event: string, listener: (payload?: any) => void) => void;
61
+ off: (event: string, listener: (payload?: any) => void) => void;
62
+ updateOriginalMutedState: (muted: boolean, volume?: number) => void;
63
+ getOriginalMutedState: () => boolean;
64
+ getOriginalVolume: () => number;
65
+ setAdVolume: (volume: number) => void;
66
+ getAdVolume: () => number;
67
+ showPlaceholder: () => void;
68
+ hidePlaceholder: () => void;
69
+ getLoadedAdDuration?: () => number | undefined;
70
+ getLoadedAdId?: () => string | undefined;
71
+ getPodAdCount?: () => number;
72
+ getPodTotalDurationMs?: () => number;
73
+ }
74
+ interface ClientInfo {
75
+ brand: string;
76
+ os: string;
77
+ model: string;
78
+ deviceType: "tv" | "mobile" | "tablet" | "desktop";
79
+ isSmartTV: boolean;
80
+ isAndroid: boolean;
81
+ isWebView: boolean;
82
+ isWebApp: boolean;
83
+ domain: string;
84
+ origin: string;
85
+ path: string;
86
+ userAgent: string;
87
+ vendor: string;
88
+ platform: string;
89
+ screen: {
90
+ width?: number;
91
+ height?: number;
92
+ availWidth?: number;
93
+ availHeight?: number;
94
+ orientation?: string;
95
+ pixelDepth?: number;
96
+ };
97
+ hardwareConcurrency: number;
98
+ deviceMemory: number | null;
99
+ maxTouchPoints: number;
100
+ language: string;
101
+ languages: string;
102
+ cookieEnabled: boolean;
103
+ doNotTrack: string;
104
+ referrer: string;
105
+ visibilityState: string;
106
+ }
107
+ interface PlayerAnalyticsContext {
108
+ inputStreamType?: string;
109
+ debugAdTiming?: boolean;
110
+ }
111
+ interface AdDetectInfo {
112
+ source: "scte35";
113
+ durationSeconds?: number;
114
+ ptsSeconds?: number;
115
+ detectedAtFragmentSn?: number;
116
+ timestamp: string;
117
+ }
118
+ interface AdLoadedInfo {
119
+ source: "vast" | "hls";
120
+ vastUrl?: string;
121
+ durationSeconds?: number;
122
+ timestamp: string;
123
+ }
124
+ interface AdImpressionInfo {
125
+ source: "vast" | "hls";
126
+ adIndex: number;
127
+ adUrl?: string;
128
+ durationSeconds?: number;
129
+ timestamp: string;
130
+ }
131
+
132
+ export type { AdController as A, ClientInfo as C, Id3TagInfo as I, PlayerAnalyticsContext as P, StormcloudVideoPlayerConfig as S, Scte35Marker as a, AdBreak as b, AdDetectInfo as c, AdImpressionInfo as d, AdLoadedInfo as e };
@@ -762,24 +762,65 @@ function createHlsAdPlayer(contentVideo, options) {
762
762
  }
763
763
  }
764
764
  function fetchVastXml(vastTagUrl) {
765
+ var credentials = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "include";
765
766
  return _async_to_generator(function() {
766
- var response;
767
+ var requestVast, response, error;
767
768
  return _ts_generator(this, function(_state) {
768
769
  switch(_state.label){
769
770
  case 0:
770
- return [
771
- 4,
772
- fetch(vastTagUrl, {
771
+ requestVast = function requestVast(creds) {
772
+ return fetch(vastTagUrl, {
773
773
  mode: "cors",
774
- credentials: "include",
774
+ credentials: creds,
775
775
  headers: {
776
776
  "Accept": "application/xml, text/xml, */*"
777
777
  },
778
778
  referrerPolicy: "no-referrer-when-downgrade"
779
- })
780
- ];
779
+ });
780
+ };
781
+ _state.label = 1;
781
782
  case 1:
783
+ _state.trys.push([
784
+ 1,
785
+ 3,
786
+ ,
787
+ 7
788
+ ]);
789
+ return [
790
+ 4,
791
+ requestVast(credentials)
792
+ ];
793
+ case 2:
782
794
  response = _state.sent();
795
+ return [
796
+ 3,
797
+ 7
798
+ ];
799
+ case 3:
800
+ error = _state.sent();
801
+ if (!(credentials !== "omit")) return [
802
+ 3,
803
+ 5
804
+ ];
805
+ console.warn('[HlsAdPlayer] VAST fetch failed with credentials="'.concat(credentials, '", retrying without credentials:'), error);
806
+ return [
807
+ 4,
808
+ requestVast("omit")
809
+ ];
810
+ case 4:
811
+ response = _state.sent();
812
+ return [
813
+ 3,
814
+ 6
815
+ ];
816
+ case 5:
817
+ throw error;
818
+ case 6:
819
+ return [
820
+ 3,
821
+ 7
822
+ ];
823
+ case 7:
783
824
  if (!response.ok) {
784
825
  throw new Error("Failed to fetch VAST: ".concat(response.statusText));
785
826
  }
@@ -801,7 +842,7 @@ function createHlsAdPlayer(contentVideo, options) {
801
842
  depth = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : 0, accumulatedTracking = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : createEmptyTrackingUrls();
802
843
  return [
803
844
  4,
804
- fetchVastXml(vastTagUrl)
845
+ fetchVastXml(vastTagUrl, depth === 0 ? "include" : "omit")
805
846
  ];
806
847
  case 1:
807
848
  vastXml = _state.sent();
@@ -1654,6 +1695,22 @@ function createPalNonceManager() {
1654
1695
  request.videoHeight = options.videoHeight || 480;
1655
1696
  if (options.ppid) request.ppid = options.ppid;
1656
1697
  if (options.sessionId) request.sessionId = options.sessionId;
1698
+ console.log("[PAL] NonceRequest before generateNonce:", {
1699
+ adWillAutoPlay: request.adWillAutoPlay,
1700
+ adWillPlayMuted: request.adWillPlayMuted,
1701
+ playerVolume: request.playerVolume,
1702
+ continuousPlayback: request.continuousPlayback,
1703
+ descriptionUrl: request.descriptionUrl,
1704
+ iconsSupported: request.iconsSupported,
1705
+ playerType: request.playerType,
1706
+ playerVersion: request.playerVersion,
1707
+ supportedApiFrameworks: request.supportedApiFrameworks,
1708
+ url: request.url,
1709
+ videoWidth: request.videoWidth,
1710
+ videoHeight: request.videoHeight,
1711
+ ppid: request.ppid,
1712
+ sessionId: request.sessionId
1713
+ });
1657
1714
  return [
1658
1715
  4,
1659
1716
  loader.loadNonceManager(request)