stormcloud-video-player 0.8.72 → 0.8.74

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 (61) hide show
  1. package/README.md +10 -70
  2. package/dist/stormcloud-vp.min.js +1 -1
  3. package/lib/Player.d.cts +1 -0
  4. package/lib/StormcloudPlayer.cjs +992 -276
  5. package/lib/StormcloudPlayer.cjs.map +1 -1
  6. package/lib/StormcloudPlayer.d.cts +1 -0
  7. package/lib/index.cjs +1005 -281
  8. package/lib/index.cjs.map +1 -1
  9. package/lib/index.d.cts +1 -0
  10. package/lib/index.d.ts +40 -3
  11. package/lib/index.js +998 -282
  12. package/lib/index.js.map +1 -1
  13. package/lib/player/AdBreakOrchestrator.cjs +772 -70
  14. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  15. package/lib/player/AdBreakOrchestrator.d.cts +7 -9
  16. package/lib/player/AdConfigManager.cjs +314 -62
  17. package/lib/player/AdConfigManager.cjs.map +1 -1
  18. package/lib/player/AdConfigManager.d.cts +7 -12
  19. package/lib/player/AdTimingService.cjs +37 -1
  20. package/lib/player/AdTimingService.cjs.map +1 -1
  21. package/lib/player/AdTimingService.d.cts +8 -1
  22. package/lib/player/EdgePodRequest.d.cts +1 -0
  23. package/lib/player/FloorLadder.d.cts +1 -0
  24. package/lib/player/HlsEngine.d.cts +1 -0
  25. package/lib/player/OptimizedPodRequest.cjs +719 -0
  26. package/lib/player/OptimizedPodRequest.cjs.map +1 -0
  27. package/lib/player/OptimizedPodRequest.d.cts +101 -0
  28. package/lib/player/PlayerControls.d.cts +1 -0
  29. package/lib/player/Scte35CueManager.d.cts +1 -0
  30. package/lib/player/Scte35Parser.d.cts +1 -0
  31. package/lib/player/StormcloudVideoPlayer.cjs +992 -276
  32. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  33. package/lib/player/StormcloudVideoPlayer.d.cts +1 -0
  34. package/lib/player/playerTypes.d.cts +1 -0
  35. package/lib/players/HlsPlayer.cjs +992 -276
  36. package/lib/players/HlsPlayer.cjs.map +1 -1
  37. package/lib/players/HlsPlayer.d.cts +1 -0
  38. package/lib/players/index.cjs +992 -276
  39. package/lib/players/index.cjs.map +1 -1
  40. package/lib/props.d.cts +1 -0
  41. package/lib/sdk/hlsAdPlayer.cjs +316 -51
  42. package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
  43. package/lib/sdk/hlsAdPlayer.d.cts +3 -1
  44. package/lib/sdk/pal.cjs +108 -83
  45. package/lib/sdk/pal.cjs.map +1 -1
  46. package/lib/sdk/pal.d.cts +1 -0
  47. package/lib/types.d.cts +9 -2
  48. package/lib/ui/StormcloudVideoPlayer.cjs +997 -281
  49. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  50. package/lib/ui/StormcloudVideoPlayer.d.cts +1 -0
  51. package/lib/utils/ctvVastSignals.cjs +9 -7
  52. package/lib/utils/ctvVastSignals.cjs.map +1 -1
  53. package/lib/utils/tracking.cjs +17 -3
  54. package/lib/utils/tracking.cjs.map +1 -1
  55. package/lib/utils/tracking.d.cts +2 -1
  56. package/lib/utils/vastEnvironmentSignals.cjs +9 -7
  57. package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
  58. package/lib/utils/vastMacros.cjs +250 -10
  59. package/lib/utils/vastMacros.cjs.map +1 -1
  60. package/lib/utils/vastMacros.d.cts +13 -4
  61. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\utils\\vastMacros.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","value","vastMacros_exports","GAM_AD_HOSTS","applyVastMacros","ensureVideoAdType","fetchConsentSignals","generateCorrelator","getPageViewCorrelator","isMacroPlaceholder","normalizeVastTagUrl","module","exports","ANDROID_ID_TYPES","Set","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","inferDeviceIdType","navigator","ua","userAgent","test","isEquivalentDeviceIdType","tagType","runtimeType","tag","toLowerCase","runtime","has","PERSISTENT_ID_COOKIE_MAX_AGE","UNEXPANDED_MACRO_PATTERN","INVALID_VAST_PARAM_KEY","EXAMPLE_COM_URL","CTV_UNSUPPORTED_PARAMS","INLINE_DEVICE_MACRO_REPLACEMENTS","pattern","getValue","ctx","deviceId","deviceIdType","limitAdTracking","sessionId","correlator","trimmed","trim","crypto","getRandomValues","buf","Uint32Array","String","Math","floor","random","Number","MAX_SAFE_INTEGER","pageViewCorrelator","window","location","pathname","search","expandInlineMacroPlaceholders","baseUrl","url","replace","encodeURIComponent","applyDeviceIdentityParams","params","runtimeId","tagRdid","tagLat","latValue","set","isCtv","delete","tagRdidValid","Boolean","tagTypeValid","removeBrokenAppNameOrphans","appName","toDelete","forEach","_value","push","includes","split","slice","suffix","raw","URL","anValue","searchParams","orphanFragments","length","reconstructed","filter","join","toString","_match","prefix","val","rawUrl","hostname","expandedUrl","replaceCorrelatorFallback","streamCorrelator","pod","podMinDurationMs","max","round","podMaxDurationMs","podMaxAds","existingUrl","pageUrl","adWillPlayMuted","adWillAutoPlay","deviceTypeHint","consent","gdpr","gdprConsent","usPrivacy","adTest","programTitle","channelName","staleKeys","correlatorRegex","sep","timeoutMs","signals","Promise","resolve","tasks","tcfApi","__tcfapi","settled","tcData","success","eventStatus","gdprApplies","storageAllowed","purpose","consents","tcString","listenerId","setTimeout","uspApi","__uspapi","data","uspString","then"],"mappings":"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","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/utils/vastMacros.ts\nvar vastMacros_exports = {};\n__export(vastMacros_exports, {\n GAM_AD_HOSTS: () => GAM_AD_HOSTS,\n applyVastMacros: () => applyVastMacros,\n ensureVideoAdType: () => ensureVideoAdType,\n fetchConsentSignals: () => fetchConsentSignals,\n generateCorrelator: () => generateCorrelator,\n getPageViewCorrelator: () => getPageViewCorrelator,\n isMacroPlaceholder: () => isMacroPlaceholder,\n normalizeVastTagUrl: () => normalizeVastTagUrl\n});\nmodule.exports = __toCommonJS(vastMacros_exports);\n\n// src/utils/vastEnvironmentSignals.ts\nvar ANDROID_ID_TYPES = /* @__PURE__ */ new Set([\"aaid\", \"adid\"]);\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};\nfunction inferDeviceIdType() {\n if (typeof navigator === \"undefined\") {\n return void 0;\n }\n const ua = navigator.userAgent;\n if (/Roku/i.test(ua)) return \"rida\";\n if (/Tizen|Samsung/i.test(ua)) return \"tifa\";\n if (/AppleTV|Apple TV/i.test(ua)) return \"tvOS\";\n if (/AFT|Fire TV|Amazon/i.test(ua)) return \"afai\";\n if (/Web0S|webOS|LG Browser|LGSTB|LGE/i.test(ua)) return \"lgudid\";\n if (/Android|Google TV/i.test(ua)) return \"aaid\";\n if (/iPhone|iPad|iPod/i.test(ua)) return \"idfa\";\n return void 0;\n}\nfunction isEquivalentDeviceIdType(tagType, runtimeType) {\n if (!tagType || !runtimeType) return false;\n const tag = tagType.toLowerCase();\n const runtime = runtimeType.toLowerCase();\n if (tag === runtime) return true;\n return ANDROID_ID_TYPES.has(tag) && ANDROID_ID_TYPES.has(runtime);\n}\nvar PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;\n\n// src/utils/vastMacros.ts\nvar UNEXPANDED_MACRO_PATTERN = /^(\\[[^\\]]*\\]|\\{[^}]*\\}|%%[^%]*%%)$/;\nvar INVALID_VAST_PARAM_KEY = /^\\s|\\s$/;\nvar EXAMPLE_COM_URL = /example\\.com/i;\nvar CTV_UNSUPPORTED_PARAMS = [\n \"tfcd\",\n \"npa\",\n \"min_ad_duration\",\n \"max_ad_duration\",\n \"unviewed_position_start\",\n \"impl\",\n \"vad_type\",\n \"gdpr\",\n \"gdpr_consent\",\n \"us_privacy\"\n];\nvar INLINE_DEVICE_MACRO_REPLACEMENTS = [\n { pattern: /\\[RDID\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[IFA\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[ADVERTISING[_-]?ID(?:ENTIFIER)?\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[DEVICE[_-]?ID\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[IDTYPE\\]/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /\\{rdid\\}/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\{device[_-]?id\\}/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\{idtype\\}/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /%%ADVERTISING_IDENTIFIER_PLAIN%%/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /%%ADVERTISING_ID_OPT_OUT%%/gi, getValue: (ctx) => ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0 },\n { pattern: /%%ADVERTISING_ID_TYPE%%/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /%%ADVERTISING_ID%%/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /%%LIMIT_AD_TRACKING%%/gi, getValue: (ctx) => ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0 },\n { pattern: /%%SESSION_ID%%/gi, getValue: (ctx) => ctx.sessionId },\n { pattern: /%%CORRELATOR%%/gi, getValue: (ctx) => ctx.correlator }\n];\nfunction isMacroPlaceholder(value) {\n if (value == null) return true;\n const trimmed = value.trim();\n if (!trimmed) return true;\n if (UNEXPANDED_MACRO_PATTERN.test(trimmed)) return true;\n return /^(unknown|null|undefined|none|n\\/a|\\$\\{[^}]+\\})$/i.test(trimmed);\n}\nfunction generateCorrelator() {\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n try {\n const buf = new Uint32Array(2);\n crypto.getRandomValues(buf);\n const value = (buf[0] ?? 0) * 2097152 + ((buf[1] ?? 0) & 2097151);\n if (value > 0) {\n return String(value);\n }\n } catch {\n }\n }\n return String(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1);\n}\nvar pageViewCorrelator;\nfunction getPageViewCorrelator() {\n const key = typeof window !== \"undefined\" ? window.location.pathname + window.location.search : \"\";\n if (!pageViewCorrelator || pageViewCorrelator.key !== key) {\n pageViewCorrelator = { key, value: generateCorrelator() };\n }\n return pageViewCorrelator.value;\n}\nfunction expandInlineMacroPlaceholders(baseUrl, ctx) {\n let url = baseUrl;\n for (const { pattern, getValue } of INLINE_DEVICE_MACRO_REPLACEMENTS) {\n const value = getValue(ctx);\n if (value != null && value !== \"\") {\n url = url.replace(pattern, encodeURIComponent(value));\n }\n }\n return url;\n}\nfunction applyDeviceIdentityParams(params, ctx) {\n const runtimeId = ctx.deviceId?.trim();\n const runtimeType = ctx.deviceIdType?.trim() || inferDeviceIdType();\n const tagRdid = params.get(\"rdid\");\n const tagType = params.get(\"idtype\");\n const tagLat = params.get(\"is_lat\");\n const latValue = ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0;\n if (runtimeId) {\n params.set(\"rdid\", runtimeId);\n params.set(\"idtype\", runtimeType || tagType || \"aaid\");\n params.set(\"is_lat\", latValue ?? (isMacroPlaceholder(tagLat) ? \"0\" : tagLat));\n return;\n }\n if (!ctx.isCtv) {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n return;\n }\n const tagRdidValid = Boolean(tagRdid && !isMacroPlaceholder(tagRdid));\n const tagTypeValid = Boolean(tagType && !isMacroPlaceholder(tagType));\n if (tagRdidValid && tagTypeValid && runtimeType && !isEquivalentDeviceIdType(tagType, runtimeType)) {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n return;\n }\n if (tagRdidValid) {\n if (isMacroPlaceholder(tagType) && runtimeType) {\n params.set(\"idtype\", runtimeType);\n }\n if (isMacroPlaceholder(tagLat)) {\n params.set(\"is_lat\", latValue ?? \"0\");\n }\n return;\n }\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n}\nfunction removeBrokenAppNameOrphans(params, appName) {\n const toDelete = [];\n params.forEach((_value, key) => {\n if (!key || INVALID_VAST_PARAM_KEY.test(key)) {\n toDelete.push(key);\n }\n });\n if (appName && appName.includes(\"&\")) {\n for (const suffix of appName.split(\"&\").slice(1)) {\n const trimmed = suffix.replace(/^\\s+/, \"\");\n if (!trimmed) continue;\n toDelete.push(suffix, ` ${trimmed}`, trimmed);\n }\n }\n for (const key of new Set(toDelete)) {\n if (key) params.delete(key);\n }\n}\nfunction normalizeVastTagUrl(raw) {\n if (!raw) return raw;\n try {\n const url = new URL(raw);\n const anValue = url.searchParams.get(\"an\");\n if (anValue !== null) {\n const orphanFragments = [];\n url.searchParams.forEach((_value, key) => {\n if (key && INVALID_VAST_PARAM_KEY.test(key)) {\n orphanFragments.push(key.trim());\n }\n });\n if (orphanFragments.length > 0) {\n const reconstructed = [anValue.replace(/\\s+$/, \"\"), ...orphanFragments].filter(Boolean).join(\" & \");\n url.searchParams.forEach((_value, key) => {\n if (key && INVALID_VAST_PARAM_KEY.test(key)) {\n url.searchParams.delete(key);\n }\n });\n url.searchParams.set(\"an\", reconstructed);\n return url.toString().replace(\n /([?&]an=)([^&]*)/,\n (_match, prefix, val) => prefix + val.replace(/\\+/g, \"%20\")\n );\n }\n }\n removeBrokenAppNameOrphans(url.searchParams);\n return url.toString();\n } catch {\n return raw;\n }\n}\nvar GAM_AD_HOSTS = /* @__PURE__ */ new Set([\n \"pubads.g.doubleclick.net\",\n \"securepubads.g.doubleclick.net\"\n]);\nfunction ensureVideoAdType(rawUrl) {\n try {\n const url = new URL(rawUrl);\n if (!GAM_AD_HOSTS.has(url.hostname)) return rawUrl;\n if (url.searchParams.has(\"ad_type\")) return rawUrl;\n url.searchParams.set(\"ad_type\", \"video\");\n return url.toString();\n } catch {\n return rawUrl;\n }\n}\nfunction applyVastMacros(baseUrl, ctx) {\n const expandedUrl = expandInlineMacroPlaceholders(baseUrl, ctx);\n let url;\n try {\n url = new URL(normalizeVastTagUrl(expandedUrl));\n } catch {\n return replaceCorrelatorFallback(expandedUrl, ctx.correlator);\n }\n const params = url.searchParams;\n removeBrokenAppNameOrphans(params);\n params.set(\"correlator\", ctx.correlator);\n params.set(\"scor\", ctx.streamCorrelator);\n if (ctx.isCtv) {\n for (const key of CTV_UNSUPPORTED_PARAMS) {\n params.delete(key);\n }\n } else {\n params.set(\"unviewed_position_start\", \"1\");\n }\n if (ctx.pod != null) {\n params.set(\"pod\", String(ctx.pod));\n }\n params.delete(\"ppos\");\n params.delete(\"lip\");\n if (ctx.podMinDurationMs != null) {\n params.set(\"pmnd\", String(Math.max(0, Math.round(ctx.podMinDurationMs))));\n }\n if (ctx.podMaxDurationMs != null) {\n params.set(\"pmxd\", String(Math.max(0, Math.round(ctx.podMaxDurationMs))));\n }\n if (ctx.podMaxAds != null) {\n params.set(\"pmad\", String(Math.max(1, Math.round(ctx.podMaxAds))));\n }\n const existingUrl = params.get(\"url\") || \"\";\n if (EXAMPLE_COM_URL.test(existingUrl)) {\n params.delete(\"url\");\n params.delete(\"description_url\");\n }\n if (!ctx.isCtv && ctx.pageUrl) {\n if (isMacroPlaceholder(params.get(\"url\"))) {\n params.set(\"url\", ctx.pageUrl);\n }\n if (isMacroPlaceholder(params.get(\"description_url\"))) {\n params.set(\"description_url\", params.get(\"url\") || ctx.pageUrl);\n }\n }\n if (!ctx.isCtv) {\n params.delete(\"an\");\n params.delete(\"msid\");\n params.delete(\"sid\");\n }\n if (ctx.adWillPlayMuted != null) {\n params.set(\"vpmute\", ctx.adWillPlayMuted ? \"1\" : \"0\");\n }\n if (ctx.adWillAutoPlay != null) {\n params.set(\"vpa\", ctx.adWillAutoPlay ? \"auto\" : \"click\");\n }\n if (ctx.sessionId) {\n params.set(\"sid\", ctx.sessionId);\n }\n if (ctx.deviceTypeHint != null) {\n params.set(\"dth\", String(ctx.deviceTypeHint));\n } else if (ctx.isCtv) {\n params.set(\"dth\", \"5\");\n }\n applyDeviceIdentityParams(params, ctx);\n if (!ctx.isCtv) {\n const consent = ctx.consent;\n if (consent?.gdpr != null) {\n params.set(\"gdpr\", consent.gdpr);\n }\n if (consent?.gdprConsent != null) {\n params.set(\"gdpr_consent\", consent.gdprConsent);\n }\n if (consent?.usPrivacy != null) {\n params.set(\"us_privacy\", consent.usPrivacy);\n }\n }\n if (ctx.adTest) {\n params.set(\"adtest\", \"on\");\n }\n if (ctx.programTitle) {\n params.set(\"ct_ti\", ctx.programTitle);\n }\n if (ctx.channelName) {\n params.set(\"ct_ch\", ctx.channelName);\n }\n const staleKeys = [];\n params.forEach((value, key) => {\n if (isMacroPlaceholder(value)) {\n staleKeys.push(key);\n }\n });\n for (const key of staleKeys) {\n params.delete(key);\n }\n removeBrokenAppNameOrphans(params);\n return url.toString();\n}\nfunction replaceCorrelatorFallback(baseUrl, correlator) {\n const correlatorRegex = /([?&])correlator=([^&]*)/;\n if (correlatorRegex.test(baseUrl)) {\n return baseUrl.replace(correlatorRegex, `$1correlator=${correlator}`);\n }\n const sep = baseUrl.includes(\"?\") ? \"&\" : \"?\";\n return `${baseUrl}${sep}correlator=${correlator}`;\n}\nfunction fetchConsentSignals(timeoutMs = 1500) {\n const signals = {};\n if (typeof window === \"undefined\") {\n return Promise.resolve(signals);\n }\n const tasks = [];\n const tcfApi = window.__tcfapi;\n if (typeof tcfApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n let settled = false;\n try {\n tcfApi(\"addEventListener\", 2, (tcData, success) => {\n if (settled) return;\n if (success && tcData && (tcData.eventStatus === \"tcloaded\" || tcData.eventStatus === \"useractioncomplete\")) {\n settled = true;\n signals.gdpr = tcData.gdprApplies ? \"1\" : \"0\";\n signals.storageAllowed = tcData.gdprApplies ? tcData.purpose?.consents?.[1] === true : true;\n if (typeof tcData.tcString === \"string\" && tcData.tcString) {\n signals.gdprConsent = tcData.tcString;\n }\n try {\n tcfApi(\"removeEventListener\", 2, () => {\n }, tcData.listenerId);\n } catch {\n }\n resolve();\n }\n });\n } catch {\n resolve();\n }\n setTimeout(() => {\n if (!settled) {\n settled = true;\n resolve();\n }\n }, timeoutMs);\n })\n );\n }\n const uspApi = window.__uspapi;\n if (typeof uspApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n try {\n uspApi(\"getUSPData\", 1, (data, success) => {\n if (success && typeof data?.uspString === \"string\" && data.uspString) {\n signals.usPrivacy = data.uspString;\n }\n resolve();\n });\n } catch {\n resolve();\n }\n setTimeout(resolve, timeoutMs);\n })\n );\n }\n if (tasks.length === 0) {\n return Promise.resolve(signals);\n }\n return Promise.all(tasks).then(() => signals);\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n GAM_AD_HOSTS,\n applyVastMacros,\n ensureVideoAdType,\n fetchConsentSignals,\n generateCorrelator,\n getPageViewCorrelator,\n isMacroPlaceholder,\n normalizeVastTagUrl\n});\n"]}
1
+ {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\utils\\vastMacros.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","value","vastMacros_exports","GAM_AD_HOSTS","SCVP_POD_MACROS","applyScvpMacros","applyVastMacros","ensureVideoAdType","fetchConsentSignals","findScvpMacroNames","generateCorrelator","getPageViewCorrelator","hasScvpMacros","isMacroPlaceholder","normalizeVastTagUrl","stripScvpMacros","substituteScvpMacros","module","exports","ANDROID_ID_TYPES","Set","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","inferDeviceIdType","navigator","ua","userAgent","test","isEquivalentDeviceIdType","tagType","runtimeType","tag","toLowerCase","runtime","has","PERSISTENT_ID_COOKIE_MAX_AGE","UNEXPANDED_MACRO_PATTERN","INVALID_VAST_PARAM_KEY","EXAMPLE_COM_URL","CTV_UNSUPPORTED_PARAMS","INLINE_DEVICE_MACRO_REPLACEMENTS","pattern","getValue","ctx","deviceId","deviceIdType","limitAdTracking","sessionId","correlator","trimmed","trim","crypto","getRandomValues","buf","Uint32Array","String","Math","floor","random","Number","MAX_SAFE_INTEGER","pageViewCorrelator","window","location","pathname","search","expandInlineMacroPlaceholders","baseUrl","url","replace","encodeURIComponent","applyDeviceIdentityParams","params","runtimeId","tagRdid","tagLat","latValue","set","isCtv","delete","tagRdidValid","Boolean","tagTypeValid","removeBrokenAppNameOrphans","appName","toDelete","forEach","_value","push","includes","split","slice","suffix","raw","URL","anValue","searchParams","orphanFragments","length","reconstructed","filter","join","toString","_match","prefix","val","rawUrl","hostname","SCVP_MACRO_DETECT","SCVP_MACRO_PATTERN","SCVP_WHOLE_VALUE_PATTERN","NESTED_QUERY_PARAM_KEYS","safeDecode","decodeURIComponent","names","text","pass","_m","bracketName","parenName","add","toUpperCase","decoded","Array","resolveScvpMacroValues","values","Map","str","toFlag","deviceTypeHint","palNonce","programTitle","channelName","pod","streamCorrelator","adWillPlayMuted","adWillAutoPlay","consent","gdpr","gdprConsent","usPrivacy","keepNone","substituteScvpParams","unresolved","keep","nested","out","replaceMacro","match","whole","resolved","inner","URLSearchParams","map","k","v","replaced","entries","append","deferred","expandedUrl","replaceCorrelatorFallback","existingUrl","pageUrl","adTest","staleKeys","correlatorRegex","sep","timeoutMs","signals","Promise","resolve","tasks","tcfApi","__tcfapi","settled","tcData","success","eventStatus","gdprApplies","storageAllowed","purpose","consents","tcString","listenerId","setTimeout","uspApi","__uspapi","data","uspString","then"],"mappings":"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","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/utils/vastMacros.ts\nvar vastMacros_exports = {};\n__export(vastMacros_exports, {\n GAM_AD_HOSTS: () => GAM_AD_HOSTS,\n SCVP_POD_MACROS: () => SCVP_POD_MACROS,\n applyScvpMacros: () => applyScvpMacros,\n applyVastMacros: () => applyVastMacros,\n ensureVideoAdType: () => ensureVideoAdType,\n fetchConsentSignals: () => fetchConsentSignals,\n findScvpMacroNames: () => findScvpMacroNames,\n generateCorrelator: () => generateCorrelator,\n getPageViewCorrelator: () => getPageViewCorrelator,\n hasScvpMacros: () => hasScvpMacros,\n isMacroPlaceholder: () => isMacroPlaceholder,\n normalizeVastTagUrl: () => normalizeVastTagUrl,\n stripScvpMacros: () => stripScvpMacros,\n substituteScvpMacros: () => substituteScvpMacros\n});\nmodule.exports = __toCommonJS(vastMacros_exports);\n\n// src/utils/vastEnvironmentSignals.ts\nvar ANDROID_ID_TYPES = /* @__PURE__ */ new Set([\"aaid\", \"adid\"]);\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};\nfunction inferDeviceIdType() {\n if (typeof navigator === \"undefined\") {\n return void 0;\n }\n const ua = navigator.userAgent;\n if (/Roku/i.test(ua)) return \"rida\";\n if (/Tizen|Samsung/i.test(ua)) return \"tifa\";\n if (/AppleTV|Apple TV/i.test(ua)) return \"tvOS\";\n if (/AFT|Fire TV|Amazon/i.test(ua)) return \"afai\";\n if (/Web0S|webOS|LG Browser|LGSTB|LGE/i.test(ua)) return \"lgudid\";\n if (/Android|Google TV/i.test(ua)) return \"aaid\";\n if (/iPhone|iPad|iPod/i.test(ua)) return \"idfa\";\n return void 0;\n}\nfunction isEquivalentDeviceIdType(tagType, runtimeType) {\n if (!tagType || !runtimeType) return false;\n const tag = tagType.toLowerCase();\n const runtime = runtimeType.toLowerCase();\n if (tag === runtime) return true;\n return ANDROID_ID_TYPES.has(tag) && ANDROID_ID_TYPES.has(runtime);\n}\nvar PERSISTENT_ID_COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5;\n\n// src/utils/vastMacros.ts\nvar UNEXPANDED_MACRO_PATTERN = /^(\\[[^\\]]*\\]|\\{[^}]*\\}|%%[^%]*%%)$/;\nvar INVALID_VAST_PARAM_KEY = /^\\s|\\s$/;\nvar EXAMPLE_COM_URL = /example\\.com/i;\nvar CTV_UNSUPPORTED_PARAMS = [\n \"tfcd\",\n \"npa\",\n \"min_ad_duration\",\n \"max_ad_duration\",\n \"unviewed_position_start\",\n \"impl\",\n \"vad_type\",\n \"gdpr\",\n \"gdpr_consent\",\n \"us_privacy\"\n];\nvar INLINE_DEVICE_MACRO_REPLACEMENTS = [\n { pattern: /\\[RDID\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[IFA\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[ADVERTISING[_-]?ID(?:ENTIFIER)?\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[DEVICE[_-]?ID\\]/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\[IDTYPE\\]/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /\\{rdid\\}/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\{device[_-]?id\\}/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /\\{idtype\\}/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /%%ADVERTISING_IDENTIFIER_PLAIN%%/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /%%ADVERTISING_ID_OPT_OUT%%/gi, getValue: (ctx) => ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0 },\n { pattern: /%%ADVERTISING_ID_TYPE%%/gi, getValue: (ctx) => ctx.deviceIdType },\n { pattern: /%%ADVERTISING_ID%%/gi, getValue: (ctx) => ctx.deviceId },\n { pattern: /%%LIMIT_AD_TRACKING%%/gi, getValue: (ctx) => ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0 },\n { pattern: /%%SESSION_ID%%/gi, getValue: (ctx) => ctx.sessionId },\n { pattern: /%%CORRELATOR%%/gi, getValue: (ctx) => ctx.correlator }\n];\nfunction isMacroPlaceholder(value) {\n if (value == null) return true;\n const trimmed = value.trim();\n if (!trimmed) return true;\n if (UNEXPANDED_MACRO_PATTERN.test(trimmed)) return true;\n return /^(unknown|null|undefined|none|n\\/a|\\$\\{[^}]+\\})$/i.test(trimmed);\n}\nfunction generateCorrelator() {\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n try {\n const buf = new Uint32Array(2);\n crypto.getRandomValues(buf);\n const value = (buf[0] ?? 0) * 2097152 + ((buf[1] ?? 0) & 2097151);\n if (value > 0) {\n return String(value);\n }\n } catch {\n }\n }\n return String(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1);\n}\nvar pageViewCorrelator;\nfunction getPageViewCorrelator() {\n const key = typeof window !== \"undefined\" ? window.location.pathname + window.location.search : \"\";\n if (!pageViewCorrelator || pageViewCorrelator.key !== key) {\n pageViewCorrelator = { key, value: generateCorrelator() };\n }\n return pageViewCorrelator.value;\n}\nfunction expandInlineMacroPlaceholders(baseUrl, ctx) {\n let url = baseUrl;\n for (const { pattern, getValue } of INLINE_DEVICE_MACRO_REPLACEMENTS) {\n const value = getValue(ctx);\n if (value != null && value !== \"\") {\n url = url.replace(pattern, encodeURIComponent(value));\n }\n }\n return url;\n}\nfunction applyDeviceIdentityParams(params, ctx) {\n const runtimeId = ctx.deviceId?.trim();\n const runtimeType = ctx.deviceIdType?.trim() || inferDeviceIdType();\n const tagRdid = params.get(\"rdid\");\n const tagType = params.get(\"idtype\");\n const tagLat = params.get(\"is_lat\");\n const latValue = ctx.limitAdTracking != null ? ctx.limitAdTracking ? \"1\" : \"0\" : void 0;\n if (runtimeId) {\n params.set(\"rdid\", runtimeId);\n params.set(\"idtype\", runtimeType || tagType || \"aaid\");\n params.set(\"is_lat\", latValue ?? (isMacroPlaceholder(tagLat) ? \"0\" : tagLat));\n return;\n }\n if (!ctx.isCtv) {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n return;\n }\n const tagRdidValid = Boolean(tagRdid && !isMacroPlaceholder(tagRdid));\n const tagTypeValid = Boolean(tagType && !isMacroPlaceholder(tagType));\n if (tagRdidValid && tagTypeValid && runtimeType && !isEquivalentDeviceIdType(tagType, runtimeType)) {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n return;\n }\n if (tagRdidValid) {\n if (isMacroPlaceholder(tagType) && runtimeType) {\n params.set(\"idtype\", runtimeType);\n }\n if (isMacroPlaceholder(tagLat)) {\n params.set(\"is_lat\", latValue ?? \"0\");\n }\n return;\n }\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n}\nfunction removeBrokenAppNameOrphans(params, appName) {\n const toDelete = [];\n params.forEach((_value, key) => {\n if (!key || INVALID_VAST_PARAM_KEY.test(key)) {\n toDelete.push(key);\n }\n });\n if (appName && appName.includes(\"&\")) {\n for (const suffix of appName.split(\"&\").slice(1)) {\n const trimmed = suffix.replace(/^\\s+/, \"\");\n if (!trimmed) continue;\n toDelete.push(suffix, ` ${trimmed}`, trimmed);\n }\n }\n for (const key of new Set(toDelete)) {\n if (key) params.delete(key);\n }\n}\nfunction normalizeVastTagUrl(raw) {\n if (!raw) return raw;\n try {\n const url = new URL(raw);\n const anValue = url.searchParams.get(\"an\");\n if (anValue !== null) {\n const orphanFragments = [];\n url.searchParams.forEach((_value, key) => {\n if (key && INVALID_VAST_PARAM_KEY.test(key)) {\n orphanFragments.push(key.trim());\n }\n });\n if (orphanFragments.length > 0) {\n const reconstructed = [anValue.replace(/\\s+$/, \"\"), ...orphanFragments].filter(Boolean).join(\" & \");\n url.searchParams.forEach((_value, key) => {\n if (key && INVALID_VAST_PARAM_KEY.test(key)) {\n url.searchParams.delete(key);\n }\n });\n url.searchParams.set(\"an\", reconstructed);\n return url.toString().replace(\n /([?&]an=)([^&]*)/,\n (_match, prefix, val) => prefix + val.replace(/\\+/g, \"%20\")\n );\n }\n }\n removeBrokenAppNameOrphans(url.searchParams);\n return url.toString();\n } catch {\n return raw;\n }\n}\nvar GAM_AD_HOSTS = /* @__PURE__ */ new Set([\n \"pubads.g.doubleclick.net\",\n \"securepubads.g.doubleclick.net\"\n]);\nfunction ensureVideoAdType(rawUrl) {\n try {\n const url = new URL(rawUrl);\n if (!GAM_AD_HOSTS.has(url.hostname)) return rawUrl;\n if (url.searchParams.has(\"ad_type\")) return rawUrl;\n url.searchParams.set(\"ad_type\", \"video\");\n return url.toString();\n } catch {\n return rawUrl;\n }\n}\nvar SCVP_MACRO_DETECT = /\\[SCVP-|%5BSCVP-|\\(SCVP-|%28SCVP-/i;\nvar SCVP_MACRO_PATTERN = /\\[SCVP-([A-Z0-9-]+)\\]|\\(SCVP-([A-Z0-9-]+)\\)/gi;\nvar SCVP_WHOLE_VALUE_PATTERN = /^\\s*(?:\\[SCVP-([A-Z0-9-]+)\\]|\\(SCVP-([A-Z0-9-]+)\\))\\s*$/i;\nvar NESTED_QUERY_PARAM_KEYS = /* @__PURE__ */ new Set([\"cust_params\"]);\nvar SCVP_POD_MACROS = /* @__PURE__ */ new Set([\"PMND\", \"PMXD\", \"PMAD\"]);\nfunction hasScvpMacros(url) {\n return !!url && SCVP_MACRO_DETECT.test(url);\n}\nfunction safeDecode(value) {\n try {\n return decodeURIComponent(value.replace(/\\+/g, \" \"));\n } catch {\n return value;\n }\n}\nfunction findScvpMacroNames(url) {\n if (!url) return [];\n const names = /* @__PURE__ */ new Set();\n let text = url;\n for (let pass = 0; pass < 3; pass++) {\n text.replace(SCVP_MACRO_PATTERN, (_m, bracketName, parenName) => {\n names.add(String(bracketName || parenName).toUpperCase());\n return \"\";\n });\n const decoded = safeDecode(text);\n if (decoded === text) break;\n text = decoded;\n }\n return Array.from(names);\n}\nfunction resolveScvpMacroValues(ctx) {\n const values = /* @__PURE__ */ new Map();\n const set = (name, value) => {\n if (value == null) return;\n const str = String(value).trim();\n if (str) values.set(name, str);\n };\n const toFlag = (value) => value == null ? void 0 : value ? \"1\" : \"0\";\n const deviceId = ctx.deviceId?.trim();\n const deviceIdType = deviceId ? ctx.deviceIdType?.trim() || inferDeviceIdType() : void 0;\n if (deviceId && deviceIdType) {\n set(\"RDID\", deviceId);\n set(\"IDTYPE\", deviceIdType);\n set(\"IS-LAT\", toFlag(ctx.limitAdTracking));\n }\n set(\"SID\", ctx.sessionId);\n set(\"DTH\", ctx.deviceTypeHint);\n set(\"GIVN\", ctx.palNonce);\n set(\"CT-TI\", ctx.programTitle);\n set(\"CT-CH\", ctx.channelName);\n set(\"POD\", ctx.pod);\n set(\"CORRELATOR\", ctx.correlator);\n set(\"SCOR\", ctx.streamCorrelator);\n set(\"VPMUTE\", toFlag(ctx.adWillPlayMuted));\n if (ctx.adWillAutoPlay != null) {\n set(\"VPA\", ctx.adWillAutoPlay ? \"auto\" : \"click\");\n }\n set(\"GDPR\", ctx.consent?.gdpr);\n set(\"GDPR-CONSENT\", ctx.consent?.gdprConsent);\n set(\"US-PRIVACY\", ctx.consent?.usPrivacy);\n return values;\n}\nvar keepNone = () => false;\nfunction substituteScvpParams(params, values, unresolved, keep, nested) {\n const out = [];\n const replaceMacro = (match, bracketName, parenName) => {\n const name = String(bracketName || parenName).toUpperCase();\n const value = values.get(name);\n if (value != null) return value;\n if (keep(name)) return match;\n unresolved.add(name);\n return \"\";\n };\n params.forEach((value, key) => {\n const whole = value.match(SCVP_WHOLE_VALUE_PATTERN);\n if (whole) {\n const name = String(whole[1] || whole[2]).toUpperCase();\n const resolved = values.get(name);\n if (resolved != null) {\n out.push([key, resolved]);\n } else if (keep(name)) {\n out.push([key, value]);\n } else {\n unresolved.add(name);\n }\n return;\n }\n if (!SCVP_MACRO_DETECT.test(value)) {\n out.push([key, value]);\n return;\n }\n if (!nested && NESTED_QUERY_PARAM_KEYS.has(key)) {\n const inner = substituteScvpParams(new URLSearchParams(value), values, unresolved, keep, true);\n if (inner.length > 0) {\n out.push([\n key,\n inner.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join(\"&\")\n ]);\n }\n return;\n }\n out.push([key, value.replace(SCVP_MACRO_PATTERN, replaceMacro)]);\n });\n return out;\n}\nfunction substituteScvpMacros(baseUrl, values, keep = keepNone) {\n const unresolved = /* @__PURE__ */ new Set();\n let url;\n try {\n url = new URL(normalizeVastTagUrl(baseUrl));\n } catch {\n const replaced = baseUrl.replace(\n SCVP_MACRO_PATTERN,\n (match, bracketName, parenName) => {\n const name = String(bracketName || parenName).toUpperCase();\n const value = values.get(name);\n if (value != null) return encodeURIComponent(value);\n if (keep(name)) return match;\n unresolved.add(name);\n return \"\";\n }\n );\n return { url: replaced, unresolved: Array.from(unresolved) };\n }\n const entries = substituteScvpParams(url.searchParams, values, unresolved, keep, false);\n const search = new URLSearchParams();\n for (const [key, value] of entries) search.append(key, value);\n url.search = search.toString();\n return { url: url.toString(), unresolved: Array.from(unresolved) };\n}\nfunction applyScvpMacros(baseUrl, ctx, deferred = /* @__PURE__ */ new Set()) {\n return substituteScvpMacros(baseUrl, resolveScvpMacroValues(ctx), (name) => deferred.has(name));\n}\nfunction stripScvpMacros(url) {\n if (findScvpMacroNames(url).length === 0) return { url, unresolved: [] };\n return substituteScvpMacros(url, /* @__PURE__ */ new Map());\n}\nfunction applyVastMacros(baseUrl, ctx) {\n const expandedUrl = expandInlineMacroPlaceholders(baseUrl, ctx);\n let url;\n try {\n url = new URL(normalizeVastTagUrl(expandedUrl));\n } catch {\n return replaceCorrelatorFallback(expandedUrl, ctx.correlator);\n }\n const params = url.searchParams;\n removeBrokenAppNameOrphans(params);\n params.set(\"correlator\", ctx.correlator);\n params.set(\"scor\", ctx.streamCorrelator);\n if (ctx.isCtv) {\n for (const key of CTV_UNSUPPORTED_PARAMS) {\n params.delete(key);\n }\n } else {\n params.set(\"unviewed_position_start\", \"1\");\n }\n if (ctx.pod != null) {\n params.set(\"pod\", String(ctx.pod));\n }\n params.delete(\"ppos\");\n params.delete(\"lip\");\n const existingUrl = params.get(\"url\") || \"\";\n if (EXAMPLE_COM_URL.test(existingUrl)) {\n params.delete(\"url\");\n params.delete(\"description_url\");\n }\n if (!ctx.isCtv && ctx.pageUrl) {\n if (isMacroPlaceholder(params.get(\"url\"))) {\n params.set(\"url\", ctx.pageUrl);\n }\n if (isMacroPlaceholder(params.get(\"description_url\"))) {\n params.set(\"description_url\", params.get(\"url\") || ctx.pageUrl);\n }\n }\n if (!ctx.isCtv) {\n params.delete(\"an\");\n params.delete(\"msid\");\n params.delete(\"sid\");\n }\n if (ctx.adWillPlayMuted != null) {\n params.set(\"vpmute\", ctx.adWillPlayMuted ? \"1\" : \"0\");\n }\n if (ctx.adWillAutoPlay != null) {\n params.set(\"vpa\", ctx.adWillAutoPlay ? \"auto\" : \"click\");\n }\n if (ctx.sessionId) {\n params.set(\"sid\", ctx.sessionId);\n }\n if (ctx.deviceTypeHint != null) {\n params.set(\"dth\", String(ctx.deviceTypeHint));\n } else if (ctx.isCtv) {\n params.set(\"dth\", \"5\");\n }\n applyDeviceIdentityParams(params, ctx);\n if (!ctx.isCtv) {\n const consent = ctx.consent;\n if (consent?.gdpr != null) {\n params.set(\"gdpr\", consent.gdpr);\n }\n if (consent?.gdprConsent != null) {\n params.set(\"gdpr_consent\", consent.gdprConsent);\n }\n if (consent?.usPrivacy != null) {\n params.set(\"us_privacy\", consent.usPrivacy);\n }\n }\n if (ctx.adTest) {\n params.set(\"adtest\", \"on\");\n }\n if (ctx.programTitle) {\n params.set(\"ct_ti\", ctx.programTitle);\n }\n if (ctx.channelName) {\n params.set(\"ct_ch\", ctx.channelName);\n }\n const staleKeys = [];\n params.forEach((value, key) => {\n if (isMacroPlaceholder(value)) {\n staleKeys.push(key);\n }\n });\n for (const key of staleKeys) {\n params.delete(key);\n }\n removeBrokenAppNameOrphans(params);\n return url.toString();\n}\nfunction replaceCorrelatorFallback(baseUrl, correlator) {\n const correlatorRegex = /([?&])correlator=([^&]*)/;\n if (correlatorRegex.test(baseUrl)) {\n return baseUrl.replace(correlatorRegex, `$1correlator=${correlator}`);\n }\n const sep = baseUrl.includes(\"?\") ? \"&\" : \"?\";\n return `${baseUrl}${sep}correlator=${correlator}`;\n}\nfunction fetchConsentSignals(timeoutMs = 1500) {\n const signals = {};\n if (typeof window === \"undefined\") {\n return Promise.resolve(signals);\n }\n const tasks = [];\n const tcfApi = window.__tcfapi;\n if (typeof tcfApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n let settled = false;\n try {\n tcfApi(\"addEventListener\", 2, (tcData, success) => {\n if (settled) return;\n if (success && tcData && (tcData.eventStatus === \"tcloaded\" || tcData.eventStatus === \"useractioncomplete\")) {\n settled = true;\n signals.gdpr = tcData.gdprApplies ? \"1\" : \"0\";\n signals.storageAllowed = tcData.gdprApplies ? tcData.purpose?.consents?.[1] === true : true;\n if (typeof tcData.tcString === \"string\" && tcData.tcString) {\n signals.gdprConsent = tcData.tcString;\n }\n try {\n tcfApi(\"removeEventListener\", 2, () => {\n }, tcData.listenerId);\n } catch {\n }\n resolve();\n }\n });\n } catch {\n resolve();\n }\n setTimeout(() => {\n if (!settled) {\n settled = true;\n resolve();\n }\n }, timeoutMs);\n })\n );\n }\n const uspApi = window.__uspapi;\n if (typeof uspApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n try {\n uspApi(\"getUSPData\", 1, (data, success) => {\n if (success && typeof data?.uspString === \"string\" && data.uspString) {\n signals.usPrivacy = data.uspString;\n }\n resolve();\n });\n } catch {\n resolve();\n }\n setTimeout(resolve, timeoutMs);\n })\n );\n }\n if (tasks.length === 0) {\n return Promise.resolve(signals);\n }\n return Promise.all(tasks).then(() => signals);\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n GAM_AD_HOSTS,\n SCVP_POD_MACROS,\n applyScvpMacros,\n applyVastMacros,\n ensureVideoAdType,\n fetchConsentSignals,\n findScvpMacroNames,\n generateCorrelator,\n getPageViewCorrelator,\n hasScvpMacros,\n isMacroPlaceholder,\n normalizeVastTagUrl,\n stripScvpMacros,\n substituteScvpMacros\n});\n"]}
@@ -8,9 +8,6 @@ interface VastMacroContext {
8
8
  correlator: string;
9
9
  streamCorrelator: string;
10
10
  pod?: number | undefined;
11
- podMaxAds?: number | undefined;
12
- podMinDurationMs?: number | undefined;
13
- podMaxDurationMs?: number | undefined;
14
11
  isCtv?: boolean | undefined;
15
12
  pageUrl?: string | undefined;
16
13
  adWillPlayMuted?: boolean | undefined;
@@ -24,6 +21,7 @@ interface VastMacroContext {
24
21
  programTitle?: string | undefined;
25
22
  channelName?: string | undefined;
26
23
  consent?: VastConsentSignals | undefined;
24
+ palNonce?: string | undefined;
27
25
  }
28
26
  declare function isMacroPlaceholder(value: string | null | undefined): boolean;
29
27
  declare function generateCorrelator(): string;
@@ -31,7 +29,18 @@ declare function getPageViewCorrelator(): string;
31
29
  declare function normalizeVastTagUrl(raw: string): string;
32
30
  declare const GAM_AD_HOSTS: Set<string>;
33
31
  declare function ensureVideoAdType(rawUrl: string): string;
32
+ declare const SCVP_POD_MACROS: ReadonlySet<string>;
33
+ interface ScvpMacroResult {
34
+ url: string;
35
+ unresolved: string[];
36
+ }
37
+ declare function hasScvpMacros(url: string | undefined): boolean;
38
+ declare function findScvpMacroNames(url: string | undefined): string[];
39
+ type ScvpMacroKeep = (name: string) => boolean;
40
+ declare function substituteScvpMacros(baseUrl: string, values: Map<string, string>, keep?: ScvpMacroKeep): ScvpMacroResult;
41
+ declare function applyScvpMacros(baseUrl: string, ctx: VastMacroContext, deferred?: ReadonlySet<string>): ScvpMacroResult;
42
+ declare function stripScvpMacros(url: string): ScvpMacroResult;
34
43
  declare function applyVastMacros(baseUrl: string, ctx: VastMacroContext): string;
35
44
  declare function fetchConsentSignals(timeoutMs?: number): Promise<VastConsentSignals>;
36
45
 
37
- export { GAM_AD_HOSTS, type VastConsentSignals, type VastMacroContext, applyVastMacros, ensureVideoAdType, fetchConsentSignals, generateCorrelator, getPageViewCorrelator, isMacroPlaceholder, normalizeVastTagUrl };
46
+ export { GAM_AD_HOSTS, SCVP_POD_MACROS, type ScvpMacroKeep, type ScvpMacroResult, type VastConsentSignals, type VastMacroContext, applyScvpMacros, applyVastMacros, ensureVideoAdType, fetchConsentSignals, findScvpMacroNames, generateCorrelator, getPageViewCorrelator, hasScvpMacros, isMacroPlaceholder, normalizeVastTagUrl, stripScvpMacros, substituteScvpMacros };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "stormcloud-video-player",
3
- "version": "0.8.72",
3
+ "version": "0.8.74",
4
4
  "main": "lib/index.js",
5
5
  "typings": "lib/index.d.ts",
6
6
  "scripts": {
7
7
  "clean": "rimraf lib dist *.d.ts",
8
- "test": "echo \"Error: no test specified\" && exit 1",
8
+ "test": "vitest run",
9
+ "typecheck": "tsc --noEmit -p .",
9
10
  "build": "tsup src/index.ts --format esm,cjs --dts --sourcemap --out-dir lib",
10
11
  "build:lib": "tsup src/**/*.ts src/**/*.tsx --format cjs --dts --sourcemap --out-dir lib",
11
12
  "build:minified": "rollup -c rollup.config.js",
@@ -59,7 +60,8 @@
59
60
  "rollup-plugin-swc3": "^0.12.1",
60
61
  "tslib": "^2.8.1",
61
62
  "tsup": "^8.5.0",
62
- "typescript": "^5.9.2"
63
+ "typescript": "^5.9.2",
64
+ "vitest": "^3.2.7"
63
65
  },
64
66
  "type": "module",
65
67
  "module": "lib/index.js",